summaryrefslogtreecommitdiff
path: root/src/JSystem/JParticle/JPAKeyBlock.cpp
blob: c574618eee1d8ea876b9a2b0a594cd4851779bbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "JSystem/JSystem.h" // IWYU pragma: keep

#include "JSystem/JParticle/JPAKeyBlock.h"
#include "JSystem/JParticle/JPAMath.h"

JPAKeyBlock::JPAKeyBlock(const u8* data)
    : mDataStart(data)
    , field_0x4(reinterpret_cast<const float*>(&data[0xC]))
{
}

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