Skip to content

Commit

Permalink
Added plugin callback Handle_IAC_GA
Browse files Browse the repository at this point in the history
  • Loading branch information
nickgammon committed Feb 18, 2010
1 parent a2a7b11 commit a586ed2
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 4 deletions.
1 change: 1 addition & 0 deletions OtherTypes.h
Expand Up @@ -982,6 +982,7 @@ class CPlugin :public CObject
DISPID m_dispid_plugin_telnet_option; // "OnPluginTelnetOption"
DISPID m_dispid_plugin_telnet_request; // "OnPluginTelnetRequest"
DISPID m_dispid_plugin_telnet_subnegotiation; // "OnPluginTelnetSubnegotiation"
DISPID m_dispid_plugin_IAC_GA; // "OnPlugin_IAC_GA"
DISPID m_dispid_plugin_on_world_output_resized; // "OnPluginWorldOutputResized"
DISPID m_dispid_plugin_on_command_changed; // "OnPluginCommandChanged"

Expand Down
1 change: 1 addition & 0 deletions doc.h
Expand Up @@ -1292,6 +1292,7 @@ class CMUSHclientDoc : public CDocument
void Phase_COMPRESS (const unsigned char c);
void Phase_COMPRESS_WILL (const unsigned char c);
bool Handle_Telnet_Request (const int iNumber, const string sType);
void Handle_IAC_GA ();

void Handle_TELOPT_COMPRESS2 ();
void Handle_TELOPT_MUD_SPECIFIC ();
Expand Down
8 changes: 4 additions & 4 deletions mushview.cpp
Expand Up @@ -69,11 +69,11 @@ static char BASED_CODE THIS_FILE[] = __FILE__;
TTM_SETTITLEA, TTM_SETTITLEW,
TTM_POPUP, TTM_GETTITLE
*/
//#define TTM_SETTITLEA (WM_USER+32)
//#define TTM_SETTITLEW (WM_USER+33)
#ifndef TTM_SETTITLEA
#define TTM_SETTITLEA (WM_USER+32)
#endif

#define TTM_SETTITLE TTM_SETTITLEA
//#define TTM_POPUP (WM_USER+34)
//#define TTM_GETTITLE (WM_USER+35)
#define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME


Expand Down
1 change: 1 addition & 0 deletions plugins.cpp
Expand Up @@ -55,6 +55,7 @@ CPlugin::CPlugin (CMUSHclientDoc * pDoc)
m_dispid_plugin_telnet_option = DISPID_UNKNOWN;
m_dispid_plugin_telnet_request = DISPID_UNKNOWN;
m_dispid_plugin_telnet_subnegotiation = DISPID_UNKNOWN;
m_dispid_plugin_IAC_GA = DISPID_UNKNOWN;
m_dispid_plugin_partial_line = DISPID_UNKNOWN;
m_dispid_plugin_on_world_output_resized = DISPID_UNKNOWN;
m_dispid_plugin_on_command_changed = DISPID_UNKNOWN;
Expand Down
1 change: 1 addition & 0 deletions stdafx.h
Expand Up @@ -515,6 +515,7 @@ void DeleteStyle (CStyle * pStyle, const char * filename, const long linenumber)
#define ON_PLUGIN_TELNET_OPTION "OnPluginTelnetOption"
#define ON_PLUGIN_TELNET_REQUEST "OnPluginTelnetRequest"
#define ON_PLUGIN_TELNET_SUBNEGOTIATION "OnPluginTelnetSubnegotiation"
#define ON_PLUGIN_IAC_GA "OnPlugin_IAC_GA"
#define ON_PLUGIN_WORLD_OUTPUT_RESIZED "OnPluginWorldOutputResized"
#define ON_PLUGIN_TICK "OnPluginTick"
#define ON_PLUGIN_MOUSE_MOVED "OnPluginMouseMoved"
Expand Down
25 changes: 25 additions & 0 deletions telnet_phases.cpp
Expand Up @@ -88,6 +88,29 @@ void CMUSHclientDoc::Phase_ANSI (const unsigned char c)

// IAC - we have IAC x

void CMUSHclientDoc::Handle_IAC_GA ()
{
CPlugin * pSavedPlugin = m_CurrentPlugin;

// tell each plugin what we have received
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_IAC_GA,
pPlugin->m_dispid_plugin_IAC_GA);

} // end of doing each plugin

m_CurrentPlugin = pSavedPlugin;

} // end of CMUSHclientDoc::Handle_IAC_GA

void CMUSHclientDoc::Phase_IAC (unsigned char & c)
{
char * p;
Expand All @@ -100,12 +123,14 @@ void CMUSHclientDoc::Phase_IAC (unsigned char & c)
p = "EOR";
if (m_bConvertGAtoNewline)
new_c = '\n';
Handle_IAC_GA ();
break;
case GO_AHEAD :
m_phase = NONE;
p = "GA";
if (m_bConvertGAtoNewline)
new_c = '\n';
Handle_IAC_GA ();
break;

case SE : m_phase = NONE; p = "SE"; break;
Expand Down
2 changes: 2 additions & 0 deletions xml/xml_load_world.cpp
Expand Up @@ -474,6 +474,8 @@ LONGLONG iCounterFrequency = large_int_frequency.QuadPart;
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_TELNET_REQUEST);
m_CurrentPlugin->m_dispid_plugin_telnet_subnegotiation
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_TELNET_SUBNEGOTIATION);
m_CurrentPlugin->m_dispid_plugin_IAC_GA
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_IAC_GA);
m_CurrentPlugin->m_dispid_plugin_on_world_output_resized
= m_CurrentPlugin->GetPluginDispid (ON_PLUGIN_WORLD_OUTPUT_RESIZED);
m_CurrentPlugin->m_dispid_plugin_on_command_changed
Expand Down

0 comments on commit a586ed2

Please sign in to comment.