Subversion Repositories WoWGM

Rev

Rev 29 | Rev 32 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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