diff --git a/saco/cmdwindow.cpp b/saco/cmdwindow.cpp index 757c763..3e32830 100644 --- a/saco/cmdwindow.cpp +++ b/saco/cmdwindow.cpp @@ -14,3 +14,15 @@ void CCmdWindow::AddDefaultCmdProc(CMDPROC cmdDefault) } //---------------------------------------------------- + +void CCmdWindow::AddCmdProc(PCHAR szCmdName, CMDPROC cmdHandler) +{ + if(m_iCmdCount < MAX_CMDS && (strlen(szCmdName) < MAX_CMD_STRLEN)) { + m_pCmds[m_iCmdCount] = cmdHandler; + strcpy(m_szCmdNames[m_iCmdCount],szCmdName); + m_iCmdCount++; + } +} + +//---------------------------------------------------- + diff --git a/saco/cmdwindow.h b/saco/cmdwindow.h index 446493d..5e2421f 100644 --- a/saco/cmdwindow.h +++ b/saco/cmdwindow.h @@ -1,15 +1,21 @@ #pragma once +#define MAX_CMDS 144 +#define MAX_CMD_STRLEN 32 + typedef void (__cdecl *CMDPROC)(PCHAR); class CCmdWindow // size: 6908 { private: - char _gap0[6908]; public: + CMDPROC m_pCmds[MAX_CMDS]; + CHAR m_szCmdNames[MAX_CMDS][MAX_CMD_STRLEN+1]; + int m_iCmdCount; + CMDPROC m_pDefaultCmd; // used when no command specifier was // used (ie. a normal chat message) @@ -17,4 +23,5 @@ public: CCmdWindow(); void AddDefaultCmdProc(CMDPROC cmdDefault); + void AddCmdProc(PCHAR szCmdName, CMDPROC cmdHandler); };