Subversion Repositories WoWGM

Rev

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

Rev Author Line No. Line
3 tristanc 1
#include "pch.h"
2
#pragma hdrstop
3
 
4
#include "ConsoleClient.h"
5
 
6
/****************************************************************************
7
*
8
*	Memory addresses
9
*
10
***/
11
 
12
#define CONSOLEWRITE_PTR				0x00765270
13
#define CONSOLEWRITEA_PTR				0x0063CD00
14
#define CONSOLESETHOTKEY_PTR			0x0063CB00
15
#define CONSOLESETTITLE_PTR				0x0063CB10
16
#define CONSOLECOMMANDEXECUTE_PTR		0x007658A0
17
#define CONSOLECOMMANDREGISTER_PTR		0x00769100
18
#define CONSOLECOMMANDWRITEHELP_PTR		0x0063FDB0
19
#define CONSOLECOMMANDUNREGISTER_PTR	0x007689E0;
29 tristanc 20
#define CONSOLEPRINTF_PTR 0x007653B0;
3 tristanc 21
 
22
#define G_EXECCREATEMODE_PTR			0x00ADBD48
23
#define G_EXECBUFFER_PTR				0x00CA1A28
24
 
25
#define S_ACTIVE_PTR					0x00C4EAC8
26
#define S_CONSOLEACCESSENABLED_PTR		0x00CABCC4
27
#define S_CONSOLEKEY_PTR				0x00864554
28
 
29
 
30
/****************************************************************************
31
*
32
*	Private
33
*
34
***/
35
 
36
static BOOL* s_active = (BOOL *)S_ACTIVE_PTR;
37
static BOOL* s_consoleAccessEnabled	= (BOOL *)S_CONSOLEACCESSENABLED_PTR;
38
static KEY*	s_consoleKey = (KEY *)S_CONSOLEKEY_PTR;
39
 
40
void (*ConsoleWritePtr)(LPCSTR str, COLOR_T color) = *(void(*)(LPCSTR,COLOR_T))CONSOLEWRITE_PTR;
41
void (*ConsoleWriteAPtr)(LPCSTR str, COLOR_T color, ...) = *(void(*)(LPCSTR,COLOR_T,...))CONSOLEWRITEA_PTR;
42
void (*ConsoleSetHotkeyPtr)(KEY key) = *(void(*)(KEY))CONSOLESETHOTKEY_PTR;
43
void (*ConsoleSetTitlePtr)(LPSTR windowTitle) = *(void(*)(LPSTR))CONSOLESETTITLE_PTR;
44
void (*ConsoleCommandExecutePtr)(LPCSTR command, BOOL addToHistory) = *(void(*)(LPCSTR,BOOL))CONSOLECOMMANDEXECUTE_PTR;
45
BOOL (*ConsoleCommandRegisterPtr)(LPCSTR command, BOOL (*handler)(LPCSTR, LPCSTR), CATEGORY category, LPCSTR helpText) = *(BOOL(*)(LPCSTR,BOOL(*)(LPCSTR,LPCSTR),CATEGORY,LPCSTR))CONSOLECOMMANDREGISTER_PTR;
46
void (*ConsoleCommandWriteHelpPtr)(LPCSTR str) = *(void(*)(LPCSTR))CONSOLECOMMANDWRITEHELP_PTR;
47
void (*ConsoleCommandUnregisterPtr)(LPCSTR command) = *(void(*)(LPCSTR))CONSOLECOMMANDUNREGISTER_PTR;
29 tristanc 48
void (*ConsolePrintfPtr) (LPCSTR str, ...) = *(void(*)(LPCSTR, ...))CONSOLEPRINTF_PTR;
3 tristanc 49
 
50
 
51
/****************************************************************************
52
*
53
*  Global variables
54
*
55
***/
56
 
57
EXECMODE& g_ExecCreateMode = *(EXECMODE*)G_EXECCREATEMODE_PTR;
58
char* g_ExecBuffer = (char*)G_EXECBUFFER_PTR;
59
 
60
 
61
/****************************************************************************
62
*
63
*	External functions
64
*
65
***/
66
 
67
//===========================================================================
68
void ConsoleWrite(const char* str, COLOR_T color)
69
{
70
	return ConsoleWritePtr(str,color);
71
}
72
 
73
//===========================================================================
74
void ConsoleWriteA(const char* str, COLOR_T color, ...)
75
{
76
	va_list va;
77
	va_start(va,color);
78
	if (str && *str) {
79
		char buf[1024] = {};
80
		vsnprintf(buf,sizeof(buf),str,va);
81
		ConsoleWrite(buf,color);
82
	}
83
	va_end(va);
84
}
85
 
86
//===========================================================================
87
void ConsoleAccessSetEnabled(BOOL enable)
88
{
89
	*s_consoleAccessEnabled = enable;
90
}
91
 
92
//===========================================================================
93
BOOL ConsoleAccessGetEnabled()
94
{
95
	return *s_consoleAccessEnabled;
96
}
97
 
98
//===========================================================================
99
BOOL ConsoleIsActive()
100
{
101
	return *s_active;
102
}
103
 
104
//===========================================================================
105
void ConsoleSetHotkey(KEY key)
106
{
107
	ConsoleSetHotkeyPtr(key);
108
}
109
 
110
//===========================================================================
111
void ConsoleSetTitle(LPSTR windowTitle)
112
{
113
	ConsoleSetTitlePtr(windowTitle);
114
}
115
 
116
//===========================================================================
117
void ConsoleCommandExecute(LPCSTR command, BOOL addToHistory)
118
{
119
	ConsoleCommandExecutePtr(command,addToHistory);
120
}
121
 
122
//===========================================================================
123
BOOL ConsoleCommandRegister(LPCSTR		command,
124
							 BOOL		(*handler)(LPCSTR,LPCSTR),
125
							 CATEGORY	category,
126
							 LPCSTR		helpText)
127
{
128
	return ConsoleCommandRegisterPtr(command,handler,category,helpText);
129
}
130
 
131
//===========================================================================
132
void ConsoleCommandWriteHelp(LPCSTR str)
133
{
134
	ConsoleCommandWriteHelpPtr(str);
135
}
136
 
137
//===========================================================================
138
void ConsoleCommandUnregister(LPCSTR command)
139
{
140
	ConsoleCommandUnregisterPtr(command);
141
}
29 tristanc 142
 
143
//===========================================================================
144
void ConsolePrintf(LPCSTR str, ...) {
145
  va_list arglist;
146
  va_start(arglist, str);
147
  char const* token = va_arg(arglist, char const*);
148
 
149
  ConsolePrintfPtr(str, token);
150
  va_end(arglist);
151
}