[colobot] 46/62: Save object lifetime and abstime
Didier Raboud
odyx at moszumanska.debian.org
Fri Nov 10 11:53:58 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 d357de14385fdf249e9c358fba35c2efaa9ff77e
Author: melex750 <melex750 at users.noreply.github.com>
Date: Tue Oct 24 05:12:19 2017 -0400
Save object lifetime and abstime
Fixes #1006
---
src/level/robotmain.cpp | 6 +++++-
src/object/old_object.cpp | 4 ++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp
index a92b10b..d55cd17 100644
--- a/src/level/robotmain.cpp
+++ b/src/level/robotmain.cpp
@@ -3689,7 +3689,7 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
// TODO: m_engine->TimeInit(); ??
m_input->ResetKeyStates();
m_time = 0.0f;
- m_gameTime = 0.0f;
+ if (m_sceneReadPath.empty()) m_gameTime = 0.0f;
m_gameTimeAbsolute = 0.0f;
m_autosaveLast = 0.0f;
m_infoUsed = 0;
@@ -4542,6 +4542,7 @@ bool CRobotMain::IOWriteScene(std::string filename, std::string filecbot, std::s
else
line->AddParam("chap", MakeUnique<CLevelParserParam>(m_levelChap));
line->AddParam("rank", MakeUnique<CLevelParserParam>(m_levelRank));
+ line->AddParam("gametime", MakeUnique<CLevelParserParam>(GetGameTime()));
levelParser.AddLine(std::move(line));
line = MakeUnique<CLevelParserLine>("Map");
@@ -4722,6 +4723,9 @@ CObject* CRobotMain::IOReadScene(std::string filename, std::string filecbot)
int objCounter = 0;
for (auto& line : levelParser.GetLines())
{
+ if (line->GetCommand() == "Mission")
+ m_gameTime = line->GetParam("gametime")->AsFloat(0.0f);
+
if (line->GetCommand() == "Map")
m_map->ZoomMap(line->GetParam("zoom")->AsFloat());
diff --git a/src/object/old_object.cpp b/src/object/old_object.cpp
index dbe92b3..247b5a1 100644
--- a/src/object/old_object.cpp
+++ b/src/object/old_object.cpp
@@ -1010,6 +1010,8 @@ void COldObject::Write(CLevelParserLine* line)
if ( m_virusTime != 0.0f )
line->AddParam("virusTime", MakeUnique<CLevelParserParam>(m_virusTime));
+ line->AddParam("lifetime", MakeUnique<CLevelParserParam>(m_aTime));
+
// Sets the parameters of the command line.
CLevelParserParamVec cmdline;
for(float value : GetCmdLine())
@@ -1144,6 +1146,8 @@ void COldObject::Read(CLevelParserLine* line)
m_bVirusMode = line->GetParam("virusMode")->AsBool(false);
m_virusTime = line->GetParam("virusTime")->AsFloat(0.0f);
+ m_aTime = line->GetParam("lifetime")->AsFloat(0.0f);
+
if ( m_motion != nullptr )
{
m_motion->Read(line);
--
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