[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