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

79 lines
2 KiB
ObjectPascal
Executable file

unit LuaListColumns;
{$mode delphi}
interface
uses
Classes, SysUtils, lua, lualib, lauxlib, comctrls;
procedure initializeLuaListColumns;
implementation
uses luaclass, luahandler, LuaCollection;
function listcolumns_add(L: PLua_State): integer; cdecl;
var
listcolumns: TListColumns;
begin
listcolumns:=luaclass_getClassObject(L);
luaclass_newclass(L, listcolumns.add);
result:=1;
end;
function listcolumns_getColumn(L: PLua_State): integer; cdecl;
var
listcolumns: TListcolumns;
index: integer;
begin
result:=0;
listcolumns:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
begin
index:=lua_toInteger(L,-1);
luaclass_newClass(L, listcolumns[index]);
result:=1;
end;
end;
function listcolumns_setColumn(L: PLua_State): integer; cdecl;
var
listcolumns: TListcolumns;
index: integer;
li: TListColumn;
begin
result:=0;
listcolumns:=luaclass_getClassObject(L);
if lua_gettop(L)=2 then
begin
index:=lua_toInteger(L, 1);
li:=lua_ToCEUserData(L, 2);
listcolumns[index]:=li;
end;
end;
procedure listcolumns_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
collection_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'add', listcolumns_add);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getColumn', listcolumns_getColumn);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setColumn', listcolumns_setColumn);
luaclass_addArrayPropertyToTable(L, metatable, userdata, 'Column', listcolumns_getColumn);
luaclass_setDefaultArrayProperty(L, metatable, userdata, listcolumns_getColumn, listcolumns_setColumn);
end;
procedure initializeLuaListColumns;
begin
lua_register(LuaVM, 'listcolumns_add', listcolumns_add);
lua_register(LuaVM, 'listcolumns_getColumn', listcolumns_getColumn);
end;
initialization
luaclass_register(TListColumns, listcolumns_addMetaData);
end.