Rev 32 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "pch.h"
#pragma hdrstop
#include "ConsoleClient.h"
/******************************************************************************
*
* Client memory addresses
*
***/
#define CONSOLEWRITE_PTR 0x00765270
#define CONSOLEWRITEA_PTR 0x0063CD00
#define CONSOLESETHOTKEY_PTR 0x0063CB00
#define CONSOLESETTITLE_PTR 0x0063CB10
#define CONSOLECOMMANDEXECUTE_PTR 0x007658A0
#define CONSOLECOMMANDREGISTER_PTR 0x00769100
#define CONSOLECOMMANDWRITEHELP_PTR 0x0063FDB0
#define CONSOLECOMMANDUNREGISTER_PTR 0x007689E0
#define CONSOLEPRINTF_PTR 0x007653B0
#define G_EXECCREATEMODE_PTR 0x00ADBD48
#define G_EXECBUFFER_PTR 0x00CA1A28
#define S_ACTIVE_PTR 0x00C4EAC8
#define S_CONSOLEACCESSENABLED_PTR 0x00CABCC4
#define S_CONSOLEKEY_PTR 0x00864554
/******************************************************************************
*
* Client symbol pointers
*
***/
static BOOL* s_active = (BOOL*)S_ACTIVE_PTR;
static BOOL* s_consoleAccessEnabled = (BOOL*)S_CONSOLEACCESSENABLED_PTR;
static KEY* s_consoleKey = (KEY*)S_CONSOLEKEY_PTR;
void (*ConsoleWritePtr)(LPCSTR,COLOR_T) = *(void(*)(LPCSTR,COLOR_T))CONSOLEWRITE_PTR;
void (*ConsoleWriteAPtr)(LPCSTR,COLOR_T, ...) = *(void(*)(LPCSTR,COLOR_T,...))CONSOLEWRITEA_PTR;
void (*ConsoleSetHotkeyPtr)(KEY) = *(void(*)(KEY))CONSOLESETHOTKEY_PTR;
void (*ConsoleSetTitlePtr)(LPSTR) = *(void(*)(LPSTR))CONSOLESETTITLE_PTR;
void (*ConsoleCommandExecutePtr)(LPCSTR,BOOL) = *(void(*)(LPCSTR,BOOL))CONSOLECOMMANDEXECUTE_PTR;
BOOL (*ConsoleCommandRegisterPtr)(LPCSTR,BOOL(*)(LPCSTR,LPCSTR),CATEGORY,LPCSTR) = *(BOOL(*)(LPCSTR,BOOL(*)(LPCSTR,LPCSTR),CATEGORY,LPCSTR))CONSOLECOMMANDREGISTER_PTR;
void (*ConsoleCommandWriteHelpPtr)(LPCSTR) = *(void(*)(LPCSTR))CONSOLECOMMANDWRITEHELP_PTR;
void (*ConsoleCommandUnregisterPtr)(LPCSTR) = *(void(*)(LPCSTR))CONSOLECOMMANDUNREGISTER_PTR;
void (*ConsolePrintfPtr)(LPCSTR,...) = *(void(*)(LPCSTR,...))CONSOLEPRINTF_PTR;
/******************************************************************************
*
* Global variables
*
***/
EXECMODE& g_ExecCreateMode = *(EXECMODE*)G_EXECCREATEMODE_PTR;
char* g_ExecBuffer = (char *)G_EXECBUFFER_PTR;
/******************************************************************************
*
* External
*
***/
//=============================================================================
void ConsoleWrite (char const* str, COLOR_T color) {
ConsoleWritePtr(str,color);
}
//=============================================================================
void ConsoleWriteA (char const* str, COLOR_T color, ...) {
va_list va;
va_start(va,color);
if (str && *str) {
char buf[1024] = {};
vsnprintf(buf,sizeof(buf),str,va);
ConsoleWrite(buf,color);
}
va_end(va);
}
//=============================================================================
void ConsoleAccessSetEnabled (BOOL enable) {
*s_consoleAccessEnabled = enable;
}
//=============================================================================
BOOL ConsoleAccessGetEnabled () {
return *s_consoleAccessEnabled;
}
//=============================================================================
BOOL ConsoleIsActive () {
return *s_active;
}
//=============================================================================
void ConsoleSetHotkey (KEY key) {
ConsoleSetHotkeyPtr(key);
}
//=============================================================================
void ConsoleSetTitle (LPSTR windowTitle) {
ConsoleSetTitlePtr(windowTitle);
}
//=============================================================================
void ConsoleCommandExecute (LPCSTR command, BOOL addToHistory) {
ConsoleCommandExecutePtr(command,addToHistory);
}
//=============================================================================
BOOL ConsoleCommandRegister (LPCSTR command,
BOOL (*handler)(LPCSTR,LPCSTR),
CATEGORY category,
LPCSTR helpText/* = NOHELP*/) {
return ConsoleCommandRegisterPtr(command,handler,category,helpText);
}
//=============================================================================
void ConsoleCommandWriteHelp (LPCSTR str) {
ConsoleCommandWriteHelpPtr(str);
}
//=============================================================================
void ConsoleCommandUnregister (LPCSTR command) {
ConsoleCommandUnregisterPtr(command);
}
//=============================================================================
void ConsolePrintf (LPCSTR str, ...) {
va_list arglist;
va_start(arglist, str);
char const* token = va_arg(arglist, char const*);
ConsolePrintfPtr(str, token);
va_end(arglist);
}