summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------data0
-rw-r--r--src/app/app.cpp8
-rw-r--r--src/object/robotmain.cpp14
-rw-r--r--src/script/cmdtoken.cpp10
-rw-r--r--src/script/cmdtoken.h1
-rw-r--r--test/unit/CMakeLists.txt1
6 files changed, 27 insertions, 7 deletions
diff --git a/data b/data
-Subproject 530c8b1048dc484f015652bb97492b83b2d8d9c
+Subproject d58fb314ad6886f7bf57ece996861d050d993b1
diff --git a/src/app/app.cpp b/src/app/app.cpp
index a2162b1..70bec81 100644
--- a/src/app/app.cpp
+++ b/src/app/app.cpp
@@ -960,15 +960,15 @@ int CApplication::Run()
{
LogEvent(event);
- StartPerformanceCounter(PCNT_UPDATE_ENGINE);
- m_engine->FrameUpdate();
- StopPerformanceCounter(PCNT_UPDATE_ENGINE);
-
m_sound->FrameMove(m_relTime);
StartPerformanceCounter(PCNT_UPDATE_GAME);
m_robotMain->ProcessEvent(event);
StopPerformanceCounter(PCNT_UPDATE_GAME);
+
+ StartPerformanceCounter(PCNT_UPDATE_ENGINE);
+ m_engine->FrameUpdate();
+ StopPerformanceCounter(PCNT_UPDATE_ENGINE);
}
StopPerformanceCounter(PCNT_UPDATE_ALL);
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index ced1127..b1cbe52 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -81,6 +81,9 @@
#include <iomanip>
+#include <boost/regex.hpp>
+
+
template<> CRobotMain* CSingleton<CRobotMain>::m_instance = nullptr;
@@ -4050,9 +4053,14 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
continue;
}
- if (Cmd(line, "Title")) continue; // Ignore
- if (Cmd(line, "Resume")) continue; // Ignore
- if (Cmd(line, "ScriptName")) continue; // Ignore
+ static const boost::regex titleCmdRe("Title\\.[A-Z]");
+ static const boost::regex resumeCmdRe("Resume\\.[A-Z]");
+ static const boost::regex scriptNameCmdRe("ScriptName\.[A-Z]");
+
+ if (boost::regex_match(GetCmd(line), titleCmdRe)) continue; // Ignore
+ if (boost::regex_match(GetCmd(line), resumeCmdRe)) continue; // Ignore
+ if (boost::regex_match(GetCmd(line), scriptNameCmdRe)) continue; // Ignore
+
if (Cmd(line, "ScriptFile") && !resetObject)
{
diff --git a/src/script/cmdtoken.cpp b/src/script/cmdtoken.cpp
index da4a886..6393505 100644
--- a/src/script/cmdtoken.cpp
+++ b/src/script/cmdtoken.cpp
@@ -35,6 +35,16 @@ char* SkipSpace(char *line)
return line;
}
+std::string GetCmd(char* line)
+{
+ line = SkipSpace(line);
+
+ int len = 0;
+ for(char* x = line; *x != 0 && *x != ' ' && *x != '\t' && *x != '\n'; x++, len++);
+
+ return std::string(line, len);
+}
+
// Checks if a line contains a command.
bool Cmd(char *line, const char *token)
diff --git a/src/script/cmdtoken.h b/src/script/cmdtoken.h
index 24b592f..8a423c5 100644
--- a/src/script/cmdtoken.h
+++ b/src/script/cmdtoken.h
@@ -30,6 +30,7 @@
// Procedures.
+extern std::string GetCmd(char* line);
extern bool Cmd(char *line, const char *token);
extern char* SearchOp(char *line, const char *op);
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 278519f..269ffc2 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -23,6 +23,7 @@ configure_file(${SRC_DIR}/common/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/comm
# Code sources
set(COLOBOT_SOURCES
${SRC_DIR}/app/app.cpp
+${SRC_DIR}/app/pausemanager.cpp
${SRC_DIR}/app/system.cpp
${SRC_DIR}/app/${SYSTEM_CPP_MODULE}
${SRC_DIR}/app/system_other.cpp