Skip to content

Particle systems cause game logic / CRC changes #2717

@stephanmeesters

Description

@stephanmeesters

Ideally particle systems are purely visual and disabling them should not affect game logic. However currently this does not appear to be the case.

Example:

ParticleSystem *ParticleSystemManager::createParticleSystem( const ParticleSystemTemplate *sysTemplate, Bool createSlaves )
{
	return nullptr; // <-- disable particles

	// sanity
	if (sysTemplate == nullptr)
		return nullptr;

	m_uniqueSystemID = (ParticleSystemID)((UnsignedInt)m_uniqueSystemID + 1);
	ParticleSystem *sys = newInstance(ParticleSystem)( sysTemplate, m_uniqueSystemID, createSlaves );
	return sys;
}

This causes mismatching in Golden Replay #1.

I could trace this back to TransitionDamageFX, by allowing particles to be created there but nowhere else, but this moved the mismatch just further along to another frame, so there are multiple causes.

Issue also happens in a win32 replay.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething is not working right, typically is user facingMajorSeverity: Minor < Major < Critical < Blocker

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions