Advertisement
MeepDarknessMeep

Herp Derpinstine is a retard

Feb 16th, 2015
856
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.07 KB | None | 0 0
  1. #ifndef __GLua_H__
  2. #define __GLua_H__
  3.  
  4. /* ALL FROM GITHUB
  5. https://github.com/garrynewman/gmod-module-base/tree/master/include/GarrysMod/Lua
  6. */
  7.  
  8. #define LUA_FUNCTION(_func_)    int _func_(lua_State* state)
  9. #define LUA state->luabase
  10. #define _G  -10002
  11.  
  12. #ifdef GMMODULE
  13. #ifdef _WIN32
  14. #define  DLL_EXPORT extern "C" __declspec( dllexport )
  15. #else
  16. #define DLL_EXPORT  extern "C" __attribute__((visibility("default")))  
  17. #endif
  18. #define GMOD_MODULE_OPEN() DLL_EXPORT int gmod13_open(lua_State* state)
  19. #define GMOD_MODULE_CLOSE() DLL_EXPORT int gmod13_close(lua_State* state)
  20. #endif
  21.  
  22. class ILuaInterface;
  23. class ILuaObject;
  24. class ILuaBase;
  25.  
  26. class lua_State
  27. {
  28. public:
  29.     char        header[69];
  30.     ILuaBase*   luabase;
  31. };
  32.  
  33. class UserData
  34. {
  35. public:
  36.     void*           data;
  37.     unsigned char   type;
  38. };
  39.  
  40. enum
  41. {
  42.     LUA_CLIENT = 0,
  43.     LUA_SERVER = 1,
  44.     LUA_MENU = 2
  45. };
  46.  
  47. enum
  48. {
  49.     SPECIAL_GLOB,
  50.     SPECIAL_ENV,
  51.     SPECIAL_REG,
  52. };
  53.  
  54. enum
  55. {
  56.     TYPE_INVALID = -1,
  57.     TYPE_NIL,
  58.     TYPE_BOOL,
  59.     TYPE_LIGHTUSERDATA,
  60.     TYPE_NUMBER,
  61.     TYPE_STRING,
  62.     TYPE_TABLE,
  63.     TYPE_FUNCTION,
  64.     TYPE_USERDATA,
  65.     TYPE_THREAD,
  66.  
  67.     TYPE_ENTITY,
  68.     TYPE_VECTOR,
  69.     TYPE_ANGLE,
  70.     TYPE_PHYSOBJ,
  71.     TYPE_SAVE,
  72.     TYPE_RESTORE,
  73.     TYPE_DAMAGEINFO,
  74.     TYPE_EFFECTDATA,
  75.     TYPE_MOVEDATA,
  76.     TYPE_RECIPIENTFILTER,
  77.     TYPE_USERCMD,
  78.     TYPE_SCRIPTEDVEHICLE,
  79.  
  80.     TYPE_MATERIAL,
  81.     TYPE_PANEL,
  82.     TYPE_PARTICLE,
  83.     TYPE_PARTICLEEMITTER,
  84.     TYPE_TEXTURE,
  85.     TYPE_USERMSG,
  86.  
  87.     TYPE_CONVAR,
  88.     TYPE_IMESH,
  89.     TYPE_MATRIX,
  90.     TYPE_SOUND,
  91.     TYPE_PIXELVISHANDLE,
  92.     TYPE_DLIGHT,
  93.     TYPE_VIDEO,
  94.     TYPE_FILE,
  95.  
  96.     TYPE_PLAYER = TYPE_ENTITY,
  97. };
  98.  
  99. static char* lua_typename[] =
  100. {
  101.     "nil",
  102.     "bool",
  103.     "lightuserdata",
  104.     "number",
  105.     "string",
  106.     "table",
  107.     "function",
  108.     "userdata",
  109.     "thread",
  110.     "entity",
  111.     "vector",
  112.     "angle",
  113.     "physobj",
  114.     "save",
  115.     "restore",
  116.     "damageinfo",
  117.     "effectdata",
  118.     "movedata",
  119.     "recipientfilter",
  120.     "usercmd",
  121.     "vehicle",
  122.     "material",
  123.     "panel",
  124.     "particle",
  125.     "particleemitter",
  126.     "texture",
  127.     "usermsg",
  128.     "convar",
  129.     "mesh",
  130.     "matrix",
  131.     "sound",
  132.     "pixelvishandle",
  133.     "dlight",
  134.     "video",
  135.     "file"
  136. };
  137.  
  138. typedef int(*CFunc) (lua_State* state);
  139.  
  140. class HLuaError;
  141. class CLuaGameCallback
  142. {
  143. private:
  144.     virtual ILuaObject* CLuaGameCallback::CreateLuaObject(void) = 0;
  145.     virtual void CLuaGameCallback::DestroyLuaObject(ILuaObject *) = 0;
  146.     virtual void CLuaGameCallback::ErrorPrint(char  const*, bool) = 0;
  147.     virtual void CLuaGameCallback::Msg(char  const*, bool) = 0;
  148.     virtual void CLuaGameCallback::MsgColour(char  const*, Color  const&) = 0;
  149.     virtual void CLuaGameCallback::LuaError(HLuaError *) = 0;
  150.     virtual void CLuaGameCallback::InterfaceCreated(ILuaInterface *) = 0;
  151. };
  152.  
  153. /* copied from me
  154. http://www.mpgh.net/forum/showthread.php?p=9024708#post9024708
  155. */
  156.  
  157. class ILuaInterface
  158. {
  159. public:
  160.     virtual void*   Top(void) = 0;  // 0
  161.     virtual void*   Push(int) = 0;  // 1
  162.     virtual void*   Pop(int stackpos = 1) = 0;  // 2
  163.     virtual void*   GetTable(int) = 0;  // 3
  164.     virtual void*   GetField(int, char  const*) = 0;    // 4
  165.     virtual void*   SetField(int, char  const*) = 0;    // 5
  166.     virtual void*   CreateTable(void) = 0;  // 6
  167.     virtual void*   SetTable(int) = 0;  // 7
  168.     virtual void*   SetMetaTable(int) = 0;  // 8
  169.     virtual ILuaObject* GetMetaTable(int) = 0;  // 9
  170.     virtual void*   Call(int, int) = 0; // 10
  171.     virtual void*   PCall(int, int, int) = 0;   // 11
  172.     virtual void*   Equal(int, int) = 0;    // 12
  173.     virtual void*   RawEqual(int, int) = 0; // 13
  174.     virtual void*   Insert(int) = 0;    // 14
  175.     virtual void*   Remove(int) = 0;    // 15
  176.     virtual void*   Next(int) = 0;  // 16
  177.     virtual void*   NewUserdata(unsigned int) = 0;  // 17
  178.     virtual void*   ThrowError(char  const*) = 0;   // 18
  179.     virtual void*   CheckType(int, int) = 0;    // 19
  180.     virtual void*   ArgError(int, char  const*) = 0;    // 20
  181.     virtual void*   RawGet(int) = 0;    // 21
  182.     virtual void*   RawSet(int) = 0;    // 22
  183.     virtual const char* GetString(int, unsigned int *) = 0; // 23
  184.     virtual double  GetNumber(int) = 0; // 24
  185.     virtual bool    GetBool(int) = 0;   // 25
  186.     virtual CFunc   GetCFunction(int) = 0;  // 26
  187.     virtual void*   GetUserdata(int) = 0;   // 27
  188.     virtual void    PushNil(void) = 0;  // 28
  189.     virtual void    PushString(char  const*, unsigned int iLen = 0) = 0;    // 29
  190.     virtual void    PushNumber(double) = 0; // 30
  191.     virtual void    PushBool(bool) = 0; // 31
  192.     virtual void    PushCFunction(CFunc) = 0;   // 32
  193.     virtual void    PushCClosure(CFunc, int) = 0;   // 33
  194.     virtual void    PushUserdata(void*) = 0;    // 34
  195.     virtual void*   ReferenceCreate(void) = 0;  // 35
  196.     virtual void*   ReferenceFree(int) = 0; // 36
  197.     virtual void*   ReferencePush(int) = 0; // 37
  198.     virtual void*   PushSpecial(int) = 0;   // 38
  199.     virtual void*   IsType(int, int) = 0;   // 39
  200.     virtual void*   GetType(int) = 0;   // 40
  201.     virtual void*   GetTypeName(int) = 0;   // 41
  202.     virtual void*   CreateMetaTableType(char  const*, int) = 0; // 42
  203.     virtual void*   CheckString(int) = 0;   // 43
  204.     virtual void*   CheckNumber(int) = 0;   // 44
  205.     virtual void*   ObjLen(int) = 0;    // 45
  206.     virtual void*   AddThreadedCall(void*) = 0; // 46
  207.     virtual void*   Init(void *, bool) = 0; // 47
  208.     virtual void*   Shutdown(void) = 0; // 48
  209.     virtual void*   Cycle(void) = 0;    // 49
  210.     virtual lua_State*  GetLuaState(void) = 0;  // 50
  211.     virtual void*   Global(void) = 0;   // 51
  212.     virtual ILuaObject* GetObject(int) = 0; // 52
  213.     virtual void*   DELETE_ME_5437(int) = 0;    // 53
  214.     virtual void*   _DELETE_ME2466(int) = 0;    // 54
  215.     virtual void*   PushLuaObject(ILuaObject *) = 0;    // 55
  216.     virtual void*   PushLuaFunction(CFunc) = 0; // 56
  217.     virtual void*   LuaError(char  const*, int) = 0;    // 57
  218.     virtual void*   TypeError(char  const*, int) = 0;   // 58
  219.     virtual void*   CallInternal(int, int) = 0; // 59
  220.     virtual void*   CallInternalNoReturns(int) = 0; // 60
  221.     virtual void*   CallInternalGetBool(int) = 0;   // 61
  222.     virtual void*   CallInternalGetString(int) = 0; // 62
  223.     virtual void*   CallInternalGet(int, ILuaObject *) = 0; // 63
  224.     virtual void*   _DELETE_ME(ILuaObject *, void *) = 0;   // 64
  225.     virtual void*   NewGlobalTable(char  const*) = 0;   // 65
  226.     virtual void*   NewTemporaryObject(void) = 0;   // 66
  227.     virtual void*   isUserData(int) = 0;    // 67
  228.     virtual void*   GetMetaTableObject(char  const*, int) = 0;  // 68
  229.     virtual void*   GetMetaTableObject(int) = 0;    // 69
  230.     virtual void*   GetReturn(int) = 0; // 70
  231.     virtual void*   IsServer(void) = 0; // 71
  232.     virtual void*   IsClient(void) = 0; // 72
  233.     virtual void*   IsDedicatedServer(void) = 0;    // 73
  234.     virtual void*   DestroyObject(ILuaObject *) = 0;    // 74
  235.     virtual void*   CreateObject(void) = 0; // 75
  236.     virtual void*   SetMember(ILuaObject *, ILuaObject *, ILuaObject *) = 0;    // 76
  237.     virtual void*   GetNewTable(void) = 0;  // 77
  238.     virtual void*   SetMember(ILuaObject *, float) = 0; // 78
  239.     virtual void*   SetMember(ILuaObject *, float, ILuaObject *) = 0;   // 79
  240.     virtual void*   SetMember(ILuaObject *, char  const*) = 0;  // 80
  241.     virtual void*   SetMember(ILuaObject *, char  const*, ILuaObject *) = 0;    // 81
  242.     virtual void*   SetIsServer(bool) = 0;  // 82
  243.     virtual void*   PushLong(long) = 0; // 83
  244.     virtual void*   GetFlags(int) = 0;  // 84
  245.     virtual void*   FindOnObjectsMetaTable(int, int) = 0;   // 85
  246.     virtual void*   FindObjectOnTable(int, int) = 0;    // 86
  247.     virtual void*   SetMemberFast(ILuaObject *, int, int) = 0;  // 87
  248.     virtual void*   RunString(char  const*, char  const*, char  const*, bool, bool) = 0;    // 88
  249.     virtual void*   IsEqual(ILuaObject *, ILuaObject *) = 0;    // 89
  250.     virtual void*   Error(char  const*) = 0;    // 90
  251.     virtual void*   GetStringOrError(int) = 0;  // 91
  252.     virtual void*   RunLuaModule(char  const*) = 0; // 92
  253.     virtual void*   FindAndRunScript(char  const*, bool, bool, char  const*) = 0;   // 93
  254.     virtual void*   SetPathID(char  const*) = 0;    // 94
  255.     virtual void*   GetPathID(void) = 0;    // 95
  256.     virtual void*   ErrorNoHalt(char  const*, ...) = 0; // 96
  257.     virtual void*   Msg(char  const*, ...) = 0; // 97
  258.     virtual void*   PushPath(char  const*) = 0; // 98
  259.     virtual void*   PopPath(void) = 0;  // 99
  260.     virtual void*   GetPath(void) = 0;  // 100
  261.     virtual void*   GetColor(int) = 0;  // 101
  262.     virtual void*   PushColor(int, int, int, int) = 0;  // 102
  263.     virtual void*   GetStack(int, void *) = 0;  // 103
  264.     virtual void*   GetInfo(char  const*, void *) = 0;  // 104
  265.     virtual void*   GetLocal(void *, int) = 0;  // 105
  266.     virtual void*   GetUpvalue(int, int) = 0;   // 106
  267.     virtual void*   RunStringEx(char  const*, char  const*, char  const*, bool, bool, bool) = 0;    // 107
  268.     virtual void*   DELETE_ME1(char  const*, int) = 0;  // 108
  269.     virtual void*   GetDataString(int, void **) = 0;    // 109
  270.     virtual void*   ErrorFromLua(char  const*, ...) = 0;    // 110
  271.     virtual void*   GetCurrentLocation(void) = 0;   // 111
  272.     virtual void*   MsgColour(void*, char  const*, ...) = 0;    // 112
  273.     virtual void*   SetState(lua_State *) = 0;  // 113
  274.     virtual void*   DELETE_ME2(void) = 0;   // 114
  275.     virtual void*   GetCurrentFile(char &) = 0; // 115
  276.     virtual void*   CompileString(void*, char const&) = 0;  // 116
  277.     virtual void*   ThreadLock(void) = 0;   // 117
  278.     virtual void*   ThreadUnlock(void) = 0; // 118
  279.     virtual void*   CallFunctionProtected(int, int, bool) = 0;  // 119
  280.     virtual void*   Require(char  const*) = 0;  // 120
  281.     virtual void*   GetActualTypeName(int) = 0; // 121
  282.     virtual void*   SetupInfiniteLoopProtection(void) = 0;  // 122
  283. /* added fail variable
  284. failure
  285. */
  286.     CLuaGameCallback *m_pCallback;
  287. };
  288.  
  289. class CLuaShared
  290. {
  291. public:
  292.     virtual void *CLuaShared::Init(void * (*)(char  const*, int *), bool, void *, void *); // 0
  293.     virtual void *CLuaShared::Shutdown(void); // 1
  294.     virtual void *CLuaShared::DumpStats(void); // 2
  295.     virtual void *CLuaShared::CreateLuaInterface(unsigned char, bool); // 3
  296.     virtual void *CLuaShared::CloseLuaInterface(ILuaInterface *);
  297.     virtual void padding00() = 0;
  298.     virtual ILuaInterface *CLuaShared::GetLuaInterface(unsigned char);
  299.     virtual void *CLuaShared::LoadFile(std::string  const&, std::string  const&, bool, bool);
  300.     virtual void *CLuaShared::GetCache(std::string  const&);
  301.     virtual void *CLuaShared::MountLua(char  const*);
  302.     virtual void *CLuaShared::MountLuaAdd(char  const*, char  const*);
  303.     virtual void *CLuaShared::UnMountLua(char  const*);
  304.     virtual void *CLuaShared::SetFileContents(char  const*, char  const*);
  305.     virtual void *CLuaShared::SetLuaFindHook(void *);
  306.     virtual void padding01() = 0;
  307. };
  308.  
  309. /* copied from bluekirby
  310. http://bluekirbygmod.googlecode.com/svn/trunk/Lua%20headers/LuaBase.h
  311. */
  312.  
  313. class ILuaBase
  314. {
  315. public:
  316.     virtual int         Top(void) = 0;
  317.     virtual void        Push(int iStackPos) = 0;
  318.     virtual void        Pop(int iAmt = 1) = 0;
  319.     virtual void*       GetTable(int iStackPos) = 0;
  320.     virtual void        GetField(int iStackPos, const char* strName) = 0;
  321.     virtual void        SetField(int iStackPos, const char* strName) = 0;
  322.     virtual void        CreateTable() = 0;
  323.     virtual void        SetTable(int i) = 0;
  324.     virtual void        SetMetaTable(int i) = 0;
  325.     virtual bool        GetMetaTable(int i) = 0;
  326.     virtual void        Call(int iArgs, int iResults) = 0;
  327.     virtual int         PCall(int iArgs, int iResults, int iErrorFunc) = 0;
  328.     virtual int         Equal(int iA, int iB) = 0;
  329.     virtual int         RawEqual(int iA, int iB) = 0;
  330.     virtual void        Insert(int iStackPos) = 0;
  331.     virtual void        Remove(int iStackPos) = 0;
  332.     virtual int         Next(int iStackPos) = 0;
  333.     virtual void*       NewUserdata(unsigned int iSize) = 0;
  334.     virtual void        ThrowError(const char* strError) = 0;
  335.     virtual void        CheckType(int iStackPos, int iType) = 0;
  336.     virtual void        ArgError(int iArgNum, const char* strMessage) = 0;
  337.     virtual void        RawGet(int iStackPos) = 0;
  338.     virtual void        RawSet(int iStackPos) = 0;
  339.     virtual const char*     GetString(int iStackPos = -1, unsigned int* iOutLen = NULL) = 0;
  340.     virtual double          GetNumber(int iStackPos = -1) = 0;
  341.     virtual bool            GetBool(int iStackPos = -1) = 0;
  342.     virtual CFunc           GetCFunction(int iStackPos = -1) = 0;
  343.     virtual void*           GetUserdata(int iStackPos = -1) = 0;
  344.     virtual void        PushNil() = 0;
  345.     virtual void        PushString(const char* val, unsigned int iLen = 0) = 0;
  346.     virtual void        PushNumber(double val) = 0;
  347.     virtual void        PushBool(bool val) = 0;
  348.     virtual void        PushCFunction(CFunc val) = 0;
  349.     virtual void        PushCClosure(CFunc val, int iVars) = 0;
  350.     virtual void        PushUserdata(void*) = 0;
  351.     virtual int         ReferenceCreate() = 0;
  352.     virtual void        ReferenceFree(int i) = 0;
  353.     virtual void        ReferencePush(int i) = 0;
  354.     virtual void        PushSpecial(int iType) = 0;
  355.     virtual bool            IsType(int iStackPos, int iType) = 0;
  356.     virtual int             GetType(int iStackPos) = 0;
  357.     virtual const char*     GetTypeName(int iType) = 0;
  358.     virtual void            CreateMetaTableType(const char* strName, int iType) = 0;
  359.     virtual const char*     CheckString(int iStackPos = -1) = 0;
  360.     virtual double          CheckNumber(int iStackPos = -1) = 0; //44
  361.     virtual void            unk45(void) = 0;
  362.     virtual void            unk46(void) = 0;
  363.     virtual void            unk47(void) = 0;
  364.     virtual void            unk48(void) = 0;
  365.     virtual void            unk49(void) = 0;
  366.     virtual void            unk50(void) = 0;
  367.     virtual void            unk51(void) = 0;
  368.     virtual void            unk52(void) = 0;
  369.     virtual void            unk53(void) = 0;
  370.     virtual void            unk54(void) = 0;
  371.     virtual void            unk55(void) = 0;
  372.     virtual void            unk56(void) = 0;
  373.     virtual void            unk57(void) = 0;
  374.     virtual void            unk58(void) = 0;
  375.     virtual void            unk59(void) = 0;
  376.     virtual void            unk60(void) = 0;
  377.     virtual void            unk61(void) = 0;
  378.     virtual void            unk62(void) = 0;
  379.     virtual void            unk63(void) = 0;
  380.     virtual void            unk64(void) = 0;
  381.     virtual void            unk65(void) = 0;
  382.     virtual void            unk66(void) = 0;
  383.     virtual void            unk67(void) = 0;
  384.     virtual void            unk68(void) = 0;
  385.     virtual void            unk69(void) = 0;
  386.     virtual void            unk70(void) = 0;
  387.     virtual void            unk71(void) = 0;
  388.     virtual void            unk72(void) = 0;
  389.     virtual void            unk73(void) = 0;
  390.     virtual void            unk74(void) = 0;
  391.     virtual void            unk75(void) = 0;
  392.     virtual void            unk76(void) = 0;
  393.     virtual void            unk77(void) = 0;
  394.     virtual void            unk78(void) = 0;
  395.     virtual void            unk79(void) = 0;
  396.     virtual void            unk80(void) = 0;
  397.     virtual void            unk81(void) = 0;
  398.     virtual void            unk82(void) = 0;
  399.     virtual void            unk83(void) = 0;
  400.     virtual void            unk84(void) = 0;
  401.     virtual void            unk85(void) = 0;
  402.     virtual void            unk86(void) = 0;
  403.     virtual void            unk87(void) = 0;
  404.     virtual bool            RunString(const char* pszFilename, const char* pszPath, const char* pszStringToRun, bool bRun = true, bool bShowErrors = true) = 0;
  405.     virtual void            unk89(void) = 0;
  406.     virtual void            unk90(void) = 0;
  407.     virtual void            unk91(void) = 0;
  408.     virtual void            unk92(void) = 0;
  409.     virtual bool            FindAndRunScript(const char* path, bool bRun = true, bool bShowErrors = true, const char* pszType = "!CLIENT") = 0;
  410.  
  411. /* fail var again
  412. failure
  413. */
  414.     CLuaGameCallback *m_pCallback;
  415. };
  416.  
  417. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement