summaryrefslogtreecommitdiffstats
path: root/src/graphics
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-06-26 20:40:48 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2013-06-26 20:44:17 +0200
commitf8a6c6750a2a0196d204c02b98082df1d1b56473 (patch)
tree370c3f99c46901eae0b7ba2316bfff6c41245bd1 /src/graphics
parent26870551d726192e35a78f995c5b3feb07351577 (diff)
downloadcolobot-f8a6c6750a2a0196d204c02b98082df1d1b56473.tar.gz
colobot-f8a6c6750a2a0196d204c02b98082df1d1b56473.tar.bz2
colobot-f8a6c6750a2a0196d204c02b98082df1d1b56473.zip
Fix for #228
* "empty" objects were wrongly handled in CPyro
Diffstat (limited to 'src/graphics')
-rw-r--r--src/graphics/engine/pyro.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp
index 231bf51..d3e0405 100644
--- a/src/graphics/engine/pyro.cpp
+++ b/src/graphics/engine/pyro.cpp
@@ -1553,15 +1553,18 @@ void CPyro::ExploStart()
for (int i = 0; i < OBJECTMAXPART; i++)
{
int objRank = m_object->GetObjectRank(i);
- if (objRank == -1) continue;
+ if (objRank == -1) continue;
// TODO: refactor later to material change
int oldBaseObjRank = m_engine->GetObjectBaseRank(objRank);
- int newBaseObjRank = m_engine->CreateBaseObject();
- m_engine->CopyBaseObject(oldBaseObjRank, newBaseObjRank);
- m_engine->SetObjectBaseRank(objRank, newBaseObjRank);
+ if (oldBaseObjRank != -1)
+ {
+ int newBaseObjRank = m_engine->CreateBaseObject();
+ m_engine->CopyBaseObject(oldBaseObjRank, newBaseObjRank);
+ m_engine->SetObjectBaseRank(objRank, newBaseObjRank);
- m_engine->ChangeSecondTexture(objRank, "dirty04.png");
+ m_engine->ChangeSecondTexture(objRank, "dirty04.png");
+ }
Math::Vector pos = m_object->GetPosition(i);
@@ -1625,11 +1628,14 @@ void CPyro::BurnStart()
// TODO: refactor later to material change
int oldBaseObjRank = m_engine->GetObjectBaseRank(objRank);
- int newBaseObjRank = m_engine->CreateBaseObject();
- m_engine->CopyBaseObject(oldBaseObjRank, newBaseObjRank);
- m_engine->SetObjectBaseRank(objRank, newBaseObjRank);
+ if (oldBaseObjRank != -1)
+ {
+ int newBaseObjRank = m_engine->CreateBaseObject();
+ m_engine->CopyBaseObject(oldBaseObjRank, newBaseObjRank);
+ m_engine->SetObjectBaseRank(objRank, newBaseObjRank);
- m_engine->ChangeSecondTexture(objRank, "dirty04.png");
+ m_engine->ChangeSecondTexture(objRank, "dirty04.png");
+ }
}
m_engine->LoadTexture("dirty04.png");