From 8af6095198a5495beda7888e25ec034362eff66b Mon Sep 17 00:00:00 2001 From: Luke Street Date: Mon, 17 Oct 2022 22:05:27 -0400 Subject: [PATCH] Add several particle classes; link CParticleGlobals Adds CModVectorElement, CParticleDataFactory, CParticleGlobals, CRealElement CRealElement & CModVectorElement are very close to matching Former-commit-id: bb99d88d3b8a42d66f2c09b86fb43675046b42cd --- asm/Kyoto/CFrameDelayedKiller.s | 4 +- asm/Kyoto/Particles/CColorElement.s | 2 +- asm/Kyoto/Particles/CElementGen.s | 20 +- asm/Kyoto/Particles/CParticleDataFactory.s | 266 +++---- asm/Kyoto/Particles/CParticleGlobals.s | 11 +- asm/Kyoto/Particles/CRealElement.s | 694 +++++++++--------- asm/Kyoto/Particles/CVectorElement.s | 6 +- configure.py | 8 +- include/Kyoto/Basics/CBasics.hpp | 23 +- include/Kyoto/Graphics/CColor.hpp | 8 +- include/Kyoto/Math/CVector3f.hpp | 10 +- include/Kyoto/Particles/CElementGen.hpp | 14 +- include/Kyoto/Particles/CIntElement.hpp | 1 - include/Kyoto/Particles/CModVectorElement.hpp | 159 ++++ .../Kyoto/Particles/CParticleDataFactory.hpp | 24 + include/Kyoto/Particles/CParticleGlobals.hpp | 7 +- include/Kyoto/Particles/CRealElement.hpp | 368 ++++++++++ include/Kyoto/Particles/IElement.hpp | 3 +- obj_files.mk | 2 +- src/Kyoto/Particles/CModVectorElement.cpp | 371 ++++++++++ src/Kyoto/Particles/CParticleDataFactory.cpp | 221 ++++++ src/Kyoto/Particles/CParticleGlobals.cpp | 35 + src/Kyoto/Particles/CRealElement.cpp | 546 ++++++++++++++ src/WorldFormat/CMetroidModelInstance.cpp | 21 +- src/WorldFormat/CWorldLight.cpp | 2 - 25 files changed, 2285 insertions(+), 541 deletions(-) create mode 100644 include/Kyoto/Particles/CModVectorElement.hpp create mode 100644 include/Kyoto/Particles/CParticleDataFactory.hpp create mode 100644 include/Kyoto/Particles/CRealElement.hpp create mode 100644 src/Kyoto/Particles/CModVectorElement.cpp create mode 100644 src/Kyoto/Particles/CParticleDataFactory.cpp create mode 100644 src/Kyoto/Particles/CParticleGlobals.cpp create mode 100644 src/Kyoto/Particles/CRealElement.cpp diff --git a/asm/Kyoto/CFrameDelayedKiller.s b/asm/Kyoto/CFrameDelayedKiller.s index 419b5d86..682a8fce 100644 --- a/asm/Kyoto/CFrameDelayedKiller.s +++ b/asm/Kyoto/CFrameDelayedKiller.s @@ -30,8 +30,8 @@ __dl__8IElementFPvUl: /* 8036CA7C 003699DC 38 21 00 10 */ addi r1, r1, 0x10 /* 8036CA80 003699E0 4E 80 00 20 */ blr -.global __nw__8IElementFUl -__nw__8IElementFUl: +.global __nw__8IElementFUlPCcPCc +__nw__8IElementFUlPCcPCc: /* 8036CA84 003699E4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8036CA88 003699E8 7C 08 02 A6 */ mflr r0 /* 8036CA8C 003699EC 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/Kyoto/Particles/CColorElement.s b/asm/Kyoto/Particles/CColorElement.s index a4940b16..9fdb5cfd 100644 --- a/asm/Kyoto/Particles/CColorElement.s +++ b/asm/Kyoto/Particles/CColorElement.s @@ -187,7 +187,7 @@ lbl_80316420: .global GetValue__16CCEParticleColor GetValue__16CCEParticleColor: -/* 80316438 00313398 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +/* 80316438 00313398 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 8031643C 0031339C 38 60 00 00 */ li r3, 0 /* 80316440 003133A0 80 04 00 34 */ lwz r0, 0x34(r4) /* 80316444 003133A4 90 05 00 00 */ stw r0, 0(r5) diff --git a/asm/Kyoto/Particles/CElementGen.s b/asm/Kyoto/Particles/CElementGen.s index 2874aafa..78a39382 100644 --- a/asm/Kyoto/Particles/CElementGen.s +++ b/asm/Kyoto/Particles/CElementGen.s @@ -146,8 +146,8 @@ IsIndirectTextured__11CElementGenCFv: /* 80317664 003145C4 38 60 00 01 */ li r3, 1 /* 80317668 003145C8 4E 80 00 20 */ blr -.global GetCEXTValue__11CElementGenCFi -GetCEXTValue__11CElementGenCFi: +.global GetExternalVar__11CElementGenCFi +GetExternalVar__11CElementGenCFi: /* 8031766C 003145CC 54 80 10 3A */ slwi r0, r4, 2 /* 80317670 003145D0 7C 63 02 14 */ add r3, r3, r0 /* 80317674 003145D4 C0 23 00 9C */ lfs f1, 0x9c(r3) @@ -797,7 +797,7 @@ RenderModels__11CElementGenFv: /* 80317F18 00314E78 BE 81 04 E0 */ stmw r20, 0x4e0(r1) /* 80317F1C 00314E7C 38 00 00 00 */ li r0, 0 /* 80317F20 00314E80 7C 7E 1B 78 */ mr r30, r3 -/* 80317F24 00314E84 90 0D A8 F0 */ stw r0, lbl_805A94B0@sda21(r13) +/* 80317F24 00314E84 90 0D A8 F0 */ stw r0, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 80317F28 00314E88 88 03 02 6D */ lbz r0, 0x26d(r3) /* 80317F2C 00314E8C 54 00 DF FF */ rlwinm. r0, r0, 0x1b, 0x1f, 0x1f /* 80317F30 00314E90 41 82 00 10 */ beq lbl_80317F40 @@ -1122,13 +1122,13 @@ lbl_803183CC: /* 803183F4 00315354 48 01 23 85 */ bl SetParticleLifetime__16CParticleGlobalsFi /* 803183F8 00315358 7E 83 A3 78 */ mr r3, r20 /* 803183FC 0031535C 48 01 22 81 */ bl UpdateParticleLifetimeTweenValues__16CParticleGlobalsFi -/* 80318400 00315360 93 8D A8 EC */ stw r28, lbl_805A94AC@sda21(r13) +/* 80318400 00315360 93 8D A8 EC */ stw r28, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 80318404 00315364 88 1E 02 6D */ lbz r0, 0x26d(r30) /* 80318408 00315368 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f /* 8031840C 0031536C 41 82 00 10 */ beq lbl_8031841C /* 80318410 00315370 80 1E 00 6C */ lwz r0, 0x6c(r30) /* 80318414 00315374 7C 00 D2 14 */ add r0, r0, r26 -/* 80318418 00315378 90 0D A8 F0 */ stw r0, lbl_805A94B0@sda21(r13) +/* 80318418 00315378 90 0D A8 F0 */ stw r0, mParticleAccessParameters__16CParticleGlobals@sda21(r13) lbl_8031841C: /* 8031841C 0031537C 80 7E 00 28 */ lwz r3, 0x28(r30) /* 80318420 00315380 80 63 00 58 */ lwz r3, 0x58(r3) @@ -6849,7 +6849,7 @@ lbl_8031D880: lbl_8031D890: /* 8031D890 0031A7F0 38 00 00 00 */ li r0, 0 /* 8031D894 0031A7F4 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha -/* 8031D898 0031A7F8 90 0D A8 F0 */ stw r0, lbl_805A94B0@sda21(r13) +/* 8031D898 0031A7F8 90 0D A8 F0 */ stw r0, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 8031D89C 0031A7FC 3B E3 66 A0 */ addi r31, r3, sZeroVector__9CVector3f@l /* 8031D8A0 0031A800 3B 80 00 00 */ li r28, 0 /* 8031D8A4 0031A804 48 00 03 B8 */ b lbl_8031DC5C @@ -6922,7 +6922,7 @@ lbl_8031D9A0: /* 8031D9A4 0031A904 48 00 CD D5 */ bl SetParticleLifetime__16CParticleGlobalsFi /* 8031D9A8 0031A908 38 60 00 00 */ li r3, 0 /* 8031D9AC 0031A90C 48 00 CC D1 */ bl UpdateParticleLifetimeTweenValues__16CParticleGlobalsFi -/* 8031D9B0 0031A910 93 CD A8 EC */ stw r30, lbl_805A94AC@sda21(r13) +/* 8031D9B0 0031A910 93 CD A8 EC */ stw r30, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 8031D9B4 0031A914 88 1A 02 6D */ lbz r0, 0x26d(r26) /* 8031D9B8 0031A918 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f /* 8031D9BC 0031A91C 41 82 00 14 */ beq lbl_8031D9D0 @@ -7198,7 +7198,7 @@ UpdateExistingParticles__11CElementGenFv: /* 8031DD94 0031ACF4 80 63 00 74 */ lwz r3, 0x74(r3) /* 8031DD98 0031ACF8 48 00 C9 B1 */ bl SetEmitterTime__16CParticleGlobalsFi /* 8031DD9C 0031ACFC 38 00 00 00 */ li r0, 0 -/* 8031DDA0 0031AD00 90 0D A8 F0 */ stw r0, lbl_805A94B0@sda21(r13) +/* 8031DDA0 0031AD00 90 0D A8 F0 */ stw r0, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 8031DDA4 0031AD04 48 00 03 98 */ b lbl_8031E13C lbl_8031DDA8: /* 8031DDA8 0031AD08 80 7F 00 00 */ lwz r3, 0(r31) @@ -7325,7 +7325,7 @@ lbl_8031DF38: /* 8031DF7C 0031AEDC D0 1F 00 0C */ stfs f0, 0xc(r31) /* 8031DF80 0031AEE0 80 7F 00 28 */ lwz r3, 0x28(r31) /* 8031DF84 0031AEE4 80 1D 00 74 */ lwz r0, 0x74(r29) -/* 8031DF88 0031AEE8 93 ED A8 EC */ stw r31, lbl_805A94AC@sda21(r13) +/* 8031DF88 0031AEE8 93 ED A8 EC */ stw r31, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 8031DF8C 0031AEEC 7F C3 00 50 */ subf r30, r3, r0 /* 8031DF90 0031AEF0 80 7F 00 28 */ lwz r3, 0x28(r31) /* 8031DF94 0031AEF4 80 1F 00 00 */ lwz r0, 0(r31) @@ -7625,7 +7625,7 @@ UpdateAdvanceAccessParameters__11CElementGenFii: /* 8031E3D0 0031B330 7C 7D 1B 78 */ mr r29, r3 /* 8031E3D4 0031B334 80 63 00 6C */ lwz r3, 0x6c(r3) /* 8031E3D8 0031B338 7F E3 02 14 */ add r31, r3, r0 -/* 8031E3DC 0031B33C 93 ED A8 F0 */ stw r31, lbl_805A94B0@sda21(r13) +/* 8031E3DC 0031B33C 93 ED A8 F0 */ stw r31, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 8031E3E0 0031B340 80 7D 00 28 */ lwz r3, 0x28(r29) /* 8031E3E4 0031B344 80 63 01 0C */ lwz r3, 0x10c(r3) /* 8031E3E8 0031B348 28 03 00 00 */ cmplwi r3, 0 diff --git a/asm/Kyoto/Particles/CParticleDataFactory.s b/asm/Kyoto/Particles/CParticleDataFactory.s index 595c882e..01c9f291 100644 --- a/asm/Kyoto/Particles/CParticleDataFactory.s +++ b/asm/Kyoto/Particles/CParticleDataFactory.s @@ -465,7 +465,7 @@ lbl_80324F14: /* 80324F1C 00321E7C 38 83 79 18 */ addi r4, r3, lbl_803D7918@l /* 80324F20 00321E80 38 A0 00 00 */ li r5, 0 /* 80324F24 00321E84 38 60 00 10 */ li r3, 0x10 -/* 80324F28 00321E88 48 04 7B 5D */ bl __nw__8IElementFUl +/* 80324F28 00321E88 48 04 7B 5D */ bl __nw__8IElementFUlPCcPCc /* 80324F2C 00321E8C 7C 79 1B 79 */ or. r25, r3, r3 /* 80324F30 00321E90 41 82 00 24 */ beq lbl_80324F54 /* 80324F34 00321E94 38 61 00 50 */ addi r3, r1, 0x50 @@ -510,7 +510,7 @@ lbl_80324F78: /* 80324FC4 00321F24 38 83 79 18 */ addi r4, r3, lbl_803D7918@l /* 80324FC8 00321F28 38 A0 00 00 */ li r5, 0 /* 80324FCC 00321F2C 38 60 00 10 */ li r3, 0x10 -/* 80324FD0 00321F30 48 04 7A B5 */ bl __nw__8IElementFUl +/* 80324FD0 00321F30 48 04 7A B5 */ bl __nw__8IElementFUlPCcPCc /* 80324FD4 00321F34 7C 79 1B 79 */ or. r25, r3, r3 /* 80324FD8 00321F38 41 82 00 24 */ beq lbl_80324FFC /* 80324FDC 00321F3C 38 61 00 38 */ addi r3, r1, 0x38 @@ -596,7 +596,7 @@ lbl_80325100: /* 80325108 00322068 38 83 79 18 */ addi r4, r3, lbl_803D7918@l /* 8032510C 0032206C 38 A0 00 00 */ li r5, 0 /* 80325110 00322070 38 60 00 3C */ li r3, 0x3c -/* 80325114 00322074 48 04 79 71 */ bl __nw__8IElementFUl +/* 80325114 00322074 48 04 79 71 */ bl __nw__8IElementFUlPCcPCc /* 80325118 00322078 7C 79 1B 79 */ or. r25, r3, r3 /* 8032511C 0032207C 41 82 00 3C */ beq lbl_80325158 /* 80325120 00322080 38 61 00 30 */ addi r3, r1, 0x30 @@ -647,7 +647,7 @@ lbl_8032517C: /* 803251C8 00322128 38 83 79 18 */ addi r4, r3, lbl_803D7918@l /* 803251CC 0032212C 38 A0 00 00 */ li r5, 0 /* 803251D0 00322130 38 60 00 3C */ li r3, 0x3c -/* 803251D4 00322134 48 04 78 B1 */ bl __nw__8IElementFUl +/* 803251D4 00322134 48 04 78 B1 */ bl __nw__8IElementFUlPCcPCc /* 803251D8 00322138 7C 79 1B 79 */ or. r25, r3, r3 /* 803251DC 0032213C 41 82 00 3C */ beq lbl_80325218 /* 803251E0 00322140 38 61 00 18 */ addi r3, r1, 0x18 @@ -883,7 +883,7 @@ lbl_80325528: /* 8032552C 0032248C 38 60 00 08 */ li r3, 8 /* 80325530 00322490 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325534 00322494 38 A0 00 00 */ li r5, 0 -/* 80325538 00322498 48 04 75 4D */ bl __nw__8IElementFUl +/* 80325538 00322498 48 04 75 4D */ bl __nw__8IElementFUlPCcPCc /* 8032553C 0032249C 7C 60 1B 79 */ or. r0, r3, r3 /* 80325540 003224A0 41 82 00 1C */ beq lbl_8032555C /* 80325544 003224A4 C0 21 00 14 */ lfs f1, 0x14(r1) @@ -900,7 +900,7 @@ lbl_80325564: /* 80325568 003224C8 38 60 00 14 */ li r3, 0x14 /* 8032556C 003224CC 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325570 003224D0 38 A0 00 00 */ li r5, 0 -/* 80325574 003224D4 48 04 75 11 */ bl __nw__8IElementFUl +/* 80325574 003224D4 48 04 75 11 */ bl __nw__8IElementFUlPCcPCc /* 80325578 003224D8 7C 60 1B 79 */ or. r0, r3, r3 /* 8032557C 003224DC 41 82 00 1C */ beq lbl_80325598 /* 80325580 003224E0 7F 84 E3 78 */ mr r4, r28 @@ -917,7 +917,7 @@ lbl_803255A0: /* 803255A4 00322504 38 60 00 28 */ li r3, 0x28 /* 803255A8 00322508 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803255AC 0032250C 38 A0 00 00 */ li r5, 0 -/* 803255B0 00322510 48 04 74 D5 */ bl __nw__8IElementFUl +/* 803255B0 00322510 48 04 74 D5 */ bl __nw__8IElementFUlPCcPCc /* 803255B4 00322514 7C 60 1B 79 */ or. r0, r3, r3 /* 803255B8 00322518 41 82 00 10 */ beq lbl_803255C8 /* 803255BC 0032251C 7F E4 FB 78 */ mr r4, r31 @@ -943,7 +943,7 @@ lbl_803255D0: /* 80325604 00322564 38 60 00 10 */ li r3, 0x10 /* 80325608 00322568 7C 1C 03 78 */ mr r28, r0 /* 8032560C 0032256C 38 A0 00 00 */ li r5, 0 -/* 80325610 00322570 48 04 74 75 */ bl __nw__8IElementFUl +/* 80325610 00322570 48 04 74 75 */ bl __nw__8IElementFUlPCcPCc /* 80325614 00322574 7C 60 1B 79 */ or. r0, r3, r3 /* 80325618 00322578 41 82 00 18 */ beq lbl_80325630 /* 8032561C 0032257C 7F 44 D3 78 */ mr r4, r26 @@ -975,7 +975,7 @@ lbl_80325638: /* 8032567C 003225DC 38 60 00 14 */ li r3, 0x14 /* 80325680 003225E0 7C 1D 03 78 */ mr r29, r0 /* 80325684 003225E4 38 A0 00 00 */ li r5, 0 -/* 80325688 003225E8 48 04 73 FD */ bl __nw__8IElementFUl +/* 80325688 003225E8 48 04 73 FD */ bl __nw__8IElementFUlPCcPCc /* 8032568C 003225EC 7C 60 1B 79 */ or. r0, r3, r3 /* 80325690 003225F0 41 82 00 1C */ beq lbl_803256AC /* 80325694 003225F4 7F 44 D3 78 */ mr r4, r26 @@ -1004,7 +1004,7 @@ lbl_803256B4: /* 803256E8 00322648 38 60 00 10 */ li r3, 0x10 /* 803256EC 0032264C 7C 1C 03 78 */ mr r28, r0 /* 803256F0 00322650 38 A0 00 00 */ li r5, 0 -/* 803256F4 00322654 48 04 73 91 */ bl __nw__8IElementFUl +/* 803256F4 00322654 48 04 73 91 */ bl __nw__8IElementFUlPCcPCc /* 803256F8 00322658 7C 60 1B 79 */ or. r0, r3, r3 /* 803256FC 0032265C 41 82 00 18 */ beq lbl_80325714 /* 80325700 00322660 7F 44 D3 78 */ mr r4, r26 @@ -1036,7 +1036,7 @@ lbl_8032571C: /* 80325760 003226C0 38 60 00 14 */ li r3, 0x14 /* 80325764 003226C4 7C 1D 03 78 */ mr r29, r0 /* 80325768 003226C8 38 A0 00 00 */ li r5, 0 -/* 8032576C 003226CC 48 04 73 19 */ bl __nw__8IElementFUl +/* 8032576C 003226CC 48 04 73 19 */ bl __nw__8IElementFUlPCcPCc /* 80325770 003226D0 7C 60 1B 79 */ or. r0, r3, r3 /* 80325774 003226D4 41 82 00 1C */ beq lbl_80325790 /* 80325778 003226D8 7F 44 D3 78 */ mr r4, r26 @@ -1053,7 +1053,7 @@ lbl_80325798: /* 8032579C 003226FC 38 60 00 04 */ li r3, 4 /* 803257A0 00322700 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803257A4 00322704 38 A0 00 00 */ li r5, 0 -/* 803257A8 00322708 48 04 72 DD */ bl __nw__8IElementFUl +/* 803257A8 00322708 48 04 72 DD */ bl __nw__8IElementFUlPCcPCc /* 803257AC 0032270C 28 03 00 00 */ cmplwi r3, 0 /* 803257B0 00322710 41 82 00 38 */ beq lbl_803257E8 /* 803257B4 00322714 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -1223,7 +1223,7 @@ lbl_80325920: /* 80325A10 00322970 38 60 00 10 */ li r3, 0x10 /* 80325A14 00322974 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325A18 00322978 38 A0 00 00 */ li r5, 0 -/* 80325A1C 0032297C 48 04 70 69 */ bl __nw__8IElementFUl +/* 80325A1C 0032297C 48 04 70 69 */ bl __nw__8IElementFUlPCcPCc /* 80325A20 00322980 7C 60 1B 79 */ or. r0, r3, r3 /* 80325A24 00322984 41 82 00 18 */ beq lbl_80325A3C /* 80325A28 00322988 C0 21 00 10 */ lfs f1, 0x10(r1) @@ -1265,7 +1265,7 @@ lbl_80325AA4: /* 80325AA8 00322A08 38 60 00 10 */ li r3, 0x10 /* 80325AAC 00322A0C 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325AB0 00322A10 38 A0 00 00 */ li r5, 0 -/* 80325AB4 00322A14 48 04 6F D1 */ bl __nw__8IElementFUl +/* 80325AB4 00322A14 48 04 6F D1 */ bl __nw__8IElementFUlPCcPCc /* 80325AB8 00322A18 7C 60 1B 79 */ or. r0, r3, r3 /* 80325ABC 00322A1C 41 82 00 18 */ beq lbl_80325AD4 /* 80325AC0 00322A20 7F A4 EB 78 */ mr r4, r29 @@ -1281,7 +1281,7 @@ lbl_80325ADC: /* 80325AE0 00322A40 38 60 00 08 */ li r3, 8 /* 80325AE4 00322A44 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325AE8 00322A48 38 A0 00 00 */ li r5, 0 -/* 80325AEC 00322A4C 48 04 6F 99 */ bl __nw__8IElementFUl +/* 80325AEC 00322A4C 48 04 6F 99 */ bl __nw__8IElementFUlPCcPCc /* 80325AF0 00322A50 7C 7E 1B 79 */ or. r30, r3, r3 /* 80325AF4 00322A54 41 82 04 A4 */ beq lbl_80325F98 /* 80325AF8 00322A58 7F E3 FB 78 */ mr r3, r31 @@ -1304,7 +1304,7 @@ lbl_80325B14: /* 80325B38 00322A98 38 60 00 0C */ li r3, 0xc /* 80325B3C 00322A9C 7C 1D 03 78 */ mr r29, r0 /* 80325B40 00322AA0 38 A0 00 00 */ li r5, 0 -/* 80325B44 00322AA4 48 04 6F 41 */ bl __nw__8IElementFUl +/* 80325B44 00322AA4 48 04 6F 41 */ bl __nw__8IElementFUlPCcPCc /* 80325B48 00322AA8 7C 60 1B 79 */ or. r0, r3, r3 /* 80325B4C 00322AAC 41 82 00 14 */ beq lbl_80325B60 /* 80325B50 00322AB0 7F 84 E3 78 */ mr r4, r28 @@ -1327,7 +1327,7 @@ lbl_80325B68: /* 80325B8C 00322AEC 38 60 00 0C */ li r3, 0xc /* 80325B90 00322AF0 7C 1D 03 78 */ mr r29, r0 /* 80325B94 00322AF4 38 A0 00 00 */ li r5, 0 -/* 80325B98 00322AF8 48 04 6E ED */ bl __nw__8IElementFUl +/* 80325B98 00322AF8 48 04 6E ED */ bl __nw__8IElementFUlPCcPCc /* 80325B9C 00322AFC 7C 60 1B 79 */ or. r0, r3, r3 /* 80325BA0 00322B00 41 82 00 14 */ beq lbl_80325BB4 /* 80325BA4 00322B04 7F 84 E3 78 */ mr r4, r28 @@ -1354,7 +1354,7 @@ lbl_80325BBC: /* 80325BF0 00322B50 38 60 00 10 */ li r3, 0x10 /* 80325BF4 00322B54 7C 1E 03 78 */ mr r30, r0 /* 80325BF8 00322B58 38 A0 00 00 */ li r5, 0 -/* 80325BFC 00322B5C 48 04 6E 89 */ bl __nw__8IElementFUl +/* 80325BFC 00322B5C 48 04 6E 89 */ bl __nw__8IElementFUlPCcPCc /* 80325C00 00322B60 7C 60 1B 79 */ or. r0, r3, r3 /* 80325C04 00322B64 41 82 00 18 */ beq lbl_80325C1C /* 80325C08 00322B68 7F 84 E3 78 */ mr r4, r28 @@ -1386,7 +1386,7 @@ lbl_80325C24: /* 80325C68 00322BC8 38 60 00 14 */ li r3, 0x14 /* 80325C6C 00322BCC 7C 1F 03 78 */ mr r31, r0 /* 80325C70 00322BD0 38 A0 00 00 */ li r5, 0 -/* 80325C74 00322BD4 48 04 6E 11 */ bl __nw__8IElementFUl +/* 80325C74 00322BD4 48 04 6E 11 */ bl __nw__8IElementFUlPCcPCc /* 80325C78 00322BD8 7C 60 1B 79 */ or. r0, r3, r3 /* 80325C7C 00322BDC 41 82 00 1C */ beq lbl_80325C98 /* 80325C80 00322BE0 7F 84 E3 78 */ mr r4, r28 @@ -1423,7 +1423,7 @@ lbl_80325CA0: /* 80325CF4 00322C54 38 60 00 18 */ li r3, 0x18 /* 80325CF8 00322C58 7C 1B 03 78 */ mr r27, r0 /* 80325CFC 00322C5C 38 A0 00 00 */ li r5, 0 -/* 80325D00 00322C60 48 04 6D 85 */ bl __nw__8IElementFUl +/* 80325D00 00322C60 48 04 6D 85 */ bl __nw__8IElementFUlPCcPCc /* 80325D04 00322C64 7C 60 1B 79 */ or. r0, r3, r3 /* 80325D08 00322C68 41 82 00 20 */ beq lbl_80325D28 /* 80325D0C 00322C6C 7F 84 E3 78 */ mr r4, r28 @@ -1461,7 +1461,7 @@ lbl_80325D30: /* 80325D84 00322CE4 38 60 00 18 */ li r3, 0x18 /* 80325D88 00322CE8 7C 1F 03 78 */ mr r31, r0 /* 80325D8C 00322CEC 38 A0 00 00 */ li r5, 0 -/* 80325D90 00322CF0 48 04 6C F5 */ bl __nw__8IElementFUl +/* 80325D90 00322CF0 48 04 6C F5 */ bl __nw__8IElementFUlPCcPCc /* 80325D94 00322CF4 7C 60 1B 79 */ or. r0, r3, r3 /* 80325D98 00322CF8 41 82 00 20 */ beq lbl_80325DB8 /* 80325D9C 00322CFC 7F 64 DB 78 */ mr r4, r27 @@ -1499,7 +1499,7 @@ lbl_80325DC0: /* 80325E14 00322D74 38 60 00 18 */ li r3, 0x18 /* 80325E18 00322D78 7C 1F 03 78 */ mr r31, r0 /* 80325E1C 00322D7C 38 A0 00 00 */ li r5, 0 -/* 80325E20 00322D80 48 04 6C 65 */ bl __nw__8IElementFUl +/* 80325E20 00322D80 48 04 6C 65 */ bl __nw__8IElementFUlPCcPCc /* 80325E24 00322D84 7C 60 1B 79 */ or. r0, r3, r3 /* 80325E28 00322D88 41 82 00 20 */ beq lbl_80325E48 /* 80325E2C 00322D8C 7F 64 DB 78 */ mr r4, r27 @@ -1533,7 +1533,7 @@ lbl_80325E50: /* 80325E94 00322DF4 38 60 00 14 */ li r3, 0x14 /* 80325E98 00322DF8 7C 1E 03 78 */ mr r30, r0 /* 80325E9C 00322DFC 38 A0 00 00 */ li r5, 0 -/* 80325EA0 00322E00 48 04 6B E5 */ bl __nw__8IElementFUl +/* 80325EA0 00322E00 48 04 6B E5 */ bl __nw__8IElementFUlPCcPCc /* 80325EA4 00322E04 7C 60 1B 79 */ or. r0, r3, r3 /* 80325EA8 00322E08 41 82 00 1C */ beq lbl_80325EC4 /* 80325EAC 00322E0C 7F 64 DB 78 */ mr r4, r27 @@ -1569,7 +1569,7 @@ lbl_80325ECC: /* 80325F1C 00322E7C 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325F20 00322E80 38 60 00 28 */ li r3, 0x28 /* 80325F24 00322E84 38 A0 00 00 */ li r5, 0 -/* 80325F28 00322E88 48 04 6B 5D */ bl __nw__8IElementFUl +/* 80325F28 00322E88 48 04 6B 5D */ bl __nw__8IElementFUlPCcPCc /* 80325F2C 00322E8C 7C 60 1B 79 */ or. r0, r3, r3 /* 80325F30 00322E90 41 82 00 20 */ beq lbl_80325F50 /* 80325F34 00322E94 7F 64 DB 78 */ mr r4, r27 @@ -1587,7 +1587,7 @@ lbl_80325F58: /* 80325F5C 00322EBC 38 60 00 08 */ li r3, 8 /* 80325F60 00322EC0 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80325F64 00322EC4 38 A0 00 00 */ li r5, 0 -/* 80325F68 00322EC8 48 04 6B 1D */ bl __nw__8IElementFUl +/* 80325F68 00322EC8 48 04 6B 1D */ bl __nw__8IElementFUlPCcPCc /* 80325F6C 00322ECC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80325F70 00322ED0 41 82 00 28 */ beq lbl_80325F98 /* 80325F74 00322ED4 7F E3 FB 78 */ mr r3, r31 @@ -1674,7 +1674,7 @@ lbl_80326084: /* 80326090 00322FF0 38 60 00 0C */ li r3, 0xc /* 80326094 00322FF4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326098 00322FF8 38 A0 00 00 */ li r5, 0 -/* 8032609C 00322FFC 48 04 69 E9 */ bl __nw__8IElementFUl +/* 8032609C 00322FFC 48 04 69 E9 */ bl __nw__8IElementFUlPCcPCc /* 803260A0 00323000 7C 60 1B 79 */ or. r0, r3, r3 /* 803260A4 00323004 41 82 00 1C */ beq lbl_803260C0 /* 803260A8 00323008 7F C4 F3 78 */ mr r4, r30 @@ -1700,7 +1700,7 @@ lbl_803260C8: /* 803260EC 0032304C 38 60 00 0C */ li r3, 0xc /* 803260F0 00323050 7C 1D 03 78 */ mr r29, r0 /* 803260F4 00323054 38 A0 00 00 */ li r5, 0 -/* 803260F8 00323058 48 04 69 8D */ bl __nw__8IElementFUl +/* 803260F8 00323058 48 04 69 8D */ bl __nw__8IElementFUlPCcPCc /* 803260FC 0032305C 7C 60 1B 79 */ or. r0, r3, r3 /* 80326100 00323060 41 82 00 14 */ beq lbl_80326114 /* 80326104 00323064 7F 84 E3 78 */ mr r4, r28 @@ -1727,7 +1727,7 @@ lbl_8032611C: /* 80326150 003230B0 38 60 00 10 */ li r3, 0x10 /* 80326154 003230B4 7C 1E 03 78 */ mr r30, r0 /* 80326158 003230B8 38 A0 00 00 */ li r5, 0 -/* 8032615C 003230BC 48 04 69 29 */ bl __nw__8IElementFUl +/* 8032615C 003230BC 48 04 69 29 */ bl __nw__8IElementFUlPCcPCc /* 80326160 003230C0 7C 60 1B 79 */ or. r0, r3, r3 /* 80326164 003230C4 41 82 00 18 */ beq lbl_8032617C /* 80326168 003230C8 7F 84 E3 78 */ mr r4, r28 @@ -1771,7 +1771,7 @@ lbl_80326184: /* 803261F8 00323158 38 60 00 20 */ li r3, 0x20 /* 803261FC 0032315C 7C 19 03 78 */ mr r25, r0 /* 80326200 00323160 38 A0 00 00 */ li r5, 0 -/* 80326204 00323164 48 04 68 81 */ bl __nw__8IElementFUl +/* 80326204 00323164 48 04 68 81 */ bl __nw__8IElementFUlPCcPCc /* 80326208 00323168 7C 60 1B 79 */ or. r0, r3, r3 /* 8032620C 0032316C 41 82 00 28 */ beq lbl_80326234 /* 80326210 00323170 7F 84 E3 78 */ mr r4, r28 @@ -2030,7 +2030,7 @@ lbl_803265AC: /* 803265B0 00323510 38 60 00 10 */ li r3, 0x10 /* 803265B4 00323514 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803265B8 00323518 38 A0 00 00 */ li r5, 0 -/* 803265BC 0032351C 48 04 64 C9 */ bl __nw__8IElementFUl +/* 803265BC 0032351C 48 04 64 C9 */ bl __nw__8IElementFUlPCcPCc /* 803265C0 00323520 7C 60 1B 79 */ or. r0, r3, r3 /* 803265C4 00323524 41 82 00 18 */ beq lbl_803265DC /* 803265C8 00323528 C0 21 00 10 */ lfs f1, 0x10(r1) @@ -2046,7 +2046,7 @@ lbl_803265E4: /* 803265E8 00323548 38 60 00 10 */ li r3, 0x10 /* 803265EC 0032354C 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803265F0 00323550 38 A0 00 00 */ li r5, 0 -/* 803265F4 00323554 48 04 64 91 */ bl __nw__8IElementFUl +/* 803265F4 00323554 48 04 64 91 */ bl __nw__8IElementFUlPCcPCc /* 803265F8 00323558 7C 60 1B 79 */ or. r0, r3, r3 /* 803265FC 0032355C 41 82 00 18 */ beq lbl_80326614 /* 80326600 00323560 7F 84 E3 78 */ mr r4, r28 @@ -2062,7 +2062,7 @@ lbl_8032661C: /* 80326620 00323580 38 60 00 28 */ li r3, 0x28 /* 80326624 00323584 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326628 00323588 38 A0 00 00 */ li r5, 0 -/* 8032662C 0032358C 48 04 64 59 */ bl __nw__8IElementFUl +/* 8032662C 0032358C 48 04 64 59 */ bl __nw__8IElementFUlPCcPCc /* 80326630 00323590 7C 60 1B 79 */ or. r0, r3, r3 /* 80326634 00323594 41 82 00 10 */ beq lbl_80326644 /* 80326638 00323598 7F E4 FB 78 */ mr r4, r31 @@ -2096,7 +2096,7 @@ lbl_8032664C: /* 803266A0 00323600 38 60 00 18 */ li r3, 0x18 /* 803266A4 00323604 7C 1F 03 78 */ mr r31, r0 /* 803266A8 00323608 38 A0 00 00 */ li r5, 0 -/* 803266AC 0032360C 48 04 63 D9 */ bl __nw__8IElementFUl +/* 803266AC 0032360C 48 04 63 D9 */ bl __nw__8IElementFUlPCcPCc /* 803266B0 00323610 7C 60 1B 79 */ or. r0, r3, r3 /* 803266B4 00323614 41 82 00 20 */ beq lbl_803266D4 /* 803266B8 00323618 7F 64 DB 78 */ mr r4, r27 @@ -2122,7 +2122,7 @@ lbl_803266DC: /* 80326700 00323660 38 60 00 24 */ li r3, 0x24 /* 80326704 00323664 7C 1C 03 78 */ mr r28, r0 /* 80326708 00323668 38 A0 00 00 */ li r5, 0 -/* 8032670C 0032366C 48 04 63 79 */ bl __nw__8IElementFUl +/* 8032670C 0032366C 48 04 63 79 */ bl __nw__8IElementFUlPCcPCc /* 80326710 00323670 7C 60 1B 79 */ or. r0, r3, r3 /* 80326714 00323674 41 82 00 14 */ beq lbl_80326728 /* 80326718 00323678 7F 64 DB 78 */ mr r4, r27 @@ -2157,7 +2157,7 @@ lbl_80326730: /* 80326784 003236E4 38 60 00 2C */ li r3, 0x2c /* 80326788 003236E8 7C 1F 03 78 */ mr r31, r0 /* 8032678C 003236EC 38 A0 00 00 */ li r5, 0 -/* 80326790 003236F0 48 04 62 F5 */ bl __nw__8IElementFUl +/* 80326790 003236F0 48 04 62 F5 */ bl __nw__8IElementFUlPCcPCc /* 80326794 003236F4 7C 60 1B 79 */ or. r0, r3, r3 /* 80326798 003236F8 41 82 00 20 */ beq lbl_803267B8 /* 8032679C 003236FC 7F 64 DB 78 */ mr r4, r27 @@ -2191,7 +2191,7 @@ lbl_803267C0: /* 80326804 00323764 38 60 00 28 */ li r3, 0x28 /* 80326808 00323768 7C 1E 03 78 */ mr r30, r0 /* 8032680C 0032376C 38 A0 00 00 */ li r5, 0 -/* 80326810 00323770 48 04 62 75 */ bl __nw__8IElementFUl +/* 80326810 00323770 48 04 62 75 */ bl __nw__8IElementFUlPCcPCc /* 80326814 00323774 7C 60 1B 79 */ or. r0, r3, r3 /* 80326818 00323778 41 82 00 1C */ beq lbl_80326834 /* 8032681C 0032377C 7F 64 DB 78 */ mr r4, r27 @@ -2216,7 +2216,7 @@ lbl_8032683C: /* 80326860 003237C0 38 60 00 0C */ li r3, 0xc /* 80326864 003237C4 7C 1C 03 78 */ mr r28, r0 /* 80326868 003237C8 38 A0 00 00 */ li r5, 0 -/* 8032686C 003237CC 48 04 62 19 */ bl __nw__8IElementFUl +/* 8032686C 003237CC 48 04 62 19 */ bl __nw__8IElementFUlPCcPCc /* 80326870 003237D0 7C 60 1B 79 */ or. r0, r3, r3 /* 80326874 003237D4 41 82 00 14 */ beq lbl_80326888 /* 80326878 003237D8 7F 64 DB 78 */ mr r4, r27 @@ -2239,7 +2239,7 @@ lbl_80326890: /* 803268B4 00323814 38 60 00 0C */ li r3, 0xc /* 803268B8 00323818 7C 1C 03 78 */ mr r28, r0 /* 803268BC 0032381C 38 A0 00 00 */ li r5, 0 -/* 803268C0 00323820 48 04 61 C5 */ bl __nw__8IElementFUl +/* 803268C0 00323820 48 04 61 C5 */ bl __nw__8IElementFUlPCcPCc /* 803268C4 00323824 7C 60 1B 79 */ or. r0, r3, r3 /* 803268C8 00323828 41 82 00 14 */ beq lbl_803268DC /* 803268CC 0032382C 7F 64 DB 78 */ mr r4, r27 @@ -2266,7 +2266,7 @@ lbl_803268E4: /* 80326918 00323878 38 60 00 10 */ li r3, 0x10 /* 8032691C 0032387C 7C 1D 03 78 */ mr r29, r0 /* 80326920 00323880 38 A0 00 00 */ li r5, 0 -/* 80326924 00323884 48 04 61 61 */ bl __nw__8IElementFUl +/* 80326924 00323884 48 04 61 61 */ bl __nw__8IElementFUlPCcPCc /* 80326928 00323888 7C 60 1B 79 */ or. r0, r3, r3 /* 8032692C 0032388C 41 82 00 18 */ beq lbl_80326944 /* 80326930 00323890 7F 64 DB 78 */ mr r4, r27 @@ -2298,7 +2298,7 @@ lbl_8032694C: /* 80326990 003238F0 38 60 00 14 */ li r3, 0x14 /* 80326994 003238F4 7C 1E 03 78 */ mr r30, r0 /* 80326998 003238F8 38 A0 00 00 */ li r5, 0 -/* 8032699C 003238FC 48 04 60 E9 */ bl __nw__8IElementFUl +/* 8032699C 003238FC 48 04 60 E9 */ bl __nw__8IElementFUlPCcPCc /* 803269A0 00323900 7C 60 1B 79 */ or. r0, r3, r3 /* 803269A4 00323904 41 82 00 1C */ beq lbl_803269C0 /* 803269A8 00323908 7F 64 DB 78 */ mr r4, r27 @@ -2319,7 +2319,7 @@ lbl_803269C8: /* 803269DC 0032393C 38 60 00 08 */ li r3, 8 /* 803269E0 00323940 7C 1B 03 78 */ mr r27, r0 /* 803269E4 00323944 38 A0 00 00 */ li r5, 0 -/* 803269E8 00323948 48 04 60 9D */ bl __nw__8IElementFUl +/* 803269E8 00323948 48 04 60 9D */ bl __nw__8IElementFUlPCcPCc /* 803269EC 0032394C 7C 60 1B 79 */ or. r0, r3, r3 /* 803269F0 00323950 41 82 00 10 */ beq lbl_80326A00 /* 803269F4 00323954 7F 64 DB 78 */ mr r4, r27 @@ -2333,7 +2333,7 @@ lbl_80326A08: /* 80326A0C 0032396C 38 60 00 04 */ li r3, 4 /* 80326A10 00323970 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326A14 00323974 38 A0 00 00 */ li r5, 0 -/* 80326A18 00323978 48 04 60 6D */ bl __nw__8IElementFUl +/* 80326A18 00323978 48 04 60 6D */ bl __nw__8IElementFUlPCcPCc /* 80326A1C 0032397C 28 03 00 00 */ cmplwi r3, 0 /* 80326A20 00323980 41 82 02 5C */ beq lbl_80326C7C /* 80326A24 00323984 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2351,7 +2351,7 @@ lbl_80326A4C: /* 80326A50 003239B0 38 60 00 04 */ li r3, 4 /* 80326A54 003239B4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326A58 003239B8 38 A0 00 00 */ li r5, 0 -/* 80326A5C 003239BC 48 04 60 29 */ bl __nw__8IElementFUl +/* 80326A5C 003239BC 48 04 60 29 */ bl __nw__8IElementFUlPCcPCc /* 80326A60 003239C0 28 03 00 00 */ cmplwi r3, 0 /* 80326A64 003239C4 41 82 02 18 */ beq lbl_80326C7C /* 80326A68 003239C8 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2369,7 +2369,7 @@ lbl_80326A90: /* 80326A94 003239F4 38 60 00 04 */ li r3, 4 /* 80326A98 003239F8 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326A9C 003239FC 38 A0 00 00 */ li r5, 0 -/* 80326AA0 00323A00 48 04 5F E5 */ bl __nw__8IElementFUl +/* 80326AA0 00323A00 48 04 5F E5 */ bl __nw__8IElementFUlPCcPCc /* 80326AA4 00323A04 28 03 00 00 */ cmplwi r3, 0 /* 80326AA8 00323A08 41 82 01 D4 */ beq lbl_80326C7C /* 80326AAC 00323A0C 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2387,7 +2387,7 @@ lbl_80326AD4: /* 80326AD8 00323A38 38 60 00 04 */ li r3, 4 /* 80326ADC 00323A3C 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326AE0 00323A40 38 A0 00 00 */ li r5, 0 -/* 80326AE4 00323A44 48 04 5F A1 */ bl __nw__8IElementFUl +/* 80326AE4 00323A44 48 04 5F A1 */ bl __nw__8IElementFUlPCcPCc /* 80326AE8 00323A48 28 03 00 00 */ cmplwi r3, 0 /* 80326AEC 00323A4C 41 82 01 90 */ beq lbl_80326C7C /* 80326AF0 00323A50 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2405,7 +2405,7 @@ lbl_80326B18: /* 80326B1C 00323A7C 38 60 00 04 */ li r3, 4 /* 80326B20 00323A80 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326B24 00323A84 38 A0 00 00 */ li r5, 0 -/* 80326B28 00323A88 48 04 5F 5D */ bl __nw__8IElementFUl +/* 80326B28 00323A88 48 04 5F 5D */ bl __nw__8IElementFUlPCcPCc /* 80326B2C 00323A8C 28 03 00 00 */ cmplwi r3, 0 /* 80326B30 00323A90 41 82 01 4C */ beq lbl_80326C7C /* 80326B34 00323A94 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2423,7 +2423,7 @@ lbl_80326B5C: /* 80326B60 00323AC0 38 60 00 04 */ li r3, 4 /* 80326B64 00323AC4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326B68 00323AC8 38 A0 00 00 */ li r5, 0 -/* 80326B6C 00323ACC 48 04 5F 19 */ bl __nw__8IElementFUl +/* 80326B6C 00323ACC 48 04 5F 19 */ bl __nw__8IElementFUlPCcPCc /* 80326B70 00323AD0 28 03 00 00 */ cmplwi r3, 0 /* 80326B74 00323AD4 41 82 01 08 */ beq lbl_80326C7C /* 80326B78 00323AD8 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2441,7 +2441,7 @@ lbl_80326BA0: /* 80326BA4 00323B04 38 60 00 04 */ li r3, 4 /* 80326BA8 00323B08 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326BAC 00323B0C 38 A0 00 00 */ li r5, 0 -/* 80326BB0 00323B10 48 04 5E D5 */ bl __nw__8IElementFUl +/* 80326BB0 00323B10 48 04 5E D5 */ bl __nw__8IElementFUlPCcPCc /* 80326BB4 00323B14 28 03 00 00 */ cmplwi r3, 0 /* 80326BB8 00323B18 41 82 00 C4 */ beq lbl_80326C7C /* 80326BBC 00323B1C 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -2467,7 +2467,7 @@ lbl_80326BE4: /* 80326C08 00323B68 38 60 00 0C */ li r3, 0xc /* 80326C0C 00323B6C 7C 1C 03 78 */ mr r28, r0 /* 80326C10 00323B70 38 A0 00 00 */ li r5, 0 -/* 80326C14 00323B74 48 04 5E 71 */ bl __nw__8IElementFUl +/* 80326C14 00323B74 48 04 5E 71 */ bl __nw__8IElementFUlPCcPCc /* 80326C18 00323B78 7C 60 1B 79 */ or. r0, r3, r3 /* 80326C1C 00323B7C 41 82 00 14 */ beq lbl_80326C30 /* 80326C20 00323B80 7F 64 DB 78 */ mr r4, r27 @@ -2486,7 +2486,7 @@ lbl_80326C38: /* 80326C4C 00323BAC 38 60 00 08 */ li r3, 8 /* 80326C50 00323BB0 7C 1B 03 78 */ mr r27, r0 /* 80326C54 00323BB4 38 A0 00 00 */ li r5, 0 -/* 80326C58 00323BB8 48 04 5E 2D */ bl __nw__8IElementFUl +/* 80326C58 00323BB8 48 04 5E 2D */ bl __nw__8IElementFUlPCcPCc /* 80326C5C 00323BBC 7C 60 1B 79 */ or. r0, r3, r3 /* 80326C60 00323BC0 41 82 00 10 */ beq lbl_80326C70 /* 80326C64 00323BC4 7F 64 DB 78 */ mr r4, r27 @@ -2716,7 +2716,7 @@ lbl_80326F88: /* 80326F8C 00323EEC 38 60 00 08 */ li r3, 8 /* 80326F90 00323EF0 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326F94 00323EF4 38 A0 00 00 */ li r5, 0 -/* 80326F98 00323EF8 48 04 5A ED */ bl __nw__8IElementFUl +/* 80326F98 00323EF8 48 04 5A ED */ bl __nw__8IElementFUlPCcPCc /* 80326F9C 00323EFC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80326FA0 00323F00 41 82 00 18 */ beq lbl_80326FB8 /* 80326FA4 00323F04 7F E3 FB 78 */ mr r3, r31 @@ -2735,7 +2735,7 @@ lbl_80326FC8: /* 80326FCC 00323F2C 38 60 00 28 */ li r3, 0x28 /* 80326FD0 00323F30 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80326FD4 00323F34 38 A0 00 00 */ li r5, 0 -/* 80326FD8 00323F38 48 04 5A AD */ bl __nw__8IElementFUl +/* 80326FD8 00323F38 48 04 5A AD */ bl __nw__8IElementFUlPCcPCc /* 80326FDC 00323F3C 7C 60 1B 79 */ or. r0, r3, r3 /* 80326FE0 00323F40 41 82 00 10 */ beq lbl_80326FF0 /* 80326FE4 00323F44 7F E4 FB 78 */ mr r4, r31 @@ -2749,7 +2749,7 @@ lbl_80326FF8: /* 80326FFC 00323F5C 38 60 00 08 */ li r3, 8 /* 80327000 00323F60 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327004 00323F64 38 A0 00 00 */ li r5, 0 -/* 80327008 00323F68 48 04 5A 7D */ bl __nw__8IElementFUl +/* 80327008 00323F68 48 04 5A 7D */ bl __nw__8IElementFUlPCcPCc /* 8032700C 00323F6C 7C 7E 1B 79 */ or. r30, r3, r3 /* 80327010 00323F70 41 82 00 1C */ beq lbl_8032702C /* 80327014 00323F74 7F E3 FB 78 */ mr r3, r31 @@ -2778,7 +2778,7 @@ lbl_80327034: /* 80327068 00323FC8 38 60 00 10 */ li r3, 0x10 /* 8032706C 00323FCC 7C 1D 03 78 */ mr r29, r0 /* 80327070 00323FD0 38 A0 00 00 */ li r5, 0 -/* 80327074 00323FD4 48 04 5A 11 */ bl __nw__8IElementFUl +/* 80327074 00323FD4 48 04 5A 11 */ bl __nw__8IElementFUlPCcPCc /* 80327078 00323FD8 7C 60 1B 79 */ or. r0, r3, r3 /* 8032707C 00323FDC 41 82 00 18 */ beq lbl_80327094 /* 80327080 00323FE0 7F A4 EB 78 */ mr r4, r29 @@ -2802,7 +2802,7 @@ lbl_8032709C: /* 803270C0 00324020 38 60 00 0C */ li r3, 0xc /* 803270C4 00324024 7C 1E 03 78 */ mr r30, r0 /* 803270C8 00324028 38 A0 00 00 */ li r5, 0 -/* 803270CC 0032402C 48 04 59 B9 */ bl __nw__8IElementFUl +/* 803270CC 0032402C 48 04 59 B9 */ bl __nw__8IElementFUlPCcPCc /* 803270D0 00324030 7C 60 1B 79 */ or. r0, r3, r3 /* 803270D4 00324034 41 82 00 14 */ beq lbl_803270E8 /* 803270D8 00324038 7F A4 EB 78 */ mr r4, r29 @@ -2825,7 +2825,7 @@ lbl_803270F0: /* 80327114 00324074 38 60 00 0C */ li r3, 0xc /* 80327118 00324078 7C 1E 03 78 */ mr r30, r0 /* 8032711C 0032407C 38 A0 00 00 */ li r5, 0 -/* 80327120 00324080 48 04 59 65 */ bl __nw__8IElementFUl +/* 80327120 00324080 48 04 59 65 */ bl __nw__8IElementFUlPCcPCc /* 80327124 00324084 7C 60 1B 79 */ or. r0, r3, r3 /* 80327128 00324088 41 82 00 14 */ beq lbl_8032713C /* 8032712C 0032408C 7F A4 EB 78 */ mr r4, r29 @@ -2848,7 +2848,7 @@ lbl_80327144: /* 80327168 003240C8 38 60 00 0C */ li r3, 0xc /* 8032716C 003240CC 7C 1E 03 78 */ mr r30, r0 /* 80327170 003240D0 38 A0 00 00 */ li r5, 0 -/* 80327174 003240D4 48 04 59 11 */ bl __nw__8IElementFUl +/* 80327174 003240D4 48 04 59 11 */ bl __nw__8IElementFUlPCcPCc /* 80327178 003240D8 7C 60 1B 79 */ or. r0, r3, r3 /* 8032717C 003240DC 41 82 00 14 */ beq lbl_80327190 /* 80327180 003240E0 7F A4 EB 78 */ mr r4, r29 @@ -2871,7 +2871,7 @@ lbl_80327198: /* 803271BC 0032411C 38 60 00 0C */ li r3, 0xc /* 803271C0 00324120 7C 1E 03 78 */ mr r30, r0 /* 803271C4 00324124 38 A0 00 00 */ li r5, 0 -/* 803271C8 00324128 48 04 58 BD */ bl __nw__8IElementFUl +/* 803271C8 00324128 48 04 58 BD */ bl __nw__8IElementFUlPCcPCc /* 803271CC 0032412C 7C 60 1B 79 */ or. r0, r3, r3 /* 803271D0 00324130 41 82 00 14 */ beq lbl_803271E4 /* 803271D4 00324134 7F A4 EB 78 */ mr r4, r29 @@ -2894,12 +2894,12 @@ lbl_803271EC: /* 80327210 00324170 38 60 00 0C */ li r3, 0xc /* 80327214 00324174 7C 1E 03 78 */ mr r30, r0 /* 80327218 00324178 38 A0 00 00 */ li r5, 0 -/* 8032721C 0032417C 48 04 58 69 */ bl __nw__8IElementFUl +/* 8032721C 0032417C 48 04 58 69 */ bl __nw__8IElementFUlPCcPCc /* 80327220 00324180 7C 60 1B 79 */ or. r0, r3, r3 /* 80327224 00324184 41 82 00 14 */ beq lbl_80327238 /* 80327228 00324188 7F A4 EB 78 */ mr r4, r29 /* 8032722C 0032418C 7F C5 F3 78 */ mr r5, r30 -/* 80327230 00324190 48 00 B3 7D */ bl __ct__16CREInitialRandomFC12CRealElementC12CRealElement +/* 80327230 00324190 48 00 B3 7D */ bl __ct__16CREInitialRandomFP12CRealElementP12CRealElement /* 80327234 00324194 7C 60 1B 78 */ mr r0, r3 lbl_80327238: /* 80327238 00324198 7C 03 03 78 */ mr r3, r0 @@ -2921,7 +2921,7 @@ lbl_80327240: /* 80327274 003241D4 38 60 00 10 */ li r3, 0x10 /* 80327278 003241D8 7C 1F 03 78 */ mr r31, r0 /* 8032727C 003241DC 38 A0 00 00 */ li r5, 0 -/* 80327280 003241E0 48 04 58 05 */ bl __nw__8IElementFUl +/* 80327280 003241E0 48 04 58 05 */ bl __nw__8IElementFUlPCcPCc /* 80327284 003241E4 7C 60 1B 79 */ or. r0, r3, r3 /* 80327288 003241E8 41 82 00 18 */ beq lbl_803272A0 /* 8032728C 003241EC 7F A4 EB 78 */ mr r4, r29 @@ -2949,7 +2949,7 @@ lbl_803272A8: /* 803272DC 0032423C 38 60 00 10 */ li r3, 0x10 /* 803272E0 00324240 7C 1F 03 78 */ mr r31, r0 /* 803272E4 00324244 38 A0 00 00 */ li r5, 0 -/* 803272E8 00324248 48 04 57 9D */ bl __nw__8IElementFUl +/* 803272E8 00324248 48 04 57 9D */ bl __nw__8IElementFUlPCcPCc /* 803272EC 0032424C 7C 60 1B 79 */ or. r0, r3, r3 /* 803272F0 00324250 41 82 00 18 */ beq lbl_80327308 /* 803272F4 00324254 7F A4 EB 78 */ mr r4, r29 @@ -2981,7 +2981,7 @@ lbl_80327310: /* 80327354 003242B4 38 60 00 14 */ li r3, 0x14 /* 80327358 003242B8 7C 1C 03 78 */ mr r28, r0 /* 8032735C 003242BC 38 A0 00 00 */ li r5, 0 -/* 80327360 003242C0 48 04 57 25 */ bl __nw__8IElementFUl +/* 80327360 003242C0 48 04 57 25 */ bl __nw__8IElementFUlPCcPCc /* 80327364 003242C4 7C 60 1B 79 */ or. r0, r3, r3 /* 80327368 003242C8 41 82 00 1C */ beq lbl_80327384 /* 8032736C 003242CC 7F A4 EB 78 */ mr r4, r29 @@ -3002,7 +3002,7 @@ lbl_8032738C: /* 803273A0 00324300 38 60 00 08 */ li r3, 8 /* 803273A4 00324304 7C 1C 03 78 */ mr r28, r0 /* 803273A8 00324308 38 A0 00 00 */ li r5, 0 -/* 803273AC 0032430C 48 04 56 D9 */ bl __nw__8IElementFUl +/* 803273AC 0032430C 48 04 56 D9 */ bl __nw__8IElementFUlPCcPCc /* 803273B0 00324310 7C 60 1B 79 */ or. r0, r3, r3 /* 803273B4 00324314 41 82 00 10 */ beq lbl_803273C4 /* 803273B8 00324318 7F 84 E3 78 */ mr r4, r28 @@ -3024,7 +3024,7 @@ lbl_803273CC: /* 803273F0 00324350 38 60 00 0C */ li r3, 0xc /* 803273F4 00324354 7C 1D 03 78 */ mr r29, r0 /* 803273F8 00324358 38 A0 00 00 */ li r5, 0 -/* 803273FC 0032435C 48 04 56 89 */ bl __nw__8IElementFUl +/* 803273FC 0032435C 48 04 56 89 */ bl __nw__8IElementFUlPCcPCc /* 80327400 00324360 7C 60 1B 79 */ or. r0, r3, r3 /* 80327404 00324364 41 82 00 14 */ beq lbl_80327418 /* 80327408 00324368 7F 84 E3 78 */ mr r4, r28 @@ -3039,16 +3039,16 @@ lbl_80327420: /* 80327424 00324384 38 60 00 04 */ li r3, 4 /* 80327428 00324388 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 8032742C 0032438C 38 A0 00 00 */ li r5, 0 -/* 80327430 00324390 48 04 56 55 */ bl __nw__8IElementFUl +/* 80327430 00324390 48 04 56 55 */ bl __nw__8IElementFUlPCcPCc /* 80327434 00324394 28 03 00 00 */ cmplwi r3, 0 /* 80327438 00324398 41 82 07 58 */ beq lbl_80327B90 /* 8032743C 0032439C 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 80327440 003243A0 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327444 003243A4 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 80327448 003243A8 3C 80 80 3F */ lis r4, lbl_803EDF34@ha +/* 80327448 003243A8 3C 80 80 3F */ lis r4, __vt__30CREParticleRotationOrLineWidth@ha /* 8032744C 003243AC 90 03 00 00 */ stw r0, 0(r3) /* 80327450 003243B0 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327454 003243B4 38 04 DF 34 */ addi r0, r4, lbl_803EDF34@l +/* 80327454 003243B4 38 04 DF 34 */ addi r0, r4, __vt__30CREParticleRotationOrLineWidth@l /* 80327458 003243B8 90 A3 00 00 */ stw r5, 0(r3) /* 8032745C 003243BC 90 03 00 00 */ stw r0, 0(r3) /* 80327460 003243C0 48 00 07 30 */ b lbl_80327B90 @@ -3057,16 +3057,16 @@ lbl_80327464: /* 80327468 003243C8 38 60 00 04 */ li r3, 4 /* 8032746C 003243CC 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327470 003243D0 38 A0 00 00 */ li r5, 0 -/* 80327474 003243D4 48 04 56 11 */ bl __nw__8IElementFUl +/* 80327474 003243D4 48 04 56 11 */ bl __nw__8IElementFUlPCcPCc /* 80327478 003243D8 28 03 00 00 */ cmplwi r3, 0 /* 8032747C 003243DC 41 82 07 14 */ beq lbl_80327B90 /* 80327480 003243E0 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 80327484 003243E4 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327488 003243E8 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 8032748C 003243EC 3C 80 80 3F */ lis r4, lbl_803EDF48@ha +/* 8032748C 003243EC 3C 80 80 3F */ lis r4, __vt__27CREParticleSizeOrLineLength@ha /* 80327490 003243F0 90 03 00 00 */ stw r0, 0(r3) /* 80327494 003243F4 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327498 003243F8 38 04 DF 48 */ addi r0, r4, lbl_803EDF48@l +/* 80327498 003243F8 38 04 DF 48 */ addi r0, r4, __vt__27CREParticleSizeOrLineLength@l /* 8032749C 003243FC 90 A3 00 00 */ stw r5, 0(r3) /* 803274A0 00324400 90 03 00 00 */ stw r0, 0(r3) /* 803274A4 00324404 48 00 06 EC */ b lbl_80327B90 @@ -3075,16 +3075,16 @@ lbl_803274A8: /* 803274AC 0032440C 38 60 00 04 */ li r3, 4 /* 803274B0 00324410 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803274B4 00324414 38 A0 00 00 */ li r5, 0 -/* 803274B8 00324418 48 04 55 CD */ bl __nw__8IElementFUl +/* 803274B8 00324418 48 04 55 CD */ bl __nw__8IElementFUlPCcPCc /* 803274BC 0032441C 28 03 00 00 */ cmplwi r3, 0 /* 803274C0 00324420 41 82 06 D0 */ beq lbl_80327B90 /* 803274C4 00324424 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 803274C8 00324428 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 803274CC 0032442C 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 803274D0 00324430 3C 80 80 3F */ lis r4, lbl_803EDFE8@ha +/* 803274D0 00324430 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter1@ha /* 803274D4 00324434 90 03 00 00 */ stw r0, 0(r3) /* 803274D8 00324438 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 803274DC 0032443C 38 04 DF E8 */ addi r0, r4, lbl_803EDFE8@l +/* 803274DC 0032443C 38 04 DF E8 */ addi r0, r4, __vt__27CREParticleAccessParameter1@l /* 803274E0 00324440 90 A3 00 00 */ stw r5, 0(r3) /* 803274E4 00324444 90 03 00 00 */ stw r0, 0(r3) /* 803274E8 00324448 48 00 06 A8 */ b lbl_80327B90 @@ -3093,16 +3093,16 @@ lbl_803274EC: /* 803274F0 00324450 38 60 00 04 */ li r3, 4 /* 803274F4 00324454 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803274F8 00324458 38 A0 00 00 */ li r5, 0 -/* 803274FC 0032445C 48 04 55 89 */ bl __nw__8IElementFUl +/* 803274FC 0032445C 48 04 55 89 */ bl __nw__8IElementFUlPCcPCc /* 80327500 00324460 28 03 00 00 */ cmplwi r3, 0 /* 80327504 00324464 41 82 06 8C */ beq lbl_80327B90 /* 80327508 00324468 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 8032750C 0032446C 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327510 00324470 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 80327514 00324474 3C 80 80 3F */ lis r4, lbl_803EDFD4@ha +/* 80327514 00324474 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter2@ha /* 80327518 00324478 90 03 00 00 */ stw r0, 0(r3) /* 8032751C 0032447C 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327520 00324480 38 04 DF D4 */ addi r0, r4, lbl_803EDFD4@l +/* 80327520 00324480 38 04 DF D4 */ addi r0, r4, __vt__27CREParticleAccessParameter2@l /* 80327524 00324484 90 A3 00 00 */ stw r5, 0(r3) /* 80327528 00324488 90 03 00 00 */ stw r0, 0(r3) /* 8032752C 0032448C 48 00 06 64 */ b lbl_80327B90 @@ -3111,16 +3111,16 @@ lbl_80327530: /* 80327534 00324494 38 60 00 04 */ li r3, 4 /* 80327538 00324498 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 8032753C 0032449C 38 A0 00 00 */ li r5, 0 -/* 80327540 003244A0 48 04 55 45 */ bl __nw__8IElementFUl +/* 80327540 003244A0 48 04 55 45 */ bl __nw__8IElementFUlPCcPCc /* 80327544 003244A4 28 03 00 00 */ cmplwi r3, 0 /* 80327548 003244A8 41 82 06 48 */ beq lbl_80327B90 /* 8032754C 003244AC 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 80327550 003244B0 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327554 003244B4 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 80327558 003244B8 3C 80 80 3F */ lis r4, lbl_803EDFC0@ha +/* 80327558 003244B8 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter3@ha /* 8032755C 003244BC 90 03 00 00 */ stw r0, 0(r3) /* 80327560 003244C0 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327564 003244C4 38 04 DF C0 */ addi r0, r4, lbl_803EDFC0@l +/* 80327564 003244C4 38 04 DF C0 */ addi r0, r4, __vt__27CREParticleAccessParameter3@l /* 80327568 003244C8 90 A3 00 00 */ stw r5, 0(r3) /* 8032756C 003244CC 90 03 00 00 */ stw r0, 0(r3) /* 80327570 003244D0 48 00 06 20 */ b lbl_80327B90 @@ -3129,16 +3129,16 @@ lbl_80327574: /* 80327578 003244D8 38 60 00 04 */ li r3, 4 /* 8032757C 003244DC 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327580 003244E0 38 A0 00 00 */ li r5, 0 -/* 80327584 003244E4 48 04 55 01 */ bl __nw__8IElementFUl +/* 80327584 003244E4 48 04 55 01 */ bl __nw__8IElementFUlPCcPCc /* 80327588 003244E8 28 03 00 00 */ cmplwi r3, 0 /* 8032758C 003244EC 41 82 06 04 */ beq lbl_80327B90 /* 80327590 003244F0 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 80327594 003244F4 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327598 003244F8 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 8032759C 003244FC 3C 80 80 3F */ lis r4, lbl_803EDFAC@ha +/* 8032759C 003244FC 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter4@ha /* 803275A0 00324500 90 03 00 00 */ stw r0, 0(r3) /* 803275A4 00324504 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 803275A8 00324508 38 04 DF AC */ addi r0, r4, lbl_803EDFAC@l +/* 803275A8 00324508 38 04 DF AC */ addi r0, r4, __vt__27CREParticleAccessParameter4@l /* 803275AC 0032450C 90 A3 00 00 */ stw r5, 0(r3) /* 803275B0 00324510 90 03 00 00 */ stw r0, 0(r3) /* 803275B4 00324514 48 00 05 DC */ b lbl_80327B90 @@ -3147,16 +3147,16 @@ lbl_803275B8: /* 803275BC 0032451C 38 60 00 04 */ li r3, 4 /* 803275C0 00324520 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 803275C4 00324524 38 A0 00 00 */ li r5, 0 -/* 803275C8 00324528 48 04 54 BD */ bl __nw__8IElementFUl +/* 803275C8 00324528 48 04 54 BD */ bl __nw__8IElementFUlPCcPCc /* 803275CC 0032452C 28 03 00 00 */ cmplwi r3, 0 /* 803275D0 00324530 41 82 05 C0 */ beq lbl_80327B90 /* 803275D4 00324534 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 803275D8 00324538 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 803275DC 0032453C 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 803275E0 00324540 3C 80 80 3F */ lis r4, lbl_803EDF98@ha +/* 803275E0 00324540 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter5@ha /* 803275E4 00324544 90 03 00 00 */ stw r0, 0(r3) /* 803275E8 00324548 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 803275EC 0032454C 38 04 DF 98 */ addi r0, r4, lbl_803EDF98@l +/* 803275EC 0032454C 38 04 DF 98 */ addi r0, r4, __vt__27CREParticleAccessParameter5@l /* 803275F0 00324550 90 A3 00 00 */ stw r5, 0(r3) /* 803275F4 00324554 90 03 00 00 */ stw r0, 0(r3) /* 803275F8 00324558 48 00 05 98 */ b lbl_80327B90 @@ -3165,16 +3165,16 @@ lbl_803275FC: /* 80327600 00324560 38 60 00 04 */ li r3, 4 /* 80327604 00324564 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327608 00324568 38 A0 00 00 */ li r5, 0 -/* 8032760C 0032456C 48 04 54 79 */ bl __nw__8IElementFUl +/* 8032760C 0032456C 48 04 54 79 */ bl __nw__8IElementFUlPCcPCc /* 80327610 00324570 28 03 00 00 */ cmplwi r3, 0 /* 80327614 00324574 41 82 05 7C */ beq lbl_80327B90 /* 80327618 00324578 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 8032761C 0032457C 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327620 00324580 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 80327624 00324584 3C 80 80 3F */ lis r4, lbl_803EDF84@ha +/* 80327624 00324584 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter6@ha /* 80327628 00324588 90 03 00 00 */ stw r0, 0(r3) /* 8032762C 0032458C 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327630 00324590 38 04 DF 84 */ addi r0, r4, lbl_803EDF84@l +/* 80327630 00324590 38 04 DF 84 */ addi r0, r4, __vt__27CREParticleAccessParameter6@l /* 80327634 00324594 90 A3 00 00 */ stw r5, 0(r3) /* 80327638 00324598 90 03 00 00 */ stw r0, 0(r3) /* 8032763C 0032459C 48 00 05 54 */ b lbl_80327B90 @@ -3183,16 +3183,16 @@ lbl_80327640: /* 80327644 003245A4 38 60 00 04 */ li r3, 4 /* 80327648 003245A8 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 8032764C 003245AC 38 A0 00 00 */ li r5, 0 -/* 80327650 003245B0 48 04 54 35 */ bl __nw__8IElementFUl +/* 80327650 003245B0 48 04 54 35 */ bl __nw__8IElementFUlPCcPCc /* 80327654 003245B4 28 03 00 00 */ cmplwi r3, 0 /* 80327658 003245B8 41 82 05 38 */ beq lbl_80327B90 /* 8032765C 003245BC 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 80327660 003245C0 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80327664 003245C4 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 80327668 003245C8 3C 80 80 3F */ lis r4, lbl_803EDF70@ha +/* 80327668 003245C8 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter7@ha /* 8032766C 003245CC 90 03 00 00 */ stw r0, 0(r3) /* 80327670 003245D0 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80327674 003245D4 38 04 DF 70 */ addi r0, r4, lbl_803EDF70@l +/* 80327674 003245D4 38 04 DF 70 */ addi r0, r4, __vt__27CREParticleAccessParameter7@l /* 80327678 003245D8 90 A3 00 00 */ stw r5, 0(r3) /* 8032767C 003245DC 90 03 00 00 */ stw r0, 0(r3) /* 80327680 003245E0 48 00 05 10 */ b lbl_80327B90 @@ -3201,16 +3201,16 @@ lbl_80327684: /* 80327688 003245E8 38 60 00 04 */ li r3, 4 /* 8032768C 003245EC 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327690 003245F0 38 A0 00 00 */ li r5, 0 -/* 80327694 003245F4 48 04 53 F1 */ bl __nw__8IElementFUl +/* 80327694 003245F4 48 04 53 F1 */ bl __nw__8IElementFUlPCcPCc /* 80327698 003245F8 28 03 00 00 */ cmplwi r3, 0 /* 8032769C 003245FC 41 82 04 F4 */ beq lbl_80327B90 /* 803276A0 00324600 3C 80 80 3F */ lis r4, __vt__8IElement@ha /* 803276A4 00324604 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 803276A8 00324608 38 04 C5 A8 */ addi r0, r4, __vt__8IElement@l -/* 803276AC 0032460C 3C 80 80 3F */ lis r4, lbl_803EDF5C@ha +/* 803276AC 0032460C 3C 80 80 3F */ lis r4, __vt__27CREParticleAccessParameter8@ha /* 803276B0 00324610 90 03 00 00 */ stw r0, 0(r3) /* 803276B4 00324614 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 803276B8 00324618 38 04 DF 5C */ addi r0, r4, lbl_803EDF5C@l +/* 803276B8 00324618 38 04 DF 5C */ addi r0, r4, __vt__27CREParticleAccessParameter8@l /* 803276BC 0032461C 90 A3 00 00 */ stw r5, 0(r3) /* 803276C0 00324620 90 03 00 00 */ stw r0, 0(r3) /* 803276C4 00324624 48 00 04 CC */ b lbl_80327B90 @@ -3223,7 +3223,7 @@ lbl_803276C8: /* 803276DC 0032463C 38 60 00 08 */ li r3, 8 /* 803276E0 00324640 7C 1C 03 78 */ mr r28, r0 /* 803276E4 00324644 38 A0 00 00 */ li r5, 0 -/* 803276E8 00324648 48 04 53 9D */ bl __nw__8IElementFUl +/* 803276E8 00324648 48 04 53 9D */ bl __nw__8IElementFUlPCcPCc /* 803276EC 0032464C 7C 60 1B 79 */ or. r0, r3, r3 /* 803276F0 00324650 41 82 00 10 */ beq lbl_80327700 /* 803276F4 00324654 7F 84 E3 78 */ mr r4, r28 @@ -3241,7 +3241,7 @@ lbl_80327708: /* 8032771C 0032467C 38 60 00 08 */ li r3, 8 /* 80327720 00324680 7C 1C 03 78 */ mr r28, r0 /* 80327724 00324684 38 A0 00 00 */ li r5, 0 -/* 80327728 00324688 48 04 53 5D */ bl __nw__8IElementFUl +/* 80327728 00324688 48 04 53 5D */ bl __nw__8IElementFUlPCcPCc /* 8032772C 0032468C 7C 60 1B 79 */ or. r0, r3, r3 /* 80327730 00324690 41 82 00 10 */ beq lbl_80327740 /* 80327734 00324694 7F 84 E3 78 */ mr r4, r28 @@ -3259,7 +3259,7 @@ lbl_80327748: /* 8032775C 003246BC 38 60 00 08 */ li r3, 8 /* 80327760 003246C0 7C 1C 03 78 */ mr r28, r0 /* 80327764 003246C4 38 A0 00 00 */ li r5, 0 -/* 80327768 003246C8 48 04 53 1D */ bl __nw__8IElementFUl +/* 80327768 003246C8 48 04 53 1D */ bl __nw__8IElementFUlPCcPCc /* 8032776C 003246CC 7C 60 1B 79 */ or. r0, r3, r3 /* 80327770 003246D0 41 82 00 10 */ beq lbl_80327780 /* 80327774 003246D4 7F 84 E3 78 */ mr r4, r28 @@ -3277,7 +3277,7 @@ lbl_80327788: /* 8032779C 003246FC 38 60 00 08 */ li r3, 8 /* 803277A0 00324700 7C 1C 03 78 */ mr r28, r0 /* 803277A4 00324704 38 A0 00 00 */ li r5, 0 -/* 803277A8 00324708 48 04 52 DD */ bl __nw__8IElementFUl +/* 803277A8 00324708 48 04 52 DD */ bl __nw__8IElementFUlPCcPCc /* 803277AC 0032470C 7C 60 1B 79 */ or. r0, r3, r3 /* 803277B0 00324710 41 82 00 10 */ beq lbl_803277C0 /* 803277B4 00324714 7F 84 E3 78 */ mr r4, r28 @@ -3299,12 +3299,12 @@ lbl_803277C8: /* 803277EC 0032474C 38 60 00 0C */ li r3, 0xc /* 803277F0 00324750 7C 1D 03 78 */ mr r29, r0 /* 803277F4 00324754 38 A0 00 00 */ li r5, 0 -/* 803277F8 00324758 48 04 52 8D */ bl __nw__8IElementFUl +/* 803277F8 00324758 48 04 52 8D */ bl __nw__8IElementFUlPCcPCc /* 803277FC 0032475C 7C 60 1B 79 */ or. r0, r3, r3 /* 80327800 00324760 41 82 00 14 */ beq lbl_80327814 /* 80327804 00324764 7F 84 E3 78 */ mr r4, r28 /* 80327808 00324768 7F A5 EB 78 */ mr r5, r29 -/* 8032780C 0032476C 48 00 9A 89 */ bl __ct__7CREISWTFP12CRealElementP12CRealElement +/* 8032780C 0032476C 48 00 9A 89 */ bl __ct__16CREInitialSwitchFP12CRealElementP12CRealElement /* 80327810 00324770 7C 60 1B 78 */ mr r0, r3 lbl_80327814: /* 80327814 00324774 7C 03 03 78 */ mr r3, r0 @@ -3330,7 +3330,7 @@ lbl_8032781C: /* 80327860 003247C0 38 60 00 14 */ li r3, 0x14 /* 80327864 003247C4 7C 1F 03 78 */ mr r31, r0 /* 80327868 003247C8 38 A0 00 00 */ li r5, 0 -/* 8032786C 003247CC 48 04 52 19 */ bl __nw__8IElementFUl +/* 8032786C 003247CC 48 04 52 19 */ bl __nw__8IElementFUlPCcPCc /* 80327870 003247D0 7C 60 1B 79 */ or. r0, r3, r3 /* 80327874 003247D4 41 82 00 1C */ beq lbl_80327890 /* 80327878 003247D8 7F 84 E3 78 */ mr r4, r28 @@ -3363,7 +3363,7 @@ lbl_80327898: /* 803278DC 0032483C 38 60 00 14 */ li r3, 0x14 /* 803278E0 00324840 7C 1F 03 78 */ mr r31, r0 /* 803278E4 00324844 38 A0 00 00 */ li r5, 0 -/* 803278E8 00324848 48 04 51 9D */ bl __nw__8IElementFUl +/* 803278E8 00324848 48 04 51 9D */ bl __nw__8IElementFUlPCcPCc /* 803278EC 0032484C 7C 60 1B 79 */ or. r0, r3, r3 /* 803278F0 00324850 41 82 00 1C */ beq lbl_8032790C /* 803278F4 00324854 7F 84 E3 78 */ mr r4, r28 @@ -3400,7 +3400,7 @@ lbl_80327914: /* 80327968 003248C8 38 60 00 18 */ li r3, 0x18 /* 8032796C 003248CC 7C 1B 03 78 */ mr r27, r0 /* 80327970 003248D0 38 A0 00 00 */ li r5, 0 -/* 80327974 003248D4 48 04 51 11 */ bl __nw__8IElementFUl +/* 80327974 003248D4 48 04 51 11 */ bl __nw__8IElementFUlPCcPCc /* 80327978 003248D8 7C 60 1B 79 */ or. r0, r3, r3 /* 8032797C 003248DC 41 82 00 20 */ beq lbl_8032799C /* 80327980 003248E0 7F 84 E3 78 */ mr r4, r28 @@ -3422,11 +3422,11 @@ lbl_803279A4: /* 803279B8 00324918 38 60 00 08 */ li r3, 8 /* 803279BC 0032491C 7C 1B 03 78 */ mr r27, r0 /* 803279C0 00324920 38 A0 00 00 */ li r5, 0 -/* 803279C4 00324924 48 04 50 C1 */ bl __nw__8IElementFUl +/* 803279C4 00324924 48 04 50 C1 */ bl __nw__8IElementFUlPCcPCc /* 803279C8 00324928 7C 60 1B 79 */ or. r0, r3, r3 /* 803279CC 0032492C 41 82 00 10 */ beq lbl_803279DC /* 803279D0 00324930 7F 64 DB 78 */ mr r4, r27 -/* 803279D4 00324934 48 00 91 2D */ bl __ct__7CRECEXTFP11CIntElement +/* 803279D4 00324934 48 00 91 2D */ bl __ct__14CREExternalVarFP11CIntElement /* 803279D8 00324938 7C 60 1B 78 */ mr r0, r3 lbl_803279DC: /* 803279DC 0032493C 7C 03 03 78 */ mr r3, r0 @@ -3444,12 +3444,12 @@ lbl_803279E4: /* 80327A08 00324968 38 60 00 0C */ li r3, 0xc /* 80327A0C 0032496C 7C 1C 03 78 */ mr r28, r0 /* 80327A10 00324970 38 A0 00 00 */ li r5, 0 -/* 80327A14 00324974 48 04 50 71 */ bl __nw__8IElementFUl +/* 80327A14 00324974 48 04 50 71 */ bl __nw__8IElementFUlPCcPCc /* 80327A18 00324978 7C 60 1B 79 */ or. r0, r3, r3 /* 80327A1C 0032497C 41 82 00 14 */ beq lbl_80327A30 /* 80327A20 00324980 7F 64 DB 78 */ mr r4, r27 /* 80327A24 00324984 7F 85 E3 78 */ mr r5, r28 -/* 80327A28 00324988 48 00 88 D1 */ bl __ct__15CREIntTimesRealFP12CRealElementP11CIntElement +/* 80327A28 00324988 48 00 88 D1 */ bl __ct__15CREIntTimesRealFP11CIntElementP12CRealElement /* 80327A2C 0032498C 7C 60 1B 78 */ mr r0, r3 lbl_80327A30: /* 80327A30 00324990 7C 03 03 78 */ mr r3, r0 @@ -3467,7 +3467,7 @@ lbl_80327A38: /* 80327A5C 003249BC 38 60 00 0C */ li r3, 0xc /* 80327A60 003249C0 7C 1C 03 78 */ mr r28, r0 /* 80327A64 003249C4 38 A0 00 00 */ li r5, 0 -/* 80327A68 003249C8 48 04 50 1D */ bl __nw__8IElementFUl +/* 80327A68 003249C8 48 04 50 1D */ bl __nw__8IElementFUlPCcPCc /* 80327A6C 003249CC 7C 60 1B 79 */ or. r0, r3, r3 /* 80327A70 003249D0 41 82 00 14 */ beq lbl_80327A84 /* 80327A74 003249D4 7F 64 DB 78 */ mr r4, r27 @@ -3486,7 +3486,7 @@ lbl_80327A8C: /* 80327AA0 00324A00 38 60 00 08 */ li r3, 8 /* 80327AA4 00324A04 7C 1B 03 78 */ mr r27, r0 /* 80327AA8 00324A08 38 A0 00 00 */ li r5, 0 -/* 80327AAC 00324A0C 48 04 4F D9 */ bl __nw__8IElementFUl +/* 80327AAC 00324A0C 48 04 4F D9 */ bl __nw__8IElementFUlPCcPCc /* 80327AB0 00324A10 7C 60 1B 79 */ or. r0, r3, r3 /* 80327AB4 00324A14 41 82 00 10 */ beq lbl_80327AC4 /* 80327AB8 00324A18 7F 64 DB 78 */ mr r4, r27 @@ -3504,7 +3504,7 @@ lbl_80327ACC: /* 80327AE0 00324A40 38 60 00 08 */ li r3, 8 /* 80327AE4 00324A44 7C 1B 03 78 */ mr r27, r0 /* 80327AE8 00324A48 38 A0 00 00 */ li r5, 0 -/* 80327AEC 00324A4C 48 04 4F 99 */ bl __nw__8IElementFUl +/* 80327AEC 00324A4C 48 04 4F 99 */ bl __nw__8IElementFUlPCcPCc /* 80327AF0 00324A50 7C 60 1B 79 */ or. r0, r3, r3 /* 80327AF4 00324A54 41 82 00 10 */ beq lbl_80327B04 /* 80327AF8 00324A58 7F 64 DB 78 */ mr r4, r27 @@ -3522,7 +3522,7 @@ lbl_80327B0C: /* 80327B20 00324A80 38 60 00 08 */ li r3, 8 /* 80327B24 00324A84 7C 1B 03 78 */ mr r27, r0 /* 80327B28 00324A88 38 A0 00 00 */ li r5, 0 -/* 80327B2C 00324A8C 48 04 4F 59 */ bl __nw__8IElementFUl +/* 80327B2C 00324A8C 48 04 4F 59 */ bl __nw__8IElementFUlPCcPCc /* 80327B30 00324A90 7C 60 1B 79 */ or. r0, r3, r3 /* 80327B34 00324A94 41 82 00 10 */ beq lbl_80327B44 /* 80327B38 00324A98 7F 64 DB 78 */ mr r4, r27 @@ -3540,7 +3540,7 @@ lbl_80327B4C: /* 80327B60 00324AC0 38 60 00 08 */ li r3, 8 /* 80327B64 00324AC4 7C 1B 03 78 */ mr r27, r0 /* 80327B68 00324AC8 38 A0 00 00 */ li r5, 0 -/* 80327B6C 00324ACC 48 04 4F 19 */ bl __nw__8IElementFUl +/* 80327B6C 00324ACC 48 04 4F 19 */ bl __nw__8IElementFUlPCcPCc /* 80327B70 00324AD0 7C 60 1B 79 */ or. r0, r3, r3 /* 80327B74 00324AD4 41 82 00 10 */ beq lbl_80327B84 /* 80327B78 00324AD8 7F 64 DB 78 */ mr r4, r27 @@ -3690,7 +3690,7 @@ lbl_80327D7C: /* 80327D80 00324CE0 38 60 00 08 */ li r3, 8 /* 80327D84 00324CE4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327D88 00324CE8 38 A0 00 00 */ li r5, 0 -/* 80327D8C 00324CEC 48 04 4C F9 */ bl __nw__8IElementFUl +/* 80327D8C 00324CEC 48 04 4C F9 */ bl __nw__8IElementFUlPCcPCc /* 80327D90 00324CF0 7C 7E 1B 79 */ or. r30, r3, r3 /* 80327D94 00324CF4 41 82 00 1C */ beq lbl_80327DB0 /* 80327D98 00324CF8 7F E3 FB 78 */ mr r3, r31 @@ -3707,7 +3707,7 @@ lbl_80327DB8: /* 80327DBC 00324D1C 38 60 00 28 */ li r3, 0x28 /* 80327DC0 00324D20 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327DC4 00324D24 38 A0 00 00 */ li r5, 0 -/* 80327DC8 00324D28 48 04 4C BD */ bl __nw__8IElementFUl +/* 80327DC8 00324D28 48 04 4C BD */ bl __nw__8IElementFUlPCcPCc /* 80327DCC 00324D2C 7C 60 1B 79 */ or. r0, r3, r3 /* 80327DD0 00324D30 41 82 00 10 */ beq lbl_80327DE0 /* 80327DD4 00324D34 7F E4 FB 78 */ mr r4, r31 @@ -3721,7 +3721,7 @@ lbl_80327DE8: /* 80327DEC 00324D4C 38 60 00 08 */ li r3, 8 /* 80327DF0 00324D50 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80327DF4 00324D54 38 A0 00 00 */ li r5, 0 -/* 80327DF8 00324D58 48 04 4C 8D */ bl __nw__8IElementFUl +/* 80327DF8 00324D58 48 04 4C 8D */ bl __nw__8IElementFUlPCcPCc /* 80327DFC 00324D5C 7C 7E 1B 79 */ or. r30, r3, r3 /* 80327E00 00324D60 41 82 00 1C */ beq lbl_80327E1C /* 80327E04 00324D64 7F E3 FB 78 */ mr r3, r31 @@ -3746,7 +3746,7 @@ lbl_80327E24: /* 80327E48 00324DA8 38 60 00 0C */ li r3, 0xc /* 80327E4C 00324DAC 7C 1F 03 78 */ mr r31, r0 /* 80327E50 00324DB0 38 A0 00 00 */ li r5, 0 -/* 80327E54 00324DB4 48 04 4C 31 */ bl __nw__8IElementFUl +/* 80327E54 00324DB4 48 04 4C 31 */ bl __nw__8IElementFUlPCcPCc /* 80327E58 00324DB8 7C 60 1B 79 */ or. r0, r3, r3 /* 80327E5C 00324DBC 41 82 00 14 */ beq lbl_80327E70 /* 80327E60 00324DC0 7F C4 F3 78 */ mr r4, r30 @@ -3773,7 +3773,7 @@ lbl_80327E78: /* 80327EAC 00324E0C 38 60 00 10 */ li r3, 0x10 /* 80327EB0 00324E10 7C 1D 03 78 */ mr r29, r0 /* 80327EB4 00324E14 38 A0 00 00 */ li r5, 0 -/* 80327EB8 00324E18 48 04 4B CD */ bl __nw__8IElementFUl +/* 80327EB8 00324E18 48 04 4B CD */ bl __nw__8IElementFUlPCcPCc /* 80327EBC 00324E1C 7C 60 1B 79 */ or. r0, r3, r3 /* 80327EC0 00324E20 41 82 00 18 */ beq lbl_80327ED8 /* 80327EC4 00324E24 7F C4 F3 78 */ mr r4, r30 @@ -3797,7 +3797,7 @@ lbl_80327EE0: /* 80327F04 00324E64 38 60 00 0C */ li r3, 0xc /* 80327F08 00324E68 7C 1E 03 78 */ mr r30, r0 /* 80327F0C 00324E6C 38 A0 00 00 */ li r5, 0 -/* 80327F10 00324E70 48 04 4B 75 */ bl __nw__8IElementFUl +/* 80327F10 00324E70 48 04 4B 75 */ bl __nw__8IElementFUlPCcPCc /* 80327F14 00324E74 7C 60 1B 79 */ or. r0, r3, r3 /* 80327F18 00324E78 41 82 00 14 */ beq lbl_80327F2C /* 80327F1C 00324E7C 7F A4 EB 78 */ mr r4, r29 @@ -3820,7 +3820,7 @@ lbl_80327F34: /* 80327F58 00324EB8 38 60 00 0C */ li r3, 0xc /* 80327F5C 00324EBC 7C 1E 03 78 */ mr r30, r0 /* 80327F60 00324EC0 38 A0 00 00 */ li r5, 0 -/* 80327F64 00324EC4 48 04 4B 21 */ bl __nw__8IElementFUl +/* 80327F64 00324EC4 48 04 4B 21 */ bl __nw__8IElementFUlPCcPCc /* 80327F68 00324EC8 7C 60 1B 79 */ or. r0, r3, r3 /* 80327F6C 00324ECC 41 82 00 14 */ beq lbl_80327F80 /* 80327F70 00324ED0 7F A4 EB 78 */ mr r4, r29 @@ -3843,7 +3843,7 @@ lbl_80327F88: /* 80327FAC 00324F0C 38 60 00 0C */ li r3, 0xc /* 80327FB0 00324F10 7C 1E 03 78 */ mr r30, r0 /* 80327FB4 00324F14 38 A0 00 00 */ li r5, 0 -/* 80327FB8 00324F18 48 04 4A CD */ bl __nw__8IElementFUl +/* 80327FB8 00324F18 48 04 4A CD */ bl __nw__8IElementFUlPCcPCc /* 80327FBC 00324F1C 7C 60 1B 79 */ or. r0, r3, r3 /* 80327FC0 00324F20 41 82 00 14 */ beq lbl_80327FD4 /* 80327FC4 00324F24 7F A4 EB 78 */ mr r4, r29 @@ -3866,7 +3866,7 @@ lbl_80327FDC: /* 80328000 00324F60 38 60 00 0C */ li r3, 0xc /* 80328004 00324F64 7C 1E 03 78 */ mr r30, r0 /* 80328008 00324F68 38 A0 00 00 */ li r5, 0 -/* 8032800C 00324F6C 48 04 4A 79 */ bl __nw__8IElementFUl +/* 8032800C 00324F6C 48 04 4A 79 */ bl __nw__8IElementFUlPCcPCc /* 80328010 00324F70 7C 60 1B 79 */ or. r0, r3, r3 /* 80328014 00324F74 41 82 00 14 */ beq lbl_80328028 /* 80328018 00324F78 7F A4 EB 78 */ mr r4, r29 @@ -3881,7 +3881,7 @@ lbl_80328030: /* 80328034 00324F94 38 60 00 08 */ li r3, 8 /* 80328038 00324F98 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 8032803C 00324F9C 38 A0 00 00 */ li r5, 0 -/* 80328040 00324FA0 48 04 4A 45 */ bl __nw__8IElementFUl +/* 80328040 00324FA0 48 04 4A 45 */ bl __nw__8IElementFUlPCcPCc /* 80328044 00324FA4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80328048 00324FA8 41 82 00 1C */ beq lbl_80328064 /* 8032804C 00324FAC 7F E3 FB 78 */ mr r3, r31 @@ -3898,7 +3898,7 @@ lbl_8032806C: /* 80328070 00324FD0 38 60 00 08 */ li r3, 8 /* 80328074 00324FD4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80328078 00324FD8 38 A0 00 00 */ li r5, 0 -/* 8032807C 00324FDC 48 04 4A 09 */ bl __nw__8IElementFUl +/* 8032807C 00324FDC 48 04 4A 09 */ bl __nw__8IElementFUlPCcPCc /* 80328080 00324FE0 7C 7E 1B 79 */ or. r30, r3, r3 /* 80328084 00324FE4 41 82 00 1C */ beq lbl_803280A0 /* 80328088 00324FE8 7F E3 FB 78 */ mr r3, r31 @@ -3927,7 +3927,7 @@ lbl_803280A8: /* 803280DC 0032503C 38 60 00 18 */ li r3, 0x18 /* 803280E0 00325040 7C 1F 03 78 */ mr r31, r0 /* 803280E4 00325044 38 A0 00 00 */ li r5, 0 -/* 803280E8 00325048 48 04 49 9D */ bl __nw__8IElementFUl +/* 803280E8 00325048 48 04 49 9D */ bl __nw__8IElementFUlPCcPCc /* 803280EC 0032504C 7C 60 1B 79 */ or. r0, r3, r3 /* 803280F0 00325050 41 82 00 18 */ beq lbl_80328108 /* 803280F4 00325054 7F E4 FB 78 */ mr r4, r31 @@ -3951,7 +3951,7 @@ lbl_80328110: /* 80328134 00325094 38 60 00 0C */ li r3, 0xc /* 80328138 00325098 7C 1E 03 78 */ mr r30, r0 /* 8032813C 0032509C 38 A0 00 00 */ li r5, 0 -/* 80328140 003250A0 48 04 49 45 */ bl __nw__8IElementFUl +/* 80328140 003250A0 48 04 49 45 */ bl __nw__8IElementFUlPCcPCc /* 80328144 003250A4 7C 60 1B 79 */ or. r0, r3, r3 /* 80328148 003250A8 41 82 00 14 */ beq lbl_8032815C /* 8032814C 003250AC 7F A4 EB 78 */ mr r4, r29 @@ -3978,7 +3978,7 @@ lbl_80328164: /* 80328198 003250F8 38 60 00 10 */ li r3, 0x10 /* 8032819C 003250FC 7C 1F 03 78 */ mr r31, r0 /* 803281A0 00325100 38 A0 00 00 */ li r5, 0 -/* 803281A4 00325104 48 04 48 E1 */ bl __nw__8IElementFUl +/* 803281A4 00325104 48 04 48 E1 */ bl __nw__8IElementFUlPCcPCc /* 803281A8 00325108 7C 60 1B 79 */ or. r0, r3, r3 /* 803281AC 0032510C 41 82 00 18 */ beq lbl_803281C4 /* 803281B0 00325110 7F A4 EB 78 */ mr r4, r29 @@ -4010,7 +4010,7 @@ lbl_803281CC: /* 80328210 00325170 38 60 00 14 */ li r3, 0x14 /* 80328214 00325174 7C 1C 03 78 */ mr r28, r0 /* 80328218 00325178 38 A0 00 00 */ li r5, 0 -/* 8032821C 0032517C 48 04 48 69 */ bl __nw__8IElementFUl +/* 8032821C 0032517C 48 04 48 69 */ bl __nw__8IElementFUlPCcPCc /* 80328220 00325180 7C 60 1B 79 */ or. r0, r3, r3 /* 80328224 00325184 41 82 00 1C */ beq lbl_80328240 /* 80328228 00325188 7F A4 EB 78 */ mr r4, r29 @@ -4038,7 +4038,7 @@ lbl_80328250: /* 80328274 003251D4 38 60 00 0C */ li r3, 0xc /* 80328278 003251D8 7C 1D 03 78 */ mr r29, r0 /* 8032827C 003251DC 38 A0 00 00 */ li r5, 0 -/* 80328280 003251E0 48 04 48 05 */ bl __nw__8IElementFUl +/* 80328280 003251E0 48 04 48 05 */ bl __nw__8IElementFUlPCcPCc /* 80328284 003251E4 7C 60 1B 79 */ or. r0, r3, r3 /* 80328288 003251E8 41 82 00 14 */ beq lbl_8032829C /* 8032828C 003251EC 7F 84 E3 78 */ mr r4, r28 @@ -4061,7 +4061,7 @@ lbl_803282A4: /* 803282C8 00325228 38 60 00 0C */ li r3, 0xc /* 803282CC 0032522C 7C 1D 03 78 */ mr r29, r0 /* 803282D0 00325230 38 A0 00 00 */ li r5, 0 -/* 803282D4 00325234 48 04 47 B1 */ bl __nw__8IElementFUl +/* 803282D4 00325234 48 04 47 B1 */ bl __nw__8IElementFUlPCcPCc /* 803282D8 00325238 7C 60 1B 79 */ or. r0, r3, r3 /* 803282DC 0032523C 41 82 00 14 */ beq lbl_803282F0 /* 803282E0 00325240 7F 84 E3 78 */ mr r4, r28 @@ -4076,7 +4076,7 @@ lbl_803282F8: /* 803282FC 0032525C 38 60 00 04 */ li r3, 4 /* 80328300 00325260 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80328304 00325264 38 A0 00 00 */ li r5, 0 -/* 80328308 00325268 48 04 47 7D */ bl __nw__8IElementFUl +/* 80328308 00325268 48 04 47 7D */ bl __nw__8IElementFUlPCcPCc /* 8032830C 0032526C 28 03 00 00 */ cmplwi r3, 0 /* 80328310 00325270 41 82 00 B8 */ beq lbl_803283C8 /* 80328314 00325274 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -4094,7 +4094,7 @@ lbl_8032833C: /* 80328340 003252A0 38 60 00 04 */ li r3, 4 /* 80328344 003252A4 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 80328348 003252A8 38 A0 00 00 */ li r5, 0 -/* 8032834C 003252AC 48 04 47 39 */ bl __nw__8IElementFUl +/* 8032834C 003252AC 48 04 47 39 */ bl __nw__8IElementFUlPCcPCc /* 80328350 003252B0 28 03 00 00 */ cmplwi r3, 0 /* 80328354 003252B4 41 82 00 74 */ beq lbl_803283C8 /* 80328358 003252B8 3C 80 80 3F */ lis r4, __vt__8IElement@ha @@ -4112,7 +4112,7 @@ lbl_80328380: /* 80328384 003252E4 38 60 00 04 */ li r3, 4 /* 80328388 003252E8 38 84 79 18 */ addi r4, r4, lbl_803D7918@l /* 8032838C 003252EC 38 A0 00 00 */ li r5, 0 -/* 80328390 003252F0 48 04 46 F5 */ bl __nw__8IElementFUl +/* 80328390 003252F0 48 04 46 F5 */ bl __nw__8IElementFUlPCcPCc /* 80328394 003252F4 28 03 00 00 */ cmplwi r3, 0 /* 80328398 003252F8 41 82 00 30 */ beq lbl_803283C8 /* 8032839C 003252FC 3C 80 80 3F */ lis r4, __vt__8IElement@ha diff --git a/asm/Kyoto/Particles/CParticleGlobals.s b/asm/Kyoto/Particles/CParticleGlobals.s index 7da64a0d..073a493c 100644 --- a/asm/Kyoto/Particles/CParticleGlobals.s +++ b/asm/Kyoto/Particles/CParticleGlobals.s @@ -24,15 +24,12 @@ mParticleLifetimePercentageReal__16CParticleGlobals: .global mParticleLifetimePercentageRemainder__16CParticleGlobals mParticleLifetimePercentageRemainder__16CParticleGlobals: .skip 0x4 -# mCurrentParticle -.global lbl_805A94AC -lbl_805A94AC: +.global mCurrentParticle__16CParticleGlobals +mCurrentParticle__16CParticleGlobals: .skip 0x4 -# mParticleAccessParameters -.global lbl_805A94B0 -lbl_805A94B0: +.global mParticleAccessParameters__16CParticleGlobals +mParticleAccessParameters__16CParticleGlobals: .skip 0x4 -# mCurrentParticleSystem .global mCurrentParticleSystem__16CParticleGlobals mCurrentParticleSystem__16CParticleGlobals: .skip 0x4 diff --git a/asm/Kyoto/Particles/CRealElement.s b/asm/Kyoto/Particles/CRealElement.s index 1e461621..6662b98e 100644 --- a/asm/Kyoto/Particles/CRealElement.s +++ b/asm/Kyoto/Particles/CRealElement.s @@ -3,296 +3,296 @@ .section .data .balign 8 -.global lbl_803EDE08 -lbl_803EDE08: +.global __vt__15CREIntTimesReal +__vt__15CREIntTimesReal: # ROM: 0x3EAE08 .4byte 0 .4byte 0 - .4byte __dt__15CREIntTimesReal + .4byte __dt__15CREIntTimesRealFv .4byte GetValue__15CREIntTimesRealCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE1C -lbl_803EDE1C: +.global __vt__20CREGetComponentAlpha +__vt__20CREGetComponentAlpha: # ROM: 0x3EAE1C .4byte 0 .4byte 0 - .4byte __dt__20CREGetComponentAlpha + .4byte __dt__20CREGetComponentAlphaFv .4byte GetValue__20CREGetComponentAlphaCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE30 -lbl_803EDE30: +.global __vt__19CREGetComponentBlue +__vt__19CREGetComponentBlue: # ROM: 0x3EAE30 .4byte 0 .4byte 0 - .4byte __dt__19CREGetComponentBlue + .4byte __dt__19CREGetComponentBlueFv .4byte GetValue__19CREGetComponentBlueCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE44 -lbl_803EDE44: +.global __vt__20CREGetComponentGreen +__vt__20CREGetComponentGreen: # ROM: 0x3EAE44 .4byte 0 .4byte 0 - .4byte __dt__20CREGetComponentGreen + .4byte __dt__20CREGetComponentGreenFv .4byte GetValue__20CREGetComponentGreenCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE58 -lbl_803EDE58: +.global __vt__18CREGetComponentRed +__vt__18CREGetComponentRed: # ROM: 0x3EAE58 .4byte 0 .4byte 0 - .4byte __dt__18CREGetComponentRed + .4byte __dt__18CREGetComponentRedFv .4byte GetValue__18CREGetComponentRedCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE6C -lbl_803EDE6C: +.global __vt__11CRESubtract +__vt__11CRESubtract: # ROM: 0x3EAE6C .4byte 0 .4byte 0 - .4byte __dt__11CRESubtract + .4byte __dt__11CRESubtractFv .4byte GetValue__11CRESubtractCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE80 -lbl_803EDE80: +.global __vt__14CREExternalVar +__vt__14CREExternalVar: # ROM: 0x3EAE80 .4byte 0 .4byte 0 - .4byte __dt__7CRECEXT - .4byte GetValue__7CRECEXTCFiRf + .4byte __dt__14CREExternalVarFv + .4byte GetValue__14CREExternalVarCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDE94 -lbl_803EDE94: +.global __vt__16CREConstantRange +__vt__16CREConstantRange: # ROM: 0x3EAE94 .4byte 0 .4byte 0 - .4byte __dt__16CREConstantRange + .4byte __dt__16CREConstantRangeFv .4byte GetValue__16CREConstantRangeCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDEA8 -lbl_803EDEA8: +.global __vt__15CRECompareEqual +__vt__15CRECompareEqual: # ROM: 0x3EAEA8 .4byte 0 .4byte 0 - .4byte __dt__15CRECompareEqual + .4byte __dt__15CRECompareEqualFv .4byte GetValue__15CRECompareEqualCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDEBC -lbl_803EDEBC: +.global __vt__18CRECompareLessThan +__vt__18CRECompareLessThan: # ROM: 0x3EAEBC .4byte 0 .4byte 0 - .4byte __dt__18CRECompareLessThan + .4byte __dt__18CRECompareLessThanFv .4byte GetValue__18CRECompareLessThanCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDED0 -lbl_803EDED0: +.global __vt__16CREInitialSwitch +__vt__16CREInitialSwitch: # ROM: 0x3EAED0 .4byte 0 .4byte 0 - .4byte __dt__7CREIWST - .4byte GetValue__7CREIWSTGCFiRf + .4byte __dt__16CREInitialSwitchFv + .4byte GetValue__16CREInitialSwitchCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDEE4 -lbl_803EDEE4: +.global __vt__18CREVectorMagnitude +__vt__18CREVectorMagnitude: # ROM: 0x3EAEE4 .4byte 0 .4byte 0 - .4byte __dt__18CREVectorMagnitude + .4byte __dt__18CREVectorMagnitudeFv .4byte GetValue__18CREVectorMagnitudeCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDEF8 -lbl_803EDEF8: +.global __vt__16CREVectorZToReal +__vt__16CREVectorZToReal: # ROM: 0x3EAEF8 .4byte 0 .4byte 0 - .4byte __dt__16CREVectorZToReal + .4byte __dt__16CREVectorZToRealFv .4byte GetValue__16CREVectorZToRealCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF0C -lbl_803EDF0C: +.global __vt__16CREVectorYToReal +__vt__16CREVectorYToReal: # ROM: 0x3EAF0C .4byte 0 .4byte 0 - .4byte __dt__16CREVectorYToReal + .4byte __dt__16CREVectorYToRealFv .4byte GetValue__16CREVectorYToRealCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF20 -lbl_803EDF20: +.global __vt__16CREVectorXToReal +__vt__16CREVectorXToReal: # ROM: 0x3EAF20 .4byte 0 .4byte 0 - .4byte __dt__16CREVectorXToReal + .4byte __dt__16CREVectorXToRealFv .4byte GetValue__16CREVectorXToRealCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF34 -lbl_803EDF34: +.global __vt__30CREParticleRotationOrLineWidth +__vt__30CREParticleRotationOrLineWidth: # ROM: 0x3EAF34 .4byte 0 .4byte 0 - .4byte __dt__7CREPRLW - .4byte GetValue__7CREPRLWGCFiRf + .4byte __dt__30CREParticleRotationOrLineWidthFv + .4byte GetValue__30CREParticleRotationOrLineWidthCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF48 -lbl_803EDF48: +.global __vt__27CREParticleSizeOrLineLength +__vt__27CREParticleSizeOrLineLength: # ROM: 0x3EAF48 .4byte 0 .4byte 0 - .4byte __dt__7CREPSLL - .4byte GetValue__7CREPSLLGCFiRf + .4byte __dt__27CREParticleSizeOrLineLengthFv + .4byte GetValue__27CREParticleSizeOrLineLengthCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF5C -lbl_803EDF5C: +.global __vt__27CREParticleAccessParameter8 +__vt__27CREParticleAccessParameter8: # ROM: 0x3EAF5C .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter8 + .4byte __dt__27CREParticleAccessParameter8Fv .4byte GetValue__27CREParticleAccessParameter8CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF70 -lbl_803EDF70: +.global __vt__27CREParticleAccessParameter7 +__vt__27CREParticleAccessParameter7: # ROM: 0x3EAF70 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter7 + .4byte __dt__27CREParticleAccessParameter7Fv .4byte GetValue__27CREParticleAccessParameter7CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF84 -lbl_803EDF84: +.global __vt__27CREParticleAccessParameter6 +__vt__27CREParticleAccessParameter6: # ROM: 0x3EAF84 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter6 + .4byte __dt__27CREParticleAccessParameter6Fv .4byte GetValue__27CREParticleAccessParameter6CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDF98 -lbl_803EDF98: +.global __vt__27CREParticleAccessParameter5 +__vt__27CREParticleAccessParameter5: # ROM: 0x3EAF98 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter5 + .4byte __dt__27CREParticleAccessParameter5Fv .4byte GetValue__27CREParticleAccessParameter5CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDFAC -lbl_803EDFAC: +.global __vt__27CREParticleAccessParameter4 +__vt__27CREParticleAccessParameter4: # ROM: 0x3EAFAC .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter4 + .4byte __dt__27CREParticleAccessParameter4Fv .4byte GetValue__27CREParticleAccessParameter4CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDFC0 -lbl_803EDFC0: +.global __vt__27CREParticleAccessParameter3 +__vt__27CREParticleAccessParameter3: # ROM: 0x3EAFC0 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter3 + .4byte __dt__27CREParticleAccessParameter3Fv .4byte GetValue__27CREParticleAccessParameter3CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDFD4 -lbl_803EDFD4: +.global __vt__27CREParticleAccessParameter2 +__vt__27CREParticleAccessParameter2: # ROM: 0x3EAFD4 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter2 + .4byte __dt__27CREParticleAccessParameter2Fv .4byte GetValue__27CREParticleAccessParameter2CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDFE8 -lbl_803EDFE8: +.global __vt__27CREParticleAccessParameter1 +__vt__27CREParticleAccessParameter1: # ROM: 0x3EAFE8 .4byte 0 .4byte 0 - .4byte __dt__27CREParticleAccessParameter1 + .4byte __dt__27CREParticleAccessParameter1Fv .4byte GetValue__27CREParticleAccessParameter1CFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EDFFC -lbl_803EDFFC: +.global __vt__18CREKeyframeEmitter +__vt__18CREKeyframeEmitter: # ROM: 0x3EAFFC .4byte 0 .4byte 0 - .4byte __dt__18CREKeyframeEmitter + .4byte __dt__18CREKeyframeEmitterFv .4byte GetValue__18CREKeyframeEmitterCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE010 -lbl_803EE010: +.global __vt__16CRELifetimeTween +__vt__16CRELifetimeTween: # ROM: 0x3EB010 .4byte 0 .4byte 0 - .4byte __dt__16CRELifetimeTween + .4byte __dt__16CRELifetimeTweenFv .4byte GetValue__16CRELifetimeTweenCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE024 -lbl_803EE024: +.global __vt__18CRELifetimePercent +__vt__18CRELifetimePercent: # ROM: 0x3EB024 .4byte 0 .4byte 0 - .4byte __dt__18CRELifetimePercent + .4byte __dt__18CRELifetimePercentFv .4byte GetValue__18CRELifetimePercentCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE038 -lbl_803EE038: +.global __vt__8CREPulse +__vt__8CREPulse: # ROM: 0x3EB038 .4byte 0 .4byte 0 - .4byte __dt__8CREPulse + .4byte __dt__8CREPulseFv .4byte GetValue__8CREPulseCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE04C -lbl_803EE04C: +.global __vt__8CREClamp +__vt__8CREClamp: # ROM: 0x3EB04C .4byte 0 .4byte 0 - .4byte __dt__8CREClamp + .4byte __dt__8CREClampFv .4byte GetValue__8CREClampCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE060 -lbl_803EE060: +.global __vt__12CRETimeChain +__vt__12CRETimeChain: # ROM: 0x3EB060 .4byte 0 .4byte 0 - .4byte __dt__12CRETimeChain + .4byte __dt__12CRETimeChainFv .4byte GetValue__12CRETimeChainCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE074 -lbl_803EE074: +.global __vt__16CREInitialRandom +__vt__16CREInitialRandom: # ROM: 0x3EB074 .4byte 0 .4byte 0 - .4byte __dt__16CREInitialRandom + .4byte __dt__16CREInitialRandomFv .4byte GetValue__16CREInitialRandomCFiRf - .4byte IsConstant__16CREInitialRandomCF + .4byte IsConstant__16CREInitialRandomCFv -.global lbl_803EE088 -lbl_803EE088: +.global __vt__9CRERandom +__vt__9CRERandom: # ROM: 0x3EB088 .4byte 0 .4byte 0 @@ -300,17 +300,17 @@ lbl_803EE088: .4byte GetValue__9CRERandomCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE09C -lbl_803EE09C: +.global __vt__13CREDotProduct +__vt__13CREDotProduct: # ROM: 0x3EB09C .4byte 0 .4byte 0 - .4byte __dt__13CREDotProduct + .4byte __dt__13CREDotProductFv .4byte GetValue__13CREDotProductCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE0B0 -lbl_803EE0B0: +.global __vt__11CREMultiply +__vt__11CREMultiply: # ROM: 0x3EB0B0 .4byte 0 .4byte 0 @@ -318,8 +318,8 @@ lbl_803EE0B0: .4byte GetValue__11CREMultiplyCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE0C4 -lbl_803EE0C4: +.global __vt__6CREAdd +__vt__6CREAdd: # ROM: 0x3EB0C4 .4byte 0 .4byte 0 @@ -327,8 +327,8 @@ lbl_803EE0C4: .4byte GetValue__6CREAddCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE0D8 -lbl_803EE0D8: +.global __vt__12CRETimeScale +__vt__12CRETimeScale: # ROM: 0x3EB0D8 .4byte 0 .4byte 0 @@ -336,8 +336,8 @@ lbl_803EE0D8: .4byte GetValue__12CRETimeScaleCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE0EC -lbl_803EE0EC: +.global __vt__11CRESineWave +__vt__11CRESineWave: # ROM: 0x3EB0EC .4byte 0 .4byte 0 @@ -345,8 +345,8 @@ lbl_803EE0EC: .4byte GetValue__11CRESineWaveCFiRf .4byte IsConstant__12CRealElementCFv -.global lbl_803EE100 -lbl_803EE100: +.global __vt__11CREConstant +__vt__11CREConstant: # ROM: 0x3EB100 .4byte 0 .4byte 0 @@ -414,8 +414,8 @@ GetValue__15CREIntTimesRealCFiRf: /* 80330230 0032D190 38 21 00 30 */ addi r1, r1, 0x30 /* 80330234 0032D194 4E 80 00 20 */ blr -.global __dt__15CREIntTimesReal -__dt__15CREIntTimesReal: +.global __dt__15CREIntTimesRealFv +__dt__15CREIntTimesRealFv: /* 80330238 0032D198 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033023C 0032D19C 7C 08 02 A6 */ mflr r0 /* 80330240 0032D1A0 90 01 00 14 */ stw r0, 0x14(r1) @@ -424,8 +424,8 @@ __dt__15CREIntTimesReal: /* 8033024C 0032D1AC 93 C1 00 08 */ stw r30, 8(r1) /* 80330250 0032D1B0 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330254 0032D1B4 41 82 00 88 */ beq lbl_803302DC -/* 80330258 0032D1B8 3C 60 80 3F */ lis r3, lbl_803EDE08@ha -/* 8033025C 0032D1BC 38 03 DE 08 */ addi r0, r3, lbl_803EDE08@l +/* 80330258 0032D1B8 3C 60 80 3F */ lis r3, __vt__15CREIntTimesReal@ha +/* 8033025C 0032D1BC 38 03 DE 08 */ addi r0, r3, __vt__15CREIntTimesReal@l /* 80330260 0032D1C0 90 1E 00 00 */ stw r0, 0(r30) /* 80330264 0032D1C4 80 7E 00 04 */ lwz r3, 4(r30) /* 80330268 0032D1C8 28 03 00 00 */ cmplwi r3, 0 @@ -469,15 +469,15 @@ lbl_803302DC: /* 803302F0 0032D250 38 21 00 10 */ addi r1, r1, 0x10 /* 803302F4 0032D254 4E 80 00 20 */ blr -.global __ct__15CREIntTimesRealFP12CRealElementP11CIntElement -__ct__15CREIntTimesRealFP12CRealElementP11CIntElement: +.global __ct__15CREIntTimesRealFP11CIntElementP12CRealElement +__ct__15CREIntTimesRealFP11CIntElementP12CRealElement: /* 803302F8 0032D258 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 803302FC 0032D25C 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80330300 0032D260 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 80330304 0032D264 3C C0 80 3F */ lis r6, lbl_803EDE08@ha +/* 80330304 0032D264 3C C0 80 3F */ lis r6, __vt__15CREIntTimesReal@ha /* 80330308 0032D268 90 03 00 00 */ stw r0, 0(r3) /* 8033030C 0032D26C 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80330310 0032D270 38 06 DE 08 */ addi r0, r6, lbl_803EDE08@l +/* 80330310 0032D270 38 06 DE 08 */ addi r0, r6, __vt__15CREIntTimesReal@l /* 80330314 0032D274 90 E3 00 00 */ stw r7, 0(r3) /* 80330318 0032D278 90 03 00 00 */ stw r0, 0(r3) /* 8033031C 0032D27C 90 83 00 04 */ stw r4, 4(r3) @@ -518,8 +518,8 @@ GetValue__20CREGetComponentAlphaCFiRf: /* 8033039C 0032D2FC 38 21 00 20 */ addi r1, r1, 0x20 /* 803303A0 0032D300 4E 80 00 20 */ blr -.global __dt__20CREGetComponentAlpha -__dt__20CREGetComponentAlpha: +.global __dt__20CREGetComponentAlphaFv +__dt__20CREGetComponentAlphaFv: /* 803303A4 0032D304 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803303A8 0032D308 7C 08 02 A6 */ mflr r0 /* 803303AC 0032D30C 90 01 00 14 */ stw r0, 0x14(r1) @@ -528,8 +528,8 @@ __dt__20CREGetComponentAlpha: /* 803303B8 0032D318 93 C1 00 08 */ stw r30, 8(r1) /* 803303BC 0032D31C 7C 7E 1B 79 */ or. r30, r3, r3 /* 803303C0 0032D320 41 82 00 68 */ beq lbl_80330428 -/* 803303C4 0032D324 3C 60 80 3F */ lis r3, lbl_803EDE1C@ha -/* 803303C8 0032D328 38 03 DE 1C */ addi r0, r3, lbl_803EDE1C@l +/* 803303C4 0032D324 3C 60 80 3F */ lis r3, __vt__20CREGetComponentAlpha@ha +/* 803303C8 0032D328 38 03 DE 1C */ addi r0, r3, __vt__20CREGetComponentAlpha@l /* 803303CC 0032D32C 90 1E 00 00 */ stw r0, 0(r30) /* 803303D0 0032D330 80 7E 00 04 */ lwz r3, 4(r30) /* 803303D4 0032D334 28 03 00 00 */ cmplwi r3, 0 @@ -569,10 +569,10 @@ __ct__20CREGetComponentAlphaFP13CColorElement: /* 80330444 0032D3A4 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80330448 0032D3A8 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 8033044C 0032D3AC 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80330450 0032D3B0 3C A0 80 3F */ lis r5, lbl_803EDE1C@ha +/* 80330450 0032D3B0 3C A0 80 3F */ lis r5, __vt__20CREGetComponentAlpha@ha /* 80330454 0032D3B4 90 03 00 00 */ stw r0, 0(r3) /* 80330458 0032D3B8 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 8033045C 0032D3BC 38 05 DE 1C */ addi r0, r5, lbl_803EDE1C@l +/* 8033045C 0032D3BC 38 05 DE 1C */ addi r0, r5, __vt__20CREGetComponentAlpha@l /* 80330460 0032D3C0 90 C3 00 00 */ stw r6, 0(r3) /* 80330464 0032D3C4 90 03 00 00 */ stw r0, 0(r3) /* 80330468 0032D3C8 90 83 00 04 */ stw r4, 4(r3) @@ -612,8 +612,8 @@ GetValue__19CREGetComponentBlueCFiRf: /* 803304E4 0032D444 38 21 00 20 */ addi r1, r1, 0x20 /* 803304E8 0032D448 4E 80 00 20 */ blr -.global __dt__19CREGetComponentBlue -__dt__19CREGetComponentBlue: +.global __dt__19CREGetComponentBlueFv +__dt__19CREGetComponentBlueFv: /* 803304EC 0032D44C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803304F0 0032D450 7C 08 02 A6 */ mflr r0 /* 803304F4 0032D454 90 01 00 14 */ stw r0, 0x14(r1) @@ -622,8 +622,8 @@ __dt__19CREGetComponentBlue: /* 80330500 0032D460 93 C1 00 08 */ stw r30, 8(r1) /* 80330504 0032D464 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330508 0032D468 41 82 00 68 */ beq lbl_80330570 -/* 8033050C 0032D46C 3C 60 80 3F */ lis r3, lbl_803EDE30@ha -/* 80330510 0032D470 38 03 DE 30 */ addi r0, r3, lbl_803EDE30@l +/* 8033050C 0032D46C 3C 60 80 3F */ lis r3, __vt__19CREGetComponentBlue@ha +/* 80330510 0032D470 38 03 DE 30 */ addi r0, r3, __vt__19CREGetComponentBlue@l /* 80330514 0032D474 90 1E 00 00 */ stw r0, 0(r30) /* 80330518 0032D478 80 7E 00 04 */ lwz r3, 4(r30) /* 8033051C 0032D47C 28 03 00 00 */ cmplwi r3, 0 @@ -663,10 +663,10 @@ __ct__19CREGetComponentBlueFP13CColorElement: /* 8033058C 0032D4EC 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80330590 0032D4F0 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80330594 0032D4F4 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80330598 0032D4F8 3C A0 80 3F */ lis r5, lbl_803EDE30@ha +/* 80330598 0032D4F8 3C A0 80 3F */ lis r5, __vt__19CREGetComponentBlue@ha /* 8033059C 0032D4FC 90 03 00 00 */ stw r0, 0(r3) /* 803305A0 0032D500 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 803305A4 0032D504 38 05 DE 30 */ addi r0, r5, lbl_803EDE30@l +/* 803305A4 0032D504 38 05 DE 30 */ addi r0, r5, __vt__19CREGetComponentBlue@l /* 803305A8 0032D508 90 C3 00 00 */ stw r6, 0(r3) /* 803305AC 0032D50C 90 03 00 00 */ stw r0, 0(r3) /* 803305B0 0032D510 90 83 00 04 */ stw r4, 4(r3) @@ -706,8 +706,8 @@ GetValue__20CREGetComponentGreenCFiRf: /* 8033062C 0032D58C 38 21 00 20 */ addi r1, r1, 0x20 /* 80330630 0032D590 4E 80 00 20 */ blr -.global __dt__20CREGetComponentGreen -__dt__20CREGetComponentGreen: +.global __dt__20CREGetComponentGreenFv +__dt__20CREGetComponentGreenFv: /* 80330634 0032D594 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80330638 0032D598 7C 08 02 A6 */ mflr r0 /* 8033063C 0032D59C 90 01 00 14 */ stw r0, 0x14(r1) @@ -716,8 +716,8 @@ __dt__20CREGetComponentGreen: /* 80330648 0032D5A8 93 C1 00 08 */ stw r30, 8(r1) /* 8033064C 0032D5AC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330650 0032D5B0 41 82 00 68 */ beq lbl_803306B8 -/* 80330654 0032D5B4 3C 60 80 3F */ lis r3, lbl_803EDE44@ha -/* 80330658 0032D5B8 38 03 DE 44 */ addi r0, r3, lbl_803EDE44@l +/* 80330654 0032D5B4 3C 60 80 3F */ lis r3, __vt__20CREGetComponentGreen@ha +/* 80330658 0032D5B8 38 03 DE 44 */ addi r0, r3, __vt__20CREGetComponentGreen@l /* 8033065C 0032D5BC 90 1E 00 00 */ stw r0, 0(r30) /* 80330660 0032D5C0 80 7E 00 04 */ lwz r3, 4(r30) /* 80330664 0032D5C4 28 03 00 00 */ cmplwi r3, 0 @@ -757,10 +757,10 @@ __ct__20CREGetComponentGreenFP13CColorElement: /* 803306D4 0032D634 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 803306D8 0032D638 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 803306DC 0032D63C 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 803306E0 0032D640 3C A0 80 3F */ lis r5, lbl_803EDE44@ha +/* 803306E0 0032D640 3C A0 80 3F */ lis r5, __vt__20CREGetComponentGreen@ha /* 803306E4 0032D644 90 03 00 00 */ stw r0, 0(r3) /* 803306E8 0032D648 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 803306EC 0032D64C 38 05 DE 44 */ addi r0, r5, lbl_803EDE44@l +/* 803306EC 0032D64C 38 05 DE 44 */ addi r0, r5, __vt__20CREGetComponentGreen@l /* 803306F0 0032D650 90 C3 00 00 */ stw r6, 0(r3) /* 803306F4 0032D654 90 03 00 00 */ stw r0, 0(r3) /* 803306F8 0032D658 90 83 00 04 */ stw r4, 4(r3) @@ -800,8 +800,8 @@ GetValue__18CREGetComponentRedCFiRf: /* 80330774 0032D6D4 38 21 00 20 */ addi r1, r1, 0x20 /* 80330778 0032D6D8 4E 80 00 20 */ blr -.global __dt__18CREGetComponentRed -__dt__18CREGetComponentRed: +.global __dt__18CREGetComponentRedFv +__dt__18CREGetComponentRedFv: /* 8033077C 0032D6DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80330780 0032D6E0 7C 08 02 A6 */ mflr r0 /* 80330784 0032D6E4 90 01 00 14 */ stw r0, 0x14(r1) @@ -810,8 +810,8 @@ __dt__18CREGetComponentRed: /* 80330790 0032D6F0 93 C1 00 08 */ stw r30, 8(r1) /* 80330794 0032D6F4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330798 0032D6F8 41 82 00 68 */ beq lbl_80330800 -/* 8033079C 0032D6FC 3C 60 80 3F */ lis r3, lbl_803EDE58@ha -/* 803307A0 0032D700 38 03 DE 58 */ addi r0, r3, lbl_803EDE58@l +/* 8033079C 0032D6FC 3C 60 80 3F */ lis r3, __vt__18CREGetComponentRed@ha +/* 803307A0 0032D700 38 03 DE 58 */ addi r0, r3, __vt__18CREGetComponentRed@l /* 803307A4 0032D704 90 1E 00 00 */ stw r0, 0(r30) /* 803307A8 0032D708 80 7E 00 04 */ lwz r3, 4(r30) /* 803307AC 0032D70C 28 03 00 00 */ cmplwi r3, 0 @@ -851,10 +851,10 @@ __ct__18CREGetComponentRedFP13CColorElement: /* 8033081C 0032D77C 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80330820 0032D780 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80330824 0032D784 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80330828 0032D788 3C A0 80 3F */ lis r5, lbl_803EDE58@ha +/* 80330828 0032D788 3C A0 80 3F */ lis r5, __vt__18CREGetComponentRed@ha /* 8033082C 0032D78C 90 03 00 00 */ stw r0, 0(r3) /* 80330830 0032D790 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80330834 0032D794 38 05 DE 58 */ addi r0, r5, lbl_803EDE58@l +/* 80330834 0032D794 38 05 DE 58 */ addi r0, r5, __vt__18CREGetComponentRed@l /* 80330838 0032D798 90 C3 00 00 */ stw r6, 0(r3) /* 8033083C 0032D79C 90 03 00 00 */ stw r0, 0(r3) /* 80330840 0032D7A0 90 83 00 04 */ stw r4, 4(r3) @@ -900,8 +900,8 @@ GetValue__11CRESubtractCFiRf: /* 803308D4 0032D834 38 21 00 20 */ addi r1, r1, 0x20 /* 803308D8 0032D838 4E 80 00 20 */ blr -.global __dt__11CRESubtract -__dt__11CRESubtract: +.global __dt__11CRESubtractFv +__dt__11CRESubtractFv: /* 803308DC 0032D83C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803308E0 0032D840 7C 08 02 A6 */ mflr r0 /* 803308E4 0032D844 90 01 00 14 */ stw r0, 0x14(r1) @@ -910,8 +910,8 @@ __dt__11CRESubtract: /* 803308F0 0032D850 93 C1 00 08 */ stw r30, 8(r1) /* 803308F4 0032D854 7C 7E 1B 79 */ or. r30, r3, r3 /* 803308F8 0032D858 41 82 00 88 */ beq lbl_80330980 -/* 803308FC 0032D85C 3C 60 80 3F */ lis r3, lbl_803EDE6C@ha -/* 80330900 0032D860 38 03 DE 6C */ addi r0, r3, lbl_803EDE6C@l +/* 803308FC 0032D85C 3C 60 80 3F */ lis r3, __vt__11CRESubtract@ha +/* 80330900 0032D860 38 03 DE 6C */ addi r0, r3, __vt__11CRESubtract@l /* 80330904 0032D864 90 1E 00 00 */ stw r0, 0(r30) /* 80330908 0032D868 80 7E 00 04 */ lwz r3, 4(r30) /* 8033090C 0032D86C 28 03 00 00 */ cmplwi r3, 0 @@ -960,18 +960,18 @@ __ct__11CRESubtractFP12CRealElementP12CRealElement: /* 8033099C 0032D8FC 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 803309A0 0032D900 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 803309A4 0032D904 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 803309A8 0032D908 3C C0 80 3F */ lis r6, lbl_803EDE6C@ha +/* 803309A8 0032D908 3C C0 80 3F */ lis r6, __vt__11CRESubtract@ha /* 803309AC 0032D90C 90 03 00 00 */ stw r0, 0(r3) /* 803309B0 0032D910 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 803309B4 0032D914 38 06 DE 6C */ addi r0, r6, lbl_803EDE6C@l +/* 803309B4 0032D914 38 06 DE 6C */ addi r0, r6, __vt__11CRESubtract@l /* 803309B8 0032D918 90 E3 00 00 */ stw r7, 0(r3) /* 803309BC 0032D91C 90 03 00 00 */ stw r0, 0(r3) /* 803309C0 0032D920 90 83 00 04 */ stw r4, 4(r3) /* 803309C4 0032D924 90 A3 00 08 */ stw r5, 8(r3) /* 803309C8 0032D928 4E 80 00 20 */ blr -.global GetValue__7CRECEXTCFiRf -GetValue__7CRECEXTCFiRf: +.global GetValue__14CREExternalVarCFiRf +GetValue__14CREExternalVarCFiRf: /* 803309CC 0032D92C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 803309D0 0032D930 7C 08 02 A6 */ mflr r0 /* 803309D4 0032D934 90 01 00 24 */ stw r0, 0x24(r1) @@ -1002,7 +1002,7 @@ lbl_80330A18: /* 80330A34 0032D994 7C 80 22 14 */ add r4, r0, r4 /* 80330A38 0032D998 90 81 00 08 */ stw r4, 8(r1) /* 80330A3C 0032D99C 80 63 00 04 */ lwz r3, 4(r3) -/* 80330A40 0032D9A0 4B FE 6C 2D */ bl GetCEXTValue__11CElementGenCFi +/* 80330A40 0032D9A0 4B FE 6C 2D */ bl GetExternalVar__11CElementGenCFi /* 80330A44 0032D9A4 D0 3F 00 00 */ stfs f1, 0(r31) /* 80330A48 0032D9A8 38 60 00 00 */ li r3, 0 /* 80330A4C 0032D9AC 80 01 00 24 */ lwz r0, 0x24(r1) @@ -1011,8 +1011,8 @@ lbl_80330A18: /* 80330A58 0032D9B8 38 21 00 20 */ addi r1, r1, 0x20 /* 80330A5C 0032D9BC 4E 80 00 20 */ blr -.global __dt__7CRECEXT -__dt__7CRECEXT: +.global __dt__14CREExternalVarFv +__dt__14CREExternalVarFv: /* 80330A60 0032D9C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80330A64 0032D9C4 7C 08 02 A6 */ mflr r0 /* 80330A68 0032D9C8 90 01 00 14 */ stw r0, 0x14(r1) @@ -1021,8 +1021,8 @@ __dt__7CRECEXT: /* 80330A74 0032D9D4 93 C1 00 08 */ stw r30, 8(r1) /* 80330A78 0032D9D8 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330A7C 0032D9DC 41 82 00 68 */ beq lbl_80330AE4 -/* 80330A80 0032D9E0 3C 60 80 3F */ lis r3, lbl_803EDE80@ha -/* 80330A84 0032D9E4 38 03 DE 80 */ addi r0, r3, lbl_803EDE80@l +/* 80330A80 0032D9E0 3C 60 80 3F */ lis r3, __vt__14CREExternalVar@ha +/* 80330A84 0032D9E4 38 03 DE 80 */ addi r0, r3, __vt__14CREExternalVar@l /* 80330A88 0032D9E8 90 1E 00 00 */ stw r0, 0(r30) /* 80330A8C 0032D9EC 80 7E 00 04 */ lwz r3, 4(r30) /* 80330A90 0032D9F0 28 03 00 00 */ cmplwi r3, 0 @@ -1057,15 +1057,15 @@ lbl_80330AE4: /* 80330AF8 0032DA58 38 21 00 10 */ addi r1, r1, 0x10 /* 80330AFC 0032DA5C 4E 80 00 20 */ blr -.global __ct__7CRECEXTFP11CIntElement -__ct__7CRECEXTFP11CIntElement: +.global __ct__14CREExternalVarFP11CIntElement +__ct__14CREExternalVarFP11CIntElement: /* 80330B00 0032DA60 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80330B04 0032DA64 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80330B08 0032DA68 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80330B0C 0032DA6C 3C A0 80 3F */ lis r5, lbl_803EDE80@ha +/* 80330B0C 0032DA6C 3C A0 80 3F */ lis r5, __vt__14CREExternalVar@ha /* 80330B10 0032DA70 90 03 00 00 */ stw r0, 0(r3) /* 80330B14 0032DA74 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80330B18 0032DA78 38 05 DE 80 */ addi r0, r5, lbl_803EDE80@l +/* 80330B18 0032DA78 38 05 DE 80 */ addi r0, r5, __vt__14CREExternalVar@l /* 80330B1C 0032DA7C 90 C3 00 00 */ stw r6, 0(r3) /* 80330B20 0032DA80 90 03 00 00 */ stw r0, 0(r3) /* 80330B24 0032DA84 90 83 00 04 */ stw r4, 4(r3) @@ -1135,8 +1135,8 @@ lbl_80330BF8: /* 80330C10 0032DB70 38 21 00 30 */ addi r1, r1, 0x30 /* 80330C14 0032DB74 4E 80 00 20 */ blr -.global __dt__16CREConstantRange -__dt__16CREConstantRange: +.global __dt__16CREConstantRangeFv +__dt__16CREConstantRangeFv: /* 80330C18 0032DB78 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80330C1C 0032DB7C 7C 08 02 A6 */ mflr r0 /* 80330C20 0032DB80 90 01 00 14 */ stw r0, 0x14(r1) @@ -1145,8 +1145,8 @@ __dt__16CREConstantRange: /* 80330C2C 0032DB8C 93 C1 00 08 */ stw r30, 8(r1) /* 80330C30 0032DB90 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330C34 0032DB94 41 82 00 E8 */ beq lbl_80330D1C -/* 80330C38 0032DB98 3C 60 80 3F */ lis r3, lbl_803EDE94@ha -/* 80330C3C 0032DB9C 38 03 DE 94 */ addi r0, r3, lbl_803EDE94@l +/* 80330C38 0032DB98 3C 60 80 3F */ lis r3, __vt__16CREConstantRange@ha +/* 80330C3C 0032DB9C 38 03 DE 94 */ addi r0, r3, __vt__16CREConstantRange@l /* 80330C40 0032DBA0 90 1E 00 00 */ stw r0, 0(r30) /* 80330C44 0032DBA4 80 7E 00 04 */ lwz r3, 4(r30) /* 80330C48 0032DBA8 28 03 00 00 */ cmplwi r3, 0 @@ -1222,10 +1222,10 @@ __ct__16CREConstantRangeFP12CRealElementP12CRealElementP12CRealElementP12CRealEl /* 80330D38 0032DC98 3D 60 80 3F */ lis r11, __vt__8IElement@ha /* 80330D3C 0032DC9C 3D 40 80 3F */ lis r10, __vt__12CRealElement@ha /* 80330D40 0032DCA0 38 0B C5 A8 */ addi r0, r11, __vt__8IElement@l -/* 80330D44 0032DCA4 3D 20 80 3F */ lis r9, lbl_803EDE94@ha +/* 80330D44 0032DCA4 3D 20 80 3F */ lis r9, __vt__16CREConstantRange@ha /* 80330D48 0032DCA8 90 03 00 00 */ stw r0, 0(r3) /* 80330D4C 0032DCAC 39 4A C5 54 */ addi r10, r10, __vt__12CRealElement@l -/* 80330D50 0032DCB0 38 09 DE 94 */ addi r0, r9, lbl_803EDE94@l +/* 80330D50 0032DCB0 38 09 DE 94 */ addi r0, r9, __vt__16CREConstantRange@l /* 80330D54 0032DCB4 91 43 00 00 */ stw r10, 0(r3) /* 80330D58 0032DCB8 90 03 00 00 */ stw r0, 0(r3) /* 80330D5C 0032DCBC 90 83 00 04 */ stw r4, 4(r3) @@ -1292,8 +1292,8 @@ lbl_80330E24: /* 80330E3C 0032DD9C 38 21 00 20 */ addi r1, r1, 0x20 /* 80330E40 0032DDA0 4E 80 00 20 */ blr -.global __dt__15CRECompareEqual -__dt__15CRECompareEqual: +.global __dt__15CRECompareEqualFv +__dt__15CRECompareEqualFv: /* 80330E44 0032DDA4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80330E48 0032DDA8 7C 08 02 A6 */ mflr r0 /* 80330E4C 0032DDAC 90 01 00 14 */ stw r0, 0x14(r1) @@ -1302,8 +1302,8 @@ __dt__15CRECompareEqual: /* 80330E58 0032DDB8 93 C1 00 08 */ stw r30, 8(r1) /* 80330E5C 0032DDBC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80330E60 0032DDC0 41 82 00 C8 */ beq lbl_80330F28 -/* 80330E64 0032DDC4 3C 60 80 3F */ lis r3, lbl_803EDEA8@ha -/* 80330E68 0032DDC8 38 03 DE A8 */ addi r0, r3, lbl_803EDEA8@l +/* 80330E64 0032DDC4 3C 60 80 3F */ lis r3, __vt__15CRECompareEqual@ha +/* 80330E68 0032DDC8 38 03 DE A8 */ addi r0, r3, __vt__15CRECompareEqual@l /* 80330E6C 0032DDCC 90 1E 00 00 */ stw r0, 0(r30) /* 80330E70 0032DDD0 80 7E 00 04 */ lwz r3, 4(r30) /* 80330E74 0032DDD4 28 03 00 00 */ cmplwi r3, 0 @@ -1370,10 +1370,10 @@ __ct__15CRECompareEqualFP12CRealElementP12CRealElementP12CRealElementP12CRealEle /* 80330F44 0032DEA4 3D 40 80 3F */ lis r10, __vt__8IElement@ha /* 80330F48 0032DEA8 3D 20 80 3F */ lis r9, __vt__12CRealElement@ha /* 80330F4C 0032DEAC 38 0A C5 A8 */ addi r0, r10, __vt__8IElement@l -/* 80330F50 0032DEB0 3D 00 80 3F */ lis r8, lbl_803EDEA8@ha +/* 80330F50 0032DEB0 3D 00 80 3F */ lis r8, __vt__15CRECompareEqual@ha /* 80330F54 0032DEB4 90 03 00 00 */ stw r0, 0(r3) /* 80330F58 0032DEB8 39 29 C5 54 */ addi r9, r9, __vt__12CRealElement@l -/* 80330F5C 0032DEBC 38 08 DE A8 */ addi r0, r8, lbl_803EDEA8@l +/* 80330F5C 0032DEBC 38 08 DE A8 */ addi r0, r8, __vt__15CRECompareEqual@l /* 80330F60 0032DEC0 91 23 00 00 */ stw r9, 0(r3) /* 80330F64 0032DEC4 90 03 00 00 */ stw r0, 0(r3) /* 80330F68 0032DEC8 90 83 00 04 */ stw r4, 4(r3) @@ -1436,8 +1436,8 @@ lbl_80331020: /* 80331038 0032DF98 38 21 00 20 */ addi r1, r1, 0x20 /* 8033103C 0032DF9C 4E 80 00 20 */ blr -.global __dt__18CRECompareLessThan -__dt__18CRECompareLessThan: +.global __dt__18CRECompareLessThanFv +__dt__18CRECompareLessThanFv: /* 80331040 0032DFA0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331044 0032DFA4 7C 08 02 A6 */ mflr r0 /* 80331048 0032DFA8 90 01 00 14 */ stw r0, 0x14(r1) @@ -1446,8 +1446,8 @@ __dt__18CRECompareLessThan: /* 80331054 0032DFB4 93 C1 00 08 */ stw r30, 8(r1) /* 80331058 0032DFB8 7C 7E 1B 79 */ or. r30, r3, r3 /* 8033105C 0032DFBC 41 82 00 C8 */ beq lbl_80331124 -/* 80331060 0032DFC0 3C 60 80 3F */ lis r3, lbl_803EDEBC@ha -/* 80331064 0032DFC4 38 03 DE BC */ addi r0, r3, lbl_803EDEBC@l +/* 80331060 0032DFC0 3C 60 80 3F */ lis r3, __vt__18CRECompareLessThan@ha +/* 80331064 0032DFC4 38 03 DE BC */ addi r0, r3, __vt__18CRECompareLessThan@l /* 80331068 0032DFC8 90 1E 00 00 */ stw r0, 0(r30) /* 8033106C 0032DFCC 80 7E 00 04 */ lwz r3, 4(r30) /* 80331070 0032DFD0 28 03 00 00 */ cmplwi r3, 0 @@ -1514,10 +1514,10 @@ __ct__18CRECompareLessThanFP12CRealElementP12CRealElementP12CRealElementP12CReal /* 80331140 0032E0A0 3D 40 80 3F */ lis r10, __vt__8IElement@ha /* 80331144 0032E0A4 3D 20 80 3F */ lis r9, __vt__12CRealElement@ha /* 80331148 0032E0A8 38 0A C5 A8 */ addi r0, r10, __vt__8IElement@l -/* 8033114C 0032E0AC 3D 00 80 3F */ lis r8, lbl_803EDEBC@ha +/* 8033114C 0032E0AC 3D 00 80 3F */ lis r8, __vt__18CRECompareLessThan@ha /* 80331150 0032E0B0 90 03 00 00 */ stw r0, 0(r3) /* 80331154 0032E0B4 39 29 C5 54 */ addi r9, r9, __vt__12CRealElement@l -/* 80331158 0032E0B8 38 08 DE BC */ addi r0, r8, lbl_803EDEBC@l +/* 80331158 0032E0B8 38 08 DE BC */ addi r0, r8, __vt__18CRECompareLessThan@l /* 8033115C 0032E0BC 91 23 00 00 */ stw r9, 0(r3) /* 80331160 0032E0C0 90 03 00 00 */ stw r0, 0(r3) /* 80331164 0032E0C4 90 83 00 04 */ stw r4, 4(r3) @@ -1526,8 +1526,8 @@ __ct__18CRECompareLessThanFP12CRealElementP12CRealElementP12CRealElementP12CReal /* 80331170 0032E0D0 90 E3 00 10 */ stw r7, 0x10(r3) /* 80331174 0032E0D4 4E 80 00 20 */ blr -.global GetValue__7CREIWSTGCFiRf -GetValue__7CREIWSTGCFiRf: +.global GetValue__16CREInitialSwitchCFiRf +GetValue__16CREInitialSwitchCFiRf: /* 80331178 0032E0D8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033117C 0032E0DC 7C 08 02 A6 */ mflr r0 /* 80331180 0032E0E0 2C 04 00 00 */ cmpwi r4, 0 @@ -1554,8 +1554,8 @@ lbl_803311C0: /* 803311CC 0032E12C 38 21 00 10 */ addi r1, r1, 0x10 /* 803311D0 0032E130 4E 80 00 20 */ blr -.global __dt__7CREIWST -__dt__7CREIWST: +.global __dt__16CREInitialSwitchFv +__dt__16CREInitialSwitchFv: /* 803311D4 0032E134 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803311D8 0032E138 7C 08 02 A6 */ mflr r0 /* 803311DC 0032E13C 90 01 00 14 */ stw r0, 0x14(r1) @@ -1564,8 +1564,8 @@ __dt__7CREIWST: /* 803311E8 0032E148 93 C1 00 08 */ stw r30, 8(r1) /* 803311EC 0032E14C 7C 7E 1B 79 */ or. r30, r3, r3 /* 803311F0 0032E150 41 82 00 88 */ beq lbl_80331278 -/* 803311F4 0032E154 3C 60 80 3F */ lis r3, lbl_803EDED0@ha -/* 803311F8 0032E158 38 03 DE D0 */ addi r0, r3, lbl_803EDED0@l +/* 803311F4 0032E154 3C 60 80 3F */ lis r3, __vt__16CREInitialSwitch@ha +/* 803311F8 0032E158 38 03 DE D0 */ addi r0, r3, __vt__16CREInitialSwitch@l /* 803311FC 0032E15C 90 1E 00 00 */ stw r0, 0(r30) /* 80331200 0032E160 80 7E 00 04 */ lwz r3, 4(r30) /* 80331204 0032E164 28 03 00 00 */ cmplwi r3, 0 @@ -1609,15 +1609,15 @@ lbl_80331278: /* 8033128C 0032E1EC 38 21 00 10 */ addi r1, r1, 0x10 /* 80331290 0032E1F0 4E 80 00 20 */ blr -.global __ct__7CREISWTFP12CRealElementP12CRealElement -__ct__7CREISWTFP12CRealElementP12CRealElement: +.global __ct__16CREInitialSwitchFP12CRealElementP12CRealElement +__ct__16CREInitialSwitchFP12CRealElementP12CRealElement: /* 80331294 0032E1F4 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80331298 0032E1F8 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 8033129C 0032E1FC 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 803312A0 0032E200 3C C0 80 3F */ lis r6, lbl_803EDED0@ha +/* 803312A0 0032E200 3C C0 80 3F */ lis r6, __vt__16CREInitialSwitch@ha /* 803312A4 0032E204 90 03 00 00 */ stw r0, 0(r3) /* 803312A8 0032E208 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 803312AC 0032E20C 38 06 DE D0 */ addi r0, r6, lbl_803EDED0@l +/* 803312AC 0032E20C 38 06 DE D0 */ addi r0, r6, __vt__16CREInitialSwitch@l /* 803312B0 0032E210 90 E3 00 00 */ stw r7, 0(r3) /* 803312B4 0032E214 90 03 00 00 */ stw r0, 0(r3) /* 803312B8 0032E218 90 83 00 04 */ stw r4, 4(r3) @@ -1654,8 +1654,8 @@ GetValue__18CREVectorMagnitudeCFiRf: /* 80331328 0032E288 38 21 00 20 */ addi r1, r1, 0x20 /* 8033132C 0032E28C 4E 80 00 20 */ blr -.global __dt__18CREVectorMagnitude -__dt__18CREVectorMagnitude: +.global __dt__18CREVectorMagnitudeFv +__dt__18CREVectorMagnitudeFv: /* 80331330 0032E290 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331334 0032E294 7C 08 02 A6 */ mflr r0 /* 80331338 0032E298 90 01 00 14 */ stw r0, 0x14(r1) @@ -1664,8 +1664,8 @@ __dt__18CREVectorMagnitude: /* 80331344 0032E2A4 93 C1 00 08 */ stw r30, 8(r1) /* 80331348 0032E2A8 7C 7E 1B 79 */ or. r30, r3, r3 /* 8033134C 0032E2AC 41 82 00 68 */ beq lbl_803313B4 -/* 80331350 0032E2B0 3C 60 80 3F */ lis r3, lbl_803EDEE4@ha -/* 80331354 0032E2B4 38 03 DE E4 */ addi r0, r3, lbl_803EDEE4@l +/* 80331350 0032E2B0 3C 60 80 3F */ lis r3, __vt__18CREVectorMagnitude@ha +/* 80331354 0032E2B4 38 03 DE E4 */ addi r0, r3, __vt__18CREVectorMagnitude@l /* 80331358 0032E2B8 90 1E 00 00 */ stw r0, 0(r30) /* 8033135C 0032E2BC 80 7E 00 04 */ lwz r3, 4(r30) /* 80331360 0032E2C0 28 03 00 00 */ cmplwi r3, 0 @@ -1705,10 +1705,10 @@ __ct__18CREVectorMagnitudeFP14CVectorElement: /* 803313D0 0032E330 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 803313D4 0032E334 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 803313D8 0032E338 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 803313DC 0032E33C 3C A0 80 3F */ lis r5, lbl_803EDEE4@ha +/* 803313DC 0032E33C 3C A0 80 3F */ lis r5, __vt__18CREVectorMagnitude@ha /* 803313E0 0032E340 90 03 00 00 */ stw r0, 0(r3) /* 803313E4 0032E344 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 803313E8 0032E348 38 05 DE E4 */ addi r0, r5, lbl_803EDEE4@l +/* 803313E8 0032E348 38 05 DE E4 */ addi r0, r5, __vt__18CREVectorMagnitude@l /* 803313EC 0032E34C 90 C3 00 00 */ stw r6, 0(r3) /* 803313F0 0032E350 90 03 00 00 */ stw r0, 0(r3) /* 803313F4 0032E354 90 83 00 04 */ stw r4, 4(r3) @@ -1743,8 +1743,8 @@ GetValue__16CREVectorZToRealCFiRf: /* 8033145C 0032E3BC 38 21 00 20 */ addi r1, r1, 0x20 /* 80331460 0032E3C0 4E 80 00 20 */ blr -.global __dt__16CREVectorZToReal -__dt__16CREVectorZToReal: +.global __dt__16CREVectorZToRealFv +__dt__16CREVectorZToRealFv: /* 80331464 0032E3C4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331468 0032E3C8 7C 08 02 A6 */ mflr r0 /* 8033146C 0032E3CC 90 01 00 14 */ stw r0, 0x14(r1) @@ -1753,8 +1753,8 @@ __dt__16CREVectorZToReal: /* 80331478 0032E3D8 93 C1 00 08 */ stw r30, 8(r1) /* 8033147C 0032E3DC 7C 7E 1B 79 */ or. r30, r3, r3 /* 80331480 0032E3E0 41 82 00 68 */ beq lbl_803314E8 -/* 80331484 0032E3E4 3C 60 80 3F */ lis r3, lbl_803EDEF8@ha -/* 80331488 0032E3E8 38 03 DE F8 */ addi r0, r3, lbl_803EDEF8@l +/* 80331484 0032E3E4 3C 60 80 3F */ lis r3, __vt__16CREVectorZToReal@ha +/* 80331488 0032E3E8 38 03 DE F8 */ addi r0, r3, __vt__16CREVectorZToReal@l /* 8033148C 0032E3EC 90 1E 00 00 */ stw r0, 0(r30) /* 80331490 0032E3F0 80 7E 00 04 */ lwz r3, 4(r30) /* 80331494 0032E3F4 28 03 00 00 */ cmplwi r3, 0 @@ -1794,10 +1794,10 @@ __ct__16CREVectorZToRealFP14CVectorElement: /* 80331504 0032E464 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80331508 0032E468 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 8033150C 0032E46C 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80331510 0032E470 3C A0 80 3F */ lis r5, lbl_803EDEF8@ha +/* 80331510 0032E470 3C A0 80 3F */ lis r5, __vt__16CREVectorZToReal@ha /* 80331514 0032E474 90 03 00 00 */ stw r0, 0(r3) /* 80331518 0032E478 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 8033151C 0032E47C 38 05 DE F8 */ addi r0, r5, lbl_803EDEF8@l +/* 8033151C 0032E47C 38 05 DE F8 */ addi r0, r5, __vt__16CREVectorZToReal@l /* 80331520 0032E480 90 C3 00 00 */ stw r6, 0(r3) /* 80331524 0032E484 90 03 00 00 */ stw r0, 0(r3) /* 80331528 0032E488 90 83 00 04 */ stw r4, 4(r3) @@ -1832,8 +1832,8 @@ GetValue__16CREVectorYToRealCFiRf: /* 80331590 0032E4F0 38 21 00 20 */ addi r1, r1, 0x20 /* 80331594 0032E4F4 4E 80 00 20 */ blr -.global __dt__16CREVectorYToReal -__dt__16CREVectorYToReal: +.global __dt__16CREVectorYToRealFv +__dt__16CREVectorYToRealFv: /* 80331598 0032E4F8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033159C 0032E4FC 7C 08 02 A6 */ mflr r0 /* 803315A0 0032E500 90 01 00 14 */ stw r0, 0x14(r1) @@ -1842,8 +1842,8 @@ __dt__16CREVectorYToReal: /* 803315AC 0032E50C 93 C1 00 08 */ stw r30, 8(r1) /* 803315B0 0032E510 7C 7E 1B 79 */ or. r30, r3, r3 /* 803315B4 0032E514 41 82 00 68 */ beq lbl_8033161C -/* 803315B8 0032E518 3C 60 80 3F */ lis r3, lbl_803EDF0C@ha -/* 803315BC 0032E51C 38 03 DF 0C */ addi r0, r3, lbl_803EDF0C@l +/* 803315B8 0032E518 3C 60 80 3F */ lis r3, __vt__16CREVectorYToReal@ha +/* 803315BC 0032E51C 38 03 DF 0C */ addi r0, r3, __vt__16CREVectorYToReal@l /* 803315C0 0032E520 90 1E 00 00 */ stw r0, 0(r30) /* 803315C4 0032E524 80 7E 00 04 */ lwz r3, 4(r30) /* 803315C8 0032E528 28 03 00 00 */ cmplwi r3, 0 @@ -1883,10 +1883,10 @@ __ct__16CREVectorYToRealFP14CVectorElement: /* 80331638 0032E598 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 8033163C 0032E59C 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80331640 0032E5A0 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80331644 0032E5A4 3C A0 80 3F */ lis r5, lbl_803EDF0C@ha +/* 80331644 0032E5A4 3C A0 80 3F */ lis r5, __vt__16CREVectorYToReal@ha /* 80331648 0032E5A8 90 03 00 00 */ stw r0, 0(r3) /* 8033164C 0032E5AC 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80331650 0032E5B0 38 05 DF 0C */ addi r0, r5, lbl_803EDF0C@l +/* 80331650 0032E5B0 38 05 DF 0C */ addi r0, r5, __vt__16CREVectorYToReal@l /* 80331654 0032E5B4 90 C3 00 00 */ stw r6, 0(r3) /* 80331658 0032E5B8 90 03 00 00 */ stw r0, 0(r3) /* 8033165C 0032E5BC 90 83 00 04 */ stw r4, 4(r3) @@ -1921,8 +1921,8 @@ GetValue__16CREVectorXToRealCFiRf: /* 803316C4 0032E624 38 21 00 20 */ addi r1, r1, 0x20 /* 803316C8 0032E628 4E 80 00 20 */ blr -.global __dt__16CREVectorXToReal -__dt__16CREVectorXToReal: +.global __dt__16CREVectorXToRealFv +__dt__16CREVectorXToRealFv: /* 803316CC 0032E62C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803316D0 0032E630 7C 08 02 A6 */ mflr r0 /* 803316D4 0032E634 90 01 00 14 */ stw r0, 0x14(r1) @@ -1931,8 +1931,8 @@ __dt__16CREVectorXToReal: /* 803316E0 0032E640 93 C1 00 08 */ stw r30, 8(r1) /* 803316E4 0032E644 7C 7E 1B 79 */ or. r30, r3, r3 /* 803316E8 0032E648 41 82 00 68 */ beq lbl_80331750 -/* 803316EC 0032E64C 3C 60 80 3F */ lis r3, lbl_803EDF20@ha -/* 803316F0 0032E650 38 03 DF 20 */ addi r0, r3, lbl_803EDF20@l +/* 803316EC 0032E64C 3C 60 80 3F */ lis r3, __vt__16CREVectorXToReal@ha +/* 803316F0 0032E650 38 03 DF 20 */ addi r0, r3, __vt__16CREVectorXToReal@l /* 803316F4 0032E654 90 1E 00 00 */ stw r0, 0(r30) /* 803316F8 0032E658 80 7E 00 04 */ lwz r3, 4(r30) /* 803316FC 0032E65C 28 03 00 00 */ cmplwi r3, 0 @@ -1972,26 +1972,26 @@ __ct__16CREVectorXToRealFP14CVectorElement: /* 8033176C 0032E6CC 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80331770 0032E6D0 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80331774 0032E6D4 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80331778 0032E6D8 3C A0 80 3F */ lis r5, lbl_803EDF20@ha +/* 80331778 0032E6D8 3C A0 80 3F */ lis r5, __vt__16CREVectorXToReal@ha /* 8033177C 0032E6DC 90 03 00 00 */ stw r0, 0(r3) /* 80331780 0032E6E0 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80331784 0032E6E4 38 05 DF 20 */ addi r0, r5, lbl_803EDF20@l +/* 80331784 0032E6E4 38 05 DF 20 */ addi r0, r5, __vt__16CREVectorXToReal@l /* 80331788 0032E6E8 90 C3 00 00 */ stw r6, 0(r3) /* 8033178C 0032E6EC 90 03 00 00 */ stw r0, 0(r3) /* 80331790 0032E6F0 90 83 00 04 */ stw r4, 4(r3) /* 80331794 0032E6F4 4E 80 00 20 */ blr -.global GetValue__7CREPRLWGCFiRf -GetValue__7CREPRLWGCFiRf: -/* 80331798 0032E6F8 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +.global GetValue__30CREParticleRotationOrLineWidthCFiRf +GetValue__30CREParticleRotationOrLineWidthCFiRf: +/* 80331798 0032E6F8 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 8033179C 0032E6FC 38 60 00 00 */ li r3, 0 /* 803317A0 0032E700 C0 04 00 30 */ lfs f0, 0x30(r4) /* 803317A4 0032E704 D0 05 00 00 */ stfs f0, 0(r5) /* 803317A8 0032E708 4E 80 00 20 */ blr -.global GetValue__7CREPSLLGCFiRf -GetValue__7CREPSLLGCFiRf: -/* 803317AC 0032E70C 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +.global GetValue__27CREParticleSizeOrLineLengthCFiRf +GetValue__27CREParticleSizeOrLineLengthCFiRf: +/* 803317AC 0032E70C 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 803317B0 0032E710 38 60 00 00 */ li r3, 0 /* 803317B4 0032E714 C0 04 00 2C */ lfs f0, 0x2c(r4) /* 803317B8 0032E718 D0 05 00 00 */ stfs f0, 0(r5) @@ -1999,7 +1999,7 @@ GetValue__7CREPSLLGCFiRf: .global GetValue__27CREParticleAccessParameter8CFiRf GetValue__27CREParticleAccessParameter8CFiRf: -/* 803317C0 0032E720 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 803317C0 0032E720 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 803317C4 0032E724 38 60 00 00 */ li r3, 0 /* 803317C8 0032E728 C0 04 00 1C */ lfs f0, 0x1c(r4) /* 803317CC 0032E72C D0 05 00 00 */ stfs f0, 0(r5) @@ -2007,7 +2007,7 @@ GetValue__27CREParticleAccessParameter8CFiRf: .global GetValue__27CREParticleAccessParameter7CFiRf GetValue__27CREParticleAccessParameter7CFiRf: -/* 803317D4 0032E734 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 803317D4 0032E734 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 803317D8 0032E738 38 60 00 00 */ li r3, 0 /* 803317DC 0032E73C C0 04 00 18 */ lfs f0, 0x18(r4) /* 803317E0 0032E740 D0 05 00 00 */ stfs f0, 0(r5) @@ -2015,7 +2015,7 @@ GetValue__27CREParticleAccessParameter7CFiRf: .global GetValue__27CREParticleAccessParameter6CFiRf GetValue__27CREParticleAccessParameter6CFiRf: -/* 803317E8 0032E748 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 803317E8 0032E748 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 803317EC 0032E74C 38 60 00 00 */ li r3, 0 /* 803317F0 0032E750 C0 04 00 14 */ lfs f0, 0x14(r4) /* 803317F4 0032E754 D0 05 00 00 */ stfs f0, 0(r5) @@ -2023,7 +2023,7 @@ GetValue__27CREParticleAccessParameter6CFiRf: .global GetValue__27CREParticleAccessParameter5CFiRf GetValue__27CREParticleAccessParameter5CFiRf: -/* 803317FC 0032E75C 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 803317FC 0032E75C 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 80331800 0032E760 38 60 00 00 */ li r3, 0 /* 80331804 0032E764 C0 04 00 10 */ lfs f0, 0x10(r4) /* 80331808 0032E768 D0 05 00 00 */ stfs f0, 0(r5) @@ -2031,7 +2031,7 @@ GetValue__27CREParticleAccessParameter5CFiRf: .global GetValue__27CREParticleAccessParameter4CFiRf GetValue__27CREParticleAccessParameter4CFiRf: -/* 80331810 0032E770 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 80331810 0032E770 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 80331814 0032E774 38 60 00 00 */ li r3, 0 /* 80331818 0032E778 C0 04 00 0C */ lfs f0, 0xc(r4) /* 8033181C 0032E77C D0 05 00 00 */ stfs f0, 0(r5) @@ -2039,7 +2039,7 @@ GetValue__27CREParticleAccessParameter4CFiRf: .global GetValue__27CREParticleAccessParameter3CFiRf GetValue__27CREParticleAccessParameter3CFiRf: -/* 80331824 0032E784 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 80331824 0032E784 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 80331828 0032E788 38 60 00 00 */ li r3, 0 /* 8033182C 0032E78C C0 04 00 08 */ lfs f0, 8(r4) /* 80331830 0032E790 D0 05 00 00 */ stfs f0, 0(r5) @@ -2047,7 +2047,7 @@ GetValue__27CREParticleAccessParameter3CFiRf: .global GetValue__27CREParticleAccessParameter2CFiRf GetValue__27CREParticleAccessParameter2CFiRf: -/* 80331838 0032E798 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 80331838 0032E798 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 8033183C 0032E79C 38 60 00 00 */ li r3, 0 /* 80331840 0032E7A0 C0 04 00 04 */ lfs f0, 4(r4) /* 80331844 0032E7A4 D0 05 00 00 */ stfs f0, 0(r5) @@ -2055,7 +2055,7 @@ GetValue__27CREParticleAccessParameter2CFiRf: .global GetValue__27CREParticleAccessParameter1CFiRf GetValue__27CREParticleAccessParameter1CFiRf: -/* 8033184C 0032E7AC 80 8D A8 F0 */ lwz r4, lbl_805A94B0@sda21(r13) +/* 8033184C 0032E7AC 80 8D A8 F0 */ lwz r4, mParticleAccessParameters__16CParticleGlobals@sda21(r13) /* 80331850 0032E7B0 38 60 00 00 */ li r3, 0 /* 80331854 0032E7B4 C0 04 00 00 */ lfs f0, 0(r4) /* 80331858 0032E7B8 D0 05 00 00 */ stfs f0, 0(r5) @@ -2138,8 +2138,8 @@ lbl_80331960: /* 80331960 0032E8C0 38 21 00 10 */ addi r1, r1, 0x10 /* 80331964 0032E8C4 4E 80 00 20 */ blr -.global __dt__18CREKeyframeEmitter -__dt__18CREKeyframeEmitter: +.global __dt__18CREKeyframeEmitterFv +__dt__18CREKeyframeEmitterFv: /* 80331968 0032E8C8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8033196C 0032E8CC 7C 08 02 A6 */ mflr r0 /* 80331970 0032E8D0 90 01 00 24 */ stw r0, 0x24(r1) @@ -2148,9 +2148,9 @@ __dt__18CREKeyframeEmitter: /* 8033197C 0032E8DC 93 C1 00 18 */ stw r30, 0x18(r1) /* 80331980 0032E8E0 7C 7E 1B 79 */ or. r30, r3, r3 /* 80331984 0032E8E4 41 82 00 90 */ beq lbl_80331A14 -/* 80331988 0032E8E8 3C 60 80 3F */ lis r3, lbl_803EDFFC@ha +/* 80331988 0032E8E8 3C 60 80 3F */ lis r3, __vt__18CREKeyframeEmitter@ha /* 8033198C 0032E8EC 34 1E 00 18 */ addic. r0, r30, 0x18 -/* 80331990 0032E8F0 38 03 DF FC */ addi r0, r3, lbl_803EDFFC@l +/* 80331990 0032E8F0 38 03 DF FC */ addi r0, r3, __vt__18CREKeyframeEmitter@l /* 80331994 0032E8F4 90 1E 00 00 */ stw r0, 0(r30) /* 80331998 0032E8F8 41 82 00 44 */ beq lbl_803319DC /* 8033199C 0032E8FC 80 1E 00 1C */ lwz r0, 0x1c(r30) @@ -2208,7 +2208,7 @@ __ct__18CREKeyframeEmitterFR12CInputStream: /* 80331A4C 0032E9AC 3C 60 80 3F */ lis r3, __vt__8IElement@ha /* 80331A50 0032E9B0 93 C1 00 10 */ stw r30, 0x10(r1) /* 80331A54 0032E9B4 38 03 C5 A8 */ addi r0, r3, __vt__8IElement@l -/* 80331A58 0032E9B8 3C 60 80 3F */ lis r3, lbl_803EDFFC@ha +/* 80331A58 0032E9B8 3C 60 80 3F */ lis r3, __vt__18CREKeyframeEmitter@ha /* 80331A5C 0032E9BC 7F E6 FB 78 */ mr r6, r31 /* 80331A60 0032E9C0 93 A1 00 0C */ stw r29, 0xc(r1) /* 80331A64 0032E9C4 93 81 00 08 */ stw r28, 8(r1) @@ -2216,7 +2216,7 @@ __ct__18CREKeyframeEmitterFR12CInputStream: /* 80331A6C 0032E9CC 90 1F 00 00 */ stw r0, 0(r31) /* 80331A70 0032E9D0 38 05 C5 54 */ addi r0, r5, __vt__12CRealElement@l /* 80331A74 0032E9D4 90 1F 00 00 */ stw r0, 0(r31) -/* 80331A78 0032E9D8 38 03 DF FC */ addi r0, r3, lbl_803EDFFC@l +/* 80331A78 0032E9D8 38 03 DF FC */ addi r0, r3, __vt__18CREKeyframeEmitter@l /* 80331A7C 0032E9DC 7F 83 E3 78 */ mr r3, r28 /* 80331A80 0032E9E0 90 1F 00 00 */ stw r0, 0(r31) /* 80331A84 0032E9E4 48 00 D2 01 */ bl ReadLong__12CInputStreamFv @@ -2342,8 +2342,8 @@ GetValue__16CRELifetimeTweenCFiRf: /* 80331C44 0032EBA4 38 21 00 40 */ addi r1, r1, 0x40 /* 80331C48 0032EBA8 4E 80 00 20 */ blr -.global __dt__16CRELifetimeTween -__dt__16CRELifetimeTween: +.global __dt__16CRELifetimeTweenFv +__dt__16CRELifetimeTweenFv: /* 80331C4C 0032EBAC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331C50 0032EBB0 7C 08 02 A6 */ mflr r0 /* 80331C54 0032EBB4 90 01 00 14 */ stw r0, 0x14(r1) @@ -2352,8 +2352,8 @@ __dt__16CRELifetimeTween: /* 80331C60 0032EBC0 93 C1 00 08 */ stw r30, 8(r1) /* 80331C64 0032EBC4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80331C68 0032EBC8 41 82 00 88 */ beq lbl_80331CF0 -/* 80331C6C 0032EBCC 3C 60 80 3F */ lis r3, lbl_803EE010@ha -/* 80331C70 0032EBD0 38 03 E0 10 */ addi r0, r3, lbl_803EE010@l +/* 80331C6C 0032EBCC 3C 60 80 3F */ lis r3, __vt__16CRELifetimeTween@ha +/* 80331C70 0032EBD0 38 03 E0 10 */ addi r0, r3, __vt__16CRELifetimeTween@l /* 80331C74 0032EBD4 90 1E 00 00 */ stw r0, 0(r30) /* 80331C78 0032EBD8 80 7E 00 04 */ lwz r3, 4(r30) /* 80331C7C 0032EBDC 28 03 00 00 */ cmplwi r3, 0 @@ -2402,10 +2402,10 @@ __ct__16CRELifetimeTweenFP12CRealElementP12CRealElement: /* 80331D0C 0032EC6C 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80331D10 0032EC70 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80331D14 0032EC74 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 80331D18 0032EC78 3C C0 80 3F */ lis r6, lbl_803EE010@ha +/* 80331D18 0032EC78 3C C0 80 3F */ lis r6, __vt__16CRELifetimeTween@ha /* 80331D1C 0032EC7C 90 03 00 00 */ stw r0, 0(r3) /* 80331D20 0032EC80 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80331D24 0032EC84 38 06 E0 10 */ addi r0, r6, lbl_803EE010@l +/* 80331D24 0032EC84 38 06 E0 10 */ addi r0, r6, __vt__16CRELifetimeTween@l /* 80331D28 0032EC88 90 E3 00 00 */ stw r7, 0(r3) /* 80331D2C 0032EC8C 90 03 00 00 */ stw r0, 0(r3) /* 80331D30 0032EC90 90 83 00 04 */ stw r4, 4(r3) @@ -2446,8 +2446,8 @@ lbl_80331D84: /* 80331DAC 0032ED0C 38 21 00 20 */ addi r1, r1, 0x20 /* 80331DB0 0032ED10 4E 80 00 20 */ blr -.global __dt__18CRELifetimePercent -__dt__18CRELifetimePercent: +.global __dt__18CRELifetimePercentFv +__dt__18CRELifetimePercentFv: /* 80331DB4 0032ED14 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331DB8 0032ED18 7C 08 02 A6 */ mflr r0 /* 80331DBC 0032ED1C 90 01 00 14 */ stw r0, 0x14(r1) @@ -2456,8 +2456,8 @@ __dt__18CRELifetimePercent: /* 80331DC8 0032ED28 93 C1 00 08 */ stw r30, 8(r1) /* 80331DCC 0032ED2C 7C 7E 1B 79 */ or. r30, r3, r3 /* 80331DD0 0032ED30 41 82 00 68 */ beq lbl_80331E38 -/* 80331DD4 0032ED34 3C 60 80 3F */ lis r3, lbl_803EE024@ha -/* 80331DD8 0032ED38 38 03 E0 24 */ addi r0, r3, lbl_803EE024@l +/* 80331DD4 0032ED34 3C 60 80 3F */ lis r3, __vt__18CRELifetimePercent@ha +/* 80331DD8 0032ED38 38 03 E0 24 */ addi r0, r3, __vt__18CRELifetimePercent@l /* 80331DDC 0032ED3C 90 1E 00 00 */ stw r0, 0(r30) /* 80331DE0 0032ED40 80 7E 00 04 */ lwz r3, 4(r30) /* 80331DE4 0032ED44 28 03 00 00 */ cmplwi r3, 0 @@ -2497,10 +2497,10 @@ __ct__18CRELifetimePercentFP12CRealElement: /* 80331E54 0032EDB4 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80331E58 0032EDB8 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80331E5C 0032EDBC 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80331E60 0032EDC0 3C A0 80 3F */ lis r5, lbl_803EE024@ha +/* 80331E60 0032EDC0 3C A0 80 3F */ lis r5, __vt__18CRELifetimePercent@ha /* 80331E64 0032EDC4 90 03 00 00 */ stw r0, 0(r3) /* 80331E68 0032EDC8 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80331E6C 0032EDCC 38 05 E0 24 */ addi r0, r5, lbl_803EE024@l +/* 80331E6C 0032EDCC 38 05 E0 24 */ addi r0, r5, __vt__18CRELifetimePercent@l /* 80331E70 0032EDD0 90 C3 00 00 */ stw r6, 0(r3) /* 80331E74 0032EDD4 90 03 00 00 */ stw r0, 0(r3) /* 80331E78 0032EDD8 90 83 00 04 */ stw r4, 4(r3) @@ -2579,8 +2579,8 @@ lbl_80331F68: /* 80331F80 0032EEE0 38 21 00 20 */ addi r1, r1, 0x20 /* 80331F84 0032EEE4 4E 80 00 20 */ blr -.global __dt__8CREPulse -__dt__8CREPulse: +.global __dt__8CREPulseFv +__dt__8CREPulseFv: /* 80331F88 0032EEE8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80331F8C 0032EEEC 7C 08 02 A6 */ mflr r0 /* 80331F90 0032EEF0 90 01 00 14 */ stw r0, 0x14(r1) @@ -2589,8 +2589,8 @@ __dt__8CREPulse: /* 80331F9C 0032EEFC 93 C1 00 08 */ stw r30, 8(r1) /* 80331FA0 0032EF00 7C 7E 1B 79 */ or. r30, r3, r3 /* 80331FA4 0032EF04 41 82 00 C8 */ beq lbl_8033206C -/* 80331FA8 0032EF08 3C 60 80 3F */ lis r3, lbl_803EE038@ha -/* 80331FAC 0032EF0C 38 03 E0 38 */ addi r0, r3, lbl_803EE038@l +/* 80331FA8 0032EF08 3C 60 80 3F */ lis r3, __vt__8CREPulse@ha +/* 80331FAC 0032EF0C 38 03 E0 38 */ addi r0, r3, __vt__8CREPulse@l /* 80331FB0 0032EF10 90 1E 00 00 */ stw r0, 0(r30) /* 80331FB4 0032EF14 80 7E 00 04 */ lwz r3, 4(r30) /* 80331FB8 0032EF18 28 03 00 00 */ cmplwi r3, 0 @@ -2657,10 +2657,10 @@ __ct__8CREPulseFP11CIntElementP11CIntElementP12CRealElementP12CRealElement: /* 80332088 0032EFE8 3D 40 80 3F */ lis r10, __vt__8IElement@ha /* 8033208C 0032EFEC 3D 20 80 3F */ lis r9, __vt__12CRealElement@ha /* 80332090 0032EFF0 38 0A C5 A8 */ addi r0, r10, __vt__8IElement@l -/* 80332094 0032EFF4 3D 00 80 3F */ lis r8, lbl_803EE038@ha +/* 80332094 0032EFF4 3D 00 80 3F */ lis r8, __vt__8CREPulse@ha /* 80332098 0032EFF8 90 03 00 00 */ stw r0, 0(r3) /* 8033209C 0032EFFC 39 29 C5 54 */ addi r9, r9, __vt__12CRealElement@l -/* 803320A0 0032F000 38 08 E0 38 */ addi r0, r8, lbl_803EE038@l +/* 803320A0 0032F000 38 08 E0 38 */ addi r0, r8, __vt__8CREPulse@l /* 803320A4 0032F004 91 23 00 00 */ stw r9, 0(r3) /* 803320A8 0032F008 90 03 00 00 */ stw r0, 0(r3) /* 803320AC 0032F00C 90 83 00 04 */ stw r4, 4(r3) @@ -2721,8 +2721,8 @@ lbl_8033215C: /* 80332174 0032F0D4 38 21 00 20 */ addi r1, r1, 0x20 /* 80332178 0032F0D8 4E 80 00 20 */ blr -.global __dt__8CREClamp -__dt__8CREClamp: +.global __dt__8CREClampFv +__dt__8CREClampFv: /* 8033217C 0032F0DC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80332180 0032F0E0 7C 08 02 A6 */ mflr r0 /* 80332184 0032F0E4 90 01 00 14 */ stw r0, 0x14(r1) @@ -2731,8 +2731,8 @@ __dt__8CREClamp: /* 80332190 0032F0F0 93 C1 00 08 */ stw r30, 8(r1) /* 80332194 0032F0F4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332198 0032F0F8 41 82 00 A8 */ beq lbl_80332240 -/* 8033219C 0032F0FC 3C 60 80 3F */ lis r3, lbl_803EE04C@ha -/* 803321A0 0032F100 38 03 E0 4C */ addi r0, r3, lbl_803EE04C@l +/* 8033219C 0032F0FC 3C 60 80 3F */ lis r3, __vt__8CREClamp@ha +/* 803321A0 0032F100 38 03 E0 4C */ addi r0, r3, __vt__8CREClamp@l /* 803321A4 0032F104 90 1E 00 00 */ stw r0, 0(r30) /* 803321A8 0032F108 80 7E 00 04 */ lwz r3, 4(r30) /* 803321AC 0032F10C 28 03 00 00 */ cmplwi r3, 0 @@ -2790,10 +2790,10 @@ __ct__8CREClampFP12CRealElementP12CRealElementP12CRealElement: /* 8033225C 0032F1BC 3D 20 80 3F */ lis r9, __vt__8IElement@ha /* 80332260 0032F1C0 3D 00 80 3F */ lis r8, __vt__12CRealElement@ha /* 80332264 0032F1C4 38 09 C5 A8 */ addi r0, r9, __vt__8IElement@l -/* 80332268 0032F1C8 3C E0 80 3F */ lis r7, lbl_803EE04C@ha +/* 80332268 0032F1C8 3C E0 80 3F */ lis r7, __vt__8CREClamp@ha /* 8033226C 0032F1CC 90 03 00 00 */ stw r0, 0(r3) /* 80332270 0032F1D0 39 08 C5 54 */ addi r8, r8, __vt__12CRealElement@l -/* 80332274 0032F1D4 38 07 E0 4C */ addi r0, r7, lbl_803EE04C@l +/* 80332274 0032F1D4 38 07 E0 4C */ addi r0, r7, __vt__8CREClamp@l /* 80332278 0032F1D8 91 03 00 00 */ stw r8, 0(r3) /* 8033227C 0032F1DC 90 03 00 00 */ stw r0, 0(r3) /* 80332280 0032F1E0 90 83 00 04 */ stw r4, 4(r3) @@ -2846,8 +2846,8 @@ lbl_80332314: /* 80332328 0032F288 38 21 00 20 */ addi r1, r1, 0x20 /* 8033232C 0032F28C 4E 80 00 20 */ blr -.global __dt__12CRETimeChain -__dt__12CRETimeChain: +.global __dt__12CRETimeChainFv +__dt__12CRETimeChainFv: /* 80332330 0032F290 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80332334 0032F294 7C 08 02 A6 */ mflr r0 /* 80332338 0032F298 90 01 00 14 */ stw r0, 0x14(r1) @@ -2856,8 +2856,8 @@ __dt__12CRETimeChain: /* 80332344 0032F2A4 93 C1 00 08 */ stw r30, 8(r1) /* 80332348 0032F2A8 7C 7E 1B 79 */ or. r30, r3, r3 /* 8033234C 0032F2AC 41 82 00 A8 */ beq lbl_803323F4 -/* 80332350 0032F2B0 3C 60 80 3F */ lis r3, lbl_803EE060@ha -/* 80332354 0032F2B4 38 03 E0 60 */ addi r0, r3, lbl_803EE060@l +/* 80332350 0032F2B0 3C 60 80 3F */ lis r3, __vt__12CRETimeChain@ha +/* 80332354 0032F2B4 38 03 E0 60 */ addi r0, r3, __vt__12CRETimeChain@l /* 80332358 0032F2B8 90 1E 00 00 */ stw r0, 0(r30) /* 8033235C 0032F2BC 80 7E 00 04 */ lwz r3, 4(r30) /* 80332360 0032F2C0 28 03 00 00 */ cmplwi r3, 0 @@ -2915,10 +2915,10 @@ __ct__12CRETimeChainFP12CRealElementP12CRealElementP11CIntElement: /* 80332410 0032F370 3D 20 80 3F */ lis r9, __vt__8IElement@ha /* 80332414 0032F374 3D 00 80 3F */ lis r8, __vt__12CRealElement@ha /* 80332418 0032F378 38 09 C5 A8 */ addi r0, r9, __vt__8IElement@l -/* 8033241C 0032F37C 3C E0 80 3F */ lis r7, lbl_803EE060@ha +/* 8033241C 0032F37C 3C E0 80 3F */ lis r7, __vt__12CRETimeChain@ha /* 80332420 0032F380 90 03 00 00 */ stw r0, 0(r3) /* 80332424 0032F384 39 08 C5 54 */ addi r8, r8, __vt__12CRealElement@l -/* 80332428 0032F388 38 07 E0 60 */ addi r0, r7, lbl_803EE060@l +/* 80332428 0032F388 38 07 E0 60 */ addi r0, r7, __vt__12CRETimeChain@l /* 8033242C 0032F38C 91 03 00 00 */ stw r8, 0(r3) /* 80332430 0032F390 90 03 00 00 */ stw r0, 0(r3) /* 80332434 0032F394 90 83 00 04 */ stw r4, 4(r3) @@ -2972,8 +2972,8 @@ lbl_803324C4: /* 803324E4 0032F444 38 21 00 30 */ addi r1, r1, 0x30 /* 803324E8 0032F448 4E 80 00 20 */ blr -.global __dt__16CREInitialRandom -__dt__16CREInitialRandom: +.global __dt__16CREInitialRandomFv +__dt__16CREInitialRandomFv: /* 803324EC 0032F44C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803324F0 0032F450 7C 08 02 A6 */ mflr r0 /* 803324F4 0032F454 90 01 00 14 */ stw r0, 0x14(r1) @@ -2982,8 +2982,8 @@ __dt__16CREInitialRandom: /* 80332500 0032F460 93 C1 00 08 */ stw r30, 8(r1) /* 80332504 0032F464 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332508 0032F468 41 82 00 88 */ beq lbl_80332590 -/* 8033250C 0032F46C 3C 60 80 3F */ lis r3, lbl_803EE074@ha -/* 80332510 0032F470 38 03 E0 74 */ addi r0, r3, lbl_803EE074@l +/* 8033250C 0032F46C 3C 60 80 3F */ lis r3, __vt__16CREInitialRandom@ha +/* 80332510 0032F470 38 03 E0 74 */ addi r0, r3, __vt__16CREInitialRandom@l /* 80332514 0032F474 90 1E 00 00 */ stw r0, 0(r30) /* 80332518 0032F478 80 7E 00 04 */ lwz r3, 4(r30) /* 8033251C 0032F47C 28 03 00 00 */ cmplwi r3, 0 @@ -3027,15 +3027,15 @@ lbl_80332590: /* 803325A4 0032F504 38 21 00 10 */ addi r1, r1, 0x10 /* 803325A8 0032F508 4E 80 00 20 */ blr -.global __ct__16CREInitialRandomFC12CRealElementC12CRealElement -__ct__16CREInitialRandomFC12CRealElementC12CRealElement: +.global __ct__16CREInitialRandomFP12CRealElementP12CRealElement +__ct__16CREInitialRandomFP12CRealElementP12CRealElement: /* 803325AC 0032F50C 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 803325B0 0032F510 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 803325B4 0032F514 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 803325B8 0032F518 3C C0 80 3F */ lis r6, lbl_803EE074@ha +/* 803325B8 0032F518 3C C0 80 3F */ lis r6, __vt__16CREInitialRandom@ha /* 803325BC 0032F51C 90 03 00 00 */ stw r0, 0(r3) /* 803325C0 0032F520 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 803325C4 0032F524 38 06 E0 74 */ addi r0, r6, lbl_803EE074@l +/* 803325C4 0032F524 38 06 E0 74 */ addi r0, r6, __vt__16CREInitialRandom@l /* 803325C8 0032F528 90 E3 00 00 */ stw r7, 0(r3) /* 803325CC 0032F52C 90 03 00 00 */ stw r0, 0(r3) /* 803325D0 0032F530 90 83 00 04 */ stw r4, 4(r3) @@ -3096,8 +3096,8 @@ __dt__9CRERandomFv: /* 80332694 0032F5F4 93 C1 00 08 */ stw r30, 8(r1) /* 80332698 0032F5F8 7C 7E 1B 79 */ or. r30, r3, r3 /* 8033269C 0032F5FC 41 82 00 88 */ beq lbl_80332724 -/* 803326A0 0032F600 3C 60 80 3F */ lis r3, lbl_803EE088@ha -/* 803326A4 0032F604 38 03 E0 88 */ addi r0, r3, lbl_803EE088@l +/* 803326A0 0032F600 3C 60 80 3F */ lis r3, __vt__9CRERandom@ha +/* 803326A4 0032F604 38 03 E0 88 */ addi r0, r3, __vt__9CRERandom@l /* 803326A8 0032F608 90 1E 00 00 */ stw r0, 0(r30) /* 803326AC 0032F60C 80 7E 00 04 */ lwz r3, 4(r30) /* 803326B0 0032F610 28 03 00 00 */ cmplwi r3, 0 @@ -3146,10 +3146,10 @@ __ct__9CRERandomFP12CRealElementP12CRealElement: /* 80332740 0032F6A0 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80332744 0032F6A4 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80332748 0032F6A8 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 8033274C 0032F6AC 3C C0 80 3F */ lis r6, lbl_803EE088@ha +/* 8033274C 0032F6AC 3C C0 80 3F */ lis r6, __vt__9CRERandom@ha /* 80332750 0032F6B0 90 03 00 00 */ stw r0, 0(r3) /* 80332754 0032F6B4 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80332758 0032F6B8 38 06 E0 88 */ addi r0, r6, lbl_803EE088@l +/* 80332758 0032F6B8 38 06 E0 88 */ addi r0, r6, __vt__9CRERandom@l /* 8033275C 0032F6BC 90 E3 00 00 */ stw r7, 0(r3) /* 80332760 0032F6C0 90 03 00 00 */ stw r0, 0(r3) /* 80332764 0032F6C4 90 83 00 04 */ stw r4, 4(r3) @@ -3210,8 +3210,8 @@ GetValue__13CREDotProductCFiRf: /* 80332834 0032F794 38 21 00 30 */ addi r1, r1, 0x30 /* 80332838 0032F798 4E 80 00 20 */ blr -.global __dt__13CREDotProduct -__dt__13CREDotProduct: +.global __dt__13CREDotProductFv +__dt__13CREDotProductFv: /* 8033283C 0032F79C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80332840 0032F7A0 7C 08 02 A6 */ mflr r0 /* 80332844 0032F7A4 90 01 00 14 */ stw r0, 0x14(r1) @@ -3220,8 +3220,8 @@ __dt__13CREDotProduct: /* 80332850 0032F7B0 93 C1 00 08 */ stw r30, 8(r1) /* 80332854 0032F7B4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332858 0032F7B8 41 82 00 88 */ beq lbl_803328E0 -/* 8033285C 0032F7BC 3C 60 80 3F */ lis r3, lbl_803EE09C@ha -/* 80332860 0032F7C0 38 03 E0 9C */ addi r0, r3, lbl_803EE09C@l +/* 8033285C 0032F7BC 3C 60 80 3F */ lis r3, __vt__13CREDotProduct@ha +/* 80332860 0032F7C0 38 03 E0 9C */ addi r0, r3, __vt__13CREDotProduct@l /* 80332864 0032F7C4 90 1E 00 00 */ stw r0, 0(r30) /* 80332868 0032F7C8 80 7E 00 04 */ lwz r3, 4(r30) /* 8033286C 0032F7CC 28 03 00 00 */ cmplwi r3, 0 @@ -3270,10 +3270,10 @@ __ct__13CREDotProductFP14CVectorElementP14CVectorElement: /* 803328FC 0032F85C 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80332900 0032F860 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80332904 0032F864 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 80332908 0032F868 3C C0 80 3F */ lis r6, lbl_803EE09C@ha +/* 80332908 0032F868 3C C0 80 3F */ lis r6, __vt__13CREDotProduct@ha /* 8033290C 0032F86C 90 03 00 00 */ stw r0, 0(r3) /* 80332910 0032F870 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80332914 0032F874 38 06 E0 9C */ addi r0, r6, lbl_803EE09C@l +/* 80332914 0032F874 38 06 E0 9C */ addi r0, r6, __vt__13CREDotProduct@l /* 80332918 0032F878 90 E3 00 00 */ stw r7, 0(r3) /* 8033291C 0032F87C 90 03 00 00 */ stw r0, 0(r3) /* 80332920 0032F880 90 83 00 04 */ stw r4, 4(r3) @@ -3327,8 +3327,8 @@ __dt__11CREMultiplyFv: /* 803329C8 0032F928 93 C1 00 08 */ stw r30, 8(r1) /* 803329CC 0032F92C 7C 7E 1B 79 */ or. r30, r3, r3 /* 803329D0 0032F930 41 82 00 88 */ beq lbl_80332A58 -/* 803329D4 0032F934 3C 60 80 3F */ lis r3, lbl_803EE0B0@ha -/* 803329D8 0032F938 38 03 E0 B0 */ addi r0, r3, lbl_803EE0B0@l +/* 803329D4 0032F934 3C 60 80 3F */ lis r3, __vt__11CREMultiply@ha +/* 803329D8 0032F938 38 03 E0 B0 */ addi r0, r3, __vt__11CREMultiply@l /* 803329DC 0032F93C 90 1E 00 00 */ stw r0, 0(r30) /* 803329E0 0032F940 80 7E 00 04 */ lwz r3, 4(r30) /* 803329E4 0032F944 28 03 00 00 */ cmplwi r3, 0 @@ -3377,10 +3377,10 @@ __ct__11CREMultiplyFP12CRealElementP12CRealElement: /* 80332A74 0032F9D4 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80332A78 0032F9D8 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80332A7C 0032F9DC 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 80332A80 0032F9E0 3C C0 80 3F */ lis r6, lbl_803EE0B0@ha +/* 80332A80 0032F9E0 3C C0 80 3F */ lis r6, __vt__11CREMultiply@ha /* 80332A84 0032F9E4 90 03 00 00 */ stw r0, 0(r3) /* 80332A88 0032F9E8 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80332A8C 0032F9EC 38 06 E0 B0 */ addi r0, r6, lbl_803EE0B0@l +/* 80332A8C 0032F9EC 38 06 E0 B0 */ addi r0, r6, __vt__11CREMultiply@l /* 80332A90 0032F9F0 90 E3 00 00 */ stw r7, 0(r3) /* 80332A94 0032F9F4 90 03 00 00 */ stw r0, 0(r3) /* 80332A98 0032F9F8 90 83 00 04 */ stw r4, 4(r3) @@ -3434,8 +3434,8 @@ __dt__6CREAddFv: /* 80332B40 0032FAA0 93 C1 00 08 */ stw r30, 8(r1) /* 80332B44 0032FAA4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332B48 0032FAA8 41 82 00 88 */ beq lbl_80332BD0 -/* 80332B4C 0032FAAC 3C 60 80 3F */ lis r3, lbl_803EE0C4@ha -/* 80332B50 0032FAB0 38 03 E0 C4 */ addi r0, r3, lbl_803EE0C4@l +/* 80332B4C 0032FAAC 3C 60 80 3F */ lis r3, __vt__6CREAdd@ha +/* 80332B50 0032FAB0 38 03 E0 C4 */ addi r0, r3, __vt__6CREAdd@l /* 80332B54 0032FAB4 90 1E 00 00 */ stw r0, 0(r30) /* 80332B58 0032FAB8 80 7E 00 04 */ lwz r3, 4(r30) /* 80332B5C 0032FABC 28 03 00 00 */ cmplwi r3, 0 @@ -3484,10 +3484,10 @@ __ct__6CREAddFP12CRealElementP12CRealElement: /* 80332BEC 0032FB4C 3D 00 80 3F */ lis r8, __vt__8IElement@ha /* 80332BF0 0032FB50 3C E0 80 3F */ lis r7, __vt__12CRealElement@ha /* 80332BF4 0032FB54 38 08 C5 A8 */ addi r0, r8, __vt__8IElement@l -/* 80332BF8 0032FB58 3C C0 80 3F */ lis r6, lbl_803EE0C4@ha +/* 80332BF8 0032FB58 3C C0 80 3F */ lis r6, __vt__6CREAdd@ha /* 80332BFC 0032FB5C 90 03 00 00 */ stw r0, 0(r3) /* 80332C00 0032FB60 38 E7 C5 54 */ addi r7, r7, __vt__12CRealElement@l -/* 80332C04 0032FB64 38 06 E0 C4 */ addi r0, r6, lbl_803EE0C4@l +/* 80332C04 0032FB64 38 06 E0 C4 */ addi r0, r6, __vt__6CREAdd@l /* 80332C08 0032FB68 90 E3 00 00 */ stw r7, 0(r3) /* 80332C0C 0032FB6C 90 03 00 00 */ stw r0, 0(r3) /* 80332C10 0032FB70 90 83 00 04 */ stw r4, 4(r3) @@ -3537,8 +3537,8 @@ __dt__12CRETimeScaleFv: /* 80332CA8 0032FC08 93 C1 00 08 */ stw r30, 8(r1) /* 80332CAC 0032FC0C 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332CB0 0032FC10 41 82 00 68 */ beq lbl_80332D18 -/* 80332CB4 0032FC14 3C 60 80 3F */ lis r3, lbl_803EE0D8@ha -/* 80332CB8 0032FC18 38 03 E0 D8 */ addi r0, r3, lbl_803EE0D8@l +/* 80332CB4 0032FC14 3C 60 80 3F */ lis r3, __vt__12CRETimeScale@ha +/* 80332CB8 0032FC18 38 03 E0 D8 */ addi r0, r3, __vt__12CRETimeScale@l /* 80332CBC 0032FC1C 90 1E 00 00 */ stw r0, 0(r30) /* 80332CC0 0032FC20 80 7E 00 04 */ lwz r3, 4(r30) /* 80332CC4 0032FC24 28 03 00 00 */ cmplwi r3, 0 @@ -3578,10 +3578,10 @@ __ct__12CRETimeScaleFP12CRealElement: /* 80332D34 0032FC94 3C E0 80 3F */ lis r7, __vt__8IElement@ha /* 80332D38 0032FC98 3C C0 80 3F */ lis r6, __vt__12CRealElement@ha /* 80332D3C 0032FC9C 38 07 C5 A8 */ addi r0, r7, __vt__8IElement@l -/* 80332D40 0032FCA0 3C A0 80 3F */ lis r5, lbl_803EE0D8@ha +/* 80332D40 0032FCA0 3C A0 80 3F */ lis r5, __vt__12CRETimeScale@ha /* 80332D44 0032FCA4 90 03 00 00 */ stw r0, 0(r3) /* 80332D48 0032FCA8 38 C6 C5 54 */ addi r6, r6, __vt__12CRealElement@l -/* 80332D4C 0032FCAC 38 05 E0 D8 */ addi r0, r5, lbl_803EE0D8@l +/* 80332D4C 0032FCAC 38 05 E0 D8 */ addi r0, r5, __vt__12CRETimeScale@l /* 80332D50 0032FCB0 90 C3 00 00 */ stw r6, 0(r3) /* 80332D54 0032FCB4 90 03 00 00 */ stw r0, 0(r3) /* 80332D58 0032FCB8 90 83 00 04 */ stw r4, 4(r3) @@ -3654,8 +3654,8 @@ __dt__11CRESineWaveFv: /* 80332E4C 0032FDAC 93 C1 00 08 */ stw r30, 8(r1) /* 80332E50 0032FDB0 7C 7E 1B 79 */ or. r30, r3, r3 /* 80332E54 0032FDB4 41 82 00 A8 */ beq lbl_80332EFC -/* 80332E58 0032FDB8 3C 60 80 3F */ lis r3, lbl_803EE0EC@ha -/* 80332E5C 0032FDBC 38 03 E0 EC */ addi r0, r3, lbl_803EE0EC@l +/* 80332E58 0032FDB8 3C 60 80 3F */ lis r3, __vt__11CRESineWave@ha +/* 80332E5C 0032FDBC 38 03 E0 EC */ addi r0, r3, __vt__11CRESineWave@l /* 80332E60 0032FDC0 90 1E 00 00 */ stw r0, 0(r30) /* 80332E64 0032FDC4 80 7E 00 04 */ lwz r3, 4(r30) /* 80332E68 0032FDC8 28 03 00 00 */ cmplwi r3, 0 @@ -3713,10 +3713,10 @@ __ct__11CRESineWaveFP12CRealElementP12CRealElementP12CRealElement: /* 80332F18 0032FE78 3D 20 80 3F */ lis r9, __vt__8IElement@ha /* 80332F1C 0032FE7C 3D 00 80 3F */ lis r8, __vt__12CRealElement@ha /* 80332F20 0032FE80 38 09 C5 A8 */ addi r0, r9, __vt__8IElement@l -/* 80332F24 0032FE84 3C E0 80 3F */ lis r7, lbl_803EE0EC@ha +/* 80332F24 0032FE84 3C E0 80 3F */ lis r7, __vt__11CRESineWave@ha /* 80332F28 0032FE88 90 03 00 00 */ stw r0, 0(r3) /* 80332F2C 0032FE8C 39 08 C5 54 */ addi r8, r8, __vt__12CRealElement@l -/* 80332F30 0032FE90 38 07 E0 EC */ addi r0, r7, lbl_803EE0EC@l +/* 80332F30 0032FE90 38 07 E0 EC */ addi r0, r7, __vt__11CRESineWave@l /* 80332F34 0032FE94 91 03 00 00 */ stw r8, 0(r3) /* 80332F38 0032FE98 90 03 00 00 */ stw r0, 0(r3) /* 80332F3C 0032FE9C 90 A3 00 04 */ stw r5, 4(r3) @@ -3739,8 +3739,8 @@ __dt__11CREConstantFv: /* 80332F68 0032FEC8 93 E1 00 0C */ stw r31, 0xc(r1) /* 80332F6C 0032FECC 7C 7F 1B 79 */ or. r31, r3, r3 /* 80332F70 0032FED0 41 82 00 44 */ beq lbl_80332FB4 -/* 80332F74 0032FED4 3C 60 80 3F */ lis r3, lbl_803EE100@ha -/* 80332F78 0032FED8 38 03 E1 00 */ addi r0, r3, lbl_803EE100@l +/* 80332F74 0032FED4 3C 60 80 3F */ lis r3, __vt__11CREConstant@ha +/* 80332F78 0032FED8 38 03 E1 00 */ addi r0, r3, __vt__11CREConstant@l /* 80332F7C 0032FEDC 90 1F 00 00 */ stw r0, 0(r31) /* 80332F80 0032FEE0 41 82 00 20 */ beq lbl_80332FA0 /* 80332F84 0032FEE4 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3769,25 +3769,25 @@ __ct__11CREConstantFf: /* 80332FCC 0032FF2C 3C C0 80 3F */ lis r6, __vt__8IElement@ha /* 80332FD0 0032FF30 3C A0 80 3F */ lis r5, __vt__12CRealElement@ha /* 80332FD4 0032FF34 38 06 C5 A8 */ addi r0, r6, __vt__8IElement@l -/* 80332FD8 0032FF38 3C 80 80 3F */ lis r4, lbl_803EE100@ha +/* 80332FD8 0032FF38 3C 80 80 3F */ lis r4, __vt__11CREConstant@ha /* 80332FDC 0032FF3C 90 03 00 00 */ stw r0, 0(r3) /* 80332FE0 0032FF40 38 A5 C5 54 */ addi r5, r5, __vt__12CRealElement@l -/* 80332FE4 0032FF44 38 04 E1 00 */ addi r0, r4, lbl_803EE100@l +/* 80332FE4 0032FF44 38 04 E1 00 */ addi r0, r4, __vt__11CREConstant@l /* 80332FE8 0032FF48 90 A3 00 00 */ stw r5, 0(r3) /* 80332FEC 0032FF4C 90 03 00 00 */ stw r0, 0(r3) /* 80332FF0 0032FF50 D0 23 00 04 */ stfs f1, 4(r3) /* 80332FF4 0032FF54 4E 80 00 20 */ blr -.global __dt__7CREPRLW -__dt__7CREPRLW: +.global __dt__30CREParticleRotationOrLineWidthFv +__dt__30CREParticleRotationOrLineWidthFv: /* 80332FF8 0032FF58 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80332FFC 0032FF5C 7C 08 02 A6 */ mflr r0 /* 80333000 0032FF60 90 01 00 14 */ stw r0, 0x14(r1) /* 80333004 0032FF64 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333008 0032FF68 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033300C 0032FF6C 41 82 00 44 */ beq lbl_80333050 -/* 80333010 0032FF70 3C 60 80 3F */ lis r3, lbl_803EDF34@ha -/* 80333014 0032FF74 38 03 DF 34 */ addi r0, r3, lbl_803EDF34@l +/* 80333010 0032FF70 3C 60 80 3F */ lis r3, __vt__30CREParticleRotationOrLineWidth@ha +/* 80333014 0032FF74 38 03 DF 34 */ addi r0, r3, __vt__30CREParticleRotationOrLineWidth@l /* 80333018 0032FF78 90 1F 00 00 */ stw r0, 0(r31) /* 8033301C 0032FF7C 41 82 00 20 */ beq lbl_8033303C /* 80333020 0032FF80 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3811,16 +3811,16 @@ lbl_80333050: /* 80333060 0032FFC0 38 21 00 10 */ addi r1, r1, 0x10 /* 80333064 0032FFC4 4E 80 00 20 */ blr -.global __dt__7CREPSLL -__dt__7CREPSLL: +.global __dt__27CREParticleSizeOrLineLengthFv +__dt__27CREParticleSizeOrLineLengthFv: /* 80333068 0032FFC8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033306C 0032FFCC 7C 08 02 A6 */ mflr r0 /* 80333070 0032FFD0 90 01 00 14 */ stw r0, 0x14(r1) /* 80333074 0032FFD4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333078 0032FFD8 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033307C 0032FFDC 41 82 00 44 */ beq lbl_803330C0 -/* 80333080 0032FFE0 3C 60 80 3F */ lis r3, lbl_803EDF48@ha -/* 80333084 0032FFE4 38 03 DF 48 */ addi r0, r3, lbl_803EDF48@l +/* 80333080 0032FFE0 3C 60 80 3F */ lis r3, __vt__27CREParticleSizeOrLineLength@ha +/* 80333084 0032FFE4 38 03 DF 48 */ addi r0, r3, __vt__27CREParticleSizeOrLineLength@l /* 80333088 0032FFE8 90 1F 00 00 */ stw r0, 0(r31) /* 8033308C 0032FFEC 41 82 00 20 */ beq lbl_803330AC /* 80333090 0032FFF0 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3844,16 +3844,16 @@ lbl_803330C0: /* 803330D0 00330030 38 21 00 10 */ addi r1, r1, 0x10 /* 803330D4 00330034 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter8 -__dt__27CREParticleAccessParameter8: +.global __dt__27CREParticleAccessParameter8Fv +__dt__27CREParticleAccessParameter8Fv: /* 803330D8 00330038 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803330DC 0033003C 7C 08 02 A6 */ mflr r0 /* 803330E0 00330040 90 01 00 14 */ stw r0, 0x14(r1) /* 803330E4 00330044 93 E1 00 0C */ stw r31, 0xc(r1) /* 803330E8 00330048 7C 7F 1B 79 */ or. r31, r3, r3 /* 803330EC 0033004C 41 82 00 44 */ beq lbl_80333130 -/* 803330F0 00330050 3C 60 80 3F */ lis r3, lbl_803EDF5C@ha -/* 803330F4 00330054 38 03 DF 5C */ addi r0, r3, lbl_803EDF5C@l +/* 803330F0 00330050 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter8@ha +/* 803330F4 00330054 38 03 DF 5C */ addi r0, r3, __vt__27CREParticleAccessParameter8@l /* 803330F8 00330058 90 1F 00 00 */ stw r0, 0(r31) /* 803330FC 0033005C 41 82 00 20 */ beq lbl_8033311C /* 80333100 00330060 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3877,16 +3877,16 @@ lbl_80333130: /* 80333140 003300A0 38 21 00 10 */ addi r1, r1, 0x10 /* 80333144 003300A4 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter7 -__dt__27CREParticleAccessParameter7: +.global __dt__27CREParticleAccessParameter7Fv +__dt__27CREParticleAccessParameter7Fv: /* 80333148 003300A8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033314C 003300AC 7C 08 02 A6 */ mflr r0 /* 80333150 003300B0 90 01 00 14 */ stw r0, 0x14(r1) /* 80333154 003300B4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333158 003300B8 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033315C 003300BC 41 82 00 44 */ beq lbl_803331A0 -/* 80333160 003300C0 3C 60 80 3F */ lis r3, lbl_803EDF70@ha -/* 80333164 003300C4 38 03 DF 70 */ addi r0, r3, lbl_803EDF70@l +/* 80333160 003300C0 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter7@ha +/* 80333164 003300C4 38 03 DF 70 */ addi r0, r3, __vt__27CREParticleAccessParameter7@l /* 80333168 003300C8 90 1F 00 00 */ stw r0, 0(r31) /* 8033316C 003300CC 41 82 00 20 */ beq lbl_8033318C /* 80333170 003300D0 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3910,16 +3910,16 @@ lbl_803331A0: /* 803331B0 00330110 38 21 00 10 */ addi r1, r1, 0x10 /* 803331B4 00330114 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter6 -__dt__27CREParticleAccessParameter6: +.global __dt__27CREParticleAccessParameter6Fv +__dt__27CREParticleAccessParameter6Fv: /* 803331B8 00330118 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803331BC 0033011C 7C 08 02 A6 */ mflr r0 /* 803331C0 00330120 90 01 00 14 */ stw r0, 0x14(r1) /* 803331C4 00330124 93 E1 00 0C */ stw r31, 0xc(r1) /* 803331C8 00330128 7C 7F 1B 79 */ or. r31, r3, r3 /* 803331CC 0033012C 41 82 00 44 */ beq lbl_80333210 -/* 803331D0 00330130 3C 60 80 3F */ lis r3, lbl_803EDF84@ha -/* 803331D4 00330134 38 03 DF 84 */ addi r0, r3, lbl_803EDF84@l +/* 803331D0 00330130 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter6@ha +/* 803331D4 00330134 38 03 DF 84 */ addi r0, r3, __vt__27CREParticleAccessParameter6@l /* 803331D8 00330138 90 1F 00 00 */ stw r0, 0(r31) /* 803331DC 0033013C 41 82 00 20 */ beq lbl_803331FC /* 803331E0 00330140 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3943,16 +3943,16 @@ lbl_80333210: /* 80333220 00330180 38 21 00 10 */ addi r1, r1, 0x10 /* 80333224 00330184 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter5 -__dt__27CREParticleAccessParameter5: +.global __dt__27CREParticleAccessParameter5Fv +__dt__27CREParticleAccessParameter5Fv: /* 80333228 00330188 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033322C 0033018C 7C 08 02 A6 */ mflr r0 /* 80333230 00330190 90 01 00 14 */ stw r0, 0x14(r1) /* 80333234 00330194 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333238 00330198 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033323C 0033019C 41 82 00 44 */ beq lbl_80333280 -/* 80333240 003301A0 3C 60 80 3F */ lis r3, lbl_803EDF98@ha -/* 80333244 003301A4 38 03 DF 98 */ addi r0, r3, lbl_803EDF98@l +/* 80333240 003301A0 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter5@ha +/* 80333244 003301A4 38 03 DF 98 */ addi r0, r3, __vt__27CREParticleAccessParameter5@l /* 80333248 003301A8 90 1F 00 00 */ stw r0, 0(r31) /* 8033324C 003301AC 41 82 00 20 */ beq lbl_8033326C /* 80333250 003301B0 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -3976,16 +3976,16 @@ lbl_80333280: /* 80333290 003301F0 38 21 00 10 */ addi r1, r1, 0x10 /* 80333294 003301F4 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter4 -__dt__27CREParticleAccessParameter4: +.global __dt__27CREParticleAccessParameter4Fv +__dt__27CREParticleAccessParameter4Fv: /* 80333298 003301F8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033329C 003301FC 7C 08 02 A6 */ mflr r0 /* 803332A0 00330200 90 01 00 14 */ stw r0, 0x14(r1) /* 803332A4 00330204 93 E1 00 0C */ stw r31, 0xc(r1) /* 803332A8 00330208 7C 7F 1B 79 */ or. r31, r3, r3 /* 803332AC 0033020C 41 82 00 44 */ beq lbl_803332F0 -/* 803332B0 00330210 3C 60 80 3F */ lis r3, lbl_803EDFAC@ha -/* 803332B4 00330214 38 03 DF AC */ addi r0, r3, lbl_803EDFAC@l +/* 803332B0 00330210 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter4@ha +/* 803332B4 00330214 38 03 DF AC */ addi r0, r3, __vt__27CREParticleAccessParameter4@l /* 803332B8 00330218 90 1F 00 00 */ stw r0, 0(r31) /* 803332BC 0033021C 41 82 00 20 */ beq lbl_803332DC /* 803332C0 00330220 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -4009,16 +4009,16 @@ lbl_803332F0: /* 80333300 00330260 38 21 00 10 */ addi r1, r1, 0x10 /* 80333304 00330264 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter3 -__dt__27CREParticleAccessParameter3: +.global __dt__27CREParticleAccessParameter3Fv +__dt__27CREParticleAccessParameter3Fv: /* 80333308 00330268 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033330C 0033026C 7C 08 02 A6 */ mflr r0 /* 80333310 00330270 90 01 00 14 */ stw r0, 0x14(r1) /* 80333314 00330274 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333318 00330278 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033331C 0033027C 41 82 00 44 */ beq lbl_80333360 -/* 80333320 00330280 3C 60 80 3F */ lis r3, lbl_803EDFC0@ha -/* 80333324 00330284 38 03 DF C0 */ addi r0, r3, lbl_803EDFC0@l +/* 80333320 00330280 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter3@ha +/* 80333324 00330284 38 03 DF C0 */ addi r0, r3, __vt__27CREParticleAccessParameter3@l /* 80333328 00330288 90 1F 00 00 */ stw r0, 0(r31) /* 8033332C 0033028C 41 82 00 20 */ beq lbl_8033334C /* 80333330 00330290 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -4042,16 +4042,16 @@ lbl_80333360: /* 80333370 003302D0 38 21 00 10 */ addi r1, r1, 0x10 /* 80333374 003302D4 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter2 -__dt__27CREParticleAccessParameter2: +.global __dt__27CREParticleAccessParameter2Fv +__dt__27CREParticleAccessParameter2Fv: /* 80333378 003302D8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8033337C 003302DC 7C 08 02 A6 */ mflr r0 /* 80333380 003302E0 90 01 00 14 */ stw r0, 0x14(r1) /* 80333384 003302E4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80333388 003302E8 7C 7F 1B 79 */ or. r31, r3, r3 /* 8033338C 003302EC 41 82 00 44 */ beq lbl_803333D0 -/* 80333390 003302F0 3C 60 80 3F */ lis r3, lbl_803EDFD4@ha -/* 80333394 003302F4 38 03 DF D4 */ addi r0, r3, lbl_803EDFD4@l +/* 80333390 003302F0 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter2@ha +/* 80333394 003302F4 38 03 DF D4 */ addi r0, r3, __vt__27CREParticleAccessParameter2@l /* 80333398 003302F8 90 1F 00 00 */ stw r0, 0(r31) /* 8033339C 003302FC 41 82 00 20 */ beq lbl_803333BC /* 803333A0 00330300 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -4075,16 +4075,16 @@ lbl_803333D0: /* 803333E0 00330340 38 21 00 10 */ addi r1, r1, 0x10 /* 803333E4 00330344 4E 80 00 20 */ blr -.global __dt__27CREParticleAccessParameter1 -__dt__27CREParticleAccessParameter1: +.global __dt__27CREParticleAccessParameter1Fv +__dt__27CREParticleAccessParameter1Fv: /* 803333E8 00330348 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803333EC 0033034C 7C 08 02 A6 */ mflr r0 /* 803333F0 00330350 90 01 00 14 */ stw r0, 0x14(r1) /* 803333F4 00330354 93 E1 00 0C */ stw r31, 0xc(r1) /* 803333F8 00330358 7C 7F 1B 79 */ or. r31, r3, r3 /* 803333FC 0033035C 41 82 00 44 */ beq lbl_80333440 -/* 80333400 00330360 3C 60 80 3F */ lis r3, lbl_803EDFE8@ha -/* 80333404 00330364 38 03 DF E8 */ addi r0, r3, lbl_803EDFE8@l +/* 80333400 00330360 3C 60 80 3F */ lis r3, __vt__27CREParticleAccessParameter1@ha +/* 80333404 00330364 38 03 DF E8 */ addi r0, r3, __vt__27CREParticleAccessParameter1@l /* 80333408 00330368 90 1F 00 00 */ stw r0, 0(r31) /* 8033340C 0033036C 41 82 00 20 */ beq lbl_8033342C /* 80333410 00330370 3C 60 80 3F */ lis r3, __vt__12CRealElement@ha @@ -4108,8 +4108,8 @@ lbl_80333440: /* 80333450 003303B0 38 21 00 10 */ addi r1, r1, 0x10 /* 80333454 003303B4 4E 80 00 20 */ blr -.global IsConstant__16CREInitialRandomCF -IsConstant__16CREInitialRandomCF: +.global IsConstant__16CREInitialRandomCFv +IsConstant__16CREInitialRandomCFv: /* 80333458 003303B8 38 60 00 01 */ li r3, 1 /* 8033345C 003303BC 4E 80 00 20 */ blr diff --git a/asm/Kyoto/Particles/CVectorElement.s b/asm/Kyoto/Particles/CVectorElement.s index 115f814e..9861351e 100644 --- a/asm/Kyoto/Particles/CVectorElement.s +++ b/asm/Kyoto/Particles/CVectorElement.s @@ -536,7 +536,7 @@ GetValue__33CVEParticleSystemOrientationFrontCFiR9CVector3f: .global GetValue__19CVEParticleVelocityCFiR9CVector3f GetValue__19CVEParticleVelocityCFiR9CVector3f: -/* 80334D0C 00331C6C 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +/* 80334D0C 00331C6C 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 80334D10 00331C70 38 60 00 00 */ li r3, 0 /* 80334D14 00331C74 C0 04 00 1C */ lfs f0, 0x1c(r4) /* 80334D18 00331C78 D0 05 00 00 */ stfs f0, 0(r5) @@ -548,7 +548,7 @@ GetValue__19CVEParticleVelocityCFiR9CVector3f: .global GetValue__16CVEParticleColorCFiR9CVector3f GetValue__16CVEParticleColorCFiR9CVector3f: -/* 80334D30 00331C90 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +/* 80334D30 00331C90 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 80334D34 00331C94 38 60 00 00 */ li r3, 0 /* 80334D38 00331C98 C0 04 00 10 */ lfs f0, 0x10(r4) /* 80334D3C 00331C9C D0 05 00 00 */ stfs f0, 0(r5) @@ -560,7 +560,7 @@ GetValue__16CVEParticleColorCFiR9CVector3f: .global GetValue__19CVEParticleLocationCFiR9CVector3f GetValue__19CVEParticleLocationCFiR9CVector3f: -/* 80334D54 00331CB4 80 8D A8 EC */ lwz r4, lbl_805A94AC@sda21(r13) +/* 80334D54 00331CB4 80 8D A8 EC */ lwz r4, mCurrentParticle__16CParticleGlobals@sda21(r13) /* 80334D58 00331CB8 38 60 00 00 */ li r3, 0 /* 80334D5C 00331CBC C0 04 00 04 */ lfs f0, 4(r4) /* 80334D60 00331CC0 D0 05 00 00 */ stfs f0, 0(r5) diff --git a/configure.py b/configure.py index 1d19be13..17131f2f 100755 --- a/configure.py +++ b/configure.py @@ -597,13 +597,13 @@ LIBS = [ "Kyoto/Particles/CColorElement", "Kyoto/Particles/CElementGen", ["Kyoto/Particles/CIntElement", True], - "Kyoto/Particles/CModVectorElement", - "Kyoto/Particles/CParticleDataFactory", + ["Kyoto/Particles/CModVectorElement", False], + ["Kyoto/Particles/CParticleDataFactory", False], "Kyoto/Particles/CParticleGen", - "Kyoto/Particles/CParticleGlobals", + ["Kyoto/Particles/CParticleGlobals", True], "Kyoto/Particles/CParticleSwoosh", "Kyoto/Particles/CParticleSwooshDataFactory", - "Kyoto/Particles/CRealElement", + ["Kyoto/Particles/CRealElement", False], "Kyoto/Particles/CSpawnSystemKeyframeData", "Kyoto/Particles/CUVElement", "Kyoto/Particles/CVectorElement", diff --git a/include/Kyoto/Basics/CBasics.hpp b/include/Kyoto/Basics/CBasics.hpp index e8c8f581..3d685d93 100644 --- a/include/Kyoto/Basics/CBasics.hpp +++ b/include/Kyoto/Basics/CBasics.hpp @@ -6,12 +6,23 @@ namespace CBasics { void Init(); char* Stringize(const char* fmt, ...); -inline void SwapBytes(uchar* v) {} -inline float SwapBytes(float f) { - u8* tmp = reinterpret_cast(&f); - SwapBytes(tmp); - return *reinterpret_cast(tmp); - } +inline uint SwapBytes(uint x) { +#if 0 + x = ((x << 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) | (x >> 24)); +#endif + return x; +} +inline float SwapBytes(float x) { + union { + float f; + uint u; + }; + f = x; +#if 0 + u = SwapBytes(u); +#endif + return f; +} }; // namespace CBasics #endif // _CBASICS diff --git a/include/Kyoto/Graphics/CColor.hpp b/include/Kyoto/Graphics/CColor.hpp index a02fe2ba..b33fd5c2 100644 --- a/include/Kyoto/Graphics/CColor.hpp +++ b/include/Kyoto/Graphics/CColor.hpp @@ -32,10 +32,10 @@ public: static uint Lerp(uint a, uint b, float t); static CColor Modulate(const CColor& a, const CColor& b); static CColor Add(const CColor& a, const CColor& b); - float GetRed() const { return CCast::ToReal32(mR) * (1 / 255.f); } - float GetGreen() const { return CCast::ToReal32(mG) * (1 / 255.f); } - float GetBlue() const { return CCast::ToReal32(mB) * (1 / 255.f); } - float GetAlpha() const { return CCast::ToReal32(mA) * (1 / 255.f); } + float GetRed() const { return CCast::ToReal32(mR) * (1.f / 255.f); } + float GetGreen() const { return CCast::ToReal32(mG) * (1.f / 255.f); } + float GetBlue() const { return CCast::ToReal32(mB) * (1.f / 255.f); } + float GetAlpha() const { return CCast::ToReal32(mA) * (1.f / 255.f); } uchar GetRedu8() const { return mR; } uchar GetGreenu8() const { return mG; } uchar GetBlueu8() const { return mB; } diff --git a/include/Kyoto/Math/CVector3f.hpp b/include/Kyoto/Math/CVector3f.hpp index 72091888..2b465e38 100644 --- a/include/Kyoto/Math/CVector3f.hpp +++ b/include/Kyoto/Math/CVector3f.hpp @@ -75,13 +75,13 @@ public: mZ -= other.mZ; return *this; } - CVector3f& operator*=(float v) { + CVector3f& operator*=(const float v) { mX *= v; mY *= v; mZ *= v; return *this; } - CVector3f& operator/=(float v) { + CVector3f& operator/=(const float v) { mX /= v; mY /= v; mZ /= v; @@ -137,21 +137,21 @@ inline CVector3f operator+(const CVector3f& lhs, const CVector3f& rhs) { float z = lhs.GetZ() + rhs.GetZ(); return CVector3f(x, y, z); } -inline CVector3f operator*(const CVector3f& vec, float f) { +inline CVector3f operator*(const CVector3f& vec, const float f) { float x = vec.GetX() * f; float y = vec.GetY() * f; float z = vec.GetZ() * f; return CVector3f(x, y, z); } -inline CVector3f operator*(float f, const CVector3f& vec) { +inline CVector3f operator*(const float f, const CVector3f& vec) { float x = f * vec.GetX(); float y = f * vec.GetY(); float z = f * vec.GetZ(); return CVector3f(x, y, z); } -inline CVector3f operator/(const CVector3f& vec, float f) { +inline CVector3f operator/(const CVector3f& vec, const float f) { float x = vec.GetX() / f; float y = vec.GetY() / f; float z = vec.GetZ() / f; diff --git a/include/Kyoto/Particles/CElementGen.hpp b/include/Kyoto/Particles/CElementGen.hpp index 3c0f6bc4..c8332228 100644 --- a/include/Kyoto/Particles/CElementGen.hpp +++ b/include/Kyoto/Particles/CElementGen.hpp @@ -3,16 +3,15 @@ #include "types.h" +#include "Kyoto/CRandom16.hpp" #include "Kyoto/Math/CMatrix3f.hpp" #include "Kyoto/Math/CTransform4f.hpp" #include "Kyoto/Math/CVector3f.hpp" #include "Kyoto/Particles/CParticleGen.hpp" #include "Kyoto/TToken.hpp" -#include "Kyoto/CRandom16.hpp" class CGenDescription; class CModVectorElement; -class CParticle; class CElementGen : public CParticleGen { public: @@ -31,6 +30,16 @@ public: kLT_Directional = 2, kLT_Spot = 3, }; + struct CParticle { + int x0_endFrame; + CVector3f x4_pos; + CVector3f x10_prevPos; + CVector3f x1c_vel; + int x28_startFrame; + float x2c_lineLengthOrSize; + float x30_lineWidthOrRota; + CColor x34_color; + }; CElementGen(TToken< CGenDescription >, EModelOrientationType = kMOT_Normal, EOptionalSystemFlags = kOSF_One); @@ -66,6 +75,7 @@ public: int GetEmitterTime() const; int GetCumulativeParticleCount() const { return x260_cumulativeParticles; } + float GetExternalVar(int index) const; static void Initialize(); static void ShutDown(); diff --git a/include/Kyoto/Particles/CIntElement.hpp b/include/Kyoto/Particles/CIntElement.hpp index 5e1a2771..bf6ddb97 100644 --- a/include/Kyoto/Particles/CIntElement.hpp +++ b/include/Kyoto/Particles/CIntElement.hpp @@ -5,7 +5,6 @@ #include "Kyoto/Particles/IElement.hpp" -#include "rstl/single_ptr.hpp" #include "rstl/vector.hpp" class CInputStream; diff --git a/include/Kyoto/Particles/CModVectorElement.hpp b/include/Kyoto/Particles/CModVectorElement.hpp new file mode 100644 index 00000000..74f4141a --- /dev/null +++ b/include/Kyoto/Particles/CModVectorElement.hpp @@ -0,0 +1,159 @@ +#ifndef _CMODVECTORELEMENT +#define _CMODVECTORELEMENT + +#include "types.h" + +#include "Kyoto/Math/CVector3f.hpp" +#include "Kyoto/Particles/IElement.hpp" + +class CMVEConstant : public CModVectorElement { + CRealElement* x4_x; + CRealElement* x8_y; + CRealElement* xc_z; + +public: + CMVEConstant(CRealElement* a, CRealElement* b, CRealElement* c); + ~CMVEConstant() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEFastConstant : public CModVectorElement { + CVector3f x4_val; + +public: + CMVEFastConstant(float a, float b, float c); + ~CMVEFastConstant() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEGravity : public CModVectorElement { + CVectorElement* x4_a; + +public: + CMVEGravity(CVectorElement* a); + ~CMVEGravity() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEWind : public CModVectorElement { + CVectorElement* x4_velocity; + CRealElement* x8_factor; + +public: + CMVEWind(CVectorElement* velocity, CRealElement* factor); + ~CMVEWind() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEExplode : public CModVectorElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CMVEExplode(CRealElement* a, CRealElement* b); + ~CMVEExplode() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVETimeChain : public CModVectorElement { + CModVectorElement* x4_a; + CModVectorElement* x8_b; + CIntElement* xc_swFrame; + +public: + CMVETimeChain(CModVectorElement* a, CModVectorElement* b, CIntElement* c); + ~CMVETimeChain() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEPulse : public CModVectorElement { + CIntElement* x4_aDuration; + CIntElement* x8_bDuration; + CModVectorElement* xc_aVal; + CModVectorElement* x10_bVal; + +public: + CMVEPulse(CIntElement* a, CIntElement* b, CModVectorElement* c, CModVectorElement* d); + ~CMVEPulse() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEImplosion : public CModVectorElement { + CVectorElement* x4_implPoint; + CRealElement* x8_magScale; + CRealElement* xc_maxMag; + CRealElement* x10_minMag; + bool x14_enableMinMag; + +public: + CMVEImplosion(CVectorElement* a, CRealElement* b, CRealElement* c, CRealElement* d, bool e); + ~CMVEImplosion() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVELinearImplosion : public CModVectorElement { + CVectorElement* x4_implPoint; + CRealElement* x8_magScale; + CRealElement* xc_maxMag; + CRealElement* x10_minMag; + bool x14_enableMinMag; + +public: + CMVELinearImplosion(CVectorElement* a, CRealElement* b, CRealElement* c, CRealElement* d, bool e); + ~CMVELinearImplosion() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEExponentialImplosion : public CModVectorElement { + CVectorElement* x4_implPoint; + CRealElement* x8_magScale; + CRealElement* xc_maxMag; + CRealElement* x10_minMag; + bool x14_enableMinMag; + +public: + CMVEExponentialImplosion(CVectorElement* a, CRealElement* b, CRealElement* c, CRealElement* d, + bool e); + ~CMVEExponentialImplosion() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVESwirl : public CModVectorElement { + CVectorElement* x4_helixPoint; + CVectorElement* x8_curveBinormal; + CRealElement* xc_filterGain; + CRealElement* x10_tangentialVelocity; + +public: + CMVESwirl(CVectorElement* a, CVectorElement* b, CRealElement* c, CRealElement* d); + ~CMVESwirl() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVEBounce : public CModVectorElement { + CVectorElement* x4_planePoint; + CVectorElement* x8_planeNormal; + CRealElement* xc_friction; + CRealElement* x10_restitution; + bool x14_planePrecomputed; + bool x15_dieOnPenetrate; + mutable CVector3f x18_planeValidatedNormal; + mutable float x24_planeD; + +public: + CMVEBounce(CVectorElement* planePoint, CVectorElement* planeNormal, CRealElement* friction, + CRealElement* restitution, bool e); + ~CMVEBounce() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +class CMVESetPosition : public CModVectorElement { + CVectorElement* x4_a; + +public: + CMVESetPosition(CVectorElement* a); + ~CMVESetPosition() override; + bool GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const override; +}; + +#endif // _CMODVECTORELEMENT diff --git a/include/Kyoto/Particles/CParticleDataFactory.hpp b/include/Kyoto/Particles/CParticleDataFactory.hpp new file mode 100644 index 00000000..23a42f90 --- /dev/null +++ b/include/Kyoto/Particles/CParticleDataFactory.hpp @@ -0,0 +1,24 @@ +#ifndef _CPARTICLEDATAFACTORY +#define _CPARTICLEDATAFACTORY + +#include "Kyoto/Particles/IElement.hpp" +#include "Kyoto/SObjectTag.hpp" + +class CInputStream; + +class CParticleDataFactory { + static CUVElement* GetTextureElement(CInputStream& in, CSimplePool* resPool); + static CColorElement* GetColorElement(CInputStream& in); + static CModVectorElement* GetModVectorElement(CInputStream& in); + static CEmitterElement* GetEmitterElement(CInputStream& in); + static CVectorElement* GetVectorElement(CInputStream& in); + static CRealElement* GetRealElement(CInputStream& in); + static CIntElement* GetIntElement(CInputStream& in); + + static float GetReal(CInputStream& in); + static int GetInt(CInputStream& in); + static bool GetBool(CInputStream& in); + static FourCC GetClassID(CInputStream& in); +}; + +#endif // _CPARTICLEDATAFACTORY diff --git a/include/Kyoto/Particles/CParticleGlobals.hpp b/include/Kyoto/Particles/CParticleGlobals.hpp index b3a0eafe..d7480c29 100644 --- a/include/Kyoto/Particles/CParticleGlobals.hpp +++ b/include/Kyoto/Particles/CParticleGlobals.hpp @@ -4,8 +4,7 @@ #include "types.h" #include "Kyoto/SObjectTag.hpp" - -class CElementGen; +#include "Kyoto/Particles/CElementGen.hpp" class CParticleGlobals { public: @@ -27,6 +26,8 @@ public: static float GetParticleLifetimePercentageRemainder() { return mParticleLifetimePercentageRemainder; } + static CElementGen::CParticle* GetCurrentParticle() { return mCurrentParticle; } + static float* GetParticleAccessParameters() { return mParticleAccessParameters; } static SParticleSystem* GetCurrentParticleSystem() { return mCurrentParticleSystem; } private: @@ -37,6 +38,8 @@ private: static int mParticleLifetimePercentage; static float mParticleLifetimePercentageReal; static float mParticleLifetimePercentageRemainder; + static CElementGen::CParticle* mCurrentParticle; + static float* mParticleAccessParameters; static SParticleSystem* mCurrentParticleSystem; }; diff --git a/include/Kyoto/Particles/CRealElement.hpp b/include/Kyoto/Particles/CRealElement.hpp new file mode 100644 index 00000000..61c0259a --- /dev/null +++ b/include/Kyoto/Particles/CRealElement.hpp @@ -0,0 +1,368 @@ +#ifndef _CREALELEMENT +#define _CREALELEMENT + +#include "types.h" + +#include "Kyoto/Particles/IElement.hpp" + +#include "rstl/vector.hpp" + +class CREConstant : public CRealElement { + float x4_val; + +public: + CREConstant(float val); + ~CREConstant() override; + bool GetValue(int frame, float& valOut) const override; + bool IsConstant() const override { return true; } +}; + +class CRESineWave : public CRealElement { + CRealElement* x4_frequency; + CRealElement* x8_amplitude; + CRealElement* xc_phase; + +public: + CRESineWave(CRealElement* a, CRealElement* b, CRealElement* c); + ~CRESineWave() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRETimeScale : public CRealElement { + CRealElement* x4_a; + +public: + CRETimeScale(CRealElement* a); + ~CRETimeScale() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREAdd : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CREAdd(CRealElement* a, CRealElement* b); + ~CREAdd() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREMultiply : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CREMultiply(CRealElement* a, CRealElement* b); + ~CREMultiply() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREDotProduct : public CRealElement { + CVectorElement* x4_a; + CVectorElement* x8_b; + +public: + CREDotProduct(CVectorElement* a, CVectorElement* b); + ~CREDotProduct() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRERandom : public CRealElement { + CRealElement* x4_min; + CRealElement* x8_max; + +public: + CRERandom(CRealElement* min, CRealElement* max); + ~CRERandom() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREInitialRandom : public CRealElement { + CRealElement* x4_min; + CRealElement* x8_max; + +public: + CREInitialRandom(CRealElement* min, CRealElement* max); + ~CREInitialRandom() override; + bool GetValue(int frame, float& valOut) const override; + bool IsConstant() const override { return true; } +}; + +class CRETimeChain : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + CIntElement* xc_swFrame; + +public: + CRETimeChain(CRealElement* a, CRealElement* b, CIntElement* c); + ~CRETimeChain() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREClamp : public CRealElement { + CRealElement* x4_min; + CRealElement* x8_max; + CRealElement* xc_val; + +public: + CREClamp(CRealElement* a, CRealElement* b, CRealElement* c); + ~CREClamp() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREPulse : public CRealElement { + CIntElement* x4_aDuration; + CIntElement* x8_bDuration; + CRealElement* xc_valA; + CRealElement* x10_valB; + +public: + CREPulse(CIntElement* a, CIntElement* b, CRealElement* c, CRealElement* d); + ~CREPulse() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRELifetimePercent : public CRealElement { + CRealElement* x4_percentVal; + +public: + CRELifetimePercent(CRealElement* a); // : x4_percentVal(a) {} + ~CRELifetimePercent() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRELifetimeTween : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CRELifetimeTween(CRealElement* a, CRealElement* b); + ~CRELifetimeTween() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREKeyframeEmitter : public CRealElement { + int x4_percent; + int x8_unk1; + bool xc_loop; + bool xd_unk2; + int x10_loopEnd; + int x14_loopStart; + rstl::vector< float > x18_keys; + +public: + CREKeyframeEmitter(CInputStream& in); + ~CREKeyframeEmitter() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter1 : public CRealElement { +public: + ~CREParticleAccessParameter1() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter2 : public CRealElement { +public: + ~CREParticleAccessParameter2() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter3 : public CRealElement { +public: + ~CREParticleAccessParameter3() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter4 : public CRealElement { +public: + ~CREParticleAccessParameter4() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter5 : public CRealElement { +public: + ~CREParticleAccessParameter5() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter6 : public CRealElement { +public: + ~CREParticleAccessParameter6() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter7 : public CRealElement { +public: + ~CREParticleAccessParameter7() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleAccessParameter8 : public CRealElement { +public: + ~CREParticleAccessParameter8() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleSizeOrLineLength : public CRealElement { +public: + ~CREParticleSizeOrLineLength() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREParticleRotationOrLineWidth : public CRealElement { +public: + ~CREParticleRotationOrLineWidth() override {} + bool GetValue(int frame, float& valOut) const override; +}; + +class CREVectorXToReal : public CRealElement { + CVectorElement* x4_a; + +public: + CREVectorXToReal(CVectorElement* a); + ~CREVectorXToReal() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREVectorYToReal : public CRealElement { + CVectorElement* x4_a; + +public: + CREVectorYToReal(CVectorElement* a); + ~CREVectorYToReal() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREVectorZToReal : public CRealElement { + CVectorElement* x4_a; + +public: + CREVectorZToReal(CVectorElement* a); + ~CREVectorZToReal() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREVectorMagnitude : public CRealElement { + CVectorElement* x4_a; + +public: + CREVectorMagnitude(CVectorElement* a); + ~CREVectorMagnitude() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREInitialSwitch : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CREInitialSwitch(CRealElement* a, CRealElement* b); + ~CREInitialSwitch() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRECompareLessThan : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + CRealElement* xc_c; + CRealElement* x10_d; + +public: + CRECompareLessThan(CRealElement* a, CRealElement* b, CRealElement* c, CRealElement* d); + ~CRECompareLessThan() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRECompareEqual : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + CRealElement* xc_c; + CRealElement* x10_d; + +public: + CRECompareEqual(CRealElement* a, CRealElement* b, CRealElement* c, CRealElement* d); + ~CRECompareEqual() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREConstantRange : public CRealElement { + CRealElement* x4_val; + CRealElement* x8_min; + CRealElement* xc_max; + CRealElement* x10_inRange; + CRealElement* x14_outOfRange; + +public: + CREConstantRange(CRealElement* a, CRealElement* b, CRealElement* c, CRealElement* d, + CRealElement* e); + ~CREConstantRange() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREExternalVar : public CRealElement { + CIntElement* x4_a; + +public: + CREExternalVar(CIntElement* a); + ~CREExternalVar() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CRESubtract : public CRealElement { + CRealElement* x4_a; + CRealElement* x8_b; + +public: + CRESubtract(CRealElement* a, CRealElement* b); + ~CRESubtract() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREGetComponentRed : public CRealElement { + CColorElement* x4_a; + +public: + CREGetComponentRed(CColorElement* a); + ~CREGetComponentRed() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREGetComponentGreen : public CRealElement { + CColorElement* x4_a; + +public: + CREGetComponentGreen(CColorElement* a); + ~CREGetComponentGreen() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREGetComponentBlue : public CRealElement { + CColorElement* x4_a; + +public: + CREGetComponentBlue(CColorElement* a); + ~CREGetComponentBlue() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREGetComponentAlpha : public CRealElement { + CColorElement* x4_a; + +public: + CREGetComponentAlpha(CColorElement* a); + ~CREGetComponentAlpha() override; + bool GetValue(int frame, float& valOut) const override; +}; + +class CREIntTimesReal : public CRealElement { + CIntElement* x4_a; + CRealElement* x8_b; + +public: + CREIntTimesReal(CIntElement* a, CRealElement* b); + ~CREIntTimesReal() override; + bool GetValue(int frame, float& valOut) const override; +}; + +#endif // _CREALELEMENT diff --git a/include/Kyoto/Particles/IElement.hpp b/include/Kyoto/Particles/IElement.hpp index 7598c171..407833f4 100644 --- a/include/Kyoto/Particles/IElement.hpp +++ b/include/Kyoto/Particles/IElement.hpp @@ -14,7 +14,8 @@ public: virtual ~IElement(){}; // -> CFrameDelayedKiller - void* operator new(unsigned long sz); + void* operator new(unsigned long sz, const char*, const char*); + void* operator new(unsigned long sz) { return operator new(sz, "??(??)", nullptr); } void operator delete(void* ptr, size_t sz); }; diff --git a/obj_files.mk b/obj_files.mk index 1e45a55a..f6074de3 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -539,7 +539,7 @@ KYOTO_1 :=\ $(BUILD_DIR)/asm/Kyoto/Particles/CModVectorElement.o\ $(BUILD_DIR)/asm/Kyoto/Particles/CParticleDataFactory.o\ $(BUILD_DIR)/asm/Kyoto/Particles/CParticleGen.o\ - $(BUILD_DIR)/asm/Kyoto/Particles/CParticleGlobals.o\ + $(BUILD_DIR)/src/Kyoto/Particles/CParticleGlobals.o\ $(BUILD_DIR)/asm/Kyoto/Particles/CParticleSwoosh.o\ $(BUILD_DIR)/asm/Kyoto/Particles/CParticleSwooshDataFactory.o\ $(BUILD_DIR)/asm/Kyoto/Particles/CRealElement.o\ diff --git a/src/Kyoto/Particles/CModVectorElement.cpp b/src/Kyoto/Particles/CModVectorElement.cpp new file mode 100644 index 00000000..333aa946 --- /dev/null +++ b/src/Kyoto/Particles/CModVectorElement.cpp @@ -0,0 +1,371 @@ +#include "Kyoto/Particles/CModVectorElement.hpp" + +#include "Kyoto/CRandom16.hpp" + +CMVEConstant::CMVEConstant(CRealElement* a, CRealElement* b, CRealElement* c) +: x4_x(a), x8_y(b), xc_z(c) {} + +CMVEConstant::~CMVEConstant() { + delete x4_x; + delete x8_y; + delete xc_z; +} + +bool CMVEConstant::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + float x, y, z; + x4_x->GetValue(frame, x); + x8_y->GetValue(frame, y); + xc_z->GetValue(frame, z); + pVel = CVector3f(x, y, z); + return false; +} + +CMVEFastConstant::CMVEFastConstant(float a, float b, float c) : x4_val(a, b, c) {} + +CMVEFastConstant::~CMVEFastConstant() {} + +bool CMVEFastConstant::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + pVel = x4_val; + return false; +} + +CMVEGravity::CMVEGravity(CVectorElement* a) : x4_a(a) {} + +CMVEGravity::~CMVEGravity() { delete x4_a; } + +bool CMVEGravity::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f grav(0.f, 0.f, 0.f); + x4_a->GetValue(frame, grav); + pVel += grav; + return false; +} + +CMVEWind::CMVEWind(CVectorElement* velocity, CRealElement* factor) +: x4_velocity(velocity), x8_factor(factor) {} + +CMVEWind::~CMVEWind() { + delete x4_velocity; + delete x8_factor; +} + +bool CMVEWind::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f wVel(0.f, 0.f, 0.f); + x4_velocity->GetValue(frame, wVel); + CVector3f diff = wVel - pVel; + float factor; + x8_factor->GetValue(frame, factor); + diff *= factor; + pVel += diff; + return false; +} + +CMVEExplode::CMVEExplode(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CMVEExplode::~CMVEExplode() { + delete x4_a; + delete x8_b; +} + +bool CMVEExplode::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + if (frame == 0) { + float x, y, z; + do { + x = CRandom16::GetRandomNumber()->Float() - 0.5f; + y = CRandom16::GetRandomNumber()->Float() - 0.5f; + z = CRandom16::GetRandomNumber()->Float() - 0.5f; + } while (x * x + y * y + z * z > 1.f); + float a; + x4_a->GetValue(frame, a); + CVector3f vec(x, y, z); + vec.Normalize(); + vec *= a; + pVel = vec; + } else { + float b; + x8_b->GetValue(frame, b); + pVel *= b; + } + return false; +} + +CMVETimeChain::CMVETimeChain(CModVectorElement* a, CModVectorElement* b, CIntElement* c) +: x4_a(a), x8_b(b), xc_swFrame(c) {} + +CMVETimeChain::~CMVETimeChain() { + delete x4_a; + delete x8_b; + delete xc_swFrame; +} + +bool CMVETimeChain::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + int v; + xc_swFrame->GetValue(frame, v); + if (frame < v) { + return x4_a->GetValue(frame, pVel, pPos); + } else { + return x8_b->GetValue(frame - v, pVel, pPos); + } +} + +CMVEPulse::CMVEPulse(CIntElement* a, CIntElement* b, CModVectorElement* c, CModVectorElement* d) +: x4_aDuration(a), x8_bDuration(b), xc_aVal(c), x10_bVal(d) {} + +CMVEPulse::~CMVEPulse() { + delete x4_aDuration; + delete x8_bDuration; + delete xc_aVal; + delete x10_bVal; +} + +bool CMVEPulse::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + int a, b; + x4_aDuration->GetValue(frame, a); + x8_bDuration->GetValue(frame, b); + int cv = a + b + 1; + if (cv < 0) { + cv = 1; + } + + if (b >= 1) { + if (frame % cv > a) { + x10_bVal->GetValue(frame, pVel, pPos); + } else { + xc_aVal->GetValue(frame, pVel, pPos); + } + } else { + xc_aVal->GetValue(frame, pVel, pPos); + } + return false; +} + +CMVEImplosion::CMVEImplosion(CVectorElement* a, CRealElement* b, CRealElement* c, CRealElement* d, + bool e) +: x4_implPoint(a), x8_magScale(b), xc_maxMag(c), x10_minMag(d), x14_enableMinMag(e) {} + +CMVEImplosion::~CMVEImplosion() { + delete x4_implPoint; + delete x8_magScale; + delete xc_maxMag; + delete x10_minMag; +} + +bool CMVEImplosion::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f av(0.f, 0.f, 0.f); + x4_implPoint->GetValue(frame, av); + + CVector3f dv = av - pPos; + float dvm = dv.Magnitude(); + + float c; + xc_maxMag->GetValue(frame, c); + if (dvm > c) { + return false; + } + + float d; + x10_minMag->GetValue(frame, d); + if (x14_enableMinMag && dvm < d) { + return true; + } + + if (dvm == 0.f) { + return false; + } + + CVector3f dvs = (1.f / dvm) * dv; + float b; + x8_magScale->GetValue(frame, b); + pVel += b * dvs; + return false; +} + +CMVELinearImplosion::CMVELinearImplosion(CVectorElement* a, CRealElement* b, CRealElement* c, + CRealElement* d, bool e) +: x4_implPoint(a), x8_magScale(b), xc_maxMag(c), x10_minMag(d), x14_enableMinMag(e) {} + +CMVELinearImplosion::~CMVELinearImplosion() { + delete x4_implPoint; + delete x8_magScale; + delete xc_maxMag; + delete x10_minMag; +} + +bool CMVELinearImplosion::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f av(0.f, 0.f, 0.f); + x4_implPoint->GetValue(frame, av); + + CVector3f dv = av - pPos; + float dvm = dv.Magnitude(); + + float c; + xc_maxMag->GetValue(frame, c); + if (dvm > c) { + return false; + } + + float d; + x10_minMag->GetValue(frame, d); + if (x14_enableMinMag && dvm < d) { + return true; + } + + if (dvm == 0.f) { + return false; + } + + CVector3f dvs = (1.f / dvm) * dv; + float b; + x8_magScale->GetValue(frame, b); + pVel = b * dvs; + return false; +} + +CMVEExponentialImplosion::CMVEExponentialImplosion(CVectorElement* a, CRealElement* b, + CRealElement* c, CRealElement* d, bool e) +: x4_implPoint(a), x8_magScale(b), xc_maxMag(c), x10_minMag(d), x14_enableMinMag(e) {} + +CMVEExponentialImplosion::~CMVEExponentialImplosion() { + delete x4_implPoint; + delete x8_magScale; + delete xc_maxMag; + delete x10_minMag; +} + +bool CMVEExponentialImplosion::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f av(0.f, 0.f, 0.f); + x4_implPoint->GetValue(frame, av); + + CVector3f dv = av - pPos; + float dvm = dv.Magnitude(); + + float c; + xc_maxMag->GetValue(frame, c); + if (dvm > c) { + return false; + } + + float d; + x10_minMag->GetValue(frame, d); + if (x14_enableMinMag && dvm < d) { + return true; + } + + if (dvm == 0.f) { + return false; + } + + CVector3f dvs = (1.f / dvm) * dv; + float b; + x8_magScale->GetValue(frame, b); + pVel += dvm * (b * dvs); + return false; +} + +CMVESwirl::CMVESwirl(CVectorElement* a, CVectorElement* b, CRealElement* c, CRealElement* d) +: x4_helixPoint(a), x8_curveBinormal(b), xc_filterGain(c), x10_tangentialVelocity(d) {} + +CMVESwirl::~CMVESwirl() { + delete x4_helixPoint; + delete x8_curveBinormal; + delete xc_filterGain; + delete x10_tangentialVelocity; +} + +bool CMVESwirl::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + CVector3f a(0.f, 0.f, 0.f); + CVector3f b(0.f, 0.f, 0.f); + x4_helixPoint->GetValue(frame, a); + x8_curveBinormal->GetValue(frame, b); + + CVector3f posToOrigin = a - pPos; + CVector3f posToHelix = posToOrigin - CVector3f::Dot(posToOrigin, b) * b; + + float c = 0.f; + float d = 0.f; + xc_filterGain->GetValue(frame, c); + x10_tangentialVelocity->GetValue(frame, d); + + CVector3f cross = CVector3f::Cross(b, posToHelix); + pVel = c * ( + b * CVector3f::Dot(b, pVel) + + d * cross + ) + (1.f - c) * pVel; + return false; +} + +CMVEBounce::CMVEBounce(CVectorElement* planePoint, CVectorElement* planeNormal, + CRealElement* friction, CRealElement* restitution, bool e) +: x4_planePoint(planePoint) +, x8_planeNormal(planeNormal) +, xc_friction(friction) +, x10_restitution(restitution) +, x14_planePrecomputed(false) +, x15_dieOnPenetrate(e) +, x18_planeValidatedNormal(0.f, 0.f, 0.f) +, x24_planeD(0.f) { + if (planePoint && planeNormal && planePoint->IsFastConstant() && planeNormal->IsFastConstant()) { + // Precompute Hesse normal form of plane (for penetration testing) + // https://en.wikipedia.org/wiki/Hesse_normal_form + x14_planePrecomputed = true; + planeNormal->GetValue(0, x18_planeValidatedNormal); + + if (x18_planeValidatedNormal.MagSquared() > 0.f) { + x18_planeValidatedNormal.Normalize(); + } + CVector3f a(0.f, 0.f, 0.f); + planePoint->GetValue(0, a); + x24_planeD = CVector3f::Dot(x18_planeValidatedNormal, a); + } +} + +CMVEBounce::~CMVEBounce() { + delete x4_planePoint; + delete x8_planeNormal; + delete xc_friction; + delete x10_restitution; +} + +bool CMVEBounce::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + if (!x14_planePrecomputed) { + // Compute Hesse normal form of plane (for penetration testing) + x8_planeNormal->GetValue(frame, x18_planeValidatedNormal); + x18_planeValidatedNormal.Normalize(); + + CVector3f a(0.f, 0.f, 0.f); + x4_planePoint->GetValue(frame, a); + + x24_planeD = CVector3f::Dot(x18_planeValidatedNormal, a); + } + + float dot = CVector3f::Dot(x18_planeValidatedNormal, pPos); + if (dot - x24_planeD > 0.f) { + return false; + } else if (x15_dieOnPenetrate) { + return true; + } + + // Deflection event + if (CVector3f::Dot(x18_planeValidatedNormal, pVel) < 0.f) { + float pd = CVector3f::Dot(pPos - pVel, x18_planeValidatedNormal) - x24_planeD; + float pn = CVector3f::Dot(pVel, x18_planeValidatedNormal); + pPos = pPos + pVel * (-pd / pn - 1.f); + + float d = 0.f; + x10_restitution->GetValue(frame, d); + pVel -= d * pVel; + + float c = 0.f; + xc_friction->GetValue(frame, c); + pVel -= (c + 1.f) * CVector3f::Dot(x18_planeValidatedNormal, pVel) * x18_planeValidatedNormal; + } + return false; +} + +CMVESetPosition::CMVESetPosition(CVectorElement* a) : x4_a(a) {} + +CMVESetPosition::~CMVESetPosition() { delete x4_a; } + +bool CMVESetPosition::GetValue(int frame, CVector3f& pVel, CVector3f& pPos) const { + x4_a->GetValue(frame, pPos); + return false; +} diff --git a/src/Kyoto/Particles/CParticleDataFactory.cpp b/src/Kyoto/Particles/CParticleDataFactory.cpp new file mode 100644 index 00000000..22b834dd --- /dev/null +++ b/src/Kyoto/Particles/CParticleDataFactory.cpp @@ -0,0 +1,221 @@ +#include "Kyoto/Particles/CParticleDataFactory.hpp" + +#include "Kyoto/Particles/CIntElement.hpp" +#include "Kyoto/Particles/CModVectorElement.hpp" +#include "Kyoto/Streams/CInputStream.hpp" + +#define SBIG(v) v + +FourCC CParticleDataFactory::GetClassID(CInputStream& in) { return in.ReadLong(); } + +bool CParticleDataFactory::GetBool(CInputStream& in) { + GetClassID(in); + return in.ReadBool(); +} + +int CParticleDataFactory::GetInt(CInputStream& in) { return in.ReadInt32(); } + +float CParticleDataFactory::GetReal(CInputStream& in) { return in.ReadFloat(); } + +CIntElement* CParticleDataFactory::GetIntElement(CInputStream& in) { + FourCC clsId = GetClassID(in); + switch (clsId) { + case SBIG('CNST'): { + return new CIEConstant(GetInt(in)); + } + case SBIG('KEYE'): + case SBIG('KEYP'): { + return new CIEKeyframeEmitter(in); + } + case SBIG('TSCL'): { + return new CIETimescale(GetRealElement(in)); + } + case SBIG('DETH'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIEDeath(a, b); + } + case SBIG('CHAN'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + CIntElement* c = GetIntElement(in); + return new CIETimeChain(a, b, c); + } + case SBIG('ADD_'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIEAdd(a, b); + } + case SBIG('MULT'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIEMultiply(a, b); + } + case SBIG('MODU'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIEModulo(a, b); + } + case SBIG('RAND'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIERandom(a, b); + } + case SBIG('IMPL'): { + return new CIEImpulse(GetIntElement(in)); + } + case SBIG('ILPT'): { + return new CIELifetimePercent(GetIntElement(in)); + } + case SBIG('SPAH'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + CIntElement* c = GetIntElement(in); + return new CIESampleAndHold(c, a, b); + } + case SBIG('IRND'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIEInitialRandom(a, b); + } + case SBIG('CLMP'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + CIntElement* c = GetIntElement(in); + return new CIEClamp(a, b, c); + } + case SBIG('PULS'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + CIntElement* c = GetIntElement(in); + CIntElement* d = GetIntElement(in); + return new CIEPulse(a, b, c, d); + } + case SBIG('NONE'): { + return nullptr; + } + case SBIG('RTOI'): { + CRealElement* a = GetRealElement(in); + CRealElement* b = GetRealElement(in); + return new CIERealToInt(a, b); + } + case SBIG('SUB_'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + return new CIESubtract(a, b); + } + case SBIG('GTCP'): { + return new CIEGetCumulativeParticleCount(); + } + case SBIG('GAPC'): { + return new CIEGetActiveParticleCount(); + } + case SBIG('GEMT'): { + return new CIEGetEmitterTime(); + } + } + return nullptr; +} + +CModVectorElement* CParticleDataFactory::GetModVectorElement(CInputStream& in) { + FourCC clsId = GetClassID(in); + switch (clsId) { + case SBIG('NONE'): { + return nullptr; + } + case SBIG('CNST'): { + CRealElement* a = GetRealElement(in); + CRealElement* b = GetRealElement(in); + CRealElement* c = GetRealElement(in); + if (a && b && c && a->IsConstant() && b->IsConstant() && c->IsConstant()) { + float af, bf, cf; +#if NONMATCHING + a->GetValue(0, af); + b->GetValue(0, bf); + c->GetValue(0, cf); +#else + // BUG: Fetching from the same element for each + a->GetValue(0, af); + a->GetValue(0, bf); + a->GetValue(0, cf); +#endif + CModVectorElement* result = new CMVEFastConstant(af, bf, cf); + delete a; + delete b; + delete c; + return result; + } else { + return new CMVEConstant(a, b, c); + } + } + case SBIG('GRAV'): { + return new CMVEGravity(GetVectorElement(in)); + } + case SBIG('WIND'): { + CVectorElement* a = GetVectorElement(in); + CRealElement* b = GetRealElement(in); + return new CMVEWind(a, b); + } + case SBIG('EXPL'): { + CRealElement* a = GetRealElement(in); + CRealElement* b = GetRealElement(in); + return new CMVEExplode(a, b); + } + case SBIG('CHAN'): { + CModVectorElement* a = GetModVectorElement(in); + CModVectorElement* b = GetModVectorElement(in); + CIntElement* c = GetIntElement(in); + return new CMVETimeChain(a, b, c); + } + case SBIG('PULS'): { + CIntElement* a = GetIntElement(in); + CIntElement* b = GetIntElement(in); + CModVectorElement* c = GetModVectorElement(in); + CModVectorElement* d = GetModVectorElement(in); + return new CMVEPulse(a, b, c, d); + } + case SBIG('IMPL'): { + CVectorElement* a = GetVectorElement(in); + CRealElement* b = GetRealElement(in); + CRealElement* c = GetRealElement(in); + CRealElement* d = GetRealElement(in); + bool e = GetBool(in); + return new CMVEImplosion(a, b, c, d, e); + } + case SBIG('LMPL'): { + CVectorElement* a = GetVectorElement(in); + CRealElement* b = GetRealElement(in); + CRealElement* c = GetRealElement(in); + CRealElement* d = GetRealElement(in); + bool e = GetBool(in); + return new CMVELinearImplosion(a, b, c, d, e); + } + case SBIG('EMPL'): { + CVectorElement* a = GetVectorElement(in); + CRealElement* b = GetRealElement(in); + CRealElement* c = GetRealElement(in); + CRealElement* d = GetRealElement(in); + bool e = GetBool(in); + return new CMVEExponentialImplosion(a, b, c, d, e); + } + case SBIG('SWRL'): { + CVectorElement* a = GetVectorElement(in); + CVectorElement* b = GetVectorElement(in); + CRealElement* c = GetRealElement(in); + CRealElement* d = GetRealElement(in); + return new CMVESwirl(a, b, c, d); + } + case SBIG('BNCE'): { + CVectorElement* a = GetVectorElement(in); + CVectorElement* b = GetVectorElement(in); + CRealElement* c = GetRealElement(in); + CRealElement* d = GetRealElement(in); + bool e = GetBool(in); + return new CMVEBounce(a, b, c, d, e); + } + case SBIG('SPOS'): { + return new CMVESetPosition(GetVectorElement(in)); + } + } + return nullptr; +} diff --git a/src/Kyoto/Particles/CParticleGlobals.cpp b/src/Kyoto/Particles/CParticleGlobals.cpp new file mode 100644 index 00000000..9ab65222 --- /dev/null +++ b/src/Kyoto/Particles/CParticleGlobals.cpp @@ -0,0 +1,35 @@ +#include "Kyoto/Particles/CParticleGlobals.hpp" + +int CParticleGlobals::mParticleLifetime; +float CParticleGlobals::mParticleLifetimeReal; +int CParticleGlobals::mEmitterTime; +float CParticleGlobals::mEmitterTimeReal; +int CParticleGlobals::mParticleLifetimePercentage; +float CParticleGlobals::mParticleLifetimePercentageReal; +float CParticleGlobals::mParticleLifetimePercentageRemainder; +CElementGen::CParticle* CParticleGlobals::mCurrentParticle; +float* CParticleGlobals::mParticleAccessParameters; +CParticleGlobals::SParticleSystem* CParticleGlobals::mCurrentParticleSystem; + +void CParticleGlobals::SetParticleLifetime(int lifetime) { + mParticleLifetime = lifetime; + mParticleLifetimeReal = static_cast< float >(lifetime); +} + +void CParticleGlobals::SetEmitterTime(int time) { + mEmitterTime = time; + mEmitterTimeReal = static_cast< float >(time); +} + +void CParticleGlobals::UpdateParticleLifetimeTweenValues(int time) { + float d = mParticleLifetime != 0.f ? mParticleLifetime : 1.f; + mParticleLifetimePercentageReal = time * 100.f / d; + mParticleLifetimePercentage = mParticleLifetimePercentageReal; + mParticleLifetimePercentageRemainder = + mParticleLifetimePercentageReal - mParticleLifetimePercentage; + if (mParticleLifetimePercentage < 0) { + mParticleLifetimePercentage = 0; + } else if (mParticleLifetimePercentage > 100) { + mParticleLifetimePercentage = 100; + } +} diff --git a/src/Kyoto/Particles/CRealElement.cpp b/src/Kyoto/Particles/CRealElement.cpp new file mode 100644 index 00000000..e7622254 --- /dev/null +++ b/src/Kyoto/Particles/CRealElement.cpp @@ -0,0 +1,546 @@ +#include "Kyoto/Particles/CRealElement.hpp" + +#include "Kyoto/CRandom16.hpp" +#include "Kyoto/Math/CRelAngle.hpp" +#include "Kyoto/Math/CVector3f.hpp" +#include "Kyoto/Math/CloseEnough.hpp" +#include "Kyoto/Particles/CParticleGlobals.hpp" +#include "Kyoto/Streams/CInputStream.hpp" + +#include "rstl/math.hpp" + +CREConstant::CREConstant(float val) : x4_val(val) {} + +CREConstant::~CREConstant() {} + +bool CREConstant::GetValue(int frame, float& valOut) const override { + valOut = x4_val; + return false; +} + +CRESineWave::CRESineWave(CRealElement* a, CRealElement* b, CRealElement* c) +: x4_frequency(b), x8_amplitude(c), xc_phase(a) {} + +CRESineWave::~CRESineWave() { + delete x4_frequency; + delete x8_amplitude; + delete xc_phase; +} + +bool CRESineWave::GetValue(int frame, float& valOut) const { + float amp, freq, phase; + x8_amplitude->GetValue(frame, amp); + x4_frequency->GetValue(frame, freq); + xc_phase->GetValue(frame, phase); + valOut = sine(CRelAngle::FromDegrees(frame * freq + phase)) * amp; + return false; +} + +CRETimeScale::CRETimeScale(CRealElement* a) : x4_a(a) {} + +CRETimeScale::~CRETimeScale() { delete x4_a; } + +bool CRETimeScale::GetValue(int frame, float& valOut) const { + float a; + x4_a->GetValue(frame, a); + valOut = static_cast< float >(frame) * a; + return false; +} + +CREAdd::CREAdd(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CREAdd::~CREAdd() { + delete x4_a; + delete x8_b; +} + +bool CREAdd::GetValue(int frame, float& valOut) const { + float a, b; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + valOut = a + b; + return false; +} + +CREMultiply::CREMultiply(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CREMultiply::~CREMultiply() { + delete x4_a; + delete x8_b; +} + +bool CREMultiply::GetValue(int frame, float& valOut) const { + float a, b; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + valOut = a * b; + return false; +} + +CREDotProduct::CREDotProduct(CVectorElement* a, CVectorElement* b) : x4_a(a), x8_b(b) {} + +CREDotProduct::~CREDotProduct() { + delete x4_a; + delete x8_b; +} + +bool CREDotProduct::GetValue(int frame, float& valOut) const { + CVector3f a = CVector3f::Zero(); + CVector3f b = CVector3f::Zero(); + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + valOut = CVector3f::Dot(a, b); + return false; +} + +CRERandom::CRERandom(CRealElement* min, CRealElement* max) : x4_min(min), x8_max(max) {} + +CRERandom::~CRERandom() { + delete x4_min; + delete x8_max; +} + +bool CRERandom::GetValue(int frame, float& valOut) const { + float min, max; + x4_min->GetValue(frame, min); + x8_max->GetValue(frame, max); + valOut = (max - min) * CRandom16::GetRandomNumber()->Float() + min; + return false; +} + +CREInitialRandom::CREInitialRandom(CRealElement* min, CRealElement* max) +: x4_min(min), x8_max(max) {} + +CREInitialRandom::~CREInitialRandom() { + delete x4_min; + delete x8_max; +} + +bool CREInitialRandom::GetValue(int frame, float& valOut) const { + if (frame == 0) { + float min, max; + x4_min->GetValue(frame, min); + x8_max->GetValue(frame, max); + valOut = (max - min) * CRandom16::GetRandomNumber()->Float() + min; + } + return false; +} + +CRETimeChain::CRETimeChain(CRealElement* a, CRealElement* b, CIntElement* c) +: x4_a(a), x8_b(b), xc_swFrame(c) {} + +CRETimeChain::~CRETimeChain() { + delete x4_a; + delete x8_b; + delete xc_swFrame; +} + +bool CRETimeChain::GetValue(int frame, float& valOut) const { + int v; + xc_swFrame->GetValue(frame, v); + if (frame < v) { + return x4_a->GetValue(frame, valOut); + } else { + return x8_b->GetValue(frame - v, valOut); + } +} + +CREClamp::CREClamp(CRealElement* a, CRealElement* b, CRealElement* c) +: x4_min(a), x8_max(b), xc_val(c) {} + +CREClamp::~CREClamp() { + delete x4_min; + delete x8_max; + delete xc_val; +} + +bool CREClamp::GetValue(int frame, float& valOut) const { + float a, b; + x4_min->GetValue(frame, a); + x8_max->GetValue(frame, b); + xc_val->GetValue(frame, valOut); + if (valOut > b) { + valOut = b; + } + if (valOut < a) { + valOut = a; + } + return false; +} + +CREPulse::CREPulse(CIntElement* a, CIntElement* b, CRealElement* c, CRealElement* d) +: x4_aDuration(a), x8_bDuration(b), xc_valA(c), x10_valB(d) {} + +CREPulse::~CREPulse() { + delete x4_aDuration; + delete x8_bDuration; + delete xc_valA; + delete x10_valB; +} + +bool CREPulse::GetValue(int frame, float& valOut) const { + int a, b; + x4_aDuration->GetValue(frame, a); + x8_bDuration->GetValue(frame, b); + int cv = a + b + 1; + if (cv < 0) { + cv = 1; + } + + if (b >= 1) { + // CREPulse is an outlier here, the other + // IElement classes use > instead of >=. + if (frame % cv >= a) { + x10_valB->GetValue(frame, valOut); + } else { + xc_valA->GetValue(frame, valOut); + } + } else { + xc_valA->GetValue(frame, valOut); + } + return false; +} + +CRELifetimePercent::CRELifetimePercent(CRealElement* a) : x4_percentVal(a) {} + +CRELifetimePercent::~CRELifetimePercent() { delete x4_percentVal; } + +bool CRELifetimePercent::GetValue(int frame, float& valOut) const { + float a = 0.f; + x4_percentVal->GetValue(frame, a); + if (a < 0.f) { + a = 0.f; + } + valOut = (a / 100.f) * CParticleGlobals::GetParticleLifetimeReal(); + return false; +} + +CRELifetimeTween::CRELifetimeTween(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CRELifetimeTween::~CRELifetimeTween() { + delete x4_a; + delete x8_b; +} + +// fake but using it to test +static inline float Lerp(float a, float b, float c) { + return b * c + a * (1.f - c); +} + +bool CRELifetimeTween::GetValue(int frame, float& valOut) const { + float ltFac = frame / CParticleGlobals::GetParticleLifetimeReal(); + float a, b; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + valOut = Lerp(a, b, ltFac); + return false; +} + +CREKeyframeEmitter::CREKeyframeEmitter(CInputStream& in) +: x4_percent(in.ReadLong()) +, x8_unk1(in.ReadLong()) +, xc_loop(in.ReadBool()) +, xd_unk2(in.ReadBool()) +, x10_loopEnd(in.ReadLong()) +, x14_loopStart(in.ReadLong()) +, x18_keys(in) {} + +CREKeyframeEmitter::~CREKeyframeEmitter() {} + +bool CREKeyframeEmitter::GetValue(int frame, float& valOut) const { + if (x4_percent == 0) { + int emitterTime = CParticleGlobals::GetEmitterTime(); + if (xc_loop) { + if (emitterTime >= x10_loopEnd) { + emitterTime -= x14_loopStart; + emitterTime = emitterTime % (x10_loopEnd - x14_loopStart); + emitterTime += x14_loopStart; + } + valOut = x18_keys[emitterTime]; + } else { + emitterTime = rstl::min_val(emitterTime, x10_loopEnd - 1); + valOut = x18_keys[emitterTime]; + } + return false; + } + + int ltPerc = CParticleGlobals::GetParticleLifetimePercentage(); + if (ltPerc == 100) { + valOut = x18_keys[ltPerc]; + } else { + float ltPercRem = CParticleGlobals::GetParticleLifetimePercentageRemainder(); + float key1 = x18_keys[ltPerc]; + float key2 = x18_keys[ltPerc + 1]; + valOut = (1.f - ltPercRem) * key1 + ltPercRem * key2; + // valOut = Lerp(key1, key2, ltPercRem); + } + return false; +} + +bool CREParticleAccessParameter1::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[0]; + return false; +} + +bool CREParticleAccessParameter2::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[1]; + return false; +} + +bool CREParticleAccessParameter3::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[2]; + return false; +} + +bool CREParticleAccessParameter4::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[3]; + return false; +} + +bool CREParticleAccessParameter5::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[4]; + return false; +} + +bool CREParticleAccessParameter6::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[5]; + return false; +} + +bool CREParticleAccessParameter7::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[6]; + return false; +} + +bool CREParticleAccessParameter8::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetParticleAccessParameters()[7]; + return false; +} + +bool CREParticleSizeOrLineLength::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetCurrentParticle()->x2c_lineLengthOrSize; + return false; +} + +bool CREParticleRotationOrLineWidth::GetValue(int, float& valOut) const { + valOut = CParticleGlobals::GetCurrentParticle()->x30_lineWidthOrRota; + return false; +} + +CREVectorXToReal::CREVectorXToReal(CVectorElement* a) : x4_a(a) {} + +CREVectorXToReal::~CREVectorXToReal() { delete x4_a; } + +bool CREVectorXToReal::GetValue(int frame, float& valOut) const { + CVector3f a = CVector3f::Zero(); + x4_a->GetValue(frame, a); + valOut = a[0]; + return false; +} + +CREVectorYToReal::CREVectorYToReal(CVectorElement* a) : x4_a(a) {} + +CREVectorYToReal::~CREVectorYToReal() { delete x4_a; } + +bool CREVectorYToReal::GetValue(int frame, float& valOut) const { + CVector3f a = CVector3f::Zero(); + x4_a->GetValue(frame, a); + valOut = a[1]; + return false; +} + +CREVectorZToReal::CREVectorZToReal(CVectorElement* a) : x4_a(a) {} + +CREVectorZToReal::~CREVectorZToReal() { delete x4_a; } + +bool CREVectorZToReal::GetValue(int frame, float& valOut) const { + CVector3f a = CVector3f::Zero(); + x4_a->GetValue(frame, a); + valOut = a[2]; + return false; +} + +CREVectorMagnitude::CREVectorMagnitude(CVectorElement* a) : x4_a(a) {} + +CREVectorMagnitude::~CREVectorMagnitude() { delete x4_a; } + +bool CREVectorMagnitude::GetValue(int frame, float& valOut) const { + CVector3f a = CVector3f::Zero(); + x4_a->GetValue(frame, a); + valOut = a.Magnitude(); + return false; +} + +CREInitialSwitch::CREInitialSwitch(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CREInitialSwitch::~CREInitialSwitch() { + delete x4_a; + delete x8_b; +} + +bool CREInitialSwitch::GetValue(int frame, float& valOut) const { + if (frame == 0) { + x4_a->GetValue(0, valOut); + } else { + x8_b->GetValue(frame - 1, valOut); + } + return false; +} + +CRECompareLessThan::CRECompareLessThan(CRealElement* a, CRealElement* b, CRealElement* c, + CRealElement* d) +: x4_a(a), x8_b(b), xc_c(c), x10_d(d) {} + +CRECompareLessThan::~CRECompareLessThan() { + delete x4_a; + delete x8_b; + delete xc_c; + delete x10_d; +} + +bool CRECompareLessThan::GetValue(int frame, float& valOut) const { + float a, b; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + if (a < b) { + xc_c->GetValue(frame, valOut); + } else { + x10_d->GetValue(frame, valOut); + } + return false; +} + +CRECompareEqual::CRECompareEqual(CRealElement* a, CRealElement* b, CRealElement* c, CRealElement* d) +: x4_a(a), x8_b(b), xc_c(c), x10_d(d) {} + +CRECompareEqual::~CRECompareEqual() { + delete x4_a; + delete x8_b; + delete xc_c; + delete x10_d; +} + +bool CRECompareEqual::GetValue(int frame, float& valOut) const { + float a, b; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + if (close_enough(a, b)) { + xc_c->GetValue(frame, valOut); + } else { + x10_d->GetValue(frame, valOut); + } + return false; +} + +CREConstantRange::CREConstantRange(CRealElement* a, CRealElement* b, CRealElement* c, + CRealElement* d, CRealElement* e) +: x4_val(a), x8_min(b), xc_max(c), x10_inRange(d), x14_outOfRange(e) {} + +CREConstantRange::~CREConstantRange() { + delete x4_val; + delete x8_min; + delete xc_max; + delete x10_inRange; + delete x14_outOfRange; +} + +bool CREConstantRange::GetValue(int frame, float& valOut) const { + float val, min, max; + x4_val->GetValue(frame, val); + x8_min->GetValue(frame, min); + xc_max->GetValue(frame, max); + if (val > min && val < max) { + x10_inRange->GetValue(frame, valOut); + } else { + x14_outOfRange->GetValue(frame, valOut); + } + return false; +} + +CREExternalVar::CREExternalVar(CIntElement* a) : x4_a(a) {} + +CREExternalVar::~CREExternalVar() { delete x4_a; } + +bool CREExternalVar::GetValue(int frame, float& valOut) const { + int a = 0; + x4_a->GetValue(frame, a); + a = rstl::max_val(0, a); + a %= 16; + valOut = CParticleGlobals::GetCurrentParticleSystem()->x4_system->GetExternalVar(a); + return false; +} + +CRESubtract::CRESubtract(CRealElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CRESubtract::~CRESubtract() { + delete x4_a; + delete x8_b; +} + +bool CRESubtract::GetValue(int frame, float& valOut) const { + float a = 0.f, b = 0.f; + x4_a->GetValue(frame, a); + x8_b->GetValue(frame, b); + valOut = a - b; + return false; +} + +CREGetComponentRed::CREGetComponentRed(CColorElement* a) : x4_a(a) {} + +CREGetComponentRed::~CREGetComponentRed() { delete x4_a; } + +bool CREGetComponentRed::GetValue(int frame, float& valOut) const { + CColor color = CColor::Black(); + x4_a->GetValue(frame, color); + valOut = color.GetRed(); + return false; +} + +CREGetComponentGreen::CREGetComponentGreen(CColorElement* a) : x4_a(a) {} + +CREGetComponentGreen::~CREGetComponentGreen() { delete x4_a; } + +bool CREGetComponentGreen::GetValue(int frame, float& valOut) const { + CColor color = CColor::Black(); + x4_a->GetValue(frame, color); + valOut = color.GetGreen(); + return false; +} + +CREGetComponentBlue::CREGetComponentBlue(CColorElement* a) : x4_a(a) {} + +CREGetComponentBlue::~CREGetComponentBlue() { delete x4_a; } + +bool CREGetComponentBlue::GetValue(int frame, float& valOut) const { + CColor color = CColor::Black(); + x4_a->GetValue(frame, color); + valOut = color.GetBlue(); + return false; +} + +CREGetComponentAlpha::CREGetComponentAlpha(CColorElement* a) : x4_a(a) {} + +CREGetComponentAlpha::~CREGetComponentAlpha() { delete x4_a; } + +bool CREGetComponentAlpha::GetValue(int frame, float& valOut) const { + CColor color = CColor::Black(); + x4_a->GetValue(frame, color); + valOut = color.GetAlpha(); + return false; +} + +CREIntTimesReal::CREIntTimesReal(CIntElement* a, CRealElement* b) : x4_a(a), x8_b(b) {} + +CREIntTimesReal::~CREIntTimesReal() { + delete x4_a; + delete x8_b; +} + +bool CREIntTimesReal::GetValue(int frame, float& valOut) const { + int a = 0; + float b = 0.f; + x8_b->GetValue(frame, b); + x4_a->GetValue(frame, a); + valOut = b * static_cast< float >(a); + return false; +} diff --git a/src/WorldFormat/CMetroidModelInstance.cpp b/src/WorldFormat/CMetroidModelInstance.cpp index cc7f4ca8..3b30d03b 100644 --- a/src/WorldFormat/CMetroidModelInstance.cpp +++ b/src/WorldFormat/CMetroidModelInstance.cpp @@ -2,19 +2,20 @@ #include "Kyoto/Basics/CBasics.hpp" -const CTransform4f& TransformFromData(const void* ptr) { +static const CTransform4f& TransformFromData(const void* ptr) { return *static_cast< const CTransform4f* >(ptr); } -CAABox BoundingBoxFromData(const void* ptr) { - const CAABox* tmp = static_cast< const CAABox* >(ptr); - float minX = CBasics::SwapBytes(tmp->GetMinPoint().GetX()); - float minY = CBasics::SwapBytes(tmp->GetMinPoint().GetY()); - float minZ = CBasics::SwapBytes(tmp->GetMinPoint().GetZ()); - float maxX = CBasics::SwapBytes(tmp->GetMaxPoint().GetX()); - float maxY = CBasics::SwapBytes(tmp->GetMaxPoint().GetY()); - float maxZ = CBasics::SwapBytes(tmp->GetMaxPoint().GetZ()); - return CAABox(minX, minY, minZ, maxX, maxY, maxZ); +static CAABox BoundingBoxFromData(const void* ptr) { + float out[6]; + const float* tmp = reinterpret_cast< const float* >(ptr); + out[0] = CBasics::SwapBytes(tmp[0]); + out[1] = CBasics::SwapBytes(tmp[1]); + out[2] = CBasics::SwapBytes(tmp[2]); + out[3] = CBasics::SwapBytes(tmp[3]); + out[4] = CBasics::SwapBytes(tmp[4]); + out[5] = CBasics::SwapBytes(tmp[5]); + return *reinterpret_cast< const CAABox* >(out); } CMetroidModelInstance::CMetroidModelInstance(const void* header, const void* firstGeom, diff --git a/src/WorldFormat/CWorldLight.cpp b/src/WorldFormat/CWorldLight.cpp index 9ea7e879..ad8fc299 100644 --- a/src/WorldFormat/CWorldLight.cpp +++ b/src/WorldFormat/CWorldLight.cpp @@ -1,11 +1,9 @@ #include "WorldFormat/CWorldLight.hpp" #include "Kyoto/Streams/CInputStream.hpp" -// #include #include const CVector3f CWorldLight::kDefaultPosition = CVector3f(0.f, 0.f, 0.f); -// FORCEPADDING(sizeof(CVector3f)) kPadding; const CVector3f CWorldLight::kDefaultDirection = CVector3f(0.f, 1.f, 0.f); CWorldLight::CWorldLight(CInputStream& in)