1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 08:47:17 +01:00
SqMod/source/Core.hpp
2015-11-08 12:35:54 +02:00

1530 lines
71 KiB
C++

#ifndef _CORE_HPP_
#define _CORE_HPP_
// ------------------------------------------------------------------------------------------------
#include "Common.hpp"
#include "Signal.hpp"
// ------------------------------------------------------------------------------------------------
#include "Base/Buffer.hpp"
#include "Base/Vector3.hpp"
// ------------------------------------------------------------------------------------------------
#include <list>
#include <vector>
#include <utility>
#include <unordered_map>
// ------------------------------------------------------------------------------------------------
namespace SqMod {
/* ------------------------------------------------------------------------------------------------
* The central core class is supposed to manage the life time of the plug-in and it's resources.
*/
class Core
{
/* --------------------------------------------------------------------------------------------
* Allow only the smart pointer to delete this class instance as soon as it's not needed.
*/
friend class std::unique_ptr< Core, void(*)(Core *) >;
protected:
/* --------------------------------------------------------------------------------------------
* Helper structure meant to track changes in player instances.
*/
struct TPlayer
{
/* Last used player weapon. */
SQInt32 Weapon;
/* Last known player health. */
SQFloat Health;
/* Last known player armour */
SQFloat Armour;
/* Last known player position. */
Vector3 Position;
/* Whether this entity is new and must not be check on first update. */
bool Fresh;
};
/* --------------------------------------------------------------------------------------------
* Helper structure meant to track changes in vehicle instances.
*/
struct TVehicle
{
/* Last known vehicle health. */
SQFloat Health;
/* Last known vehicle position. */
Vector3 Position;
/* Whether this entity is new and must not be check on first update. */
bool Fresh;
};
/* --------------------------------------------------------------------------------------------
* An array of player tracking structures for each player instance.
*/
typedef std::array< TPlayer, SQMOD_PLAYER_POOL > TPlayerInstPool;
/* --------------------------------------------------------------------------------------------
* An array of vehicle tracking structures for each vehicle instance.
*/
typedef std::array< TVehicle, SQMOD_VEHICLE_POOL > TVehicleInstPool;
/* --------------------------------------------------------------------------------------------
* Reference to all compiled scripts specified in the configuration file.
*/
typedef std::unordered_map< String, Script > SqScriptPool;
/* --------------------------------------------------------------------------------------------
* A key->value pair container with arbitrary configuration values.
*/
typedef std::unordered_map< String, String > OptionPool;
/* --------------------------------------------------------------------------------------------
* A list of available buffers that are shared across the script to avoid frequent allocations.
*/
typedef std::list< Buffer > BufferPool;
private:
/* --------------------------------------------------------------------------------------------
* Last known state of the plug-in that is to be returned by the event callbacks.
*/
SQInteger m_State;
/* --------------------------------------------------------------------------------------------
* All the user defined options in the general section of the configuration file.
*/
OptionPool m_Options;
/* --------------------------------------------------------------------------------------------
* The main Squirrel virtual machine instance associated with this class instance.
*/
HSQUIRRELVM m_VM;
/* --------------------------------------------------------------------------------------------
* All the scripts specified in the configuration file in their compiled form.
*/
SqScriptPool m_Scripts;
/* --------------------------------------------------------------------------------------------
* Last known error message in the plug-in throwing an error at certain stages is not an option.
*/
String m_ErrorMsg;
/* --------------------------------------------------------------------------------------------
* An array of instances of the tracking structure for each possible player on the server.
*/
TPlayerInstPool m_PlayerTrack;
/* --------------------------------------------------------------------------------------------
* An array of instances of the tracking structure for each possible vehicle on the server.
*/
TVehicleInstPool m_VehicleTrack;
/* --------------------------------------------------------------------------------------------
* A pool of shared buffers shared throughout the plug-in through move semantics.
*/
BufferPool m_BufferPool;
/* --------------------------------------------------------------------------------------------
* Server uptime calculated as the sum of delta time between server frames.
*/
Float32 m_Uptime;
protected:
/* --------------------------------------------------------------------------------------------
* Default constructor.
*/
Core();
/* --------------------------------------------------------------------------------------------
* Copy constructor (disabled).
*/
Core(Core const &) = delete;
/* --------------------------------------------------------------------------------------------
* Move constructor (disabled).
*/
Core(Core &&) = delete;
/* --------------------------------------------------------------------------------------------
* Destructor.
*/
~Core();
/* --------------------------------------------------------------------------------------------
* Copy assignment operator (disabled).
*/
Core & operator=(Core const &) = delete;
/* --------------------------------------------------------------------------------------------
* Move assignment operator (disabled).
*/
Core & operator=(Core &&) = delete;
/* --------------------------------------------------------------------------------------------
* Called by the smart pointer to delete the instance of this class.
*/
static void _Finalizer(Core * ptr);
public:
// --------------------------------------------------------------------------------------------
typedef std::unique_ptr< Core, void(*)(Core *) > Pointer;
/* --------------------------------------------------------------------------------------------
* Creates an instance of this type if one doesn't already exist and returns it.
*/
static Pointer Inst();
/* --------------------------------------------------------------------------------------------
* Attempt to initialize the plug-in subsystems and prepare it for the loading stage.
*/
bool Init();
/* --------------------------------------------------------------------------------------------
* Attempt load the plug-in resources and finally startup the plug-in.
*/
bool Load();
/* --------------------------------------------------------------------------------------------
* Attempt to de-initialize the plug-in subsystems and prepare the plug-in for proper shutdown.
*/
void Deinit();
/* --------------------------------------------------------------------------------------------
* Attempt to unload the plug-in resources and release everything from the load stage.
*/
void Unload();
/* --------------------------------------------------------------------------------------------
* Attempt to completely terminate the plug-in instance with no intention of starting up again.
*/
void Terminate();
/* --------------------------------------------------------------------------------------------
* Set the current plug-in state to the specified value.
*/
void SetState(SQInteger val);
/* --------------------------------------------------------------------------------------------
* Retrieve the current plug-in state.
*/
SQInteger GetState() const;
/* --------------------------------------------------------------------------------------------
* Retrieve the value associated with the specified option name.
*/
String GetOption(const String & name) const;
/* --------------------------------------------------------------------------------------------
* Change the value associated with the specified name.
*/
void SetOption(const String & name, const String & value);
/* --------------------------------------------------------------------------------------------
* Retrieve the plug-in/server cumulated uptime.
*/
SQFloat GetUptime() const;
/* --------------------------------------------------------------------------------------------
* Retrieve a buffer of at least the specified size.
*/
Buffer PullBuffer(unsigned sz = 4096);
/* --------------------------------------------------------------------------------------------
* Return a previously borrowed buffer back to the pool of buffers.
*/
void PushBuffer(Buffer && buf);
/* --------------------------------------------------------------------------------------------
* Create a collection of buffer with the specified size and add them to the pool.
*/
void MakeBuffer(unsigned num, unsigned sz = 4096);
/* --------------------------------------------------------------------------------------------
* Attempt to activate a specific player within the plug-in.
*/
void ConnectPlayer(SQInt32 id, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Attempt to deactivate a specific player withing the plug-in.
*/
void DisconnectPlayer(SQInt32 id, SQInt32 header, SqObj & payload);
protected:
/* --------------------------------------------------------------------------------------------
* Attempt to retrieve the values from the configuration file.
*/
bool Configure();
/* --------------------------------------------------------------------------------------------
* Attempt to create a Squirrel Virtual Machine.
*/
bool CreateVM();
/* --------------------------------------------------------------------------------------------
* Attempt to close a Squirrel Virtual Machine and destroy it's resources along with it.
*/
void DestroyVM();
/* --------------------------------------------------------------------------------------------
* Attempt to load the scripts specified in the configuration file.
*/
bool LoadScripts();
/* --------------------------------------------------------------------------------------------
* Attempt to compile the loaded scripts and store the resulted object.
*/
bool Compile(const String & name);
/* --------------------------------------------------------------------------------------------
* Attempt to execute the previously compiled scripts.
*/
bool Execute();
/* --------------------------------------------------------------------------------------------
* Print debugging information about the current call-stack.
*/
void PrintCallstack();
public:
/* --------------------------------------------------------------------------------------------
* Used by the Squirrel VM to output text messages to a stream defined by the plug-in.
*/
static void PrintFunc(HSQUIRRELVM vm, const SQChar * str, ...);
/* --------------------------------------------------------------------------------------------
* Used by the Squirrel VM to output error messages to a stream defined by the plug-in.
*/
static void ErrorFunc(HSQUIRRELVM vm, const SQChar * str, ...);
/* --------------------------------------------------------------------------------------------
* A custom error handler defined by the plug-in to be invoked when runtime errors occur.
*/
static SQInteger RuntimeErrorHandler(HSQUIRRELVM vm);
/* --------------------------------------------------------------------------------------------
* A custom error handler defined by the plug-in to be invoked when compile time errors occur.
*/
static void CompilerErrorHandler(HSQUIRRELVM vm, const SQChar * desc, const SQChar * src,
SQInteger line, SQInteger column);
public:
/* --------------------------------------------------------------------------------------------
* Creates a new Blip on the server
*/
Reference< CBlip > NewBlip(SQInt32 index, SQInt32 world, SQFloat x, SQFloat y, SQFloat z,
SQInt32 scale, SQUint32 color, SQInt32 sprid,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Checkpoint on the server
*/
Reference< CCheckpoint > NewCheckpoint(SQInt32 player, SQInt32 world, SQFloat x, SQFloat y, SQFloat z,
Uint8 r, Uint8 g, Uint8 b, Uint8 a, SQFloat radius,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Keybind on the server
*/
Reference< CKeybind > NewKeybind(SQInt32 slot, bool release,
SQInt32 primary, SQInt32 secondary, SQInt32 alternative,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Object on the server
*/
Reference< CObject > NewObject(SQInt32 model, SQInt32 world, SQFloat x, SQFloat y, SQFloat z,
SQInt32 alpha,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Pickup on the server
*/
Reference< CPickup > NewPickup(SQInt32 model, SQInt32 world, SQInt32 quantity,
SQFloat x, SQFloat y, SQFloat z, SQInt32 alpha, bool automatic,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Sphere on the server
*/
Reference< CSphere > NewSphere(SQInt32 player, SQInt32 world, SQFloat x, SQFloat y, SQFloat z,
Uint8 r, Uint8 g, Uint8 b, SQFloat radius,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Sprite on the server
*/
Reference< CSprite > NewSprite(SQInt32 index, const SQChar * file, SQInt32 xp, SQInt32 yp,
SQInt32 xr, SQInt32 yr, SQFloat angle, SQInt32 alpha, bool rel,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Textdraw on the server
*/
Reference< CTextdraw > NewTextdraw(SQInt32 index, const SQChar * text, SQInt32 xp, SQInt32 yp,
SQUint32 color, bool rel,
SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Creates a new Vehicle on the server
*/
Reference< CVehicle > NewVehicle(SQInt32 model, SQInt32 world, SQFloat x, SQFloat y, SQFloat z,
SQFloat angle, SQInt32 primary, SQInt32 secondary,
SQInt32 header, SqObj & payload);
public:
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the Squirrel Virtual machine is about to be closed.
*/
void OnVMClose();
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a blip entity instance was created.
*/
void OnBlipCreated(SQInt32 blip, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a checkpoint entity instance was created.
*/
void OnCheckpointCreated(SQInt32 checkpoint, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a keybind entity instance was created.
*/
void OnKeybindCreated(SQInt32 keybind, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a object entity instance was created.
*/
void OnObjectCreated(SQInt32 object, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a pickup entity instance was created.
*/
void OnPickupCreated(SQInt32 pickup, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player entity instance was created.
*/
void OnPlayerCreated(SQInt32 player, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sphere entity instance was created.
*/
void OnSphereCreated(SQInt32 sphere, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sprite entity instance was created.
*/
void OnSpriteCreated(SQInt32 sprite, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a textdraw entity instance was created.
*/
void OnTextdrawCreated(SQInt32 textdraw, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a vehicle entity instance was created.
*/
void OnVehicleCreated(SQInt32 vehicle, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a blip entity instance was destroyed.
*/
void OnBlipDestroyed(SQInt32 blip, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a checkpoint entity instance was destroyed.
*/
void OnCheckpointDestroyed(SQInt32 checkpoint, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a keybind entity instance was destroyed.
*/
void OnKeybindDestroyed(SQInt32 keybind, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a object entity instance was destroyed.
*/
void OnObjectDestroyed(SQInt32 object, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a pickup entity instance was destroyed.
*/
void OnPickupDestroyed(SQInt32 pickup, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player entity instance was destroyed.
*/
void OnPlayerDestroyed(SQInt32 player, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sphere entity instance was destroyed.
*/
void OnSphereDestroyed(SQInt32 sphere, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sprite entity instance was destroyed.
*/
void OnSpriteDestroyed(SQInt32 sprite, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a textdraw entity instance was destroyed.
*/
void OnTextdrawDestroyed(SQInt32 textdraw, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a vehicle entity instance was destroyed.
*/
void OnVehicleDestroyed(SQInt32 vehicle, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a blip entity instance triggered a custom event.
*/
void OnBlipCustom(SQInt32 blip, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a checkpoint entity instance triggered a custom event.
*/
void OnCheckpointCustom(SQInt32 checkpoint, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a keybind entity instance triggered a custom event.
*/
void OnKeybindCustom(SQInt32 keybind, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a object entity instance triggered a custom event.
*/
void OnObjectCustom(SQInt32 object, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a pickup entity instance triggered a custom event.
*/
void OnPickupCustom(SQInt32 pickup, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player entity instance triggered a custom event.
*/
void OnPlayerCustom(SQInt32 player, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sphere entity instance triggered a custom event.
*/
void OnSphereCustom(SQInt32 sphere, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a sprite entity instance triggered a custom event.
*/
void OnSpriteCustom(SQInt32 sprite, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a textdraw entity instance triggered a custom event.
*/
void OnTextdrawCustom(SQInt32 textdraw, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a vehicle entity instance triggered a custom event.
*/
void OnVehicleCustom(SQInt32 vehicle, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player changed his away status.
*/
void OnPlayerAway(SQInt32 player, bool status);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player pressed some game keys.
*/
void OnPlayerGameKeys(SQInt32 player, SQInt32 previous, SQInt32 current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player changed his nick name.
*/
void OnPlayerName(SQInt32 player, const SQChar * previous, const SQChar * current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player is requesting a specific class to be assigned to.
*/
void OnPlayerRequestClass(SQInt32 player, SQInt32 offset);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player requests to spawn in the game.
*/
void OnPlayerRequestSpawn(SQInt32 player);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player has spawned in the game.
*/
void OnPlayerSpawn(SQInt32 player);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player began typing in the chat/console.
*/
void OnPlayerStartTyping(SQInt32 player);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player stopped typing in the chat/console.
*/
void OnPlayerStopTyping(SQInt32 player);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player sent a public chat message.
*/
void OnPlayerChat(SQInt32 player, const SQChar * message);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player sent a server command.
*/
void OnPlayerCommand(SQInt32 player, const SQChar * command);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player sent a private chat message.
*/
void OnPlayerMessage(SQInt32 player, SQInt32 receiver, const SQChar * message);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the health changed for a specific player.
*/
void OnPlayerHealth(SQInt32 player, SQFloat previous, SQFloat current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the armour changed for a specific player.
*/
void OnPlayerArmour(SQInt32 player, SQFloat previous, SQFloat current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player changed his current weapon.
*/
void OnPlayerWeapon(SQInt32 player, SQInt32 previous, SQInt32 current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player changed his current location/position.
*/
void OnPlayerMove(SQInt32 player, const Vector3 & previous, const Vector3 & current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player died from a natural cause or self inflicted injury.
*/
void OnPlayerWasted(SQInt32 player, SQInt32 reason);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player was killed by another player.
*/
void OnPlayerKilled(SQInt32 player, SQInt32 killer, SQInt32 reason, SQInt32 body_part);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player began to spectator another player.
*/
void OnPlayerSpectate(SQInt32 player, SQInt32 target);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player sent a crash report to the server.
*/
void OnPlayerCrashreport(SQInt32 player, const SQChar * report);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player is on fire or stopped being on fire.
*/
void OnPlayerBurning(SQInt32 player, bool state);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player is crouching or stopped crouching.
*/
void OnPlayerCrouching(SQInt32 player, bool state);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed.
*/
void OnPlayerState(SQInt32 player, SQInt32 previous, SQInt32 current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed.
*/
void OnPlayerAction(SQInt32 player, SQInt32 previous, SQInt32 current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to nothing.
*/
void OnStateNone(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to normal.
*/
void OnStateNormal(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to shooting.
*/
void OnStateShooting(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to entered a vehicle
* as the driver.
*/
void OnStateDriver(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to entered a vehicle
* as the passenger.
*/
void OnStatePassenger(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to preparing to
* enter a vehicle as the driver.
*/
void OnStateEnterDriver(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to preparing to
* enter a vehicle as a passenger.
*/
void OnStateEnterPassenger(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to exiting a vehicle.
*/
void OnStateExitVehicle(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current state of a player has changed to being unspanned.
*/
void OnStateUnspawned(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to nothing.
*/
void OnActionNone(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to normal.
*/
void OnActionNormal(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to aiming at
* something.
*/
void OnActionAiming(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to shooting.
*/
void OnActionShooting(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to jumping.
*/
void OnActionJumping(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to lying down.
*/
void OnActionLieDown(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to getting up.
*/
void OnActionGettingUp(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to jumping out
* of a vehicle.
*/
void OnActionJumpVehicle(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to driving a vehicle.
*/
void OnActionDriving(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to dying after
* being killed by someone else.
*/
void OnActionDying(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to dying by
* natural causes or self inflicted injuries.
*/
void OnActionWasted(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to embarking
* a vehicle.
*/
void OnActionEmbarking(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the current action of a player has changed to disembarking
* a vehicle.
*/
void OnActionDisembarking(SQInt32 player, SQInt32 previous);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the a vehicle instance has re-spawned.
*/
void OnVehicleRespawn(SQInt32 vehicle);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the a vehicle has exploded.
*/
void OnVehicleExplode(SQInt32 vehicle);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the health changed for a specific vehicle.
*/
void OnVehicleHealth(SQInt32 vehicle, SQFloat previous, SQFloat current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a vehicle changed its current location/position.
*/
void OnVehicleMove(SQInt32 vehicle, const Vector3 & previous, const Vector3 & current);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the a pickup instance has re-spawned.
*/
void OnPickupRespawn(SQInt32 pickup);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player pressed a listened key combination.
*/
void OnPlayerKeyPress(SQInt32 player, SQInt32 keybind);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player released a listened key combination.
*/
void OnPlayerKeyRelease(SQInt32 player, SQInt32 keybind);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player is about to embark in a vehicle.
*/
void OnPlayerEmbarking(SQInt32 player, SQInt32 vehicle, SQInt32 slot);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just embarked in a vehicle.
*/
void OnPlayerEmbarked(SQInt32 player, SQInt32 vehicle, SQInt32 slot);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just disembarked from a vehicle.
*/
void OnPlayerDisembark(SQInt32 player, SQInt32 vehicle);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player claimed ownership over a pickup.
*/
void OnPickupClaimed(SQInt32 player, SQInt32 pickup);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player collected a pickup.
*/
void OnPickupCollected(SQInt32 player, SQInt32 pickup);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just shot a object.
*/
void OnObjectShot(SQInt32 player, SQInt32 object, SQInt32 weapon);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just bumped in a object.
*/
void OnObjectBump(SQInt32 player, SQInt32 object);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just entered a checkpoint.
*/
void OnCheckpointEntered(SQInt32 player, SQInt32 checkpoint);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just exited a checkpoint.
*/
void OnCheckpointExited(SQInt32 player, SQInt32 checkpoint);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just entered a sphere.
*/
void OnSphereEntered(SQInt32 player, SQInt32 sphere);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a player just exited a sphere.
*/
void OnSphereExited(SQInt32 player, SQInt32 sphere);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the server just finished one cycle of it's main loop.
*/
void OnServerFrame(SQFloat delta);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the server just started up.
*/
void OnServerStartup();
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the server is about to shut down.
*/
void OnServerShutdown();
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the server received an internal command.
*/
void OnInternalCommand(SQInt32 type, const SQChar * text);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that someone is trying to log into the server.
*/
void OnLoginAttempt(const SQChar * name, const SQChar * passwd, const SQChar * ip);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that a custom event was just triggered.
*/
void OnCustomEvent(SQInt32 group, SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that an option just changed in the game world.
*/
void OnWorldOption(SQInt32 option, SqObj & value);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that something was just toggled in the game world.
*/
void OnWorldToggle(SQInt32 option, bool value);
/* --------------------------------------------------------------------------------------------
* Notify event listeners that the plug-in is about to reload it's resources.
*/
void OnScriptReload(SQInt32 header, SqObj & payload);
/* --------------------------------------------------------------------------------------------
* Process updates for a player instance.
*/
void OnPlayerUpdate(SQInt32 player, SQInt32 type);
/* --------------------------------------------------------------------------------------------
* Process updates for a vehicle instance.
*/
void OnVehicleUpdate(SQInt32 vehicle, SQInt32 type);
/* --------------------------------------------------------------------------------------------
* Process external creation and destruction of entity instances.
*/
void OnEntityPool(SQInt32 type, SQInt32 id, bool deleted);
public:
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the Squirrel VM is closed.
*/
EVMClose VMClose;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a blip entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EBlipCreated BlipCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a checkpoint entity instance was
* created on the server. Either by this plug-in or external ones.
*/
ECheckpointCreated CheckpointCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a keybind entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EKeybindCreated KeybindCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a object entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EObjectCreated ObjectCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a pickup entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EPickupCreated PickupCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a Player entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EPlayerCreated PlayerCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sphere entity instance was
* created on the server. Either by this plug-in or external ones.
*/
ESphereCreated SphereCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sprite entity instance was
* created on the server. Either by this plug-in or external ones.
*/
ESpriteCreated SpriteCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a textdraw entity instance was
* created on the server. Either by this plug-in or external ones.
*/
ETextdrawCreated TextdrawCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle entity instance was
* created on the server. Either by this plug-in or external ones.
*/
EVehicleCreated VehicleCreated;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a blip entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EBlipDestroyed BlipDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a checkpoint entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
ECheckpointDestroyed CheckpointDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a keybind entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EKeybindDestroyed KeybindDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a object entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EObjectDestroyed ObjectDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a pickup entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EPickupDestroyed PickupDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EPlayerDestroyed PlayerDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sphere entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
ESphereDestroyed SphereDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sprite entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
ESpriteDestroyed SpriteDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a textdraw entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
ETextdrawDestroyed TextdrawDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle entity instance was
* destroyed from the server. Either by this plug-in or external ones.
*/
EVehicleDestroyed VehicleDestroyed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a blip entity instance emitted
* a custom event type.
*/
EBlipCustom BlipCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a checkpoint entity instance emitted
* a custom event type.
*/
ECheckpointCustom CheckpointCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a keybind entity instance emitted
* a custom event type.
*/
EKeybindCustom KeybindCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a object entity instance emitted
* a custom event type.
*/
EObjectCustom ObjectCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a pickup entity instance emitted
* a custom event type.
*/
EPickupCustom PickupCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player entity instance emitted
* a custom event type.
*/
EPlayerCustom PlayerCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sphere entity instance emitted
* a custom event type.
*/
ESphereCustom SphereCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a sprite entity instance emitted
* a custom event type.
*/
ESpriteCustom SpriteCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a textdraw entity instance emitted
* a custom event type.
*/
ETextdrawCustom TextdrawCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle entity instance emitted
* a custom event type.
*/
EVehicleCustom VehicleCustom;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player changed his away status.
*/
EPlayerAway PlayerAway;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player pressed any of the game keys.
*/
EPlayerGameKeys PlayerGameKeys;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player changed his name.
*/
EPlayerRename PlayerRename;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when requested to be assigned a class.
*/
EPlayerRequestClass PlayerRequestClass;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player requested to spawn.
*/
EPlayerRequestSpawn PlayerRequestSpawn;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just spawned in the game.
*/
EPlayerSpawn PlayerSpawn;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player began typing in the
* chat/console.
*/
EPlayerStartTyping PlayerStartTyping;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player stopped typing in the
* chat/console.
*/
EPlayerStopTyping PlayerStopTyping;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player sent a public chat message.
*/
EPlayerChat PlayerChat;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player sent a server command.
*/
EPlayerCommand PlayerCommand;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player sent a private chat message.
*/
EPlayerMessage PlayerMessage;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when health changed for a specific player.
*/
EPlayerHealth PlayerHealth;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the armour changed for a specific
* player.
*/
EPlayerArmour PlayerArmour;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player changed his current weapon.
*/
EPlayerWeapon PlayerWeapon;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player changed his current
* location/position.
*/
EPlayerMove PlayerMove;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player died from a natural cause
* or self inflicted injury.
*/
EPlayerWasted PlayerWasted;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player was killed by another player.
*/
EPlayerKilled PlayerKilled;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player is killed by one of his
* teammates.
*/
EPlayerTeamKill PlayerTeamKill;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player began to spectate another
* player.
*/
EPlayerSpectate PlayerSpectate;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player sent a crash report to
* the server.
*/
EPlayerCrashreport PlayerCrashreport;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player is on fire or stopped
* being on fire.
*/
EPlayerBurning PlayerBurning;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player is crouching or stopped
* crouching.
*/
EPlayerCrouching PlayerCrouching;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the current state of a player has
* changed.
*/
EPlayerState PlayerState;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current action of a player has
* changed.
*/
EPlayerAction PlayerAction;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to nothing.
*/
EStateNone StateNone;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to normal.
*/
EStateNormal StateNormal;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to shooting.
*/
EStateShooting StateShooting;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to entered a vehicle as the driver.
*/
EStateDriver StateDriver;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to entered a vehicle as the passenger.
*/
EStatePassenger StatePassenger;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to preparing to enter a vehicle as the driver.
*/
EStateEnterDriver StateEnterDriver;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to preparing to enter a vehicle as a passenger.
*/
EStateEnterPassenger StateEnterPassenger;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to exiting a vehicle.
*/
EStateExitVehicle StateExitVehicle;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to being un-spawned.
*/
EStateUnspawned StateUnspawned;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has action
* to nothing.
*/
EActionNone ActionNone;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to normal.
*/
EActionNormal ActionNormal;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to aiming at something.
*/
EActionAiming ActionAiming;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to shooting.
*/
EActionShooting ActionShooting;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to jumping.
*/
EActionJumping ActionJumping;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to lying down.
*/
EActionLieDown ActionLieDown;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to getting up.
*/
EActionGettingUp ActionGettingUp;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to jumping out of a vehicle.
*/
EActionJumpVehicle ActionJumpVehicle;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to driving a vehicle.
*/
EActionDriving ActionDriving;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to dying after being killed by someone else.
*/
EActionDying ActionDying;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to dying by natural causes or self inflicted injuries.
*/
EActionWasted ActionWasted;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to embarking a vehicle.
*/
EActionEmbarking ActionEmbarking;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when current state of a player has changed
* to disembarking a vehicle.
*/
EActionDisembarking ActionDisembarking;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle instance has re-spawned.
*/
EVehicleRespawn VehicleRespawn;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle has exploded.
*/
EVehicleExplode VehicleExplode;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the health changed for a specific
* vehicle.
*/
EVehicleHealth VehicleHealth;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a vehicle changed its current
* location/position.
*/
EVehicleMove VehicleMove;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a pickup instance has re-spawned.
*/
EPickupRespawn PickupRespawn;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player pressed a listened
* key combination.
*/
EKeybindKeyPress KeybindKeyPress;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player released a listened
* key combination.
*/
EKeybindKeyRelease KeybindKeyRelease;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player is about to embark in a
* vehicle.
*/
EVehicleEmbarking VehicleEmbarking;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just embarked in a vehicle.
*/
EVehicleEmbarked VehicleEmbarked;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just disembarked from a
* vehicle.
*/
EVehicleDisembark VehicleDisembark;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player claimed ownership over a
* pickup.
*/
EPickupClaimed PickupClaimed;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player collected a pickup.
*/
EPickupCollected PickupCollected;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just shot a object.
*/
EObjectShot ObjectShot;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just bumped in a object.
*/
EObjectBump ObjectBump;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just entered a checkpoint.
*/
ECheckpointEntered CheckpointEntered;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just exited a checkpoint.
*/
ECheckpointExited CheckpointExited;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just entered a sphere.
*/
ESphereEntered SphereEntered;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a player just exited a sphere.
*/
ESphereExited SphereExited;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the server just finished one cycle
* of it's main loop.
*/
EServerFrame ServerFrame;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the server just started up.
*/
EServerStartup ServerStartup;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the server is about to shut down.
*/
EServerShutdown ServerShutdown;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the server received an internal
* command.
*/
EInternalCommand InternalCommand;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when someone is trying to log into the
* server.
*/
ELoginAttempt LoginAttempt;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when a custom event was just triggered.
*/
ECustomEvent CustomEvent;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when an option just changed in the
* game world.
*/
EWorldOption WorldOption;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when something was just toggled in the
* game world.
*/
EWorldToggle WorldToggle;
/* --------------------------------------------------------------------------------------------
* A collection of listeners waiting to be notified when the plug-in is about to reload it's
* resources.
*/
EScriptReload ScriptReload;
};
// ------------------------------------------------------------------------------------------------
extern const Core::Pointer _Core;
} // Namespace:: SqMod
#endif // _CORE_HPP_