[colobot] 79/100: Fix rendering glasses in FPP camera, closes #775 (#959)
Didier Raboud
odyx at moszumanska.debian.org
Thu Jun 1 18:10:21 UTC 2017
This is an automated email from the git hooks/post-receive script.
odyx pushed a commit to branch debian/master
in repository colobot.
commit 417301ff061e4ed6b74e4c360f6878e6d0d5cb39
Author: MatiRg <MatiRg at users.noreply.github.com>
Date: Tue May 23 18:57:41 2017 +0200
Fix rendering glasses in FPP camera, closes #775 (#959)
---
src/object/motion/motionhuman.cpp | 21 +++++++++++++++++----
src/object/motion/motionhuman.h | 1 +
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/object/motion/motionhuman.cpp b/src/object/motion/motionhuman.cpp
index cd70d45..99469a9 100644
--- a/src/object/motion/motionhuman.cpp
+++ b/src/object/motion/motionhuman.cpp
@@ -71,6 +71,7 @@ CMotionHuman::CMotionHuman(COldObject* object)
m_time = 0.0f;
m_tired = 0.0f;
m_bDisplayPerso = false;
+ m_glassesRank = -1;
}
// Object's constructor.
@@ -198,12 +199,12 @@ void CMotionHuman::Create(Math::Vector pos, float angle, ObjectType type,
glasses = m_main->GetGamerGlasses();
if ( glasses != 0 && type == OBJECT_HUMAN )
{
- rank = m_engine->CreateObject();
- m_engine->SetObjectType(rank, Gfx::ENG_OBJTYPE_DESCENDANT);
- m_object->SetObjectRank(15, rank);
+ m_glassesRank = m_engine->CreateObject();
+ m_engine->SetObjectType(m_glassesRank, Gfx::ENG_OBJTYPE_DESCENDANT);
+ m_object->SetObjectRank(15, m_glassesRank);
m_object->SetObjectParent(15, 1);
sprintf(filename, "human2g%d.mod", glasses);
- modelManager->AddModelReference(filename, false, rank);
+ modelManager->AddModelReference(filename, false, m_glassesRank);
}
// Creates the right arm.
@@ -652,6 +653,18 @@ bool CMotionHuman::EventFrame(const Event &event)
m_object->SetCirVibration(Math::Vector(0.0f, m_main->GetPersoAngle()+0.2f, 0.0f));
}
+ if ( m_glassesRank != -1 )
+ {
+ if ( m_camera->GetType() == Gfx::CAM_TYPE_ONBOARD )
+ {
+ m_engine->SetObjectDrawWorld(m_glassesRank, false);
+ }
+ else
+ {
+ m_engine->SetObjectDrawWorld(m_glassesRank, true);
+ }
+ }
+
bSwim = m_physics->GetSwim();
rot = m_physics->GetCirMotionY(MO_MOTSPEED);
diff --git a/src/object/motion/motionhuman.h b/src/object/motion/motionhuman.h
index e0bb981..9449ed2 100644
--- a/src/object/motion/motionhuman.h
+++ b/src/object/motion/motionhuman.h
@@ -91,4 +91,5 @@ protected:
float m_time;
float m_tired;
bool m_bDisplayPerso;
+ int m_glassesRank;
};
--
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