1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-06-15 22:57:12 +02:00

Implemented the module system.

This commit is contained in:
Sandu Liviu Catalin
2016-02-23 17:48:30 +02:00
parent 48406020f8
commit fa12692490
38 changed files with 4017 additions and 1613 deletions

594
shared/sq_api.h Normal file
View File

@ -0,0 +1,594 @@
//
// SqModule: API used to communicate with and register squirrel modules
//
//
// Copyright (c) 2015 Sandu Liviu Catalin
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software. If you use this software
// in a product, an acknowledgment in the product documentation would be
// appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source
// distribution.
//
#if !defined(_SQ_API_H_)
#define _SQ_API_H_
#include "squirrel.h"
#ifdef __cplusplus
extern "C" {
#endif
/*vm*/
typedef HSQUIRRELVM (*sqapi_open)(SQInteger initialstacksize);
typedef HSQUIRRELVM (*sqapi_newthread)(HSQUIRRELVM friendvm, SQInteger initialstacksize);
typedef void (*sqapi_seterrorhandler)(HSQUIRRELVM v);
typedef void (*sqapi_close)(HSQUIRRELVM v);
typedef void (*sqapi_setforeignptr)(HSQUIRRELVM v,SQUserPointer p);
typedef SQUserPointer (*sqapi_getforeignptr)(HSQUIRRELVM v);
typedef void (*sqapi_setsharedforeignptr)(HSQUIRRELVM v,SQUserPointer p);
typedef SQUserPointer (*sqapi_getsharedforeignptr)(HSQUIRRELVM v);
typedef void (*sqapi_setvmreleasehook)(HSQUIRRELVM v,SQRELEASEHOOK hook);
typedef SQRELEASEHOOK (*sqapi_getvmreleasehook)(HSQUIRRELVM v);
typedef void (*sqapi_setsharedreleasehook)(HSQUIRRELVM v,SQRELEASEHOOK hook);
typedef SQRELEASEHOOK (*sqapi_getsharedreleasehook)(HSQUIRRELVM v);
typedef void (*sqapi_setprintfunc)(HSQUIRRELVM v, SQPRINTFUNCTION printfunc,SQPRINTFUNCTION errfunc);
typedef SQPRINTFUNCTION (*sqapi_getprintfunc)(HSQUIRRELVM v);
typedef SQPRINTFUNCTION (*sqapi_geterrorfunc)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_suspendvm)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_wakeupvm)(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
typedef SQInteger (*sqapi_getvmstate)(HSQUIRRELVM v);
typedef SQInteger (*sqapi_getversion)();
/*compiler*/
typedef SQRESULT (*sqapi_compile)(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
typedef SQRESULT (*sqapi_compilebuffer)(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
typedef void (*sqapi_enabledebuginfo)(HSQUIRRELVM v, SQBool enable);
typedef void (*sqapi_notifyallexceptions)(HSQUIRRELVM v, SQBool enable);
typedef void (*sqapi_setcompilererrorhandler)(HSQUIRRELVM v,SQCOMPILERERROR f);
/*stack operations*/
typedef void (*sqapi_push)(HSQUIRRELVM v,SQInteger idx);
typedef void (*sqapi_pop)(HSQUIRRELVM v,SQInteger nelemstopop);
typedef void (*sqapi_poptop)(HSQUIRRELVM v);
typedef void (*sqapi_remove)(HSQUIRRELVM v,SQInteger idx);
typedef SQInteger (*sqapi_gettop)(HSQUIRRELVM v);
typedef void (*sqapi_settop)(HSQUIRRELVM v,SQInteger newtop);
typedef SQRESULT (*sqapi_reservestack)(HSQUIRRELVM v,SQInteger nsize);
typedef SQInteger (*sqapi_cmp)(HSQUIRRELVM v);
typedef void (*sqapi_move)(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
/*object creation handling*/
typedef SQUserPointer (*sqapi_newuserdata)(HSQUIRRELVM v,SQUnsignedInteger size);
typedef void (*sqapi_newtable)(HSQUIRRELVM v);
typedef void (*sqapi_newtableex)(HSQUIRRELVM v,SQInteger initialcapacity);
typedef void (*sqapi_newarray)(HSQUIRRELVM v,SQInteger size);
typedef void (*sqapi_newclosure)(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
typedef SQRESULT (*sqapi_setparamscheck)(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
typedef SQRESULT (*sqapi_bindenv)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_setclosureroot)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getclosureroot)(HSQUIRRELVM v,SQInteger idx);
typedef void (*sqapi_pushstring)(HSQUIRRELVM v,const SQChar *s,SQInteger len);
typedef void (*sqapi_pushfloat)(HSQUIRRELVM v,SQFloat f);
typedef void (*sqapi_pushinteger)(HSQUIRRELVM v,SQInteger n);
typedef void (*sqapi_pushbool)(HSQUIRRELVM v,SQBool b);
typedef void (*sqapi_pushuserpointer)(HSQUIRRELVM v,SQUserPointer p);
typedef void (*sqapi_pushnull)(HSQUIRRELVM v);
typedef void (*sqapi_pushthread)(HSQUIRRELVM v, HSQUIRRELVM thread);
typedef SQObjectType (*sqapi_gettype)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_typeof)(HSQUIRRELVM v,SQInteger idx);
typedef SQInteger (*sqapi_getsize)(HSQUIRRELVM v,SQInteger idx);
typedef SQHash (*sqapi_gethash)(HSQUIRRELVM v, SQInteger idx);
typedef SQRESULT (*sqapi_getbase)(HSQUIRRELVM v,SQInteger idx);
typedef SQBool (*sqapi_instanceof)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_tostring)(HSQUIRRELVM v,SQInteger idx);
typedef void (*sqapi_tobool)(HSQUIRRELVM v, SQInteger idx, SQBool *b);
typedef SQRESULT (*sqapi_getstring)(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
typedef SQRESULT (*sqapi_getinteger)(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
typedef SQRESULT (*sqapi_getfloat)(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
typedef SQRESULT (*sqapi_getbool)(HSQUIRRELVM v,SQInteger idx,SQBool *b);
typedef SQRESULT (*sqapi_getthread)(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
typedef SQRESULT (*sqapi_getuserpointer)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
typedef SQRESULT (*sqapi_getuserdata)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
typedef SQRESULT (*sqapi_settypetag)(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
typedef SQRESULT (*sqapi_gettypetag)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
typedef void (*sqapi_setreleasehook)(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
typedef SQRELEASEHOOK (*sqapi_getreleasehook)(HSQUIRRELVM v,SQInteger idx);
typedef SQChar* (*sqapi_getscratchpad)(HSQUIRRELVM v,SQInteger minsize);
typedef SQRESULT (*sqapi_getfunctioninfo)(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi);
typedef SQRESULT (*sqapi_getclosureinfo)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
typedef SQRESULT (*sqapi_getclosurename)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_setnativeclosurename)(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
typedef SQRESULT (*sqapi_setinstanceup)(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
typedef SQRESULT (*sqapi_getinstanceup)(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
typedef SQRESULT (*sqapi_setclassudsize)(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
typedef SQRESULT (*sqapi_newclass)(HSQUIRRELVM v,SQBool hasbase);
typedef SQRESULT (*sqapi_createinstance)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_setattributes)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getattributes)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getclass)(HSQUIRRELVM v,SQInteger idx);
typedef void (*sqapi_weakref)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getdefaultdelegate)(HSQUIRRELVM v,SQObjectType t);
typedef SQRESULT (*sqapi_getmemberhandle)(HSQUIRRELVM v,SQInteger idx,HSQMEMBERHANDLE *handle);
typedef SQRESULT (*sqapi_getbyhandle)(HSQUIRRELVM v,SQInteger idx,const HSQMEMBERHANDLE *handle);
typedef SQRESULT (*sqapi_setbyhandle)(HSQUIRRELVM v,SQInteger idx,const HSQMEMBERHANDLE *handle);
/*object manipulation*/
typedef void (*sqapi_pushroottable)(HSQUIRRELVM v);
typedef void (*sqapi_pushregistrytable)(HSQUIRRELVM v);
typedef void (*sqapi_pushconsttable)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_setroottable)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_setconsttable)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_newslot)(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
typedef SQRESULT (*sqapi_deleteslot)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
typedef SQRESULT (*sqapi_set)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_get)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_rawget)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_rawset)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_rawdeleteslot)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
typedef SQRESULT (*sqapi_newmember)(HSQUIRRELVM v,SQInteger idx,SQBool bstatic);
typedef SQRESULT (*sqapi_rawnewmember)(HSQUIRRELVM v,SQInteger idx,SQBool bstatic);
typedef SQRESULT (*sqapi_arrayappend)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_arraypop)(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
typedef SQRESULT (*sqapi_arrayresize)(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
typedef SQRESULT (*sqapi_arrayreverse)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_arrayremove)(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
typedef SQRESULT (*sqapi_arrayinsert)(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
typedef SQRESULT (*sqapi_setdelegate)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getdelegate)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_clone)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_setfreevariable)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
typedef SQRESULT (*sqapi_next)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_getweakrefval)(HSQUIRRELVM v,SQInteger idx);
typedef SQRESULT (*sqapi_clear)(HSQUIRRELVM v,SQInteger idx);
/*calls*/
typedef SQRESULT (*sqapi_call)(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror);
typedef SQRESULT (*sqapi_resume)(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
typedef const SQChar* (*sqapi_getlocal)(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
typedef SQRESULT (*sqapi_getcallee)(HSQUIRRELVM v);
typedef const SQChar* (*sqapi_getfreevariable)(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
typedef SQRESULT (*sqapi_throwerror)(HSQUIRRELVM v,const SQChar *err);
typedef SQRESULT (*sqapi_throwobject)(HSQUIRRELVM v);
typedef void (*sqapi_reseterror)(HSQUIRRELVM v);
typedef void (*sqapi_getlasterror)(HSQUIRRELVM v);
/*raw object handling*/
typedef SQRESULT (*sqapi_getstackobj)(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
typedef void (*sqapi_pushobject)(HSQUIRRELVM v,HSQOBJECT obj);
typedef void (*sqapi_addref)(HSQUIRRELVM v,HSQOBJECT *po);
typedef SQBool (*sqapi_release)(HSQUIRRELVM v,HSQOBJECT *po);
typedef SQUnsignedInteger (*sqapi_getrefcount)(HSQUIRRELVM v,HSQOBJECT *po);
typedef void (*sqapi_resetobject)(HSQOBJECT *po);
typedef const SQChar* (*sqapi_objtostring)(const HSQOBJECT *o);
typedef SQBool (*sqapi_objtobool)(const HSQOBJECT *o);
typedef SQInteger (*sqapi_objtointeger)(const HSQOBJECT *o);
typedef SQFloat (*sqapi_objtofloat)(const HSQOBJECT *o);
typedef SQUserPointer (*sqapi_objtouserpointer)(const HSQOBJECT *o);
typedef SQRESULT (*sqapi_getobjtypetag)(const HSQOBJECT *o,SQUserPointer * typetag);
typedef SQUnsignedInteger (*sqapi_getvmrefcount)(HSQUIRRELVM v, const HSQOBJECT *po);
/*GC*/
typedef SQInteger (*sqapi_collectgarbage)(HSQUIRRELVM v);
typedef SQRESULT (*sqapi_resurrectunreachable)(HSQUIRRELVM v);
/*serialization*/
typedef SQRESULT (*sqapi_writeclosure)(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
typedef SQRESULT (*sqapi_readclosure)(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
/*mem allocation*/
typedef void* (*sqapi_malloc)(SQUnsignedInteger size);
typedef void* (*sqapi_realloc)(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
typedef void (*sqapi_free)(void *p,SQUnsignedInteger size);
/*debug*/
typedef SQRESULT (*sqapi_stackinfos)(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
typedef void (*sqapi_setdebughook)(HSQUIRRELVM v);
typedef void (*sqapi_setnativedebughook)(HSQUIRRELVM v,SQDEBUGHOOK hook);
/*compiler helpers*/
typedef SQRESULT (*sqapi_loadfile)(HSQUIRRELVM v,const SQChar *filename,SQBool printerror);
typedef SQRESULT (*sqapi_dofile)(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror);
typedef SQRESULT (*sqapi_writeclosuretofile)(HSQUIRRELVM v,const SQChar *filename);
/*blob*/
typedef SQUserPointer (*sqapi_createblob)(HSQUIRRELVM v, SQInteger size);
typedef SQRESULT (*sqapi_getblob)(HSQUIRRELVM v,SQInteger idx,SQUserPointer *ptr);
typedef SQInteger (*sqapi_getblobsize)(HSQUIRRELVM v,SQInteger idx);
/*string*/
typedef SQRESULT (*sqapi_format)(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @cond DEV
/// Allows modules to interface with Squirrel's C api without linking to the squirrel library
/// If new functions are added to the Squirrel API, they should be added here too
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
typedef struct {
/*vm*/
sqapi_open open;
sqapi_newthread newthread;
sqapi_seterrorhandler seterrorhandler;
sqapi_close close;
sqapi_setforeignptr setforeignptr;
sqapi_getforeignptr getforeignptr;
sqapi_setsharedforeignptr setsharedforeignptr;
sqapi_getsharedforeignptr getsharedforeignptr;
sqapi_setvmreleasehook setvmreleasehook;
sqapi_getvmreleasehook getvmreleasehook;
sqapi_setsharedreleasehook setsharedreleasehook;
sqapi_getsharedreleasehook getsharedreleasehook;
sqapi_setprintfunc setprintfunc;
sqapi_getprintfunc getprintfunc;
sqapi_geterrorfunc geterrorfunc;
sqapi_suspendvm suspendvm;
sqapi_wakeupvm wakeupvm;
sqapi_getvmstate getvmstate;
sqapi_getversion getversion;
/*compiler*/
sqapi_compile compile;
sqapi_compilebuffer compilebuffer;
sqapi_enabledebuginfo enabledebuginfo;
sqapi_notifyallexceptions notifyallexceptions;
sqapi_setcompilererrorhandler setcompilererrorhandler;
/*stack operations*/
sqapi_push push;
sqapi_pop pop;
sqapi_poptop poptop;
sqapi_remove remove;
sqapi_gettop gettop;
sqapi_settop settop;
sqapi_reservestack reservestack;
sqapi_cmp cmp;
sqapi_move move;
/*object creation handling*/
sqapi_newuserdata newuserdata;
sqapi_newtable newtable;
sqapi_newtableex newtableex;
sqapi_newarray newarray;
sqapi_newclosure newclosure;
sqapi_setparamscheck setparamscheck;
sqapi_bindenv bindenv;
sqapi_setclosureroot setclosureroot;
sqapi_getclosureroot getclosureroot;
sqapi_pushstring pushstring;
sqapi_pushfloat pushfloat;
sqapi_pushinteger pushinteger;
sqapi_pushbool pushbool;
sqapi_pushuserpointer pushuserpointer;
sqapi_pushnull pushnull;
sqapi_pushthread pushthread;
sqapi_gettype gettype;
sqapi_typeof typeof_;
sqapi_getsize getsize;
sqapi_gethash gethash;
sqapi_getbase getbase;
sqapi_instanceof instanceof;
sqapi_tostring tostring;
sqapi_tobool tobool;
sqapi_getstring getstring;
sqapi_getinteger getinteger;
sqapi_getfloat getfloat;
sqapi_getbool getbool;
sqapi_getthread getthread;
sqapi_getuserpointer getuserpointer;
sqapi_getuserdata getuserdata;
sqapi_settypetag settypetag;
sqapi_gettypetag gettypetag;
sqapi_setreleasehook setreleasehook;
sqapi_getreleasehook getreleasehook;
sqapi_getscratchpad getscratchpad;
sqapi_getfunctioninfo getfunctioninfo;
sqapi_getclosureinfo getclosureinfo;
sqapi_getclosurename getclosurename;
sqapi_setnativeclosurename setnativeclosurename;
sqapi_setinstanceup setinstanceup;
sqapi_getinstanceup getinstanceup;
sqapi_setclassudsize setclassudsize;
sqapi_newclass newclass;
sqapi_createinstance createinstance;
sqapi_setattributes setattributes;
sqapi_getattributes getattributes;
sqapi_getclass getclass;
sqapi_weakref weakref;
sqapi_getdefaultdelegate getdefaultdelegate;
sqapi_getmemberhandle getmemberhandle;
sqapi_getbyhandle getbyhandle;
sqapi_setbyhandle setbyhandle;
/*object manipulation*/
sqapi_pushroottable pushroottable;
sqapi_pushregistrytable pushregistrytable;
sqapi_pushconsttable pushconsttable;
sqapi_setroottable setroottable;
sqapi_setconsttable setconsttable;
sqapi_newslot newslot;
sqapi_deleteslot deleteslot;
sqapi_set set;
sqapi_get get;
sqapi_rawget rawget;
sqapi_rawset rawset;
sqapi_rawdeleteslot rawdeleteslot;
sqapi_newmember newmember;
sqapi_rawnewmember rawnewmember;
sqapi_arrayappend arrayappend;
sqapi_arraypop arraypop;
sqapi_arrayresize arrayresize;
sqapi_arrayreverse arrayreverse;
sqapi_arrayremove arrayremove;
sqapi_arrayinsert arrayinsert;
sqapi_setdelegate setdelegate;
sqapi_getdelegate getdelegate;
sqapi_clone clone;
sqapi_setfreevariable setfreevariable;
sqapi_next next;
sqapi_getweakrefval getweakrefval;
sqapi_clear clear;
/*calls*/
sqapi_call call;
sqapi_resume resume;
sqapi_getlocal getlocal;
sqapi_getcallee getcallee;
sqapi_getfreevariable getfreevariable;
sqapi_throwerror throwerror;
sqapi_throwobject throwobject;
sqapi_reseterror reseterror;
sqapi_getlasterror getlasterror;
/*raw object handling*/
sqapi_getstackobj getstackobj;
sqapi_pushobject pushobject;
sqapi_addref addref;
sqapi_release release;
sqapi_getrefcount getrefcount;
sqapi_resetobject resetobject;
sqapi_objtostring objtostring;
sqapi_objtobool objtobool;
sqapi_objtointeger objtointeger;
sqapi_objtofloat objtofloat;
sqapi_objtouserpointer objtouserpointer;
sqapi_getobjtypetag getobjtypetag;
sqapi_getvmrefcount getvmrefcount;
/*GC*/
sqapi_collectgarbage collectgarbage;
sqapi_resurrectunreachable resurrectunreachable;
/*serialization*/
sqapi_writeclosure writeclosure;
sqapi_readclosure readclosure;
/*mem allocation*/
sqapi_malloc malloc;
sqapi_realloc realloc;
sqapi_free free;
/*debug*/
sqapi_stackinfos stackinfos;
sqapi_setdebughook setdebughook;
sqapi_setnativedebughook setnativedebughook;
/*compiler helpers*/
sqapi_loadfile loadfile;
sqapi_dofile dofile;
sqapi_writeclosuretofile writeclosuretofile;
/*blob*/
sqapi_createblob createblob;
sqapi_getblob getblob;
sqapi_getblobsize getblobsize;
/*string*/
sqapi_format format;
} sq_api, SQAPI, *HSQAPI;
/// @endcond
#ifdef SQMOD_PLUGIN_API
/*vm*/
extern sqapi_open sq_open;
extern sqapi_newthread sq_newthread;
extern sqapi_seterrorhandler sq_seterrorhandler;
extern sqapi_close sq_close;
extern sqapi_setforeignptr sq_setforeignptr;
extern sqapi_getforeignptr sq_getforeignptr;
extern sqapi_setsharedforeignptr sq_setsharedforeignptr;
extern sqapi_getsharedforeignptr sq_getsharedforeignptr;
extern sqapi_setvmreleasehook sq_setvmreleasehook;
extern sqapi_getvmreleasehook sq_getvmreleasehook;
extern sqapi_setsharedreleasehook sq_setsharedreleasehook;
extern sqapi_getsharedreleasehook sq_getsharedreleasehook;
extern sqapi_setprintfunc sq_setprintfunc;
extern sqapi_getprintfunc sq_getprintfunc;
extern sqapi_geterrorfunc sq_geterrorfunc;
extern sqapi_suspendvm sq_suspendvm;
extern sqapi_wakeupvm sq_wakeupvm;
extern sqapi_getvmstate sq_getvmstate;
extern sqapi_getversion sq_getversion;
/*compiler*/
extern sqapi_compile sq_compile;
extern sqapi_compilebuffer sq_compilebuffer;
extern sqapi_enabledebuginfo sq_enabledebuginfo;
extern sqapi_notifyallexceptions sq_notifyallexceptions;
extern sqapi_setcompilererrorhandler sq_setcompilererrorhandler;
/*stack operations*/
extern sqapi_push sq_push;
extern sqapi_pop sq_pop;
extern sqapi_poptop sq_poptop;
extern sqapi_remove sq_remove;
extern sqapi_gettop sq_gettop;
extern sqapi_settop sq_settop;
extern sqapi_reservestack sq_reservestack;
extern sqapi_cmp sq_cmp;
extern sqapi_move sq_move;
/*object creation handling*/
extern sqapi_newuserdata sq_newuserdata;
extern sqapi_newtable sq_newtable;
extern sqapi_newtableex sq_newtableex;
extern sqapi_newarray sq_newarray;
extern sqapi_newclosure sq_newclosure;
extern sqapi_setparamscheck sq_setparamscheck;
extern sqapi_bindenv sq_bindenv;
extern sqapi_setclosureroot sq_setclosureroot;
extern sqapi_getclosureroot sq_getclosureroot;
extern sqapi_pushstring sq_pushstring;
extern sqapi_pushfloat sq_pushfloat;
extern sqapi_pushinteger sq_pushinteger;
extern sqapi_pushbool sq_pushbool;
extern sqapi_pushuserpointer sq_pushuserpointer;
extern sqapi_pushnull sq_pushnull;
extern sqapi_pushthread sq_pushthread;
extern sqapi_gettype sq_gettype;
extern sqapi_typeof sq_typeof;
extern sqapi_getsize sq_getsize;
extern sqapi_gethash sq_gethash;
extern sqapi_getbase sq_getbase;
extern sqapi_instanceof sq_instanceof;
extern sqapi_tostring sq_tostring;
extern sqapi_tobool sq_tobool;
extern sqapi_getstring sq_getstring;
extern sqapi_getinteger sq_getinteger;
extern sqapi_getfloat sq_getfloat;
extern sqapi_getbool sq_getbool;
extern sqapi_getthread sq_getthread;
extern sqapi_getuserpointer sq_getuserpointer;
extern sqapi_getuserdata sq_getuserdata;
extern sqapi_settypetag sq_settypetag;
extern sqapi_gettypetag sq_gettypetag;
extern sqapi_setreleasehook sq_setreleasehook;
extern sqapi_getreleasehook sq_getreleasehook;
extern sqapi_getscratchpad sq_getscratchpad;
extern sqapi_getfunctioninfo sq_getfunctioninfo;
extern sqapi_getclosureinfo sq_getclosureinfo;
extern sqapi_getclosurename sq_getclosurename;
extern sqapi_setnativeclosurename sq_setnativeclosurename;
extern sqapi_setinstanceup sq_setinstanceup;
extern sqapi_getinstanceup sq_getinstanceup;
extern sqapi_setclassudsize sq_setclassudsize;
extern sqapi_newclass sq_newclass;
extern sqapi_createinstance sq_createinstance;
extern sqapi_setattributes sq_setattributes;
extern sqapi_getattributes sq_getattributes;
extern sqapi_getclass sq_getclass;
extern sqapi_weakref sq_weakref;
extern sqapi_getdefaultdelegate sq_getdefaultdelegate;
extern sqapi_getmemberhandle sq_getmemberhandle;
extern sqapi_getbyhandle sq_getbyhandle;
extern sqapi_setbyhandle sq_setbyhandle;
/*object manipulation*/
extern sqapi_pushroottable sq_pushroottable;
extern sqapi_pushregistrytable sq_pushregistrytable;
extern sqapi_pushconsttable sq_pushconsttable;
extern sqapi_setroottable sq_setroottable;
extern sqapi_setconsttable sq_setconsttable;
extern sqapi_newslot sq_newslot;
extern sqapi_deleteslot sq_deleteslot;
extern sqapi_set sq_set;
extern sqapi_get sq_get;
extern sqapi_rawget sq_rawget;
extern sqapi_rawset sq_rawset;
extern sqapi_rawdeleteslot sq_rawdeleteslot;
extern sqapi_newmember sq_newmember;
extern sqapi_rawnewmember sq_rawnewmember;
extern sqapi_arrayappend sq_arrayappend;
extern sqapi_arraypop sq_arraypop;
extern sqapi_arrayresize sq_arrayresize;
extern sqapi_arrayreverse sq_arrayreverse;
extern sqapi_arrayremove sq_arrayremove;
extern sqapi_arrayinsert sq_arrayinsert;
extern sqapi_setdelegate sq_setdelegate;
extern sqapi_getdelegate sq_getdelegate;
extern sqapi_clone sq_clone;
extern sqapi_setfreevariable sq_setfreevariable;
extern sqapi_next sq_next;
extern sqapi_getweakrefval sq_getweakrefval;
extern sqapi_clear sq_clear;
/*calls*/
extern sqapi_call sq_call;
extern sqapi_resume sq_resume;
extern sqapi_getlocal sq_getlocal;
extern sqapi_getcallee sq_getcallee;
extern sqapi_getfreevariable sq_getfreevariable;
extern sqapi_throwerror sq_throwerror;
extern sqapi_throwobject sq_throwobject;
extern sqapi_reseterror sq_reseterror;
extern sqapi_getlasterror sq_getlasterror;
/*raw object handling*/
extern sqapi_getstackobj sq_getstackobj;
extern sqapi_pushobject sq_pushobject;
extern sqapi_addref sq_addref;
extern sqapi_release sq_release;
extern sqapi_getrefcount sq_getrefcount;
extern sqapi_resetobject sq_resetobject;
extern sqapi_objtostring sq_objtostring;
extern sqapi_objtobool sq_objtobool;
extern sqapi_objtointeger sq_objtointeger;
extern sqapi_objtofloat sq_objtofloat;
extern sqapi_objtouserpointer sq_objtouserpointer;
extern sqapi_getobjtypetag sq_getobjtypetag;
extern sqapi_getvmrefcount sq_getvmrefcount;
/*GC*/
extern sqapi_collectgarbage sq_collectgarbage;
extern sqapi_resurrectunreachable sq_resurrectunreachable;
/*serialization*/
extern sqapi_writeclosure sq_writeclosure;
extern sqapi_readclosure sq_readclosure;
/*mem allocation*/
extern sqapi_malloc sq_malloc;
extern sqapi_realloc sq_realloc;
extern sqapi_free sq_free;
/*debug*/
extern sqapi_stackinfos sq_stackinfos;
extern sqapi_setdebughook sq_setdebughook;
extern sqapi_setnativedebughook sq_setnativedebughook;
/*compiler helpers*/
extern sqapi_loadfile sqstd_loadfile;
extern sqapi_dofile sqstd_dofile;
extern sqapi_writeclosuretofile sqstd_writeclosuretofile;
/*blob*/
extern sqapi_createblob sqstd_createblob;
extern sqapi_getblob sqstd_getblob;
extern sqapi_getblobsize sqstd_getblobsize;
/*string*/
extern sqapi_format sqstd_format;
#endif // SQMOD_PLUGIN_API
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*_SQ_API_H_*/

4
shared/sq_mod.c Normal file
View File

@ -0,0 +1,4 @@
// ////////////////////////////////////////////////////////////////////////////////////////////////
#include "sq_mod.h"
#include "sq_mod.inl"
/* This method is used toa void compilers warning about C++ flags on C files and viceversa. */

4
shared/sq_mod.cpp Normal file
View File

@ -0,0 +1,4 @@
// ////////////////////////////////////////////////////////////////////////////////////////////////
#include "sq_mod.h"
#include "sq_mod.inl"
/* This method is used toa void compilers warning about C++ flags on C files and viceversa. */

579
shared/sq_mod.h Normal file
View File

@ -0,0 +1,579 @@
//
// SqModule: API used to communicate with and register squirrel modules
//
//
// Copyright (c) 2009 Sandu Liviu Catalin (aka. S.L.C)
//
// This software is provided 'as-is', without any express or implied
// warranty. In no event will the authors be held liable for any damages
// arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it
// freely, subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software. If you use this software
// in a product, an acknowledgment in the product documentation would be
// appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source
// distribution.
//
#if !defined(_SQ_MOD_H_)
#define _SQ_MOD_H_
#include "sq_api.h"
#include "vcmp.h"
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_MSC_VER)
#define SQMOD_API_EXPORT extern "C" __declspec(dllexport)
#elif defined(__GNUC__)
#define SQMOD_API_EXPORT extern "C"
#else
#define SQMOD_API_EXPORT extern "C"
#endif
#define SQMOD_HOST_NAME "SqModHost"
#define SQMOD_INITIALIZE_CMD 0xDABBAD00
#define SQMOD_TERMINATE_CMD 0xDEADC0DE
/* --------------------------------------------------------------------------------------------
* Allows modules to interface with the plugin API without linking of any sorts
*/
typedef struct
{
unsigned int uStructSize;
HSQAPI (*GetSquirrelAPI) ( void );
HSQUIRRELVM (*GetSquirrelVM) (void);
} sq_exports, SQEXPORTS, *HSQEXPORTS;
/* ------------------------------------------------------------------------------------------------
* PLUGIN SYSTEM
*/
extern SDK_GetServerVersion SqVC_GetServerVersion;
extern SDK_GetServerSettings SqVC_GetServerSettings;
extern SDK_ExportFunctions SqVC_ExportFunctions;
extern SDK_GetNumberOfPlugins SqVC_GetNumberOfPlugins;
extern SDK_GetPluginInfo SqVC_GetPluginInfo;
extern SDK_FindPlugin SqVC_FindPlugin;
extern SDK_GetPluginExports SqVC_GetPluginExports;
extern SDK_GetTime SqVC_GetTime;
/* ------------------------------------------------------------------------------------------------
* MESSAGES
*/
extern SDK_printf SqVC_printf;
extern SDK_SendCustomCommand SqVC_SendCustomCommand;
extern SDK_SendClientMessage SqVC_SendClientMessage;
extern SDK_SendGameMessage SqVC_SendGameMessage;
/* ------------------------------------------------------------------------------------------------
* SERVER SETTINGS
*/
extern SDK_SetServerName SqVC_SetServerName;
extern SDK_GetServerName SqVC_GetServerName;
extern SDK_SetMaxPlayers SqVC_SetMaxPlayers;
extern SDK_GetMaxPlayers SqVC_GetMaxPlayers;
extern SDK_SetServerPassword SqVC_SetServerPassword;
extern SDK_GetServerPassword SqVC_GetServerPassword;
extern SDK_SetGameModeText SqVC_SetGameModeText;
extern SDK_GetGameModeText SqVC_GetGameModeText;
extern SDK_ShutdownServer SqVC_ShutdownServer;
/* ------------------------------------------------------------------------------------------------
* WORLD: settings
*/
extern SDK_SetWorldBounds SqVC_SetWorldBounds;
extern SDK_GetWorldBounds SqVC_GetWorldBounds;
extern SDK_SetWastedSettings SqVC_SetWastedSettings;
extern SDK_GetWastedSettings SqVC_GetWastedSettings;
extern SDK_SetTimeRate SqVC_SetTimeRate;
extern SDK_GetTimeRate SqVC_GetTimeRate;
extern SDK_SetHour SqVC_SetHour;
extern SDK_GetHour SqVC_GetHour;
extern SDK_SetMinute SqVC_SetMinute;
extern SDK_GetMinute SqVC_GetMinute;
extern SDK_SetWeather SqVC_SetWeather;
extern SDK_GetWeather SqVC_GetWeather;
extern SDK_SetGravity SqVC_SetGravity;
extern SDK_GetGravity SqVC_GetGravity;
extern SDK_SetGamespeed SqVC_SetGamespeed;
extern SDK_GetGamespeed SqVC_GetGamespeed;
extern SDK_SetWaterLevel SqVC_SetWaterLevel;
extern SDK_GetWaterLevel SqVC_GetWaterLevel;
extern SDK_SetMaxHeight SqVC_SetMaxHeight;
extern SDK_GetMaxHeight SqVC_GetMaxHeight;
extern SDK_SetKillCmdDelay SqVC_SetKillCmdDelay;
extern SDK_GetKillCmdDelay SqVC_GetKillCmdDelay;
extern SDK_SetVehiclesForcedRespawnHeight SqVC_SetVehiclesForcedRespawnHeight;
extern SDK_GetVehiclesForcedRespawnHeight SqVC_GetVehiclesForcedRespawnHeight;
/* ------------------------------------------------------------------------------------------------
* WORLD: toggles
*/
extern SDK_ToggleSyncFrameLimiter SqVC_ToggleSyncFrameLimiter;
extern SDK_EnabledSyncFrameLimiter SqVC_EnabledSyncFrameLimiter;
extern SDK_ToggleFrameLimiter SqVC_ToggleFrameLimiter;
extern SDK_EnabledFrameLimiter SqVC_EnabledFrameLimiter;
extern SDK_ToggleTaxiBoostJump SqVC_ToggleTaxiBoostJump;
extern SDK_EnabledTaxiBoostJump SqVC_EnabledTaxiBoostJump;
extern SDK_ToggleDriveOnWater SqVC_ToggleDriveOnWater;
extern SDK_EnabledDriveOnWater SqVC_EnabledDriveOnWater;
extern SDK_ToggleFastSwitch SqVC_ToggleFastSwitch;
extern SDK_EnabledFastSwitch SqVC_EnabledFastSwitch;
extern SDK_ToggleFriendlyFire SqVC_ToggleFriendlyFire;
extern SDK_EnabledFriendlyFire SqVC_EnabledFriendlyFire;
extern SDK_ToggleDisableDriveby SqVC_ToggleDisableDriveby;
extern SDK_EnabledDisableDriveby SqVC_EnabledDisableDriveby;
extern SDK_TogglePerfectHandling SqVC_TogglePerfectHandling;
extern SDK_EnabledPerfectHandling SqVC_EnabledPerfectHandling;
extern SDK_ToggleFlyingCars SqVC_ToggleFlyingCars;
extern SDK_EnabledFlyingCars SqVC_EnabledFlyingCars;
extern SDK_ToggleJumpSwitch SqVC_ToggleJumpSwitch;
extern SDK_EnabledJumpSwitch SqVC_EnabledJumpSwitch;
extern SDK_ToggleShowMarkers SqVC_ToggleShowMarkers;
extern SDK_EnabledShowMarkers SqVC_EnabledShowMarkers;
extern SDK_ToggleOnlyShowTeamMarkers SqVC_ToggleOnlyShowTeamMarkers;
extern SDK_EnabledOnlyShowTeamMarkers SqVC_EnabledOnlyShowTeamMarkers;
extern SDK_ToggleStuntBike SqVC_ToggleStuntBike;
extern SDK_EnabledStuntBike SqVC_EnabledStuntBike;
extern SDK_ToggleShootInAir SqVC_ToggleShootInAir;
extern SDK_EnabledShootInAir SqVC_EnabledShootInAir;
extern SDK_ToggleShowNametags SqVC_ToggleShowNametags;
extern SDK_EnabledShowNametags SqVC_EnabledShowNametags;
extern SDK_ToggleJoinMessages SqVC_ToggleJoinMessages;
extern SDK_EnabledJoinMessages SqVC_EnabledJoinMessages;
extern SDK_ToggleDeathMessages SqVC_ToggleDeathMessages;
extern SDK_EnabledDeathMessages SqVC_EnabledDeathMessages;
extern SDK_ToggleChatTagsByDefaultEnabled SqVC_ToggleChatTagsByDefaultEnabled;
extern SDK_EnabledChatTagsByDefault SqVC_EnabledChatTagsByDefault;
/* ------------------------------------------------------------------------------------------------
* MISC
*/
extern SDK_CreateExplosion SqVC_CreateExplosion;
extern SDK_PlaySound SqVC_PlaySound;
extern SDK_HideMapObject SqVC_HideMapObject;
extern SDK_ShowMapObject SqVC_ShowMapObject;
extern SDK_ShowAllMapObjects SqVC_ShowAllMapObjects;
/* ------------------------------------------------------------------------------------------------
* WEAPONDATA
*/
extern SDK_SetWeaponDataValue SqVC_SetWeaponDataValue;
extern SDK_GetWeaponDataValue SqVC_GetWeaponDataValue;
extern SDK_ResetWeaponDataValue SqVC_ResetWeaponDataValue;
extern SDK_IsWeaponDataValueModified SqVC_IsWeaponDataValueModified;
extern SDK_ResetWeaponData SqVC_ResetWeaponData;
extern SDK_ResetAllWeaponData SqVC_ResetAllWeaponData;
/* ------------------------------------------------------------------------------------------------
* KEYBINDS
*/
extern SDK_GetKeyBindUnusedSlot SqVC_GetKeyBindUnusedSlot;
extern SDK_GetKeyBindData SqVC_GetKeyBindData;
extern SDK_RegisterKeyBind SqVC_RegisterKeyBind;
extern SDK_RemoveKeyBind SqVC_RemoveKeyBind;
extern SDK_RemoveAllKeyBinds SqVC_RemoveAllKeyBinds;
/* ------------------------------------------------------------------------------------------------
* BLIPS
*/
extern SDK_CreateCoordBlip SqVC_CreateCoordBlip;
extern SDK_DestroyCoordBlip SqVC_DestroyCoordBlip;
extern SDK_GetCoordBlipInfo SqVC_GetCoordBlipInfo;
/* ------------------------------------------------------------------------------------------------
* SPRITES
*/
extern SDK_CreateSprite SqVC_CreateSprite;
extern SDK_DestroySprite SqVC_DestroySprite;
extern SDK_ShowSprite SqVC_ShowSprite;
extern SDK_HideSprite SqVC_HideSprite;
extern SDK_MoveSprite SqVC_MoveSprite;
extern SDK_SetSpriteCenter SqVC_SetSpriteCenter;
extern SDK_RotateSprite SqVC_RotateSprite;
extern SDK_SetSpriteAlpha SqVC_SetSpriteAlpha;
extern SDK_SetSpriteRelativity SqVC_SetSpriteRelativity;
/* ------------------------------------------------------------------------------------------------
* TEXTDRAWS
*/
extern SDK_CreateTextdraw SqVC_CreateTextdraw;
extern SDK_DestroyTextdraw SqVC_DestroyTextdraw;
extern SDK_ShowTextdraw SqVC_ShowTextdraw;
extern SDK_HideTextdraw SqVC_HideTextdraw;
extern SDK_MoveTextdraw SqVC_MoveTextdraw;
extern SDK_SetTextdrawColour SqVC_SetTextdrawColour;
extern SDK_SetTextdrawRelativity SqVC_SetTextdrawRelativity;
/* ------------------------------------------------------------------------------------------------
* RADIOS
*/
extern SDK_AddRadioStream SqVC_AddRadioStream;
extern SDK_RemoveRadioStream SqVC_RemoveRadioStream;
/* ------------------------------------------------------------------------------------------------
* CLASSES
*/
extern SDK_SetUseClasses SqVC_SetUseClasses;
extern SDK_GetUseClasses SqVC_GetUseClasses;
extern SDK_GetPlayerClass SqVC_GetPlayerClass;
extern SDK_AddPlayerClass SqVC_AddPlayerClass;
extern SDK_SetSpawnPlayerPos SqVC_SetSpawnPlayerPos;
extern SDK_SetSpawnCameraPos SqVC_SetSpawnCameraPos;
extern SDK_SetSpawnCameraLookAt SqVC_SetSpawnCameraLookAt;
/* ------------------------------------------------------------------------------------------------
* ADMIN
*/
extern SDK_IsPlayerAdmin SqVC_IsPlayerAdmin;
extern SDK_SetPlayerAdmin SqVC_SetPlayerAdmin;
extern SDK_GetPlayerIP SqVC_GetPlayerIP;
extern SDK_KickPlayer SqVC_KickPlayer;
extern SDK_BanPlayer SqVC_BanPlayer;
extern SDK_BanIP SqVC_BanIP;
extern SDK_UnbanIP SqVC_UnbanIP;
extern SDK_IsIPBanned SqVC_IsIPBanned;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: basic
*/
extern SDK_GetPlayerIDFromName SqVC_GetPlayerIDFromName;
extern SDK_IsPlayerConnected SqVC_IsPlayerConnected;
extern SDK_IsPlayerSpawned SqVC_IsPlayerSpawned;
extern SDK_IsPlayerStreamedForPlayer SqVC_IsPlayerStreamedForPlayer;
extern SDK_GetPlayerKey SqVC_GetPlayerKey;
extern SDK_SetPlayerWorld SqVC_SetPlayerWorld;
extern SDK_GetPlayerWorld SqVC_GetPlayerWorld;
extern SDK_SetPlayerSecWorld SqVC_SetPlayerSecWorld;
extern SDK_GetPlayerSecWorld SqVC_GetPlayerSecWorld;
extern SDK_GetPlayerUniqueWorld SqVC_GetPlayerUniqueWorld;
extern SDK_IsPlayerWorldCompatible SqVC_IsPlayerWorldCompatible;
extern SDK_GetPlayerState SqVC_GetPlayerState;
extern SDK_GetPlayerName SqVC_GetPlayerName;
extern SDK_SetPlayerName SqVC_SetPlayerName;
extern SDK_SetPlayerTeam SqVC_SetPlayerTeam;
extern SDK_GetPlayerTeam SqVC_GetPlayerTeam;
extern SDK_SetPlayerSkin SqVC_SetPlayerSkin;
extern SDK_GetPlayerSkin SqVC_GetPlayerSkin;
extern SDK_SetPlayerColour SqVC_SetPlayerColour;
extern SDK_GetPlayerColour SqVC_GetPlayerColour;
extern SDK_ForcePlayerSpawn SqVC_ForcePlayerSpawn;
extern SDK_ForcePlayerSelect SqVC_ForcePlayerSelect;
extern SDK_ForceAllSelect SqVC_ForceAllSelect;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: score, ping, money, typing
*/
extern SDK_GivePlayerMoney SqVC_GivePlayerMoney;
extern SDK_SetPlayerMoney SqVC_SetPlayerMoney;
extern SDK_GetPlayerMoney SqVC_GetPlayerMoney;
extern SDK_SetPlayerScore SqVC_SetPlayerScore;
extern SDK_GetPlayerScore SqVC_GetPlayerScore;
extern SDK_GetPlayerPing SqVC_GetPlayerPing;
extern SDK_IsPlayerTyping SqVC_IsPlayerTyping;
extern SDK_GetPlayerFPS SqVC_GetPlayerFPS;
extern SDK_GetPlayerUID SqVC_GetPlayerUID;
extern SDK_GetPlayerWantedLevel SqVC_GetPlayerWantedLevel;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: health and location
*/
extern SDK_SetPlayerHealth SqVC_SetPlayerHealth;
extern SDK_GetPlayerHealth SqVC_GetPlayerHealth;
extern SDK_SetPlayerArmour SqVC_SetPlayerArmour;
extern SDK_GetPlayerArmour SqVC_GetPlayerArmour;
extern SDK_SetPlayerImmunityFlags SqVC_SetPlayerImmunityFlags;
extern SDK_GetPlayerImmunityFlags SqVC_GetPlayerImmunityFlags;
extern SDK_SetPlayerPos SqVC_SetPlayerPos;
extern SDK_GetPlayerPos SqVC_GetPlayerPos;
extern SDK_SetPlayerSpeed SqVC_SetPlayerSpeed;
extern SDK_GetPlayerSpeed SqVC_GetPlayerSpeed;
extern SDK_AddPlayerSpeed SqVC_AddPlayerSpeed;
extern SDK_SetPlayerHeading SqVC_SetPlayerHeading;
extern SDK_GetPlayerHeading SqVC_GetPlayerHeading;
extern SDK_SetPlayerAlpha SqVC_SetPlayerAlpha;
extern SDK_GetPlayerAlpha SqVC_GetPlayerAlpha;
extern SDK_GetPlayerOnFireStatus SqVC_GetPlayerOnFireStatus;
extern SDK_GetPlayerCrouchStatus SqVC_GetPlayerCrouchStatus;
extern SDK_GetPlayerAction SqVC_GetPlayerAction;
extern SDK_GetPlayerGameKeys SqVC_GetPlayerGameKeys;
extern SDK_GetPlayerAimPos SqVC_GetPlayerAimPos;
extern SDK_GetPlayerAimDir SqVC_GetPlayerAimDir;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: vehicle
*/
extern SDK_PutPlayerInVehicle SqVC_PutPlayerInVehicle;
extern SDK_RemovePlayerFromVehicle SqVC_RemovePlayerFromVehicle;
extern SDK_GetPlayerInVehicleStatus SqVC_GetPlayerInVehicleStatus;
extern SDK_GetPlayerInVehicleSlot SqVC_GetPlayerInVehicleSlot;
extern SDK_GetPlayerVehicleID SqVC_GetPlayerVehicleID;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: toggles
*/
extern SDK_TogglePlayerControllable SqVC_TogglePlayerControllable;
extern SDK_EnabledPlayerControllable SqVC_EnabledPlayerControllable;
extern SDK_TogglePlayerDriveby SqVC_TogglePlayerDriveby;
extern SDK_EnabledPlayerDriveby SqVC_EnabledPlayerDriveby;
extern SDK_TogglePlayerWhiteScanlines SqVC_TogglePlayerWhiteScanlines;
extern SDK_EnabledPlayerWhiteScanlines SqVC_EnabledPlayerWhiteScanlines;
extern SDK_TogglePlayerGreenScanlines SqVC_TogglePlayerGreenScanlines;
extern SDK_EnabledPlayerGreenScanlines SqVC_EnabledPlayerGreenScanlines;
extern SDK_TogglePlayerWidescreen SqVC_TogglePlayerWidescreen;
extern SDK_EnabledPlayerWidescreen SqVC_EnabledPlayerWidescreen;
extern SDK_TogglePlayerShowMarkers SqVC_TogglePlayerShowMarkers;
extern SDK_EnabledPlayerShowMarkers SqVC_EnabledPlayerShowMarkers;
extern SDK_TogglePlayerAttackPriv SqVC_TogglePlayerAttackPriv;
extern SDK_EnabledPlayerAttackPriv SqVC_EnabledPlayerAttackPriv;
extern SDK_TogglePlayerHasMarker SqVC_TogglePlayerHasMarker;
extern SDK_EnabledPlayerHasMarker SqVC_EnabledPlayerHasMarker;
extern SDK_TogglePlayerChatTagsEnabled SqVC_TogglePlayerChatTagsEnabled;
extern SDK_EnabledPlayerChatTags SqVC_EnabledPlayerChatTags;
extern SDK_TogglePlayerDrunkEffects SqVC_TogglePlayerDrunkEffects;
extern SDK_EnabledPlayerDrunkEffects SqVC_EnabledPlayerDrunkEffects;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: weapons
*/
extern SDK_GivePlayerWeapon SqVC_GivePlayerWeapon;
extern SDK_SetPlayerWeapon SqVC_SetPlayerWeapon;
extern SDK_GetPlayerWeapon SqVC_GetPlayerWeapon;
extern SDK_GetPlayerWeaponAmmo SqVC_GetPlayerWeaponAmmo;
extern SDK_SetPlayerWeaponSlot SqVC_SetPlayerWeaponSlot;
extern SDK_GetPlayerWeaponSlot SqVC_GetPlayerWeaponSlot;
extern SDK_GetPlayerWeaponAtSlot SqVC_GetPlayerWeaponAtSlot;
extern SDK_GetPlayerAmmoAtSlot SqVC_GetPlayerAmmoAtSlot;
extern SDK_RemovePlayerWeapon SqVC_RemovePlayerWeapon;
extern SDK_RemoveAllWeapons SqVC_RemoveAllWeapons;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: camera
*/
extern SDK_SetCameraPosition SqVC_SetCameraPosition;
extern SDK_RestoreCamera SqVC_RestoreCamera;
extern SDK_IsCameraLocked SqVC_IsCameraLocked;
/* ------------------------------------------------------------------------------------------------
* PLAYERS: misc
*/
extern SDK_SetPlayerAnimation SqVC_SetPlayerAnimation;
extern SDK_SetPlayerWantedLevel SqVC_SetPlayerWantedLevel;
extern SDK_GetPlayerStandingOnVehicle SqVC_GetPlayerStandingOnVehicle;
extern SDK_GetPlayerStandingOnObject SqVC_GetPlayerStandingOnObject;
extern SDK_IsPlayerAway SqVC_IsPlayerAway;
extern SDK_GetPlayerSpectateTarget SqVC_GetPlayerSpectateTarget;
extern SDK_SetPlayerSpectateTarget SqVC_SetPlayerSpectateTarget;
extern SDK_RedirectPlayerToServer SqVC_RedirectPlayerToServer;
/* ------------------------------------------------------------------------------------------------
* VEHICLES
*/
extern SDK_CreateVehicle SqVC_CreateVehicle;
extern SDK_DeleteVehicle SqVC_DeleteVehicle;
extern SDK_GetVehicleSyncSource SqVC_GetVehicleSyncSource;
extern SDK_GetVehicleSyncType SqVC_GetVehicleSyncType;
extern SDK_IsVehicleStreamedForPlayer SqVC_IsVehicleStreamedForPlayer;
extern SDK_SetVehicleWorld SqVC_SetVehicleWorld;
extern SDK_GetVehicleWorld SqVC_GetVehicleWorld;
extern SDK_GetVehicleModel SqVC_GetVehicleModel;
extern SDK_GetVehicleOccupant SqVC_GetVehicleOccupant;
extern SDK_RespawnVehicle SqVC_RespawnVehicle;
extern SDK_SetVehicleImmunityFlags SqVC_SetVehicleImmunityFlags;
extern SDK_GetVehicleImmunityFlags SqVC_GetVehicleImmunityFlags;
extern SDK_KillVehicle SqVC_KillVehicle;
extern SDK_IsVehicleWrecked SqVC_IsVehicleWrecked;
extern SDK_SetVehiclePos SqVC_SetVehiclePos;
extern SDK_GetVehiclePos SqVC_GetVehiclePos;
extern SDK_SetVehicleRot SqVC_SetVehicleRot;
extern SDK_SetVehicleRotEuler SqVC_SetVehicleRotEuler;
extern SDK_GetVehicleRot SqVC_GetVehicleRot;
extern SDK_GetVehicleRotEuler SqVC_GetVehicleRotEuler;
extern SDK_SetVehicleSpeed SqVC_SetVehicleSpeed;
extern SDK_GetVehicleSpeed SqVC_GetVehicleSpeed;
extern SDK_AddVehicleSpeed SqVC_AddVehicleSpeed;
extern SDK_SetVehicleRelSpeed SqVC_SetVehicleRelSpeed;
extern SDK_GetVehicleRelSpeed SqVC_GetVehicleRelSpeed;
extern SDK_AddVehicleRelSpeed SqVC_AddVehicleRelSpeed;
extern SDK_SetVehicleTurnSpeed SqVC_SetVehicleTurnSpeed;
extern SDK_GetVehicleTurnSpeed SqVC_GetVehicleTurnSpeed;
extern SDK_AddVehicleTurnSpeed SqVC_AddVehicleTurnSpeed;
extern SDK_SetVehicleRelTurnSpeed SqVC_SetVehicleRelTurnSpeed;
extern SDK_GetVehicleRelTurnSpeed SqVC_GetVehicleRelTurnSpeed;
extern SDK_AddVehicleRelTurnSpeed SqVC_AddVehicleRelTurnSpeed;
extern SDK_SetVehicleSpawnPos SqVC_SetVehicleSpawnPos;
extern SDK_GetVehicleSpawnPos SqVC_GetVehicleSpawnPos;
extern SDK_SetVehicleSpawnRot SqVC_SetVehicleSpawnRot;
extern SDK_SetVehicleSpawnRotEuler SqVC_SetVehicleSpawnRotEuler;
extern SDK_GetVehicleSpawnRot SqVC_GetVehicleSpawnRot;
extern SDK_GetVehicleSpawnRotEuler SqVC_GetVehicleSpawnRotEuler;
extern SDK_SetVehicleIdleRespawnTimer SqVC_SetVehicleIdleRespawnTimer;
extern SDK_GetVehicleIdleRespawnTimer SqVC_GetVehicleIdleRespawnTimer;
extern SDK_SetVehicleHealth SqVC_SetVehicleHealth;
extern SDK_GetVehicleHealth SqVC_GetVehicleHealth;
extern SDK_SetVehicleColour SqVC_SetVehicleColour;
extern SDK_GetVehicleColour SqVC_GetVehicleColour;
extern SDK_SetVehicleDoorsLocked SqVC_SetVehicleDoorsLocked;
extern SDK_GetVehicleDoorsLocked SqVC_GetVehicleDoorsLocked;
extern SDK_SetVehiclePartStatus SqVC_SetVehiclePartStatus;
extern SDK_GetVehiclePartStatus SqVC_GetVehiclePartStatus;
extern SDK_SetVehicleTyreStatus SqVC_SetVehicleTyreStatus;
extern SDK_GetVehicleTyreStatus SqVC_GetVehicleTyreStatus;
extern SDK_SetVehicleDamageData SqVC_SetVehicleDamageData;
extern SDK_GetVehicleDamageData SqVC_GetVehicleDamageData;
extern SDK_SetVehicleAlarm SqVC_SetVehicleAlarm;
extern SDK_GetVehicleAlarm SqVC_GetVehicleAlarm;
extern SDK_SetVehicleLights SqVC_SetVehicleLights;
extern SDK_GetVehicleLights SqVC_GetVehicleLights;
extern SDK_SetVehicleRadio SqVC_SetVehicleRadio;
extern SDK_GetVehicleRadio SqVC_GetVehicleRadio;
extern SDK_SetVehicleRadioLocked SqVC_SetVehicleRadioLocked;
extern SDK_IsVehicleRadioLocked SqVC_IsVehicleRadioLocked;
extern SDK_GetVehicleGhostState SqVC_GetVehicleGhostState;
extern SDK_SetVehicleGhostState SqVC_SetVehicleGhostState;
extern SDK_GetVehicleTurretRotation SqVC_GetVehicleTurretRotation;
/* ------------------------------------------------------------------------------------------------
* VEHICLES: handling
*/
extern SDK_ResetAllVehicleHandlings SqVC_ResetAllVehicleHandlings;
extern SDK_ExistsHandlingRule SqVC_ExistsHandlingRule;
extern SDK_SetHandlingRule SqVC_SetHandlingRule;
extern SDK_GetHandlingRule SqVC_GetHandlingRule;
extern SDK_ResetHandlingRule SqVC_ResetHandlingRule;
extern SDK_ResetHandling SqVC_ResetHandling;
extern SDK_ExistsInstHandlingRule SqVC_ExistsInstHandlingRule;
extern SDK_SetInstHandlingRule SqVC_SetInstHandlingRule;
extern SDK_GetInstHandlingRule SqVC_GetInstHandlingRule;
extern SDK_ResetInstHandlingRule SqVC_ResetInstHandlingRule;
extern SDK_ResetInstHandling SqVC_ResetInstHandling;
/* ------------------------------------------------------------------------------------------------
* PICKUPS
*/
extern SDK_CreatePickup SqVC_CreatePickup;
extern SDK_DeletePickup SqVC_DeletePickup;
extern SDK_IsPickupStreamedForPlayer SqVC_IsPickupStreamedForPlayer;
extern SDK_SetPickupWorld SqVC_SetPickupWorld;
extern SDK_GetPickupWorld SqVC_GetPickupWorld;
extern SDK_PickupGetAlpha SqVC_PickupGetAlpha;
extern SDK_PickupSetAlpha SqVC_PickupSetAlpha;
extern SDK_PickupIsAutomatic SqVC_PickupIsAutomatic;
extern SDK_PickupSetAutomatic SqVC_PickupSetAutomatic;
extern SDK_SetPickupAutoTimer SqVC_SetPickupAutoTimer;
extern SDK_GetPickupAutoTimer SqVC_GetPickupAutoTimer;
extern SDK_PickupRefresh SqVC_PickupRefresh;
extern SDK_PickupGetPos SqVC_PickupGetPos;
extern SDK_PickupSetPos SqVC_PickupSetPos;
extern SDK_PickupGetModel SqVC_PickupGetModel;
extern SDK_PickupGetQuantity SqVC_PickupGetQuantity;
/* ------------------------------------------------------------------------------------------------
* OBJECTS
*/
extern SDK_CreateObject SqVC_CreateObject;
extern SDK_DeleteObject SqVC_DeleteObject;
extern SDK_IsObjectStreamedForPlayer SqVC_IsObjectStreamedForPlayer;
extern SDK_GetObjectModel SqVC_GetObjectModel;
extern SDK_SetObjectWorld SqVC_SetObjectWorld;
extern SDK_GetObjectWorld SqVC_GetObjectWorld;
extern SDK_SetObjectAlpha SqVC_SetObjectAlpha;
extern SDK_GetObjectAlpha SqVC_GetObjectAlpha;
extern SDK_MoveObjectTo SqVC_MoveObjectTo;
extern SDK_MoveObjectBy SqVC_MoveObjectBy;
extern SDK_SetObjectPos SqVC_SetObjectPos;
extern SDK_GetObjectPos SqVC_GetObjectPos;
extern SDK_RotObjectTo SqVC_RotObjectTo;
extern SDK_RotObjectToEuler SqVC_RotObjectToEuler;
extern SDK_RotObjectBy SqVC_RotObjectBy;
extern SDK_RotObjectByEuler SqVC_RotObjectByEuler;
extern SDK_GetObjectRot SqVC_GetObjectRot;
extern SDK_GetObjectRotEuler SqVC_GetObjectRotEuler;
extern SDK_SetObjectShotReport SqVC_SetObjectShotReport;
extern SDK_IsObjectShotReport SqVC_IsObjectShotReport;
extern SDK_SetObjectBumpReport SqVC_SetObjectBumpReport;
extern SDK_IsObjectBumpReport SqVC_IsObjectBumpReport;
/* ------------------------------------------------------------------------------------------------
*
*/
extern SDK_ToggleWallglitch SqVC_ToggleWallglitch;
extern SDK_EnabledWallglitch SqVC_EnabledWallglitch;
extern SDK_SetVehicleSiren SqVC_SetVehicleSiren;
extern SDK_GetVehicleSiren SqVC_GetVehicleSiren;
extern SDK_GetPlayerUID2 SqVC_GetPlayerUID2;
/* ------------------------------------------------------------------------------------------------
*
*/
extern SDK_CreateCheckpoint SqVC_CreateCheckpoint;
extern SDK_DeleteCheckpoint SqVC_DeleteCheckpoint;
extern SDK_IsCheckpointStreamedForPlayer SqVC_IsCheckpointStreamedForPlayer;
extern SDK_SetCheckpointWorld SqVC_SetCheckpointWorld;
extern SDK_GetCheckpointWorld SqVC_GetCheckpointWorld;
extern SDK_SetCheckpointColor SqVC_SetCheckpointColor;
extern SDK_GetCheckpointColor SqVC_GetCheckpointColor;
extern SDK_SetCheckpointPos SqVC_SetCheckpointPos;
extern SDK_GetCheckpointPos SqVC_GetCheckpointPos;
extern SDK_SetCheckpointRadius SqVC_SetCheckpointRadius;
extern SDK_GetCheckpointRadius SqVC_GetCheckpointRadius;
extern SDK_GetCheckpointOwner SqVC_GetCheckpointOwner;
/* ------------------------------------------------------------------------------------------------
*
*/
extern SDK_CreateSphere SqVC_CreateSphere;
extern SDK_DeleteSphere SqVC_DeleteSphere;
extern SDK_IsSphereStreamedForPlayer SqVC_IsSphereStreamedForPlayer;
extern SDK_SetSphereWorld SqVC_SetSphereWorld;
extern SDK_GetSphereWorld SqVC_GetSphereWorld;
extern SDK_SetSphereColor SqVC_SetSphereColor;
extern SDK_GetSphereColor SqVC_GetSphereColor;
extern SDK_SetSpherePos SqVC_SetSpherePos;
extern SDK_GetSpherePos SqVC_GetSpherePos;
extern SDK_SetSphereRadius SqVC_SetSphereRadius;
extern SDK_GetSphereRadius SqVC_GetSphereRadius;
extern SDK_GetSphereOwner SqVC_GetSphereOwner;
/* --------------------------------------------------------------------------------------------
* Import the functions from the main squirrel plugin.
*/
SQUIRREL_API HSQEXPORTS sq_api_import(PluginFuncs * vcapi);
/* --------------------------------------------------------------------------------------------
* Assign the functions from the specified API structure into the global functions.
*/
SQUIRREL_API SQRESULT sq_api_expand(HSQAPI sqapi);
/* --------------------------------------------------------------------------------------------
* Undo changes done by sq_api_expand.
*/
SQUIRREL_API void sq_api_collapse();
/* --------------------------------------------------------------------------------------------
* Assign the functions from the specified API structure into the global functions.
*/
SQUIRREL_API SQRESULT vc_api_expand(PluginFuncs * vcapi);
/* --------------------------------------------------------------------------------------------
* Undo changes done by vc_api_expand.
*/
SQUIRREL_API void vc_api_collapse();
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*_SQ_API_H_*/

1968
shared/sq_mod.inl Normal file

File diff suppressed because it is too large Load Diff