diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-10-16 18:21:50 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-10-16 18:21:50 +0300 |
commit | 05942467b37990f38fc80923f3d9ec63b160ad92 (patch) | |
tree | 3c6d3c3f55f83797d0a6444f1ddbd811267eb75d /src/particle | |
parent | b6e4d73c64444efa7c7bd10f09926564457ac251 (diff) | |
download | manaverse-05942467b37990f38fc80923f3d9ec63b160ad92.tar.gz manaverse-05942467b37990f38fc80923f3d9ec63b160ad92.tar.bz2 manaverse-05942467b37990f38fc80923f3d9ec63b160ad92.tar.xz manaverse-05942467b37990f38fc80923f3d9ec63b160ad92.zip |
Add missing checks.
Diffstat (limited to 'src/particle')
-rw-r--r-- | src/particle/particle.cpp | 16 | ||||
-rw-r--r-- | src/particle/particleemitter.cpp | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/particle/particle.cpp b/src/particle/particle.cpp index ed8db2d27..2ad4fe728 100644 --- a/src/particle/particle.cpp +++ b/src/particle/particle.cpp @@ -329,8 +329,12 @@ Particle *Particle::addEffect(const std::string &particleEffectFile, // Image else if ((node = XML::findFirstChildByName(effectChildNode, "image"))) { - std::string imageSrc = reinterpret_cast<const char*>( - node->xmlChildrenNode->content); + std::string imageSrc; + if (node->xmlChildrenNode) + { + imageSrc = reinterpret_cast<const char*>( + node->xmlChildrenNode->content); + } if (!imageSrc.empty() && !dyePalettes.empty()) Dye::instantiate(imageSrc, dyePalettes); Image *const img = resman->getImage(imageSrc); @@ -375,8 +379,12 @@ Particle *Particle::addEffect(const std::string &particleEffectFile, } else if (xmlNameEqual(emitterNode, "deatheffect")) { - const std::string deathEffect = reinterpret_cast<const char*>( - emitterNode->xmlChildrenNode->content); + std::string deathEffect; + if (node->xmlChildrenNode) + { + deathEffect = reinterpret_cast<const char*>( + emitterNode->xmlChildrenNode->content); + } char deathEffectConditions = 0x00; if (XML::getBoolProperty(emitterNode, "on-floor", true)) diff --git a/src/particle/particleemitter.cpp b/src/particle/particleemitter.cpp index 496372a64..38462aeb6 100644 --- a/src/particle/particleemitter.cpp +++ b/src/particle/particleemitter.cpp @@ -322,6 +322,8 @@ ParticleEmitter::ParticleEmitter(const XmlNodePtrConst emitterNode, } else if (xmlNameEqual(propertyNode, "deatheffect")) { + if (!propertyNode->xmlChildrenNode) + continue; mDeathEffect = reinterpret_cast<const char*>( propertyNode->xmlChildrenNode->content); mDeathEffectConditions = 0x00; |