1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 08:47:17 +01:00
SqMod/source/SqBase.hpp
Sandu Liviu Catalin 8088ba94c2 Updated the exception system in the main plugin to also include the location in the source files in debug builds.
Moved the functions that extract base types from strings as static functions under the associated type.
Revised some of the base shared code.
Fixed some of the functions in the String library that did not take into account the null terminator.
2016-03-21 22:37:58 +02:00

1424 lines
54 KiB
C++

#ifndef _SQBASE_HPP_
#define _SQBASE_HPP_
// ------------------------------------------------------------------------------------------------
#include <sqconfig.h>
// ------------------------------------------------------------------------------------------------
#include <stddef.h>
#include <string>
/* ------------------------------------------------------------------------------------------------
* ARCHITECTURE IDENTIFIERS
*/
#define SQMOD_ARCH_ID_UNKNOWN 0
#define SQMOD_ARCH_ID_32_BIT 1
#define SQMOD_ARCH_ID_64_BIT 2
/* ------------------------------------------------------------------------------------------------
* PLATFORM IDENTIFIERS
*/
#define SQMOD_PLAT_ID_UNKNOWN 0
#define SQMOD_PLAT_ID_WINDOWS 1
#define SQMOD_PLAT_ID_LINUX 2
#define SQMOD_PLAT_ID_MACOS 3
#define SQMOD_PLAT_ID_UNIX 4
/* ------------------------------------------------------------------------------------------------
* OS IDENTIFICATION
*/
#if defined(_WIN32) || defined(__WIN32__) || defined(_WIN) || defined(__WIN__)
// Windows x32
#define SQMOD_OS_WINDOWS
#define SQMOD_OS_32
#define SQMOD_OS_WINDOWS32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 1
#elif defined(_WIN64) || defined(__WIN64__)
// Windows x64
#define SQMOD_OS_WINDOWS
#define SQMOD_OS_64
#define SQMOD_OS_WINDOWS64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 1
#elif defined(linux) || defined(__linux) || defined(__linux__)
// Linux
#define SQMOD_OS_LINUX
#if __GNUC__
#if __x86_64__ || __ppc64__
#define SQMOD_OS_64
#define SQMOD_OS_LINUX64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 2
#else
#define SQMOD_OS_32
#define SQMOD_OS_LINUX32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 2
#endif
#endif
#elif defined(__APPLE__) || defined(__MACH__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
// MacOS
#define SQMOD_OS_MACOS
#if __GNUC__
#if __x86_64__ || __ppc64__
#define SQMOD_OS_64
#define SQMOD_OS_MACOS64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 3
#else
#define SQMOD_OS_32
#define SQMOD_OS_MACOS32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 3
#endif
#endif
#elif defined(__unix) || defined(__unix__)
// Unix
#define SQMOD_OS_UNIX
#if __GNUC__
#if __x86_64__ || __ppc64__
#define SQMOD_OS_64
#define SQMOD_OS_UNIX64
#define SQMOD_ARCHITECTURE 2
#define SQMOD_PLATFORM 4
#else
#define SQMOD_OS_32
#define SQMOD_OS_UNIX32
#define SQMOD_ARCHITECTURE 1
#define SQMOD_PLATFORM 4
#endif
#endif
#else
// Unsupported system
#error This operating system is not supported by the Squirrel Module
#endif
#ifndef SQMOD_ARCHITECTURE
#define SQMOD_ARCHITECTURE 0
#endif
#ifndef SQMOD_PLATFORM
#define SQMOD_PLATFORM 0
#endif
/* ------------------------------------------------------------------------------------------------
* SOFTWARE INFORMATION
*/
#define SQMOD_NAME "Squirrel Module"
#define SQMOD_AUTHOR "Sandu Liviu Catalin"
#define SQMOD_COPYRIGHT "Copyright (C) 2015 Sandu Liviu Catalin"
#define SQMOD_HOST_NAME "SqModHost"
#define SQMOD_VERSION 001
#define SQMOD_VERSION_STR "0.0.1"
#define SQMOD_VERSION_MAJOR 0
#define SQMOD_VERSION_MINOR 0
#define SQMOD_VERSION_PATCH 1
/* ------------------------------------------------------------------------------------------------
* SQUIRREL FORWARD DECLARATIONS
*/
extern "C" {
typedef struct tagSQObject SQObject;
struct SQVM;
typedef struct SQVM* HSQUIRRELVM;
typedef SQObject HSQOBJECT;
} /*extern "C"*/
/* ------------------------------------------------------------------------------------------------
* SQRAT FORWARD DECLARATIONS
*/
namespace Sqrat {
class Array;
class Object;
class Table;
class Function;
} // Namespace:: Sqrat
/* ------------------------------------------------------------------------------------------------
* FUNDAMENTAL DATATYPES
*/
namespace SqMod {
/**< 8 bits integer types */
typedef char Int8, I8;
typedef unsigned char Uint8, U8;
/**< 16 bits integer types */
typedef short Int16, I16;
typedef unsigned short Uint16, U16;
/**< 32 bits integer types */
typedef int Int32, I32;
typedef unsigned int Uint32, U32;
/**< 64 bits integer types */
#if defined(_MSC_VER)
typedef __int64 Int64, I64;
typedef unsigned __int64 Uint64, U64;
#else
typedef long long Int64, I64;
typedef unsigned long long Uint64, U64;
#endif
/**< integer type */
#ifdef SQMOD_LONG
typedef Int64 Int, Integer;
typedef Uint64 Uint, Uinteger, UnisgnedInteger;
#else
typedef Int32 Int, Integer;
typedef Uint32 Uint, Uinteger, UnisgnedInteger;
#endif
/**< long integer type */
typedef long LongI;
typedef unsigned long Ulong;
/**< 32 bits float types */
typedef float Float32, Real32, F32;
/**< 64 bits float types */
typedef double Float64, Real64, F64;
/**< boolean type */
typedef Uint8 Boolean;
/**< character type */
typedef bool BoolT;
/**< character types */
typedef char CharT;
/**< user type */
typedef void * VoidP;
/**< size type */
typedef Uint32 SizeT;
/* ------------------------------------------------------------------------------------------------
* STRING TYPE
*/
typedef std::basic_string<SQChar> String;
typedef char * CStr;
typedef const char * CCStr;
typedef SQChar * SStr;
typedef const SQChar * CSStr;
/* ------------------------------------------------------------------------------------------------
* SHORT SQUIRREL TYPENAMES
*/
typedef SQUnsignedInteger32 SQUint32;
typedef SQUnsignedInteger SQUint;
typedef SQInteger SQInt;
// ------------------------------------------------------------------------------------------------
using namespace Sqrat;
/* ------------------------------------------------------------------------------------------------
* FORWARD DECLARATIONS
*/
// ------------------------------------------------------------------------------------------------
class Core;
class Logger;
// ------------------------------------------------------------------------------------------------
class CmdManager;
class CmdListener;
// ------------------------------------------------------------------------------------------------
struct AABB;
struct Buffer;
struct Circle;
struct Color3;
struct Color4;
struct Quaternion;
struct Sphere;
struct Vector2;
struct Vector2i;
struct Vector3;
struct Vector4;
// ------------------------------------------------------------------------------------------------
class CBlip;
class CCheckpoint;
class CForcefield;
class CKeybind;
class CObject;
class CPickup;
class CPlayer;
class CSprite;
class CTextdraw;
class CVehicle;
// ------------------------------------------------------------------------------------------------
template < typename T > class LongInt;
typedef LongInt< Int64 > SLongInt;
typedef LongInt< Uint64 > ULongInt;
/* ------------------------------------------------------------------------------------------------
* ...
*/
typedef std::basic_string< SQChar > String;
/* ------------------------------------------------------------------------------------------------
* FORWARD DECLARATIONS
*/
enum EventType
{
EVT_UNKNOWN = 0,
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_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_PLAYERSTATE,
EVT_PLAYERACTION,
EVT_STATENONE,
EVT_STATENORMAL,
EVT_STATESHOOTING,
EVT_STATEDRIVER,
EVT_STATEPASSENGER,
EVT_STATEENTERDRIVER,
EVT_STATEENTERPASSENGER,
EVT_STATEEXITVEHICLE,
EVT_STATEUNSPAWNED,
EVT_ACTIONNONE,
EVT_ACTIONNORMAL,
EVT_ACTIONAIMING,
EVT_ACTIONSHOOTING,
EVT_ACTIONJUMPING,
EVT_ACTIONLIEDOWN,
EVT_ACTIONGETTINGUP,
EVT_ACTIONJUMPVEHICLE,
EVT_ACTIONDRIVING,
EVT_ACTIONDYING,
EVT_ACTIONWASTED,
EVT_ACTIONEMBARKING,
EVT_ACTIONDISEMBARKING,
EVT_VEHICLERESPAWN,
EVT_VEHICLEEXPLODE,
EVT_VEHICLEHEALTH,
EVT_VEHICLEMOVE,
EVT_PICKUPRESPAWN,
EVT_KEYBINDKEYPRESS,
EVT_KEYBINDKEYRELEASE,
EVT_VEHICLEEMBARKING,
EVT_VEHICLEEMBARKED,
EVT_VEHICLEDISEMBARK,
EVT_PICKUPCLAIMED,
EVT_PICKUPCOLLECTED,
EVT_OBJECTSHOT,
EVT_OBJECTBUMP,
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_SCRIPTRELOAD,
EVT_SCRIPTUNLOAD,
EVT_MAX
};
enum EntityFlags
{
ENF_DEFAULT = (0),
ENF_OWNED = (1 < 0)
};
// ------------------------------------------------------------------------------------------------
enum CmdArgType
{
CMDARG_ANY = 0,
CMDARG_INTEGER = (1 << 1),
CMDARG_FLOAT = (1 << 2),
CMDARG_BOOLEAN = (1 << 3),
CMDARG_STRING = (1 << 4),
CMDARG_LOWER = (1 << 5),
CMDARG_UPPER = (1 << 6),
CMDARG_GREEDY = (1 << 7)
};
// ------------------------------------------------------------------------------------------------
enum CmdError
{
// The command failed for unknown reasons
CMDERR_UNKNOWN = 0,
// The command failed to execute because there was nothing to execute
CMDERR_EMPTY_COMMAND,
// The command failed to execute because the command name was invalid after processing
CMDERR_INVALID_COMMAND,
// The command failed to execute because there was a syntax error in the arguments
CMDERR_SYNTAX_ERROR,
// The command failed to execute because there was no such command
CMDERR_UNKNOWN_COMMAND,
// The command failed to execute because there was no callback to handle the execution
CMDERR_MISSING_EXECUTER,
// The command failed to execute because the invoker does not have the proper authority
CMDERR_INSUFFICIENT_AUTH,
// The command was unable to execute because the argument limit was not reached
CMDERR_INCOMPLETE_ARGS,
// The command was unable to execute because the argument limit was exceeded
CMDERR_EXTRANEOUS_ARGS,
// Command was unable to execute due to argument type mismatch
CMDERR_UNSUPPORTED_ARG,
// The command arguments contained more data than the internal buffer can handle
CMDERR_BUFFER_OVERFLOW,
// The command failed to complete execution due to a runtime exception
CMDERR_EXECUTION_FAILED,
// The command completed the execution but returned a negative result
CMDERR_EXECUTION_ABORTED,
// The post execution callback failed to execute due to a runtime exception
CMDERR_POST_PROCESSING_FAILED,
// The callback that was supposed to deal with the failure also failed due to a runtime exception
CMDERR_UNRESOLVED_FAILURE,
// Maximum command error identifier
CMDERR_MAX
};
} // Namespace:: SqMod
/* ------------------------------------------------------------------------------------------------
* OS SPECIFFIC OPTIONS
*/
#if defined(SQMOD_OS_WINDOWS)
#define SQMOD_DIRSEP_CHAR '\\'
#define SQMOD_DIRSEP_STR "\\"
#else
#define SQMOD_DIRSEP_CHAR '/'
#define SQMOD_DIRSEP_STR "/"
#endif
/* ------------------------------------------------------------------------------------------------
* SYMBOL EXPORTING
*/
#if defined(_MSC_VER)
#define SQMOD_EXPORT __declspec(dllexport)
#define SQMOD_IMPORT __declspec(dllimport)
#elif defined(__GNUC__)
#define SQMOD_EXPORT __declspec(dllexport)
#define SQMOD_IMPORT __declspec(dllimport)
#endif
#if defined(__cplusplus)
#define SQMOD_EXTERN_C extern "C"
#else
#define SQMOD_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
/* ------------------------------------------------------------------------------------------------
* CALLING CONVENTIONS
*/
#if defined(_MSC_VER)
#define SQMOD_STDCALL __stdcall
#define SQMOD_CDECL __cdecl
#define SQMOD_FASTCALL __fastcall
#elif defined(__GNUC__)
#define SQMOD_STDCALL __attribute__((stdcall))
#define SQMOD_CDECL /* */
#define SQMOD_FASTCALL __attribute__((fastcall))
#endif
/* ------------------------------------------------------------------------------------------------
* FUNCTION INLINING
*/
#if defined(_MSC_VER)
#define SQMOD_FORCEINLINE __forceinline
#elif defined(__GNUC__)
#define SQMOD_FORCEINLINE inline
#endif
/* ------------------------------------------------------------------------------------------------
* LOGGING LOCATION
*/
#define SQMOD_TRUESTRINGIZE(x) #x
#define SQMOD_STRINGIZEWRAP(x) SQMOD_TRUESTRINGIZE(x)
#if defined(_DEBUG) || defined(SQMOD_EXCEPTLOC)
#define SQMOD_MSGLOC(m) (m " =>[" __FILE__ ":" SQMOD_STRINGIZEWRAP(__LINE__) "] ")
#else
#define SQMOD_MSGLOC(m) (m)
#endif // _DEBUG
/* ------------------------------------------------------------------------------------------------
* EXCEPTION THROWING
*/
#if defined(_DEBUG) || defined(SQMOD_EXCEPTLOC)
#define STHROW(e, m, ...) throw e(m " =>[" __FILE__ ":" SQMOD_STRINGIZEWRAP(__LINE__) "] ", ##__VA_ARGS__)
#define STHROWF(m, ...) SqThrowF(m " =>[" __FILE__ ":" SQMOD_STRINGIZEWRAP(__LINE__) "] ", ##__VA_ARGS__)
#else
#define STHROW(e, m, ...) throw e(m, ##__VA_ARGS__)
#define STHROWF(m, ...) SqThrowF(m, ##__VA_ARGS__)
#endif // _DEBUG
/* ------------------------------------------------------------------------------------------------
* VARIOUS DEFINES
*/
#define SQMOD_DECL_UNUSED_VAR(t, n, v) t n = v; (void)(n)
#define SQMOD_UNUSED_VAR(n) (void)(n)
#define VALID_ENTITY(e) (e >= 0)
#define INVALID_ENTITY(e) (e < 0)
#define VALID_ENTITYEX(e, m) ((e >= 0) && (e < m))
#define INVALID_ENTITYEX(e, m) ((e < 0) || (e >= m))
#define VALID_ENTITYGET(e) ((e >= 0) ? e : -1)
#define VALID_ENTITYGETEX(e, m) ((e >= 0) && (e < m) ? e : -1)
#define VALID_VEHCOL(e) ((e >= 0) && (e <= 94))
#define INVALID_VEHCOL(e) ((e < 0) && (e > 94))
/* ------------------------------------------------------------------------------------------------
* COLOR PACKING
*/
#define SQMOD_PACK_RGB(r, g, b) (Uint32)(r << 16 | g << 8 | b)
#define SQMOD_PACK_RGBA(r, g, b, a) (Uint32)(r << 24 | g << 16 | b << 8 | a)
#define SQMOD_PACK_ARGB(a, r, g, b) (Uint32)(a << 24 | r << 16 | g << 8 | b)
#define SQMOD_PACK_RGB_TO_RGBA(r, g, b) (Uint32)(r << 24 | g << 16 | b << 8 | 0)
#define SQMOD_PACK_RGB_TO_ARGB(r, g, b) (Uint32)(0 << 24 | r << 16 | g << 8 | b)
/* ------------------------------------------------------------------------------------------------
* GENERAL RESPONSES
*/
#define SQMOD_SUCCESS 1
#define SQMOD_FAILURE 0
#define SQMOD_UNKNOWN -1
#define SQMOD_TRUE 1
#define SQMOD_FALSE 0
#define SQMOD_NULL NULL
#define SQMOD_BLANK 0
/* ------------------------------------------------------------------------------------------------
* GENERAL SERVER LIMITS
*/
#define SQMOD_NAMELENGTH 64
#define SQMOD_NAMELENGTH_T 65
#define SQMOD_UIDLENGTH 40
#define SQMOD_UIDLENGTH_T 41
#define SQMOD_IPADDRESS 16
#define SQMOD_IPADDRESS_T 17
#define SQMOD_SVNAMELENGTH 128
#define SQMOD_PASSWDLENGTH 128
#define SQMOD_GMNAMELENGTH 96
#define SQMOD_MSGLENGTH 512
#define SQMOD_CMDLENGTH 512
/* ------------------------------------------------------------------------------------------------
* INITIAL ENTITY POOLS
*/
#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
/* ------------------------------------------------------------------------------------------------
* ENTITY CREATE/DESTROY
*/
#define SQMOD_CREATE_DEFAULT 0
#define SQMOD_CREATE_MANUAL -3
#define SQMOD_CREATE_POOL -4
#define SQMOD_CREATE_AUTOMATIC -5
#define SQMOD_CREATE_OVERWRITE -6
#define SQMOD_CREATE_RESURECT -7
#define SQMOD_DESTROY_DEFAULT 0
#define SQMOD_DESTROY_MANUAL -3
#define SQMOD_DESTROY_POOL -4
#define SQMOD_DESTROY_AUTOMATIC -5
#define SQMOD_DESTROY_OVERWRITE -6
#define SQMOD_DESTROY_CLEANUP -7
/* ------------------------------------------------------------------------------------------------
* MODEL ID LIMITS
*/
#define SQMOD_WEAPONID_MAX 71
#define SQMOD_WEAPONID_CAP 256
#define SQMOD_VEHICLEID_MAX 237
#define SQMOD_VEHICLEID_CAP 512
#define SQMOD_SKINID_MAX 160
#define SQMOD_SKINID_CAP 256
#define SQMOD_MODELID_MAX 640
#define SQMOD_MODELID_CAP 2048
/* ------------------------------------------------------------------------------------------------
* SCRIPT OPTIONS
*/
/* ------------------------------------------------------------------------------------------------
* PLUGIN OPTIONS
*/
#define SQMOD_STACK_SIZE 2048
#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
*/
#define SQMOD_PLAYER_ACTION_NONE 0
#define SQMOD_PLAYER_ACTION_NORMAL 1
#define SQMOD_PLAYER_ACTION_AIMING 12
#define SQMOD_PLAYER_ACTION_SHOOTING 16
#define SQMOD_PLAYER_ACTION_JUMPING 41
#define SQMOD_PLAYER_ACTION_LYING_ON_GROUND 42
#define SQMOD_PLAYER_ACTION_GETTING_UP 43
#define SQMOD_PLAYER_ACTION_JUMPING_FROM_VEHICLE 44
#define SQMOD_PLAYER_ACTION_DRIVING 50
#define SQMOD_PLAYER_ACTION_DYING 54
#define SQMOD_PLAYER_ACTION_WASTED 55
#define SQMOD_PLAYER_ACTION_ENTERING_VEHICLE 58
#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
*/
#define SQMOD_WEATHER_MOSTLYCLEAR 0
#define SQMOD_WEATHER_OVERCAST 1
#define SQMOD_WEATHER_THUNDERSTORM 2
#define SQMOD_WEATHER_STORM 2
#define SQMOD_WEATHER_STORMY 2
#define SQMOD_WEATHER_FOGGY 3
#define SQMOD_WEATHER_FOG 3
#define SQMOD_WEATHER_CLEAR 4
#define SQMOD_WEATHER_SUNNY 4
#define SQMOD_WEATHER_RAIN 5
#define SQMOD_WEATHER_RAINY 5
#define SQMOD_WEATHER_DARKCLOUDY 6
#define SQMOD_WEATHER_LIGHTCLOUDY 7
#define SQMOD_WEATHER_OVERCASTCLOUDY 8
#define SQMOD_WEATHER_BLACKCLOUDS 9
#define SQMOD_WEATHER_MAX 10
/* ------------------------------------------------------------------------------------------------
* WEAPON IDENTIFIERS
*/
#define SQMOD_WEAPON_UNARMED 0
#define SQMOD_WEAPON_BRASSKNUCKLES 1
#define SQMOD_WEAPON_SCREWDRIVER 2
#define SQMOD_WEAPON_GOLFCLUB 3
#define SQMOD_WEAPON_NIGHTSTICK 4
#define SQMOD_WEAPON_KNIFE 5
#define SQMOD_WEAPON_BASEBALLBAT 6
#define SQMOD_WEAPON_HAMMER 7
#define SQMOD_WEAPON_MEATCLEAVER 8
#define SQMOD_WEAPON_MACHETE 9
#define SQMOD_WEAPON_KATANA 10
#define SQMOD_WEAPON_CHAINSAW 11
#define SQMOD_WEAPON_GRENADE 12
#define SQMOD_WEAPON_REMOTE 13
#define SQMOD_WEAPON_TEARGAS 14
#define SQMOD_WEAPON_MOLOTOV 15
#define SQMOD_WEAPON_ROCKET 16
#define SQMOD_WEAPON_COLT45 17
#define SQMOD_WEAPON_PYTHON 18
#define SQMOD_WEAPON_SHOTGUN 19
#define SQMOD_WEAPON_SPAS12 20
#define SQMOD_WEAPON_STUBBY 21
#define SQMOD_WEAPON_TEC9 22
#define SQMOD_WEAPON_UZI 23
#define SQMOD_WEAPON_INGRAM 24
#define SQMOD_WEAPON_MP5 25
#define SQMOD_WEAPON_M4 26
#define SQMOD_WEAPON_RUGER 27
#define SQMOD_WEAPON_SNIPER 28
#define SQMOD_WEAPON_LASERSCOPE 29
#define SQMOD_WEAPON_ROCKETLAUNCHER 30
#define SQMOD_WEAPON_FLAMETHROWER 31
#define SQMOD_WEAPON_M60 32
#define SQMOD_WEAPON_MINIGUN 33
#define SQMOD_WEAPON_BOMB 34
#define SQMOD_WEAPON_HELICANNON 35
#define SQMOD_WEAPON_CAMERA 36
#define SQMOD_WEAPON_VEHICLE 39
#define SQMOD_WEAPON_EXPLOSION1 41
#define SQMOD_WEAPON_DRIVEBY 42
#define SQMOD_WEAPON_DROWNED 43
#define SQMOD_WEAPON_FALL 44
#define SQMOD_WEAPON_EXPLOSION2 51
#define SQMOD_WEAPON_SUICIDE 70
#define SQMOD_WEAPON_MAX 71
/* ------------------------------------------------------------------------------------------------
* VEHICLE IDENTIFIERS
*/
#define SQMOD_VEHICLE_LANDSTALKER 130
#define SQMOD_VEHICLE_IDAHO 131
#define SQMOD_VEHICLE_STINGER 132
#define SQMOD_VEHICLE_LINERUNNER 133
#define SQMOD_VEHICLE_PERENNIAL 134
#define SQMOD_VEHICLE_SENTINEL 135
#define SQMOD_VEHICLE_RIO 136
#define SQMOD_VEHICLE_FIRETRUCK 137
#define SQMOD_VEHICLE_TRASHMASTER 138
#define SQMOD_VEHICLE_STRETCH 139
#define SQMOD_VEHICLE_MANANA 140
#define SQMOD_VEHICLE_INFERNUS 141
#define SQMOD_VEHICLE_VOODOO 142
#define SQMOD_VEHICLE_PONY 143
#define SQMOD_VEHICLE_MULE 144
#define SQMOD_VEHICLE_CHEETAH 145
#define SQMOD_VEHICLE_AMBULANCE 146
#define SQMOD_VEHICLE_FBIWASHINGTON 147
#define SQMOD_VEHICLE_MOONBEAM 148
#define SQMOD_VEHICLE_ESPERANTO 149
#define SQMOD_VEHICLE_TAXI 150
#define SQMOD_VEHICLE_WASHINGTON 151
#define SQMOD_VEHICLE_BOBCAT 152
#define SQMOD_VEHICLE_MRWHOOPEE 153
#define SQMOD_VEHICLE_BFINJECTION 154
#define SQMOD_VEHICLE_HUNTER 155
#define SQMOD_VEHICLE_POLICE 156
#define SQMOD_VEHICLE_ENFORCER 157
#define SQMOD_VEHICLE_SECURICAR 158
#define SQMOD_VEHICLE_BANSHEE 159
#define SQMOD_VEHICLE_PREDATOR 160
#define SQMOD_VEHICLE_BUS 161
#define SQMOD_VEHICLE_RHINO 162
#define SQMOD_VEHICLE_BARRACKSOL 163
#define SQMOD_VEHICLE_BARRACKS 163
#define SQMOD_VEHICLE_CUBANHERMES 164
#define SQMOD_VEHICLE_HELICOPTER 165
#define SQMOD_VEHICLE_ANGEL 166
#define SQMOD_VEHICLE_COACH 167
#define SQMOD_VEHICLE_CABBIE 168
#define SQMOD_VEHICLE_STALLION 169
#define SQMOD_VEHICLE_RUMPO 170
#define SQMOD_VEHICLE_RCBANDIT 171
#define SQMOD_VEHICLE_HEARSE 172
#define SQMOD_VEHICLE_PACKER 173
#define SQMOD_VEHICLE_SENTINELXS 174
#define SQMOD_VEHICLE_ADMIRAL 175
#define SQMOD_VEHICLE_SQUALO 176
#define SQMOD_VEHICLE_SEASPARROW 177
#define SQMOD_VEHICLE_PIZZABOY 178
#define SQMOD_VEHICLE_GANGBURRITO 179
#define SQMOD_VEHICLE_AIRTRAIN 180
#define SQMOD_VEHICLE_DEADDODO 181
#define SQMOD_VEHICLE_SPEEDER 182
#define SQMOD_VEHICLE_REEFER 183
#define SQMOD_VEHICLE_TROPIC 184
#define SQMOD_VEHICLE_FLATBED 185
#define SQMOD_VEHICLE_YANKEE 186
#define SQMOD_VEHICLE_CADDY 187
#define SQMOD_VEHICLE_ZEBRA 188
#define SQMOD_VEHICLE_ZEBRACAB 188
#define SQMOD_VEHICLE_TOPFUN 189
#define SQMOD_VEHICLE_SKIMMER 190
#define SQMOD_VEHICLE_PCJ600 191
#define SQMOD_VEHICLE_PCJ 191
#define SQMOD_VEHICLE_FAGGIO 192
#define SQMOD_VEHICLE_FREEWAY 193
#define SQMOD_VEHICLE_RCBARON 194
#define SQMOD_VEHICLE_RCRAIDER 195
#define SQMOD_VEHICLE_GLENDALE 196
#define SQMOD_VEHICLE_OCEANIC 197
#define SQMOD_VEHICLE_SANCHEZ 198
#define SQMOD_VEHICLE_SPARROW 199
#define SQMOD_VEHICLE_PATRIOT 200
#define SQMOD_VEHICLE_LOVEFIST 201
#define SQMOD_VEHICLE_COASTGUARD 202
#define SQMOD_VEHICLE_DINGHY 203
#define SQMOD_VEHICLE_HERMES 204
#define SQMOD_VEHICLE_SABRE 205
#define SQMOD_VEHICLE_SABRETURBO 206
#define SQMOD_VEHICLE_PHOENIX 207
#define SQMOD_VEHICLE_WALTON 208
#define SQMOD_VEHICLE_REGINA 209
#define SQMOD_VEHICLE_COMET 210
#define SQMOD_VEHICLE_DELUXO 211
#define SQMOD_VEHICLE_BURRITO 212
#define SQMOD_VEHICLE_SPANDEX 213
#define SQMOD_VEHICLE_SPANDEXPRESS 213
#define SQMOD_VEHICLE_MARQUIS 214
#define SQMOD_VEHICLE_BAGGAGE 215
#define SQMOD_VEHICLE_BAGGAGEHANDLER 215
#define SQMOD_VEHICLE_KAUFMAN 216
#define SQMOD_VEHICLE_KAUFMANCAB 216
#define SQMOD_VEHICLE_MAVERICK 217
#define SQMOD_VEHICLE_VCNMAVERICK 218
#define SQMOD_VEHICLE_RANCHER 219
#define SQMOD_VEHICLE_FBIRANCHER 220
#define SQMOD_VEHICLE_VIRGO 221
#define SQMOD_VEHICLE_GREENWOOD 222
#define SQMOD_VEHICLE_CUBANJETMAX 223
#define SQMOD_VEHICLE_HOTRING1 224
#define SQMOD_VEHICLE_HOTRINGRACER1 224
#define SQMOD_VEHICLE_SANDKING 225
#define SQMOD_VEHICLE_BLISTA 226
#define SQMOD_VEHICLE_BLISTAC 226
#define SQMOD_VEHICLE_BLISTACOMPACT 226
#define SQMOD_VEHICLE_COMPACT 226
#define SQMOD_VEHICLE_POLICEMAV 227
#define SQMOD_VEHICLE_POLICEMAVERICK 227
#define SQMOD_VEHICLE_BOXVILLE 228
#define SQMOD_VEHICLE_BENSON 229
#define SQMOD_VEHICLE_MESA 230
#define SQMOD_VEHICLE_MESAGRANDE 230
#define SQMOD_VEHICLE_RCGOBLIN 231
#define SQMOD_VEHICLE_HOTRING2 232
#define SQMOD_VEHICLE_HOTRINGRACER2 232
#define SQMOD_VEHICLE_HOTRING3 233
#define SQMOD_VEHICLE_HOTRINGRACER3 233
#define SQMOD_VEHICLE_BLOODRING1 234
#define SQMOD_VEHICLE_BLOODRINGBANGER1 234
#define SQMOD_VEHICLE_BLOODRING2 235
#define SQMOD_VEHICLE_BLOODRINGBANGER2 235
#define SQMOD_VEHICLE_VICECHEE 236
#define SQMOD_VEHICLE_POLICECHEETAH 236
#define SQMOD_VEHICLE_FBICHEETAH 236
#define SQMOD_VEHICLE_CHEETAH2 236
#define SQMOD_VEHICLE_MAX 237
/* ------------------------------------------------------------------------------------------------
* SKIN IDENTIFIERS
*/
#define SQMOD_SKIN_TOMMY_VERCETTI 0
#define SQMOD_SKIN_COP 1
#define SQMOD_SKIN_SWAT 2
#define SQMOD_SKIN_FBI 3
#define SQMOD_SKIN_ARMY 4
#define SQMOD_SKIN_PARAMEDIC 5
#define SQMOD_SKIN_FIREMAN 6
#define SQMOD_SKIN_GOLF_GUY_A 7
#define SQMOD_SKIN_BUM_LADY_A 9
#define SQMOD_SKIN_BUM_LADY_B 10
#define SQMOD_SKIN_PUNK_A 11
#define SQMOD_SKIN_LAWYER 12
#define SQMOD_SKIN_SPANISH_LADY_A 13
#define SQMOD_SKIN_SPANISH_LADY_B 14
#define SQMOD_SKIN_COOL_GUY_A 15
#define SQMOD_SKIN_ARABIC_GUY 16
#define SQMOD_SKIN_BEACH_LADY_A 17
#define SQMOD_SKIN_BEACH_LADY_B 18
#define SQMOD_SKIN_BEACH_GUY_A 19
#define SQMOD_SKIN_BEACH_GUY_B 20
#define SQMOD_SKIN_OFFICE_LADY_A 21
#define SQMOD_SKIN_WAITRESS_A 22
#define SQMOD_SKIN_FOOD_LADY 23
#define SQMOD_SKIN_PROSTITUTE_A 24
#define SQMOD_SKIN_BUM_LADY_C 25
#define SQMOD_SKIN_BUM_GUY_A 26
#define SQMOD_SKIN_GARBAGEMAN_A 27
#define SQMOD_SKIN_TAXI_DRIVER_A 28
#define SQMOD_SKIN_HATIAN_A 29
#define SQMOD_SKIN_CRIMINAL_A 30
#define SQMOD_SKIN_HOOD_LADY 31
#define SQMOD_SKIN_GRANNY_A 32
#define SQMOD_SKIN_BUSINESS_MAN_A 33
#define SQMOD_SKIN_CHURCH_GUY 34
#define SQMOD_SKIN_CLUB_LADY 35
#define SQMOD_SKIN_CHURCH_LADY 36
#define SQMOD_SKIN_PIMP 37
#define SQMOD_SKIN_BEACH_LADY_C 38
#define SQMOD_SKIN_BEACH_GUY_C 39
#define SQMOD_SKIN_BEACH_LADY_D 40
#define SQMOD_SKIN_BEACH_GUY_D 41
#define SQMOD_SKIN_BUSINESS_MAN_B 42
#define SQMOD_SKIN_PROSTITUTE_B 43
#define SQMOD_SKIN_BUM_LADY_D 44
#define SQMOD_SKIN_BUM_GUY_B 45
#define SQMOD_SKIN_HATIAN_B 46
#define SQMOD_SKIN_CONSTRUCTION_WORKER_A 47
#define SQMOD_SKIN_PUNK_B 48
#define SQMOD_SKIN_PROSTITUTE_C 49
#define SQMOD_SKIN_GRANNY_B 50
#define SQMOD_SKIN_PUNK_C 51
#define SQMOD_SKIN_BUSINESS_MAN_C 52
#define SQMOD_SKIN_SPANISH_LADY_C 53
#define SQMOD_SKIN_SPANISH_LADY_D 54
#define SQMOD_SKIN_COOL_GUY_B 55
#define SQMOD_SKIN_BUSINESS_MAN_D 56
#define SQMOD_SKIN_BEACH_LADY_E 57
#define SQMOD_SKIN_BEACH_GUY_E 58
#define SQMOD_SKIN_BEACH_LADY_F 59
#define SQMOD_SKIN_BEACH_GUY_F 60
#define SQMOD_SKIN_CONSTRUCTION_WORKER_B 61
#define SQMOD_SKIN_GOLF_GUY_B 62
#define SQMOD_SKIN_GOLF_LADY 63
#define SQMOD_SKIN_GOLF_GUY_C 64
#define SQMOD_SKIN_BEACH_LADY_G 65
#define SQMOD_SKIN_BEACH_GUY_G 66
#define SQMOD_SKIN_OFFICE_LADY_B 67
#define SQMOD_SKIN_BUSINESS_MAN_E 68
#define SQMOD_SKIN_BUSINESS_MAN_F 69
#define SQMOD_SKIN_PROSTITUTE_D 70
#define SQMOD_SKIN_BUM_LADY_E 71
#define SQMOD_SKIN_BUM_GUY_C 72
#define SQMOD_SKIN_SPANISH_GUY 73
#define SQMOD_SKIN_TAXI_DRIVER_B 74
#define SQMOD_SKIN_GYM_LADY 75
#define SQMOD_SKIN_GYM_GUY 76
#define SQMOD_SKIN_SKATE_LADY 77
#define SQMOD_SKIN_SKATE_GUY 78
#define SQMOD_SKIN_SHOPPER_A 79
#define SQMOD_SKIN_SHOPPER_B 80
#define SQMOD_SKIN_TOURIST_A 81
#define SQMOD_SKIN_TOURIST_B 82
#define SQMOD_SKIN_CUBAN_A 83
#define SQMOD_SKIN_CUBAN_B 84
#define SQMOD_SKIN_HATIAN_C 85
#define SQMOD_SKIN_HATIAN_D 86
#define SQMOD_SKIN_SHARK_A 87
#define SQMOD_SKIN_SHARK_B 88
#define SQMOD_SKIN_DIAZ_GUY_A 89
#define SQMOD_SKIN_DIAZ_GUY_B 90
#define SQMOD_SKIN_DBP_SECURITY_A 91
#define SQMOD_SKIN_DBP_SECURITY_B 92
#define SQMOD_SKIN_BIKER_A 93
#define SQMOD_SKIN_BIKER_B 94
#define SQMOD_SKIN_VERCETTI_GUY_A 95
#define SQMOD_SKIN_VERCETTI_GUY_B 96
#define SQMOD_SKIN_UNDERCOVER_COP_A 97
#define SQMOD_SKIN_UNDERCOVER_COP_B 98
#define SQMOD_SKIN_UNDERCOVER_COP_C 99
#define SQMOD_SKIN_UNDERCOVER_COP_D 100
#define SQMOD_SKIN_UNDERCOVER_COP_E 101
#define SQMOD_SKIN_UNDERCOVER_COP_F 102
#define SQMOD_SKIN_RICH_GUY 103
#define SQMOD_SKIN_COOL_GUY_C 104
#define SQMOD_SKIN_PROSTITUTE_E 105
#define SQMOD_SKIN_PROSTITUTE_F 106
#define SQMOD_SKIN_LOVE_FIST_A 107
#define SQMOD_SKIN_KEN_ROSENBURG 108
#define SQMOD_SKIN_CANDY_SUXX 109
#define SQMOD_SKIN_HILARY 110
#define SQMOD_SKIN_LOVE_FIST_B 111
#define SQMOD_SKIN_PHIL 112
#define SQMOD_SKIN_ROCKSTAR_GUY 113
#define SQMOD_SKIN_SONNY 114
#define SQMOD_SKIN_LANCE_A 115
#define SQMOD_SKIN_MERCADES_A 116
#define SQMOD_SKIN_LOVE_FIST_C 117
#define SQMOD_SKIN_ALEX_SRUB 118
#define SQMOD_SKIN_LANCE_COP 119
#define SQMOD_SKIN_LANCE_B 120
#define SQMOD_SKIN_CORTEZ 121
#define SQMOD_SKIN_LOVE_FIST_D 122
#define SQMOD_SKIN_COLUMBIAN_GUY_A 123
#define SQMOD_SKIN_HILARY_ROBBER 124
#define SQMOD_SKIN_MERCADES_B 125
#define SQMOD_SKIN_CAM 126
#define SQMOD_SKIN_CAM_ROBBER 127
#define SQMOD_SKIN_PHIL_ONE_ARM 128
#define SQMOD_SKIN_PHIL_ROBBER 129
#define SQMOD_SKIN_COOL_GUY_D 130
#define SQMOD_SKIN_PIZZAMAN 131
#define SQMOD_SKIN_TAXI_DRIVER_C 132
#define SQMOD_SKIN_TAXI_DRIVER_D 133
#define SQMOD_SKIN_SAILOR_A 134
#define SQMOD_SKIN_SAILOR_B 135
#define SQMOD_SKIN_SAILOR_C 136
#define SQMOD_SKIN_CHEF 137
#define SQMOD_SKIN_CRIMINAL_B 138
#define SQMOD_SKIN_FRENCH_GUY 139
#define SQMOD_SKIN_GARBAGEMAN_B 140
#define SQMOD_SKIN_HATIAN_E 141
#define SQMOD_SKIN_WAITRESS_B 142
#define SQMOD_SKIN_SONNY_GUY_A 143
#define SQMOD_SKIN_SONNY_GUY_B 144
#define SQMOD_SKIN_SONNY_GUY_C 145
#define SQMOD_SKIN_COLUMBIAN_GUY_B 146
#define SQMOD_SKIN_THUG_A 147
#define SQMOD_SKIN_BEACH_GUY_H 148
#define SQMOD_SKIN_GARBAGEMAN_C 149
#define SQMOD_SKIN_GARBAGEMAN_D 150
#define SQMOD_SKIN_GARBAGEMAN_E 151
#define SQMOD_SKIN_TRANNY 152
#define SQMOD_SKIN_THUG_B 153
#define SQMOD_SKIN_SPANDEX_GUY_A 154
#define SQMOD_SKIN_SPANDEX_GUY_B 155
#define SQMOD_SKIN_STRIPPER_A 156
#define SQMOD_SKIN_STRIPPER_B 157
#define SQMOD_SKIN_STRIPPER_C 158
#define SQMOD_SKIN_STORE_CLERK 159
#define SQMOD_SKIN_MAX 160
/* ------------------------------------------------------------------------------------------------
* KEYBOARD CODES
*/
#define SQMOD_KEYCODE_ABNT_C1 0xC1
#define SQMOD_KEYCODE_ABNT_C2 0xC2
#define SQMOD_KEYCODE_ADD 0x6B
#define SQMOD_KEYCODE_ATTN 0xF6
#define SQMOD_KEYCODE_BACK 0x08
#define SQMOD_KEYCODE_CANCEL 0x03
#define SQMOD_KEYCODE_CLEAR 0x0C
#define SQMOD_KEYCODE_CRSEL 0xF7
#define SQMOD_KEYCODE_DECIMAL 0x6E
#define SQMOD_KEYCODE_DIVIDE 0x6F
#define SQMOD_KEYCODE_EREOF 0xF9
#define SQMOD_KEYCODE_ESCAPE 0x1B
#define SQMOD_KEYCODE_EXECUTE 0x2B
#define SQMOD_KEYCODE_EXSEL 0xF8
#define SQMOD_KEYCODE_ICO_CLEAR 0xE6
#define SQMOD_KEYCODE_ICO_HELP 0xE3
#define SQMOD_KEYCODE_KEY_0 0x30
#define SQMOD_KEYCODE_KEY_1 0x31
#define SQMOD_KEYCODE_KEY_2 0x32
#define SQMOD_KEYCODE_KEY_3 0x33
#define SQMOD_KEYCODE_KEY_4 0x34
#define SQMOD_KEYCODE_KEY_5 0x35
#define SQMOD_KEYCODE_KEY_6 0x36
#define SQMOD_KEYCODE_KEY_7 0x37
#define SQMOD_KEYCODE_KEY_8 0x38
#define SQMOD_KEYCODE_KEY_9 0x39
#define SQMOD_KEYCODE_KEY_A 0x41
#define SQMOD_KEYCODE_KEY_B 0x42
#define SQMOD_KEYCODE_KEY_C 0x43
#define SQMOD_KEYCODE_KEY_D 0x44
#define SQMOD_KEYCODE_KEY_E 0x45
#define SQMOD_KEYCODE_KEY_F 0x46
#define SQMOD_KEYCODE_KEY_G 0x47
#define SQMOD_KEYCODE_KEY_H 0x48
#define SQMOD_KEYCODE_KEY_I 0x49
#define SQMOD_KEYCODE_KEY_J 0x4A
#define SQMOD_KEYCODE_KEY_K 0x4B
#define SQMOD_KEYCODE_KEY_L 0x4C
#define SQMOD_KEYCODE_KEY_M 0x4D
#define SQMOD_KEYCODE_KEY_N 0x4E
#define SQMOD_KEYCODE_KEY_O 0x4F
#define SQMOD_KEYCODE_KEY_P 0x50
#define SQMOD_KEYCODE_KEY_Q 0x51
#define SQMOD_KEYCODE_KEY_R 0x52
#define SQMOD_KEYCODE_KEY_S 0x53
#define SQMOD_KEYCODE_KEY_T 0x54
#define SQMOD_KEYCODE_KEY_U 0x55
#define SQMOD_KEYCODE_KEY_V 0x56
#define SQMOD_KEYCODE_KEY_W 0x57
#define SQMOD_KEYCODE_KEY_X 0x58
#define SQMOD_KEYCODE_KEY_Y 0x59
#define SQMOD_KEYCODE_KEY_Z 0x5A
#define SQMOD_KEYCODE_MULTIPLY 0x6A
#define SQMOD_KEYCODE_NONAME 0xFC
#define SQMOD_KEYCODE_NUMPAD0 0x60
#define SQMOD_KEYCODE_NUMPAD1 0x61
#define SQMOD_KEYCODE_NUMPAD2 0x62
#define SQMOD_KEYCODE_NUMPAD3 0x63
#define SQMOD_KEYCODE_NUMPAD4 0x64
#define SQMOD_KEYCODE_NUMPAD5 0x65
#define SQMOD_KEYCODE_NUMPAD6 0x66
#define SQMOD_KEYCODE_NUMPAD7 0x67
#define SQMOD_KEYCODE_NUMPAD8 0x68
#define SQMOD_KEYCODE_NUMPAD9 0x69
#define SQMOD_KEYCODE_OEM_1 0xBA
#define SQMOD_KEYCODE_OEM_102 0xE2
#define SQMOD_KEYCODE_OEM_2 0xBF
#define SQMOD_KEYCODE_OEM_3 0xC0
#define SQMOD_KEYCODE_OEM_4 0xDB
#define SQMOD_KEYCODE_OEM_5 0xDC
#define SQMOD_KEYCODE_OEM_6 0xDD
#define SQMOD_KEYCODE_OEM_7 0xDE
#define SQMOD_KEYCODE_OEM_8 0xDF
#define SQMOD_KEYCODE_OEM_ATTN 0xF0
#define SQMOD_KEYCODE_OEM_AUTO 0xF3
#define SQMOD_KEYCODE_OEM_AX 0xE1
#define SQMOD_KEYCODE_OEM_BACKTAB 0xF5
#define SQMOD_KEYCODE_OEM_CLEAR 0xFE
#define SQMOD_KEYCODE_OEM_COMMA 0xBC
#define SQMOD_KEYCODE_OEM_COPY 0xF2
#define SQMOD_KEYCODE_OEM_CUSEL 0xEF
#define SQMOD_KEYCODE_OEM_ENLW 0xF4
#define SQMOD_KEYCODE_OEM_FINISH 0xF1
#define SQMOD_KEYCODE_OEM_FJ_LOYA 0x95
#define SQMOD_KEYCODE_OEM_FJ_MASSHOU 0x93
#define SQMOD_KEYCODE_OEM_FJ_ROYA 0x96
#define SQMOD_KEYCODE_OEM_FJ_TOUROKU 0x94
#define SQMOD_KEYCODE_OEM_JUMP 0xEA
#define SQMOD_KEYCODE_OEM_MINUS 0xBD
#define SQMOD_KEYCODE_OEM_PA1 0xEB
#define SQMOD_KEYCODE_OEM_PA2 0xEC
#define SQMOD_KEYCODE_OEM_PA3 0xED
#define SQMOD_KEYCODE_OEM_PERIOD 0xBE
#define SQMOD_KEYCODE_OEM_PLUS 0xBB
#define SQMOD_KEYCODE_OEM_RESET 0xE9
#define SQMOD_KEYCODE_OEM_WSCTRL 0xEE
#define SQMOD_KEYCODE_PA1 0xFD
#define SQMOD_KEYCODE_PACKET 0xE7
#define SQMOD_KEYCODE_PLAY 0xFA
#define SQMOD_KEYCODE_PROCESSKEY 0xE5
#define SQMOD_KEYCODE_RETURN 0x0D
#define SQMOD_KEYCODE_SELECT 0x29
#define SQMOD_KEYCODE_SEPARATOR 0x6C
#define SQMOD_KEYCODE_SPACE 0x20
#define SQMOD_KEYCODE_SUBTRACT 0x6D
#define SQMOD_KEYCODE_TAB 0x09
#define SQMOD_KEYCODE_ZOOM 0xFB
#define SQMOD_KEYCODE_ACCEPT 0x1E
#define SQMOD_KEYCODE_APPS 0x5D
#define SQMOD_KEYCODE_BROWSER_BACK 0xA6
#define SQMOD_KEYCODE_BROWSER_FAVORITES 0xAB
#define SQMOD_KEYCODE_BROWSER_FORWARD 0xA7
#define SQMOD_KEYCODE_BROWSER_HOME 0xAC
#define SQMOD_KEYCODE_BROWSER_REFRESH 0xA8
#define SQMOD_KEYCODE_BROWSER_SEARCH 0xAA
#define SQMOD_KEYCODE_BROWSER_STOP 0xA9
#define SQMOD_KEYCODE_CAPITAL 0x14
#define SQMOD_KEYCODE_CONVERT 0x1C
#define SQMOD_KEYCODE_DELETE 0x2E
#define SQMOD_KEYCODE_DOWN 0x28
#define SQMOD_KEYCODE_END 0x23
#define SQMOD_KEYCODE_F1 0x70
#define SQMOD_KEYCODE_F10 0x79
#define SQMOD_KEYCODE_F11 0x7A
#define SQMOD_KEYCODE_F12 0x7B
#define SQMOD_KEYCODE_F13 0x7C
#define SQMOD_KEYCODE_F14 0x7D
#define SQMOD_KEYCODE_F15 0x7E
#define SQMOD_KEYCODE_F16 0x7F
#define SQMOD_KEYCODE_F17 0x80
#define SQMOD_KEYCODE_F18 0x81
#define SQMOD_KEYCODE_F19 0x82
#define SQMOD_KEYCODE_F2 0x71
#define SQMOD_KEYCODE_F20 0x83
#define SQMOD_KEYCODE_F21 0x84
#define SQMOD_KEYCODE_F22 0x85
#define SQMOD_KEYCODE_F23 0x86
#define SQMOD_KEYCODE_F24 0x87
#define SQMOD_KEYCODE_F3 0x72
#define SQMOD_KEYCODE_F4 0x73
#define SQMOD_KEYCODE_F5 0x74
#define SQMOD_KEYCODE_F6 0x75
#define SQMOD_KEYCODE_F7 0x76
#define SQMOD_KEYCODE_F8 0x77
#define SQMOD_KEYCODE_F9 0x78
#define SQMOD_KEYCODE_FINAL 0x18
#define SQMOD_KEYCODE_HELP 0x2F
#define SQMOD_KEYCODE_HOME 0x24
#define SQMOD_KEYCODE_ICO_00 0xE4
#define SQMOD_KEYCODE_INSERT 0x2D
#define SQMOD_KEYCODE_JUNJA 0x17
#define SQMOD_KEYCODE_KANA 0x15
#define SQMOD_KEYCODE_KANJI 0x19
#define SQMOD_KEYCODE_LAUNCH_APP1 0xB6
#define SQMOD_KEYCODE_LAUNCH_APP2 0xB7
#define SQMOD_KEYCODE_LAUNCH_MAIL 0xB4
#define SQMOD_KEYCODE_LAUNCH_MEDIA_SELECT 0xB5
#define SQMOD_KEYCODE_LBUTTON 0x01
#define SQMOD_KEYCODE_LCONTROL 0xA2
#define SQMOD_KEYCODE_LEFT 0x25
#define SQMOD_KEYCODE_LMENU 0xA4
#define SQMOD_KEYCODE_LSHIFT 0xA0
#define SQMOD_KEYCODE_LWIN 0x5B
#define SQMOD_KEYCODE_MBUTTON 0x04
#define SQMOD_KEYCODE_MEDIA_NEXT_TRACK 0xB0
#define SQMOD_KEYCODE_MEDIA_PLAY_PAUSE 0xB3
#define SQMOD_KEYCODE_MEDIA_PREV_TRACK 0xB1
#define SQMOD_KEYCODE_MEDIA_STOP 0xB2
#define SQMOD_KEYCODE_MODECHANGE 0x1F
#define SQMOD_KEYCODE_NEXT 0x22
#define SQMOD_KEYCODE_NONCONVERT 0x1D
#define SQMOD_KEYCODE_NUMLOCK 0x90
#define SQMOD_KEYCODE_OEM_FJ_JISHO 0x92
#define SQMOD_KEYCODE_PAUSE 0x13
#define SQMOD_KEYCODE_PRINT 0x2A
#define SQMOD_KEYCODE_PRIOR 0x21
#define SQMOD_KEYCODE_RBUTTON 0x02
#define SQMOD_KEYCODE_RCONTROL 0xA3
#define SQMOD_KEYCODE_RIGHT 0x27
#define SQMOD_KEYCODE_RMENU 0xA5
#define SQMOD_KEYCODE_RSHIFT 0xA1
#define SQMOD_KEYCODE_RWIN 0x5C
#define SQMOD_KEYCODE_SCROLL 0x91
#define SQMOD_KEYCODE_SLEEP 0x5F
#define SQMOD_KEYCODE_SNAPSHOT 0x2C
#define SQMOD_KEYCODE_UP 0x26
#define SQMOD_KEYCODE_VOLUME_DOWN 0xAE
#define SQMOD_KEYCODE_VOLUME_MUTE 0xAD
#define SQMOD_KEYCODE_VOLUME_UP 0xAF
#define SQMOD_KEYCODE_XBUTTON1 0x05
#define SQMOD_KEYCODE_XBUTTON2 0x06
#define SQMOD_KEYCODE_NONE 0xFF
#define SQMOD_KEYCODE_MAX 0x100
/* ------------------------------------------------------------------------------------------------
* ASCII CHARACTER CODES
*/
#define SQMOD_ASCII_NUL 0
#define SQMOD_ASCII_SOH 1
#define SQMOD_ASCII_STX 2
#define SQMOD_ASCII_ETX 3
#define SQMOD_ASCII_EOT 4
#define SQMOD_ASCII_ENQ 5
#define SQMOD_ASCII_ACK 6
#define SQMOD_ASCII_BEL 7
#define SQMOD_ASCII_BS 8
#define SQMOD_ASCII_TAB 9
#define SQMOD_ASCII_LF 10
#define SQMOD_ASCII_VT 11
#define SQMOD_ASCII_FF 12
#define SQMOD_ASCII_CR 13
#define SQMOD_ASCII_SO 14
#define SQMOD_ASCII_SI 15
#define SQMOD_ASCII_DLE 16
#define SQMOD_ASCII_DC1 17
#define SQMOD_ASCII_DC2 18
#define SQMOD_ASCII_DC3 19
#define SQMOD_ASCII_DC4 20
#define SQMOD_ASCII_NAK 21
#define SQMOD_ASCII_SYN 22
#define SQMOD_ASCII_ETB 23
#define SQMOD_ASCII_CAN 24
#define SQMOD_ASCII_EM 25
#define SQMOD_ASCII_SUB 26
#define SQMOD_ASCII_ESC 27
#define SQMOD_ASCII_FS 28
#define SQMOD_ASCII_GS 29
#define SQMOD_ASCII_RS 30
#define SQMOD_ASCII_US 31
#define SQMOD_ASCII_SPACE 32
#define SQMOD_ASCII_EXCLAMATION_POINT 33
#define SQMOD_ASCII_DOUBLE_QUOTES 34
#define SQMOD_ASCII_NUMBER_SIGN 35
#define SQMOD_ASCII_DOLLAR_SIGN 36
#define SQMOD_ASCII_PERCENT_SIGN 37
#define SQMOD_ASCII_AMPERSAND 38
#define SQMOD_ASCII_SINGLE_QUOTE 39
#define SQMOD_ASCII_OPENING_PARENTHESIS 40
#define SQMOD_ASCII_CLOSING_PARENTHESIS 41
#define SQMOD_ASCII_ASTERISK 42
#define SQMOD_ASCII_PLUS 43
#define SQMOD_ASCII_COMMA 44
#define SQMOD_ASCII_MINUS 45
#define SQMOD_ASCII_PERIOD 46
#define SQMOD_ASCII_SLASH 47
#define SQMOD_ASCII_ZERO 48
#define SQMOD_ASCII_ONE 49
#define SQMOD_ASCII_TWO 50
#define SQMOD_ASCII_THREE 51
#define SQMOD_ASCII_FOUR 52
#define SQMOD_ASCII_FIVE 53
#define SQMOD_ASCII_SIX 54
#define SQMOD_ASCII_SEVEN 55
#define SQMOD_ASCII_EIGHT 56
#define SQMOD_ASCII_NINE 57
#define SQMOD_ASCII_COLON 58
#define SQMOD_ASCII_EMICOLON 59
#define SQMOD_ASCII_LESS_THAN_SIGN 60
#define SQMOD_ASCII_EQUAL_SIGN 61
#define SQMOD_ASCII_GREATER_THAN_SIGN 62
#define SQMOD_ASCII_QUESTION_MARK 63
#define SQMOD_ASCII_AT 64
#define SQMOD_ASCII_UPPER_A 65
#define SQMOD_ASCII_UPPER_B 66
#define SQMOD_ASCII_UPPER_C 67
#define SQMOD_ASCII_UPPER_D 68
#define SQMOD_ASCII_UPPER_E 69
#define SQMOD_ASCII_UPPER_F 70
#define SQMOD_ASCII_UPPER_G 71
#define SQMOD_ASCII_UPPER_H 72
#define SQMOD_ASCII_UPPER_I 73
#define SQMOD_ASCII_UPPER_J 74
#define SQMOD_ASCII_UPPER_K 75
#define SQMOD_ASCII_UPPER_L 76
#define SQMOD_ASCII_UPPER_M 77
#define SQMOD_ASCII_UPPER_N 78
#define SQMOD_ASCII_UPPER_O 79
#define SQMOD_ASCII_UPPER_P 80
#define SQMOD_ASCII_UPPER_Q 81
#define SQMOD_ASCII_UPPER_R 82
#define SQMOD_ASCII_UPPER_S 83
#define SQMOD_ASCII_UPPER_T 84
#define SQMOD_ASCII_UPPER_U 85
#define SQMOD_ASCII_UPPER_V 86
#define SQMOD_ASCII_UPPER_W 87
#define SQMOD_ASCII_UPPER_X 88
#define SQMOD_ASCII_UPPER_Y 89
#define SQMOD_ASCII_UPPER_Z 90
#define SQMOD_ASCII_OPENING_BRACKET 91
#define SQMOD_ASCII_BACKSLASH 92
#define SQMOD_ASCII_CLOSING_BRACKET 93
#define SQMOD_ASCII_CARET 94
#define SQMOD_ASCII_UNDERSCORE 95
#define SQMOD_ASCII_GRAVE_ACCENT 96
#define SQMOD_ASCII_LOWER_A 97
#define SQMOD_ASCII_LOWER_B 98
#define SQMOD_ASCII_LOWER_C 99
#define SQMOD_ASCII_LOWER_D 100
#define SQMOD_ASCII_LOWER_E 101
#define SQMOD_ASCII_LOWER_F 102
#define SQMOD_ASCII_LOWER_G 103
#define SQMOD_ASCII_LOWER_H 104
#define SQMOD_ASCII_LOWER_I 105
#define SQMOD_ASCII_LOWER_J 106
#define SQMOD_ASCII_LOWER_K 107
#define SQMOD_ASCII_LOWER_L 108
#define SQMOD_ASCII_LOWER_M 109
#define SQMOD_ASCII_LOWER_N 110
#define SQMOD_ASCII_LOWER_O 111
#define SQMOD_ASCII_LOWER_P 112
#define SQMOD_ASCII_LOWER_Q 113
#define SQMOD_ASCII_LOWER_R 114
#define SQMOD_ASCII_LOWER_S 115
#define SQMOD_ASCII_LOWER_T 116
#define SQMOD_ASCII_LOWER_U 117
#define SQMOD_ASCII_LOWER_V 118
#define SQMOD_ASCII_LOWER_W 119
#define SQMOD_ASCII_LOWER_X 120
#define SQMOD_ASCII_LOWER_Y 121
#define SQMOD_ASCII_LOWER_Z 122
#define SQMOD_ASCII_OPENING_BRACE 123
#define SQMOD_ASCII_VERTICAL_BAR 124
#define SQMOD_ASCII_CLOSING_BRACE 125
#define SQMOD_ASCII_TILDE 126
#define SQMOD_ASCII_UNDEFINED 127
#define SQMOD_ASCII_MAX 128
#endif // _SQBASE_HPP_