// ------------------------------------------------------------------------------------------------
#include "Base/Shared.hpp"

// ------------------------------------------------------------------------------------------------
#include <limits>

// ------------------------------------------------------------------------------------------------
namespace SqMod {

// ------------------------------------------------------------------------------------------------
void Register_Constants(HSQUIRRELVM vm)
{
    ConstTable(vm).Enum(_SC("SqMod"), Enumeration(vm)
        .Const(_SC("Version"),      SQMOD_VERSION)
        .Const(_SC("Success"),      SQMOD_SUCCESS)
        .Const(_SC("Failure"),      SQMOD_FAILURE)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Arch"),         SQMOD_ARCHITECTURE)
        .Const(_SC("Architecture"), SQMOD_ARCHITECTURE)
        .Const(_SC("Platform"),     SQMOD_PLATFORM)
        .Const(_SC("MinChar"),      std::numeric_limits< SQChar >::min())
        .Const(_SC("MaxChar"),      std::numeric_limits< SQChar >::max())
        .Const(_SC("MinAchar"),     std::numeric_limits< Int8 >::min())
        .Const(_SC("MaxAchar"),     std::numeric_limits< Int8 >::max())
        .Const(_SC("MinByte"),      std::numeric_limits< Uint8 >::min())
        .Const(_SC("MaxByte"),      std::numeric_limits< Uint8 >::max())
        .Const(_SC("MinShort"),     std::numeric_limits< Int16 >::min())
        .Const(_SC("MaxShort"),     std::numeric_limits< Int16 >::max())
        .Const(_SC("MinWord"),      std::numeric_limits< Uint16 >::min())
        .Const(_SC("MaxWord"),      std::numeric_limits< Uint16 >::max())
        .Const(_SC("MinInt"),       std::numeric_limits< SQInteger >::min())
        .Const(_SC("MaxInt"),       std::numeric_limits< SQInteger >::max())
        .Const(_SC("MinInteger"),   std::numeric_limits< SQInteger >::min())
        .Const(_SC("MaxInteger"),   std::numeric_limits< SQInteger >::max())
        .Const(_SC("MinInt32"),     std::numeric_limits< SQInt32 >::min())
        .Const(_SC("MaxInt32"),     std::numeric_limits< SQInt32 >::max())
        .Const(_SC("MinFloat"),     std::numeric_limits< SQFloat >::min())
        .Const(_SC("MaxFloat"),     std::numeric_limits< SQFloat >::max())
        .Const(_SC("MinFloat32"),   std::numeric_limits< Float32 >::min())
        .Const(_SC("MaxFloat32"),   std::numeric_limits< Float32 >::max())
        .Const(_SC("FpNormal"),     FP_NORMAL)
        .Const(_SC("FpSubnormal"),  FP_SUBNORMAL)
        .Const(_SC("FpZero"),       FP_ZERO)
        .Const(_SC("FpInfinite"),   FP_INFINITE)
        .Const(_SC("FpNan"),        FP_NAN)
#ifdef SQUSEDOUBLE
        .Const(_SC("HugeVal"),      HUGE_VAL)
#else
        .Const(_SC("HugeVal"),      HUGE_VALF)
#endif // SQUSEDOUBLE
        .Const(_SC("Infinity"),     static_cast< float >(INFINITY))
        .Const(_SC("Inf"),          static_cast< float >(INFINITY))
        .Const(_SC("Nan"),          static_cast< float >(NAN))

    );

    ConstTable(vm).Enum(_SC("SqArchitectre"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_ARCH_ID_UNKNOWN)
        .Const(_SC("X32Bit"),       SQMOD_ARCH_ID_32_BIT)
        .Const(_SC("X64Bit"),       SQMOD_ARCH_ID_64_BIT)
    );

    ConstTable(vm).Enum(_SC("SqPlatform"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_PLAT_ID_UNKNOWN)
        .Const(_SC("Windows"),      SQMOD_PLAT_ID_WINDOWS)
        .Const(_SC("Linux"),        SQMOD_PLAT_ID_LINUX)
        .Const(_SC("MacOS"),        SQMOD_PLAT_ID_MACOS)
        .Const(_SC("Unix"),         SQMOD_PLAT_ID_UNIX)
    );

    ConstTable(vm).Enum(_SC("SqEvent"), Enumeration(vm)
        .Const(_SC("Unknown"),                  EVT_UNKNOWN)
        .Const(_SC("CustomEvent"),              EVT_CUSTOMEVENT)
        .Const(_SC("BlipCreated"),              EVT_BLIPCREATED)
        .Const(_SC("CheckpointCreated"),        EVT_CHECKPOINTCREATED)
        .Const(_SC("KeybindCreated"),           EVT_KEYBINDCREATED)
        .Const(_SC("ObjectCreated"),            EVT_OBJECTCREATED)
        .Const(_SC("PickupCreated"),            EVT_PICKUPCREATED)
        .Const(_SC("PlayerCreated"),            EVT_PLAYERCREATED)
        .Const(_SC("VehicleCreated"),           EVT_VEHICLECREATED)
        .Const(_SC("BlipDestroyed"),            EVT_BLIPDESTROYED)
        .Const(_SC("CheckpointDestroyed"),      EVT_CHECKPOINTDESTROYED)
        .Const(_SC("KeybindDestroyed"),         EVT_KEYBINDDESTROYED)
        .Const(_SC("ObjectDestroyed"),          EVT_OBJECTDESTROYED)
        .Const(_SC("PickupDestroyed"),          EVT_PICKUPDESTROYED)
        .Const(_SC("PlayerDestroyed"),          EVT_PLAYERDESTROYED)
        .Const(_SC("VehicleDestroyed"),         EVT_VEHICLEDESTROYED)
        .Const(_SC("BlipCustom"),               EVT_BLIPCUSTOM)
        .Const(_SC("CheckpointCustom"),         EVT_CHECKPOINTCUSTOM)
        .Const(_SC("KeybindCustom"),            EVT_KEYBINDCUSTOM)
        .Const(_SC("ObjectCustom"),             EVT_OBJECTCUSTOM)
        .Const(_SC("PickupCustom"),             EVT_PICKUPCUSTOM)
        .Const(_SC("PlayerCustom"),             EVT_PLAYERCUSTOM)
        .Const(_SC("VehicleCustom"),            EVT_VEHICLECUSTOM)
        .Const(_SC("ServerStartup"),            EVT_SERVERSTARTUP)
        .Const(_SC("ServerShutdown"),           EVT_SERVERSHUTDOWN)
        .Const(_SC("ServerFrame"),              EVT_SERVERFRAME)
        .Const(_SC("IncomingConnection"),       EVT_INCOMINGCONNECTION)
        .Const(_SC("PlayerRequestClass"),       EVT_PLAYERREQUESTCLASS)
        .Const(_SC("PlayerRequestSpawn"),       EVT_PLAYERREQUESTSPAWN)
        .Const(_SC("PlayerSpawn"),              EVT_PLAYERSPAWN)
        .Const(_SC("PlayerWasted"),             EVT_PLAYERWASTED)
        .Const(_SC("PlayerKilled"),             EVT_PLAYERKILLED)
        .Const(_SC("PlayerEmbarking"),          EVT_PLAYEREMBARKING)
        .Const(_SC("PlayerEmbarked"),           EVT_PLAYEREMBARKED)
        .Const(_SC("PlayerDisembark"),          EVT_PLAYERDISEMBARK)
        .Const(_SC("PlayerRename"),             EVT_PLAYERRENAME)
        .Const(_SC("PlayerState"),              EVT_PLAYERSTATE)
        .Const(_SC("StateNone"),                EVT_STATENONE)
        .Const(_SC("StateNormal"),              EVT_STATENORMAL)
        .Const(_SC("StateAim"),                 EVT_STATEAIM)
        .Const(_SC("StateDriver"),              EVT_STATEDRIVER)
        .Const(_SC("StatePassenger"),           EVT_STATEPASSENGER)
        .Const(_SC("StateEnterDriver"),         EVT_STATEENTERDRIVER)
        .Const(_SC("StateEnterPassenger"),      EVT_STATEENTERPASSENGER)
        .Const(_SC("StateExit"),                EVT_STATEEXIT)
        .Const(_SC("StateUnspawned"),           EVT_STATEUNSPAWNED)
        .Const(_SC("PlayerAction"),             EVT_PLAYERACTION)
        .Const(_SC("ActionNone"),               EVT_ACTIONNONE)
        .Const(_SC("ActionNormal"),             EVT_ACTIONNORMAL)
        .Const(_SC("ActionAiming"),             EVT_ACTIONAIMING)
        .Const(_SC("ActionShooting"),           EVT_ACTIONSHOOTING)
        .Const(_SC("ActionJumping"),            EVT_ACTIONJUMPING)
        .Const(_SC("ActionLieDown"),            EVT_ACTIONLIEDOWN)
        .Const(_SC("ActionGettingUp"),          EVT_ACTIONGETTINGUP)
        .Const(_SC("ActionJumpVehicle"),        EVT_ACTIONJUMPVEHICLE)
        .Const(_SC("ActionDriving"),            EVT_ACTIONDRIVING)
        .Const(_SC("ActionDying"),              EVT_ACTIONDYING)
        .Const(_SC("ActionWasted"),             EVT_ACTIONWASTED)
        .Const(_SC("ActionEmbarking"),          EVT_ACTIONEMBARKING)
        .Const(_SC("ActionDisembarking"),       EVT_ACTIONDISEMBARKING)
        .Const(_SC("PlayerBurning"),            EVT_PLAYERBURNING)
        .Const(_SC("PlayerCrouching"),          EVT_PLAYERCROUCHING)
        .Const(_SC("PlayerGameKeys"),           EVT_PLAYERGAMEKEYS)
        .Const(_SC("PlayerStartTyping"),        EVT_PLAYERSTARTTYPING)
        .Const(_SC("PlayerStopTyping"),         EVT_PLAYERSTOPTYPING)
        .Const(_SC("PlayerAway"),               EVT_PLAYERAWAY)
        .Const(_SC("PlayerMessage"),            EVT_PLAYERMESSAGE)
        .Const(_SC("PlayerCommand"),            EVT_PLAYERCOMMAND)
        .Const(_SC("PlayerPrivateMessage"),     EVT_PLAYERPRIVATEMESSAGE)
        .Const(_SC("PlayerKeyPress"),           EVT_PLAYERKEYPRESS)
        .Const(_SC("PlayerKeyRelease"),         EVT_PLAYERKEYRELEASE)
        .Const(_SC("PlayerSpectate"),           EVT_PLAYERSPECTATE)
        .Const(_SC("PlayerCrashReport"),        EVT_PLAYERCRASHREPORT)
        .Const(_SC("VehicleExplode"),           EVT_VEHICLEEXPLODE)
        .Const(_SC("VehicleRespawn"),           EVT_VEHICLERESPAWN)
        .Const(_SC("ObjectShot"),               EVT_OBJECTSHOT)
        .Const(_SC("ObjectTouched"),            EVT_OBJECTTOUCHED)
        .Const(_SC("PickupClaimed"),            EVT_PICKUPCLAIMED)
        .Const(_SC("PickupCollected"),          EVT_PICKUPCOLLECTED)
        .Const(_SC("PickupRespawn"),            EVT_PICKUPRESPAWN)
        .Const(_SC("CheckpointEntered"),        EVT_CHECKPOINTENTERED)
        .Const(_SC("CheckpointExited"),         EVT_CHECKPOINTEXITED)
        .Const(_SC("EntityPool"),               EVT_ENTITYPOOL)
        .Const(_SC("ClientScriptData"),         EVT_CLIENTSCRIPTDATA)
        .Const(_SC("PlayerUpdate"),             EVT_PLAYERUPDATE)
        .Const(_SC("VehicleUpdate"),            EVT_VEHICLEUPDATE)
        .Const(_SC("PlayerHealth"),             EVT_PLAYERHEALTH)
        .Const(_SC("PlayerArmour"),             EVT_PLAYERARMOUR)
        .Const(_SC("PlayerWeapon"),             EVT_PLAYERWEAPON)
        .Const(_SC("PlayerHeading"),            EVT_PLAYERHEADING)
        .Const(_SC("PlayerPosition"),           EVT_PLAYERPOSITION)
        .Const(_SC("PlayerOption"),             EVT_PLAYEROPTION)
        .Const(_SC("VehicleColor"),             EVT_VEHICLECOLOUR)
        .Const(_SC("VehicleColour"),            EVT_VEHICLECOLOUR)
        .Const(_SC("VehicleHealth"),            EVT_VEHICLEHEALTH)
        .Const(_SC("VehiclePosition"),          EVT_VEHICLEPOSITION)
        .Const(_SC("VehicleRotation"),          EVT_VEHICLEROTATION)
        .Const(_SC("VehicleOption"),            EVT_VEHICLEOPTION)
        .Const(_SC("ServerOption"),             EVT_SERVEROPTION)
        .Const(_SC("ScriptReload"),             EVT_SCRIPTRELOAD)
        .Const(_SC("ScriptLoaded"),             EVT_SCRIPTLOADED)
        .Const(_SC("Max"),                      EVT_MAX)
    );

    ConstTable(vm).Enum(_SC("SqCreate"), Enumeration(vm)
        .Const(_SC("Default"),      SQMOD_CREATE_DEFAULT)
        .Const(_SC("Manual"),       SQMOD_CREATE_MANUAL)
        .Const(_SC("Pool"),         SQMOD_CREATE_POOL)
        .Const(_SC("Automatic"),    SQMOD_CREATE_AUTOMATIC)
        .Const(_SC("Overwrite"),    SQMOD_CREATE_OVERWRITE)
        .Const(_SC("Import"),       SQMOD_CREATE_IMPORT)
    );

    ConstTable(vm).Enum(_SC("SqDestroy"), Enumeration(vm)
        .Const(_SC("Default"),      SQMOD_DESTROY_DEFAULT)
        .Const(_SC("Manual"),       SQMOD_DESTROY_MANUAL)
        .Const(_SC("Pool"),         SQMOD_DESTROY_POOL)
        .Const(_SC("Automatic"),    SQMOD_DESTROY_AUTOMATIC)
        .Const(_SC("Overwrite"),    SQMOD_DESTROY_OVERWRITE)
        .Const(_SC("Cleanup"),      SQMOD_DESTROY_CLEANUP)
    );

    ConstTable(vm).Enum(_SC("SqServerError"), Enumeration(vm)
        .Const(_SC("Unknown"),                  SQMOD_UNKNOWN)
        .Const(_SC("None"),                     vcmpErrorNone)
        .Const(_SC("NoSuchEntity"),             vcmpErrorNoSuchEntity)
        .Const(_SC("BufferTooSmall"),           vcmpErrorBufferTooSmall)
        .Const(_SC("TooLargeInput"),            vcmpErrorTooLargeInput)
        .Const(_SC("ArgumentOutOfBounds"),      vcmpErrorArgumentOutOfBounds)
        .Const(_SC("NullArgument"),             vcmpErrorNullArgument)
        .Const(_SC("PoolExhausted"),            vcmpErrorPoolExhausted)
        .Const(_SC("InvalidName"),              vcmpErrorInvalidName)
        .Const(_SC("RequestDenied"),            vcmpErrorRequestDenied)
        .Const(_SC("Max"),                      vcmpErrorRequestDenied)
    );

    ConstTable(vm).Enum(_SC("SqEntityPool"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Vehicle"),      vcmpEntityPoolVehicle)
        .Const(_SC("Object"),       vcmpEntityPoolObject)
        .Const(_SC("Pickup"),       vcmpEntityPoolPickup)
        .Const(_SC("Radio"),        vcmpEntityPoolRadio)
        .Const(_SC("Blip"),         vcmpEntityPoolBlip)
        .Const(_SC("Checkpoint"),   vcmpEntityPoolCheckPoint)
        .Const(_SC("Max"),          vcmpEntityPoolCheckPoint)
    );

    ConstTable(vm).Enum(_SC("SqPlayerUpdate"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Normal"),       vcmpPlayerUpdateNormal)
        .Const(_SC("Aiming"),       vcmpPlayerUpdateAiming)
        .Const(_SC("Driver"),       vcmpPlayerUpdateDriver)
        .Const(_SC("Passenger"),    vcmpPlayerUpdatePassenger)
        .Const(_SC("Max"),          vcmpPlayerUpdatePassenger)
    );

    ConstTable(vm).Enum(_SC("SqVehicleUpdate"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("DriverSync"),   vcmpVehicleUpdateDriverSync)
        .Const(_SC("OtherSync"),    vcmpVehicleUpdateOtherSync)
        .Const(_SC("Position"),     vcmpVehicleUpdatePosition)
        .Const(_SC("Health"),       vcmpVehicleUpdateHealth)
        .Const(_SC("Color"),        vcmpVehicleUpdateColour)
        .Const(_SC("Colour"),       vcmpVehicleUpdateColour)
        .Const(_SC("Rotation"),     vcmpVehicleUpdateRotation)
        .Const(_SC("Max"),          vcmpVehicleUpdateRotation)
    );

    ConstTable(vm).Enum(_SC("SqPlayerVehicle"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Out"),          vcmpPlayerVehicleOut)
        .Const(_SC("Entering"),     vcmpPlayerVehicleEntering)
        .Const(_SC("Exiting"),      vcmpPlayerVehicleExiting)
        .Const(_SC("In"),           vcmpPlayerVehicleIn)
        .Const(_SC("Max"),          vcmpPlayerVehicleIn)
    );

    ConstTable(vm).Enum(_SC("SqVehicleSync"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("None"),         vcmpVehicleSyncNone)
        .Const(_SC("Driver"),       vcmpVehicleSyncDriver)
        .Const(_SC("Passenger"),    vcmpVehicleSyncPassenger)
        .Const(_SC("Near"),         vcmpVehicleSyncNear)
        .Const(_SC("Max"),          vcmpVehicleSyncNear)
    );

    ConstTable(vm).Enum(_SC("SqPartReason"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Timeout"),      vcmpDisconnectReasonTimeout)
        .Const(_SC("Quit"),         vcmpDisconnectReasonQuit)
        .Const(_SC("Kick"),         vcmpDisconnectReasonKick)
        .Const(_SC("Crash"),        vcmpDisconnectReasonCrash)
        .Const(_SC("AntiCheat"),    vcmpDisconnectReasonAntiCheat)
        .Const(_SC("Max"),          vcmpDisconnectReasonAntiCheat)
    );

    ConstTable(vm).Enum(_SC("SqServerOption"), Enumeration(vm)
        .Const(_SC("Unknown"),                  SQMOD_UNKNOWN)
        .Const(_SC("SyncFrameLimiter"),         vcmpServerOptionSyncFrameLimiter)
        .Const(_SC("FrameLimiter"),             vcmpServerOptionFrameLimiter)
        .Const(_SC("TaxiBoostJump"),            vcmpServerOptionTaxiBoostJump)
        .Const(_SC("DriveOnWater"),             vcmpServerOptionDriveOnWater)
        .Const(_SC("FastSwitch"),               vcmpServerOptionFastSwitch)
        .Const(_SC("FriendlyFire"),             vcmpServerOptionFriendlyFire)
        .Const(_SC("DisableDriveBy"),           vcmpServerOptionDisableDriveBy)
        .Const(_SC("PerfectHandling"),          vcmpServerOptionPerfectHandling)
        .Const(_SC("FlyingCars"),               vcmpServerOptionFlyingCars)
        .Const(_SC("JumpSwitch"),               vcmpServerOptionJumpSwitch)
        .Const(_SC("ShowMarkers"),              vcmpServerOptionShowMarkers)
        .Const(_SC("OnlyShowTeamMarkers"),      vcmpServerOptionOnlyShowTeamMarkers)
        .Const(_SC("StuntBike"),                vcmpServerOptionStuntBike)
        .Const(_SC("ShootInAir"),               vcmpServerOptionShootInAir)
        .Const(_SC("ShowNameTags"),             vcmpServerOptionShowNameTags)
        .Const(_SC("JoinMessages"),             vcmpServerOptionJoinMessages)
        .Const(_SC("DeathMessages"),            vcmpServerOptionDeathMessages)
        .Const(_SC("ChatTagsEnabled"),          vcmpServerOptionChatTagsEnabled)
        .Const(_SC("UseClasses"),               vcmpServerOptionUseClasses)
        .Const(_SC("WallGlitch"),               vcmpServerOptionWallGlitch)
        .Const(_SC("DisableBackfaceCulling"),   vcmpServerOptionDisableBackfaceCulling)
        .Const(_SC("DisableHeliBladeDamage"),   vcmpServerOptionDisableHeliBladeDamage)
        .Const(_SC("Max"),                      vcmpServerOptionDisableHeliBladeDamage)
    );

    ConstTable(vm).Enum(_SC("SqPlayerOption"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("Controllable"),     vcmpPlayerOptionControllable)
        .Const(_SC("DriveBy"),          vcmpPlayerOptionDriveBy)
        .Const(_SC("WhiteScanlines"),   vcmpPlayerOptionWhiteScanlines)
        .Const(_SC("GreenScanlines"),   vcmpPlayerOptionGreenScanlines)
        .Const(_SC("Widescreen"),       vcmpPlayerOptionWidescreen)
        .Const(_SC("ShowMarkers"),      vcmpPlayerOptionShowMarkers)
        .Const(_SC("CanAttack"),        vcmpPlayerOptionCanAttack)
        .Const(_SC("HasMarker"),        vcmpPlayerOptionHasMarker)
        .Const(_SC("ChatTagsEnabled"),  vcmpPlayerOptionChatTagsEnabled)
        .Const(_SC("DrunkEffects"),     vcmpPlayerOptionDrunkEffects)
        .Const(_SC("Max"),              vcmpPlayerOptionDrunkEffects)
    );

    ConstTable(vm).Enum(_SC("SqVehicleOption"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("DoorsLocked"),      vcmpVehicleOptionDoorsLocked)
        .Const(_SC("Alarm"),            vcmpVehicleOptionAlarm)
        .Const(_SC("Lights"),           vcmpVehicleOptionLights)
        .Const(_SC("RadioLocked"),      vcmpVehicleOptionRadioLocked)
        .Const(_SC("Ghost"),            vcmpVehicleOptionGhost)
        .Const(_SC("Siren"),            vcmpVehicleOptionSiren)
        .Const(_SC("Max"),              vcmpVehicleOptionSiren)
    );

    ConstTable(vm).Enum(_SC("SqBodyPart"), Enumeration(vm)
        .Const(_SC("Unknown"),      SQMOD_UNKNOWN)
        .Const(_SC("Body"),         vcmpBodyPartBody)
        .Const(_SC("Torso"),        vcmpBodyPartTorso)
        .Const(_SC("LeftArm"),      vcmpBodyPartLeftArm)
        .Const(_SC("RightArm"),     vcmpBodyPartRightArm)
        .Const(_SC("LeftLeg"),      vcmpBodyPartLeftLeg)
        .Const(_SC("RightLeg"),     vcmpBodyPartRightLeg)
        .Const(_SC("Head"),         vcmpBodyPartHead)
        .Const(_SC("LArm"),         vcmpBodyPartLeftArm)
        .Const(_SC("RArm"),         vcmpBodyPartRightArm)
        .Const(_SC("LLeg"),         vcmpBodyPartLeftLeg)
        .Const(_SC("RLeg"),         vcmpBodyPartRightLeg)
        .Const(_SC("InVehicle"),    vcmpBodyPartInVehicle)
        .Const(_SC("Max"),          vcmpBodyPartInVehicle)
    );

    ConstTable(vm).Enum(_SC("SqPlayerState"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("None"),             vcmpPlayerStateNone)
        .Const(_SC("Normal"),           vcmpPlayerStateNormal)
        .Const(_SC("Aim"),              vcmpPlayerStateAim)
        .Const(_SC("Driver"),           vcmpPlayerStateDriver)
        .Const(_SC("Passenger"),        vcmpPlayerStatePassenger)
        .Const(_SC("EnterDriver"),      vcmpPlayerStateEnterDriver)
        .Const(_SC("EnterPassenger"),   vcmpPlayerStateEnterPassenger)
        .Const(_SC("Exit"),             vcmpPlayerStateExit)
        .Const(_SC("Unspawned"),        vcmpPlayerStateUnspawned)
        .Const(_SC("Max"),              vcmpPlayerStateUnspawned)
    );

    ConstTable(vm).Enum(_SC("SqPlayerAction"), Enumeration(vm)
        .Const(_SC("Unknown"),              SQMOD_UNKNOWN)
        .Const(_SC("None"),                 SQMOD_PLAYER_ACTION_NONE)
        .Const(_SC("Normal"),               SQMOD_PLAYER_ACTION_NORMAL)
        .Const(_SC("Aiming"),               SQMOD_PLAYER_ACTION_AIMING)
        .Const(_SC("Shooting"),             SQMOD_PLAYER_ACTION_SHOOTING)
        .Const(_SC("Jumping"),              SQMOD_PLAYER_ACTION_JUMPING)
        .Const(_SC("LyingOnGround"),        SQMOD_PLAYER_ACTION_LYING_ON_GROUND)
        .Const(_SC("GettingUp"),            SQMOD_PLAYER_ACTION_GETTING_UP)
        .Const(_SC("JumpingFromVehicle"),   SQMOD_PLAYER_ACTION_JUMPING_FROM_VEHICLE)
        .Const(_SC("Driving"),              SQMOD_PLAYER_ACTION_DRIVING)
        .Const(_SC("Dying"),                SQMOD_PLAYER_ACTION_DYING)
        .Const(_SC("Wasted"),               SQMOD_PLAYER_ACTION_WASTED)
        .Const(_SC("EnteringVehicle"),      SQMOD_PLAYER_ACTION_ENTERING_VEHICLE)
        .Const(_SC("ExitingVehicle"),       SQMOD_PLAYER_ACTION_EXITING_VEHICLE)
        .Const(_SC("Max"),                  SQMOD_PLAYER_ACTION_MAX)
    );

    ConstTable(vm).Enum(_SC("SqWeather"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("MostlyClear"),      SQMOD_WEATHER_MOSTLYCLEAR)
        .Const(_SC("Overcast"),         SQMOD_WEATHER_OVERCAST)
        .Const(_SC("ThunderStorm"),     SQMOD_WEATHER_THUNDERSTORM)
        .Const(_SC("Storm"),            SQMOD_WEATHER_STORM)
        .Const(_SC("Stormy"),           SQMOD_WEATHER_STORMY)
        .Const(_SC("Foggy"),            SQMOD_WEATHER_FOGGY)
        .Const(_SC("Fog"),              SQMOD_WEATHER_FOG)
        .Const(_SC("Clear"),            SQMOD_WEATHER_CLEAR)
        .Const(_SC("Sunny"),            SQMOD_WEATHER_SUNNY)
        .Const(_SC("Rain"),             SQMOD_WEATHER_RAIN)
        .Const(_SC("Rainy"),            SQMOD_WEATHER_RAINY)
        .Const(_SC("DarkCloudy"),       SQMOD_WEATHER_DARKCLOUDY)
        .Const(_SC("LightCloudy"),      SQMOD_WEATHER_LIGHTCLOUDY)
        .Const(_SC("OvercastCloudy"),   SQMOD_WEATHER_OVERCASTCLOUDY)
        .Const(_SC("BlackClouds"),      SQMOD_WEATHER_BLACKCLOUDS)
        .Const(_SC("Max"),              SQMOD_WEATHER_MAX)
    );

    ConstTable(vm).Enum(_SC("SqWep"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("Unarmed"),          SQMOD_WEAPON_UNARMED)
        .Const(_SC("BrassKnuckles"),    SQMOD_WEAPON_BRASSKNUCKLES)
        .Const(_SC("Screwdriver"),      SQMOD_WEAPON_SCREWDRIVER)
        .Const(_SC("GolfClub"),         SQMOD_WEAPON_GOLFCLUB)
        .Const(_SC("Nightstick"),       SQMOD_WEAPON_NIGHTSTICK)
        .Const(_SC("Knife"),            SQMOD_WEAPON_KNIFE)
        .Const(_SC("BaseballBat"),      SQMOD_WEAPON_BASEBALLBAT)
        .Const(_SC("Hammer"),           SQMOD_WEAPON_HAMMER)
        .Const(_SC("MeatCleaver"),      SQMOD_WEAPON_MEATCLEAVER)
        .Const(_SC("Machete"),          SQMOD_WEAPON_MACHETE)
        .Const(_SC("Katana"),           SQMOD_WEAPON_KATANA)
        .Const(_SC("Chainsaw"),         SQMOD_WEAPON_CHAINSAW)
        .Const(_SC("Grenade"),          SQMOD_WEAPON_GRENADE)
        .Const(_SC("Remote"),           SQMOD_WEAPON_REMOTE)
        .Const(_SC("Teargas"),          SQMOD_WEAPON_TEARGAS)
        .Const(_SC("Molotov"),          SQMOD_WEAPON_MOLOTOV)
        .Const(_SC("Rocket"),           SQMOD_WEAPON_ROCKET)
        .Const(_SC("Colt45"),           SQMOD_WEAPON_COLT45)
        .Const(_SC("Python"),           SQMOD_WEAPON_PYTHON)
        .Const(_SC("Shotgun"),          SQMOD_WEAPON_SHOTGUN)
        .Const(_SC("Spas12"),           SQMOD_WEAPON_SPAS12)
        .Const(_SC("Stubby"),           SQMOD_WEAPON_STUBBY)
        .Const(_SC("Tec9"),             SQMOD_WEAPON_TEC9)
        .Const(_SC("Uzi"),              SQMOD_WEAPON_UZI)
        .Const(_SC("Ingram"),           SQMOD_WEAPON_INGRAM)
        .Const(_SC("MP5"),              SQMOD_WEAPON_MP5)
        .Const(_SC("M4"),               SQMOD_WEAPON_M4)
        .Const(_SC("Ruger"),            SQMOD_WEAPON_RUGER)
        .Const(_SC("Sniper"),           SQMOD_WEAPON_SNIPER)
        .Const(_SC("Laserscope"),       SQMOD_WEAPON_LASERSCOPE)
        .Const(_SC("RocketLauncher"),   SQMOD_WEAPON_ROCKETLAUNCHER)
        .Const(_SC("FlameThrower"),     SQMOD_WEAPON_FLAMETHROWER)
        .Const(_SC("M60"),              SQMOD_WEAPON_M60)
        .Const(_SC("Minigun"),          SQMOD_WEAPON_MINIGUN)
        .Const(_SC("Bomb"),             SQMOD_WEAPON_BOMB)
        .Const(_SC("HeliCannon"),       SQMOD_WEAPON_HELICANNON)
        .Const(_SC("Camera"),           SQMOD_WEAPON_CAMERA)
        .Const(_SC("Vehicle"),          SQMOD_WEAPON_VEHICLE)
        .Const(_SC("Explosion1"),       SQMOD_WEAPON_EXPLOSION1)
        .Const(_SC("Driveby"),          SQMOD_WEAPON_DRIVEBY)
        .Const(_SC("Drowned"),          SQMOD_WEAPON_DROWNED)
        .Const(_SC("Fall"),             SQMOD_WEAPON_FALL)
        .Const(_SC("Explosion2"),       SQMOD_WEAPON_EXPLOSION2)
        .Const(_SC("Suicide"),          SQMOD_WEAPON_SUICIDE)
        .Const(_SC("Launcher"),         SQMOD_WEAPON_ROCKETLAUNCHER)
        .Const(_SC("Max"),              SQMOD_WEAPON_MAX)
    );

    ConstTable(vm).Enum(_SC("SqVeh"), Enumeration(vm)
        .Const(_SC("Unknown"),          SQMOD_UNKNOWN)
        .Const(_SC("Landstalker"),      SQMOD_VEHICLE_LANDSTALKER)
        .Const(_SC("Idaho"),            SQMOD_VEHICLE_IDAHO)
        .Const(_SC("Stinger"),          SQMOD_VEHICLE_STINGER)
        .Const(_SC("Linerunner"),       SQMOD_VEHICLE_LINERUNNER)
        .Const(_SC("Perennial"),        SQMOD_VEHICLE_PERENNIAL)
        .Const(_SC("Sentinel"),         SQMOD_VEHICLE_SENTINEL)
        .Const(_SC("Rio"),              SQMOD_VEHICLE_RIO)
        .Const(_SC("Firetruck"),        SQMOD_VEHICLE_FIRETRUCK)
        .Const(_SC("Trashmaster"),      SQMOD_VEHICLE_TRASHMASTER)
        .Const(_SC("Stretch"),          SQMOD_VEHICLE_STRETCH)
        .Const(_SC("Manana"),           SQMOD_VEHICLE_MANANA)
        .Const(_SC("Infernus"),         SQMOD_VEHICLE_INFERNUS)
        .Const(_SC("Voodoo"),           SQMOD_VEHICLE_VOODOO)
        .Const(_SC("Pony"),             SQMOD_VEHICLE_PONY)
        .Const(_SC("Mule"),             SQMOD_VEHICLE_MULE)
        .Const(_SC("Cheetah"),          SQMOD_VEHICLE_CHEETAH)
        .Const(_SC("Ambulance"),        SQMOD_VEHICLE_AMBULANCE)
        .Const(_SC("Fbiwashington"),    SQMOD_VEHICLE_FBIWASHINGTON)
        .Const(_SC("Moonbeam"),         SQMOD_VEHICLE_MOONBEAM)
        .Const(_SC("Esperanto"),        SQMOD_VEHICLE_ESPERANTO)
        .Const(_SC("Taxi"),             SQMOD_VEHICLE_TAXI)
        .Const(_SC("Washington"),       SQMOD_VEHICLE_WASHINGTON)
        .Const(_SC("Bobcat"),           SQMOD_VEHICLE_BOBCAT)
        .Const(_SC("Mrwhoopee"),        SQMOD_VEHICLE_MRWHOOPEE)
        .Const(_SC("Bfinjection"),      SQMOD_VEHICLE_BFINJECTION)
        .Const(_SC("Hunter"),           SQMOD_VEHICLE_HUNTER)
        .Const(_SC("Police"),           SQMOD_VEHICLE_POLICE)
        .Const(_SC("Enforcer"),         SQMOD_VEHICLE_ENFORCER)
        .Const(_SC("Securicar"),        SQMOD_VEHICLE_SECURICAR)
        .Const(_SC("Banshee"),          SQMOD_VEHICLE_BANSHEE)
        .Const(_SC("Predator"),         SQMOD_VEHICLE_PREDATOR)
        .Const(_SC("Bus"),              SQMOD_VEHICLE_BUS)
        .Const(_SC("Rhino"),            SQMOD_VEHICLE_RHINO)
        .Const(_SC("Barracksol"),       SQMOD_VEHICLE_BARRACKSOL)
        .Const(_SC("Barracks"),         SQMOD_VEHICLE_BARRACKS)
        .Const(_SC("Cubanhermes"),      SQMOD_VEHICLE_CUBANHERMES)
        .Const(_SC("Helicopter"),       SQMOD_VEHICLE_HELICOPTER)
        .Const(_SC("Angel"),            SQMOD_VEHICLE_ANGEL)
        .Const(_SC("Coach"),            SQMOD_VEHICLE_COACH)
        .Const(_SC("Cabbie"),           SQMOD_VEHICLE_CABBIE)
        .Const(_SC("Stallion"),         SQMOD_VEHICLE_STALLION)
        .Const(_SC("Rumpo"),            SQMOD_VEHICLE_RUMPO)
        .Const(_SC("Rcbandit"),         SQMOD_VEHICLE_RCBANDIT)
        .Const(_SC("Hearse"),           SQMOD_VEHICLE_HEARSE)
        .Const(_SC("Packer"),           SQMOD_VEHICLE_PACKER)
        .Const(_SC("Sentinelxs"),       SQMOD_VEHICLE_SENTINELXS)
        .Const(_SC("Admiral"),          SQMOD_VEHICLE_ADMIRAL)
        .Const(_SC("Squalo"),           SQMOD_VEHICLE_SQUALO)
        .Const(_SC("Seasparrow"),       SQMOD_VEHICLE_SEASPARROW)
        .Const(_SC("Pizzaboy"),         SQMOD_VEHICLE_PIZZABOY)
        .Const(_SC("Gangburrito"),      SQMOD_VEHICLE_GANGBURRITO)
        .Const(_SC("Airtrain"),         SQMOD_VEHICLE_AIRTRAIN)
        .Const(_SC("Deaddodo"),         SQMOD_VEHICLE_DEADDODO)
        .Const(_SC("Speeder"),          SQMOD_VEHICLE_SPEEDER)
        .Const(_SC("Reefer"),           SQMOD_VEHICLE_REEFER)
        .Const(_SC("Tropic"),           SQMOD_VEHICLE_TROPIC)
        .Const(_SC("Flatbed"),          SQMOD_VEHICLE_FLATBED)
        .Const(_SC("Yankee"),           SQMOD_VEHICLE_YANKEE)
        .Const(_SC("Caddy"),            SQMOD_VEHICLE_CADDY)
        .Const(_SC("Zebra"),            SQMOD_VEHICLE_ZEBRA)
        .Const(_SC("Zebracab"),         SQMOD_VEHICLE_ZEBRACAB)
        .Const(_SC("Topfun"),           SQMOD_VEHICLE_TOPFUN)
        .Const(_SC("Skimmer"),          SQMOD_VEHICLE_SKIMMER)
        .Const(_SC("Pcj600"),           SQMOD_VEHICLE_PCJ600)
        .Const(_SC("Pcj"),              SQMOD_VEHICLE_PCJ)
        .Const(_SC("Faggio"),           SQMOD_VEHICLE_FAGGIO)
        .Const(_SC("Freeway"),          SQMOD_VEHICLE_FREEWAY)
        .Const(_SC("Rcbaron"),          SQMOD_VEHICLE_RCBARON)
        .Const(_SC("Rcraider"),         SQMOD_VEHICLE_RCRAIDER)
        .Const(_SC("Glendale"),         SQMOD_VEHICLE_GLENDALE)
        .Const(_SC("Oceanic"),          SQMOD_VEHICLE_OCEANIC)
        .Const(_SC("Sanchez"),          SQMOD_VEHICLE_SANCHEZ)
        .Const(_SC("Sparrow"),          SQMOD_VEHICLE_SPARROW)
        .Const(_SC("Patriot"),          SQMOD_VEHICLE_PATRIOT)
        .Const(_SC("Lovefist"),         SQMOD_VEHICLE_LOVEFIST)
        .Const(_SC("Coastguard"),       SQMOD_VEHICLE_COASTGUARD)
        .Const(_SC("Dinghy"),           SQMOD_VEHICLE_DINGHY)
        .Const(_SC("Hermes"),           SQMOD_VEHICLE_HERMES)
        .Const(_SC("Sabre"),            SQMOD_VEHICLE_SABRE)
        .Const(_SC("Sabreturbo"),       SQMOD_VEHICLE_SABRETURBO)
        .Const(_SC("Phoenix"),          SQMOD_VEHICLE_PHOENIX)
        .Const(_SC("Walton"),           SQMOD_VEHICLE_WALTON)
        .Const(_SC("Regina"),           SQMOD_VEHICLE_REGINA)
        .Const(_SC("Comet"),            SQMOD_VEHICLE_COMET)
        .Const(_SC("Deluxo"),           SQMOD_VEHICLE_DELUXO)
        .Const(_SC("Burrito"),          SQMOD_VEHICLE_BURRITO)
        .Const(_SC("Spandex"),          SQMOD_VEHICLE_SPANDEX)
        .Const(_SC("Spandexpress"),     SQMOD_VEHICLE_SPANDEXPRESS)
        .Const(_SC("Marquis"),          SQMOD_VEHICLE_MARQUIS)
        .Const(_SC("Baggage"),          SQMOD_VEHICLE_BAGGAGE)
        .Const(_SC("Baggagehandler"),   SQMOD_VEHICLE_BAGGAGEHANDLER)
        .Const(_SC("Kaufman"),          SQMOD_VEHICLE_KAUFMAN)
        .Const(_SC("Kaufmancab"),       SQMOD_VEHICLE_KAUFMANCAB)
        .Const(_SC("Maverick"),         SQMOD_VEHICLE_MAVERICK)
        .Const(_SC("Vcnmaverick"),      SQMOD_VEHICLE_VCNMAVERICK)
        .Const(_SC("Rancher"),          SQMOD_VEHICLE_RANCHER)
        .Const(_SC("Fbirancher"),       SQMOD_VEHICLE_FBIRANCHER)
        .Const(_SC("Virgo"),            SQMOD_VEHICLE_VIRGO)
        .Const(_SC("Greenwood"),        SQMOD_VEHICLE_GREENWOOD)
        .Const(_SC("Cubanjetmax"),      SQMOD_VEHICLE_CUBANJETMAX)
        .Const(_SC("Hotring1"),         SQMOD_VEHICLE_HOTRING1)
        .Const(_SC("Hotringracer1"),    SQMOD_VEHICLE_HOTRINGRACER1)
        .Const(_SC("Sandking"),         SQMOD_VEHICLE_SANDKING)
        .Const(_SC("Blista"),           SQMOD_VEHICLE_BLISTA)
        .Const(_SC("Blistac"),          SQMOD_VEHICLE_BLISTAC)
        .Const(_SC("Blistacompact"),    SQMOD_VEHICLE_BLISTACOMPACT)
        .Const(_SC("Compact"),          SQMOD_VEHICLE_COMPACT)
        .Const(_SC("Policemav"),        SQMOD_VEHICLE_POLICEMAV)
        .Const(_SC("Policemaverick"),   SQMOD_VEHICLE_POLICEMAVERICK)
        .Const(_SC("Boxville"),         SQMOD_VEHICLE_BOXVILLE)
        .Const(_SC("Benson"),           SQMOD_VEHICLE_BENSON)
        .Const(_SC("Mesa"),             SQMOD_VEHICLE_MESA)
        .Const(_SC("Mesagrande"),       SQMOD_VEHICLE_MESAGRANDE)
        .Const(_SC("Rcgoblin"),         SQMOD_VEHICLE_RCGOBLIN)
        .Const(_SC("Hotring2"),         SQMOD_VEHICLE_HOTRING2)
        .Const(_SC("Hotringracer2"),    SQMOD_VEHICLE_HOTRINGRACER2)
        .Const(_SC("Hotring3"),         SQMOD_VEHICLE_HOTRING3)
        .Const(_SC("Hotringracer3"),    SQMOD_VEHICLE_HOTRINGRACER3)
        .Const(_SC("Bloodring1"),       SQMOD_VEHICLE_BLOODRING1)
        .Const(_SC("Bloodringbanger1"), SQMOD_VEHICLE_BLOODRINGBANGER1)
        .Const(_SC("Bloodring2"),       SQMOD_VEHICLE_BLOODRING2)
        .Const(_SC("Bloodringbanger2"), SQMOD_VEHICLE_BLOODRINGBANGER2)
        .Const(_SC("Vicechee"),         SQMOD_VEHICLE_VICECHEE)
        .Const(_SC("PoliceCheetah"),    SQMOD_VEHICLE_POLICECHEETAH)
        .Const(_SC("FBICheetah"),       SQMOD_VEHICLE_FBICHEETAH)
        .Const(_SC("Cheetah2"),         SQMOD_VEHICLE_CHEETAH2)
        .Const(_SC("Max"),              SQMOD_VEHICLE_MAX)
    );

    ConstTable(vm).Enum(_SC("SqSkin"), Enumeration(vm)
        .Const(_SC("Unknown"),                  SQMOD_UNKNOWN)
        .Const(_SC("Tommy_vercetti"),           SQMOD_SKIN_TOMMY_VERCETTI)
        .Const(_SC("Cop"),                      SQMOD_SKIN_COP)
        .Const(_SC("Swat"),                     SQMOD_SKIN_SWAT)
        .Const(_SC("Fbi"),                      SQMOD_SKIN_FBI)
        .Const(_SC("Army"),                     SQMOD_SKIN_ARMY)
        .Const(_SC("Paramedic"),                SQMOD_SKIN_PARAMEDIC)
        .Const(_SC("Fireman"),                  SQMOD_SKIN_FIREMAN)
        .Const(_SC("Golf_guy_a"),               SQMOD_SKIN_GOLF_GUY_A)
        .Const(_SC("Bum_lady_a"),               SQMOD_SKIN_BUM_LADY_A)
        .Const(_SC("Bum_lady_b"),               SQMOD_SKIN_BUM_LADY_B)
        .Const(_SC("Punk_a"),                   SQMOD_SKIN_PUNK_A)
        .Const(_SC("Lawyer"),                   SQMOD_SKIN_LAWYER)
        .Const(_SC("Spanish_lady_a"),           SQMOD_SKIN_SPANISH_LADY_A)
        .Const(_SC("Spanish_lady_b"),           SQMOD_SKIN_SPANISH_LADY_B)
        .Const(_SC("Cool_guy_a"),               SQMOD_SKIN_COOL_GUY_A)
        .Const(_SC("Arabic_guy"),               SQMOD_SKIN_ARABIC_GUY)
        .Const(_SC("Beach_lady_a"),             SQMOD_SKIN_BEACH_LADY_A)
        .Const(_SC("Beach_lady_b"),             SQMOD_SKIN_BEACH_LADY_B)
        .Const(_SC("Beach_guy_a"),              SQMOD_SKIN_BEACH_GUY_A)
        .Const(_SC("Beach_guy_b"),              SQMOD_SKIN_BEACH_GUY_B)
        .Const(_SC("Office_lady_a"),            SQMOD_SKIN_OFFICE_LADY_A)
        .Const(_SC("Waitress_a"),               SQMOD_SKIN_WAITRESS_A)
        .Const(_SC("Food_lady"),                SQMOD_SKIN_FOOD_LADY)
        .Const(_SC("Prostitute_a"),             SQMOD_SKIN_PROSTITUTE_A)
        .Const(_SC("Bum_lady_c"),               SQMOD_SKIN_BUM_LADY_C)
        .Const(_SC("Bum_guy_a"),                SQMOD_SKIN_BUM_GUY_A)
        .Const(_SC("Garbageman_a"),             SQMOD_SKIN_GARBAGEMAN_A)
        .Const(_SC("Taxi_driver_a"),            SQMOD_SKIN_TAXI_DRIVER_A)
        .Const(_SC("Hatian_a"),                 SQMOD_SKIN_HATIAN_A)
        .Const(_SC("Criminal_a"),               SQMOD_SKIN_CRIMINAL_A)
        .Const(_SC("Hood_lady"),                SQMOD_SKIN_HOOD_LADY)
        .Const(_SC("Granny_a"),                 SQMOD_SKIN_GRANNY_A)
        .Const(_SC("Business_man_a"),           SQMOD_SKIN_BUSINESS_MAN_A)
        .Const(_SC("Church_guy"),               SQMOD_SKIN_CHURCH_GUY)
        .Const(_SC("Club_lady"),                SQMOD_SKIN_CLUB_LADY)
        .Const(_SC("Church_lady"),              SQMOD_SKIN_CHURCH_LADY)
        .Const(_SC("Pimp"),                     SQMOD_SKIN_PIMP)
        .Const(_SC("Beach_lady_c"),             SQMOD_SKIN_BEACH_LADY_C)
        .Const(_SC("Beach_guy_c"),              SQMOD_SKIN_BEACH_GUY_C)
        .Const(_SC("Beach_lady_d"),             SQMOD_SKIN_BEACH_LADY_D)
        .Const(_SC("Beach_guy_d"),              SQMOD_SKIN_BEACH_GUY_D)
        .Const(_SC("Business_man_b"),           SQMOD_SKIN_BUSINESS_MAN_B)
        .Const(_SC("Prostitute_b"),             SQMOD_SKIN_PROSTITUTE_B)
        .Const(_SC("Bum_lady_d"),               SQMOD_SKIN_BUM_LADY_D)
        .Const(_SC("Bum_guy_b"),                SQMOD_SKIN_BUM_GUY_B)
        .Const(_SC("Hatian_b"),                 SQMOD_SKIN_HATIAN_B)
        .Const(_SC("Construction_worker_a"),    SQMOD_SKIN_CONSTRUCTION_WORKER_A)
        .Const(_SC("Punk_b"),                   SQMOD_SKIN_PUNK_B)
        .Const(_SC("Prostitute_c"),             SQMOD_SKIN_PROSTITUTE_C)
        .Const(_SC("Granny_b"),                 SQMOD_SKIN_GRANNY_B)
        .Const(_SC("Punk_c"),                   SQMOD_SKIN_PUNK_C)
        .Const(_SC("Business_man_c"),           SQMOD_SKIN_BUSINESS_MAN_C)
        .Const(_SC("Spanish_lady_c"),           SQMOD_SKIN_SPANISH_LADY_C)
        .Const(_SC("Spanish_lady_d"),           SQMOD_SKIN_SPANISH_LADY_D)
        .Const(_SC("Cool_guy_b"),               SQMOD_SKIN_COOL_GUY_B)
        .Const(_SC("Business_man_d"),           SQMOD_SKIN_BUSINESS_MAN_D)
        .Const(_SC("Beach_lady_e"),             SQMOD_SKIN_BEACH_LADY_E)
        .Const(_SC("Beach_guy_e"),              SQMOD_SKIN_BEACH_GUY_E)
        .Const(_SC("Beach_lady_f"),             SQMOD_SKIN_BEACH_LADY_F)
        .Const(_SC("Beach_guy_f"),              SQMOD_SKIN_BEACH_GUY_F)
        .Const(_SC("Construction_worker_b"),    SQMOD_SKIN_CONSTRUCTION_WORKER_B)
        .Const(_SC("Golf_guy_b"),               SQMOD_SKIN_GOLF_GUY_B)
        .Const(_SC("Golf_lady"),                SQMOD_SKIN_GOLF_LADY)
        .Const(_SC("Golf_guy_c"),               SQMOD_SKIN_GOLF_GUY_C)
        .Const(_SC("Beach_lady_g"),             SQMOD_SKIN_BEACH_LADY_G)
        .Const(_SC("Beach_guy_g"),              SQMOD_SKIN_BEACH_GUY_G)
        .Const(_SC("Office_lady_b"),            SQMOD_SKIN_OFFICE_LADY_B)
        .Const(_SC("Business_man_e"),           SQMOD_SKIN_BUSINESS_MAN_E)
        .Const(_SC("Business_man_f"),           SQMOD_SKIN_BUSINESS_MAN_F)
        .Const(_SC("Prostitute_d"),             SQMOD_SKIN_PROSTITUTE_D)
        .Const(_SC("Bum_lady_e"),               SQMOD_SKIN_BUM_LADY_E)
        .Const(_SC("Bum_guy_c"),                SQMOD_SKIN_BUM_GUY_C)
        .Const(_SC("Spanish_guy"),              SQMOD_SKIN_SPANISH_GUY)
        .Const(_SC("Taxi_driver_b"),            SQMOD_SKIN_TAXI_DRIVER_B)
        .Const(_SC("Gym_lady"),                 SQMOD_SKIN_GYM_LADY)
        .Const(_SC("Gym_guy"),                  SQMOD_SKIN_GYM_GUY)
        .Const(_SC("Skate_lady"),               SQMOD_SKIN_SKATE_LADY)
        .Const(_SC("Skate_guy"),                SQMOD_SKIN_SKATE_GUY)
        .Const(_SC("Shopper_a"),                SQMOD_SKIN_SHOPPER_A)
        .Const(_SC("Shopper_b"),                SQMOD_SKIN_SHOPPER_B)
        .Const(_SC("Tourist_a"),                SQMOD_SKIN_TOURIST_A)
        .Const(_SC("Tourist_b"),                SQMOD_SKIN_TOURIST_B)
        .Const(_SC("Cuban_a"),                  SQMOD_SKIN_CUBAN_A)
        .Const(_SC("Cuban_b"),                  SQMOD_SKIN_CUBAN_B)
        .Const(_SC("Hatian_c"),                 SQMOD_SKIN_HATIAN_C)
        .Const(_SC("Hatian_d"),                 SQMOD_SKIN_HATIAN_D)
        .Const(_SC("Shark_a"),                  SQMOD_SKIN_SHARK_A)
        .Const(_SC("Shark_b"),                  SQMOD_SKIN_SHARK_B)
        .Const(_SC("Diaz_guy_a"),               SQMOD_SKIN_DIAZ_GUY_A)
        .Const(_SC("Diaz_guy_b"),               SQMOD_SKIN_DIAZ_GUY_B)
        .Const(_SC("Dbp_security_a"),           SQMOD_SKIN_DBP_SECURITY_A)
        .Const(_SC("Dbp_security_b"),           SQMOD_SKIN_DBP_SECURITY_B)
        .Const(_SC("Biker_a"),                  SQMOD_SKIN_BIKER_A)
        .Const(_SC("Biker_b"),                  SQMOD_SKIN_BIKER_B)
        .Const(_SC("Vercetti_guy_a"),           SQMOD_SKIN_VERCETTI_GUY_A)
        .Const(_SC("Vercetti_guy_b"),           SQMOD_SKIN_VERCETTI_GUY_B)
        .Const(_SC("Undercover_cop_a"),         SQMOD_SKIN_UNDERCOVER_COP_A)
        .Const(_SC("Undercover_cop_b"),         SQMOD_SKIN_UNDERCOVER_COP_B)
        .Const(_SC("Undercover_cop_c"),         SQMOD_SKIN_UNDERCOVER_COP_C)
        .Const(_SC("Undercover_cop_d"),         SQMOD_SKIN_UNDERCOVER_COP_D)
        .Const(_SC("Undercover_cop_e"),         SQMOD_SKIN_UNDERCOVER_COP_E)
        .Const(_SC("Undercover_cop_f"),         SQMOD_SKIN_UNDERCOVER_COP_F)
        .Const(_SC("Rich_guy"),                 SQMOD_SKIN_RICH_GUY)
        .Const(_SC("Cool_guy_c"),               SQMOD_SKIN_COOL_GUY_C)
        .Const(_SC("Prostitute_e"),             SQMOD_SKIN_PROSTITUTE_E)
        .Const(_SC("Prostitute_f"),             SQMOD_SKIN_PROSTITUTE_F)
        .Const(_SC("Love_fist_a"),              SQMOD_SKIN_LOVE_FIST_A)
        .Const(_SC("Ken_rosenburg"),            SQMOD_SKIN_KEN_ROSENBURG)
        .Const(_SC("Candy_suxx"),               SQMOD_SKIN_CANDY_SUXX)
        .Const(_SC("Hilary"),                   SQMOD_SKIN_HILARY)
        .Const(_SC("Love_fist_b"),              SQMOD_SKIN_LOVE_FIST_B)
        .Const(_SC("Phil"),                     SQMOD_SKIN_PHIL)
        .Const(_SC("Rockstar_guy"),             SQMOD_SKIN_ROCKSTAR_GUY)
        .Const(_SC("Sonny"),                    SQMOD_SKIN_SONNY)
        .Const(_SC("Lance_a"),                  SQMOD_SKIN_LANCE_A)
        .Const(_SC("Mercades_a"),               SQMOD_SKIN_MERCADES_A)
        .Const(_SC("Love_fist_c"),              SQMOD_SKIN_LOVE_FIST_C)
        .Const(_SC("Alex_srub"),                SQMOD_SKIN_ALEX_SRUB)
        .Const(_SC("Lance_cop"),                SQMOD_SKIN_LANCE_COP)
        .Const(_SC("Lance_b"),                  SQMOD_SKIN_LANCE_B)
        .Const(_SC("Cortez"),                   SQMOD_SKIN_CORTEZ)
        .Const(_SC("Love_fist_d"),              SQMOD_SKIN_LOVE_FIST_D)
        .Const(_SC("Columbian_guy_a"),          SQMOD_SKIN_COLUMBIAN_GUY_A)
        .Const(_SC("Hilary_robber"),            SQMOD_SKIN_HILARY_ROBBER)
        .Const(_SC("Mercades_b"),               SQMOD_SKIN_MERCADES_B)
        .Const(_SC("Cam"),                      SQMOD_SKIN_CAM)
        .Const(_SC("Cam_robber"),               SQMOD_SKIN_CAM_ROBBER)
        .Const(_SC("Phil_one_arm"),             SQMOD_SKIN_PHIL_ONE_ARM)
        .Const(_SC("Phil_robber"),              SQMOD_SKIN_PHIL_ROBBER)
        .Const(_SC("Cool_guy_d"),               SQMOD_SKIN_COOL_GUY_D)
        .Const(_SC("Pizzaman"),                 SQMOD_SKIN_PIZZAMAN)
        .Const(_SC("Taxi_driver_c"),            SQMOD_SKIN_TAXI_DRIVER_C)
        .Const(_SC("Taxi_driver_d"),            SQMOD_SKIN_TAXI_DRIVER_D)
        .Const(_SC("Sailor_a"),                 SQMOD_SKIN_SAILOR_A)
        .Const(_SC("Sailor_b"),                 SQMOD_SKIN_SAILOR_B)
        .Const(_SC("Sailor_c"),                 SQMOD_SKIN_SAILOR_C)
        .Const(_SC("Chef"),                     SQMOD_SKIN_CHEF)
        .Const(_SC("Criminal_b"),               SQMOD_SKIN_CRIMINAL_B)
        .Const(_SC("French_guy"),               SQMOD_SKIN_FRENCH_GUY)
        .Const(_SC("Garbageman_b"),             SQMOD_SKIN_GARBAGEMAN_B)
        .Const(_SC("Hatian_e"),                 SQMOD_SKIN_HATIAN_E)
        .Const(_SC("Waitress_b"),               SQMOD_SKIN_WAITRESS_B)
        .Const(_SC("Sonny_guy_a"),              SQMOD_SKIN_SONNY_GUY_A)
        .Const(_SC("Sonny_guy_b"),              SQMOD_SKIN_SONNY_GUY_B)
        .Const(_SC("Sonny_guy_c"),              SQMOD_SKIN_SONNY_GUY_C)
        .Const(_SC("Columbian_guy_b"),          SQMOD_SKIN_COLUMBIAN_GUY_B)
        .Const(_SC("Thug_a"),                   SQMOD_SKIN_THUG_A)
        .Const(_SC("Beach_guy_h"),              SQMOD_SKIN_BEACH_GUY_H)
        .Const(_SC("Garbageman_c"),             SQMOD_SKIN_GARBAGEMAN_C)
        .Const(_SC("Garbageman_d"),             SQMOD_SKIN_GARBAGEMAN_D)
        .Const(_SC("Garbageman_e"),             SQMOD_SKIN_GARBAGEMAN_E)
        .Const(_SC("Tranny"),                   SQMOD_SKIN_TRANNY)
        .Const(_SC("Thug_b"),                   SQMOD_SKIN_THUG_B)
        .Const(_SC("Spandex_guy_a"),            SQMOD_SKIN_SPANDEX_GUY_A)
        .Const(_SC("Spandex_guy_b"),            SQMOD_SKIN_SPANDEX_GUY_B)
        .Const(_SC("Stripper_a"),               SQMOD_SKIN_STRIPPER_A)
        .Const(_SC("Stripper_b"),               SQMOD_SKIN_STRIPPER_B)
        .Const(_SC("Stripper_c"),               SQMOD_SKIN_STRIPPER_C)
        .Const(_SC("Store_clerk"),              SQMOD_SKIN_STORE_CLERK)
        .Const(_SC("Max"),                      SQMOD_SKIN_MAX)
    );

    ConstTable(vm).Enum(_SC("SqKeycode"), Enumeration(vm)
        .Const(_SC("Unknown"),              SQMOD_UNKNOWN)
        .Const(_SC("Abnt_c1"),              SQMOD_KEYCODE_ABNT_C1)
        .Const(_SC("Abnt_c2"),              SQMOD_KEYCODE_ABNT_C2)
        .Const(_SC("Add"),                  SQMOD_KEYCODE_ADD)
        .Const(_SC("Attn"),                 SQMOD_KEYCODE_ATTN)
        .Const(_SC("Back"),                 SQMOD_KEYCODE_BACK)
        .Const(_SC("Cancel"),               SQMOD_KEYCODE_CANCEL)
        .Const(_SC("Clear"),                SQMOD_KEYCODE_CLEAR)
        .Const(_SC("Crsel"),                SQMOD_KEYCODE_CRSEL)
        .Const(_SC("Decimal"),              SQMOD_KEYCODE_DECIMAL)
        .Const(_SC("Divide"),               SQMOD_KEYCODE_DIVIDE)
        .Const(_SC("Ereof"),                SQMOD_KEYCODE_EREOF)
        .Const(_SC("Escape"),               SQMOD_KEYCODE_ESCAPE)
        .Const(_SC("Execute"),              SQMOD_KEYCODE_EXECUTE)
        .Const(_SC("Exsel"),                SQMOD_KEYCODE_EXSEL)
        .Const(_SC("Ico_clear"),            SQMOD_KEYCODE_ICO_CLEAR)
        .Const(_SC("Ico_help"),             SQMOD_KEYCODE_ICO_HELP)
        .Const(_SC("Key_0"),                SQMOD_KEYCODE_KEY_0)
        .Const(_SC("Key_1"),                SQMOD_KEYCODE_KEY_1)
        .Const(_SC("Key_2"),                SQMOD_KEYCODE_KEY_2)
        .Const(_SC("Key_3"),                SQMOD_KEYCODE_KEY_3)
        .Const(_SC("Key_4"),                SQMOD_KEYCODE_KEY_4)
        .Const(_SC("Key_5"),                SQMOD_KEYCODE_KEY_5)
        .Const(_SC("Key_6"),                SQMOD_KEYCODE_KEY_6)
        .Const(_SC("Key_7"),                SQMOD_KEYCODE_KEY_7)
        .Const(_SC("Key_8"),                SQMOD_KEYCODE_KEY_8)
        .Const(_SC("Key_9"),                SQMOD_KEYCODE_KEY_9)
        .Const(_SC("Key_a"),                SQMOD_KEYCODE_KEY_A)
        .Const(_SC("Key_b"),                SQMOD_KEYCODE_KEY_B)
        .Const(_SC("Key_c"),                SQMOD_KEYCODE_KEY_C)
        .Const(_SC("Key_d"),                SQMOD_KEYCODE_KEY_D)
        .Const(_SC("Key_e"),                SQMOD_KEYCODE_KEY_E)
        .Const(_SC("Key_f"),                SQMOD_KEYCODE_KEY_F)
        .Const(_SC("Key_g"),                SQMOD_KEYCODE_KEY_G)
        .Const(_SC("Key_h"),                SQMOD_KEYCODE_KEY_H)
        .Const(_SC("Key_i"),                SQMOD_KEYCODE_KEY_I)
        .Const(_SC("Key_j"),                SQMOD_KEYCODE_KEY_J)
        .Const(_SC("Key_k"),                SQMOD_KEYCODE_KEY_K)
        .Const(_SC("Key_l"),                SQMOD_KEYCODE_KEY_L)
        .Const(_SC("Key_m"),                SQMOD_KEYCODE_KEY_M)
        .Const(_SC("Key_n"),                SQMOD_KEYCODE_KEY_N)
        .Const(_SC("Key_o"),                SQMOD_KEYCODE_KEY_O)
        .Const(_SC("Key_p"),                SQMOD_KEYCODE_KEY_P)
        .Const(_SC("Key_q"),                SQMOD_KEYCODE_KEY_Q)
        .Const(_SC("Key_r"),                SQMOD_KEYCODE_KEY_R)
        .Const(_SC("Key_s"),                SQMOD_KEYCODE_KEY_S)
        .Const(_SC("Key_t"),                SQMOD_KEYCODE_KEY_T)
        .Const(_SC("Key_u"),                SQMOD_KEYCODE_KEY_U)
        .Const(_SC("Key_v"),                SQMOD_KEYCODE_KEY_V)
        .Const(_SC("Key_w"),                SQMOD_KEYCODE_KEY_W)
        .Const(_SC("Key_x"),                SQMOD_KEYCODE_KEY_X)
        .Const(_SC("Key_y"),                SQMOD_KEYCODE_KEY_Y)
        .Const(_SC("Key_z"),                SQMOD_KEYCODE_KEY_Z)
        .Const(_SC("Multiply"),             SQMOD_KEYCODE_MULTIPLY)
        .Const(_SC("Noname"),               SQMOD_KEYCODE_NONAME)
        .Const(_SC("Numpad0"),              SQMOD_KEYCODE_NUMPAD0)
        .Const(_SC("Numpad1"),              SQMOD_KEYCODE_NUMPAD1)
        .Const(_SC("Numpad2"),              SQMOD_KEYCODE_NUMPAD2)
        .Const(_SC("Numpad3"),              SQMOD_KEYCODE_NUMPAD3)
        .Const(_SC("Numpad4"),              SQMOD_KEYCODE_NUMPAD4)
        .Const(_SC("Numpad5"),              SQMOD_KEYCODE_NUMPAD5)
        .Const(_SC("Numpad6"),              SQMOD_KEYCODE_NUMPAD6)
        .Const(_SC("Numpad7"),              SQMOD_KEYCODE_NUMPAD7)
        .Const(_SC("Numpad8"),              SQMOD_KEYCODE_NUMPAD8)
        .Const(_SC("Numpad9"),              SQMOD_KEYCODE_NUMPAD9)
        .Const(_SC("Oem_1"),                SQMOD_KEYCODE_OEM_1)
        .Const(_SC("Oem_102"),              SQMOD_KEYCODE_OEM_102)
        .Const(_SC("Oem_2"),                SQMOD_KEYCODE_OEM_2)
        .Const(_SC("Oem_3"),                SQMOD_KEYCODE_OEM_3)
        .Const(_SC("Oem_4"),                SQMOD_KEYCODE_OEM_4)
        .Const(_SC("Oem_5"),                SQMOD_KEYCODE_OEM_5)
        .Const(_SC("Oem_6"),                SQMOD_KEYCODE_OEM_6)
        .Const(_SC("Oem_7"),                SQMOD_KEYCODE_OEM_7)
        .Const(_SC("Oem_8"),                SQMOD_KEYCODE_OEM_8)
        .Const(_SC("Oem_attn"),             SQMOD_KEYCODE_OEM_ATTN)
        .Const(_SC("Oem_auto"),             SQMOD_KEYCODE_OEM_AUTO)
        .Const(_SC("Oem_ax"),               SQMOD_KEYCODE_OEM_AX)
        .Const(_SC("Oem_backtab"),          SQMOD_KEYCODE_OEM_BACKTAB)
        .Const(_SC("Oem_clear"),            SQMOD_KEYCODE_OEM_CLEAR)
        .Const(_SC("Oem_comma"),            SQMOD_KEYCODE_OEM_COMMA)
        .Const(_SC("Oem_copy"),             SQMOD_KEYCODE_OEM_COPY)
        .Const(_SC("Oem_cusel"),            SQMOD_KEYCODE_OEM_CUSEL)
        .Const(_SC("Oem_enlw"),             SQMOD_KEYCODE_OEM_ENLW)
        .Const(_SC("Oem_finish"),           SQMOD_KEYCODE_OEM_FINISH)
        .Const(_SC("Oem_fj_loya"),          SQMOD_KEYCODE_OEM_FJ_LOYA)
        .Const(_SC("Oem_fj_masshou"),       SQMOD_KEYCODE_OEM_FJ_MASSHOU)
        .Const(_SC("Oem_fj_roya"),          SQMOD_KEYCODE_OEM_FJ_ROYA)
        .Const(_SC("Oem_fj_touroku"),       SQMOD_KEYCODE_OEM_FJ_TOUROKU)
        .Const(_SC("Oem_jump"),             SQMOD_KEYCODE_OEM_JUMP)
        .Const(_SC("Oem_minus"),            SQMOD_KEYCODE_OEM_MINUS)
        .Const(_SC("Oem_pa1"),              SQMOD_KEYCODE_OEM_PA1)
        .Const(_SC("Oem_pa2"),              SQMOD_KEYCODE_OEM_PA2)
        .Const(_SC("Oem_pa3"),              SQMOD_KEYCODE_OEM_PA3)
        .Const(_SC("Oem_period"),           SQMOD_KEYCODE_OEM_PERIOD)
        .Const(_SC("Oem_plus"),             SQMOD_KEYCODE_OEM_PLUS)
        .Const(_SC("Oem_reset"),            SQMOD_KEYCODE_OEM_RESET)
        .Const(_SC("Oem_wsctrl"),           SQMOD_KEYCODE_OEM_WSCTRL)
        .Const(_SC("Pa1"),                  SQMOD_KEYCODE_PA1)
        .Const(_SC("Packet"),               SQMOD_KEYCODE_PACKET)
        .Const(_SC("Play"),                 SQMOD_KEYCODE_PLAY)
        .Const(_SC("Processkey"),           SQMOD_KEYCODE_PROCESSKEY)
        .Const(_SC("Return"),               SQMOD_KEYCODE_RETURN)
        .Const(_SC("Select"),               SQMOD_KEYCODE_SELECT)
        .Const(_SC("Separator"),            SQMOD_KEYCODE_SEPARATOR)
        .Const(_SC("Space"),                SQMOD_KEYCODE_SPACE)
        .Const(_SC("Subtract"),             SQMOD_KEYCODE_SUBTRACT)
        .Const(_SC("Tab"),                  SQMOD_KEYCODE_TAB)
        .Const(_SC("Zoom"),                 SQMOD_KEYCODE_ZOOM)
        .Const(_SC("Accept"),               SQMOD_KEYCODE_ACCEPT)
        .Const(_SC("Apps"),                 SQMOD_KEYCODE_APPS)
        .Const(_SC("Browser_back"),         SQMOD_KEYCODE_BROWSER_BACK)
        .Const(_SC("Browser_favorites"),    SQMOD_KEYCODE_BROWSER_FAVORITES)
        .Const(_SC("Browser_forward"),      SQMOD_KEYCODE_BROWSER_FORWARD)
        .Const(_SC("Browser_home"),         SQMOD_KEYCODE_BROWSER_HOME)
        .Const(_SC("Browser_refresh"),      SQMOD_KEYCODE_BROWSER_REFRESH)
        .Const(_SC("Browser_search"),       SQMOD_KEYCODE_BROWSER_SEARCH)
        .Const(_SC("Browser_stop"),         SQMOD_KEYCODE_BROWSER_STOP)
        .Const(_SC("Capital"),              SQMOD_KEYCODE_CAPITAL)
        .Const(_SC("Convert"),              SQMOD_KEYCODE_CONVERT)
        .Const(_SC("Delete"),               SQMOD_KEYCODE_DELETE)
        .Const(_SC("Down"),                 SQMOD_KEYCODE_DOWN)
        .Const(_SC("End"),                  SQMOD_KEYCODE_END)
        .Const(_SC("F1"),                   SQMOD_KEYCODE_F1)
        .Const(_SC("F10"),                  SQMOD_KEYCODE_F10)
        .Const(_SC("F11"),                  SQMOD_KEYCODE_F11)
        .Const(_SC("F12"),                  SQMOD_KEYCODE_F12)
        .Const(_SC("F13"),                  SQMOD_KEYCODE_F13)
        .Const(_SC("F14"),                  SQMOD_KEYCODE_F14)
        .Const(_SC("F15"),                  SQMOD_KEYCODE_F15)
        .Const(_SC("F16"),                  SQMOD_KEYCODE_F16)
        .Const(_SC("F17"),                  SQMOD_KEYCODE_F17)
        .Const(_SC("F18"),                  SQMOD_KEYCODE_F18)
        .Const(_SC("F19"),                  SQMOD_KEYCODE_F19)
        .Const(_SC("F2"),                   SQMOD_KEYCODE_F2)
        .Const(_SC("F20"),                  SQMOD_KEYCODE_F20)
        .Const(_SC("F21"),                  SQMOD_KEYCODE_F21)
        .Const(_SC("F22"),                  SQMOD_KEYCODE_F22)
        .Const(_SC("F23"),                  SQMOD_KEYCODE_F23)
        .Const(_SC("F24"),                  SQMOD_KEYCODE_F24)
        .Const(_SC("F3"),                   SQMOD_KEYCODE_F3)
        .Const(_SC("F4"),                   SQMOD_KEYCODE_F4)
        .Const(_SC("F5"),                   SQMOD_KEYCODE_F5)
        .Const(_SC("F6"),                   SQMOD_KEYCODE_F6)
        .Const(_SC("F7"),                   SQMOD_KEYCODE_F7)
        .Const(_SC("F8"),                   SQMOD_KEYCODE_F8)
        .Const(_SC("F9"),                   SQMOD_KEYCODE_F9)
        .Const(_SC("Final"),                SQMOD_KEYCODE_FINAL)
        .Const(_SC("Help"),                 SQMOD_KEYCODE_HELP)
        .Const(_SC("Home"),                 SQMOD_KEYCODE_HOME)
        .Const(_SC("Ico_00"),               SQMOD_KEYCODE_ICO_00)
        .Const(_SC("Insert"),               SQMOD_KEYCODE_INSERT)
        .Const(_SC("Junja"),                SQMOD_KEYCODE_JUNJA)
        .Const(_SC("Kana"),                 SQMOD_KEYCODE_KANA)
        .Const(_SC("Kanji"),                SQMOD_KEYCODE_KANJI)
        .Const(_SC("Launch_app1"),          SQMOD_KEYCODE_LAUNCH_APP1)
        .Const(_SC("Launch_app2"),          SQMOD_KEYCODE_LAUNCH_APP2)
        .Const(_SC("Launch_mail"),          SQMOD_KEYCODE_LAUNCH_MAIL)
        .Const(_SC("Launch_media_select"),  SQMOD_KEYCODE_LAUNCH_MEDIA_SELECT)
        .Const(_SC("Lbutton"),              SQMOD_KEYCODE_LBUTTON)
        .Const(_SC("Lcontrol"),             SQMOD_KEYCODE_LCONTROL)
        .Const(_SC("Left"),                 SQMOD_KEYCODE_LEFT)
        .Const(_SC("Lmenu"),                SQMOD_KEYCODE_LMENU)
        .Const(_SC("Lshift"),               SQMOD_KEYCODE_LSHIFT)
        .Const(_SC("Lwin"),                 SQMOD_KEYCODE_LWIN)
        .Const(_SC("Mbutton"),              SQMOD_KEYCODE_MBUTTON)
        .Const(_SC("Media_next_track"),     SQMOD_KEYCODE_MEDIA_NEXT_TRACK)
        .Const(_SC("Media_play_pause"),     SQMOD_KEYCODE_MEDIA_PLAY_PAUSE)
        .Const(_SC("Media_prev_track"),     SQMOD_KEYCODE_MEDIA_PREV_TRACK)
        .Const(_SC("Media_stop"),           SQMOD_KEYCODE_MEDIA_STOP)
        .Const(_SC("Modechange"),           SQMOD_KEYCODE_MODECHANGE)
        .Const(_SC("Next"),                 SQMOD_KEYCODE_NEXT)
        .Const(_SC("Nonconvert"),           SQMOD_KEYCODE_NONCONVERT)
        .Const(_SC("Numlock"),              SQMOD_KEYCODE_NUMLOCK)
        .Const(_SC("Oem_fj_jisho"),         SQMOD_KEYCODE_OEM_FJ_JISHO)
        .Const(_SC("Pause"),                SQMOD_KEYCODE_PAUSE)
        .Const(_SC("Print"),                SQMOD_KEYCODE_PRINT)
        .Const(_SC("Prior"),                SQMOD_KEYCODE_PRIOR)
        .Const(_SC("Rbutton"),              SQMOD_KEYCODE_RBUTTON)
        .Const(_SC("Rcontrol"),             SQMOD_KEYCODE_RCONTROL)
        .Const(_SC("Right"),                SQMOD_KEYCODE_RIGHT)
        .Const(_SC("Rmenu"),                SQMOD_KEYCODE_RMENU)
        .Const(_SC("Rshift"),               SQMOD_KEYCODE_RSHIFT)
        .Const(_SC("Rwin"),                 SQMOD_KEYCODE_RWIN)
        .Const(_SC("Scroll"),               SQMOD_KEYCODE_SCROLL)
        .Const(_SC("Sleep"),                SQMOD_KEYCODE_SLEEP)
        .Const(_SC("Snapshot"),             SQMOD_KEYCODE_SNAPSHOT)
        .Const(_SC("Up"),                   SQMOD_KEYCODE_UP)
        .Const(_SC("Volume_down"),          SQMOD_KEYCODE_VOLUME_DOWN)
        .Const(_SC("Volume_mute"),          SQMOD_KEYCODE_VOLUME_MUTE)
        .Const(_SC("Volume_up"),            SQMOD_KEYCODE_VOLUME_UP)
        .Const(_SC("Xbutton1"),             SQMOD_KEYCODE_XBUTTON1)
        .Const(_SC("Xbutton2"),             SQMOD_KEYCODE_XBUTTON2)
        .Const(_SC("None"),                 SQMOD_KEYCODE_NONE)
        .Const(_SC("Max"),                  SQMOD_KEYCODE_MAX)
    );

    ConstTable(vm).Enum(_SC("SqASCII"), Enumeration(vm)
        .Const(_SC("Unknown"),              SQMOD_UNKNOWN)
        .Const(_SC("Nul"),                  SQMOD_ASCII_NUL)
        .Const(_SC("Soh"),                  SQMOD_ASCII_SOH)
        .Const(_SC("Stx"),                  SQMOD_ASCII_STX)
        .Const(_SC("Etx"),                  SQMOD_ASCII_ETX)
        .Const(_SC("Eot"),                  SQMOD_ASCII_EOT)
        .Const(_SC("Enq"),                  SQMOD_ASCII_ENQ)
        .Const(_SC("Ack"),                  SQMOD_ASCII_ACK)
        .Const(_SC("Bel"),                  SQMOD_ASCII_BEL)
        .Const(_SC("Bs"),                   SQMOD_ASCII_BS)
        .Const(_SC("Tab"),                  SQMOD_ASCII_TAB)
        .Const(_SC("Lf"),                   SQMOD_ASCII_LF)
        .Const(_SC("Vt"),                   SQMOD_ASCII_VT)
        .Const(_SC("Ff"),                   SQMOD_ASCII_FF)
        .Const(_SC("Cr"),                   SQMOD_ASCII_CR)
        .Const(_SC("So"),                   SQMOD_ASCII_SO)
        .Const(_SC("Si"),                   SQMOD_ASCII_SI)
        .Const(_SC("Dle"),                  SQMOD_ASCII_DLE)
        .Const(_SC("Dc1"),                  SQMOD_ASCII_DC1)
        .Const(_SC("Dc2"),                  SQMOD_ASCII_DC2)
        .Const(_SC("Dc3"),                  SQMOD_ASCII_DC3)
        .Const(_SC("Dc4"),                  SQMOD_ASCII_DC4)
        .Const(_SC("Nak"),                  SQMOD_ASCII_NAK)
        .Const(_SC("Syn"),                  SQMOD_ASCII_SYN)
        .Const(_SC("Etb"),                  SQMOD_ASCII_ETB)
        .Const(_SC("Can"),                  SQMOD_ASCII_CAN)
        .Const(_SC("Em"),                   SQMOD_ASCII_EM)
        .Const(_SC("Sub"),                  SQMOD_ASCII_SUB)
        .Const(_SC("Esc"),                  SQMOD_ASCII_ESC)
        .Const(_SC("Fs"),                   SQMOD_ASCII_FS)
        .Const(_SC("Gs"),                   SQMOD_ASCII_GS)
        .Const(_SC("Rs"),                   SQMOD_ASCII_RS)
        .Const(_SC("Us"),                   SQMOD_ASCII_US)
        .Const(_SC("Space"),                SQMOD_ASCII_SPACE)
        .Const(_SC("Exclamation_point"),    SQMOD_ASCII_EXCLAMATION_POINT)
        .Const(_SC("Double_quotes"),        SQMOD_ASCII_DOUBLE_QUOTES)
        .Const(_SC("Number_sign"),          SQMOD_ASCII_NUMBER_SIGN)
        .Const(_SC("Dollar_sign"),          SQMOD_ASCII_DOLLAR_SIGN)
        .Const(_SC("Percent_sign"),         SQMOD_ASCII_PERCENT_SIGN)
        .Const(_SC("Ampersand"),            SQMOD_ASCII_AMPERSAND)
        .Const(_SC("Single_quote"),         SQMOD_ASCII_SINGLE_QUOTE)
        .Const(_SC("Opening_parenthesis"),  SQMOD_ASCII_OPENING_PARENTHESIS)
        .Const(_SC("Closing_parenthesis"),  SQMOD_ASCII_CLOSING_PARENTHESIS)
        .Const(_SC("Asterisk"),             SQMOD_ASCII_ASTERISK)
        .Const(_SC("Plus"),                 SQMOD_ASCII_PLUS)
        .Const(_SC("Comma"),                SQMOD_ASCII_COMMA)
        .Const(_SC("Minus"),                SQMOD_ASCII_MINUS)
        .Const(_SC("Period"),               SQMOD_ASCII_PERIOD)
        .Const(_SC("Slash"),                SQMOD_ASCII_SLASH)
        .Const(_SC("Zero"),                 SQMOD_ASCII_ZERO)
        .Const(_SC("One"),                  SQMOD_ASCII_ONE)
        .Const(_SC("Two"),                  SQMOD_ASCII_TWO)
        .Const(_SC("Three"),                SQMOD_ASCII_THREE)
        .Const(_SC("Four"),                 SQMOD_ASCII_FOUR)
        .Const(_SC("Five"),                 SQMOD_ASCII_FIVE)
        .Const(_SC("Six"),                  SQMOD_ASCII_SIX)
        .Const(_SC("Seven"),                SQMOD_ASCII_SEVEN)
        .Const(_SC("Eight"),                SQMOD_ASCII_EIGHT)
        .Const(_SC("Nine"),                 SQMOD_ASCII_NINE)
        .Const(_SC("Colon"),                SQMOD_ASCII_COLON)
        .Const(_SC("Emicolon"),             SQMOD_ASCII_EMICOLON)
        .Const(_SC("Less_than_sign"),       SQMOD_ASCII_LESS_THAN_SIGN)
        .Const(_SC("Equal_sign"),           SQMOD_ASCII_EQUAL_SIGN)
        .Const(_SC("Greater_than_sign"),    SQMOD_ASCII_GREATER_THAN_SIGN)
        .Const(_SC("Question_mark"),        SQMOD_ASCII_QUESTION_MARK)
        .Const(_SC("At"),                   SQMOD_ASCII_AT)
        .Const(_SC("Upper_a"),              SQMOD_ASCII_UPPER_A)
        .Const(_SC("Upper_b"),              SQMOD_ASCII_UPPER_B)
        .Const(_SC("Upper_c"),              SQMOD_ASCII_UPPER_C)
        .Const(_SC("Upper_d"),              SQMOD_ASCII_UPPER_D)
        .Const(_SC("Upper_e"),              SQMOD_ASCII_UPPER_E)
        .Const(_SC("Upper_f"),              SQMOD_ASCII_UPPER_F)
        .Const(_SC("Upper_g"),              SQMOD_ASCII_UPPER_G)
        .Const(_SC("Upper_h"),              SQMOD_ASCII_UPPER_H)
        .Const(_SC("Upper_i"),              SQMOD_ASCII_UPPER_I)
        .Const(_SC("Upper_j"),              SQMOD_ASCII_UPPER_J)
        .Const(_SC("Upper_k"),              SQMOD_ASCII_UPPER_K)
        .Const(_SC("Upper_l"),              SQMOD_ASCII_UPPER_L)
        .Const(_SC("Upper_m"),              SQMOD_ASCII_UPPER_M)
        .Const(_SC("Upper_n"),              SQMOD_ASCII_UPPER_N)
        .Const(_SC("Upper_o"),              SQMOD_ASCII_UPPER_O)
        .Const(_SC("Upper_p"),              SQMOD_ASCII_UPPER_P)
        .Const(_SC("Upper_q"),              SQMOD_ASCII_UPPER_Q)
        .Const(_SC("Upper_r"),              SQMOD_ASCII_UPPER_R)
        .Const(_SC("Upper_s"),              SQMOD_ASCII_UPPER_S)
        .Const(_SC("Upper_t"),              SQMOD_ASCII_UPPER_T)
        .Const(_SC("Upper_u"),              SQMOD_ASCII_UPPER_U)
        .Const(_SC("Upper_v"),              SQMOD_ASCII_UPPER_V)
        .Const(_SC("Upper_w"),              SQMOD_ASCII_UPPER_W)
        .Const(_SC("Upper_x"),              SQMOD_ASCII_UPPER_X)
        .Const(_SC("Upper_y"),              SQMOD_ASCII_UPPER_Y)
        .Const(_SC("Upper_z"),              SQMOD_ASCII_UPPER_Z)
        .Const(_SC("Opening_bracket"),      SQMOD_ASCII_OPENING_BRACKET)
        .Const(_SC("Backslash"),            SQMOD_ASCII_BACKSLASH)
        .Const(_SC("Closing_bracket"),      SQMOD_ASCII_CLOSING_BRACKET)
        .Const(_SC("Caret"),                SQMOD_ASCII_CARET)
        .Const(_SC("Underscore"),           SQMOD_ASCII_UNDERSCORE)
        .Const(_SC("Grave_accent"),         SQMOD_ASCII_GRAVE_ACCENT)
        .Const(_SC("Lower_a"),              SQMOD_ASCII_LOWER_A)
        .Const(_SC("Lower_b"),              SQMOD_ASCII_LOWER_B)
        .Const(_SC("Lower_c"),              SQMOD_ASCII_LOWER_C)
        .Const(_SC("Lower_d"),              SQMOD_ASCII_LOWER_D)
        .Const(_SC("Lower_e"),              SQMOD_ASCII_LOWER_E)
        .Const(_SC("Lower_f"),              SQMOD_ASCII_LOWER_F)
        .Const(_SC("Lower_g"),              SQMOD_ASCII_LOWER_G)
        .Const(_SC("Lower_h"),              SQMOD_ASCII_LOWER_H)
        .Const(_SC("Lower_i"),              SQMOD_ASCII_LOWER_I)
        .Const(_SC("Lower_j"),              SQMOD_ASCII_LOWER_J)
        .Const(_SC("Lower_k"),              SQMOD_ASCII_LOWER_K)
        .Const(_SC("Lower_l"),              SQMOD_ASCII_LOWER_L)
        .Const(_SC("Lower_m"),              SQMOD_ASCII_LOWER_M)
        .Const(_SC("Lower_n"),              SQMOD_ASCII_LOWER_N)
        .Const(_SC("Lower_o"),              SQMOD_ASCII_LOWER_O)
        .Const(_SC("Lower_p"),              SQMOD_ASCII_LOWER_P)
        .Const(_SC("Lower_q"),              SQMOD_ASCII_LOWER_Q)
        .Const(_SC("Lower_r"),              SQMOD_ASCII_LOWER_R)
        .Const(_SC("Lower_s"),              SQMOD_ASCII_LOWER_S)
        .Const(_SC("Lower_t"),              SQMOD_ASCII_LOWER_T)
        .Const(_SC("Lower_u"),              SQMOD_ASCII_LOWER_U)
        .Const(_SC("Lower_v"),              SQMOD_ASCII_LOWER_V)
        .Const(_SC("Lower_w"),              SQMOD_ASCII_LOWER_W)
        .Const(_SC("Lower_x"),              SQMOD_ASCII_LOWER_X)
        .Const(_SC("Lower_y"),              SQMOD_ASCII_LOWER_Y)
        .Const(_SC("Lower_z"),              SQMOD_ASCII_LOWER_Z)
        .Const(_SC("Opening_brace"),        SQMOD_ASCII_OPENING_BRACE)
        .Const(_SC("Vertical_bar"),         SQMOD_ASCII_VERTICAL_BAR)
        .Const(_SC("Closing_brace"),        SQMOD_ASCII_CLOSING_BRACE)
        .Const(_SC("Tilde"),                SQMOD_ASCII_TILDE)
        .Const(_SC("Undefined"),            SQMOD_ASCII_UNDEFINED)
        .Const(_SC("Max"),                  SQMOD_ASCII_MAX)
    );
}

} // Namespace:: SqMod
