Subversion Repositories WoWGM

Rev

Rev 32 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "pch.h"
#pragma hdrstop

#include "FrameScript.h"


/******************************************************************************
*
*   Client memory addresses
*
***/

#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


/******************************************************************************
*
*   Client function pointers
*
***/

void (*FrameScript_ExecutePtr)(LPCSTR,LPCSTR,LPCSTR) = *(void(*)(LPCSTR,LPCSTR,LPCSTR))FRAMESCRIPT_EXECUTE_PTR;

PCHAR(*FrameScript_GetTextPtr)(LPCSTR,int,FRAMESCRIPT_GENDER) = *(PCHAR(*)(LPCSTR,int,FRAMESCRIPT_GENDER))FRAMESCRIPT_GETTEXT_PTR;

void (*FrameScript_RegisterFunctionPtr)(LPCSTR,int(*)(lua_State*)) = *(void(*)(LPCSTR,int(*)(lua_State *)))FRAMESCRIPT_REGISTERFUNCTION_PTR;

void (*FrameScript_SignalEventPtr)(SCRIPTEVENT) = *(void(*)(SCRIPTEVENT))FRAMESCRIPT_SIGNALEVENT_PTR;

void (*FrameScript_SignalEventPtr2)(SCRIPTEVENT,LPCSTR,...) = *(void (*)(SCRIPTEVENT,LPCSTR,...))FRAMESCRIPT_SIGNALEVENT2_PTR;

void (*FrameScript_UnregisterFunctionPtr)(LPCSTR) = *(void(*)(LPCSTR))FRAMESCRIPT_UNREGISTERFUNCTION_PTR;

void (*lua_pushstringPtr)(lua_State*,const char*) = *(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 (char const* 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, char const* s) {
        lua_pushstringPtr(L,s);
}