mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-30 00:37:58 +03:00
1606 lines
52 KiB
C++
1606 lines
52 KiB
C++
#include "framework.h"
|
|
#include "GameLogicScript.h"
|
|
#include "items.h"
|
|
#include "box.h"
|
|
#include "lara.h"
|
|
#include "savegame.h"
|
|
#include "lot.h"
|
|
#include "sound.h"
|
|
#include "setup.h"
|
|
#include "level.h"
|
|
using namespace std;
|
|
extern GameFlow* g_GameFlow;
|
|
GameScript* g_GameScript;
|
|
bool WarningsAsErrors = false;
|
|
|
|
GameScript::GameScript(sol::state* lua)
|
|
{
|
|
m_lua = lua;
|
|
|
|
// Add constants
|
|
//ExecuteScript("Scripts\\Constants.lua");
|
|
|
|
m_lua->new_enum<GAME_OBJECT_ID>("Object", {
|
|
{"LARA", ID_LARA},
|
|
{"LARA_EXTRA_ANIMS", ID_LARA_EXTRA_ANIMS},
|
|
{"PISTOLS_ANIM", ID_PISTOLS_ANIM},
|
|
{"UZI_ANIM", ID_UZI_ANIM},
|
|
{"SHOTGUN_ANIM", ID_SHOTGUN_ANIM},
|
|
{"REVOLVER_ANIM", ID_REVOLVER_ANIM},
|
|
{"CROSSBOW_ANIM", ID_CROSSBOW_ANIM},
|
|
{"HK_ANIM", ID_HK_ANIM},
|
|
{"GRENADE_ANIM", ID_GRENADE_ANIM},
|
|
{"ROCKET_ANIM", ID_ROCKET_ANIM},
|
|
{"HARPOON_ANIM", ID_HARPOON_ANIM},
|
|
{"LARA_FLARE_ANIM", ID_LARA_FLARE_ANIM},
|
|
{"LARA_SKIN", ID_LARA_SKIN},
|
|
{"LARA_SKIN_JOINTS", ID_LARA_SKIN_JOINTS},
|
|
{"LARA_SCREAM", ID_LARA_SCREAM},
|
|
{"LARA_CROSSBOW_LASER", ID_LARA_CROSSBOW_LASER},
|
|
{"LARA_REVOLVER_LASER", ID_LARA_REVOLVER_LASER},
|
|
{"LARA_HOLSTERS", ID_LARA_HOLSTERS},
|
|
{"LARA_HOLSTERS_PISTOLS", ID_LARA_HOLSTERS_PISTOLS},
|
|
{"LARA_HOLSTERS_UZIS", ID_LARA_HOLSTERS_UZIS},
|
|
{"LARA_HOLSTERS_REVOLVER", ID_LARA_HOLSTERS_REVOLVER},
|
|
{"LARA_SPEECH_HEAD1", ID_LARA_SPEECH_HEAD1},
|
|
{"LARA_SPEECH_HEAD2", ID_LARA_SPEECH_HEAD2},
|
|
{"LARA_SPEECH_HEAD3", ID_LARA_SPEECH_HEAD3},
|
|
{"LARA_SPEECH_HEAD4", ID_LARA_SPEECH_HEAD4},
|
|
{"ACTOR1_SPEECH_HEAD1", ID_ACTOR1_SPEECH_HEAD1},
|
|
{"ACTOR1_SPEECH_HEAD2", ID_ACTOR1_SPEECH_HEAD2},
|
|
{"ACTOR2_SPEECH_HEAD1", ID_ACTOR2_SPEECH_HEAD1},
|
|
{"ACTOR2_SPEECH_HEAD2", ID_ACTOR2_SPEECH_HEAD2},
|
|
{"LARA_EXTRA_MESH1", ID_LARA_EXTRA_MESH1},
|
|
{"LARA_EXTRA_MESH2", ID_LARA_EXTRA_MESH2},
|
|
{"LARA_EXTRA_MESH3", ID_LARA_EXTRA_MESH3},
|
|
{"LARA_WATER_MESH", ID_LARA_WATER_MESH},
|
|
{"LARA_PETROL_MESH", ID_LARA_PETROL_MESH},
|
|
{"LARA_DIRT_MESH", ID_LARA_DIRT_MESH},
|
|
{"LARA_CROWBAR_ANIM", ID_LARA_CROWBAR_ANIM},
|
|
{"LARA_TORCH_ANIM", ID_LARA_TORCH_ANIM},
|
|
{"LARA_HAIR", ID_LARA_HAIR},
|
|
{"SNOWMOBILE_LARA_ANIMS", ID_SNOWMOBILE_LARA_ANIMS},
|
|
{"SNOWMOBILE", ID_SNOWMOBILE},
|
|
{"QUAD_LARA_ANIMS", ID_QUAD_LARA_ANIMS},
|
|
{"QUAD", ID_QUAD},
|
|
{"SPEEDBOAT_LARA_ANIMS", ID_SPEEDBOAT_LARA_ANIMS},
|
|
{"SPEEDBOAT", ID_SPEEDBOAT},
|
|
{"KAYAK_LARA_ANIMS", ID_KAYAK_LARA_ANIMS},
|
|
{"KAYAK", ID_KAYAK},
|
|
{"UPV_LARA_ANIMS", ID_UPV_LARA_ANIMS},
|
|
{"UPV", ID_UPV},
|
|
{"MINECART_LARA_ANIMS", ID_MINECART_LARA_ANIMS},
|
|
{"MINECART", ID_MINECART},
|
|
{"JEEP_LARA_ANIMS", ID_JEEP_LARA_ANIMS},
|
|
{"JEEP", ID_JEEP},
|
|
{"MOTORBIKE_LARA_ANIMS", ID_MOTORBIKE_LARA_ANIMS},
|
|
{"MOTORBIKE", ID_MOTORBIKE},
|
|
{"RUBBER_BOAT_LARA_ANIMS", ID_RUBBER_BOAT_LARA_ANIMS},
|
|
{"RUBBER_BOAT_BOAT", ID_RUBBER_BOAT_BOAT},
|
|
{"VEHICLE_SMASHABLE_FLOOR", ID_VEHICLE_SMASHABLE_FLOOR},
|
|
{"VEHICLE_SMASHABLE_WALL", ID_VEHICLE_SMASHABLE_WALL},
|
|
{"WOLF", ID_WOLF},
|
|
{"BEAR", ID_BEAR},
|
|
{"APE", ID_APE},
|
|
{"SMALL_SPIDER", ID_SMALL_SPIDER},
|
|
{"BIG_SPIDER", ID_BIG_SPIDER},
|
|
{"CROW", ID_CROW},
|
|
{"TIGER", ID_TIGER},
|
|
{"EAGLE", ID_EAGLE},
|
|
{"RAPTOR", ID_RAPTOR},
|
|
{"TYRANNOSAUR", ID_TYRANNOSAUR},
|
|
{"COBRA", ID_COBRA},
|
|
{"MONKEY", ID_MONKEY},
|
|
{"WHALE", ID_WHALE},
|
|
{"SMALL_DINOSAUR", ID_SMALL_DINOSAUR},
|
|
{"FISH_EMITTER", ID_FISH_EMITTER},
|
|
{"RAT", ID_RAT},
|
|
{"BIG_RAT", ID_BIG_RAT},
|
|
{"CROCODILE", ID_CROCODILE},
|
|
{"BAT", ID_BAT},
|
|
{"SPHINX", ID_SPHINX},
|
|
{"WILD_BOAR", ID_WILD_BOAR},
|
|
{"HARPY", ID_HARPY},
|
|
{"BIG_SCORPION", ID_BIG_SCORPION},
|
|
{"SMALL_SCORPION", ID_SMALL_SCORPION},
|
|
{"BABOON_NORMAL", ID_BABOON_NORMAL},
|
|
{"BABOON_INV", ID_BABOON_INV},
|
|
{"BABOON_SILENT", ID_BABOON_SILENT},
|
|
{"LITTLE_BEETLE", ID_LITTLE_BEETLE},
|
|
{"LOCUSTS", ID_LOCUSTS},
|
|
{"SHARK", ID_SHARK},
|
|
{"HUSKIE", ID_HUSKIE},
|
|
{"DOG", ID_DOG},
|
|
{"BATS_EMITTER", ID_BATS_EMITTER},
|
|
{"RATS_EMITTER", ID_RATS_EMITTER},
|
|
{"SPIDERS_EMITTER", ID_SPIDERS_EMITTER},
|
|
{"LION", ID_LION},
|
|
{"DOBERMAN", ID_DOBERMAN},
|
|
{"HAMMERHEAD", ID_HAMMERHEAD},
|
|
{"CROCODILE_GOD", ID_CROCODILE_GOD},
|
|
{"SCUBA_HARPOON", ID_SCUBA_HARPOON},
|
|
{"SCUBA_DIVER", ID_SCUBA_DIVER},
|
|
{"GOON_SILENCER1", ID_GOON_SILENCER1},
|
|
{"GOON_SILENCER2", ID_GOON_SILENCER2},
|
|
{"GOON_SILENCER3", ID_GOON_SILENCER3},
|
|
{"BARRACUDA", ID_BARRACUDA},
|
|
{"WORKER_SHOTGUN", ID_WORKER_SHOTGUN},
|
|
{"WORKER_MACHINEGUN", ID_WORKER_MACHINEGUN},
|
|
{"WORKER_DUAL_REVOLVER", ID_WORKER_DUAL_REVOLVER},
|
|
{"WORKER_FLAMETHROWER", ID_WORKER_FLAMETHROWER},
|
|
{"MONK1", ID_MONK1},
|
|
{"MONK2", ID_MONK2},
|
|
{"KNIFETHROWER", ID_KNIFETHROWER},
|
|
{"KNIFETHROWER_KNIFE", ID_KNIFETHROWER_KNIFE},
|
|
{"MERCENARY_UZI", ID_MERCENARY_UZI},
|
|
{"MERCENARY_AUTOPISTOLS1", ID_MERCENARY_AUTOPISTOLS1},
|
|
{"MERCENARY_AUTOPISTOLS2", ID_MERCENARY_AUTOPISTOLS2},
|
|
{"SNOWMOBILE_GUN", ID_SNOWMOBILE_GUN},
|
|
{"SNOWMOBILE_DRIVER", ID_SNOWMOBILE_DRIVER},
|
|
{"FLAMETHROWER_BADDY", ID_FLAMETHROWER_BADDY},
|
|
{"TRIBESMAN_WITH_AX", ID_TRIBESMAN_WITH_AX},
|
|
{"TRIBESMAN_WITH_DARTS", ID_TRIBESMAN_WITH_DARTS},
|
|
{"MP_WITH_STICK", ID_MP_WITH_STICK},
|
|
{"MP_WITH_GUN", ID_MP_WITH_GUN},
|
|
{"BADDY1", ID_BADDY1},
|
|
{"BADDY2", ID_BADDY2},
|
|
{"SAS_CAIRO", ID_SAS_CAIRO},
|
|
{"SAS_DYING", ID_SAS_DYING},
|
|
{"SAS_CAPTAIN", ID_SAS_CAPTAIN},
|
|
{"SAS_DRAG_BLOKE", ID_SAS_DRAG_BLOKE},
|
|
{"GUIDE", ID_GUIDE},
|
|
{"VON_CROY", ID_VON_CROY},
|
|
{"TROOPS", ID_TROOPS},
|
|
{"SAS", ID_SAS},
|
|
{"SWAT", ID_SWAT},
|
|
{"SWAT_PLUS", ID_SWAT_PLUS},
|
|
{"GUARD1", ID_GUARD1},
|
|
{"GUARD_LASER", ID_GUARD_LASER},
|
|
{"LARSON", ID_LARSON},
|
|
{"PIERRE", ID_PIERRE},
|
|
{"MAFIA", ID_MAFIA},
|
|
{"MAFIA2", ID_MAFIA2},
|
|
{"GUARD2", ID_GUARD2},
|
|
{"GUARD3", ID_GUARD3},
|
|
{"GLADIATOR", ID_GLADIATOR},
|
|
{"HITMAN", ID_HITMAN},
|
|
{"SNIPER", ID_SNIPER},
|
|
{"CHEF", ID_CHEF},
|
|
{"WINGED_MUMMY", ID_WINGED_MUMMY},
|
|
{"CENTAUR_MUTANT", ID_CENTAUR_MUTANT},
|
|
{"DOPPELGANGER", ID_LARA_DOPPELGANGER},
|
|
{"NATLA", ID_NATLA},
|
|
{"WINGED_NATLA", ID_WINGED_NATLA},
|
|
{"GIANT_MUTANT", ID_GIANT_MUTANT},
|
|
{"PROJ_NATLA", ID_PROJ_NATLA},
|
|
{"PROJ_SHARD", ID_PROJ_SHARD},
|
|
{"PROJ_BOMB", ID_PROJ_BOMB},
|
|
{"YETI", ID_YETI},
|
|
{"BIRDMONSTER", ID_BIRDMONSTER},
|
|
{"MARCO_BARTOLI", ID_MARCO_BARTOLI},
|
|
{"DRAGON_FRONT", ID_DRAGON_FRONT},
|
|
{"DRAGON_BACK", ID_DRAGON_BACK},
|
|
{"DRAGON_BONE_FRONT", ID_DRAGON_BONE_FRONT},
|
|
{"DRAGON_BONE_BACK", ID_DRAGON_BONE_BACK},
|
|
{"SPHERE_OF_DOOM", ID_SPHERE_OF_DOOM},
|
|
{"SPHERE_OF_DOOM2", ID_SPHERE_OF_DOOM2},
|
|
{"SPHERE_OF_DOOM3", ID_SPHERE_OF_DOOM3},
|
|
{"CIVVIE", ID_CIVVIE},
|
|
{"SPEAR_GUARDIAN", ID_SPEAR_GUARDIAN},
|
|
{"SPEAR_GUARDIAN_STATUE", ID_SPEAR_GUARDIAN_STATUE},
|
|
{"SWORD_GUARDIAN", ID_SWORD_GUARDIAN},
|
|
{"SWORD_GUARDIAN_STATUE", ID_SWORD_GUARDIAN_STATUE},
|
|
{"SHIVA", ID_SHIVA},
|
|
{"SHIVA_STATUE", ID_SHIVA_STATUE},
|
|
{"TRIBEBOSS", ID_TRIBEBOSS},
|
|
{"CIVVY", ID_CIVVY},
|
|
{"MUTANT2", ID_MUTANT2},
|
|
{"LIZARD", ID_LIZARD},
|
|
{"TONY_BOSS", ID_TONY_BOSS},
|
|
{"TONY_BOSS_FLAME", ID_TONY_BOSS_FLAME},
|
|
{"PUNA_BOSS", ID_PUNA_BOSS},
|
|
{"SOPHIA_LEE_BOSS", ID_SOPHIA_LEE_BOSS},
|
|
{"LASER_BOLT", ID_LASER_BOLT},
|
|
{"SKELETON", ID_SKELETON},
|
|
{"MUMMY", ID_MUMMY},
|
|
{"ENEMY_JEEP", ID_ENEMY_JEEP},
|
|
{"HORSE", ID_HORSE},
|
|
{"HORSEMAN", ID_HORSEMAN},
|
|
{"DEMIGOD1", ID_DEMIGOD1},
|
|
{"DEMIGOD2", ID_DEMIGOD2},
|
|
{"DEMIGOD3", ID_DEMIGOD3},
|
|
{"SETHA", ID_SETHA},
|
|
{"KNIGHT_TEMPLAR", ID_KNIGHT_TEMPLAR},
|
|
{"AHMET", ID_AHMET},
|
|
{"BIG_BEETLE", ID_BIG_BEETLE},
|
|
{"JEAN_YVES", ID_JEAN_YVES},
|
|
{"WRAITH1", ID_WRAITH1},
|
|
{"WRAITH2", ID_WRAITH2},
|
|
{"WRAITH3", ID_WRAITH3},
|
|
{"WRAITH4", ID_WRAITH4},
|
|
{"LARA_DOUBLE", ID_LARA_DOUBLE},
|
|
{"COMPY", ID_COMPY},
|
|
{"HYDRA", ID_HYDRA},
|
|
{"LASERHEAD", ID_LASERHEAD},
|
|
{"SCIENTIST", ID_SCIENTIST},
|
|
{"MERCENARY", ID_MERCENARY},
|
|
{"WILLOWISP", ID_WILLOWISP},
|
|
{"INVISIBLE_GHOST", ID_INVISIBLE_GHOST},
|
|
{"REAPER", ID_REAPER},
|
|
{"BROWN_BEAST", ID_BROWN_BEAST},
|
|
{"ATTACK_SUB", ID_ATTACK_SUB},
|
|
{"IMP", ID_IMP},
|
|
{"IMP_ROCK", ID_IMP_ROCK},
|
|
{"GUNSHIP", ID_GUNSHIP},
|
|
{"AUTOGUN", ID_AUTOGUN},
|
|
{"ROMAN_GOD1", ID_ROMAN_GOD1},
|
|
{"ROMAN_GOD2", ID_ROMAN_GOD2},
|
|
{"LAGOON_WITCH", ID_LAGOON_WITCH},
|
|
{"BOSS_SHIELD", ID_BOSS_SHIELD},
|
|
{"BOSS_EXPLOSION_SHOCKWAVE", ID_BOSS_EXPLOSION_SHOCKWAVE},
|
|
{"BOSS_EXPLOSION_RING", ID_BOSS_EXPLOSION_RING},
|
|
{"SPRINGBOARD", ID_SPRINGBOARD},
|
|
{"ROLLING_SPINDLE", ID_ROLLING_SPINDLE},
|
|
{"DISK_SHOOTER", ID_DISK_SHOOTER},
|
|
{"DISK", ID_DISK},
|
|
{"WALL_MOUNTED_BLADE", ID_WALL_MOUNTED_BLADE},
|
|
{"STATUE_WITH_BLADE", ID_STATUE_WITH_BLADE},
|
|
{"COG", ID_COG},
|
|
{"SPIKEBALL", ID_SPIKEBALL},
|
|
{"FLOOR_4BLADES", ID_FLOOR_4BLADES},
|
|
{"CEILING_4BLADES", ID_CEILING_4BLADES},
|
|
{"CATWALK_BLADE", ID_CATWALK_BLADE},
|
|
{"SETH_BLADE", ID_SETH_BLADE},
|
|
{"PLINTH_BLADE", ID_PLINTH_BLADE},
|
|
{"SLICER_DICER", ID_SLICER_DICER},
|
|
{"BIRD_BLADE", ID_BIRD_BLADE},
|
|
{"CHAIN", ID_CHAIN},
|
|
{"PLOUGH", ID_PLOUGH},
|
|
{"STARGATE", ID_STARGATE},
|
|
{"SPIKY_FLOOR", ID_SPIKY_FLOOR},
|
|
{"SPIKY_WALL", ID_SPIKY_WALL},
|
|
{"SPIKY_CEILING", ID_SPIKY_CEILING},
|
|
{"TEETH_SPIKES", ID_TEETH_SPIKES},
|
|
{"JOBY_SPIKES", ID_JOBY_SPIKES},
|
|
{"SENTRY_GUN", ID_SENTRY_GUN},
|
|
{"MAPPER", ID_MAPPER},
|
|
{"MOVING_BLADE", ID_MOVING_BLADE},
|
|
{"ELEMENT_PUZZLE", ID_ELEMENT_PUZZLE},
|
|
{"LIGHTING_CONDUCTOR", ID_LIGHTING_CONDUCTOR},
|
|
{"HAMMER", ID_HAMMER},
|
|
{"OBELISK", ID_OBELISK},
|
|
{"WHEEL_OF_FORTUNE", ID_WHEEL_OF_FORTUNE},
|
|
{"GAME_PIECE1", ID_GAME_PIECE1},
|
|
{"GAME_PIECE2", ID_GAME_PIECE2},
|
|
{"GAME_PIECE3", ID_GAME_PIECE3},
|
|
{"RAISING_COG", ID_RAISING_COG},
|
|
{"MINE", ID_MINE},
|
|
{"SCALES", ID_SCALES},
|
|
{"ROME_HAMMER", ID_ROME_HAMMER},
|
|
{"FLAME", ID_FLAME},
|
|
{"FLAME_EMITTER", ID_FLAME_EMITTER},
|
|
{"FLAME_EMITTER2", ID_FLAME_EMITTER2},
|
|
{"FLAME_EMITTER3", ID_FLAME_EMITTER3},
|
|
{"BURNING_ROOTS", ID_BURNING_ROOTS},
|
|
{"ROPE", ID_ROPE},
|
|
{"FIREROPE", ID_FIREROPE},
|
|
{"POLEROPE", ID_POLEROPE},
|
|
{"ELECTRICAL_CABLES", ID_ELECTRICAL_CABLES},
|
|
{"BURNING_FLOOR", ID_BURNING_FLOOR},
|
|
{"DARTS", ID_DARTS},
|
|
{"DART_EMITTER", ID_DART_EMITTER},
|
|
{"HOMING_DART_EMITTER", ID_HOMING_DART_EMITTER},
|
|
{"FALLING_CEILING", ID_FALLING_CEILING},
|
|
{"FALLING_BLOCK", ID_FALLING_BLOCK},
|
|
{"FALLING_BLOCK2", ID_FALLING_BLOCK2},
|
|
{"CRUMBLING_FLOOR", ID_CRUMBLING_FLOOR},
|
|
{"TRAPDOOR1", ID_TRAPDOOR1},
|
|
{"TRAPDOOR2", ID_TRAPDOOR2},
|
|
{"TRAPDOOR3", ID_TRAPDOOR3},
|
|
{"FLOOR_TRAPDOOR1", ID_FLOOR_TRAPDOOR1},
|
|
{"FLOOR_TRAPDOOR2", ID_FLOOR_TRAPDOOR2},
|
|
{"CEILING_TRAPDOOR1", ID_CEILING_TRAPDOOR1},
|
|
{"CEILING_TRAPDOOR2", ID_CEILING_TRAPDOOR2},
|
|
{"SCALING_TRAPDOOR", ID_SCALING_TRAPDOOR},
|
|
{"ROLLINGBALL", ID_ROLLINGBALL},
|
|
{"ROLLINGBARREL", ID_ROLLINGBARREL},
|
|
{"PROPELLER_H", ID_PROPELLER_H},
|
|
{"PROPELLER_V", ID_PROPELLER_V},
|
|
{"ONEBLOCK_PLATFORM", ID_ONEBLOCK_PLATFORM},
|
|
{"TWOBLOCK_PLATFORM", ID_TWOBLOCK_PLATFORM},
|
|
{"RAISING_BLOCK1", ID_RAISING_BLOCK1},
|
|
{"RAISING_BLOCK2", ID_RAISING_BLOCK2},
|
|
{"RAISING_BLOCK3", ID_RAISING_BLOCK3},
|
|
{"RAISING_BLOCK4", ID_RAISING_BLOCK4},
|
|
{"PUSHABLE_OBJECT1", ID_PUSHABLE_OBJECT1},
|
|
{"PUSHABLE_OBJECT2", ID_PUSHABLE_OBJECT2},
|
|
{"PUSHABLE_OBJECT3", ID_PUSHABLE_OBJECT3},
|
|
{"PUSHABLE_OBJECT4", ID_PUSHABLE_OBJECT4},
|
|
{"PUSHABLE_OBJECT5", ID_PUSHABLE_OBJECT5},
|
|
{"PUSHABLE_OBJECT6", ID_PUSHABLE_OBJECT6},
|
|
{"PUSHABLE_OBJECT7", ID_PUSHABLE_OBJECT7},
|
|
{"PUSHABLE_OBJECT8", ID_PUSHABLE_OBJECT8},
|
|
{"PUSHABLE_OBJECT9", ID_PUSHABLE_OBJECT9},
|
|
{"PUSHABLE_OBJECT10", ID_PUSHABLE_OBJECT10},
|
|
{"WRECKING_BALL", ID_WRECKING_BALL},
|
|
{"ZIPLINE_HANDLE", ID_ZIPLINE_HANDLE},
|
|
{"TORPEDO", ID_TORPEDO},
|
|
{"CHAFF", ID_CHAFF},
|
|
{"ELECTRIC_FENCE", ID_ELECTRIC_FENCE},
|
|
{"LIFT", ID_LIFT},
|
|
{"TIGHT_ROPE", ID_TIGHT_ROPE},
|
|
{"PARALLEL_BARS", ID_PARALLEL_BARS},
|
|
{"XRAY_CONTROLLER", ID_XRAY_CONTROLLER},
|
|
{"PORTAL", ID_PORTAL},
|
|
{"GEN_SLOT1", ID_GEN_SLOT1},
|
|
{"GEN_SLOT2", ID_GEN_SLOT2},
|
|
{"GEN_SLOT3", ID_GEN_SLOT3},
|
|
{"GEN_SLOT4", ID_GEN_SLOT4},
|
|
{"SEARCH_OBJECT1", ID_SEARCH_OBJECT1},
|
|
{"SEARCH_OBJECT2", ID_SEARCH_OBJECT2},
|
|
{"SEARCH_OBJECT3", ID_SEARCH_OBJECT3},
|
|
{"SEARCH_OBJECT4", ID_SEARCH_OBJECT4},
|
|
{"SARCOPHAGUS", ID_SARCOPHAGUS},
|
|
{"ENEMY_PIECE", ID_ENEMY_PIECE},
|
|
{"EXPANDING_PLATFORM", ID_EXPANDING_PLATFORM},
|
|
{"SQUISHY_BLOCK1", ID_SQUISHY_BLOCK1},
|
|
{"SQUISHY_BLOCK2", ID_SQUISHY_BLOCK2},
|
|
{"TRIPWIRE", ID_TRIPWIRE},
|
|
{"MINE_DETECTOR", ID_MINE_DETECTOR},
|
|
{"MAP", ID_MAP},
|
|
{"SECRET_MAP", ID_SECRET_MAP},
|
|
{"SETH_DOOR", ID_SETH_DOOR},
|
|
{"HORUS_STATUE", ID_HORUS_STATUE},
|
|
{"STATUE_PLINTH", ID_STATUE_PLINTH},
|
|
{"PUZZLE_ITEM1", ID_PUZZLE_ITEM1},
|
|
{"PUZZLE_ITEM2", ID_PUZZLE_ITEM2},
|
|
{"PUZZLE_ITEM3", ID_PUZZLE_ITEM3},
|
|
{"PUZZLE_ITEM4", ID_PUZZLE_ITEM4},
|
|
{"PUZZLE_ITEM5", ID_PUZZLE_ITEM5},
|
|
{"PUZZLE_ITEM6", ID_PUZZLE_ITEM6},
|
|
{"PUZZLE_ITEM7", ID_PUZZLE_ITEM7},
|
|
{"PUZZLE_ITEM8", ID_PUZZLE_ITEM8},
|
|
{"PUZZLE_ITEM9", ID_PUZZLE_ITEM9},
|
|
{"PUZZLE_ITEM10", ID_PUZZLE_ITEM10},
|
|
{"PUZZLE_ITEM11", ID_PUZZLE_ITEM11},
|
|
{"PUZZLE_ITEM12", ID_PUZZLE_ITEM12},
|
|
{"PUZZLE_ITEM13", ID_PUZZLE_ITEM13},
|
|
{"PUZZLE_ITEM14", ID_PUZZLE_ITEM14},
|
|
{"PUZZLE_ITEM15", ID_PUZZLE_ITEM15},
|
|
{"PUZZLE_ITEM16", ID_PUZZLE_ITEM16},
|
|
{"PUZZLE_ITEM1_COMBO1", ID_PUZZLE_ITEM1_COMBO1},
|
|
{"PUZZLE_ITEM1_COMBO2", ID_PUZZLE_ITEM1_COMBO2},
|
|
{"PUZZLE_ITEM2_COMBO1", ID_PUZZLE_ITEM2_COMBO1},
|
|
{"PUZZLE_ITEM2_COMBO2", ID_PUZZLE_ITEM2_COMBO2},
|
|
{"PUZZLE_ITEM3_COMBO1", ID_PUZZLE_ITEM3_COMBO1},
|
|
{"PUZZLE_ITEM3_COMBO2", ID_PUZZLE_ITEM3_COMBO2},
|
|
{"PUZZLE_ITEM4_COMBO1", ID_PUZZLE_ITEM4_COMBO1},
|
|
{"PUZZLE_ITEM4_COMBO2", ID_PUZZLE_ITEM4_COMBO2},
|
|
{"PUZZLE_ITEM5_COMBO1", ID_PUZZLE_ITEM5_COMBO1},
|
|
{"PUZZLE_ITEM5_COMBO2", ID_PUZZLE_ITEM5_COMBO2},
|
|
{"PUZZLE_ITEM6_COMBO1", ID_PUZZLE_ITEM6_COMBO1},
|
|
{"PUZZLE_ITEM6_COMBO2", ID_PUZZLE_ITEM6_COMBO2},
|
|
{"PUZZLE_ITEM7_COMBO1", ID_PUZZLE_ITEM7_COMBO1},
|
|
{"PUZZLE_ITEM7_COMBO2", ID_PUZZLE_ITEM7_COMBO2},
|
|
{"PUZZLE_ITEM8_COMBO1", ID_PUZZLE_ITEM8_COMBO1},
|
|
{"PUZZLE_ITEM8_COMBO2", ID_PUZZLE_ITEM8_COMBO2},
|
|
{"PUZZLE_ITEM9_COMBO1", ID_PUZZLE_ITEM9_COMBO1},
|
|
{"PUZZLE_ITEM9_COMBO2", ID_PUZZLE_ITEM9_COMBO2},
|
|
{"PUZZLE_ITEM10_COMBO1", ID_PUZZLE_ITEM10_COMBO1},
|
|
{"PUZZLE_ITEM10_COMBO2", ID_PUZZLE_ITEM10_COMBO2},
|
|
{"PUZZLE_ITEM11_COMBO1", ID_PUZZLE_ITEM11_COMBO1},
|
|
{"PUZZLE_ITEM11_COMBO2", ID_PUZZLE_ITEM11_COMBO2},
|
|
{"PUZZLE_ITEM12_COMBO1", ID_PUZZLE_ITEM12_COMBO1},
|
|
{"PUZZLE_ITEM12_COMBO2", ID_PUZZLE_ITEM12_COMBO2},
|
|
{"PUZZLE_ITEM13_COMBO1", ID_PUZZLE_ITEM13_COMBO1},
|
|
{"PUZZLE_ITEM13_COMBO2", ID_PUZZLE_ITEM13_COMBO2},
|
|
{"PUZZLE_ITEM14_COMBO1", ID_PUZZLE_ITEM14_COMBO1},
|
|
{"PUZZLE_ITEM14_COMBO2", ID_PUZZLE_ITEM14_COMBO2},
|
|
{"PUZZLE_ITEM15_COMBO1", ID_PUZZLE_ITEM15_COMBO1},
|
|
{"PUZZLE_ITEM15_COMBO2", ID_PUZZLE_ITEM15_COMBO2},
|
|
{"PUZZLE_ITEM16_COMBO1", ID_PUZZLE_ITEM16_COMBO1},
|
|
{"PUZZLE_ITEM16_COMBO2", ID_PUZZLE_ITEM16_COMBO2},
|
|
{"KEY_ITEM1", ID_KEY_ITEM1},
|
|
{"KEY_ITEM2", ID_KEY_ITEM2},
|
|
{"KEY_ITEM3", ID_KEY_ITEM3},
|
|
{"KEY_ITEM4", ID_KEY_ITEM4},
|
|
{"KEY_ITEM5", ID_KEY_ITEM5},
|
|
{"KEY_ITEM6", ID_KEY_ITEM6},
|
|
{"KEY_ITEM7", ID_KEY_ITEM7},
|
|
{"KEY_ITEM8", ID_KEY_ITEM8},
|
|
{"KEY_ITEM9", ID_KEY_ITEM9},
|
|
{"KEY_ITEM10", ID_KEY_ITEM10},
|
|
{"KEY_ITEM11", ID_KEY_ITEM11},
|
|
{"KEY_ITEM12", ID_KEY_ITEM12},
|
|
{"KEY_ITEM13", ID_KEY_ITEM13},
|
|
{"KEY_ITEM14", ID_KEY_ITEM14},
|
|
{"KEY_ITEM15", ID_KEY_ITEM15},
|
|
{"KEY_ITEM16", ID_KEY_ITEM16},
|
|
{"KEY_ITEM1_COMBO1", ID_KEY_ITEM1_COMBO1},
|
|
{"KEY_ITEM1_COMBO2", ID_KEY_ITEM1_COMBO2},
|
|
{"KEY_ITEM2_COMBO1", ID_KEY_ITEM2_COMBO1},
|
|
{"KEY_ITEM2_COMBO2", ID_KEY_ITEM2_COMBO2},
|
|
{"KEY_ITEM3_COMBO1", ID_KEY_ITEM3_COMBO1},
|
|
{"KEY_ITEM3_COMBO2", ID_KEY_ITEM3_COMBO2},
|
|
{"KEY_ITEM4_COMBO1", ID_KEY_ITEM4_COMBO1},
|
|
{"KEY_ITEM4_COMBO2", ID_KEY_ITEM4_COMBO2},
|
|
{"KEY_ITEM5_COMBO1", ID_KEY_ITEM5_COMBO1},
|
|
{"KEY_ITEM5_COMBO2", ID_KEY_ITEM5_COMBO2},
|
|
{"KEY_ITEM6_COMBO1", ID_KEY_ITEM6_COMBO1},
|
|
{"KEY_ITEM6_COMBO2", ID_KEY_ITEM6_COMBO2},
|
|
{"KEY_ITEM7_COMBO1", ID_KEY_ITEM7_COMBO1},
|
|
{"KEY_ITEM7_COMBO2", ID_KEY_ITEM7_COMBO2},
|
|
{"KEY_ITEM8_COMBO1", ID_KEY_ITEM8_COMBO1},
|
|
{"KEY_ITEM8_COMBO2", ID_KEY_ITEM8_COMBO2},
|
|
{"KEY_ITEM9_COMBO1", ID_KEY_ITEM9_COMBO1},
|
|
{"KEY_ITEM9_COMBO2", ID_KEY_ITEM9_COMBO2},
|
|
{"KEY_ITEM10_COMBO1", ID_KEY_ITEM10_COMBO1},
|
|
{"KEY_ITEM10_COMBO2", ID_KEY_ITEM10_COMBO2},
|
|
{"KEY_ITEM11_COMBO1", ID_KEY_ITEM11_COMBO1},
|
|
{"KEY_ITEM11_COMBO2", ID_KEY_ITEM11_COMBO2},
|
|
{"KEY_ITEM12_COMBO1", ID_KEY_ITEM12_COMBO1},
|
|
{"KEY_ITEM12_COMBO2", ID_KEY_ITEM12_COMBO2},
|
|
{"KEY_ITEM13_COMBO1", ID_KEY_ITEM13_COMBO1},
|
|
{"KEY_ITEM13_COMBO2", ID_KEY_ITEM13_COMBO2},
|
|
{"KEY_ITEM14_COMBO1", ID_KEY_ITEM14_COMBO1},
|
|
{"KEY_ITEM14_COMBO2", ID_KEY_ITEM14_COMBO2},
|
|
{"KEY_ITEM15_COMBO1", ID_KEY_ITEM15_COMBO1},
|
|
{"KEY_ITEM15_COMBO2", ID_KEY_ITEM15_COMBO2},
|
|
{"KEY_ITEM16_COMBO1", ID_KEY_ITEM16_COMBO1},
|
|
{"KEY_ITEM16_COMBO2", ID_KEY_ITEM16_COMBO2},
|
|
{"PICKUP_ITEM1", ID_PICKUP_ITEM1},
|
|
{"PICKUP_ITEM2", ID_PICKUP_ITEM2},
|
|
{"PICKUP_ITEM3", ID_PICKUP_ITEM3},
|
|
{"PICKUP_ITEM4", ID_PICKUP_ITEM4},
|
|
{"PICKUP_ITEM5", ID_PICKUP_ITEM5},
|
|
{"PICKUP_ITEM6", ID_PICKUP_ITEM6},
|
|
{"PICKUP_ITEM7", ID_PICKUP_ITEM7},
|
|
{"PICKUP_ITEM8", ID_PICKUP_ITEM8},
|
|
{"PICKUP_ITEM9", ID_PICKUP_ITEM9},
|
|
{"PICKUP_ITEM10", ID_PICKUP_ITEM10},
|
|
{"PICKUP_ITEM11", ID_PICKUP_ITEM11},
|
|
{"PICKUP_ITEM12", ID_PICKUP_ITEM12},
|
|
{"PICKUP_ITEM13", ID_PICKUP_ITEM13},
|
|
{"PICKUP_ITEM14", ID_PICKUP_ITEM14},
|
|
{"PICKUP_ITEM15", ID_PICKUP_ITEM15},
|
|
{"PICKUP_ITEM16", ID_PICKUP_ITEM16},
|
|
{"PICKUP_ITEM1_COMBO1", ID_PICKUP_ITEM1_COMBO1},
|
|
{"PICKUP_ITEM1_COMBO2", ID_PICKUP_ITEM1_COMBO2},
|
|
{"PICKUP_ITEM2_COMBO1", ID_PICKUP_ITEM2_COMBO1},
|
|
{"PICKUP_ITEM2_COMBO2", ID_PICKUP_ITEM2_COMBO2},
|
|
{"PICKUP_ITEM3_COMBO1", ID_PICKUP_ITEM3_COMBO1},
|
|
{"PICKUP_ITEM3_COMBO2", ID_PICKUP_ITEM3_COMBO2},
|
|
{"PICKUP_ITEM4_COMBO1", ID_PICKUP_ITEM4_COMBO1},
|
|
{"PICKUP_ITEM4_COMBO2", ID_PICKUP_ITEM4_COMBO2},
|
|
{"PICKUP_ITEM5_COMBO1", ID_PICKUP_ITEM5_COMBO1},
|
|
{"PICKUP_ITEM5_COMBO2", ID_PICKUP_ITEM5_COMBO2},
|
|
{"PICKUP_ITEM6_COMBO1", ID_PICKUP_ITEM6_COMBO1},
|
|
{"PICKUP_ITEM6_COMBO2", ID_PICKUP_ITEM6_COMBO2},
|
|
{"PICKUP_ITEM7_COMBO1", ID_PICKUP_ITEM7_COMBO1},
|
|
{"PICKUP_ITEM7_COMBO2", ID_PICKUP_ITEM7_COMBO2},
|
|
{"PICKUP_ITEM8_COMBO1", ID_PICKUP_ITEM8_COMBO1},
|
|
{"PICKUP_ITEM8_COMBO2", ID_PICKUP_ITEM8_COMBO2},
|
|
{"PICKUP_ITEM9_COMBO1", ID_PICKUP_ITEM9_COMBO1},
|
|
{"PICKUP_ITEM9_COMBO2", ID_PICKUP_ITEM9_COMBO2},
|
|
{"PICKUP_ITEM10_COMBO1", ID_PICKUP_ITEM10_COMBO1},
|
|
{"PICKUP_ITEM10_COMBO2", ID_PICKUP_ITEM10_COMBO2},
|
|
{"PICKUP_ITEM11_COMBO1", ID_PICKUP_ITEM11_COMBO1},
|
|
{"PICKUP_ITEM11_COMBO2", ID_PICKUP_ITEM11_COMBO2},
|
|
{"PICKUP_ITEM12_COMBO1", ID_PICKUP_ITEM12_COMBO1},
|
|
{"PICKUP_ITEM12_COMBO2", ID_PICKUP_ITEM12_COMBO2},
|
|
{"PICKUP_ITEM13_COMBO1", ID_PICKUP_ITEM13_COMBO1},
|
|
{"PICKUP_ITEM13_COMBO2", ID_PICKUP_ITEM13_COMBO2},
|
|
{"PICKUP_ITEM14_COMBO1", ID_PICKUP_ITEM14_COMBO1},
|
|
{"PICKUP_ITEM14_COMBO2", ID_PICKUP_ITEM14_COMBO2},
|
|
{"PICKUP_ITEM15_COMBO1", ID_PICKUP_ITEM15_COMBO1},
|
|
{"PICKUP_ITEM15_COMBO2", ID_PICKUP_ITEM15_COMBO2},
|
|
{"PICKUP_ITEM16_COMBO1", ID_PICKUP_ITEM16_COMBO1},
|
|
{"PICKUP_ITEM16_COMBO2", ID_PICKUP_ITEM16_COMBO2},
|
|
{"EXAMINE1", ID_EXAMINE1},
|
|
{"EXAMINE2", ID_EXAMINE2},
|
|
{"EXAMINE3", ID_EXAMINE3},
|
|
{"EXAMINE4", ID_EXAMINE4},
|
|
{"EXAMINE5", ID_EXAMINE5},
|
|
{"EXAMINE6", ID_EXAMINE6},
|
|
{"EXAMINE7", ID_EXAMINE7},
|
|
{"EXAMINE8", ID_EXAMINE8},
|
|
{"EXAMINE1_COMBO1", ID_EXAMINE1_COMBO1},
|
|
{"EXAMINE1_COMBO2", ID_EXAMINE1_COMBO2},
|
|
{"EXAMINE2_COMBO1", ID_EXAMINE2_COMBO1},
|
|
{"EXAMINE2_COMBO2", ID_EXAMINE2_COMBO2},
|
|
{"EXAMINE3_COMBO1", ID_EXAMINE3_COMBO1},
|
|
{"EXAMINE3_COMBO2", ID_EXAMINE3_COMBO2},
|
|
{"EXAMINE4_COMBO1", ID_EXAMINE4_COMBO1},
|
|
{"EXAMINE4_COMBO2", ID_EXAMINE4_COMBO2},
|
|
{"EXAMINE5_COMBO1", ID_EXAMINE5_COMBO1},
|
|
{"EXAMINE5_COMBO2", ID_EXAMINE5_COMBO2},
|
|
{"EXAMINE6_COMBO1", ID_EXAMINE6_COMBO1},
|
|
{"EXAMINE6_COMBO2", ID_EXAMINE6_COMBO2},
|
|
{"EXAMINE7_COMBO1", ID_EXAMINE7_COMBO1},
|
|
{"EXAMINE7_COMBO2", ID_EXAMINE7_COMBO2},
|
|
{"EXAMINE8_COMBO1", ID_EXAMINE8_COMBO1},
|
|
{"EXAMINE8_COMBO2", ID_EXAMINE8_COMBO2},
|
|
{"PUZZLE_HOLE1", ID_PUZZLE_HOLE1},
|
|
{"PUZZLE_HOLE2", ID_PUZZLE_HOLE2},
|
|
{"PUZZLE_HOLE3", ID_PUZZLE_HOLE3},
|
|
{"PUZZLE_HOLE4", ID_PUZZLE_HOLE4},
|
|
{"PUZZLE_HOLE5", ID_PUZZLE_HOLE5},
|
|
{"PUZZLE_HOLE6", ID_PUZZLE_HOLE6},
|
|
{"PUZZLE_HOLE7", ID_PUZZLE_HOLE7},
|
|
{"PUZZLE_HOLE8", ID_PUZZLE_HOLE8},
|
|
{"PUZZLE_HOLE9", ID_PUZZLE_HOLE9},
|
|
{"PUZZLE_HOLE10", ID_PUZZLE_HOLE10},
|
|
{"PUZZLE_HOLE11", ID_PUZZLE_HOLE11},
|
|
{"PUZZLE_HOLE12", ID_PUZZLE_HOLE12},
|
|
{"PUZZLE_HOLE13", ID_PUZZLE_HOLE13},
|
|
{"PUZZLE_HOLE14", ID_PUZZLE_HOLE14},
|
|
{"PUZZLE_HOLE15", ID_PUZZLE_HOLE15},
|
|
{"PUZZLE_HOLE16", ID_PUZZLE_HOLE16},
|
|
{"PUZZLE_DONE1", ID_PUZZLE_DONE1},
|
|
{"PUZZLE_DONE2", ID_PUZZLE_DONE2},
|
|
{"PUZZLE_DONE3", ID_PUZZLE_DONE3},
|
|
{"PUZZLE_DONE4", ID_PUZZLE_DONE4},
|
|
{"PUZZLE_DONE5", ID_PUZZLE_DONE5},
|
|
{"PUZZLE_DONE6", ID_PUZZLE_DONE6},
|
|
{"PUZZLE_DONE7", ID_PUZZLE_DONE7},
|
|
{"PUZZLE_DONE8", ID_PUZZLE_DONE8},
|
|
{"PUZZLE_DONE9", ID_PUZZLE_DONE9},
|
|
{"PUZZLE_DONE10", ID_PUZZLE_DONE10},
|
|
{"PUZZLE_DONE11", ID_PUZZLE_DONE11},
|
|
{"PUZZLE_DONE12", ID_PUZZLE_DONE12},
|
|
{"PUZZLE_DONE13", ID_PUZZLE_DONE13},
|
|
{"PUZZLE_DONE14", ID_PUZZLE_DONE14},
|
|
{"PUZZLE_DONE15", ID_PUZZLE_DONE15},
|
|
{"PUZZLE_DONE16", ID_PUZZLE_DONE16},
|
|
{"KEY_HOLE1", ID_KEY_HOLE1},
|
|
{"KEY_HOLE2", ID_KEY_HOLE2},
|
|
{"KEY_HOLE3", ID_KEY_HOLE3},
|
|
{"KEY_HOLE4", ID_KEY_HOLE4},
|
|
{"KEY_HOLE5", ID_KEY_HOLE5},
|
|
{"KEY_HOLE6", ID_KEY_HOLE6},
|
|
{"KEY_HOLE7", ID_KEY_HOLE7},
|
|
{"KEY_HOLE8", ID_KEY_HOLE8},
|
|
{"KEY_HOLE9", ID_KEY_HOLE9},
|
|
{"KEY_HOLE10", ID_KEY_HOLE10},
|
|
{"KEY_HOLE11", ID_KEY_HOLE11},
|
|
{"KEY_HOLE12", ID_KEY_HOLE12},
|
|
{"KEY_HOLE13", ID_KEY_HOLE13},
|
|
{"KEY_HOLE14", ID_KEY_HOLE14},
|
|
{"KEY_HOLE15", ID_KEY_HOLE15},
|
|
{"KEY_HOLE16", ID_KEY_HOLE16},
|
|
{"WATERSKIN1_EMPTY", ID_WATERSKIN1_EMPTY},
|
|
{"WATERSKIN1_1", ID_WATERSKIN1_1},
|
|
{"WATERSKIN1_2", ID_WATERSKIN1_2},
|
|
{"WATERSKIN1_3", ID_WATERSKIN1_3},
|
|
{"WATERSKIN2_EMPTY", ID_WATERSKIN2_EMPTY},
|
|
{"WATERSKIN2_1", ID_WATERSKIN2_1},
|
|
{"WATERSKIN2_2", ID_WATERSKIN2_2},
|
|
{"WATERSKIN2_3", ID_WATERSKIN2_3},
|
|
{"WATERSKIN2_4", ID_WATERSKIN2_4},
|
|
{"WATERSKIN2_5", ID_WATERSKIN2_5},
|
|
{"HAMMER_ITEM", ID_HAMMER_ITEM},
|
|
{"CROWBAR_ITEM", ID_CROWBAR_ITEM},
|
|
{"BURNING_TORCH_ITEM", ID_BURNING_TORCH_ITEM},
|
|
{"CLOCKWORK_BEETLE", ID_CLOCKWORK_BEETLE},
|
|
{"CLOCKWORK_BEETLE_COMBO1", ID_CLOCKWORK_BEETLE_COMBO1},
|
|
{"CLOCKWORK_BEETLE_COMBO2", ID_CLOCKWORK_BEETLE_COMBO2},
|
|
{"SWITCH_TYPE1", ID_SWITCH_TYPE1},
|
|
{"SWITCH_TYPE2", ID_SWITCH_TYPE2},
|
|
{"SWITCH_TYPE3", ID_SWITCH_TYPE3},
|
|
{"SWITCH_TYPE4", ID_SWITCH_TYPE4},
|
|
{"SWITCH_TYPE5", ID_SWITCH_TYPE5},
|
|
{"SWITCH_TYPE6", ID_SWITCH_TYPE6},
|
|
{"SWITCH_TYPE7", ID_SWITCH_TYPE7},
|
|
{"SWITCH_TYPE8", ID_SWITCH_TYPE8},
|
|
{"SWITCH_TYPE9", ID_SWITCH_TYPE9},
|
|
{"SWITCH_TYPE10", ID_SWITCH_TYPE10},
|
|
{"SWITCH_TYPE11", ID_SWITCH_TYPE11},
|
|
{"SWITCH_TYPE12", ID_SWITCH_TYPE12},
|
|
{"SWITCH_TYPE13", ID_SWITCH_TYPE13},
|
|
{"SWITCH_TYPE14", ID_SWITCH_TYPE14},
|
|
{"SWITCH_TYPE15", ID_SWITCH_TYPE15},
|
|
{"SWITCH_TYPE16", ID_SWITCH_TYPE16},
|
|
{"SHOOT_SWITCH1", ID_SHOOT_SWITCH1},
|
|
{"SHOOT_SWITCH2", ID_SHOOT_SWITCH2},
|
|
{"SHOOT_SWITCH3", ID_SHOOT_SWITCH3},
|
|
{"SHOOT_SWITCH4", ID_SHOOT_SWITCH4},
|
|
{"AIRLOCK_SWITCH", ID_AIRLOCK_SWITCH},
|
|
{"UNDERWATER_SWITCH1", ID_UNDERWATER_SWITCH1},
|
|
{"UNDERWATER_SWITCH2", ID_UNDERWATER_SWITCH2},
|
|
{"UNDERWATER_SWITCH3", ID_UNDERWATER_SWITCH3},
|
|
{"UNDERWATER_SWITCH4", ID_UNDERWATER_SWITCH4},
|
|
{"TURN_SWITCH", ID_TURN_SWITCH},
|
|
{"COG_SWITCH", ID_COG_SWITCH},
|
|
{"LEVER_SWITCH", ID_LEVER_SWITCH},
|
|
{"JUMP_SWITCH", ID_JUMP_SWITCH},
|
|
{"CROWBAR_SWITCH", ID_CROWBAR_SWITCH},
|
|
{"PULLEY", ID_PULLEY},
|
|
{"CROWDOVE_SWITCH", ID_CROWDOVE_SWITCH},
|
|
{"DOOR_TYPE1", ID_DOOR_TYPE1},
|
|
{"DOOR_TYPE2", ID_DOOR_TYPE2},
|
|
{"DOOR_TYPE3", ID_DOOR_TYPE3},
|
|
{"DOOR_TYPE4", ID_DOOR_TYPE4},
|
|
{"DOOR_TYPE5", ID_DOOR_TYPE5},
|
|
{"DOOR_TYPE6", ID_DOOR_TYPE6},
|
|
{"DOOR_TYPE7", ID_DOOR_TYPE7},
|
|
{"DOOR_TYPE8", ID_DOOR_TYPE8},
|
|
{"DOOR_TYPE9", ID_DOOR_TYPE9},
|
|
{"DOOR_TYPE10", ID_DOOR_TYPE10},
|
|
{"DOOR_TYPE11", ID_DOOR_TYPE11},
|
|
{"DOOR_TYPE12", ID_DOOR_TYPE12},
|
|
{"DOOR_TYPE13", ID_DOOR_TYPE13},
|
|
{"DOOR_TYPE14", ID_DOOR_TYPE14},
|
|
{"DOOR_TYPE15", ID_DOOR_TYPE15},
|
|
{"DOOR_TYPE16", ID_DOOR_TYPE16},
|
|
{"DOOR_TYPE17", ID_DOOR_TYPE17},
|
|
{"DOOR_TYPE18", ID_DOOR_TYPE18},
|
|
{"DOOR_TYPE19", ID_DOOR_TYPE19},
|
|
{"DOOR_TYPE20", ID_DOOR_TYPE20},
|
|
{"DOOR_TYPE21", ID_DOOR_TYPE21},
|
|
{"DOOR_TYPE22", ID_DOOR_TYPE22},
|
|
{"DOOR_TYPE23", ID_DOOR_TYPE23},
|
|
{"DOOR_TYPE24", ID_DOOR_TYPE24},
|
|
{"CLOSED_DOOR1", ID_CLOSED_DOOR1},
|
|
{"CLOSED_DOOR2", ID_CLOSED_DOOR2},
|
|
{"CLOSED_DOOR3", ID_CLOSED_DOOR3},
|
|
{"CLOSED_DOOR4", ID_CLOSED_DOOR4},
|
|
{"CLOSED_DOOR5", ID_CLOSED_DOOR5},
|
|
{"CLOSED_DOOR6", ID_CLOSED_DOOR6},
|
|
{"LIFT_DOORS1", ID_LIFT_DOORS1},
|
|
{"LIFT_DOORS2", ID_LIFT_DOORS2},
|
|
{"PUSHPULL_DOOR1", ID_PUSHPULL_DOOR1},
|
|
{"PUSHPULL_DOOR2", ID_PUSHPULL_DOOR2},
|
|
{"PUSHPULL_DOOR3", ID_PUSHPULL_DOOR3},
|
|
{"PUSHPULL_DOOR4", ID_PUSHPULL_DOOR4},
|
|
{"KICK_DOOR1", ID_KICK_DOOR1},
|
|
{"KICK_DOOR2", ID_KICK_DOOR2},
|
|
{"KICK_DOOR3", ID_KICK_DOOR3},
|
|
{"KICK_DOOR4", ID_KICK_DOOR4},
|
|
{"UNDERWATER_DOOR1", ID_UNDERWATER_DOOR1},
|
|
{"UNDERWATER_DOOR2", ID_UNDERWATER_DOOR2},
|
|
{"UNDERWATER_DOOR3", ID_UNDERWATER_DOOR3},
|
|
{"UNDERWATER_DOOR4", ID_UNDERWATER_DOOR4},
|
|
{"DOUBLE_DOORS1", ID_DOUBLE_DOORS1},
|
|
{"DOUBLE_DOORS2", ID_DOUBLE_DOORS2},
|
|
{"DOUBLE_DOORS3", ID_DOUBLE_DOORS3},
|
|
{"DOUBLE_DOORS4", ID_DOUBLE_DOORS4},
|
|
{"SEQUENCE_DOOR1", ID_SEQUENCE_DOOR1},
|
|
{"SEQUENCE_SWITCH1", ID_SEQUENCE_SWITCH1},
|
|
{"SEQUENCE_SWITCH2", ID_SEQUENCE_SWITCH2},
|
|
{"SEQUENCE_SWITCH3", ID_SEQUENCE_SWITCH3},
|
|
{"STEEL_DOOR", ID_STEEL_DOOR},
|
|
{"GOD_HEAD", ID_GOD_HEAD},
|
|
{"PISTOLS_ITEM", ID_PISTOLS_ITEM},
|
|
{"PISTOLS_AMMO_ITEM", ID_PISTOLS_AMMO_ITEM},
|
|
{"UZI_ITEM", ID_UZI_ITEM},
|
|
{"UZI_AMMO_ITEM", ID_UZI_AMMO_ITEM},
|
|
{"SHOTGUN_ITEM", ID_SHOTGUN_ITEM},
|
|
{"SHOTGUN_AMMO1_ITEM", ID_SHOTGUN_AMMO1_ITEM},
|
|
{"SHOTGUN_AMMO2_ITEM", ID_SHOTGUN_AMMO2_ITEM},
|
|
{"REVOLVER_ITEM", ID_REVOLVER_ITEM},
|
|
{"REVOLVER_AMMO_ITEM", ID_REVOLVER_AMMO_ITEM},
|
|
{"CROSSBOW_ITEM", ID_CROSSBOW_ITEM},
|
|
{"CROSSBOW_AMMO1_ITEM", ID_CROSSBOW_AMMO1_ITEM},
|
|
{"CROSSBOW_AMMO2_ITEM", ID_CROSSBOW_AMMO2_ITEM},
|
|
{"CROSSBOW_AMMO3_ITEM", ID_CROSSBOW_AMMO3_ITEM},
|
|
{"CROSSBOW_BOLT", ID_CROSSBOW_BOLT},
|
|
{"HK_ITEM", ID_HK_ITEM},
|
|
{"HK_AMMO_ITEM", ID_HK_AMMO_ITEM},
|
|
{"GRENADE_GUN_ITEM", ID_GRENADE_GUN_ITEM},
|
|
{"GRENADE_AMMO1_ITEM", ID_GRENADE_AMMO1_ITEM},
|
|
{"GRENADE_AMMO2_ITEM", ID_GRENADE_AMMO2_ITEM},
|
|
{"GRENADE_AMMO3_ITEM", ID_GRENADE_AMMO3_ITEM},
|
|
{"GRENADE", ID_GRENADE},
|
|
{"ROCKET_LAUNCHER_ITEM", ID_ROCKET_LAUNCHER_ITEM},
|
|
{"ROCKET_LAUNCHER_AMMO_ITEM", ID_ROCKET_LAUNCHER_AMMO_ITEM},
|
|
{"ROCKET", ID_ROCKET},
|
|
{"HARPOON_ITEM", ID_HARPOON_ITEM},
|
|
{"HARPOON_AMMO_ITEM", ID_HARPOON_AMMO_ITEM},
|
|
{"HARPOON", ID_HARPOON},
|
|
{"GOLDROSE_ITEM", ID_GOLDROSE_ITEM},
|
|
{"BIGMEDI_ITEM", ID_BIGMEDI_ITEM},
|
|
{"SMALLMEDI_ITEM", ID_SMALLMEDI_ITEM},
|
|
{"LASERSIGHT_ITEM", ID_LASERSIGHT_ITEM},
|
|
{"BINOCULARS_ITEM", ID_BINOCULARS_ITEM},
|
|
{"SILENCER_ITEM", ID_SILENCER_ITEM},
|
|
{"FLARE_ITEM", ID_FLARE_ITEM},
|
|
{"FLARE_INV_ITEM", ID_FLARE_INV_ITEM},
|
|
{"COMPASS_ITEM", ID_COMPASS_ITEM},
|
|
{"DIARY_ITEM", ID_DIARY_ITEM},
|
|
{"INVENTORY_PASSPORT", ID_INVENTORY_PASSPORT},
|
|
{"INVENTORY_SUNGLASSES", ID_INVENTORY_SUNGLASSES},
|
|
{"INVENTORY_KEYS", ID_INVENTORY_KEYS},
|
|
{"INVENTORY_HEADPHONES", ID_INVENTORY_HEADPHONES},
|
|
{"INVENTORY_POLAROID", ID_INVENTORY_POLAROID},
|
|
{"SMOKE_EMITTER_WHITE", ID_SMOKE_EMITTER_WHITE},
|
|
{"SMOKE_EMITTER_BLACK", ID_SMOKE_EMITTER_BLACK},
|
|
{"SMOKE_EMITTER", ID_SMOKE_EMITTER},
|
|
{"LOCUST_EMITTER", ID_LOCUST_EMITTER},
|
|
{"EARTHQUAKE", ID_EARTHQUAKE},
|
|
{"BUBBLES", ID_BUBBLES},
|
|
{"WATERFALLMIST", ID_WATERFALLMIST},
|
|
{"GUNSHELL", ID_GUNSHELL},
|
|
{"SHOTGUNSHELL", ID_SHOTGUNSHELL},
|
|
{"GUN_FLASH", ID_GUN_FLASH},
|
|
{"GUN_FLASH2", ID_GUN_FLASH2},
|
|
{"COLOR_LIGHT", ID_COLOR_LIGHT},
|
|
{"BLINKING_LIGHT", ID_BLINKING_LIGHT},
|
|
{"PULSE_LIGHT", ID_PULSE_LIGHT},
|
|
{"STROBE_LIGHT", ID_STROBE_LIGHT},
|
|
{"ELECTRICAL_LIGHT", ID_ELECTRICAL_LIGHT},
|
|
{"LENS_FLARE", ID_LENS_FLARE},
|
|
{"ENERGY_BUBBLES", ID_ENERGY_BUBBLES},
|
|
{"PLANET_EFFECT", ID_PLANET_EFFECT},
|
|
{"BUTTERFLY", ID_BUTTERFLY},
|
|
{"AI_GUARD", ID_AI_GUARD},
|
|
{"AI_AMBUSH", ID_AI_AMBUSH},
|
|
{"AI_PATROL1", ID_AI_PATROL1},
|
|
{"AI_MODIFY", ID_AI_MODIFY},
|
|
{"AI_FOLLOW", ID_AI_FOLLOW},
|
|
{"AI_PATROL2", ID_AI_PATROL2},
|
|
{"AI_X1", ID_AI_X1},
|
|
{"AI_X2", ID_AI_X2},
|
|
{"LARA_START_POS", ID_LARA_START_POS},
|
|
{"TELEPORTER", ID_TELEPORTER},
|
|
{"LIFT_TELEPORTER", ID_LIFT_TELEPORTER},
|
|
{"LASERS", ID_LASERS},
|
|
{"STEAM_LASERS", ID_STEAM_LASERS},
|
|
{"FLOOR_LASERS", ID_FLOOR_LASERS},
|
|
{"KILL_ALL_TRIGGERS", ID_KILL_ALL_TRIGGERS},
|
|
{"TRIGGER_TRIGGERER", ID_TRIGGER_TRIGGERER},
|
|
{"HIGH_OBJECT1", ID_HIGH_OBJECT1},
|
|
{"HIGH_OBJECT2", ID_HIGH_OBJECT2},
|
|
{"SMASH_OBJECT1", ID_SMASH_OBJECT1},
|
|
{"SMASH_OBJECT2", ID_SMASH_OBJECT2},
|
|
{"SMASH_OBJECT3", ID_SMASH_OBJECT3},
|
|
{"SMASH_OBJECT4", ID_SMASH_OBJECT4},
|
|
{"SMASH_OBJECT5", ID_SMASH_OBJECT5},
|
|
{"SMASH_OBJECT6", ID_SMASH_OBJECT6},
|
|
{"SMASH_OBJECT7", ID_SMASH_OBJECT7},
|
|
{"SMASH_OBJECT8", ID_SMASH_OBJECT8},
|
|
{"SMASH_OBJECT9", ID_SMASH_OBJECT9},
|
|
{"SMASH_OBJECT10", ID_SMASH_OBJECT10},
|
|
{"SMASH_OBJECT11", ID_SMASH_OBJECT11},
|
|
{"SMASH_OBJECT12", ID_SMASH_OBJECT12},
|
|
{"SMASH_OBJECT13", ID_SMASH_OBJECT13},
|
|
{"SMASH_OBJECT14", ID_SMASH_OBJECT14},
|
|
{"SMASH_OBJECT15", ID_SMASH_OBJECT15},
|
|
{"SMASH_OBJECT16", ID_SMASH_OBJECT16},
|
|
{"BODY_PART", ID_BODY_PART},
|
|
{"CAMERA_TARGET", ID_CAMERA_TARGET},
|
|
{"WATERFALL1", ID_WATERFALL1},
|
|
{"WATERFALL2", ID_WATERFALL2},
|
|
{"WATERFALL3", ID_WATERFALL3},
|
|
{"WATERFALL4", ID_WATERFALL4},
|
|
{"WATERFALL5", ID_WATERFALL5},
|
|
{"WATERFALL6", ID_WATERFALL6},
|
|
{"WATERFALLSS1", ID_WATERFALLSS1},
|
|
{"WATERFALLSS2", ID_WATERFALLSS2},
|
|
{"FISHTANK", ID_FISHTANK},
|
|
{"MESHSWAP1", ID_MESHSWAP1},
|
|
{"MESHSWAP2", ID_MESHSWAP2},
|
|
{"MESHSWAP3", ID_MESHSWAP3},
|
|
{"MESHSWAP4", ID_MESHSWAP4},
|
|
{"MESHSWAP5", ID_MESHSWAP5},
|
|
{"MESHSWAP6", ID_MESHSWAP6},
|
|
{"MESHSWAP7", ID_MESHSWAP7},
|
|
{"MESHSWAP8", ID_MESHSWAP8},
|
|
{"MESHSWAP9", ID_MESHSWAP9},
|
|
{"MESHSWAP10", ID_MESHSWAP10},
|
|
{"MESHSWAP_BADDY1", ID_MESHSWAP_BADDY1},
|
|
{"MESHSWAP_BADDY2", ID_MESHSWAP_BADDY2},
|
|
{"MESHSWAP_MAFIA2", ID_MESHSWAP_MAFIA2},
|
|
{"MESHSWAP_IMP", ID_MESHSWAP_IMP},
|
|
{"MESHSWAP_HITMAN", ID_MESHSWAP_HITMAN},
|
|
{"MESHSWAP_ROMAN_GOD1", ID_MESHSWAP_ROMAN_GOD1},
|
|
{"MESHSWAP_ROMAN_GOD2", ID_MESHSWAP_ROMAN_GOD2},
|
|
{"ANIMATING1", ID_ANIMATING1},
|
|
{"ANIMATING2", ID_ANIMATING2},
|
|
{"ANIMATING3", ID_ANIMATING3},
|
|
{"ANIMATING4", ID_ANIMATING4},
|
|
{"ANIMATING5", ID_ANIMATING5},
|
|
{"ANIMATING6", ID_ANIMATING6},
|
|
{"ANIMATING7", ID_ANIMATING7},
|
|
{"ANIMATING8", ID_ANIMATING8},
|
|
{"ANIMATING9", ID_ANIMATING9},
|
|
{"ANIMATING10", ID_ANIMATING10},
|
|
{"ANIMATING11", ID_ANIMATING11},
|
|
{"ANIMATING12", ID_ANIMATING12},
|
|
{"ANIMATING13", ID_ANIMATING13},
|
|
{"ANIMATING14", ID_ANIMATING14},
|
|
{"ANIMATING15", ID_ANIMATING15},
|
|
{"ANIMATING16", ID_ANIMATING16},
|
|
{"ANIMATING17", ID_ANIMATING17},
|
|
{"ANIMATING18", ID_ANIMATING18},
|
|
{"ANIMATING19", ID_ANIMATING19},
|
|
{"ANIMATING20", ID_ANIMATING20},
|
|
{"ANIMATING21", ID_ANIMATING21},
|
|
{"ANIMATING22", ID_ANIMATING22},
|
|
{"ANIMATING23", ID_ANIMATING23},
|
|
{"ANIMATING24", ID_ANIMATING24},
|
|
{"ANIMATING25", ID_ANIMATING25},
|
|
{"ANIMATING26", ID_ANIMATING26},
|
|
{"ANIMATING27", ID_ANIMATING27},
|
|
{"ANIMATING28", ID_ANIMATING28},
|
|
{"ANIMATING29", ID_ANIMATING29},
|
|
{"ANIMATING30", ID_ANIMATING30},
|
|
{"ANIMATING31", ID_ANIMATING31},
|
|
{"ANIMATING32", ID_ANIMATING32},
|
|
{"ANIMATING33", ID_ANIMATING33},
|
|
{"ANIMATING34", ID_ANIMATING34},
|
|
{"ANIMATING35", ID_ANIMATING35},
|
|
{"ANIMATING36", ID_ANIMATING36},
|
|
{"ANIMATING37", ID_ANIMATING37},
|
|
{"ANIMATING38", ID_ANIMATING38},
|
|
{"ANIMATING39", ID_ANIMATING39},
|
|
{"ANIMATING40", ID_ANIMATING40},
|
|
{"ANIMATING41", ID_ANIMATING41},
|
|
{"ANIMATING42", ID_ANIMATING42},
|
|
{"ANIMATING43", ID_ANIMATING43},
|
|
{"ANIMATING44", ID_ANIMATING44},
|
|
{"ANIMATING45", ID_ANIMATING45},
|
|
{"ANIMATING46", ID_ANIMATING46},
|
|
{"ANIMATING47", ID_ANIMATING47},
|
|
{"ANIMATING48", ID_ANIMATING48},
|
|
{"ANIMATING49", ID_ANIMATING49},
|
|
{"ANIMATING50", ID_ANIMATING50},
|
|
{"ANIMATING51", ID_ANIMATING51},
|
|
{"ANIMATING52", ID_ANIMATING52},
|
|
{"ANIMATING53", ID_ANIMATING53},
|
|
{"ANIMATING54", ID_ANIMATING54},
|
|
{"ANIMATING55", ID_ANIMATING55},
|
|
{"ANIMATING56", ID_ANIMATING56},
|
|
{"ANIMATING57", ID_ANIMATING57},
|
|
{"ANIMATING58", ID_ANIMATING58},
|
|
{"ANIMATING59", ID_ANIMATING59},
|
|
{"ANIMATING60", ID_ANIMATING60},
|
|
{"ANIMATING61", ID_ANIMATING61},
|
|
{"ANIMATING62", ID_ANIMATING62},
|
|
{"ANIMATING63", ID_ANIMATING63},
|
|
{"ANIMATING64", ID_ANIMATING64},
|
|
{"ANIMATING65", ID_ANIMATING65},
|
|
{"ANIMATING66", ID_ANIMATING66},
|
|
{"ANIMATING67", ID_ANIMATING67},
|
|
{"ANIMATING68", ID_ANIMATING68},
|
|
{"ANIMATING69", ID_ANIMATING69},
|
|
{"ANIMATING70", ID_ANIMATING70},
|
|
{"ANIMATING71", ID_ANIMATING71},
|
|
{"ANIMATING72", ID_ANIMATING72},
|
|
{"ANIMATING73", ID_ANIMATING73},
|
|
{"ANIMATING74", ID_ANIMATING74},
|
|
{"ANIMATING75", ID_ANIMATING75},
|
|
{"ANIMATING76", ID_ANIMATING76},
|
|
{"ANIMATING77", ID_ANIMATING77},
|
|
{"ANIMATING78", ID_ANIMATING78},
|
|
{"ANIMATING79", ID_ANIMATING79},
|
|
{"ANIMATING80", ID_ANIMATING80},
|
|
{"ANIMATING81", ID_ANIMATING81},
|
|
{"ANIMATING82", ID_ANIMATING82},
|
|
{"ANIMATING83", ID_ANIMATING83},
|
|
{"ANIMATING84", ID_ANIMATING84},
|
|
{"ANIMATING85", ID_ANIMATING85},
|
|
{"ANIMATING86", ID_ANIMATING86},
|
|
{"ANIMATING87", ID_ANIMATING87},
|
|
{"ANIMATING88", ID_ANIMATING88},
|
|
{"ANIMATING89", ID_ANIMATING89},
|
|
{"ANIMATING90", ID_ANIMATING90},
|
|
{"ANIMATING91", ID_ANIMATING91},
|
|
{"ANIMATING92", ID_ANIMATING92},
|
|
{"ANIMATING93", ID_ANIMATING93},
|
|
{"ANIMATING94", ID_ANIMATING94},
|
|
{"ANIMATING95", ID_ANIMATING95},
|
|
{"ANIMATING96", ID_ANIMATING96},
|
|
{"ANIMATING97", ID_ANIMATING97},
|
|
{"ANIMATING98", ID_ANIMATING98},
|
|
{"ANIMATING99", ID_ANIMATING99},
|
|
{"ANIMATING100", ID_ANIMATING100},
|
|
{"ANIMATING101", ID_ANIMATING101},
|
|
{"ANIMATING102", ID_ANIMATING102},
|
|
{"ANIMATING103", ID_ANIMATING103},
|
|
{"ANIMATING104", ID_ANIMATING104},
|
|
{"ANIMATING105", ID_ANIMATING105},
|
|
{"ANIMATING106", ID_ANIMATING106},
|
|
{"ANIMATING107", ID_ANIMATING107},
|
|
{"ANIMATING108", ID_ANIMATING108},
|
|
{"ANIMATING109", ID_ANIMATING109},
|
|
{"ANIMATING110", ID_ANIMATING110},
|
|
{"ANIMATING111", ID_ANIMATING111},
|
|
{"ANIMATING112", ID_ANIMATING112},
|
|
{"ANIMATING113", ID_ANIMATING113},
|
|
{"ANIMATING114", ID_ANIMATING114},
|
|
{"ANIMATING115", ID_ANIMATING115},
|
|
{"ANIMATING116", ID_ANIMATING116},
|
|
{"ANIMATING117", ID_ANIMATING117},
|
|
{"ANIMATING118", ID_ANIMATING118},
|
|
{"ANIMATING119", ID_ANIMATING119},
|
|
{"ANIMATING120", ID_ANIMATING120},
|
|
{"ANIMATING121", ID_ANIMATING121},
|
|
{"ANIMATING122", ID_ANIMATING122},
|
|
{"ANIMATING123", ID_ANIMATING123},
|
|
{"ANIMATING124", ID_ANIMATING124},
|
|
{"ANIMATING125", ID_ANIMATING125},
|
|
{"ANIMATING126", ID_ANIMATING126},
|
|
{"ANIMATING127", ID_ANIMATING127},
|
|
{"ANIMATING128", ID_ANIMATING128},
|
|
{"LASERHEAD_BASE", ID_LASERHEAD_BASE},
|
|
{"LASERHEAD_TENTACLE", ID_LASERHEAD_TENTACLE},
|
|
{"BRIDGE_FLAT", ID_BRIDGE_FLAT},
|
|
{"BRIDGE_TILT1", ID_BRIDGE_TILT1},
|
|
{"BRIDGE_TILT2", ID_BRIDGE_TILT2},
|
|
{"BRIDGE_TILT3", ID_BRIDGE_TILT3},
|
|
{"BRIDGE_TILT4", ID_BRIDGE_TILT4},
|
|
{"BRIDGE_CUSTOM", ID_BRIDGE_CUSTOM},
|
|
{"HORIZON", ID_HORIZON},
|
|
{"BINOCULAR_GRAPHICS", ID_BINOCULAR_GRAPHICS},
|
|
{"TARGET_GRAPHICS", ID_TARGET_GRAPHICS},
|
|
{"SKY_GRAPHICS", ID_SKY_GRAPHICS},
|
|
{"DEFAULT_SPRITES", ID_DEFAULT_SPRITES},
|
|
{"MISC_SPRITES", ID_MISC_SPRITES},
|
|
{"CUSTOM_SPRITES", ID_CUSTOM_SPRITES},
|
|
{"PANEL_BORDER", ID_PANEL_BORDER},
|
|
{"PANEL_MIDDLE", ID_PANEL_MIDDLE},
|
|
{"PANEL_CORNER", ID_PANEL_CORNER},
|
|
{"PANEL_DIAGONAL", ID_PANEL_DIAGONAL},
|
|
{"PANEL_STRIP", ID_PANEL_STRIP},
|
|
{"PANEL_HALF_BORDER1", ID_PANEL_HALF_BORDER1},
|
|
{"PANEL_HALF_BORDER2", ID_PANEL_HALF_BORDER2},
|
|
{"PANEL_MIDDLE_CORNER", ID_PANEL_MIDDLE_CORNER}
|
|
});
|
|
|
|
// Add the item type
|
|
m_lua->new_usertype<GameScriptPosition>("Position",
|
|
"X", sol::property(&GameScriptPosition::GetXPos, &GameScriptPosition::SetXPos),
|
|
"Y", sol::property(&GameScriptPosition::GetYPos, &GameScriptPosition::SetYPos),
|
|
"Z", sol::property(&GameScriptPosition::GetZPos, &GameScriptPosition::SetZPos),
|
|
"new", sol::no_constructor
|
|
);
|
|
|
|
m_lua->new_usertype<GameScriptRotation>("Rotation",
|
|
"X", sol::property(&GameScriptRotation::GetXRot, &GameScriptRotation::SetXRot),
|
|
"Y", sol::property(&GameScriptRotation::GetYRot, &GameScriptRotation::SetYRot),
|
|
"Z", sol::property(&GameScriptRotation::GetZRot, &GameScriptRotation::SetZRot),
|
|
"new", sol::no_constructor
|
|
);
|
|
|
|
m_lua->new_usertype<GameScriptItem>("Item",
|
|
"Position", sol::property(&GameScriptItem::GetPosition),
|
|
"Rotation", sol::property(&GameScriptItem::GetRotation),
|
|
"HP", sol::property(&GameScriptItem::GetHP, &GameScriptItem::SetHP),
|
|
"Room", sol::property(&GameScriptItem::GetRoom, &GameScriptItem::SetRoom),
|
|
"CurrentState", sol::property(&GameScriptItem::GetCurrentState, &GameScriptItem::SetCurrentState),
|
|
"GoalState", sol::property(&GameScriptItem::GetGoalState, &GameScriptItem::SetGoalState),
|
|
"RequiredState", sol::property(&GameScriptItem::GetRequiredState, &GameScriptItem::SetRequiredState),
|
|
"new", sol::no_constructor
|
|
);
|
|
|
|
m_lua->set_function("EnableItem", &GameScriptItem::EnableItem);
|
|
m_lua->set_function("DisableItem", &GameScriptItem::DisableItem);
|
|
|
|
m_lua->new_usertype<LuaVariables>("Variable",
|
|
sol::meta_function::index, &LuaVariables::GetVariable,
|
|
sol::meta_function::new_index, &LuaVariables::SetVariable,
|
|
"new", sol::no_constructor
|
|
);
|
|
|
|
// GameScript type
|
|
/*m_lua->new_usertype<GameScript>("GameScript",
|
|
"PlayAudioTrack", &GameScript::PlayAudioTrack,
|
|
"ChangeAmbientSoundTrack", &GameScript::ChangeAmbientSoundTrack,
|
|
"MakeItemInvisible", &GameScript::MakeItemInvisible,
|
|
"GetSecretsCount", &GameScript::GetSecretsCount,
|
|
"SetSecretsCount", &GameScript::SetSecretsCount,
|
|
"AddOneSecret", &GameScript::AddOneSecret,
|
|
"JumpToLevel", &GameScript::JumpToLevel,
|
|
"PlaySoundEffect", &GameScript::PlaySoundEffect,
|
|
"PlaySoundEffectAtPosition", &GameScript::PlaySoundEffectAtPosition
|
|
);*/
|
|
|
|
m_lua->set_function("GetItemByID", &GameScript::GetItemById);
|
|
m_lua->set_function("GetItemByName", &GameScript::GetItemByName);
|
|
m_lua->set_function("CreatePosition", &GameScript::CreatePosition);
|
|
m_lua->set_function("CreateRotation", &GameScript::CreateRotation);
|
|
m_lua->set_function("CalculateDistance", &GameScript::CalculateDistance);
|
|
m_lua->set_function("CalculateHorizontalDistance", &GameScript::CalculateHorizontalDistance);
|
|
|
|
// Add global variables and namespaces
|
|
//(*m_lua)["TR"] = this;
|
|
}
|
|
|
|
void GameScript::AddTrigger(LuaFunction* function)
|
|
{
|
|
m_triggers.push_back(function);
|
|
(*m_lua).script(function->Code);
|
|
}
|
|
|
|
void GameScript::AddLuaId(int luaId, short itemNumber)
|
|
{
|
|
m_itemsMapId.insert(pair<int, short>(luaId, itemNumber));
|
|
}
|
|
|
|
void GameScript::AddLuaName(string luaName, short itemNumber)
|
|
{
|
|
m_itemsMapName.insert(pair<string, short>(luaName, itemNumber));
|
|
}
|
|
|
|
void GameScript::FreeLevelScripts()
|
|
{
|
|
/*
|
|
// Delete all triggers
|
|
for (int i = 0; i < m_triggers.size(); i++)
|
|
{
|
|
LuaFunction* trigger = m_triggers[i];
|
|
char* name = (char*)trigger->Name.c_str();
|
|
(*m_lua)[name] = NULL;
|
|
delete m_triggers[i];
|
|
}
|
|
m_triggers.clear();
|
|
|
|
// Clear the items mapping
|
|
m_itemsMap.clear();
|
|
|
|
(*m_lua)["Lara"] = NULL;
|
|
//delete m_Lara;
|
|
*/
|
|
}
|
|
|
|
bool GameScript::ExecuteScript(const string& luaFilename, string& message)
|
|
{
|
|
auto result = m_lua->safe_script_file(luaFilename, sol::environment(m_lua->lua_state(), sol::create, m_lua->globals()), sol::script_pass_on_error);
|
|
if (!result.valid())
|
|
{
|
|
sol::error error = result;
|
|
message = error.what();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool GameScript::ExecuteString(const string& command, string& message)
|
|
{
|
|
auto result = m_lua->safe_script(command, sol::environment(m_lua->lua_state(), sol::create, m_lua->globals()), sol::script_pass_on_error);
|
|
if (!result.valid())
|
|
{
|
|
sol::error error = result;
|
|
message = error.what();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool GameScript::ExecuteTrigger(short index)
|
|
{
|
|
return true;
|
|
/*
|
|
// Is this a valid trigger?
|
|
if (index >= m_triggers.size())
|
|
return true;
|
|
|
|
LuaFunction* trigger = m_triggers[index];
|
|
|
|
// We want to execute a trigger just one time
|
|
// TODO: implement in the future continoous trigger?
|
|
if (trigger->Executed)
|
|
return true;
|
|
|
|
// Get the trigger function name
|
|
char* name = (char*)trigger->Name.c_str();
|
|
|
|
// Execute trigger
|
|
bool result = (*m_lua)[name]();
|
|
|
|
// Trigger was executed, don't execute it anymore
|
|
trigger->Executed = result;
|
|
|
|
m_locals.for_each([&](sol::object const& key, sol::object const& value) {
|
|
if (value.is<bool>())
|
|
std::cout << key.as<string>() << " " << value.as<bool>() << std::endl;
|
|
else if (value.is<string>())
|
|
std::cout << key.as<string>() << " " << value.as<string>() << std::endl;
|
|
else
|
|
std::cout << key.as<string>() << " " << value.as<int>() << std::endl;
|
|
});
|
|
|
|
return result;
|
|
*/
|
|
}
|
|
|
|
void GameScript::PlayAudioTrack(short track)
|
|
{
|
|
S_CDPlay(track, SOUND_TRACK_ONESHOT);
|
|
}
|
|
|
|
void GameScript::ChangeAmbientSoundTrack(short track)
|
|
{
|
|
CurrentAtmosphere = track;
|
|
S_CDStop();
|
|
S_CDPlay(track, SOUND_TRACK_BGM);
|
|
}
|
|
|
|
void GameScript::JumpToLevel(int levelNum)
|
|
{
|
|
if (levelNum >= g_GameFlow->GetNumLevels())
|
|
return;
|
|
LevelComplete = levelNum;
|
|
}
|
|
|
|
int GameScript::GetSecretsCount()
|
|
{
|
|
return Savegame.Level.Secrets;
|
|
}
|
|
|
|
void GameScript::SetSecretsCount(int secretsNum)
|
|
{
|
|
if (secretsNum > 255)
|
|
return;
|
|
Savegame.Level.Secrets = secretsNum;
|
|
}
|
|
|
|
void GameScript::AddOneSecret()
|
|
{
|
|
if (Savegame.Level.Secrets >= 255)
|
|
return;
|
|
Savegame.Level.Secrets++;
|
|
S_CDPlay(6, 0);
|
|
}
|
|
/*
|
|
void GameScript::MakeItemInvisible(short id)
|
|
{
|
|
if (m_itemsMap.find(id) == m_itemsMap.end())
|
|
return;
|
|
|
|
short itemNum = m_itemsMap[id];
|
|
|
|
ITEM_INFO* item = &Items[itemNum];
|
|
|
|
if (item->active)
|
|
{
|
|
if (Objects[item->objectNumber].intelligent)
|
|
{
|
|
if (item->status == ITEM_ACTIVE)
|
|
{
|
|
item->touchBits = 0;
|
|
item->status = ITEM_INVISIBLE;
|
|
DisableBaddieAI(itemNum);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
item->touchBits = 0;
|
|
item->status = ITEM_INVISIBLE;
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
template <typename T>
|
|
void GameScript::GetVariables(map<string, T>& locals, map<string, T>& globals)
|
|
{
|
|
for (const auto& it : m_locals.variables)
|
|
{
|
|
if (it.second.is<T>())
|
|
locals.insert(pair<string, T>(it.first, it.second.as<T>()));
|
|
}
|
|
for (const auto& it : m_globals.variables)
|
|
{
|
|
if (it.second.is<T>())
|
|
globals.insert(pair<string, T>(it.first, it.second.as<T>()));
|
|
}
|
|
}
|
|
|
|
template void GameScript::GetVariables<bool>(map<string, bool>& locals, map<string, bool>& globals);
|
|
template void GameScript::GetVariables<float>(map<string, float>& locals, map<string, float>& globals);
|
|
template void GameScript::GetVariables<string>(map<string, string>& locals, map<string, string>& globals);
|
|
|
|
template <typename T>
|
|
void GameScript::SetVariables(map<string, T>& locals, map<string, T>& globals)
|
|
{
|
|
m_locals.variables.clear();
|
|
for (const auto& it : locals)
|
|
{
|
|
m_locals.variables.insert(pair<string, sol::object>(it.first, sol::object(m_lua->lua_state(), sol::in_place, it.second)));
|
|
}
|
|
for (const auto& it : globals)
|
|
{
|
|
m_globals.variables.insert(pair<string, sol::object>(it.first, sol::object(m_lua->lua_state(), sol::in_place, it.second)));
|
|
}
|
|
}
|
|
|
|
template void GameScript::SetVariables<bool>(map<string, bool>& locals, map<string, bool>& globals);
|
|
template void GameScript::SetVariables<float>(map<string, float>& locals, map<string, float>& globals);
|
|
template void GameScript::SetVariables<string>(map<string, string>& locals, map<string, string>& globals);
|
|
|
|
unique_ptr<GameScriptItem> GameScript::GetItemById(int id)
|
|
{
|
|
if (m_itemsMapId.find(id) == m_itemsMapId.end())
|
|
{
|
|
if (WarningsAsErrors)
|
|
throw "item id not found";
|
|
return unique_ptr<GameScriptItem>(nullptr);
|
|
}
|
|
|
|
return unique_ptr<GameScriptItem>(new GameScriptItem(m_itemsMapId[id]));
|
|
}
|
|
|
|
unique_ptr<GameScriptItem> GameScript::GetItemByName(string name)
|
|
{
|
|
if (m_itemsMapName.find(name) == m_itemsMapName.end())
|
|
{
|
|
if (WarningsAsErrors)
|
|
throw "item name not found";
|
|
return unique_ptr<GameScriptItem>(nullptr);
|
|
}
|
|
|
|
return unique_ptr<GameScriptItem>(new GameScriptItem(m_itemsMapName[name]));
|
|
}
|
|
|
|
void GameScript::PlaySoundEffectAtPosition(short id, int x, int y, int z, int flags)
|
|
{
|
|
PHD_3DPOS pos;
|
|
|
|
pos.xPos = x;
|
|
pos.yPos = y;
|
|
pos.zPos = z;
|
|
pos.xRot = 0;
|
|
pos.yRot = 0;
|
|
pos.zRot = 0;
|
|
|
|
SoundEffect(id, &pos, flags);
|
|
}
|
|
|
|
void GameScript::PlaySoundEffect(short id, int flags)
|
|
{
|
|
SoundEffect(id, NULL, flags);
|
|
}
|
|
|
|
void GameScript::AssignItemsAndLara()
|
|
{
|
|
m_lua->set("Level", m_locals);
|
|
m_lua->set("Game", m_globals);
|
|
m_lua->set("Lara", GameScriptItem(Lara.itemNumber));
|
|
}
|
|
|
|
void GameScript::ResetVariables()
|
|
{
|
|
(*m_lua)["Lara"] = NULL;
|
|
}
|
|
|
|
GameScriptPosition GameScript::CreatePosition(float x, float y, float z)
|
|
{
|
|
return GameScriptPosition(x, y, z);
|
|
}
|
|
|
|
GameScriptPosition GameScript::CreateSectorPosition(float x, float y, float z)
|
|
{
|
|
return GameScriptPosition(1024 * x + 512, 1024 * y + 512, 1024 * z + 512);
|
|
}
|
|
|
|
GameScriptRotation GameScript::CreateRotation(float x, float y, float z)
|
|
{
|
|
return GameScriptRotation(x, y, z);
|
|
}
|
|
|
|
float GameScript::CalculateDistance(GameScriptPosition pos1, GameScriptPosition pos2)
|
|
{
|
|
return sqrt(SQUARE(pos1.GetXPos() - pos2.GetXPos()) + SQUARE(pos1.GetYPos() - pos2.GetYPos()) + SQUARE(pos1.GetZPos() - pos2.GetZPos()));
|
|
}
|
|
|
|
float GameScript::CalculateHorizontalDistance(GameScriptPosition pos1, GameScriptPosition pos2)
|
|
{
|
|
return sqrt(SQUARE(pos1.GetXPos() - pos2.GetXPos()) + SQUARE(pos1.GetZPos() - pos2.GetZPos()));
|
|
}
|
|
|
|
GameScriptPosition::GameScriptPosition(float x, float y, float z)
|
|
:
|
|
xPos(x),
|
|
yPos(y),
|
|
zPos(z)
|
|
{
|
|
|
|
}
|
|
|
|
GameScriptPosition::GameScriptPosition(function<float()> readX, function<void(float)> writeX, function<float()> readY, function<void(float)> writeY, function<float()> readZ, function<void(float)> writeZ)
|
|
:
|
|
readXPos(readX),
|
|
writeXPos(writeX),
|
|
readYPos(readY),
|
|
writeYPos(writeY),
|
|
readZPos(readZ),
|
|
writeZPos(writeZ)
|
|
{
|
|
|
|
}
|
|
|
|
float GameScriptPosition::GetXPos()
|
|
{
|
|
if (readXPos)
|
|
xPos = readXPos();
|
|
return xPos;
|
|
}
|
|
|
|
void GameScriptPosition::SetXPos(float x)
|
|
{
|
|
xPos = x;
|
|
if (writeXPos)
|
|
writeXPos(xPos);
|
|
}
|
|
|
|
float GameScriptPosition::GetYPos()
|
|
{
|
|
if (readYPos)
|
|
yPos = readYPos();
|
|
return yPos;
|
|
}
|
|
|
|
void GameScriptPosition::SetYPos(float y)
|
|
{
|
|
yPos = y;
|
|
if (writeYPos)
|
|
writeYPos(yPos);
|
|
}
|
|
|
|
float GameScriptPosition::GetZPos()
|
|
{
|
|
if (readZPos)
|
|
zPos = readZPos();
|
|
return zPos;
|
|
}
|
|
|
|
void GameScriptPosition::SetZPos(float z)
|
|
{
|
|
zPos = z;
|
|
if (writeZPos)
|
|
writeZPos(zPos);
|
|
}
|
|
|
|
GameScriptRotation::GameScriptRotation(float x, float y, float z)
|
|
:
|
|
xRot(x),
|
|
yRot(y),
|
|
zRot(z)
|
|
{
|
|
|
|
}
|
|
|
|
GameScriptRotation::GameScriptRotation(function<float()> readX, function<void(float)> writeX, function<float()> readY, function<void(float)> writeY, function<float()> readZ, function<void(float)> writeZ)
|
|
:
|
|
readXRot(readX),
|
|
writeXRot(writeX),
|
|
readYRot(readY),
|
|
writeYRot(writeY),
|
|
readZRot(readZ),
|
|
writeZRot(writeZ)
|
|
{
|
|
|
|
}
|
|
|
|
float GameScriptRotation::GetXRot()
|
|
{
|
|
if (readXRot)
|
|
xRot = readXRot();
|
|
return xRot;
|
|
}
|
|
|
|
void GameScriptRotation::SetXRot(float x)
|
|
{
|
|
x = remainder(x, 360);
|
|
if (x < 0)
|
|
x += 360;
|
|
xRot = x;
|
|
if (writeXRot)
|
|
writeXRot(xRot);
|
|
}
|
|
|
|
float GameScriptRotation::GetYRot()
|
|
{
|
|
if (readYRot)
|
|
yRot = readYRot();
|
|
return yRot;
|
|
}
|
|
|
|
void GameScriptRotation::SetYRot(float y)
|
|
{
|
|
y = remainder(y, 360);
|
|
if (y < 0)
|
|
y += 360;
|
|
yRot = y;
|
|
if (writeYRot)
|
|
writeYRot(yRot);
|
|
}
|
|
|
|
float GameScriptRotation::GetZRot()
|
|
{
|
|
if (readZRot)
|
|
zRot = readZRot();
|
|
return zRot;
|
|
}
|
|
|
|
void GameScriptRotation::SetZRot(float z)
|
|
{
|
|
z = remainder(z, 360);
|
|
if (z < 0)
|
|
z += 360;
|
|
zRot = z;
|
|
if (writeZRot)
|
|
writeZRot(zRot);
|
|
}
|
|
|
|
GameScriptItem::GameScriptItem(short itemNumber)
|
|
:
|
|
NativeItemNumber(itemNumber),
|
|
NativeItem(&Items[itemNumber])
|
|
{
|
|
|
|
}
|
|
|
|
GameScriptPosition GameScriptItem::GetPosition()
|
|
{
|
|
return GameScriptPosition(
|
|
[this]() -> float { return NativeItem->pos.xPos; },
|
|
[this](float x) -> void { NativeItem->pos.xPos = x; },
|
|
[this]() -> float { return NativeItem->pos.yPos; },
|
|
[this](float y) -> void { NativeItem->pos.yPos = y; },
|
|
[this]() -> float { return NativeItem->pos.zPos; },
|
|
[this](float z) -> void { NativeItem->pos.zPos = z; }
|
|
);
|
|
}
|
|
|
|
GameScriptRotation GameScriptItem::GetRotation()
|
|
{
|
|
return GameScriptRotation(
|
|
[this]() -> float { return TO_DEGREES(NativeItem->pos.xRot); },
|
|
[this](float x) -> void { NativeItem->pos.xRot = ANGLE(x); },
|
|
[this]() -> float { return TO_DEGREES(NativeItem->pos.yRot); },
|
|
[this](float y) -> void { NativeItem->pos.yRot = ANGLE(y); },
|
|
[this]() -> float { return TO_DEGREES(NativeItem->pos.zRot); },
|
|
[this](float z) -> void { NativeItem->pos.zRot = ANGLE(z); }
|
|
);
|
|
}
|
|
|
|
short GameScriptItem::GetHP()
|
|
{
|
|
return NativeItem->hitPoints;
|
|
}
|
|
|
|
void GameScriptItem::SetHP(short hp)
|
|
{
|
|
if (hp < 0 || hp > Objects[NativeItem->objectNumber].hitPoints)
|
|
{
|
|
if (WarningsAsErrors)
|
|
throw runtime_error("invalid HP");
|
|
if (hp < 0)
|
|
{
|
|
hp = 0;
|
|
}
|
|
else if (hp > Objects[NativeItem->objectNumber].hitPoints)
|
|
{
|
|
hp = Objects[NativeItem->objectNumber].hitPoints;
|
|
}
|
|
}
|
|
NativeItem->hitPoints = hp;
|
|
}
|
|
|
|
short GameScriptItem::GetRoom()
|
|
{
|
|
return NativeItem->roomNumber;
|
|
}
|
|
|
|
void GameScriptItem::SetRoom(short room)
|
|
{
|
|
if (room < 0 || room >= NumberRooms)
|
|
{
|
|
if (WarningsAsErrors)
|
|
throw runtime_error("invalid room number");
|
|
return;
|
|
}
|
|
NativeItem->roomNumber = room;
|
|
}
|
|
|
|
void GameScriptItem::EnableItem()
|
|
{
|
|
if (!NativeItem->active)
|
|
{
|
|
if (Objects[NativeItem->objectNumber].intelligent)
|
|
{
|
|
if (NativeItem->status == ITEM_DEACTIVATED)
|
|
{
|
|
NativeItem->touchBits = 0;
|
|
NativeItem->status = ITEM_ACTIVE;
|
|
AddActiveItem(NativeItemNumber);
|
|
EnableBaddieAI(NativeItemNumber, 1);
|
|
}
|
|
else if (NativeItem->status == ITEM_INVISIBLE)
|
|
{
|
|
NativeItem->touchBits = 0;
|
|
if (EnableBaddieAI(NativeItemNumber, 0))
|
|
NativeItem->status = ITEM_ACTIVE;
|
|
else
|
|
NativeItem->status = ITEM_INVISIBLE;
|
|
AddActiveItem(NativeItemNumber);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
NativeItem->touchBits = 0;
|
|
AddActiveItem(NativeItemNumber);
|
|
NativeItem->status = ITEM_ACTIVE;
|
|
}
|
|
}
|
|
}
|
|
|
|
void GameScriptItem::DisableItem()
|
|
{
|
|
if (NativeItem->active)
|
|
{
|
|
if (Objects[NativeItem->objectNumber].intelligent)
|
|
{
|
|
if (NativeItem->status == ITEM_ACTIVE)
|
|
{
|
|
NativeItem->touchBits = 0;
|
|
NativeItem->status = ITEM_DEACTIVATED;
|
|
RemoveActiveItem(NativeItemNumber);
|
|
DisableBaddieAI(NativeItemNumber);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
NativeItem->touchBits = 0;
|
|
RemoveActiveItem(NativeItemNumber);
|
|
NativeItem->status = ITEM_DEACTIVATED;
|
|
}
|
|
}
|
|
}
|
|
|
|
short GameScriptItem::GetCurrentState()
|
|
{
|
|
return NativeItem->currentAnimState;
|
|
}
|
|
|
|
void GameScriptItem::SetCurrentState(short state)
|
|
{
|
|
NativeItem->currentAnimState = state;
|
|
}
|
|
|
|
short GameScriptItem::GetGoalState()
|
|
{
|
|
return NativeItem->goalAnimState;
|
|
}
|
|
|
|
void GameScriptItem::SetGoalState(short state)
|
|
{
|
|
NativeItem->goalAnimState = state;
|
|
}
|
|
|
|
short GameScriptItem::GetRequiredState()
|
|
{
|
|
return NativeItem->requiredAnimState;
|
|
}
|
|
|
|
void GameScriptItem::SetRequiredState(short state)
|
|
{
|
|
NativeItem->requiredAnimState = state;
|
|
}
|
|
|
|
sol::object LuaVariables::GetVariable(string key)
|
|
{
|
|
if (variables.find(key) == variables.end())
|
|
return sol::lua_nil;
|
|
return variables[key];
|
|
}
|
|
|
|
void LuaVariables::SetVariable(string key, sol::object value)
|
|
{
|
|
switch (value.get_type())
|
|
{
|
|
case sol::type::lua_nil:
|
|
variables.erase(key);
|
|
break;
|
|
case sol::type::boolean:
|
|
case sol::type::number:
|
|
case sol::type::string:
|
|
variables[key] = value;
|
|
break;
|
|
default:
|
|
if (WarningsAsErrors)
|
|
throw runtime_error("unsupported variable type");
|
|
break;
|
|
}
|
|
}
|