Potential CCommandHook change
Posted: Fri Apr 22, 2005 1:09 am
I like this better, it lets me use / commands like normal.
Code: Select all
class CCommandHook
{
public:
VOID Detour(PSPAWNINFO pChar, PCHAR szFullLine)
{
//DebugSpew("CCommandHook::Detour(%s)",szFullLine);
bool bIsISXCommand=false;
// apply one alias
char FullCommand[8192];
strcpy(FullCommand,szFullLine);
szFullLine=FullCommand;
char *pSpace=strchr(FullCommand,' ');
if (pSpace)
*pSpace=0;
PISXEQALIAS pAlias=FindISXEQAlias(FullCommand);
if (pAlias) StrReplaceSection(FullCommand,strlen(FullCommand),pAlias->Replacement);
if (FullCommand[0]=='/' && strlen(&FullCommand[1]))
bIsISXCommand=pISInterface->IsCommand(&FullCommand[1]);
if (pSpace)
*pSpace=' ';
if (bIsISXCommand)
{
pISInterface->ExecuteCommand(&szFullLine[1]);
strcpy(szLastCommand,szFullLine);
}
else
{
char FullCommand[8192]={0};
strcpy(FullCommand,szFullLine);
pISInterface->DataParse(FullCommand);
Trampoline(pChar,FullCommand);
strcpy(szLastCommand,FullCommand);
}
}
VOID Trampoline(PSPAWNINFO pChar, PCHAR szFullLine);
};