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

207 lines
5.3 KiB
ObjectPascal
Executable file

unit LuaCheatComponent;
{$mode delphi}
interface
uses
Classes, SysUtils,lua, lualib, lauxlib, LuaHandler, LuaCaller,
ExtCtrls, StdCtrls, ExtraTrainerComponents;
procedure initializeLuaCheatComponent;
implementation
uses LuaClass, LuaWinControl;
function cheatcomponent_getActive(L: PLua_State): integer; cdecl;
var
cheatcomponent: TCheat;
begin
cheatcomponent:=luaclass_getClassObject(L);
lua_pushboolean(L, cheatcomponent.activated);
result:=1;
end;
function cheatcomponent_setActive(L: PLua_State): integer; cdecl;
var
paramstart, paramcount: integer;
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L, @paramstart, @paramcount);
if paramcount>=1 then
begin
cheatcomponent.activated:=lua_toboolean(L,paramstart);
if paramcount=2 then
begin
deactivatetime:=lua_tointeger(L,paramstart+1);
if cheatcomponent.activated then
cheatcomponent.setDeactivateTimer(deactivatetime);
end;
end;
end;
function cheatcomponent_getDescription(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
begin
cheatcomponent:=luaclass_getClassObject(L);
lua_pushstring(L, cheatcomponent.Description);
result:=1;
end;
function cheatcomponent_setDescription(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
cheatcomponent.Description:=Lua_ToString(L,-1);
end;
function cheatcomponent_getHotkey(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
lua_pushstring(L, cheatcomponent.Hotkey);
result:=1;
end;
function cheatcomponent_setHotkey(L: PLua_State): integer; cdecl;
var
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
cheatcomponent.Hotkey:=Lua_ToString(L,-1);
end;
function cheatcomponent_getDescriptionLeft(L: PLua_State): integer; cdecl;
var
cheatcomponent: TCheat;
begin
cheatcomponent:=luaclass_getClassObject(L);
lua_pushinteger(L, cheatcomponent.DescriptionLeft);
result:=1;
end;
function cheatcomponent_setDescriptionLeft(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
cheatcomponent.Descriptionleft:=lua_tointeger(L,-1);
end;
function cheatcomponent_getHotkeyLeft(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
lua_pushinteger(L, cheatcomponent.Hotkeyleft);
result:=1;
end;
function cheatcomponent_setHotkeyLeft(L: PLua_State): integer; cdecl;
var
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
cheatcomponent.Hotkeyleft:=lua_tointeger(L,-1);
end;
function cheatcomponent_getEditValue(L: PLua_State): integer; cdecl;
var
cheatcomponent: TCheat;
begin
cheatcomponent:=luaclass_getClassObject(L);
lua_pushstring(L, cheatcomponent.EditValue);
result:=1;
end;
function cheatcomponent_setEditValue(L: PLua_State): integer; cdecl;
var
parameters: integer;
cheatcomponent: TCheat;
deactivatetime: integer;
t: TTimer;
begin
result:=0;
cheatcomponent:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
cheatcomponent.EditValue:=Lua_ToString(L,-1);
end;
procedure cheatcomponent_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
wincontrol_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setActive', cheatcomponent_setActive);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getActive', cheatcomponent_getActive);
end;
procedure initializeLuaCheatComponent;
begin
Lua_register(LuaVM, 'cheatcomponent_setActive', cheatcomponent_setActive);
Lua_register(LuaVM, 'cheatcomponent_getActive', cheatcomponent_getActive);
Lua_register(LuaVM, 'cheatcomponent_setDescription', cheatcomponent_setDescription);
Lua_register(LuaVM, 'cheatcomponent_getDescription', cheatcomponent_getDescription);
Lua_register(LuaVM, 'cheatcomponent_setHotkey', cheatcomponent_setHotkey);
Lua_register(LuaVM, 'cheatcomponent_getHotkey', cheatcomponent_getHotkey);
Lua_register(LuaVM, 'cheatcomponent_setDescriptionLeft', cheatcomponent_setDescriptionLeft);
Lua_register(LuaVM, 'cheatcomponent_getDescriptionLeft', cheatcomponent_getDescriptionLeft);
Lua_register(LuaVM, 'cheatcomponent_setHotkeyLeft', cheatcomponent_setHotkeyLeft);
Lua_register(LuaVM, 'cheatcomponent_getHotkeyLeft', cheatcomponent_getHotkeyLeft);
Lua_register(LuaVM, 'cheatcomponent_setEditValue', cheatcomponent_setEditValue);
Lua_register(LuaVM, 'cheatcomponent_getEditValue', cheatcomponent_getEditValue);
end;
initialization
luaclass_register(TCheat, cheatcomponent_addMetaData);
end.