[colobot] 326/390: Added nullptr checks in CPyro, should fix #462
Didier Raboud
odyx at moszumanska.debian.org
Fri Jun 12 14:22:00 UTC 2015
This is an automated email from the git hooks/post-receive script.
odyx pushed a commit to branch upstream/latest
in repository colobot.
commit c4819062424c4505e7441f2e95a425fcc68487c0
Author: krzys-h <krzys_h at interia.pl>
Date: Sat Apr 18 11:33:39 2015 +0200
Added nullptr checks in CPyro, should fix #462
---
src/graphics/engine/pyro.cpp | 74 ++++++++++++++++++++++++++------------------
1 file changed, 44 insertions(+), 30 deletions(-)
diff --git a/src/graphics/engine/pyro.cpp b/src/graphics/engine/pyro.cpp
index b91f51c..350e618 100644
--- a/src/graphics/engine/pyro.cpp
+++ b/src/graphics/engine/pyro.cpp
@@ -627,7 +627,7 @@ bool CPyro::EventProcess(const Event &event)
m_time += event.rTime;
m_progress += event.rTime*m_speed;
- if (m_soundChannel != -1 && m_object != 0)
+ if (m_soundChannel != -1 && m_object != nullptr)
{
Math::Vector pos = m_object->GetPosition(0);
m_sound->Position(m_soundChannel, pos);
@@ -903,19 +903,22 @@ bool CPyro::EventProcess(const Event &event)
m_particle->CreateParticle(pos, speed, dim, PARTIGLINT, 2.0f);
}
- Math::Vector angle = m_object->GetAngle(0);
- angle.y = m_progress*20.0f;
- angle.x = sinf(m_progress*49.0f)*0.3f;
- angle.z = sinf(m_progress*47.0f)*0.2f;
- m_object->SetAngle(0, angle);
+ if(m_object != nullptr)
+ {
+ Math::Vector angle = m_object->GetAngle(0);
+ angle.y = m_progress*20.0f;
+ angle.x = sinf(m_progress*49.0f)*0.3f;
+ angle.z = sinf(m_progress*47.0f)*0.2f;
+ m_object->SetAngle(0, angle);
- Math::Vector pos = m_pos;
- pos.y += factor;
- m_object->SetPosition(0, pos);
+ Math::Vector pos = m_pos;
+ pos.y += factor;
+ m_object->SetPosition(0, pos);
- if ( m_progress > 0.85f )
- {
- m_object->SetZoom(0, 1.0f-(m_progress-0.85f)/0.15f);
+ if ( m_progress > 0.85f )
+ {
+ m_object->SetZoom(0, 1.0f-(m_progress-0.85f)/0.15f);
+ }
}
}
@@ -939,12 +942,15 @@ bool CPyro::EventProcess(const Event &event)
m_particle->CreateParticle(pos, speed, dim, PARTIGLINT, 2.0f, 0.0f, 0.0f);
}
- Math::Vector angle = m_object->GetAngle(0);
- angle.x = sinf(m_progress*49.0f)*0.3f*(1.0f-m_progress);
- angle.z = sinf(m_progress*47.0f)*0.2f*(1.0f-m_progress);
- m_object->SetAngle(0, angle);
+ if(m_object != nullptr)
+ {
+ Math::Vector angle = m_object->GetAngle(0);
+ angle.x = sinf(m_progress*49.0f)*0.3f*(1.0f-m_progress);
+ angle.z = sinf(m_progress*47.0f)*0.2f*(1.0f-m_progress);
+ m_object->SetAngle(0, angle);
- m_object->SetZoom(0, m_progress);
+ m_object->SetZoom(0, m_progress);
+ }
}
if ( m_type == PT_FLDELETE )
@@ -967,13 +973,16 @@ bool CPyro::EventProcess(const Event &event)
m_particle->CreateParticle(pos, speed, dim, PARTIGLINT, 2.0f, 0.0f, 0.5f);
}
- Math::Vector angle = m_object->GetAngle(0);
- angle.y = m_progress*20.0f;
- angle.x = sinf(m_progress*49.0f)*0.3f;
- angle.z = sinf(m_progress*47.0f)*0.2f;
- m_object->SetAngle(0, angle);
+ if(m_object != nullptr)
+ {
+ Math::Vector angle = m_object->GetAngle(0);
+ angle.y = m_progress*20.0f;
+ angle.x = sinf(m_progress*49.0f)*0.3f;
+ angle.z = sinf(m_progress*47.0f)*0.2f;
+ m_object->SetAngle(0, angle);
- m_object->SetZoom(0, 1.0f-m_progress);
+ m_object->SetZoom(0, 1.0f-m_progress);
+ }
}
if ( m_type == PT_RESET )
@@ -1008,14 +1017,17 @@ bool CPyro::EventProcess(const Event &event)
duration*0.9f, 0.7f);
}
- Math::Vector angle = m_object->GetResetAngle();
- m_object->SetAngleY(0, angle.y-powf((1.0f-m_progress)*5.0f, 2.0f));
- m_object->SetZoom(0, m_progress);
+ if(m_object != nullptr)
+ {
+ Math::Vector angle = m_object->GetResetAngle();
+ m_object->SetAngleY(0, angle.y-powf((1.0f-m_progress)*5.0f, 2.0f));
+ m_object->SetZoom(0, m_progress);
+ }
}
if ( m_type == PT_FINDING )
{
- if ( m_object != 0 &&
+ if ( m_object != nullptr &&
m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time )
{
m_lastParticle = m_time;
@@ -1039,7 +1051,7 @@ bool CPyro::EventProcess(const Event &event)
}
if ( (m_type == PT_BURNT || m_type == PT_BURNO) &&
- m_object != 0 )
+ m_object != nullptr )
{
if ( m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time )
{
@@ -1103,7 +1115,8 @@ bool CPyro::EventProcess(const Event &event)
}
}
- if ( m_type == PT_WIN )
+ if ( m_type == PT_WIN &&
+ m_object != nullptr )
{
if ( m_lastParticle+m_engine->ParticleAdapt(0.05f) <= m_time )
{
@@ -1124,7 +1137,8 @@ bool CPyro::EventProcess(const Event &event)
}
}
- if ( m_type == PT_LOST )
+ if ( m_type == PT_LOST &&
+ m_object != nullptr )
{
if ( m_lastParticle+m_engine->ParticleAdapt(0.10f) <= m_time )
{
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git
More information about the Pkg-games-commits
mailing list