diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/app/app.cpp | 8 | ||||
-rw-r--r-- | src/object/robotmain.cpp | 14 | ||||
-rw-r--r-- | src/script/cmdtoken.cpp | 10 | ||||
-rw-r--r-- | src/script/cmdtoken.h | 1 |
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); |