mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-06-08 11:13:29 +00:00
Add proper CRandom16 vars to factories
This commit is contained in:
parent
0260ebcd64
commit
1c5a86dcbf
@ -24,6 +24,7 @@ struct Application : boo::IApplicationCallback
|
|||||||
|
|
||||||
int appMain(boo::IApplication* app)
|
int appMain(boo::IApplication* app)
|
||||||
{
|
{
|
||||||
|
Zeus::detectCPU();
|
||||||
pshag::CElementGen::Initialize();
|
pshag::CElementGen::Initialize();
|
||||||
m_viewManager.init(app);
|
m_viewManager.init(app);
|
||||||
while (m_running)
|
while (m_running)
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include "CToken.hpp"
|
#include "CToken.hpp"
|
||||||
#include "CSimplePool.hpp"
|
#include "CSimplePool.hpp"
|
||||||
#include "CGenDescription.hpp"
|
#include "CGenDescription.hpp"
|
||||||
|
#include "CRandom16.hpp"
|
||||||
|
|
||||||
namespace pshag
|
namespace pshag
|
||||||
{
|
{
|
||||||
@ -849,6 +850,8 @@ CGenDescription* CParticleDataFactory::CreateGeneratorDescription(CInputStream&
|
|||||||
bool CParticleDataFactory::CreateGPSM(CGenDescription* fillDesc, CInputStream& in,
|
bool CParticleDataFactory::CreateGPSM(CGenDescription* fillDesc, CInputStream& in,
|
||||||
std::vector<TResId>& tracker, CSimplePool* resPool)
|
std::vector<TResId>& tracker, CSimplePool* resPool)
|
||||||
{
|
{
|
||||||
|
CRandom16 rand{99};
|
||||||
|
CGlobalRandom gr(rand);
|
||||||
FourCC clsId = GetClassID(in);
|
FourCC clsId = GetClassID(in);
|
||||||
while (clsId != SBIG('_END'))
|
while (clsId != SBIG('_END'))
|
||||||
{
|
{
|
||||||
|
@ -31,11 +31,12 @@ CElectricDescription* CParticleElectricDataFactory::CreateElectricDescription(CI
|
|||||||
|
|
||||||
bool CParticleElectricDataFactory::CreateELSM(CElectricDescription *desc, CInputStream &in, CSimplePool *resPool)
|
bool CParticleElectricDataFactory::CreateELSM(CElectricDescription *desc, CInputStream &in, CSimplePool *resPool)
|
||||||
{
|
{
|
||||||
CRandom16 rand;
|
CRandom16 rand{99};
|
||||||
|
CGlobalRandom gr{rand};
|
||||||
|
|
||||||
FourCC clsId = CPF::GetClassID(in);
|
FourCC clsId = CPF::GetClassID(in);
|
||||||
while (clsId != SBIG('_END'))
|
while (clsId != SBIG('_END'))
|
||||||
{
|
{
|
||||||
CGlobalRandom gr(rand);
|
|
||||||
switch(clsId)
|
switch(clsId)
|
||||||
{
|
{
|
||||||
case SBIG('LIFE'):
|
case SBIG('LIFE'):
|
||||||
@ -118,6 +119,16 @@ bool CParticleElectricDataFactory::CreateELSM(CElectricDescription *desc, CInput
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CParticleElectricDataFactory::LoadELSMTokens(CElectricDescription* desc)
|
||||||
|
{
|
||||||
|
if (desc->x40_SSWH.m_found)
|
||||||
|
desc->x40_SSWH.m_swoosh = desc->x40_SSWH.m_token.GetObj();
|
||||||
|
if (desc->x50_GPSM.m_found)
|
||||||
|
desc->x50_GPSM.m_gen = desc->x50_GPSM.m_token.GetObj();
|
||||||
|
if (desc->x60_EPSM.m_found)
|
||||||
|
desc->x60_EPSM.m_gen = desc->x60_EPSM.m_token.GetObj();
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<pshag::IObj> FParticleElecrticFactory(const pshag::SObjectTag &tag, pshag::CInputStream &in, const pshag::CVParamTransfer &vparms)
|
std::unique_ptr<pshag::IObj> FParticleElecrticFactory(const pshag::SObjectTag &tag, pshag::CInputStream &in, const pshag::CVParamTransfer &vparms)
|
||||||
{
|
{
|
||||||
CSimplePool* sp = static_cast<CSimplePool*>(static_cast<TObjOwnerParam<IObjectStore*>*>(vparms.GetObj())->GetParam());
|
CSimplePool* sp = static_cast<CSimplePool*>(static_cast<TObjOwnerParam<IObjectStore*>*>(vparms.GetObj())->GetParam());
|
||||||
|
@ -14,7 +14,7 @@ class CParticleElectricDataFactory
|
|||||||
{
|
{
|
||||||
static CElectricDescription* CreateElectricDescription(CInputStream& in, CSimplePool* resPool);
|
static CElectricDescription* CreateElectricDescription(CInputStream& in, CSimplePool* resPool);
|
||||||
static bool CreateELSM(CElectricDescription* desc, CInputStream& in, CSimplePool* resPool);
|
static bool CreateELSM(CElectricDescription* desc, CInputStream& in, CSimplePool* resPool);
|
||||||
static bool LoadELSMTokens(CElectricDescription* desc);
|
static void LoadELSMTokens(CElectricDescription* desc);
|
||||||
public:
|
public:
|
||||||
static CElectricDescription* GetGeneratorDesc(CInputStream& in, CSimplePool* resPool);
|
static CElectricDescription* GetGeneratorDesc(CInputStream& in, CSimplePool* resPool);
|
||||||
};
|
};
|
||||||
|
@ -28,7 +28,7 @@ CSwooshDescription*CParticleSwooshDataFactory::CreateGeneratorDescription(CInput
|
|||||||
|
|
||||||
bool CParticleSwooshDataFactory::CreateWPSM(CSwooshDescription* desc, CInputStream& in, CSimplePool* resPool)
|
bool CParticleSwooshDataFactory::CreateWPSM(CSwooshDescription* desc, CInputStream& in, CSimplePool* resPool)
|
||||||
{
|
{
|
||||||
CRandom16 rand;
|
CRandom16 rand{99};
|
||||||
FourCC clsId = CPF::GetClassID(in);
|
FourCC clsId = CPF::GetClassID(in);
|
||||||
while (clsId != SBIG('_END'))
|
while (clsId != SBIG('_END'))
|
||||||
{
|
{
|
||||||
|
@ -29,7 +29,8 @@ CWeaponDescription* CProjectileWeaponDataFactory::CreateGeneratorDescription(CIn
|
|||||||
|
|
||||||
bool CProjectileWeaponDataFactory::CreateWPSM(CWeaponDescription* desc, CInputStream& in, CSimplePool* resPool)
|
bool CProjectileWeaponDataFactory::CreateWPSM(CWeaponDescription* desc, CInputStream& in, CSimplePool* resPool)
|
||||||
{
|
{
|
||||||
CRandom16 rand;
|
CRandom16 rand{99};
|
||||||
|
CGlobalRandom gr{rand};
|
||||||
FourCC clsId = CPF::GetClassID(in);
|
FourCC clsId = CPF::GetClassID(in);
|
||||||
|
|
||||||
while(clsId != SBIG('_END'))
|
while(clsId != SBIG('_END'))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user