Subversion Repositories WoWGM

Rev

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

#include "pch.h"
#pragma hdrstop

#include "FrameScript.h"

#define FRAMESCRIPT_EXECUTE_PTR                         0x00819210;
#define FRAMESCRIPT_GETTEXT_PTR                         0x00819D40;
#define FRAMESCRIPT_REGISTERFUNCTION_PTR        0x00817F90;
#define FRAMESCRIPT_SIGNALEVENT_PTR                     0x00703E50;
#define FRAMESCRIPT_SIGNALEVENT2_PTR            0x00703F50;
#define FRAMESCRIPT_UNREGISTERFUNCTION_PTR      0x00817FD0;
#define LUA_PUSHSTRING_PTR                                      0x0084E350;

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

void (*FrameScript_ExecutePtr)(LPCSTR function, LPCSTR arguments, LPCSTR taint) = *(void(*)(LPCSTR,LPCSTR,LPCSTR))FRAMESCRIPT_EXECUTE_PTR;
PCHAR(*FrameScript_GetTextPtr)(LPCSTR text, int a2, FRAMESCRIPT_GENDER gender) = *(PCHAR(*)(LPCSTR,int,FRAMESCRIPT_GENDER))FRAMESCRIPT_GETTEXT_PTR;
void (*FrameScript_RegisterFunctionPtr)(LPCSTR name, int (*fcn)(lua_State *)) = *(void(*)(LPCSTR,int(*)(lua_State *)))FRAMESCRIPT_REGISTERFUNCTION_PTR;
void (*FrameScript_SignalEventPtr)(SCRIPTEVENT eventID) = *(void(*)(SCRIPTEVENT))FRAMESCRIPT_SIGNALEVENT_PTR;
void (*FrameScript_SignalEventPtr2)(SCRIPTEVENT eventID, LPCSTR string, ...) = *(void (*)(SCRIPTEVENT,LPCSTR,...))FRAMESCRIPT_SIGNALEVENT2_PTR;
void (*FrameScript_UnregisterFunctionPtr)(LPCSTR name) = *(void(*)(LPCSTR))FRAMESCRIPT_UNREGISTERFUNCTION_PTR;
void (*lua_pushstringPtr)(lua_State* L, const char* s) = *(void(*)(lua_State *,const char *))LUA_PUSHSTRING_PTR;


/****************************************************************************
*
*  External
*
***/

//===========================================================================
void FrameScript_Execute (LPCSTR function, LPCSTR arguments, LPCSTR taint) {
        FrameScript_ExecutePtr(function,arguments,taint);
}

//===========================================================================
PCHAR FrameScript_GetText (const char* text, int a2, FRAMESCRIPT_GENDER gender) {
        return FrameScript_GetTextPtr(text,a2,gender);
}

//===========================================================================
void FrameScript_RegisterFunction (LPCSTR name, int (*fcn)(lua_State *)) {
        FrameScript_RegisterFunctionPtr(name,fcn);
}

//===========================================================================
void FrameScript_SignalEvent (SCRIPTEVENT eventID) {
        FrameScript_SignalEventPtr(eventID);
}

//===========================================================================
void FrameScript_SignalEvent (SCRIPTEVENT eventID, LPCSTR string, ...) {
        va_list arglist;
        va_start(arglist,string);
        FrameScript_SignalEventPtr2(eventID,string,arglist);
        va_end(arglist);
}

//===========================================================================
void FrameScript_UnregisterFunction (LPCSTR name) {
        FrameScript_UnregisterFunctionPtr(name);
}

//===========================================================================
void _lua_pushstring(lua_State* L, const char* s) {
        lua_pushstringPtr(L,s);
}