summaryrefslogtreecommitdiff
path: root/src/JSystem/JParticle/JPAKeyBlock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/JParticle/JPAKeyBlock.cpp')
-rw-r--r--src/JSystem/JParticle/JPAKeyBlock.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/JSystem/JParticle/JPAKeyBlock.cpp b/src/JSystem/JParticle/JPAKeyBlock.cpp
new file mode 100644
index 00000000..fdb1e8e6
--- /dev/null
+++ b/src/JSystem/JParticle/JPAKeyBlock.cpp
@@ -0,0 +1,25 @@
+//
+// Generated By: dol2asm
+// Translation Unit: JPAKeyBlock
+//
+
+#include "JSystem/JParticle/JPAKeyBlock.h"
+#include "JSystem/JParticle/JPAMath.h"
+
+/* 8027D730-8027D740 278070 0010+00 0/0 1/1 0/0 .text __ct__11JPAKeyBlockFPCUc */
+JPAKeyBlock::JPAKeyBlock(const u8* data)
+ : mDataStart(data)
+ , field_0x4(reinterpret_cast<const float*>(&data[0xC]))
+{
+}
+
+/* 8027D740-8027D7D4 278080 0094+00 0/0 1/1 0/0 .text calc__11JPAKeyBlockFf */
+f32 JPAKeyBlock::calc(float p1) {
+ if (mDataStart[0xB] != '\0') {
+ int v1 = (int)field_0x4[(mDataStart[9] - 1) * 4] + 1;
+ // p1 -= (v1 * ((int)p1 / v1));
+ int v2 = ((int)p1 / v1);
+ p1 = p1 - (v2 * v1);
+ }
+ return JPACalcKeyAnmValue(p1, mDataStart[9], field_0x4);
+}