From ef22d85589146b6a24de02eb162d1af24b14d9e4 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Sun, 14 May 2017 00:07:42 +0300 Subject: [PATCH] Initial commit --- Release/CL.read.1.tlog | Bin 0 -> 70830 bytes Release/CL.write.1.tlog | Bin 0 -> 2796 bytes Release/cl.command.1.tlog | Bin 0 -> 2774 bytes Release/gmcl_samurai_win32.Build.CppClean.log | 21 ++ ...cl_samurai_win32.dll.intermediate.manifest | 10 + Release/gmcl_samurai_win32.lastbuildstate | 2 + Release/gmcl_samurai_win32.log | 30 ++ ...in32.vcxprojResolveAssemblyReference.cache | Bin 0 -> 713 bytes Release/gmcl_samurai_win32.write.1.tlog | 55 +++ Release/link.command.1.tlog | Bin 0 -> 1714 bytes Release/link.read.1.tlog | Bin 0 -> 3416 bytes Release/link.write.1.tlog | Bin 0 -> 800 bytes Release/main.obj | Bin 0 -> 59482 bytes Release/memobj.obj | Bin 0 -> 66053 bytes Release/mt.command.1.tlog | Bin 0 -> 452 bytes Release/mt.read.1.tlog | Bin 0 -> 622 bytes Release/mt.write.1.tlog | Bin 0 -> 250 bytes Release/samurai.obj | Bin 0 -> 69096 bytes Release/state.obj | Bin 0 -> 82534 bytes Release/struct.obj | Bin 0 -> 73646 bytes Release/vc100.pdb | Bin 0 -> 110592 bytes gmcl_samurai_win32.vcxproj | 80 ++++ gmcl_samurai_win32.vcxproj.filters | 54 +++ gmcl_samurai_win32.vcxproj.user | 3 + interface.h | 37 ++ lua.h | 87 +++++ main.cpp | 21 ++ memobj.cpp | 121 ++++++ memobj.h | 23 ++ samurai.cpp | 183 ++++++++++ samurai.h | 12 + state.cpp | 343 ++++++++++++++++++ state.h | 102 ++++++ struct.cpp | 248 +++++++++++++ struct.h | 22 ++ 35 files changed, 1454 insertions(+) create mode 100644 Release/CL.read.1.tlog create mode 100644 Release/CL.write.1.tlog create mode 100644 Release/cl.command.1.tlog create mode 100644 Release/gmcl_samurai_win32.Build.CppClean.log create mode 100644 Release/gmcl_samurai_win32.dll.intermediate.manifest create mode 100644 Release/gmcl_samurai_win32.lastbuildstate create mode 100644 Release/gmcl_samurai_win32.log create mode 100644 Release/gmcl_samurai_win32.vcxprojResolveAssemblyReference.cache create mode 100644 Release/gmcl_samurai_win32.write.1.tlog create mode 100644 Release/link.command.1.tlog create mode 100644 Release/link.read.1.tlog create mode 100644 Release/link.write.1.tlog create mode 100644 Release/main.obj create mode 100644 Release/memobj.obj create mode 100644 Release/mt.command.1.tlog create mode 100644 Release/mt.read.1.tlog create mode 100644 Release/mt.write.1.tlog create mode 100644 Release/samurai.obj create mode 100644 Release/state.obj create mode 100644 Release/struct.obj create mode 100644 Release/vc100.pdb create mode 100644 gmcl_samurai_win32.vcxproj create mode 100644 gmcl_samurai_win32.vcxproj.filters create mode 100644 gmcl_samurai_win32.vcxproj.user create mode 100644 interface.h create mode 100644 lua.h create mode 100644 main.cpp create mode 100644 memobj.cpp create mode 100644 memobj.h create mode 100644 samurai.cpp create mode 100644 samurai.h create mode 100644 state.cpp create mode 100644 state.h create mode 100644 struct.cpp create mode 100644 struct.h diff --git a/Release/CL.read.1.tlog b/Release/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..4b613e1555f611050a977cf67299476dbcf923ff GIT binary patch literal 70830 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 L;$W-veb?{-6a0{E literal 0 HcmV?d00001 diff --git a/Release/cl.command.1.tlog b/Release/cl.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..f9d6ba2b9c60ac51dd8a43cbd0093f7dc0f7adef GIT binary patch literal 2774 zcmeH}O;5r=5Qg8giT}ZH7yP(!Q(CIVQUe$WArge5BnV9<8vOCGTkGI|ad_T!kT|)&5b)zfw9pBKsM(Q95^{6)VmggR8OP9JptD`Q`u6$M1&;#RG zN2+O}6V`#|mM*o@g89NU@*dV(+SjS&BD@(%+)h9YX2)aQo$VpZN<&?9ddKPo zdUKXOxxBkbLTg_m!=2W~YR{CAd7@M?nsfAHDY6rO`Js& zzCw*+GL5k@o`#HywQFjcv-^REbDc4&_?hb2X$SBo=Pva$bgU(FK~28!x~*7D1gVX~ zoS9f|?Q&UBgTzMszkS^wC!xhot3*kmP?FcxLonj=or!pt?@F8$3@7=W-5)FF-f43u bHK66qQ?#2Wud|0>CHwzUqNP}9`K!0TL4BOO literal 0 HcmV?d00001 diff --git a/Release/gmcl_samurai_win32.Build.CppClean.log b/Release/gmcl_samurai_win32.Build.CppClean.log new file mode 100644 index 0000000..154af4e --- /dev/null +++ b/Release/gmcl_samurai_win32.Build.CppClean.log @@ -0,0 +1,21 @@ +D:\GMHax\gmcl_samurai_win32\Release\cl.command.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\CL.read.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\CL.write.1.tlog +D:\GMHAX\GMCL_SAMURAI_WIN32\RELEASE\GMCL_SAMURAI_WIN32.DLL.INTERMEDIATE.MANIFEST +D:\GMHax\gmcl_samurai_win32\Release\gmcl_samurai_win32.vcxprojResolveAssemblyReference.cache +D:\GMHax\gmcl_samurai_win32\Release\gmcl_samurai_win32.write.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\link.command.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\link.read.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\link.write.1.tlog +D:\GMHAX\GMCL_SAMURAI_WIN32\RELEASE\MAIN.OBJ +D:\GMHAX\GMCL_SAMURAI_WIN32\RELEASE\MEMOBJ.OBJ +D:\GMHax\gmcl_samurai_win32\Release\mt.command.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\mt.read.1.tlog +D:\GMHax\gmcl_samurai_win32\Release\mt.write.1.tlog +D:\GMHAX\GMCL_SAMURAI_WIN32\RELEASE\STATE.OBJ +D:\GMHAX\GMCL_SAMURAI_WIN32\RELEASE\STRUCT.OBJ +D:\GMHax\gmcl_samurai_win32\Release\vc100.pdb +D:\GMHAX\RELEASE\GMCL_SAMURAI_WIN32.DLL +D:\GMHax\Release\gmcl_samurai_win32.exp +D:\GMHax\Release\gmcl_samurai_win32.lib +D:\GMHAX\RELEASE\GMCL_SAMURAI_WIN32.PDB diff --git a/Release/gmcl_samurai_win32.dll.intermediate.manifest b/Release/gmcl_samurai_win32.dll.intermediate.manifest new file mode 100644 index 0000000..ecea6f7 --- /dev/null +++ b/Release/gmcl_samurai_win32.dll.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Release/gmcl_samurai_win32.lastbuildstate b/Release/gmcl_samurai_win32.lastbuildstate new file mode 100644 index 0000000..67b41d3 --- /dev/null +++ b/Release/gmcl_samurai_win32.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100:false +Release|Win32|D:\GMHax\| diff --git a/Release/gmcl_samurai_win32.log b/Release/gmcl_samurai_win32.log new file mode 100644 index 0000000..b5fd3bd --- /dev/null +++ b/Release/gmcl_samurai_win32.log @@ -0,0 +1,30 @@ +Build started 13.05.2017 17:50:32. + 1>Project "D:\GMHax\gmcl_samurai_win32\gmcl_samurai_win32.vcxproj" on node 2 (build target(s)). + 1>InitializeBuildStatus: + Creating "Release\gmcl_samurai_win32.unsuccessfulbuild" because "AlwaysCreate" was specified. + ClCompile: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D _WINDLL /D _MBCS /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt samurai.cpp + samurai.cpp + 1>samurai.cpp(105): warning C4018: <: несоответствие типов со знаком и без знака + 1>samurai.cpp(119): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(110): см. объявление "strcat" + Link: + C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"D:\GMHax\Release\gmcl_samurai_win32.dll" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\gmcl_samurai_win32.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\GMHax\Release\gmcl_samurai_win32.pdb" /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"D:\GMHax\Release\gmcl_samurai_win32.lib" /MACHINE:X86 /DLL Release\main.obj + Release\memobj.obj + Release\samurai.obj + Release\state.obj + Release\struct.obj + Создается библиотека D:\GMHax\Release\gmcl_samurai_win32.lib и объект D:\GMHax\Release\gmcl_samurai_win32.exp + Создание кода + Создание кода завершено + gmcl_samurai_win32.vcxproj -> D:\GMHax\Release\gmcl_samurai_win32.dll + Manifest: + C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"D:\GMHax\Release\gmcl_samurai_win32.dll;#2" /manifest Release\gmcl_samurai_win32.dll.intermediate.manifest + FinalizeBuildStatus: + Deleting file "Release\gmcl_samurai_win32.unsuccessfulbuild". + Touching "Release\gmcl_samurai_win32.lastbuildstate". + 1>Done Building Project "D:\GMHax\gmcl_samurai_win32\gmcl_samurai_win32.vcxproj" (build target(s)). + +Построение успешно завершено. + +Time Elapsed 00:00:06.66 diff --git a/Release/gmcl_samurai_win32.vcxprojResolveAssemblyReference.cache b/Release/gmcl_samurai_win32.vcxprojResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..3f0168105c545dc757bd6373b277614955157056 GIT binary patch literal 713 zcmaKq;cn9~5XZf=>DnwqeSm!k5+6XTtX5^PO{yjqQEh@vgI4<#KDhA(tUB>zJ7eWJ z5O2a;An_u+1Kf360a4*d|M=qb-S6(gHW*_+anYMr9H6{AQ@J(H6rLZ~N=rT!ZtnQ? zQ{L|-mtdVT)d&rGdP!PqUt1VePy)M`3eXK`o zm{0$S|KrX65fvLn1m9_rgeYCw(Lt+)GD{CLM0#&UnT)Y3E_r;j|LjTj77DOX<&eB^ z4od7ixNOzjY>fW!(b##$&tFb|TQtjTg=c|Ft-F+U*>-ADNV2<%^w*#8$C!2rW;r6F zjJ0t7%t%!zkg>QWTAU+8Ea3_&iKGY^yIgn=c3H>+TUTC{a5stV;vSibPos!-~^B^tZSDW>+DW z0x1*+q1~O?vuDok%G^r>3l2CO#!i(0la{d5_gYpJ<1m9$eWv{H`e3Oi%G*N(ox{z1ETbrI+b zh$Vc+-iJTo@A9|w9hMz9W3?Iz=nKu5*}Dk4hIav1(eU|5rMBAeEe|+y?3IhYXspTb z-lBB-fUVS5r>3dLnCA@^@5|77)0o-gD~NHwpAFWGv#Rg%&YPp8K6C1BPoMj9M&`y< zZhB~5!+edFlBj2lO_ybB$jDwnU-J_@17?PJ{Vh9p zRs#08d-C_k@5yo$@rK(Q9HVohw|Y})P0-(ZP&1ZmtAv1T&Gb$7ay0A8>SI;SKZdKn V2#+Igh-=mNFVv2Em4iIQ{RQBb6hr_3 literal 0 HcmV?d00001 diff --git a/Release/link.read.1.tlog b/Release/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..e7c74e2605561888b24f1df2eaaf02bf6b3deab7 GIT binary patch literal 3416 zcmd6q*-pbS5Jm4Z693Rgc&XUL_SPn831q42bfL1~NBDN&Owy>(f)FB=Q57$ZJ-(hh z9^bsZJ}K6%yvE9Pr-7F1cBD+ta{QBPrYUtwe?eL3TxX1$Dq&2*8%OCGXJZQWRcfev zy>w_f!Fpr0d+VR~xDWdko~iKBer!+SC&GSf{ZI$=jnfGnl`w1Uv%@k>d}hzKjaw~YbjiNMkdTJD6={``s+6#u*^Vd zXe>%Y;uzz>G&qXp#5!W3l{70aB} z9F`4_>6ePO-M}TiQ}l{y7EjKPD2FvNPunzt-AGvg6s>y7L2J0oW8LPN-}t0OW7#)` z8PklW6?YMBM}pI1?Qc6>mKQwxSh1UCb|~+*92@r+x&f8#ut2L?M*qnAZhqPRwz03H PpT3Ct>~~3Kv}k?@L$lfc literal 0 HcmV?d00001 diff --git a/Release/link.write.1.tlog b/Release/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..bb852009d07d67913c095252ceb3475fb7174468 GIT binary patch literal 800 zcmcJN%L>9U5Jk^g@K>_XojY5jR@x|OMHfYX#BWz`suk3LMOp%r*W_g8&fKmi7R;zw zQLtvt@wraPIaBJSV2{_FX@8J)Oqs~bW94IYQ_9xz3qB6RmV^zL9?4ep2ep6tdyYf! zD=AY+qhZ)y^-0BV>0?F_iw(6Mx0zDPV7SX?vgIA+J8;cPeD1aXsx2jUP^{; VbJ{O;UMl-|jQ?f5(@#l5yaRP9bx;5R literal 0 HcmV?d00001 diff --git a/Release/main.obj b/Release/main.obj new file mode 100644 index 0000000000000000000000000000000000000000..5b330ec940884ce4afce7020b203a287e397a241 GIT binary patch literal 59482 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 literal 0 HcmV?d00001 diff --git a/Release/memobj.obj b/Release/memobj.obj new file mode 100644 index 0000000000000000000000000000000000000000..bc83e4a0214b7501e6c3a227b11cb86af65bdca5 GIT binary patch literal 66053 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 literal 0 HcmV?d00001 diff --git a/Release/mt.command.1.tlog b/Release/mt.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..6e3afc704e7e018e6359193369e5c28eb08f0dc4 GIT binary patch literal 452 zcmbV|O-sW-6h+Tk@IOf1PeFHeRW#K=>mpHfQ7l!X6p~aX@#EL4C!?FL1PSxz-8*;g z&6}^!JIp>^cy?Q4zTpb#?=@<&~b7RHIy%n8<_ugwf8N zYd+Ehm7W#rYf1N|h U>UD_zLuKAZ{{aW_Zqo2J-|3c3qW}N^ literal 0 HcmV?d00001 diff --git a/Release/mt.read.1.tlog b/Release/mt.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..bdcbf38d717abd58df4f2056c1b1b1949eee3ada GIT binary patch literal 622 zcmb`F%}#?*5QWd$#CPaYH^dgT+8qL|!~)H|SX?yv{x8w?n}Ni{HtC{uW1#|ux;?R?87v#HDQvVSvudY?`Hja-f1~-<4n(m zhWXnc>3C3ddPcH$Qcu=_J+)Jr=uGsbSU-e+Tfwx>6IRaEy(~ZKCOL}^>c))3NmcZA MR6qW>C4C{j0fPM{3IG5A literal 0 HcmV?d00001 diff --git a/Release/samurai.obj b/Release/samurai.obj new file mode 100644 index 0000000000000000000000000000000000000000..0fe8d5f4460a071ccf9ff62f3c84e5ccebe4e654 GIT binary patch literal 69096 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 literal 0 HcmV?d00001 diff --git a/Release/state.obj b/Release/state.obj new file mode 100644 index 0000000000000000000000000000000000000000..809e1b2848f8708f0c9535f5eeb7fa97f6444106 GIT binary patch literal 82534 zcmeEPcVJXi)_*ezWJpM1z=EO#2q6JR>5vg5lgT6*m}FuKMZqy70U~LnP^_b1P}bfR z3pR9dv0xn)R;;*oKm-w_2&kZfiXtj}zjN+=Z{C|E==#1t*InM+cFz5sbI-l^-11%& z<=8Qc; zoJtv0&Ou9v$xwhrLduHMnhRmat=}&lhfvn8j(IFzpA{UuCZ= z)o!kXgI-2I!S5{P2D~{<(wsT5ueqPzU zDKl!ys{@T?HO&oWRe`xxwL^zYX>2NMsyw5-zFu+UHVzwCzH4_`)HUH#%Ar%aAAq1{6H?Uds$<{NxGo!DGix4tB68 z^xL1G1Nb?Rp7tG`Dx45==JAA`sU%sRyJPRe+e1&y?w|B+)NYEYp=$NS&dVm?25X%jZ@}~JY!JV zl&aeD>gI|{HI-Rkxnb?Bt;&DfTZ-u|};G6|?44HZb!JPd!t3vwQG& zw?Fd6N43-XW!iWDIrBNf&Kh-gHm6*JUOBJ4zKMCyC_H@4+qXZyFSfeNZ%=>T>rVSu zW_g#_RaBPMmQ~MhtZJOnSl8T8j%aNiEVZhxwvj6htvnl$dqCr<12*x1Vw3aGu`|UrOh2GdyQPwbn^>XtKRj>BW zO|NeR&3ckH%*{O7!ngSxT4vb?dWp{jOwqUED!nwQ+TwD^w`H@*MGCw=Yf&G8OH57!a>^8WcdJ1LjG z@#3)9IU{Fpw14vdR!4I!?2-j}_Qj6(?H%5sN3ZXGP;NZ3_B{KB|F=r0Ey~3(^jZ42 zseNvLx7$ru^t*9664`VkiyXw((Bb}puoowG| zs)|VVLqD%gTmH(si!K~j9euC0%NqM8Q|xC|Hq=&DhtaQmxy!Z<2Y!8Y@%0A>jeU2? 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 + + + + Debug + Win32 + + + Release + Win32 + + + + {8CDB4A26-C5A0-4AF8-BA78-BE9022004A3A} + gmcl_samurai_win32 + + + + Application + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + + + + + + + + + + + + + Level3 + Disabled + + + true + + + + + Level3 + MaxSpeed + true + true + + + true + true + true + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gmcl_samurai_win32.vcxproj.filters b/gmcl_samurai_win32.vcxproj.filters new file mode 100644 index 0000000..d871e60 --- /dev/null +++ b/gmcl_samurai_win32.vcxproj.filters @@ -0,0 +1,54 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Файлы исходного кода + + + Файлы исходного кода + + + Файлы исходного кода + + + Файлы исходного кода + + + Файлы исходного кода + + + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + Заголовочные файлы + + + \ No newline at end of file diff --git a/gmcl_samurai_win32.vcxproj.user b/gmcl_samurai_win32.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/gmcl_samurai_win32.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/interface.h b/interface.h new file mode 100644 index 0000000..9b1b656 --- /dev/null +++ b/interface.h @@ -0,0 +1,37 @@ +#ifndef __INTERFACE_H +#define __INTERFACE_H + +#include "lua.h" +#include "state.h" + +class CLuaInterface; + +class CLuaShared +{ +public: + void** vtable; + char tmp[88]; + CLuaInterface* m_pClient; + CLuaInterface* m_pServer; + CLuaInterface* m_pMenu; +}; + +class CLuaInterface +{ +public: + void** vtable; + CLuaState* m_pState; +}; + +#ifndef DLL_EXPORT +#if defined(__GCC__) +#define DLL_EXPORT __attribute__((dllexport)) +#elif defined (_MSC_VER) +#define DLL_EXPORT __declspec(dllexport) +#endif +#endif + +#define GMOD_MODULE_OPEN() extern "C" DLL_EXPORT int gmod13_open(CLuaState* L) +#define GMOD_MODULE_CLOSE() extern "C" DLL_EXPORT int gmod13_close(CLuaState* L) + +#endif \ No newline at end of file diff --git a/lua.h b/lua.h new file mode 100644 index 0000000..fafb160 --- /dev/null +++ b/lua.h @@ -0,0 +1,87 @@ +#ifndef __LUA_H +#define __LUA_H + +#include +#include +#include + +#define LUA_REGISTRYINDEX (-10000) +#define LUA_ENVIRONINDEX (-10001) +#define LUA_GLOBALSINDEX (-10002) + +class CLuaState; +typedef int (*CLuaFunction)(CLuaState*); + +typedef int (*lua_type) (CLuaState *L, int idx); +typedef const char *(*lua_typename) (CLuaState *L, int tp); + +typedef int (*lua_gettop) (CLuaState *L); +typedef void (*lua_settop) (CLuaState *L, int idx); +typedef void (*lua_pushvalue) (CLuaState *L, int idx); + +typedef double (*lua_tonumber) (CLuaState *L, int idx); +typedef int (*lua_toboolean) (CLuaState *L, int idx); +typedef const char *(*lua_tolstring) (CLuaState *L, int idx, size_t *len); +typedef CLuaFunction (*lua_tocfunction) (CLuaState *L, int idx); +typedef void *(*lua_touserdata) (CLuaState *L, int idx); +typedef CLuaState *(*lua_tothread) (CLuaState *L, int idx); +typedef const void *(*lua_topointer) (CLuaState *L, int idx); + +typedef void (*lua_pushnil) (CLuaState *L); +typedef void (*lua_pushnumber) (CLuaState *L, double n); +typedef void (*lua_pushlstring) (CLuaState *L, const char *s, size_t l); +typedef void (*lua_pushcclosure) (CLuaState *L, CLuaFunction fn, int n); +typedef void (*lua_pushboolean) (CLuaState *L, int b); +typedef void (*lua_pushlightuserdata) (CLuaState *L, void *p); +typedef int (*lua_pushthread) (CLuaState *L); + +typedef void (*lua_gettable) (CLuaState *L, int idx); +typedef void (*lua_getfield) (CLuaState *L, int idx, const char *k); +typedef void (*lua_rawget) (CLuaState *L, int idx); +typedef void (*lua_rawgeti) (CLuaState *L, int idx, int n); +typedef void (*lua_createtable) (CLuaState *L, int narr, int nrec); +typedef void *(*lua_newuserdata) (CLuaState *L, size_t sz); +typedef int (*lua_getmetatable) (CLuaState *L, int objindex); +typedef void (*lua_getfenv) (CLuaState *L, int idx); + +typedef void (*lua_settable) (CLuaState *L, int idx); +typedef void (*lua_setfield) (CLuaState *L, int idx, const char *k); +typedef void (*lua_rawset) (CLuaState *L, int idx); +typedef void (*lua_rawseti) (CLuaState *L, int idx, int n); +typedef int (*lua_setmetatable) (CLuaState *L, int objindex); +typedef int (*lua_setfenv) (CLuaState *L, int idx); + +typedef void (*lua_call) (CLuaState *L, int nargs, int nresults); +typedef int (*lua_pcall) (CLuaState *L, int nargs, int nresults, int errfunc); + +typedef int (*luaL_loadbufferx)(CLuaState *L, const char *buff, + size_t sz,const char *name,const char* mode); +typedef int (*luaL_newmetatable) (CLuaState *L, const char *tname); +typedef void (*luaL_checktype) (CLuaState *L, int narg, int t); +typedef size_t (*lua_objlen) (CLuaState *L, int idx); +typedef void (*lua_pushinteger)(CLuaState *L, int n); +typedef int (*lua_tointeger)(CLuaState* L,int idx); + +typedef enum { + OK = 0, + YIELD, + ERRRUN, + ERRSYNTAX, + ERRMEM, + ERRERR +} ret_t; + +typedef enum { + NONE = -1, + NIL, + TBOOLEAN, + LIGHTUSERDATA, + NUMBER, + STRING, + TABLE, + FUNCTION, + USERDATA, + THREAD, +} luatype_t; + +#endif \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..8e5477f --- /dev/null +++ b/main.cpp @@ -0,0 +1,21 @@ +#include +#include "interface.h" +#include "memobj.h" +#include "struct.h" +#include "samurai.h" + +GMOD_MODULE_OPEN() +{ + MemObj_Open(L); + Struct_Open(L); + Samurai_Open(L); + return 0; +} + +GMOD_MODULE_CLOSE() +{ + MemObj_Close(L); + Struct_Close(L); + Samurai_Close(L); + return 0; +} \ No newline at end of file diff --git a/memobj.cpp b/memobj.cpp new file mode 100644 index 0000000..0d80cdf --- /dev/null +++ b/memobj.cpp @@ -0,0 +1,121 @@ +#include "memobj.h" +#include "struct.h" + +int lMemObj_Create(CLuaState* L) +{ + L->CheckType(1,NUMBER); + + memobj_t* obj = new memobj_t; + obj->sz = L->GetInteger(1); + obj->mem = (void*)malloc(obj->sz); + + userdata_t* pData = L->NewUserData(); + pData->data = obj; + pData->type = MEMOBJ_TYPE; + + L->GetMetaFromRegistry(MEMOBJ_NAME); + L->SetMetaTable(-2); + + return 1; +} + +memobj_t* MemObj_Check(CLuaState* L,int idx) +{ + userdata_t* pData = L->GetUserData(idx); + if(pData->type == MEMOBJ_TYPE) + return (memobj_t*)pData->data; + else + return NULL; +} + +int lMemObj_tostr(CLuaState* L) +{ + memobj_t* obj = MemObj_Check(L,1); + if(!obj) + return 0; + else + L->PushFString("memobj_t mem %p size %d",obj->mem,obj->sz); + return 1; +} + +int lMemObj_eq(CLuaState* L) +{ + memobj_t* obj1 = MemObj_Check(L,1),*obj2 = MemObj_Check(L,2); + L->PushBool(((obj1->mem == obj2->mem) && (obj1->sz == obj2->sz))); + return 1; +} + +int lMemObj_gc(CLuaState *L) +{ + memobj_t* obj = MemObj_Check(L,1); + if(obj->mem) + free(obj->mem); + delete obj; + return 0; +} + +int lMemObj_ToString(CLuaState* L) +{ + memobj_t* obj = MemObj_Check(L,1); + L->PushString((const char*)obj->mem,obj->sz); + return 1; +} + +int lMemObj_ToStruct(CLuaState* L) +{ + memobj_t* obj = MemObj_Check(L,1); + Struct_Create(L,obj); + return 1; +} + +int lMemObj_ToPointer(CLuaState* L) +{ + memobj_t* obj = MemObj_Check(L,1); + L->PushInteger((int)obj->mem); + return 1; +} + +int lMemObj_Free(CLuaState* L) +{ + memobj_t* obj = MemObj_Check(L,1); + if(obj->mem) + { + free(obj->mem); + obj->mem = NULL; + } + return 0; +} + +int MemObj_Open(CLuaState* L) +{ + L->CreateMetaTable(MEMOBJ_NAME); + + L->PushCFunction(lMemObj_tostr); + L->SetField(-2,"__tostring"); + + L->PushCFunction(lMemObj_eq); + L->SetField(-2,"__eq"); + + L->PushCFunction(lMemObj_gc); + L->SetField(-2,"__gc"); + + L->PushCFunction(lMemObj_Free); + L->SetField(-2,"Free"); + + L->PushCFunction(lMemObj_ToString); + L->SetField(-2,"ToString"); + + L->PushCFunction(lMemObj_ToStruct); + L->SetField(-2,"ToStruct"); + + L->PushCFunction(lMemObj_ToPointer); + L->SetField(-2,"ToPointer"); + + L->Push(-1); + L->SetField(-2,"__index"); + return 0; +} +int MemObj_Close(CLuaState* L) +{ + return 0; +} \ No newline at end of file diff --git a/memobj.h b/memobj.h new file mode 100644 index 0000000..ee5c345 --- /dev/null +++ b/memobj.h @@ -0,0 +1,23 @@ +#ifndef __MEMOBJ_H +#define __MEMOBJ_H + +#include "interface.h" +#include +#include +#include +#include + +#define MEMOBJ_NAME "luaL_MemObj" +#define MEMOBJ_TYPE 195 + +typedef struct { + void* mem; + size_t sz; +} memobj_t; + +int lMemObj_Create(CLuaState* L); + +int MemObj_Open(CLuaState* L); +int MemObj_Close(CLuaState* L); + +#endif \ No newline at end of file diff --git a/samurai.cpp b/samurai.cpp new file mode 100644 index 0000000..e57c740 --- /dev/null +++ b/samurai.cpp @@ -0,0 +1,183 @@ +#include "samurai.h" +#include "memobj.h" +#include "struct.h" + +int lGetModuleHandle(CLuaState* L) +{ + L->CheckType(1,STRING); + L->PushInteger((int)GetModuleHandleA(L->GetString(1))); + return 1; +} + +int lGetProcAddress(CLuaState* L) +{ + L->CheckType(1,NUMBER); + L->CheckType(2,STRING); + L->PushInteger((int)GetProcAddress((HMODULE)L->GetInteger(1),L->GetString(2))); + return 1; +} + +__declspec(naked) int VStdCall(int func,int stack) //StdCall +{ + __asm + { + push ebp + mov ebp,esp + + mov eax,[func] + mov esp,[stack] + call eax + mov esp,ebp + + pop ebp + retn + } +} + +int lInvoke(CLuaState* L) +{ + DWORD dwFunc,dwData; + int argnum; + int* s_ptr; + char stack[10240]; + + s_ptr = (int*)&stack[10240]; + memset(stack,'\0',10240); + + L->CheckType(1,NUMBER); + + dwFunc = (DWORD)L->GetInteger(1); + argnum = L->GetTop(); + + for(int i = argnum; i != 1; i--) + { + int type = L->Type(i); + switch(type) + { + case NUMBER: + dwData = L->GetInteger(i); + break; + case STRING: + dwData = (DWORD)L->GetString(i); + break; + case TBOOLEAN: + dwData = (DWORD)L->GetBool(i); + break; + default: + fprintf(stderr,"%d invalid type!\n",i); + } + s_ptr--; + *s_ptr = dwData; + } + + L->PushInteger(VStdCall(dwFunc,(int)s_ptr)); + return 1; +} + +void Export2Table(CLuaState* L,const char* name) +{ + PIMAGE_DOS_HEADER DosHeader; + PIMAGE_NT_HEADERS NtHeader; + PIMAGE_SECTION_HEADER SecHeader; + PIMAGE_EXPORT_DIRECTORY Exports; + PIMAGE_DATA_DIRECTORY Data; + HMODULE hDll; + DWORD dwLocal; + char* text,*end,*len; + char funcName[MAX_PATH]; + + LPVOID lpBase = (LPVOID)GetModuleHandle(name); + + DosHeader = (PIMAGE_DOS_HEADER)lpBase; + NtHeader = (PIMAGE_NT_HEADERS)((DWORD)lpBase + DosHeader->e_lfanew); + SecHeader = IMAGE_FIRST_SECTION(NtHeader); + Data = (PIMAGE_DATA_DIRECTORY)(&NtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]); + Exports = (PIMAGE_EXPORT_DIRECTORY)((DWORD)lpBase + Data->VirtualAddress); + + L->CreateTable(); + + PDWORD pdwFunctions = (PDWORD)((DWORD)lpBase+Exports->AddressOfFunctions); + const char** Names = (const char**)((DWORD)lpBase+Exports->AddressOfNames); + unsigned short* ordinal = (unsigned short*)((DWORD)lpBase+Exports->AddressOfNameOrdinals); + + for(int i = 0; i < Exports->NumberOfNames; i++) + { + const char* name = ((DWORD)lpBase+Names[i]); + unsigned short ord = ordinal[i]; + dwLocal = (DWORD)lpBase+pdwFunctions[ord]; + DWORD dwNew = (DWORD)GetProcAddress((HMODULE)lpBase,name); + if(dwLocal >= (DWORD)Exports && dwLocal <= (DWORD)Exports + Data->Size) + { + text = (char*)dwLocal; + len = (char*)(text+strlen(text)); + memset(funcName,'\0',MAX_PATH); + if(!(end = (char*)strchr(text,'.'))) + continue; + memcpy(funcName,text,(size_t)(end-text)); + strcat(funcName,".dll"); + if(!(hDll = GetModuleHandle(funcName))) + continue; + end++; + memcpy(funcName,end,(len-end)); + dwLocal = (DWORD)GetProcAddress(hDll,funcName); + } + + L->PushInteger(dwLocal); + L->SetField(-2,name); + } +} + +int lExport2Table(CLuaState* L) +{ + L->CheckType(1,STRING); + Export2Table(L,L->GetString(1)); + return 1; +} + +int Samurai_Open(CLuaState* L) +{ + L->CreateTable(); + + L->PushCFunction(lGetModuleHandle); + L->SetField(-2,"GetModuleHandle"); + + L->PushCFunction(lGetProcAddress); + L->SetField(-2,"GetProcAddress"); + + L->PushCFunction(lExport2Table); + L->SetField(-2,"ExportTable"); + + L->PushCFunction(lMemObj_Create); + L->SetField(-2,"Alloc"); + + L->PushCFunction(Struct_FromPointer); + L->SetField(-2,"StructFromPointer"); + + L->SetGlobal("samurai"); + + L->PushCFunction(lInvoke); + L->SetGlobal("invoke"); + + Export2Table(L,"kernel32.dll"); + L->SetGlobal("kernel32"); + + Export2Table(L,"user32.dll"); + L->SetGlobal("user32"); + + L->PushInteger(0); + L->SetGlobal("NULL"); + return 0; +} + +int Samurai_Close(CLuaState* L) +{ + L->PushNil(); + L->SetGlobal("samurai"); + + L->PushNil(); + L->SetGlobal("invoke"); + + L->PushNil(); + L->SetGlobal("NULL"); + return 0; +} \ No newline at end of file diff --git a/samurai.h b/samurai.h new file mode 100644 index 0000000..271ab3c --- /dev/null +++ b/samurai.h @@ -0,0 +1,12 @@ +#ifndef __SAMURAI_H +#define __SAMURAI_H + +#include "interface.h" +#include +#include +#include + +int Samurai_Open(CLuaState* L); +int Samurai_Close(CLuaState* L); + +#endif \ No newline at end of file diff --git a/state.cpp b/state.cpp new file mode 100644 index 0000000..651dad8 --- /dev/null +++ b/state.cpp @@ -0,0 +1,343 @@ +#include "state.h" + +func_t lua_api[] = { + {"lua_gettop",NULL}, //0 + {"lua_settop",NULL}, //1 + {"lua_pushvalue",NULL}, //2 + {"lua_tonumber",NULL}, //3 + {"lua_toboolean",NULL}, //4 + {"lua_tolstring",NULL}, //5 + {"lua_tocfunction",NULL}, //6 + {"lua_touserdata",NULL}, //7 + {"lua_tothread",NULL}, //8 + {"lua_topointer",NULL}, //9 + {"lua_pushnil",NULL}, //10 + {"lua_pushnumber",NULL}, //11 + {"lua_pushlstring",NULL}, //12 + {"lua_pushcclosure",NULL}, //13 + {"lua_pushboolean",NULL}, //14 + {"lua_pushlightuserdata",NULL}, //15 + {"lua_pushthread",NULL}, //16 + {"lua_gettable",NULL}, //17 + {"lua_getfield",NULL}, //18 + {"lua_rawget",NULL}, //19 + {"lua_rawgeti",NULL}, //20 + {"lua_createtable",NULL}, //21 + {"lua_getmetatable",NULL}, //22 + {"lua_newuserdata",NULL}, //23 + {"lua_getfenv",NULL}, //24 + {"lua_settable",NULL}, //25 + {"lua_setfield",NULL}, //26 + {"lua_rawset",NULL}, //27 + {"lua_rawseti",NULL}, //28 + {"lua_setmetatable",NULL}, //29 + {"lua_setfenv",NULL}, //30 + {"lua_call",NULL}, //31 + {"lua_pcall",NULL}, //32 + {"luaL_loadbufferx",NULL}, //33 + {"luaL_newmetatable",NULL}, //34 + {"lua_type",NULL}, //35 + {"lua_typename",NULL}, //36 + {"luaL_checktype",NULL}, //37 + {"lua_objlen",NULL}, //38 + {"lua_pushinteger",NULL}, //39 + {"lua_tointeger",NULL}, //40 + {NULL,NULL} +}; + +CLuaState::CLuaState() +{ +} + +CLuaState::~CLuaState() +{ +} + +int CLuaState::GetTop() +{ + return (((lua_gettop)lua_api[0].ptr))(this); +} + +void CLuaState::SetTop(int n) +{ + (((lua_settop)lua_api[1].ptr))(this,n); +} + +void CLuaState::SetField(int idx,const char* name) +{ + (((lua_setfield)lua_api[26].ptr))(this,idx,name); +} + +void CLuaState::GetField(int idx,const char* name) +{ + (((lua_getfield)lua_api[18].ptr))(this,idx,name); +} + +void CLuaState::Push(int idx) +{ + (((lua_pushvalue)lua_api[2].ptr))(this,idx); +} + +void CLuaState::PushNil() +{ + (((lua_pushnil)lua_api[10].ptr))(this); +} + +void CLuaState::PushBool(bool val) +{ + (((lua_pushboolean)lua_api[14].ptr))(this,val); +} + +void CLuaState::PushNumber(double num) +{ + (((lua_pushnumber)lua_api[11].ptr))(this,num); +} + +void CLuaState::PushInteger(int n) +{ + (((lua_pushinteger)lua_api[39].ptr))(this,n); +} + +void CLuaState::PushCClosure(CLuaFunction fn,int n) +{ + (((lua_pushcclosure)lua_api[13].ptr))(this,fn,n); +} + +void CLuaState::PushString(const char* str,size_t len) +{ + if(!len) + len = strlen(str); + (((lua_pushlstring)lua_api[12].ptr))(this,str,len); +} + +void CLuaState::PushVString(const char* fmt,va_list ap) +{ + char buf[512]; + vsnprintf(buf,512,fmt,ap); + PushString(buf); +} + +void CLuaState::PushFString(const char* fmt,...) +{ + va_list ap; + va_start(ap,fmt); + PushVString(fmt,ap); + va_end(ap); +} + +void CLuaState::PushLightUserData(void* p) +{ + (((lua_pushlightuserdata)lua_api[15].ptr))(this,p); +} + +void CLuaState::PushThread(CLuaState* L) +{ + (((lua_pushthread)lua_api[16].ptr))(L); +} + +bool CLuaState::GetBool(int idx) +{ + return (((lua_toboolean)lua_api[4].ptr))(this,idx); +} + +double CLuaState::GetNumber(int idx) +{ + return (((lua_tonumber)lua_api[3].ptr))(this,idx); +} + +int CLuaState::GetInteger(int idx) +{ + return (((lua_tointeger)lua_api[40].ptr))(this,idx); +} + +const char* CLuaState::GetString(int idx,size_t* len) +{ + return (((lua_tolstring)lua_api[5].ptr))(this,idx,len); +} + +userdata_t* CLuaState::GetUserData(int idx) +{ + return (userdata_t*)(((lua_touserdata)lua_api[7].ptr))(this,idx); +} + +CLuaFunction CLuaState::GetCFunction(int idx) +{ + return (((lua_tocfunction)lua_api[6].ptr))(this,idx); +} + +CLuaState* CLuaState::GetThread(int idx) +{ + return (((lua_tothread)lua_api[8].ptr))(this,idx); +} + +const void* CLuaState::GetPointer(int idx) +{ + return (((lua_topointer)lua_api[9].ptr))(this,idx); +} + +void CLuaState::CreateTable() +{ + (((lua_createtable)lua_api[21].ptr))(this,0,0); +} + +void CLuaState::GetTable(int idx) +{ + (((lua_gettable)lua_api[17].ptr))(this,idx); +} + +void CLuaState::SetTable(int idx) +{ + (((lua_settable)lua_api[25].ptr))(this,idx); +} + +void CLuaState::RawGet(int idx) +{ + (((lua_rawget)lua_api[19].ptr))(this,idx); +} + +void CLuaState::RawGeti(int idx,int n) +{ + (((lua_rawgeti)lua_api[20].ptr))(this,idx,n); +} + +void CLuaState::RawSet(int idx) +{ + (((lua_rawset)lua_api[27].ptr))(this,idx); +} + +void CLuaState::RawSeti(int idx,int n) +{ + (((lua_rawseti)lua_api[28].ptr))(this,idx,n); +} + +void CLuaState::GetEnvironment(int idx) +{ + (((lua_getfenv)lua_api[24].ptr))(this,idx); +} + +void CLuaState::SetEnvironment(int idx) +{ + (((lua_setfenv)lua_api[30].ptr))(this,idx); +} + +userdata_t* CLuaState::NewUserData() +{ + return (userdata_t*)(((lua_newuserdata)lua_api[23].ptr))(this,sizeof(userdata_t)); +} + +void CLuaState::CreateMetaTable(const char* name) +{ + (((luaL_newmetatable)lua_api[34].ptr))(this,name); +} + +int CLuaState::GetMetaTable(int idx) +{ + return (((lua_getmetatable)lua_api[22].ptr))(this,idx); +} + +int CLuaState::SetMetaTable(int idx) +{ + return (((lua_setmetatable)lua_api[29].ptr))(this,idx); +} + +luatype_t CLuaState::Type(int idx) +{ + return (luatype_t)(((lua_type)lua_api[35].ptr))(this,idx); +} + +const char* CLuaState::TypeName(int idx) +{ + return (((lua_typename)lua_api[36].ptr))(this,Type(idx)); +} + +void CLuaState::CheckType(int idx,luatype_t tp) +{ + (((luaL_checktype)lua_api[37].ptr))(this,idx,tp); +} + +void CLuaState::Call(int nargs,int nret) +{ + (((lua_call)lua_api[31].ptr))(this,nargs,nret); +} + +int CLuaState::PCall(int nargs,int nret,int errfunc) +{ + return (((lua_pcall)lua_api[32].ptr))(this,nargs,nret,errfunc); +} + +void CLuaState::Print(const char* msg,...) +{ + GetGlobal("print"); + va_list ap; + va_start(ap,msg); + PushVString(msg,ap); + va_end(ap); + Call(1,0); +} + +int CLuaState::ObjLen(int idx) +{ + return (((lua_objlen)lua_api[38].ptr))(this,idx); +} + +int CLuaState::ReferenceCreate() +{ + int len = ObjLen(-1); + len++; + PushInteger(len); + Push(-2); + SetTable(LUA_REGISTRYINDEX); + Pop(); + return len; +} + +void CLuaState::ReferencePush(int refId) +{ + PushInteger(refId); + GetTable(LUA_REGISTRYINDEX); +} + +void CLuaState::ReferenceFree(int refId) +{ + PushInteger(refId); + PushNil(); + SetTable(LUA_REGISTRYINDEX); +} + +const char* CLuaState::RunString(const char* name,const char* buf,size_t len) +{ + const char* err = NULL; + if( (((luaL_loadbufferx)lua_api[33].ptr))(this,buf,len,name,NULL) != OK) + { + err = GetString(-1); + Pop(); + } + else + PCall(0,0,0); + return err; +} + +BOOL WINAPI ConnectLuaShared() +{ + HMODULE hLuaShared = NULL; + char szDebugInfo[128]; + if(!(hLuaShared = GetModuleHandle("lua_shared.dll"))) + return FALSE; + for(func_t* i = lua_api; i->name; i++) + { + if(!(i->ptr = (void*)GetProcAddress(hLuaShared,i->name))) + { + _snprintf(szDebugInfo,128,"GetProcAddress failed at %s",i->name); + MessageBoxA(NULL,szDebugInfo,"ConnectLuaShared",MB_ICONHAND); + return FALSE; + } + } + return TRUE; +} + +BOOL APIENTRY DllMain(HINSTANCE hDll,DWORD fdwReason,LPVOID lpReserved) +{ + if(fdwReason == DLL_PROCESS_ATTACH) + return ConnectLuaShared(); + return TRUE; +} \ No newline at end of file diff --git a/state.h b/state.h new file mode 100644 index 0000000..ffbc529 --- /dev/null +++ b/state.h @@ -0,0 +1,102 @@ +#ifndef __STATE_H +#define __STATE_H + +#include "lua.h" +#include +#include +#include + +typedef struct { + const char* name; + void* ptr; +} func_t; + +typedef struct { + void* data; + unsigned char type; +} userdata_t; + +class CLuaState +{ +public: + CLuaState(); + ~CLuaState(); + + int GetTop(); + void SetTop(int n); + + void SetField(int idx,const char* name); + void GetField(int idx,const char* name); + + inline void GetGlobal(const char* name){GetField(LUA_GLOBALSINDEX,name);} + inline void SetGlobal(const char* name){SetField(LUA_GLOBALSINDEX,name);} + inline void GetMetaFromRegistry(const char* name){GetField(LUA_REGISTRYINDEX,name);} + + void Push(int idx); + void Pop(int amt = 1){SetTop(-(amt)-1);} + + void PushNil(); + void PushBool(bool val); + void PushNumber(double num); + void PushInteger(int n); + void PushCClosure(CLuaFunction fn,int n); + inline void PushCFunction(CLuaFunction fn){PushCClosure(fn,0);} + void PushString(const char* str,size_t len = 0); + void PushVString(const char* fmt,va_list ap); + void PushFString(const char* fmt,...); + void PushLightUserData(void* p); + void PushThread(CLuaState* L); + + bool GetBool(int idx); + double GetNumber(int idx); + int GetInteger(int idx); + const char* GetString(int idx,size_t* len = NULL); + userdata_t* GetUserData(int idx); + CLuaFunction GetCFunction(int idx); + CLuaState* GetThread(int idx); + const void* GetPointer(int idx); + + void CreateTable(); + void GetTable(int idx); + void SetTable(int idx); + + void RawGet(int idx); + void RawGeti(int idx,int n); + void RawSet(int idx); + void RawSeti(int idx,int n); + + void GetEnvironment(int idx); + void SetEnvironment(int idx); + + userdata_t* NewUserData(); + void CreateMetaTable(const char* name); + int GetMetaTable(int idx); + int SetMetaTable(int idx); + + luatype_t Type(int idx); + const char* TypeName(int idx); + void CheckType(int idx,luatype_t tp); + + void Call(int nargs,int nret); + int PCall(int nargs,int nret,int errfunc); + + int ObjLen(int idx); + int ReferenceCreate(); + void ReferencePush(int refId); + void ReferenceFree(int refId); + + void Print(const char*,...); + const char* RunString(const char* name,const char* buf,size_t len); + + inline bool IsNil(int idx){return (Type(idx) == NIL);} + inline bool IsBool(int idx){return (Type(idx) == TBOOLEAN);} + inline bool IsLightUserData(int idx){return (Type(idx) == LIGHTUSERDATA);} + inline bool IsNumber(int idx){return (Type(idx) == NUMBER);} + inline bool IsString(int idx){return (Type(idx) == STRING);} + inline bool IsTable(int idx){return (Type(idx) == TABLE);} + inline bool IsFunction(int idx){return (Type(idx) == FUNCTION);} + inline bool IsUserData(int idx){return (Type(idx) == USERDATA);} + inline bool IsThread(int idx){return (Type(idx) == THREAD);} +}; + +#endif \ No newline at end of file diff --git a/struct.cpp b/struct.cpp new file mode 100644 index 0000000..5e24f8d --- /dev/null +++ b/struct.cpp @@ -0,0 +1,248 @@ +#include "struct.h" + +void Struct_Create(CLuaState* L,memobj_t* obj) +{ + struct_t* stc = new struct_t; + stc->page = obj; + stc->s_ptr = (char*)stc->page->mem; + stc->bFree = false; + + userdata_t* pData = L->NewUserData(); + pData->data = (void*)stc; + pData->type = STRUCT_TYPE; + + L->GetMetaFromRegistry(STRUCT_NAME); + L->SetMetaTable(-2); +} + +int Struct_FromPointer(CLuaState* L) +{ + struct_t* stc = new struct_t; + L->CheckType(1,NUMBER); + + stc->page = new memobj_t; + stc->s_ptr = (char*)stc->page->mem; + stc->bFree = false; + + userdata_t* pData = L->NewUserData(); + pData->data = (void*)stc; + pData->type = STRUCT_TYPE; + + L->GetMetaFromRegistry(STRUCT_NAME); + L->SetMetaTable(-2); + return 1; +} + +struct_t* Check_Struct(CLuaState* L,int idx) +{ + userdata_t* pData = L->GetUserData(idx); + if(pData->type == STRUCT_TYPE) + return (struct_t*)pData->data; + else + return NULL; +} + +int lStruct_tostr(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + L->PushFString("struct mem %p s_ptr %p size %d",stc->page->mem,stc->s_ptr,stc->page->sz); + return 1; +} + +int lStruct_eq(CLuaState* L) +{ + struct_t* st1 = Check_Struct(L,1),*st2 = Check_Struct(L,2); + L->PushBool(((st1->page == st2->page) && (st1->s_ptr == st2->s_ptr))); + return 1; +} + +int lStruct_gc(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + if(stc->bFree && stc->page->mem) + free(stc->page); + return 0; +} + +int lStruct_ResetPtr(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + stc->s_ptr = (char*)stc->page->mem; + return 0; +} + +int lStruct_GetOffset(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + L->PushInteger((int)(stc->s_ptr-(char*)stc->page->mem)); + return 1; +} + +int lStruct_SetOffset(CLuaState* L) +{ + L->CheckType(2,NUMBER); + struct_t* stc = Check_Struct(L,1); + stc->s_ptr=(char*)L->GetInteger(2); + return 0; +} + +int lStruct_Skip(CLuaState* L) +{ + L->CheckType(2,NUMBER); + struct_t* stc = Check_Struct(L,1); + stc->s_ptr=(char*)(stc->s_ptr+L->GetInteger(2)); + return 0; +} + +int lStruct_PushString(CLuaState* L) +{ + L->CheckType(2,STRING); + struct_t* stc = Check_Struct(L,1); + + const char* str = L->GetString(2); + size_t len = strlen(str) + 1; + + memcpy(stc->s_ptr,str,len); + stc->s_ptr = (char*)(stc->s_ptr+len); + + return 0; +} + +int lStruct_PushNumber(CLuaState* L) +{ + L->CheckType(2,NUMBER); + L->CheckType(3,NUMBER); + struct_t* stc = Check_Struct(L,1); + + size_t len = L->GetNumber(3); + int data = L->GetInteger(2); + + if(len == 1) + *(unsigned char*)stc->s_ptr = (unsigned char)data; + else if(len == 2) + *(unsigned short*)stc->s_ptr = (unsigned short)data; + else if(len == 4) + *(unsigned int*)stc->s_ptr = (unsigned int)data; + stc->s_ptr = (char*)(stc->s_ptr+len); + + return 0; +} + +int lStruct_GetStringFixed(CLuaState* L) +{ + L->CheckType(2,NUMBER); + struct_t* stc = Check_Struct(L,1); + + size_t len = L->GetInteger(2); + L->PushString(stc->s_ptr); + stc->s_ptr = (char*)(stc->s_ptr+len); + + return 1; +} + +int lStruct_GetString(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + + size_t len = strlen(stc->s_ptr)+1; + L->PushString(stc->s_ptr); + stc->s_ptr = (char*)(stc->s_ptr+len); + + return 1; +} + +int lStruct_GetNumber(CLuaState* L) +{ + L->CheckType(2,NUMBER); + struct_t* stc = Check_Struct(L,1); + + size_t len = L->GetInteger(2); + int data; + + if(len == 1) + data = stc->s_ptr[0]; + else if(len == 2) + data = *(unsigned short*)stc->s_ptr; + else if(len == 4) + data = *(unsigned int*)stc->s_ptr; + L->PushInteger(data); + stc->s_ptr = (char*)(stc->s_ptr+len); + return 1; +} + +int lStruct_ToPointer(CLuaState* L) +{ + struct_t* stc = Check_Struct(L,1); + L->PushInteger((int)stc->page->mem); + return 1; +} + +int Struct_Open(CLuaState* L) +{ + L->PushNumber(1); + L->SetGlobal("BYTE"); + + L->PushNumber(2); + L->SetGlobal("WORD"); + + L->PushNumber(4); + L->SetGlobal("DWORD"); + + L->CreateMetaTable(STRUCT_NAME); + + L->PushCFunction(lStruct_eq); + L->SetField(-2,"__eq"); + + L->PushCFunction(lStruct_gc); + L->SetField(-2,"__gc"); + + L->PushCFunction(lStruct_tostr); + L->SetField(-2,"__tostring"); + + L->PushCFunction(lStruct_ResetPtr); + L->SetField(-2,"ResetPtr"); + + L->PushCFunction(lStruct_GetOffset); + L->SetField(-2,"GetOffset"); + + L->PushCFunction(lStruct_SetOffset); + L->SetField(-2,"SetOffset"); + + L->PushCFunction(lStruct_Skip); + L->SetField(-2,"Skip"); + + L->PushCFunction(lStruct_PushString); + L->SetField(-2,"PushString"); + + L->PushCFunction(lStruct_PushNumber); + L->SetField(-2,"PushNumber"); + + L->PushCFunction(lStruct_GetStringFixed); + L->SetField(-2,"GetStringFixed"); + + L->PushCFunction(lStruct_GetString); + L->SetField(-2,"GetString"); + + L->PushCFunction(lStruct_GetNumber); + L->SetField(-2,"GetNumber"); + + L->PushCFunction(lStruct_ToPointer); + L->SetField(-2,"ToPointer"); + + L->Push(-1); + L->SetField(-2,"__index"); + return 0; +} + +int Struct_Close(CLuaState* L) +{ + L->PushNil(); + L->SetGlobal("BYTE"); + + L->PushNil(); + L->SetGlobal("WORD"); + + L->PushNil(); + L->SetGlobal("DWORD"); + return 0; +} \ No newline at end of file diff --git a/struct.h b/struct.h new file mode 100644 index 0000000..2ae6305 --- /dev/null +++ b/struct.h @@ -0,0 +1,22 @@ +#ifndef __STRUCT_H +#define __STRUCT_H + +#define STRUCT_NAME "luaL_Struct" +#define STRUCT_TYPE 196 + +#include "interface.h" +#include "memobj.h" + +typedef struct { + memobj_t* page; + char* s_ptr; + bool bFree; +} struct_t; + +void Struct_Create(CLuaState* L,memobj_t* obj); +int Struct_FromPointer(CLuaState* L); + +int Struct_Open(CLuaState* L); +int Struct_Close(CLuaState* L); + +#endif \ No newline at end of file