Subversion Repositories WoWGM

Rev

Rev 3 | Rev 32 | 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 "FrameScript.h"
5
 
31 tristanc 6
/****************************************************************************
7
*
8
*   Client memory addresses
9
*
10
***/
3 tristanc 11
 
31 tristanc 12
#define  FRAMESCRIPT_EXECUTE_PTR            0x00819210;
13
#define  FRAMESCRIPT_GETTEXT_PTR            0x00819D40;
14
#define  FRAMESCRIPT_REGISTERFUNCTION_PTR   0x00817F90;
15
#define  FRAMESCRIPT_SIGNALEVENT_PTR        0x00703E50;
16
#define  FRAMESCRIPT_SIGNALEVENT2_PTR       0x00703F50;
17
#define  FRAMESCRIPT_UNREGISTERFUNCTION_PTR 0x00817FD0;
18
#define  LUA_PUSHSTRING_PTR                 0x0084E350;
19
 
20
 
3 tristanc 21
/****************************************************************************
22
*
31 tristanc 23
*   Client function pointers
3 tristanc 24
*
25
***/
26
 
31 tristanc 27
void (*FrameScript_ExecutePtr)(LPCSTR,LPCSTR,LPCSTR) = *(void(*)(LPCSTR,LPCSTR,LPCSTR))FRAMESCRIPT_EXECUTE_PTR;
3 tristanc 28
 
31 tristanc 29
PCHAR(*FrameScript_GetTextPtr)(LPCSTR,int,FRAMESCRIPT_GENDER) = *(PCHAR(*)(LPCSTR,int,FRAMESCRIPT_GENDER))FRAMESCRIPT_GETTEXT_PTR;
3 tristanc 30
 
31 tristanc 31
void (*FrameScript_RegisterFunctionPtr)(LPCSTR,int(*)(lua_State*)) = *(void(*)(LPCSTR,int(*)(lua_State *)))FRAMESCRIPT_REGISTERFUNCTION_PTR;
32
 
33
void (*FrameScript_SignalEventPtr)(SCRIPTEVENT) = *(void(*)(SCRIPTEVENT))FRAMESCRIPT_SIGNALEVENT_PTR;
34
 
35
void (*FrameScript_SignalEventPtr2)(SCRIPTEVENT,LPCSTR,...) = *(void (*)(SCRIPTEVENT,LPCSTR,...))FRAMESCRIPT_SIGNALEVENT2_PTR;
36
 
37
void (*FrameScript_UnregisterFunctionPtr)(LPCSTR) = *(void(*)(LPCSTR))FRAMESCRIPT_UNREGISTERFUNCTION_PTR;
38
 
39
void (*lua_pushstringPtr)(lua_State*,const char*) = *(void(*)(lua_State *,const char *))LUA_PUSHSTRING_PTR;
40
 
41
 
3 tristanc 42
/****************************************************************************
43
*
31 tristanc 44
*   External
3 tristanc 45
*
46
***/
47
 
48
//===========================================================================
49
void FrameScript_Execute (LPCSTR function, LPCSTR arguments, LPCSTR taint) {
50
	FrameScript_ExecutePtr(function,arguments,taint);
51
}
52
 
53
//===========================================================================
54
PCHAR FrameScript_GetText (const char* text, int a2, FRAMESCRIPT_GENDER gender) {
55
	return FrameScript_GetTextPtr(text,a2,gender);
56
}
57
 
58
//===========================================================================
59
void FrameScript_RegisterFunction (LPCSTR name, int (*fcn)(lua_State *)) {
60
	FrameScript_RegisterFunctionPtr(name,fcn);
61
}
62
 
63
//===========================================================================
64
void FrameScript_SignalEvent (SCRIPTEVENT eventID) {
65
	FrameScript_SignalEventPtr(eventID);
66
}
67
 
68
//===========================================================================
69
void FrameScript_SignalEvent (SCRIPTEVENT eventID, LPCSTR string, ...) {
70
	va_list arglist;
71
	va_start(arglist,string);
31 tristanc 72
 
3 tristanc 73
	FrameScript_SignalEventPtr2(eventID,string,arglist);
31 tristanc 74
 
3 tristanc 75
	va_end(arglist);
76
}
77
 
78
//===========================================================================
79
void FrameScript_UnregisterFunction (LPCSTR name) {
80
	FrameScript_UnregisterFunctionPtr(name);
81
}
82
 
83
//===========================================================================
84
void _lua_pushstring(lua_State* L, const char* s) {
85
	lua_pushstringPtr(L,s);
86
}