cheat-engine/Cheat Engine/LuaMemoryRecordHotkey.pas
2019-12-19 17:49:30 +01:00

164 lines
4.4 KiB
ObjectPascal
Executable File

unit LuaMemoryRecordHotkey;
{$mode delphi}
interface
uses
Classes, SysUtils, lua, lualib, lauxlib, CEFuncProc;
procedure initializeMemoryRecordHotkey;
implementation
uses luaclass, luahandler, luacaller, luaobject, MemoryRecordUnit;
function memoryrecordhotkey_getDescription(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
lua_pushstring(L, memoryrecordhotkey.description);
result:=1;
end;
function memoryrecordhotkey_getHotkeyString(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
lua_pushstring(L, ConvertKeyComboToString(memoryrecordhotkey.keys));
result:=1;
end;
function memoryrecordhotkey_getKeys(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
t, i: integer;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
lua_newtable(L);
result:=1;
t:=lua_gettop(L); //1
for i:=0 to 4 do
begin
if memoryrecordhotkey.keys[i]=0 then break;
lua_pushinteger(L, i+1);
lua_pushinteger(L, memoryrecordhotkey.keys[i]);
lua_settable(L, t);
end;
end;
function memoryrecordhotkey_setKeys(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
i: integer;
begin
result:=0;
memoryrecordhotkey:=luaclass_getClassObject(L);
if lua_istable(L,1) then
begin
i:=0;
for i:=0 to 4 do
begin
lua_pushinteger(L, i+1);
lua_gettable(L, 1);
memoryrecordhotkey.keys[i]:=lua_tointeger(L, -1);
if memoryrecordhotkey.keys[i]=0 then exit;
end;
end;
end;
function memoryrecordhotkey_getID(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
lua_pushinteger(L, memoryrecordhotkey.id);
result:=1;
end;
function memoryrecordhotkey_setOnHotkey(L: PLua_State): integer; cdecl;
var
c: Tmemoryrecordhotkey;
m: tmethod;
begin
if lua_gettop(L)>=1 then
begin
c:=luaclass_getClassObject(L);
m:=tmethod(c.OnHotkey);
LuaCaller_setMethodProperty(L, m, 'TNotifyEvent', lua_gettop(L));
c.OnHotkey:=tnotifyevent(m);
end;
result:=0;
end;
function memoryrecordhotkey_setOnPostHotkey(L: PLua_State): integer; cdecl;
var
c: Tmemoryrecordhotkey;
m: tmethod;
begin
if lua_gettop(L)>=1 then
begin
c:=luaclass_getClassObject(L);
m:=tmethod(c.OnPostHotkey);
LuaCaller_setMethodProperty(L, m, 'TNotifyEvent', lua_gettop(L));
c.OnPostHotkey:=tnotifyevent(m);
end;
result:=0;
end;
function memoryrecordhotkey_getOwner(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
luaclass_newClass(L, memoryrecordhotkey.owner);
result:=1;
end;
function memoryrecordhotkey_doHotkey(L: PLua_State): integer; cdecl;
var
memoryrecordhotkey: TMemoryRecordHotkey;
begin
memoryrecordhotkey:=luaclass_getClassObject(L);
memoryrecordhotkey.doHotkey;
result:=0;
end;
procedure memoryrecordhotkey_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
object_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'doHotkey', memoryrecordhotkey_doHotkey);
luaclass_addPropertyToTable(L, metatable, userdata, 'HotkeyString', memoryrecordhotkey_getHotkeyString, nil);
luaclass_addPropertyToTable(L, metatable, userdata, 'Keys', memoryrecordhotkey_getKeys, memoryrecordhotkey_setKeys);
end;
procedure initializeMemoryRecordHotkey;
begin
Lua_register(LuaVM, 'memoryrecordhotkey_getDescription', memoryrecordhotkey_getDescription);
Lua_register(LuaVM, 'memoryrecordhotkey_getHotkeyString', memoryrecordhotkey_getHotkeyString);
Lua_register(LuaVM, 'memoryrecordhotkey_getID', memoryrecordhotkey_getID);
Lua_register(LuaVM, 'memoryrecordhotkey_onHotkey', memoryrecordhotkey_setonHotkey);
Lua_register(LuaVM, 'memoryrecordhotkey_onPostHotkey', memoryrecordhotkey_setonPostHotkey);
Lua_register(LuaVM, 'memoryrecordhotkey_getOwner', memoryrecordhotkey_getOwner);
Lua_register(LuaVM, 'memoryrecordhotkey_doHotkey', memoryrecordhotkey_doHotkey);
end;
initialization
luaclass_register(TMemoryRecordHotkey, memoryrecordhotkey_addMetaData);
end.