Subversion Repositories WoWGM

Rev

Rev 29 | Go to most recent revision | Details | 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;
20
 
21
#define G_EXECCREATEMODE_PTR			0x00ADBD48
22
#define G_EXECBUFFER_PTR				0x00CA1A28
23
 
24
#define S_ACTIVE_PTR					0x00C4EAC8
25
#define S_CONSOLEACCESSENABLED_PTR		0x00CABCC4
26
#define S_CONSOLEKEY_PTR				0x00864554
27
 
28
 
29
/****************************************************************************
30
*
31
*	Private
32
*
33
***/
34
 
35
static BOOL* s_active = (BOOL *)S_ACTIVE_PTR;
36
static BOOL* s_consoleAccessEnabled	= (BOOL *)S_CONSOLEACCESSENABLED_PTR;
37
static KEY*	s_consoleKey = (KEY *)S_CONSOLEKEY_PTR;
38
 
39
void (*ConsoleWritePtr)(LPCSTR str, COLOR_T color) = *(void(*)(LPCSTR,COLOR_T))CONSOLEWRITE_PTR;
40
void (*ConsoleWriteAPtr)(LPCSTR str, COLOR_T color, ...) = *(void(*)(LPCSTR,COLOR_T,...))CONSOLEWRITEA_PTR;
41
void (*ConsoleSetHotkeyPtr)(KEY key) = *(void(*)(KEY))CONSOLESETHOTKEY_PTR;
42
void (*ConsoleSetTitlePtr)(LPSTR windowTitle) = *(void(*)(LPSTR))CONSOLESETTITLE_PTR;
43
void (*ConsoleCommandExecutePtr)(LPCSTR command, BOOL addToHistory) = *(void(*)(LPCSTR,BOOL))CONSOLECOMMANDEXECUTE_PTR;
44
BOOL (*ConsoleCommandRegisterPtr)(LPCSTR command, BOOL (*handler)(LPCSTR, LPCSTR), CATEGORY category, LPCSTR helpText) = *(BOOL(*)(LPCSTR,BOOL(*)(LPCSTR,LPCSTR),CATEGORY,LPCSTR))CONSOLECOMMANDREGISTER_PTR;
45
void (*ConsoleCommandWriteHelpPtr)(LPCSTR str) = *(void(*)(LPCSTR))CONSOLECOMMANDWRITEHELP_PTR;
46
void (*ConsoleCommandUnregisterPtr)(LPCSTR command) = *(void(*)(LPCSTR))CONSOLECOMMANDUNREGISTER_PTR;
47
 
48
 
49
/****************************************************************************
50
*
51
*  Global variables
52
*
53
***/
54
 
55
EXECMODE& g_ExecCreateMode = *(EXECMODE*)G_EXECCREATEMODE_PTR;
56
char* g_ExecBuffer = (char*)G_EXECBUFFER_PTR;
57
 
58
 
59
/****************************************************************************
60
*
61
*	External functions
62
*
63
***/
64
 
65
//===========================================================================
66
void ConsoleWrite(const char* str, COLOR_T color)
67
{
68
	return ConsoleWritePtr(str,color);
69
}
70
 
71
//===========================================================================
72
void ConsoleWriteA(const char* str, COLOR_T color, ...)
73
{
74
	va_list va;
75
	va_start(va,color);
76
	if (str && *str) {
77
		char buf[1024] = {};
78
		vsnprintf(buf,sizeof(buf),str,va);
79
		ConsoleWrite(buf,color);
80
	}
81
	va_end(va);
82
}
83
 
84
//===========================================================================
85
void ConsoleAccessSetEnabled(BOOL enable)
86
{
87
	*s_consoleAccessEnabled = enable;
88
}
89
 
90
//===========================================================================
91
BOOL ConsoleAccessGetEnabled()
92
{
93
	return *s_consoleAccessEnabled;
94
}
95
 
96
//===========================================================================
97
BOOL ConsoleIsActive()
98
{
99
	return *s_active;
100
}
101
 
102
//===========================================================================
103
void ConsoleSetHotkey(KEY key)
104
{
105
	ConsoleSetHotkeyPtr(key);
106
}
107
 
108
//===========================================================================
109
void ConsoleSetTitle(LPSTR windowTitle)
110
{
111
	ConsoleSetTitlePtr(windowTitle);
112
}
113
 
114
//===========================================================================
115
void ConsoleCommandExecute(LPCSTR command, BOOL addToHistory)
116
{
117
	ConsoleCommandExecutePtr(command,addToHistory);
118
}
119
 
120
//===========================================================================
121
BOOL ConsoleCommandRegister(LPCSTR		command,
122
							 BOOL		(*handler)(LPCSTR,LPCSTR),
123
							 CATEGORY	category,
124
							 LPCSTR		helpText)
125
{
126
	return ConsoleCommandRegisterPtr(command,handler,category,helpText);
127
}
128
 
129
//===========================================================================
130
void ConsoleCommandWriteHelp(LPCSTR str)
131
{
132
	ConsoleCommandWriteHelpPtr(str);
133
}
134
 
135
//===========================================================================
136
void ConsoleCommandUnregister(LPCSTR command)
137
{
138
	ConsoleCommandUnregisterPtr(command);
139
}