1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-06-30 22:17:13 +02:00

Untested update to the new plugin API.

Various other changes to the plugin as well.
This commit is contained in:
Sandu Liviu Catalin
2016-05-22 06:20:38 +03:00
parent ddb52677bd
commit f2361a27c3
167 changed files with 15520 additions and 60635 deletions

View File

@ -111,8 +111,8 @@
*/
#define SQMOD_NAME "Squirrel Module"
#define SQMOD_AUTHOR "Sandu Liviu Catalin"
#define SQMOD_COPYRIGHT "Copyright (C) 2015 Sandu Liviu Catalin"
#define SQMOD_AUTHOR "Sandu Liviu Catalin (S.L.C)"
#define SQMOD_COPYRIGHT "Copyright (C) 2016 Sandu Liviu Catalin"
#define SQMOD_HOST_NAME "SqModHost"
#define SQMOD_VERSION 001
#define SQMOD_VERSION_STR "0.0.1"
@ -123,6 +123,7 @@
/* ------------------------------------------------------------------------------------------------
* SQUIRREL FORWARD DECLARATIONS
*/
extern "C" {
typedef struct tagSQObject SQObject;
struct SQVM;
@ -133,6 +134,7 @@ extern "C" {
/* ------------------------------------------------------------------------------------------------
* SQRAT FORWARD DECLARATIONS
*/
namespace Sqrat {
class Array;
class Object;
@ -204,6 +206,7 @@ typedef Uint32 SizeT;
/* ------------------------------------------------------------------------------------------------
* STRING TYPE
*/
typedef std::basic_string<SQChar> String;
typedef char * CStr;
@ -215,6 +218,7 @@ typedef const SQChar * CSStr;
/* ------------------------------------------------------------------------------------------------
* SHORT SQUIRREL TYPENAMES
*/
typedef SQUnsignedInteger32 SQUint32;
typedef SQUnsignedInteger SQUint;
typedef SQInteger SQInt;
@ -222,6 +226,12 @@ typedef SQInteger SQInt;
// ------------------------------------------------------------------------------------------------
using namespace Sqrat;
/* ------------------------------------------------------------------------------------------------
* Squirrel compatible stl string.
*/
typedef std::basic_string< SQChar > String;
/* ------------------------------------------------------------------------------------------------
* FORWARD DECLARATIONS
*/
@ -265,217 +275,62 @@ template < typename T > class LongInt;
typedef LongInt< Int64 > SLongInt;
typedef LongInt< Uint64 > ULongInt;
/* ------------------------------------------------------------------------------------------------
* ...
*/
typedef std::basic_string< SQChar > String;
#ifdef _DEBUG
/* ------------------------------------------------------------------------------------------------
* A simple managed pointer used to identify if components are still used after shutdown.
*/
template < typename T > class ManagedPtr
{
private:
T * m_Ptr;
public:
/* --------------------------------------------------------------------------------------------
* Base constructor.
*/
ManagedPtr(T * ptr)
: m_Ptr(ptr)
{
/* ... */
}
/* --------------------------------------------------------------------------------------------
* Copy constructor. (disabled)
*/
ManagedPtr(const ManagedPtr & o) = delete;
/* --------------------------------------------------------------------------------------------
* Move constructor. (disabled)
*/
ManagedPtr(ManagedPtr && o)
: m_Ptr(o.m_Ptr)
{
o.m_Ptr = nullptr;
}
/* --------------------------------------------------------------------------------------------
* Destructor.
*/
~ManagedPtr()
{
if (m_Ptr)
{
delete m_Ptr;
}
}
/* --------------------------------------------------------------------------------------------
* Copy assignment operator. (disabled)
*/
ManagedPtr & operator = (const ManagedPtr & o) = delete;
/* --------------------------------------------------------------------------------------------
* Move assignment operator. (disabled)
*/
ManagedPtr & operator = (ManagedPtr && o)
{
if (m_Ptr != o.m_Ptr)
{
if (m_Ptr)
{
delete m_Ptr;
}
m_Ptr = o.m_Ptr;
o.m_Ptr = nullptr;
}
return *this;
}
/* --------------------------------------------------------------------------------------------
* Implicit conversion to boolean for use in boolean operations.
*/
operator bool () const
{
return m_Ptr;
}
/* --------------------------------------------------------------------------------------------
* Implicit conversion to the managed pointer type.
*/
operator T * () const
{
return m_Ptr;
}
/* --------------------------------------------------------------------------------------------
* Implicit conversion to the managed pointer type.
*/
operator const T * () const
{
return m_Ptr;
}
/* --------------------------------------------------------------------------------------------
* Member operator for dereferencing the managed pointer.
*/
T * operator -> () const
{
assert(m_Ptr != nullptr);
return m_Ptr;
}
/* --------------------------------------------------------------------------------------------
* Indirection operator for obtaining a reference of the managed pointer.
*/
T & operator * () const
{
assert(m_Ptr != nullptr);
return *m_Ptr;
}
/* --------------------------------------------------------------------------------------------
* Retrieve the managed pointer in it's raw form.
*/
T * Get() const
{
return m_Ptr;
}
};
#define SQMOD_MANAGEDPTR_TYPE(t) ManagedPtr< t >
#define SQMOD_MANAGEDPTR_REF(t) ManagedPtr< t > &
#define SQMOD_MANAGEDPTR_MAKE(t, p) ManagedPtr< t >(p)
#define SQMOD_MANAGEDPTR_DEL(t, p) p = ManagedPtr< t >(nullptr)
#define SQMOD_MANAGEDPTR_GET(p) p.Get();
#else
#define SQMOD_MANAGEDPTR_TYPE(t) t *
#define SQMOD_MANAGEDPTR_REF(t) t *
#define SQMOD_MANAGEDPTR_MAKE(t, p) p
#define SQMOD_MANAGEDPTR_DEL(t, p) delete p
#define SQMOD_MANAGEDPTR_GET(p) p
#endif // _DEBUG
// ------------------------------------------------------------------------------------------------
class BufferWrapper;
/* ------------------------------------------------------------------------------------------------
* FORWARD DECLARATIONS
*/
enum EventType
{
EVT_UNKNOWN = 0,
EVT_CUSTOMEVENT,
EVT_BLIPCREATED,
EVT_CHECKPOINTCREATED,
EVT_FORCEFIELDCREATED,
EVT_KEYBINDCREATED,
EVT_OBJECTCREATED,
EVT_PICKUPCREATED,
EVT_PLAYERCREATED,
EVT_SPRITECREATED,
EVT_TEXTDRAWCREATED,
EVT_VEHICLECREATED,
EVT_BLIPDESTROYED,
EVT_CHECKPOINTDESTROYED,
EVT_FORCEFIELDDESTROYED,
EVT_KEYBINDDESTROYED,
EVT_OBJECTDESTROYED,
EVT_PICKUPDESTROYED,
EVT_PLAYERDESTROYED,
EVT_SPRITEDESTROYED,
EVT_TEXTDRAWDESTROYED,
EVT_VEHICLEDESTROYED,
EVT_BLIPCUSTOM,
EVT_CHECKPOINTCUSTOM,
EVT_FORCEFIELDCUSTOM,
EVT_KEYBINDCUSTOM,
EVT_OBJECTCUSTOM,
EVT_PICKUPCUSTOM,
EVT_PLAYERCUSTOM,
EVT_SPRITECUSTOM,
EVT_TEXTDRAWCUSTOM,
EVT_VEHICLECUSTOM,
EVT_PLAYERAWAY,
EVT_PLAYERGAMEKEYS,
EVT_PLAYERRENAME,
EVT_SERVERSTARTUP,
EVT_SERVERSHUTDOWN,
EVT_SERVERFRAME,
EVT_INCOMINGCONNECTION,
EVT_PLAYERREQUESTCLASS,
EVT_PLAYERREQUESTSPAWN,
EVT_PLAYERSPAWN,
EVT_PLAYERSTARTTYPING,
EVT_PLAYERSTOPTYPING,
EVT_PLAYERCHAT,
EVT_PLAYERCOMMAND,
EVT_PLAYERMESSAGE,
EVT_PLAYERHEALTH,
EVT_PLAYERARMOUR,
EVT_PLAYERWEAPON,
EVT_PLAYERMOVE,
EVT_PLAYERWASTED,
EVT_PLAYERKILLED,
EVT_PLAYERTEAMKILL,
EVT_PLAYERSPECTATE,
EVT_PLAYERCRASHREPORT,
EVT_PLAYERBURNING,
EVT_PLAYERCROUCHING,
EVT_PLAYEREMBARKING,
EVT_PLAYEREMBARKED,
EVT_PLAYERDISEMBARK,
EVT_PLAYERRENAME,
EVT_PLAYERSTATE,
EVT_PLAYERACTION,
EVT_STATENONE,
EVT_STATENORMAL,
EVT_STATESHOOTING,
EVT_STATEAIM,
EVT_STATEDRIVER,
EVT_STATEPASSENGER,
EVT_STATEENTERDRIVER,
EVT_STATEENTERPASSENGER,
EVT_STATEEXITVEHICLE,
EVT_STATEEXIT,
EVT_STATEUNSPAWNED,
EVT_PLAYERACTION,
EVT_ACTIONNONE,
EVT_ACTIONNORMAL,
EVT_ACTIONAIMING,
@ -489,32 +344,44 @@ enum EventType
EVT_ACTIONWASTED,
EVT_ACTIONEMBARKING,
EVT_ACTIONDISEMBARKING,
EVT_VEHICLERESPAWN,
EVT_PLAYERBURNING,
EVT_PLAYERCROUCHING,
EVT_PLAYERGAMEKEYS,
EVT_PLAYERSTARTTYPING,
EVT_PLAYERSTOPTYPING,
EVT_PLAYERAWAY,
EVT_PLAYERMESSAGE,
EVT_PLAYERCOMMAND,
EVT_PLAYERPRIVATEMESSAGE,
EVT_PLAYERKEYPRESS,
EVT_PLAYERKEYRELEASE,
EVT_PLAYERSPECTATE,
EVT_PLAYERCRASHREPORT,
EVT_VEHICLEEXPLODE,
EVT_VEHICLEHEALTH,
EVT_VEHICLEMOVE,
EVT_PICKUPRESPAWN,
EVT_KEYBINDKEYPRESS,
EVT_KEYBINDKEYRELEASE,
EVT_VEHICLEEMBARKING,
EVT_VEHICLEEMBARKED,
EVT_VEHICLEDISEMBARK,
EVT_VEHICLERESPAWN,
EVT_OBJECTSHOT,
EVT_OBJECTTOUCHED,
EVT_PICKUPCLAIMED,
EVT_PICKUPCOLLECTED,
EVT_OBJECTSHOT,
EVT_OBJECTBUMP,
EVT_PICKUPRESPAWN,
EVT_CHECKPOINTENTERED,
EVT_CHECKPOINTEXITED,
EVT_FORCEFIELDENTERED,
EVT_FORCEFIELDEXITED,
EVT_SERVERFRAME,
EVT_SERVERSTARTUP,
EVT_SERVERSHUTDOWN,
EVT_INTERNALCOMMAND,
EVT_LOGINATTEMPT,
EVT_CUSTOMEVENT,
EVT_WORLDOPTION,
EVT_WORLDTOGGLE,
EVT_ENTITYPOOL,
EVT_CLIENTSCRIPTDATA,
EVT_PLAYERUPDATE,
EVT_VEHICLEUPDATE,
EVT_PLAYERHEALTH,
EVT_PLAYERARMOUR,
EVT_PLAYERWEAPON,
EVT_PLAYERHEADING,
EVT_PLAYERPOSITION,
EVT_PLAYEROPTION,
EVT_VEHICLECOLOUR,
EVT_VEHICLEHEALTH,
EVT_VEHICLEPOSITION,
EVT_VEHICLEROTATION,
EVT_VEHICLEOPTION,
EVT_SERVEROPTION,
EVT_SCRIPTRELOAD,
EVT_SCRIPTLOADED,
EVT_MAX
@ -730,13 +597,10 @@ enum CmdError
#define SQMOD_BLIP_POOL 128
#define SQMOD_CHECKPOINT_POOL 2000
#define SQMOD_FORCEFIELD_POOL 2000
#define SQMOD_KEYBIND_POOL 256
#define SQMOD_OBJECT_POOL 3000
#define SQMOD_PICKUP_POOL 2000
#define SQMOD_PLAYER_POOL 100
#define SQMOD_SPRITE_POOL 128
#define SQMOD_TEXTDRAW_POOL 256
#define SQMOD_VEHICLE_POOL 1000
/* ------------------------------------------------------------------------------------------------
@ -779,36 +643,11 @@ enum CmdError
*/
#define SQMOD_STACK_SIZE 2048
#define SQMOD_MAX_ROUTINES 1024
#define SQMOD_MAX_CMD_ARGS 12
#define SQMOD_PLAYER_MSG_PREFIXES 16
#define SQMOD_PLAYER_TMP_BUFFER 128
/* ------------------------------------------------------------------------------------------------
* ENTITY POOL UPDATE IDENTIFIERS
*/
#define SQMOD_ENTITY_POOL_VEHICLE 1
#define SQMOD_ENTITY_POOL_OBJECT 2
#define SQMOD_ENTITY_POOL_PICKUP 3
#define SQMOD_ENTITY_POOL_RADIO 4
#define SQMOD_ENTITY_POOL_SPRITE 5
#define SQMOD_ENTITY_POOL_TEXTDRAW 6
#define SQMOD_ENTITY_POOL_BLIP 7
#define SQMOD_ENTITY_POOL_MAX 8
/* ------------------------------------------------------------------------------------------------
* PLAYER STATE IDENTIFIERS
*/
#define SQMOD_PLAYER_STATE_NONE 0
#define SQMOD_PLAYER_STATE_NORMAL 1
#define SQMOD_PLAYER_STATE_SHOOTING 2
#define SQMOD_PLAYER_STATE_DRIVER 3
#define SQMOD_PLAYER_STATE_PASSENGER 4
#define SQMOD_PLAYER_STATE_ENTERING_AS_DRIVER 5
#define SQMOD_PLAYER_STATE_ENTERING_AS_PASSENGER 6
#define SQMOD_PLAYER_STATE_EXITING_VEHICLE 7
#define SQMOD_PLAYER_STATE_UNSPAWNED 8
#define SQMOD_PLAYER_STATE_MAX 9
/* ------------------------------------------------------------------------------------------------
* PLAYER ACTION IDENTIFIERS
*/
@ -827,43 +666,6 @@ enum CmdError
#define SQMOD_PLAYER_ACTION_EXITING_VEHICLE 60
#define SQMOD_PLAYER_ACTION_MAX 61
/* ------------------------------------------------------------------------------------------------
* VEHICLE UPDATE IDENTIFIERS
*/
#define SQMOD_VEHICLEUPD_DRIVER 0
#define SQMOD_VEHICLEUPD_OTHER 1
#define SQMOD_VEHICLEUPD_MAX 2
/* ------------------------------------------------------------------------------------------------
* PLAYER UPDATE IDENTIFIERS
*/
#define SQMOD_PLAYERUPD_ONFOOT 0
#define SQMOD_PLAYERUPD_AIM 1
#define SQMOD_PLAYERUPD_DRIVER 2
#define SQMOD_PLAYERUPD_PASSENGER 3
#define SQMOD_PLAYERUPD_MAX 4
/* ------------------------------------------------------------------------------------------------
* PART REASON IDENTIFIERS
*/
#define SQMOD_PARTREASON_TIMEOUT 0
#define SQMOD_PARTREASON_DISCONNECTED 1
#define SQMOD_PARTREASON_KICKEDBANNED 2
#define SQMOD_PARTREASON_CRASHED 3
#define SQMOD_PARTREASON_MAX 4
/* ------------------------------------------------------------------------------------------------
* BODY PART IDENTIFIERS
*/
#define SQMOD_BODYPART_BODY 0
#define SQMOD_BODYPART_TORSO 1
#define SQMOD_BODYPART_LEFTARM 2
#define SQMOD_BODYPART_RIGHTARM 3
#define SQMOD_BODYPART_LEFTLEG 4
#define SQMOD_BODYPART_RIGHTLEG 5
#define SQMOD_BODYPART_HEAD 6
#define SQMOD_BODYPART_MAX 7
/* ------------------------------------------------------------------------------------------------
* WEATHER IDENTIFIERS
*/