diff options
author | Piotr Dziwinski <piotrdz@gmail.com> | 2014-01-18 19:20:40 +0100 |
---|---|---|
committer | Piotr Dziwinski <piotrdz@gmail.com> | 2014-01-18 19:24:08 +0100 |
commit | 181a4049309600ef31c2d22b3823429c6ee331df (patch) | |
tree | f05825c8b59bc1daf4ce37cb2b16407491d1b524 | |
parent | 652dc6081df8dc73bc9f57c031420e498be71451 (diff) | |
download | colobot-181a4049309600ef31c2d22b3823429c6ee331df.tar.gz colobot-181a4049309600ef31c2d22b3823429c6ee331df.tar.bz2 colobot-181a4049309600ef31c2d22b3823429c6ee331df.zip |
Fixed warnings about unknown commands in scene files
-rw-r--r-- | src/object/robotmain.cpp | 14 | ||||
-rw-r--r-- | src/script/cmdtoken.cpp | 10 | ||||
-rw-r--r-- | src/script/cmdtoken.h | 1 |
3 files changed, 22 insertions, 3 deletions
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); |