diff options
| author | Petr Mrázek | 2011-12-31 13:09:12 +0100 |
|---|---|---|
| committer | Petr Mrázek | 2011-12-31 13:09:12 +0100 |
| commit | f35cdb84cdeaed99c0bb291423ffbc05183fd35f (patch) | |
| tree | 84f910568748f97ed6f454e68b7b813687e0eb1a /library/PluginManager.cpp | |
| parent | 9db20bd84de2b31a3a34f775af9ce6320f37d75a (diff) | |
| parent | b652ec4132ad97b88dfd648303bf7a99267f1742 (diff) | |
| download | dfhack-f35cdb84cdeaed99c0bb291423ffbc05183fd35f.tar.gz dfhack-f35cdb84cdeaed99c0bb291423ffbc05183fd35f.tar.bz2 dfhack-f35cdb84cdeaed99c0bb291423ffbc05183fd35f.tar.xz | |
Merge https://github.com/angavrilov/dfhack
Conflicts:
library/Core.cpp
library/PluginManager.cpp
library/include/Core.h
library/include/PluginManager.h
library/modules/Gui.cpp
plugins/stockpiles.cpp
Diffstat (limited to 'library/PluginManager.cpp')
| -rw-r--r-- | library/PluginManager.cpp | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/library/PluginManager.cpp b/library/PluginManager.cpp index 29cc992b..9acd05aa 100644 --- a/library/PluginManager.cpp +++ b/library/PluginManager.cpp @@ -29,7 +29,6 @@ distribution. #include "Console.h" #include "DataDefs.h" -#include "df/viewscreen.h" using namespace DFHack; @@ -292,21 +291,22 @@ command_result Plugin::invoke( std::string & command, std::vector <std::string> CoreSuspender suspend(&c); df::viewscreen *top = c.getTopViewscreen(); - if ((cmd.viewscreen_type && !cmd.viewscreen_type->is_instance(top)) - || !cmd.guard(&c, top)) + if (!cmd.guard(&c, top)) { c.con.printerr("Could not invoke %s: unsuitable UI state.\n", command.c_str()); - cr = CR_FAILURE; + cr = CR_WRONG_USAGE; } - else + else { cr = cmd.function(&c, parameters); } } - else + else { cr = cmd.function(&c, parameters); } + if (cr == CR_WRONG_USAGE && !cmd.usage.empty()) + c.con << "Usage:\n" << cmd.usage << flush; break; } } @@ -325,20 +325,14 @@ bool Plugin::can_invoke_hotkey( std::string & command, df::viewscreen *top ) for (int i = 0; i < commands.size();i++) { PluginCommand &cmd = commands[i]; - if(cmd.name == command) { if (cmd.interactive) cr = false; else if (cmd.guard) - { - cr = (!cmd.viewscreen_type || cmd.viewscreen_type->is_instance(top)) - && cmd.guard(&c, top); - } - else - { + cr = cmd.guard(&c, top); + else cr = default_hotkey(&c, top); - } break; } } |
