Fix bogus cast resulting in reading random URL in particles
This commit is contained in:
parent
ba3027b6bb
commit
5c3c7afeae
@ -9,7 +9,7 @@
|
||||
#define COMPONENTCOUNT 8
|
||||
|
||||
scene::IParticleSystemSceneNode *ParticleSystemProxy::addParticleNode(
|
||||
bool withDefaultEmitter, ISceneNode* parent, s32 id,
|
||||
bool withDefaultEmitter, bool randomize_initial_y, ISceneNode* parent, s32 id,
|
||||
const core::vector3df& position,
|
||||
const core::vector3df& rotation,
|
||||
const core::vector3df& scale)
|
||||
@ -18,7 +18,7 @@ scene::IParticleSystemSceneNode *ParticleSystemProxy::addParticleNode(
|
||||
parent = irr_driver->getSceneManager()->getRootSceneNode();
|
||||
|
||||
IParticleSystemSceneNode* node = new ParticleSystemProxy(withDefaultEmitter,
|
||||
parent, irr_driver->getSceneManager(), id, position, rotation, scale);
|
||||
parent, irr_driver->getSceneManager(), id, position, rotation, scale, randomize_initial_y);
|
||||
node->drop();
|
||||
|
||||
return node;
|
||||
@ -28,8 +28,10 @@ ParticleSystemProxy::ParticleSystemProxy(bool createDefaultEmitter,
|
||||
ISceneNode* parent, scene::ISceneManager* mgr, s32 id,
|
||||
const core::vector3df& position,
|
||||
const core::vector3df& rotation,
|
||||
const core::vector3df& scale) : CParticleSystemSceneNode(createDefaultEmitter, parent, mgr, id, position, rotation, scale), m_alpha_additive(false), m_first_execution(true)
|
||||
const core::vector3df& scale,
|
||||
bool randomize_initial_y) : CParticleSystemSceneNode(createDefaultEmitter, parent, mgr, id, position, rotation, scale), m_alpha_additive(false), m_first_execution(true)
|
||||
{
|
||||
m_randomize_initial_y = randomize_initial_y;
|
||||
size_increase_factor = 0.;
|
||||
ParticleParams = nullptr;
|
||||
InitialValues = nullptr;
|
||||
@ -148,8 +150,6 @@ void ParticleSystemProxy::generateParticlesFromBoxEmitter(scene::IParticleBoxEmi
|
||||
|
||||
const core::vector3df& extent = emitter->getBox().getExtent();
|
||||
|
||||
bool randomize_initial_y = ((ParticleEmitter*)emitter)->randomizeInitialY();
|
||||
|
||||
for (unsigned i = 0; i < count; i++)
|
||||
{
|
||||
ParticleParams[i].PositionX = emitter->getBox().MinEdge.X + os::Randomizer::frand() * extent.X;
|
||||
@ -163,7 +163,7 @@ void ParticleSystemProxy::generateParticlesFromBoxEmitter(scene::IParticleBoxEmi
|
||||
ParticleParams[i].DirectionX, ParticleParams[i].DirectionY, ParticleParams[i].DirectionZ);
|
||||
memcpy(&(InitialValues[i].DirectionX), &(ParticleParams[i].DirectionX), 4 * sizeof(float));
|
||||
|
||||
if (randomize_initial_y)
|
||||
if (m_randomize_initial_y)
|
||||
InitialValues[i].PositionY = os::Randomizer::frand()*50.0f; // -100.0f;
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ protected:
|
||||
float m_color_from[3];
|
||||
float m_color_to[3];
|
||||
bool m_first_execution;
|
||||
bool m_randomize_initial_y;
|
||||
|
||||
GLuint texture;
|
||||
unsigned count;
|
||||
@ -56,7 +57,7 @@ private:
|
||||
void generateParticlesFromSphereEmitter(scene::IParticleSphereEmitter *);
|
||||
public:
|
||||
static IParticleSystemSceneNode *addParticleNode(
|
||||
bool withDefaultEmitter = true, ISceneNode* parent = 0, s32 id = -1,
|
||||
bool withDefaultEmitter = true, bool randomize_initial_y = false, ISceneNode* parent = 0, s32 id = -1,
|
||||
const core::vector3df& position = core::vector3df(0, 0, 0),
|
||||
const core::vector3df& rotation = core::vector3df(0, 0, 0),
|
||||
const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f));
|
||||
@ -65,7 +66,8 @@ public:
|
||||
ISceneNode* parent, scene::ISceneManager* mgr, s32 id,
|
||||
const core::vector3df& position,
|
||||
const core::vector3df& rotation,
|
||||
const core::vector3df& scale);
|
||||
const core::vector3df& scale,
|
||||
bool randomize_initial_y);
|
||||
~ParticleSystemProxy();
|
||||
|
||||
virtual void setEmitter(scene::IParticleEmitter* emitter);
|
||||
|
@ -450,7 +450,7 @@ void ParticleEmitter::setParticleType(const ParticleKind* type)
|
||||
else
|
||||
{
|
||||
if (m_is_glsl)
|
||||
m_node = ParticleSystemProxy::addParticleNode(m_is_glsl);
|
||||
m_node = ParticleSystemProxy::addParticleNode(m_is_glsl, true);
|
||||
else
|
||||
m_node = irr_driver->addParticleNode();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user