Skip to content

Commit

Permalink
Added plugin callback OnPluginWorldSave
Browse files Browse the repository at this point in the history
  • Loading branch information
nickgammon committed Aug 5, 2010
1 parent 9f96adc commit 2499cf9
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 0 deletions.
1 change: 1 addition & 0 deletions OtherTypes.h
Expand Up @@ -959,6 +959,7 @@ class CPlugin :public CObject
DISPID m_dispid_plugin_disconnect ; // "OnPluginDisconnect"
DISPID m_dispid_plugin_close ; // "OnPluginClose"
DISPID m_dispid_plugin_save_state ; // "OnPluginSaveState"
DISPID m_dispid_plugin_world_save ; // "OnPluginWorldSave"
DISPID m_dispid_plugin_enable ; // "OnPluginEnable"
DISPID m_dispid_plugin_disable ; // "OnPluginDisable"
DISPID m_dispid_plugin_command ; // "OnPluginCommand"
Expand Down
20 changes: 20 additions & 0 deletions doc.cpp
Expand Up @@ -4945,6 +4945,26 @@ BOOL CMUSHclientDoc::DoSave(LPCTSTR lpszPathName, BOOL bReplace)
}
} // end of executing save script


// now do plugins "world save"
CPlugin * pSavedPlugin = m_CurrentPlugin;
m_CurrentPlugin = NULL;

// tell each plugin the world is saving
for (POSITION pluginpos = m_PluginList.GetHeadPosition(); pluginpos; )
{
CPlugin * pPlugin = m_PluginList.GetNext (pluginpos);

if (!(pPlugin->m_bEnabled)) // ignore disabled plugins
continue;

// see what the plugin makes of this,
pPlugin->ExecutePluginScript (ON_PLUGIN_WORLD_SAVE, pPlugin->m_dispid_plugin_world_save);
} // end of doing each plugin

m_CurrentPlugin = pSavedPlugin;


BOOL bSuccess = CDocument::DoSave (newName, bReplace);

if (bSuccess)
Expand Down
1 change: 1 addition & 0 deletions plugins.cpp
Expand Up @@ -34,6 +34,7 @@ CPlugin::CPlugin (CMUSHclientDoc * pDoc)
m_dispid_plugin_disconnect = DISPID_UNKNOWN;
m_dispid_plugin_close = DISPID_UNKNOWN;
m_dispid_plugin_save_state = DISPID_UNKNOWN;
m_dispid_plugin_world_save = DISPID_UNKNOWN;
m_dispid_plugin_enable = DISPID_UNKNOWN;
m_dispid_plugin_disable = DISPID_UNKNOWN;
m_dispid_plugin_command = DISPID_UNKNOWN;
Expand Down
1 change: 1 addition & 0 deletions stdafx.h
Expand Up @@ -490,6 +490,7 @@ void DeleteStyle (CStyle * pStyle, const char * filename, const long linenumber)
#define ON_PLUGIN_DISCONNECT "OnPluginDisconnect"
#define ON_PLUGIN_CLOSE "OnPluginClose"
#define ON_PLUGIN_SAVE_STATE "OnPluginSaveState"
#define ON_PLUGIN_WORLD_SAVE "OnPluginWorldSave"
#define ON_PLUGIN_ENABLE "OnPluginEnable"
#define ON_PLUGIN_DISABLE "OnPluginDisable"
#define ON_PLUGIN_COMMAND "OnPluginCommand"
Expand Down
2 changes: 2 additions & 0 deletions xml/xml_load_world.cpp
Expand Up @@ -427,6 +427,8 @@ LONGLONG iCounterFrequency = large_int_frequency.QuadPart;
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_CLOSE );
m_CurrentPlugin->m_dispid_plugin_save_state
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_SAVE_STATE);
m_CurrentPlugin->m_dispid_plugin_world_save
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_WORLD_SAVE);
m_CurrentPlugin->m_dispid_plugin_enable
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_ENABLE );
m_CurrentPlugin->m_dispid_plugin_disable
Expand Down

0 comments on commit 2499cf9

Please sign in to comment.