Subversion Repositories WoWGM

Rev

Rev 3 | Rev 31 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "pch.h"
#pragma hdrstop

#include "ConsoleClient.h"

/****************************************************************************
*
*       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


/****************************************************************************
*
*       Private
*
***/

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 str, COLOR_T color) = *(void(*)(LPCSTR,COLOR_T))CONSOLEWRITE_PTR;
void (*ConsoleWriteAPtr)(LPCSTR str, COLOR_T color, ...) = *(void(*)(LPCSTR,COLOR_T,...))CONSOLEWRITEA_PTR;
void (*ConsoleSetHotkeyPtr)(KEY key) = *(void(*)(KEY))CONSOLESETHOTKEY_PTR;
void (*ConsoleSetTitlePtr)(LPSTR windowTitle) = *(void(*)(LPSTR))CONSOLESETTITLE_PTR;
void (*ConsoleCommandExecutePtr)(LPCSTR command, BOOL addToHistory) = *(void(*)(LPCSTR,BOOL))CONSOLECOMMANDEXECUTE_PTR;
BOOL (*ConsoleCommandRegisterPtr)(LPCSTR command, BOOL (*handler)(LPCSTR, LPCSTR), CATEGORY category, LPCSTR helpText) = *(BOOL(*)(LPCSTR,BOOL(*)(LPCSTR,LPCSTR),CATEGORY,LPCSTR))CONSOLECOMMANDREGISTER_PTR;
void (*ConsoleCommandWriteHelpPtr)(LPCSTR str) = *(void(*)(LPCSTR))CONSOLECOMMANDWRITEHELP_PTR;
void (*ConsoleCommandUnregisterPtr)(LPCSTR command) = *(void(*)(LPCSTR))CONSOLECOMMANDUNREGISTER_PTR;
void (*ConsolePrintfPtr) (LPCSTR str, ...) = *(void(*)(LPCSTR, ...))CONSOLEPRINTF_PTR;


/****************************************************************************
*
*  Global variables
*
***/

EXECMODE& g_ExecCreateMode = *(EXECMODE*)G_EXECCREATEMODE_PTR;
char* g_ExecBuffer = (char*)G_EXECBUFFER_PTR;


/****************************************************************************
*
*       External functions
*
***/

//===========================================================================
void ConsoleWrite(const char* str, COLOR_T color)
{
        return ConsoleWritePtr(str,color);
}

//===========================================================================
void ConsoleWriteA(const char* 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)
{
        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);
}

Generated by GNU Enscript 1.6.5.90.