2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 23:47:42 +00:00

Particle POI fix, implement ORNT mode for particles

This commit is contained in:
Jack Andersen
2018-05-12 18:09:11 -10:00
parent 41034fefda
commit faf0ac7d27
7 changed files with 250 additions and 108 deletions

View File

@@ -126,37 +126,36 @@ void CAnimSourceReaderBase::UpdatePOIStates()
const std::vector<CParticlePOINode>& particleNodes = x4_sourceInfo->GetParticlePOIStream();
const std::vector<CSoundPOINode>& soundNodes = x4_sourceInfo->GetSoundPOIStream();
for (const CBoolPOINode& node : boolNodes)
while (x14_passedBoolCount < boolNodes.size() &&
boolNodes[x14_passedBoolCount].GetTime() <= xc_curTime)
{
if (node.GetTime() > xc_curTime)
break;
if (node.GetIndex() != -1)
auto& node = boolNodes[x14_passedBoolCount];
if (node.GetIndex() >= 0)
x24_boolStates[node.GetIndex()].second = node.GetValue();
++x14_passedBoolCount;
}
for (const CInt32POINode& node : int32Nodes)
while (x18_passedIntCount < int32Nodes.size() &&
int32Nodes[x18_passedIntCount].GetTime() <= xc_curTime)
{
if (node.GetTime() > xc_curTime)
break;
if (node.GetIndex() != -1)
auto& node = int32Nodes[x18_passedIntCount];
if (node.GetIndex() >= 0)
x34_int32States[node.GetIndex()].second = node.GetValue();
++x18_passedIntCount;
}
for (const CParticlePOINode& node : particleNodes)
while (x1c_passedParticleCount < particleNodes.size() &&
particleNodes[x1c_passedParticleCount].GetTime() <= xc_curTime)
{
if (node.GetTime() > xc_curTime)
break;
if (node.GetIndex() != -1)
auto& node = particleNodes[x1c_passedParticleCount];
if (node.GetIndex() >= 0)
x44_particleStates[node.GetIndex()].second = node.GetParticleData().GetParentedMode();
++x1c_passedParticleCount;
}
for (const CSoundPOINode& node : soundNodes)
while (x20_passedSoundCount < soundNodes.size() &&
soundNodes[x20_passedSoundCount].GetTime() <= xc_curTime)
{
if (node.GetTime() > xc_curTime)
break;
++x20_passedSoundCount;
}
}