diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-02-05 16:37:36 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-02-05 16:37:36 (GMT) |
| commit | 7ae5eaab79a41f31b633ca6f1bfb0dbae2fccb90 (patch) | |
| tree | b76fc14cca5e19c5482209f34131973ad1f80e6a /src/cat/CommandInterface.cpp | |
| parent | 8024caec55ff1b93eefe50663d4ddf63934f8d63 (diff) | |
| download | powder-7ae5eaab79a41f31b633ca6f1bfb0dbae2fccb90.zip powder-7ae5eaab79a41f31b633ca6f1bfb0dbae2fccb90.tar.gz | |
Started intrepreter for tpt script and various things for console
Diffstat (limited to 'src/cat/CommandInterface.cpp')
| -rw-r--r-- | src/cat/CommandInterface.cpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/cat/CommandInterface.cpp b/src/cat/CommandInterface.cpp new file mode 100644 index 0000000..485a029 --- /dev/null +++ b/src/cat/CommandInterface.cpp @@ -0,0 +1,107 @@ +/* + * Kitty.cpp + * + * Created on: Feb 2, 2012 + * Author: Simon + */ + +#include <iostream> +#include <string> +#include <string.h> +#include "CommandInterface.h" +#include "game/GameModel.h" + +CommandInterface::CommandInterface() { +} + +void CommandInterface::AttachGameModel(GameModel * m) +{ + this->m = m; +} + +int CommandInterface::Command(std::string command) +{ + lastError = "No interpreter"; + return -1; +} + +std::string CommandInterface::FormatCommand(std::string command) +{ + return command; +} + +int CommandInterface::GetPropertyOffset(std::string key_, FormatType & format) +{ + char * key = (char *)key_.c_str(); + int offset; + if (strcmp(key, "type")==0){ + offset = offsetof(Particle, type); + format = FormatInt; + } else if (strcmp(key, "life")==0){ + offset = offsetof(Particle, life); + format = FormatInt; + } else if (strcmp(key, "ctype")==0){ + offset = offsetof(Particle, ctype); + format = FormatInt; + } else if (strcmp(key, "temp")==0){ + offset = offsetof(Particle, temp); + format = FormatFloat; + } else if (strcmp(key, "tmp")==0){ + offset = offsetof(Particle, tmp); + format = FormatInt; + } else if (strcmp(key, "tmp2")==0){ + offset = offsetof(Particle, tmp2); + format = FormatInt; + } else if (strcmp(key, "vy")==0){ + offset = offsetof(Particle, vy); + format = FormatFloat; + } else if (strcmp(key, "vx")==0){ + offset = offsetof(Particle, vx); + format = FormatFloat; + } else if (strcmp(key, "x")==0){ + offset = offsetof(Particle, x); + format = FormatFloat; + } else if (strcmp(key, "y")==0){ + offset = offsetof(Particle, y); + format = FormatFloat; + } else if (strcmp(key, "dcolour")==0){ + offset = offsetof(Particle, dcolour); + format = FormatInt; + } else if (strcmp(key, "dcolor")==0){ + offset = offsetof(Particle, dcolour); + format = FormatInt; + } else { + offset = -1; + } + return offset; +} + +int CommandInterface::GetParticleType(std::string type) +{ + int i = -1; + char * txt = (char*)type.c_str(); + + //Scope + part_type *ptypes = m->GetSimulation()->ptypes; + + // alternative names for some elements + if (strcasecmp(txt,"C4")==0) i = PT_PLEX; + else if (strcasecmp(txt,"C5")==0) i = PT_C5; + else if (strcasecmp(txt,"NONE")==0) i = PT_NONE; + for (i=1; i<PT_NUM; i++) { + if (strcasecmp(txt, ptypes[i].name)==0 && ptypes[i].enabled) + { + return i; + } + } + return i; +} + +std::string CommandInterface::GetLastError() +{ + return lastError; +} + +CommandInterface::~CommandInterface() { +} + |
