2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 02:27:43 +00:00

More constructor RE

This commit is contained in:
2016-03-05 18:55:09 -08:00
parent d85c9ecfa8
commit b0873ccc55
2 changed files with 87 additions and 17 deletions

View File

@@ -1,16 +1,56 @@
#include "CParticleElectric.hpp"
#include "CElectricDescription.hpp"
#include "CGenDescription.hpp"
#include "CSwooshDescription.hpp"
#include "CElectricDescription.hpp"
#include "CParticleSwoosh.hpp"
#include "CElementGen.hpp"
#include "Graphics/CModel.hpp"
#include "Graphics/CGraphics.hpp"
namespace urde
{
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& desc)
: x1c_elecDesc(desc)
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& token)
: x1c_elecDesc(token)
{
x438_24_x450_24 = true;
/* x438_28_x450_28 = true; demo */
x450_29 = true; // are 28 and 29 the same between retail and demo?
CElectricDescription* desc = x1c_elecDesc.GetObj();
if (desc->x10_SSEG)
desc->x10_SSEG->GetValue(x28_currentFrame, x150_SSEG);
else
{
x150_SSEG++;
x154_SCNT = 1;
}
if (desc->xc_SCNT)
desc->xc_SCNT->GetValue(x28_currentFrame, x154_SCNT);
std::max(0, std::min(x154_SCNT, 32));
if (desc->x0_LIFE)
desc->x0_LIFE->GetValue(x28_currentFrame, x2c_LIFE);
else
x2c_LIFE = 0x7FFFFF;
/* TODO: figure this out more */
if (desc->x40_SSWH.m_found)
{
x438_27_x450_27 = true;
//x1e0_SSWH.reset(new CParticleSwoosh(desc->x40_SSWH.m_token
}
if (desc->x50_GPSM.m_found)
{
x438_25_x450_25 = true;
//x400_GPSM.reset(new CElementGen(desc->x50_GPSM.m_token
}
if (desc->x60_EPSM.m_found)
{
x438_26_x450_26 = true;
//x410_GPSM.reset(new CElementGen(desc->x60_EPSM.m_token
}
}
void CParticleElectric::SetupLineGXMaterial()
@@ -54,38 +94,38 @@ void CParticleElectric::Render()
void CParticleElectric::SetOrientation(const zeus::CTransform& orientation)
{
x44_orientation = orientation;
x438_28 = true;
x438_28_x450_28 = true;
}
void CParticleElectric::SetTranslation(const zeus::CVector3f& translation)
{
x38_translation = translation;
x438_28 = true;
x438_28_x450_28 = true;
}
void CParticleElectric::SetGlobalOrientation(const zeus::CTransform& orientation)
{
xb0_globalOrientation = orientation;
x438_28 = true;
x438_28_x450_28 = true;
}
void CParticleElectric::SetGlobalTranslation(const zeus::CVector3f& translation)
{
xa4_globalTranslation = translation;
x438_28 = true;
x438_28_x450_28 = true;
}
void CParticleElectric::SetGlobalScale(const zeus::CVector3f& scale)
{
xe0_globalScale = scale;
x438_28 = true;
x438_28_x450_28 = true;
}
void CParticleElectric::SetLocalScale(const zeus::CVector3f& scale)
{
xec_localScale = scale;
x438_28 = true;
if (x438_26)
x438_28_x450_28 = true;
if (x438_26_x450_26)
{
}