Back to the subject at hand (getting my shape shift form, via lua function)
Code:
typedef int (__cdecl *WowzLuaGetTop)(DWORD State);
WowzLuaGetTop pfLuaGetTop = (WowzLuaGetTop) 0x007ADAD0; // 3.0.9
typedef int (__cdecl *WowzLuaToInteger)(DWORD State, int Arg);
WowzLuaToInteger pfLuaToInteger = (WowzLuaToInteger) 0x007ADF70; // 3.0.9
typedef int (__cdecl *WowzLuaGetShapeshiftForm)(DWORD State);
WowzLuaGetShapeshiftForm pfGetShapeshiftForm = (WowzLuaGetShapeshiftForm) 0x004CFF30; // 3.0.9
void TestGetShapeshift()
{
DWORD *pLuaState = (DWORD*) 0x12E98FC; // 3.0.9
pfGetShapeshiftForm(*pLuaState);
int top = pfLuaGetTop(*pLuaState);
int val = pfLuaToInteger(*pLuaState, top);
dbg("Top: %d Val: %d\n", top, val);
pfGetShapeshiftForm(*pLuaState);
top = pfLuaGetTop(*pLuaState);
val = pfLuaToInteger(*pLuaState, top);
dbg("Top: %d Val: %d\n", top, val);
}
This dumps :
Top: 1 Val: 3
Top: 2 Val: 3
Which is to say its working (w00t!), but that the lua state is going its stack. How do I clean it up?