summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorerihel <erihel@gmail.com>2014-02-02 01:51:14 +0100
committererihel <erihel@gmail.com>2014-02-02 01:51:14 +0100
commit93582536ded303f4c9c358ef9967deb07d638e54 (patch)
tree2ba781604f31af20b20fc43fa647491d4c82de32 /src
parentd84d38280b3ed706ff2371fc88e43a2a7245d3dd (diff)
parent70b18cc4c05398cd06558f4634937a70c2436546 (diff)
downloadcolobot-93582536ded303f4c9c358ef9967deb07d638e54.tar.gz
colobot-93582536ded303f4c9c358ef9967deb07d638e54.tar.bz2
colobot-93582536ded303f4c9c358ef9967deb07d638e54.zip
Merge branch 'dev' of github:colobot/colobot into dev
Diffstat (limited to 'src')
-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
4 files changed, 26 insertions, 7 deletions
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);