diff options
| author | Petr Mrázek | 2011-06-27 02:13:01 +0200 |
|---|---|---|
| committer | Petr Mrázek | 2011-06-27 02:13:01 +0200 |
| commit | 00ddb45dbdeaa1765b0433903f7e48078417dbe5 (patch) | |
| tree | d642e8bde83f169ef84237dd77158b0d1dd11ef0 /library/PluginManager.cpp | |
| parent | 722531f590a9f099b671c641d4c5afe3a2658b20 (diff) | |
| download | dfhack-00ddb45dbdeaa1765b0433903f7e48078417dbe5.tar.gz dfhack-00ddb45dbdeaa1765b0433903f7e48078417dbe5.tar.bz2 dfhack-00ddb45dbdeaa1765b0433903f7e48078417dbe5.tar.xz | |
Added optional plugin_onupdate function, called each Core update.
Diffstat (limited to 'library/PluginManager.cpp')
| -rw-r--r-- | library/PluginManager.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/library/PluginManager.cpp b/library/PluginManager.cpp index 072c6bae..bde021ba 100644 --- a/library/PluginManager.cpp +++ b/library/PluginManager.cpp @@ -76,6 +76,7 @@ Plugin::Plugin(Core * core, const std::string & file) plugin_init = 0; plugin_shutdown = 0; plugin_status = 0; + plugin_onupdate = 0; loaded = false; DFLibrary * plug = OpenPlugin(file.c_str()); if(!plug) @@ -98,6 +99,7 @@ Plugin::Plugin(Core * core, const std::string & file) return; } plugin_status = (command_result (*)(Core *, std::string &)) LookupPlugin(plug, "plugin_status"); + plugin_onupdate = (command_result (*)(Core *)) LookupPlugin(plug, "plugin_onupdate"); plugin_shutdown = (command_result (*)(Core *)) LookupPlugin(plug, "plugin_shutdown"); name = _PlugName(); plugin_lib = plug; @@ -187,3 +189,15 @@ command_result PluginManager::InvokeCommand( std::string & command, std::vector } return CR_NOT_IMPLEMENTED; } + +void PluginManager::OnUpdate( void ) +{ + Core * c = &Core::getInstance(); + for(int i = 0; i < all_plugins.size(); i++) + { + if(all_plugins[i]->plugin_onupdate) + { + all_plugins[i]->plugin_onupdate(c); + } + } +} |
