diff --git a/Engine/source/T3D/fx/particleEmitter.cpp b/Engine/source/T3D/fx/particleEmitter.cpp index 79d2e6f1d..9a600a094 100644 --- a/Engine/source/T3D/fx/particleEmitter.cpp +++ b/Engine/source/T3D/fx/particleEmitter.cpp @@ -787,6 +787,7 @@ void ParticleEmitterData::allocPrimBuffer( S32 overrideSize ) { // calculate particle list size AssertFatal(particleDataBlocks.size() > 0, "Error, no particles found." ); + if (particleDataBlocks.empty()) return; U32 maxPartLife = particleDataBlocks[0]->lifetimeMS + particleDataBlocks[0]->lifetimeVarianceMS; for (S32 i = 1; i < particleDataBlocks.size(); i++) { diff --git a/Engine/source/T3D/player.cpp b/Engine/source/T3D/player.cpp index f6560c9da..9dd153574 100644 --- a/Engine/source/T3D/player.cpp +++ b/Engine/source/T3D/player.cpp @@ -3954,7 +3954,8 @@ void Player::updateActionThread() // Emit footpuffs. if (!footfallDustOverride && rInfo.t <= 0.5f && mWaterCoverage == 0.0f - && material && material->mShowDust ) + && material && material->mShowDust + && mDataBlock->footPuffEmitter != nullptr) { // New emitter every time for visibility reasons ParticleEmitter * emitter = new ParticleEmitter;