diff options
Diffstat (limited to 'Minecraft.Client/ParticleEngine.cpp')
| -rw-r--r-- | Minecraft.Client/ParticleEngine.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Minecraft.Client/ParticleEngine.cpp b/Minecraft.Client/ParticleEngine.cpp index 7fe26063..f8a8ec23 100644 --- a/Minecraft.Client/ParticleEngine.cpp +++ b/Minecraft.Client/ParticleEngine.cpp @@ -17,7 +17,7 @@ ResourceLocation ParticleEngine::PARTICLES_LOCATION = ResourceLocation(TN_PARTIC ParticleEngine::ParticleEngine(Level *level, Textures *textures) { -// if (level != NULL) // 4J - removed - we want level to be initialised to *something* +// if (level != nullptr) // 4J - removed - we want level to be initialised to *something* { this->level = level; } @@ -83,6 +83,11 @@ void ParticleEngine::tick() void ParticleEngine::render(shared_ptr<Entity> player, float a, int list) { + if (player == nullptr) + { + return; + } + // 4J - change brought forward from 1.2.3 float xa = Camera::xa; float za = Camera::za; @@ -188,8 +193,8 @@ void ParticleEngine::renderLit(shared_ptr<Entity> player, float a, int list) void ParticleEngine::setLevel(Level *level) { this->level = level; - // 4J - we've now got a set of particle vectors for each dimension, and only clearing them when its game over & the level is set to NULL - if( level == NULL ) + // 4J - we've now got a set of particle vectors for each dimension, and only clearing them when its game over & the level is set to nullptr + if( level == nullptr ) { for( int l = 0; l < 3; l++ ) { @@ -218,7 +223,7 @@ void ParticleEngine::destroy(int x, int y, int z, int tid, int data) double yp = y + (yy + 0.5) / SD; double zp = z + (zz + 0.5) / SD; int face = random->nextInt(6); - add(( shared_ptr<TerrainParticle>(new TerrainParticle(level, xp, yp, zp, xp - x - 0.5f, yp - y - 0.5f, zp - z - 0.5f, tile, face, data, textures) ) )->init(x, y, z, data)); + add((std::make_shared<TerrainParticle>(level, xp, yp, zp, xp - x - 0.5f, yp - y - 0.5f, zp - z - 0.5f, tile, face, data, textures))->init(x, y, z, data)); } } @@ -237,7 +242,7 @@ void ParticleEngine::crack(int x, int y, int z, int face) if (face == 3) zp = z + tile->getShapeZ1() + r; if (face == 4) xp = x + tile->getShapeX0() - r; if (face == 5) xp = x + tile->getShapeX1() + r; - add(( shared_ptr<TerrainParticle>(new TerrainParticle(level, xp, yp, zp, 0, 0, 0, tile, face, level->getData(x, y, z), textures) ) )->init(x, y, z, level->getData(x, y, z))->setPower(0.2f)->scale(0.6f)); + add((std::make_shared<TerrainParticle>(level, xp, yp, zp, 0, 0, 0, tile, face, level->getData(x, y, z), textures))->init(x, y, z, level->getData(x, y, z))->setPower(0.2f)->scale(0.6f)); } |
