From e97c47315e9ebda78b8bbf130e4af246ae3275ff Mon Sep 17 00:00:00 2001
From: Sezz
Date: Wed, 12 Mar 2025 00:10:05 +1100
Subject: [PATCH 1/2] Remove m prefix from private logic handler fields
---
.../Internal/TEN/Logic/LogicHandler.cpp | 343 +++++++++---------
.../Internal/TEN/Logic/LogicHandler.h | 64 ++--
2 files changed, 205 insertions(+), 202 deletions(-)
diff --git a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp
index 2c23ff09a..e85c98ce5 100644
--- a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp
+++ b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp
@@ -194,11 +194,11 @@ sol::object GetVariable(sol::table tab, sol::object key)
return tab.raw_get(key);
}
-LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lua }
+LogicHandler::LogicHandler(sol::state* lua, sol::table& parent) : _handler{ lua }
{
- m_handler.GetState()->set_function("print", &LogicHandler::LogPrint, this);
+ _handler.GetState()->set_function("print", &LogicHandler::LogPrint, this);
- sol::table tableLogic{ m_handler.GetState()->lua_state(), sol::create };
+ auto tableLogic = sol::table(_handler.GetState()->lua_state(), sol::create);
parent.set(ScriptReserved_Logic, tableLogic);
@@ -208,24 +208,24 @@ LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lu
tableLogic.set_function(ScriptReserved_EnableEvent, &LogicHandler::EnableEvent, this);
tableLogic.set_function(ScriptReserved_DisableEvent, &LogicHandler::DisableEvent, this);
- m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EndReason, LEVEL_END_REASONS);
- m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_CallbackPoint, CALLBACK_POINTS);
- m_handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EventType, EVENT_TYPES);
+ _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EndReason, LEVEL_END_REASONS);
+ _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_CallbackPoint, CALLBACK_POINTS);
+ _handler.MakeReadOnlyTable(tableLogic, ScriptReserved_EventType, EVENT_TYPES);
- m_callbacks.insert(std::make_pair(CallbackPoint::PreStart, &m_callbacksPreStart));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostStart, &m_callbacksPostStart));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreLoad, &m_callbacksPreLoad));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostLoad, &m_callbacksPostLoad));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreLoop, &m_callbacksPreLoop));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostLoop, &m_callbacksPostLoop));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreSave, &m_callbacksPreSave));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostSave, &m_callbacksPostSave));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreEnd, &m_callbacksPreEnd));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostEnd, &m_callbacksPostEnd));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreUseItem, &m_callbacksPreUseItem));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostUseItem, &m_callbacksPostUseItem));
- m_callbacks.insert(std::make_pair(CallbackPoint::PreFreeze, &m_callbacksPreFreeze));
- m_callbacks.insert(std::make_pair(CallbackPoint::PostFreeze, &m_callbacksPostFreeze));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreStart, &_callbacksPreStart));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostStart, &_callbacksPostStart));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreLoad, &_callbacksPreLoad));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostLoad, &_callbacksPostLoad));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreLoop, &_callbacksPreLoop));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostLoop, &_callbacksPostLoop));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreSave, &_callbacksPreSave));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostSave, &_callbacksPostSave));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreEnd, &_callbacksPreEnd));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostEnd, &_callbacksPostEnd));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreUseItem, &_callbacksPreUseItem));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostUseItem, &_callbacksPostUseItem));
+ _callbacks.insert(std::make_pair(CallbackPoint::PreFreeze, &_callbacksPreFreeze));
+ _callbacks.insert(std::make_pair(CallbackPoint::PostFreeze, &_callbacksPostFreeze));
LevelFunc::Register(tableLogic);
@@ -234,10 +234,10 @@ LogicHandler::LogicHandler(sol::state* lua, sol::table & parent) : m_handler{ lu
void LogicHandler::ResetGameTables()
{
- auto state = m_handler.GetState();
+ auto state = _handler.GetState();
MakeSpecialTable(state, ScriptReserved_GameVars, &GetVariable, &SetVariable);
- (*state)[ScriptReserved_GameVars][ScriptReserved_Engine] = sol::table{ *state, sol::create };
+ (*state)[ScriptReserved_GameVars][ScriptReserved_Engine] = sol::table(*state, sol::create);
}
/*** Register a function as a callback.
@@ -286,9 +286,8 @@ Any returned value will be discarded.
*/
void LogicHandler::AddCallback(CallbackPoint point, const LevelFunc& levelFunc)
{
- auto it = m_callbacks.find(point);
-
- if (it == m_callbacks.end())
+ auto it = _callbacks.find(point);
+ if (it == _callbacks.end())
{
TENLog("Error: callback point not found. Attempted to access missing value.", LogLevel::Error, LogConfig::All, false);
return;
@@ -315,8 +314,8 @@ Will have no effect if the function was not registered as a callback
*/
void LogicHandler::RemoveCallback(CallbackPoint point, const LevelFunc& levelFunc)
{
- auto it = m_callbacks.find(point);
- if (it == m_callbacks.end())
+ auto it = _callbacks.find(point);
+ if (it == _callbacks.end())
{
TENLog("Error: callback point not found. Attempted to access missing value.", LogLevel::Error, LogConfig::All, false);
return;
@@ -374,7 +373,7 @@ void LogicHandler::DisableEvent(const std::string& name, EventType type)
void LogicHandler::ResetLevelTables()
{
- auto state = m_handler.GetState();
+ auto state = _handler.GetState();
MakeSpecialTable(state, ScriptReserved_LevelVars, &GetVariable, &SetVariable);
(*state)[ScriptReserved_LevelVars][ScriptReserved_Engine] = sol::table{ *state, sol::create };
@@ -382,15 +381,15 @@ void LogicHandler::ResetLevelTables()
sol::object LogicHandler::GetLevelFuncsMember(sol::table tab, const std::string& name)
{
- std::string partName = tab.raw_get(strKey);
- auto& map = m_levelFuncs_tablesOfNames[partName];
+ auto partName = tab.raw_get(strKey);
+ auto& map = _levelFuncs_tablesOfNames[partName];
auto fullNameIt = map.find(name);
if (fullNameIt != std::cend(map))
{
std::string_view key = fullNameIt->second;
- if (m_levelFuncs_levelFuncObjects[key].valid())
- return m_levelFuncs_levelFuncObjects[key];
+ if (_levelFuncs_levelFuncObjects[key].valid())
+ return _levelFuncs_levelFuncObjects[key];
}
return sol::nil;
@@ -400,7 +399,7 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name,
{
if (sol::type::lua_nil == value.get_type())
{
- std::string error{ "Tried to set " + std::string{ScriptReserved_LevelFuncs} + " member " };
+ auto error = std::string("Tried to set " + std::string{ScriptReserved_LevelFuncs} + " member ");
error += name + " to nil; this not permitted at this time.";
return ScriptAssert(false, error);
}
@@ -409,27 +408,27 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name,
// Add name to table of names.
auto partName = tab.raw_get(strKey);
auto fullName = partName + "." + name;
- auto& parentNameTab = m_levelFuncs_tablesOfNames[partName];
+ auto& parentNameTab = _levelFuncs_tablesOfNames[partName];
parentNameTab.insert_or_assign(name, fullName);
// Create LevelFunc userdata and add that too.
LevelFunc levelFuncObject;
levelFuncObject.m_funcName = fullName;
levelFuncObject.m_handler = this;
- m_levelFuncs_levelFuncObjects[fullName] = levelFuncObject;
+ _levelFuncs_levelFuncObjects[fullName] = levelFuncObject;
// Add function itself.
- m_levelFuncs_luaFunctions[fullName] = value;
+ _levelFuncs_luaFunctions[fullName] = value;
}
else if (sol::type::table == value.get_type())
{
// Create and add new name map.
- std::unordered_map newNameMap;
+ auto newNameMap = std::unordered_map{};
auto fullName = tab.raw_get(strKey) + "." + name;
- m_levelFuncs_tablesOfNames.insert_or_assign(fullName, newNameMap);
+ _levelFuncs_tablesOfNames.insert_or_assign(fullName, newNameMap);
// Create new table to put in the LevelFuncs hierarchy.
- auto newLevelFuncsTab = MakeSpecialTable(m_handler.GetState(), name, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this);
+ auto newLevelFuncsTab = MakeSpecialTable(_handler.GetState(), name, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this);
newLevelFuncsTab.raw_set(strKey, fullName);
tab.raw_set(name, newLevelFuncsTab);
@@ -440,7 +439,7 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name,
}
else
{
- std::string error{ "Failed to add " };
+ auto error = std::string("Failed to add ");
error += name + " to " + ScriptReserved_LevelFuncs + " or one of its tables; it must be a function or a table of functions.";
return ScriptAssert(false, error);
}
@@ -450,10 +449,10 @@ bool LogicHandler::SetLevelFuncsMember(sol::table tab, const std::string& name,
void LogicHandler::LogPrint(sol::variadic_args args)
{
- std::string str;
+ auto str = std::string();
for (const sol::object& o : args)
{
- auto strPart = (*m_handler.GetState())["tostring"](o).get();
+ auto strPart = (*_handler.GetState())["tostring"](o).get();
str += strPart;
str += "\t";
}
@@ -465,10 +464,10 @@ void LogicHandler::ResetScripts(bool clearGameVars)
{
FreeLevelScripts();
- for (auto& [first, second] : m_callbacks)
+ for (auto& [first, second] : _callbacks)
second->clear();
- auto currentPackage = m_handler.GetState()->get("package");
+ auto currentPackage = _handler.GetState()->get("package");
auto currentLoaded = currentPackage.get("loaded");
for (auto& [first, second] : currentLoaded)
@@ -477,35 +476,35 @@ void LogicHandler::ResetScripts(bool clearGameVars)
if (clearGameVars)
ResetGameTables();
- m_handler.ResetGlobals();
+ _handler.ResetGlobals();
- m_shortenedCalls = false;
+ _shortenedCalls = false;
- m_handler.GetState()->collect_garbage();
+ _handler.GetState()->collect_garbage();
}
void LogicHandler::FreeLevelScripts()
{
- m_levelFuncs = MakeSpecialTable(m_handler.GetState(), ScriptReserved_LevelFuncs, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this);
- m_levelFuncs.raw_set(strKey, ScriptReserved_LevelFuncs);
+ _levelFuncs = MakeSpecialTable(_handler.GetState(), ScriptReserved_LevelFuncs, &LogicHandler::GetLevelFuncsMember, &LogicHandler::SetLevelFuncsMember, this);
+ _levelFuncs.raw_set(strKey, ScriptReserved_LevelFuncs);
- m_levelFuncs[ScriptReserved_Engine] = sol::table{ *m_handler.GetState(), sol::create };
+ _levelFuncs[ScriptReserved_Engine] = sol::table(*_handler.GetState(), sol::create);
- m_levelFuncs_tablesOfNames.clear();
- m_levelFuncs_luaFunctions.clear();
- m_levelFuncs_levelFuncObjects = sol::table{ *m_handler.GetState(), sol::create };
+ _levelFuncs_tablesOfNames.clear();
+ _levelFuncs_luaFunctions.clear();
+ _levelFuncs_levelFuncObjects = sol::table(*_handler.GetState(), sol::create);
- m_levelFuncs_tablesOfNames.emplace(std::make_pair(ScriptReserved_LevelFuncs, std::unordered_map{}));
+ _levelFuncs_tablesOfNames.emplace(std::make_pair(ScriptReserved_LevelFuncs, std::unordered_map{}));
ResetLevelTables();
- m_onStart = sol::nil;
- m_onLoad = sol::nil;
- m_onLoop = sol::nil;
- m_onSave = sol::nil;
- m_onEnd = sol::nil;
- m_onUseItem = sol::nil;
- m_onFreeze = sol::nil;
- m_handler.GetState()->collect_garbage();
+ _onStart = sol::nil;
+ _onLoad = sol::nil;
+ _onLoop = sol::nil;
+ _onSave = sol::nil;
+ _onEnd = sol::nil;
+ _onUseItem = sol::nil;
+ _onFreeze = sol::nil;
+ _handler.GetState()->collect_garbage();
}
// Used when loading.
@@ -516,13 +515,13 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve
ResetLevelTables();
- std::unordered_map solTables;
+ auto solTables = std::unordered_map{};
for(int i = 0; i < vars.size(); ++i)
{
if (std::holds_alternative(vars[i]))
{
- solTables.try_emplace(i, *m_handler.GetState(), sol::create);
+ solTables.try_emplace(i, *_handler.GetState(), sol::create);
auto indexTab = std::get(vars[i]);
for (auto& [first, second] : indexTab)
{
@@ -530,7 +529,7 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve
// create it if need be
if (std::holds_alternative(vars[second]))
{
- solTables.try_emplace(second, *m_handler.GetState(), sol::create);
+ solTables.try_emplace(second, *_handler.GetState(), sol::create);
solTables[i][vars[first]] = solTables[second];
}
else if (std::holds_alternative(vars[second]))
@@ -594,14 +593,14 @@ void LogicHandler::SetVariables(const std::vector& vars, bool onlyLeve
sol::table levelVars = rootTable[ScriptReserved_LevelVars];
for (auto& [first, second] : levelVars)
- (*m_handler.GetState())[ScriptReserved_LevelVars][first] = second;
+ (*_handler.GetState())[ScriptReserved_LevelVars][first] = second;
if (onlyLevelVars)
return;
sol::table gameVars = rootTable[ScriptReserved_GameVars];
for (auto& [first, second] : gameVars)
- (*m_handler.GetState())[ScriptReserved_GameVars][first] = second;
+ (*_handler.GetState())[ScriptReserved_GameVars][first] = second;
}
template
@@ -623,10 +622,10 @@ int Handle(TypeFrom& var, MapType& varsMap, size_t& numVars, std::vector(key))
{
path += "[" + std::to_string(std::get(key)) + "]";
@@ -635,9 +634,13 @@ std::string LogicHandler::GetRequestedPath() const
{
auto part = std::get(key);
if (i > 0)
+ {
path += "." + part;
+ }
else
+ {
path += part;
+ }
}
}
@@ -647,15 +650,15 @@ std::string LogicHandler::GetRequestedPath() const
// Used when saving.
void LogicHandler::GetVariables(std::vector& vars)
{
- sol::table tab{ *m_handler.GetState(), sol::create };
- tab[ScriptReserved_LevelVars] = (*m_handler.GetState())[ScriptReserved_LevelVars];
- tab[ScriptReserved_GameVars] = (*m_handler.GetState())[ScriptReserved_GameVars];
+ auto tab = sol::table(*_handler.GetState(), sol::create);
+ tab[ScriptReserved_LevelVars] = (*_handler.GetState())[ScriptReserved_LevelVars];
+ tab[ScriptReserved_GameVars] = (*_handler.GetState())[ScriptReserved_GameVars];
- std::unordered_map varsMap;
- std::unordered_map numMap;
- std::unordered_map boolMap;
+ auto varsMap = std::unordered_map{};
+ auto numMap = std::unordered_map{};
+ auto boolMap = std::unordered_map{};
- size_t numVars = 0;
+ size_t varCount = 0;
// The following functions will all try to put their values in a map. If it succeeds
// then the value was not already in the map, so we can put it into the var vector.
@@ -667,12 +670,12 @@ void LogicHandler::GetVariables(std::vector& vars)
auto handleNum = [&](auto num, auto map)
{
- auto [first, second] = map.insert(std::make_pair(num, (int)numVars));
+ auto [first, second] = map.insert(std::make_pair(num, (int)varCount));
if (second)
{
vars.push_back(num);
- ++numVars;
+ ++varCount;
}
return first->second;
@@ -681,12 +684,12 @@ void LogicHandler::GetVariables(std::vector& vars)
auto handleStr = [&](const sol::object& obj)
{
auto str = obj.as();
- auto [first, second] = varsMap.insert(std::make_pair(str.data(), (int)numVars));
+ auto [first, second] = varsMap.insert(std::make_pair(str.data(), (int)varCount));
if (second)
{
vars.push_back(std::string{ str.data() });
- ++numVars;
+ ++varCount;
}
return first->second;
@@ -694,12 +697,12 @@ void LogicHandler::GetVariables(std::vector& vars)
auto handleFuncName = [&](const LevelFunc& fnh)
{
- auto [first, second] = varsMap.insert(std::make_pair(&fnh, (int)numVars));
+ auto [first, second] = varsMap.insert(std::make_pair(&fnh, (int)varCount));
if (second)
{
vars.push_back(FuncName{ std::string{ fnh.m_funcName } });
- ++numVars;
+ ++varCount;
}
return first->second;
@@ -707,11 +710,11 @@ void LogicHandler::GetVariables(std::vector& vars)
std::function populate = [&](const sol::table& obj)
{
- auto [first, second] = varsMap.insert(std::make_pair(obj.pointer(), (int)numVars));
+ auto [first, second] = varsMap.insert(std::make_pair(obj.pointer(), (int)varCount));
if(second)
{
- ++numVars;
+ ++varCount;
auto id = first->second;
vars.push_back(IndexTable{});
@@ -729,7 +732,7 @@ void LogicHandler::GetVariables(std::vector& vars)
{
keyIndex = handleStr(first);
key = std::string{ first.as().data() };
- m_savedVarPath.push_back(key);
+ _savedVarPath.push_back(key);
}
break;
@@ -744,7 +747,7 @@ void LogicHandler::GetVariables(std::vector& vars)
{
keyIndex = handleNum(data, numMap);
key = static_cast(data);
- m_savedVarPath.push_back(key);
+ _savedVarPath.push_back(key);
}
}
break;
@@ -784,23 +787,23 @@ void LogicHandler::GetVariables(std::vector& vars)
{
if (second.is())
{
- putInVars(Handle(second.as(), varsMap, numVars, vars));
+ putInVars(Handle(second.as(), varsMap, varCount, vars));
}
else if (second.is())
{
- putInVars(Handle(second.as(), varsMap, numVars, vars));
+ putInVars(Handle(second.as(), varsMap, varCount, vars));
}
else if (second.is())
{
- putInVars(Handle(second.as(), varsMap, numVars, vars));
+ putInVars(Handle(second.as(), varsMap, varCount, vars));
}
else if (second.is
+
+Objects.ObjID constants.
The following constants are inside ObjID.
@@ -298,6 +303,7 @@ GLADIATOR
CYBORG
SNIPER
CHEF
+KOLD
WINGED_MUMMY
CENTAUR_MUTANT
DOPPELGANGER
@@ -322,14 +328,14 @@ SWORD_GUARDIAN
SWORD_GUARDIAN_STATUE
SHIVA
SHIVA_STATUE
-TRIBEBOSS
+WILLARD
CIVVY
MUTANT2
LIZARD
TONY_BOSS
TONY_BOSS_FLAME
PUNA_BOSS
-SOPHIA_LEE_BOSS
+SOPHIA_LEIGH_BOSS
LASER_BOLT
SKELETON
MUMMY
@@ -361,7 +367,7 @@ ATTACK_SUB
IMP
IMP_ROCK
GUNSHIP
-AUTOGUN
+AUTO_GUN_VCI
ROMAN_GOD1
ROMAN_GOD2
LAGOON_WITCH
@@ -370,6 +376,7 @@ BOSS_EXPLOSION_SHOCKWAVE
BOSS_EXPLOSION_RING
CLAW_MUTANT
WASP_MUTANT
+TWIN_AUTO_GUN
SKATEBOARD
SKATEBOARD_KID
WINSTON
@@ -505,11 +512,6 @@ DAMOCLES_SWORD
ELECTRIC_CLEANER
SLAMMING_DOORS
SWINGING_BLADE
-ELECTRIC_BALL
-ELECTRIC_BALL_IMPACT_POINT
-THOR_HAMMER_HANDLE
-THOR_HAMMER_HEAD
-MOVING_LASER
PUZZLE_ITEM1
PUZZLE_ITEM2
PUZZLE_ITEM3
@@ -742,7 +744,6 @@ BURNING_TORCH_ITEM
CLOCKWORK_BEETLE
CLOCKWORK_BEETLE_COMBO1
CLOCKWORK_BEETLE_COMBO2
-
SWITCH_TYPE1
SWITCH_TYPE2
SWITCH_TYPE3
@@ -764,10 +765,10 @@ SHOOT_SWITCH2
SHOOT_SWITCH3
SHOOT_SWITCH4
AIRLOCK_SWITCH
-ID_UNDERWATER_WALL_SWITCH_1
-ID_UNDERWATER_WALL_SWITCH_2
-ID_UNDERWATER_CEILING_SWITCH_1
-ID_UNDERWATER_CEILING_SWITCH_2
+UNDERWATER_WALL_SWITCH1
+UNDERWATER_WALL_SWITCH2
+UNDERWATER_CEILING_SWITCH1
+UNDERWATER_CEILING_SWITCH2
TURN_SWITCH
COG_SWITCH
LEVER_SWITCH
@@ -914,7 +915,7 @@ FLOOR_LASERS
KILL_ALL_TRIGGERS
TRIGGER_TRIGGERER
HIGH_OBJECT1
-HIGH_OBJECT2
+EMBER_EMITTER
SMASH_OBJECT1
SMASH_OBJECT2
SMASH_OBJECT3
@@ -945,7 +946,6 @@ FISHTANK
DOPPELGANGER_ORIGIN
CORPSE
WRAITH_TRAP
-WATERFALL_EMITTER
MESHSWAP1
MESHSWAP2
MESHSWAP3
@@ -1103,8 +1103,6 @@ BRIDGE_TILT3
BRIDGE_TILT4
BRIDGE_CUSTOM
HORIZON
-BINOCULAR_GRAPHICS
-TARGET_GRAPHICS
SKY_GRAPHICS
DEFAULT_SPRITES
MISC_SPRITES
@@ -1119,31 +1117,20 @@ RUBBER_BOAT_WAVE_SPRITES
SKIDOO_SNOW_TRAIL_SPRITES
KAYAK_PADDLE_TRAIL_SPRITE
KAYAK_WAKE_SPRTIES
-BINOCULAR_GRAPHIC
-LASER_SIGHT_GRAPHIC
-CAUSTICS_TEXTURES
-BAR_BORDER_GRAPHIC
+BINOCULAR_GRAPHICS
+LASERSIGHT_GRAPHICS
+CAUSTIC_TEXTURES
+BAR_BORDER_GRAPHICS
HEALTH_BAR_TEXTURE
AIR_BAR_TEXTURE
DASH_BAR_TEXTURE
SFX_BAR_TEXTURE
-SPEEDOMETER
-WATERFALL
-CUSTOM_BAR_GRAPHIC
-CUSTOM_AMMO_GRAPHIC
-DIARY_SPRITES
-DIARY_ENTRY_SPRITES
-
-PANEL_BORDER
-PANEL_MIDDLE
-PANEL_CORNER
-PANEL_DIAGONAL
-PANEL_STRIP
-PANEL_HALF_BORDER1
-PANEL_HALF_BORDER2
-PANEL_MIDDLE_CORNER
+CROSSHAIR_GRAPHICS
+SPEEDOMETER_GRAPHICS
+CUSTOM_BAR_GRAPHICS
+CUSTOM_AMMO_GRAPHICS
-Table of constants.
+
@@ -1158,7 +1145,8 @@ PANEL_MIDDLE_CORNER
PickupConstants
- Objects.ObjID pickup constants.
+
+Objects.ObjID pickup constants.
The following ObjID members refer to pickups.
@@ -1306,6 +1294,30 @@ PICKUP_ITEM15_COMBO1
PICKUP_ITEM15_COMBO2
PICKUP_ITEM16_COMBO1
PICKUP_ITEM16_COMBO2
+EXAMINE1
+EXAMINE2
+EXAMINE3
+EXAMINE4
+EXAMINE5
+EXAMINE6
+EXAMINE7
+EXAMINE8
+EXAMINE1_COMBO1
+EXAMINE1_COMBO2
+EXAMINE2_COMBO1
+EXAMINE2_COMBO2
+EXAMINE3_COMBO1
+EXAMINE3_COMBO2
+EXAMINE4_COMBO1
+EXAMINE4_COMBO2
+EXAMINE5_COMBO1
+EXAMINE5_COMBO2
+EXAMINE6_COMBO1
+EXAMINE6_COMBO2
+EXAMINE7_COMBO1
+EXAMINE7_COMBO2
+EXAMINE8_COMBO1
+EXAMINE8_COMBO2
HAMMER_ITEM
CROWBAR_ITEM
BURNING_TORCH_ITEM
@@ -1343,10 +1355,57 @@ FLARE_INV_ITEM
COMPASS_ITEM
DIARY_ITEM
STOPWATCH_ITEM
+MEMCARD_LOAD_INV_ITEM
+MEMCARD_SAVE_INV_ITEM
PC_LOAD_INV_ITEM
PC_SAVE_INV_ITEM
-Table of constants.
+
+
+
+
+
+
+
+
+
+
+
+
+ SpriteConstants
+
+
+
+Objects.ObjID sprite constants.
+
+The following ObjID members refer to sprites.
+
+SKY_GRAPHICS
+DEFAULT_SPRITES
+MISC_SPRITES
+CUSTOM_SPRITES
+FIRE_SPRITES
+SMOKE_SPRITES
+SPARK_SPRITE
+DRIP_SPRITE
+EXPLOSION_SPRITES
+MOTORBOAT_FOAM_SPRITES
+RUBBER_BOAT_WAVE_SPRITES
+SKIDOO_SNOW_TRAIL_SPRITES
+KAYAK_PADDLE_TRAIL_SPRITE
+LASERSIGHT_GRAPHICS
+CAUSTIC_TEXTURES
+BAR_BORDER_GRAPHICS
+HEALTH_BAR_TEXTURE
+AIR_BAR_TEXTURE
+DASH_BAR_TEXTURE
+SFX_BAR_TEXTURE
+CROSSHAIR_GRAPHICS
+SPEEDOMETER_GRAPHICS
+CUSTOM_BAR_GRAPHICS
+CUSTOM_AMMO_GRAPHICS
+
+
diff --git a/Documentation/generate_objectlist.ps1 b/Documentation/generate_objectlist.ps1
new file mode 100644
index 000000000..c1c45b354
--- /dev/null
+++ b/Documentation/generate_objectlist.ps1
@@ -0,0 +1,148 @@
+# PowerShell script to generate ObjectIDs.h from game_object_ids.h
+
+$inputFile = "../TombEngine/Objects/game_object_ids.h" # Adjust path if necessary.
+$tempOutputFile = "../TombEngine/Scripting/Internal/TEN/Objects/temp.h"
+$outputFile = "../TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h"
+
+# Read the input file
+if (-Not (Test-Path $inputFile))
+{
+ Write-Host "Error: File '$inputFile' not found."
+ exit 1
+}
+
+# Get the last modified times for both files.
+$inputFileLastModified = (Get-Item $inputFile).LastWriteTime
+if (Test-Path $outputFile) {
+ $outputFileLastModified = (Get-Item $outputFile).LastWriteTime
+} else {
+ $outputFileLastModified = [datetime]::MinValue # If output file doesn't exist, treat it as very old.
+}
+
+# Exit early if the output file is newer than the input file.
+if ($outputFileLastModified -ge $inputFileLastModified) {
+ Write-Host "$outputFile is up to date. No changes made."
+ exit 0
+}
+
+$content = Get-Content $inputFile
+
+# Extract enum values and categorize them.
+$enumValues = @()
+$pickupConstants = @()
+$spriteConstants = @()
+
+$inPickupSection = $false
+$inSpriteSection = $false
+
+foreach ($line in $content)
+{
+ if ($line -match "^\s*ID_([A-Za-z0-9_]+)")
+ {
+ $enumName = $matches[1]
+ $enumValues += $enumName
+
+ if ($enumName -match "_ITEM|EXAMINE")
+ {
+ $pickupConstants += $enumName
+ }
+ elseif ($enumName -match "_SPRITE|_GRAPHIC|TEXTURE")
+ {
+ # These two object IDs are deprecated 3D objects, not sprites.
+ if ($enumName -in @("BINOCULAR_GRAPHICS", "TARGET_GRAPHICS"))
+ {
+ continue
+ }
+
+ $spriteConstants += $enumName
+ }
+
+ }
+}
+
+if ($enumValues.Count -gt 0) { $enumValues = $enumValues[1..($enumValues.Count - 2)] }
+
+# Generate ObjectIDs.h content.
+$header = @"
+#pragma once
+
+// Last generated on $(Get-Date -Format "dd/MM/yyyy")
+
+#include
+#include
+#include "Objects/game_object_ids.h"
+
+/***
+Constants for object IDs.
+@enum Objects.ObjID
+@pragma nostrip
+*/
+
+/*** Objects.ObjID constants.
+
+The following constants are inside ObjID.
+
+"@
+
+$body = $enumValues | ForEach-Object { "`t$_" }
+$footer = @"
+@table Members
+*/
+"@
+
+# Pickup Constants Section.
+$pickupHeader = @"
+
+/*** Objects.ObjID pickup constants.
+
+The following ObjID members refer to pickups.
+
+"@
+
+$pickupBody = $pickupConstants | ForEach-Object { "`t$_" }
+$pickupFooter = @"
+@table PickupConstants
+*/
+"@
+
+# Sprite Constants Section.
+$spriteHeader = @"
+
+/*** Objects.ObjID sprite constants.
+
+The following ObjID members refer to sprites.
+
+"@
+
+$spriteBody = $spriteConstants | ForEach-Object { "`t$_" }
+$spriteFooter = @"
+@table SpriteConstants
+*/
+"@
+
+# Map definition.
+$mapHeader = "static const std::unordered_map kObjIDs {"
+$mapBody = ($enumValues | ForEach-Object { "`t" + '{ "' + "$_" + '", ID_' + "$_" + ' }' }) -join ",`r`n"
+$mapFooter = "};"
+
+# Write to output file
+$header | Set-Content $tempOutputFile
+$body | Add-Content $tempOutputFile
+$footer | Add-Content $tempOutputFile
+$pickupHeader | Add-Content $tempOutputFile
+$pickupBody | Add-Content $tempOutputFile
+$pickupFooter | Add-Content $tempOutputFile
+$spriteHeader | Add-Content $tempOutputFile
+$spriteBody | Add-Content $tempOutputFile
+$spriteFooter | Add-Content $tempOutputFile
+$mapHeader | Add-Content $tempOutputFile
+$mapBody | ForEach-Object { Add-Content $tempOutputFile $_ }
+$mapFooter | Add-Content $tempOutputFile
+
+# Rename the temporary file to the final name.
+if (Test-Path $outputFile) {
+ Remove-Item $outputFile -Force
+}
+Move-Item -Path $tempOutputFile -Destination $outputFile -Force
+
+Write-Host "Generated $outputFile successfully."
\ No newline at end of file
diff --git a/TombEngine/Game/Hud/Speedometer.cpp b/TombEngine/Game/Hud/Speedometer.cpp
index 6253fc6ac..6167b203c 100644
--- a/TombEngine/Game/Hud/Speedometer.cpp
+++ b/TombEngine/Game/Hud/Speedometer.cpp
@@ -70,14 +70,14 @@ namespace TEN::Hud
// Draw dial.
AddDisplaySprite(
- ID_SPEEDOMETER, DIAL_ELEMENT_SPRITE_ID,
+ ID_SPEEDOMETER_GRAPHICS, DIAL_ELEMENT_SPRITE_ID,
POS, 0, SCALE, color,
DIAL_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend,
DisplaySpritePhase::Draw);
// Draw pointer.
AddDisplaySprite(
- ID_SPEEDOMETER, POINTER_ELEMENT_SPRITE_ID,
+ ID_SPEEDOMETER_GRAPHICS, POINTER_ELEMENT_SPRITE_ID,
POS, pointerAngle + POINTER_ANGLE_OFFSET, SCALE, color,
POINTER_PRIORITY, DisplaySpriteAlignMode::Center, DisplaySpriteScaleMode::Fit, BlendMode::AlphaBlend,
DisplaySpritePhase::Draw);
diff --git a/TombEngine/Game/Hud/TargetHighlighter.cpp b/TombEngine/Game/Hud/TargetHighlighter.cpp
index a1d895216..fc30b0714 100644
--- a/TombEngine/Game/Hud/TargetHighlighter.cpp
+++ b/TombEngine/Game/Hud/TargetHighlighter.cpp
@@ -132,7 +132,7 @@ namespace TEN::Hud
void CrosshairData::Draw() const
{
- constexpr auto SPRITE_SEQUENCE_OBJECT_ID = ID_CROSSHAIR;
+ constexpr auto SPRITE_SEQUENCE_OBJECT_ID = ID_CROSSHAIR_GRAPHICS;
constexpr auto STATIC_ELEMENT_SPRITE_ID = 0;
constexpr auto SEGMENT_ELEMENT_SPRITE_ID = 1;
constexpr auto PRIORITY = 0; // TODO: Check later. May interfere with Lua display sprites. -- Sezz 2023.10.06
diff --git a/TombEngine/Objects/Generic/generic_objects.cpp b/TombEngine/Objects/Generic/generic_objects.cpp
index 5e09d44ba..8f10a3420 100644
--- a/TombEngine/Objects/Generic/generic_objects.cpp
+++ b/TombEngine/Objects/Generic/generic_objects.cpp
@@ -176,7 +176,7 @@ void StartSwitches(ObjectInfo* object)
object->shadowType = ShadowMode::All;
}
- for (int objectID = ID_UNDERWATER_WALL_SWITCH_1; objectID <= ID_UNDERWATER_WALL_SWITCH_2; objectID++)
+ for (int objectID = ID_UNDERWATER_WALL_SWITCH1; objectID <= ID_UNDERWATER_WALL_SWITCH2; objectID++)
{
object = &Objects[objectID];
if (object->loaded)
@@ -186,7 +186,7 @@ void StartSwitches(ObjectInfo* object)
}
}
- for (int objectID = ID_UNDERWATER_CEILING_SWITCH_1; objectID <= ID_UNDERWATER_CEILING_SWITCH_2; objectID++)
+ for (int objectID = ID_UNDERWATER_CEILING_SWITCH1; objectID <= ID_UNDERWATER_CEILING_SWITCH2; objectID++)
{
object = &Objects[objectID];
if (object->loaded)
diff --git a/TombEngine/Objects/game_object_ids.h b/TombEngine/Objects/game_object_ids.h
index ab81af1db..edeacf284 100644
--- a/TombEngine/Objects/game_object_ids.h
+++ b/TombEngine/Objects/game_object_ids.h
@@ -630,10 +630,10 @@ enum GAME_OBJECT_ID : short
ID_SHOOT_SWITCH3,
ID_SHOOT_SWITCH4,
ID_AIRLOCK_SWITCH,
- ID_UNDERWATER_WALL_SWITCH_1,
- ID_UNDERWATER_WALL_SWITCH_2,
- ID_UNDERWATER_CEILING_SWITCH_1,
- ID_UNDERWATER_CEILING_SWITCH_2,
+ ID_UNDERWATER_WALL_SWITCH1,
+ ID_UNDERWATER_WALL_SWITCH2,
+ ID_UNDERWATER_CEILING_SWITCH1,
+ ID_UNDERWATER_CEILING_SWITCH2,
ID_TURN_SWITCH,
ID_COG_SWITCH,
ID_LEVER_SWITCH,
@@ -979,9 +979,10 @@ enum GAME_OBJECT_ID : short
ID_BRIDGE_CUSTOM,
ID_HORIZON = 1350,
- ID_BINOCULAR_GRAPHICS,
- ID_TARGET_GRAPHICS,
- ID_SKY_GRAPHICS,
+
+ // Sprite sequences.
+
+ ID_SKY_GRAPHICS = 1353,
ID_DEFAULT_SPRITES,
ID_MISC_SPRITES,
ID_CUSTOM_SPRITES,
@@ -996,30 +997,22 @@ enum GAME_OBJECT_ID : short
ID_SKIDOO_SNOW_TRAIL_SPRITES,
ID_KAYAK_PADDLE_TRAIL_SPRITE,
ID_KAYAK_WAKE_SPRTIES,
- ID_BINOCULAR_GRAPHIC,
- ID_LASER_SIGHT_GRAPHIC,
- ID_CAUSTICS_TEXTURES,
- ID_BAR_BORDER_GRAPHIC,
+ ID_BINOCULAR_GRAPHICS,
+ ID_LASERSIGHT_GRAPHICS,
+ ID_CAUSTIC_TEXTURES,
+ ID_BAR_BORDER_GRAPHICS,
ID_HEALTH_BAR_TEXTURE,
ID_AIR_BAR_TEXTURE,
ID_DASH_BAR_TEXTURE,
ID_SFX_BAR_TEXTURE,
ID_WATERFALL_SPRITES,
// 1379
- ID_CROSSHAIR = 1380,
- ID_SPEEDOMETER,
- ID_CUSTOM_BAR_GRAPHIC,
- ID_CUSTOM_AMMO_GRAPHIC,
+ ID_CROSSHAIR_GRAPHICS = 1380,
+ ID_SPEEDOMETER_GRAPHICS,
+ ID_CUSTOM_BAR_GRAPHICS,
+ ID_CUSTOM_AMMO_GRAPHICS,
ID_DIARY_SPRITES,
ID_DIARY_ENTRY_SPRITES,
- ID_PANEL_BORDER = 1400,
- ID_PANEL_MIDDLE,
- ID_PANEL_CORNER,
- ID_PANEL_DIAGONAL,
- ID_PANEL_STRIP,
- ID_PANEL_HALF_BORDER1,
- ID_PANEL_HALF_BORDER2,
- ID_PANEL_MIDDLE_CORNER,
ID_NUMBER_OBJECTS
};
diff --git a/TombEngine/Renderer/RendererCompatibility.cpp b/TombEngine/Renderer/RendererCompatibility.cpp
index e8cc46136..7ae2ef7d5 100644
--- a/TombEngine/Renderer/RendererCompatibility.cpp
+++ b/TombEngine/Renderer/RendererCompatibility.cpp
@@ -883,7 +883,7 @@ namespace TEN::Renderer
_spriteSequences[SpriteSequencesIds[i]] = sequence;
- if (SpriteSequencesIds[i] == ID_CAUSTICS_TEXTURES)
+ if (SpriteSequencesIds[i] == ID_CAUSTIC_TEXTURES)
{
_causticTextures.clear();
for (int j = 0; j < sequence.SpritesList.size(); j++)
diff --git a/TombEngine/Renderer/RendererDraw.cpp b/TombEngine/Renderer/RendererDraw.cpp
index bd6b84344..de5ab3544 100644
--- a/TombEngine/Renderer/RendererDraw.cpp
+++ b/TombEngine/Renderer/RendererDraw.cpp
@@ -2704,8 +2704,8 @@ namespace TEN::Renderer
// Bind caustics texture.
if (_causticTextures.size() > 0)
{
- int nmeshes = -Objects[ID_CAUSTICS_TEXTURES].nmeshes;
- int meshIndex = Objects[ID_CAUSTICS_TEXTURES].meshIndex;
+ int nmeshes = -Objects[ID_CAUSTIC_TEXTURES].nmeshes;
+ int meshIndex = Objects[ID_CAUSTIC_TEXTURES].meshIndex;
int causticsFrame = GlobalCounter % _causticTextures.size();
BindTexture(TextureRegister::CausticsMap, &_causticTextures[causticsFrame], SamplerStateRegister::AnisotropicClamp);
}
diff --git a/TombEngine/Renderer/RendererDraw2D.cpp b/TombEngine/Renderer/RendererDraw2D.cpp
index 8dd4434a8..cf5648e3f 100644
--- a/TombEngine/Renderer/RendererDraw2D.cpp
+++ b/TombEngine/Renderer/RendererDraw2D.cpp
@@ -119,7 +119,7 @@ namespace TEN::Renderer
void Renderer::DrawBar(float percent, const RendererHudBar& bar, GAME_OBJECT_ID textureSlot, int frame, bool isPoisoned)
{
- if (!CheckIfSlotExists(ID_BAR_BORDER_GRAPHIC, "Bar rendering"))
+ if (!CheckIfSlotExists(ID_BAR_BORDER_GRAPHICS, "Bar rendering"))
return;
unsigned int strides = sizeof(Vertex);
@@ -141,7 +141,7 @@ namespace TEN::Renderer
BindConstantBufferVS(ConstantBufferRegister::Hud, _cbHUD.get());
- RendererSprite* borderSprite = &_sprites[Objects[ID_BAR_BORDER_GRAPHIC].meshIndex];
+ RendererSprite* borderSprite = &_sprites[Objects[ID_BAR_BORDER_GRAPHICS].meshIndex];
_stHUDBar.BarStartUV = borderSprite->UV[0];
_stHUDBar.BarScale = Vector2(borderSprite->Width / (float)borderSprite->Texture->Width, borderSprite->Height / (float)borderSprite->Texture->Height);
_cbHUDBar.UpdateData(_stHUDBar, _context.Get());
@@ -266,11 +266,11 @@ namespace TEN::Renderer
if (Lara.Control.Look.OpticRange != 0 && !Lara.Control.Look.IsUsingLasersight)
{
- DrawFullScreenSprite(&_sprites[Objects[ID_BINOCULAR_GRAPHIC].meshIndex], Vector3::One, false);
+ DrawFullScreenSprite(&_sprites[Objects[ID_BINOCULAR_GRAPHICS].meshIndex], Vector3::One, false);
}
else if (Lara.Control.Look.OpticRange != 0 && Lara.Control.Look.IsUsingLasersight)
{
- DrawFullScreenSprite(&_sprites[Objects[ID_LASER_SIGHT_GRAPHIC].meshIndex], Vector3::One);
+ DrawFullScreenSprite(&_sprites[Objects[ID_LASERSIGHT_GRAPHICS].meshIndex], Vector3::One);
SetBlendMode(BlendMode::Opaque);
diff --git a/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h b/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h
index eeeb8e7fa..ac4294029 100644
--- a/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h
+++ b/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h
@@ -1,6 +1,6 @@
#pragma once
-// Last generated on 18/11/2022
+// Last generated on 11/03/2025
#include
#include
@@ -165,6 +165,7 @@ The following constants are inside ObjID.
CYBORG
SNIPER
CHEF
+ KOLD
WINGED_MUMMY
CENTAUR_MUTANT
DOPPELGANGER
@@ -189,14 +190,14 @@ The following constants are inside ObjID.
SWORD_GUARDIAN_STATUE
SHIVA
SHIVA_STATUE
- TRIBEBOSS
+ WILLARD
CIVVY
MUTANT2
LIZARD
TONY_BOSS
TONY_BOSS_FLAME
PUNA_BOSS
- SOPHIA_LEE_BOSS
+ SOPHIA_LEIGH_BOSS
LASER_BOLT
SKELETON
MUMMY
@@ -228,7 +229,7 @@ The following constants are inside ObjID.
IMP
IMP_ROCK
GUNSHIP
- AUTOGUN
+ AUTO_GUN_VCI
ROMAN_GOD1
ROMAN_GOD2
LAGOON_WITCH
@@ -237,6 +238,7 @@ The following constants are inside ObjID.
BOSS_EXPLOSION_RING
CLAW_MUTANT
WASP_MUTANT
+ TWIN_AUTO_GUN
SKATEBOARD
SKATEBOARD_KID
WINSTON
@@ -372,11 +374,6 @@ The following constants are inside ObjID.
ELECTRIC_CLEANER
SLAMMING_DOORS
SWINGING_BLADE
- ELECTRIC_BALL
- ELECTRIC_BALL_IMPACT_POINT
- THOR_HAMMER_HANDLE
- THOR_HAMMER_HEAD
- MOVING_LASER
PUZZLE_ITEM1
PUZZLE_ITEM2
PUZZLE_ITEM3
@@ -609,7 +606,6 @@ The following constants are inside ObjID.
CLOCKWORK_BEETLE
CLOCKWORK_BEETLE_COMBO1
CLOCKWORK_BEETLE_COMBO2
-
SWITCH_TYPE1
SWITCH_TYPE2
SWITCH_TYPE3
@@ -631,10 +627,10 @@ The following constants are inside ObjID.
SHOOT_SWITCH3
SHOOT_SWITCH4
AIRLOCK_SWITCH
- ID_UNDERWATER_WALL_SWITCH_1
- ID_UNDERWATER_WALL_SWITCH_2
- ID_UNDERWATER_CEILING_SWITCH_1
- ID_UNDERWATER_CEILING_SWITCH_2
+ UNDERWATER_WALL_SWITCH1
+ UNDERWATER_WALL_SWITCH2
+ UNDERWATER_CEILING_SWITCH1
+ UNDERWATER_CEILING_SWITCH2
TURN_SWITCH
COG_SWITCH
LEVER_SWITCH
@@ -781,7 +777,7 @@ The following constants are inside ObjID.
KILL_ALL_TRIGGERS
TRIGGER_TRIGGERER
HIGH_OBJECT1
- HIGH_OBJECT2
+ EMBER_EMITTER
SMASH_OBJECT1
SMASH_OBJECT2
SMASH_OBJECT3
@@ -812,7 +808,6 @@ The following constants are inside ObjID.
DOPPELGANGER_ORIGIN
CORPSE
WRAITH_TRAP
- WATERFALL_EMITTER
MESHSWAP1
MESHSWAP2
MESHSWAP3
@@ -970,8 +965,6 @@ The following constants are inside ObjID.
BRIDGE_TILT4
BRIDGE_CUSTOM
HORIZON
- BINOCULAR_GRAPHICS
- TARGET_GRAPHICS
SKY_GRAPHICS
DEFAULT_SPRITES
MISC_SPRITES
@@ -986,30 +979,18 @@ The following constants are inside ObjID.
SKIDOO_SNOW_TRAIL_SPRITES
KAYAK_PADDLE_TRAIL_SPRITE
KAYAK_WAKE_SPRTIES
- BINOCULAR_GRAPHIC
- LASER_SIGHT_GRAPHIC
- CAUSTICS_TEXTURES
- BAR_BORDER_GRAPHIC
+ BINOCULAR_GRAPHICS
+ LASERSIGHT_GRAPHICS
+ CAUSTIC_TEXTURES
+ BAR_BORDER_GRAPHICS
HEALTH_BAR_TEXTURE
AIR_BAR_TEXTURE
DASH_BAR_TEXTURE
SFX_BAR_TEXTURE
- SPEEDOMETER
- WATERFALL
- CUSTOM_BAR_GRAPHIC
- CUSTOM_AMMO_GRAPHIC
- DIARY_SPRITES
- DIARY_ENTRY_SPRITES
-
- PANEL_BORDER
- PANEL_MIDDLE
- PANEL_CORNER
- PANEL_DIAGONAL
- PANEL_STRIP
- PANEL_HALF_BORDER1
- PANEL_HALF_BORDER2
- PANEL_MIDDLE_CORNER
-Table of constants.
+ CROSSHAIR_GRAPHICS
+ SPEEDOMETER_GRAPHICS
+ CUSTOM_BAR_GRAPHICS
+ CUSTOM_AMMO_GRAPHICS
@table Members
*/
@@ -1161,6 +1142,30 @@ The following ObjID members refer to pickups.
PICKUP_ITEM15_COMBO2
PICKUP_ITEM16_COMBO1
PICKUP_ITEM16_COMBO2
+ EXAMINE1
+ EXAMINE2
+ EXAMINE3
+ EXAMINE4
+ EXAMINE5
+ EXAMINE6
+ EXAMINE7
+ EXAMINE8
+ EXAMINE1_COMBO1
+ EXAMINE1_COMBO2
+ EXAMINE2_COMBO1
+ EXAMINE2_COMBO2
+ EXAMINE3_COMBO1
+ EXAMINE3_COMBO2
+ EXAMINE4_COMBO1
+ EXAMINE4_COMBO2
+ EXAMINE5_COMBO1
+ EXAMINE5_COMBO2
+ EXAMINE6_COMBO1
+ EXAMINE6_COMBO2
+ EXAMINE7_COMBO1
+ EXAMINE7_COMBO2
+ EXAMINE8_COMBO1
+ EXAMINE8_COMBO2
HAMMER_ITEM
CROWBAR_ITEM
BURNING_TORCH_ITEM
@@ -1198,14 +1203,44 @@ The following ObjID members refer to pickups.
COMPASS_ITEM
DIARY_ITEM
STOPWATCH_ITEM
+ MEMCARD_LOAD_INV_ITEM
+ MEMCARD_SAVE_INV_ITEM
PC_LOAD_INV_ITEM
PC_SAVE_INV_ITEM
-Table of constants.
@table PickupConstants
*/
-static const auto GAME_OBJECT_IDS = std::unordered_map
-{
+/*** Objects.ObjID sprite constants.
+
+The following ObjID members refer to sprites.
+
+ SKY_GRAPHICS
+ DEFAULT_SPRITES
+ MISC_SPRITES
+ CUSTOM_SPRITES
+ FIRE_SPRITES
+ SMOKE_SPRITES
+ SPARK_SPRITE
+ DRIP_SPRITE
+ EXPLOSION_SPRITES
+ MOTORBOAT_FOAM_SPRITES
+ RUBBER_BOAT_WAVE_SPRITES
+ SKIDOO_SNOW_TRAIL_SPRITES
+ KAYAK_PADDLE_TRAIL_SPRITE
+ LASERSIGHT_GRAPHICS
+ CAUSTIC_TEXTURES
+ BAR_BORDER_GRAPHICS
+ HEALTH_BAR_TEXTURE
+ AIR_BAR_TEXTURE
+ DASH_BAR_TEXTURE
+ SFX_BAR_TEXTURE
+ CROSSHAIR_GRAPHICS
+ SPEEDOMETER_GRAPHICS
+ CUSTOM_BAR_GRAPHICS
+ CUSTOM_AMMO_GRAPHICS
+@table SpriteConstants
+*/
+static const std::unordered_map GAME_OBJECT_IDS {
{ "LARA", ID_LARA },
{ "LARA_EXTRA_ANIMS", ID_LARA_EXTRA_ANIMS },
{ "PISTOLS_ANIM", ID_PISTOLS_ANIM },
@@ -1355,6 +1390,7 @@ static const auto GAME_OBJECT_IDS = std::unordered_map
- SETLOCAL EnableDelayedExpansion
-
-SET SchemaDir=$(ProjectDir)Specific\savegame\schema
-SET TimestampFile=$(TargetDir)flatbuffers.timestamp
-
-FOR %%F IN ("%SchemaDir%\ten_itemdata.fbs" "%SchemaDir%\ten_savegame.fbs") DO (
- SET "CurrentTimestamp=!CurrentTimestamp! %%~tF"
-)
-
-IF EXIST "%TimestampFile%" (
- SET /P LastTimestamp=<"%TimestampFile%"
-)
-
-SET CurrentTimestamp=%CurrentTimestamp: =%
-SET LastTimestamp=%LastTimestamp: =%
-
-IF "%CurrentTimestamp%" == "%LastTimestamp%" (
- ECHO Skipping gen.bat, schema files are unchanged
-) ELSE (
- ECHO Generating savegame code from flatbuffer schema...
- CD "%SchemaDir%"
- CALL gen.bat
- ECHO !CurrentTimestamp! > "%TimestampFile%"
-)
-
-ENDLOCAL
+ powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
+powershell -ExecutionPolicy Bypass -File "$(ProjectDir)Specific\savegame\schema\generate_code.ps1"
CD "$(ProjectDir)..\Documentation\"
CALL compile.bat .
@@ -228,32 +204,8 @@ if not exist "%ScriptsDir%\Strings.lua" xcopy /Y "$(SolutionDir)Scripts\Strings.
- SETLOCAL EnableDelayedExpansion
-
-SET SchemaDir=$(ProjectDir)Specific\savegame\schema
-SET TimestampFile=$(TargetDir)flatbuffers.timestamp
-
-FOR %%F IN ("%SchemaDir%\ten_itemdata.fbs" "%SchemaDir%\ten_savegame.fbs") DO (
- SET "CurrentTimestamp=!CurrentTimestamp! %%~tF"
-)
-
-IF EXIST "%TimestampFile%" (
- SET /P LastTimestamp=<"%TimestampFile%"
-)
-
-SET CurrentTimestamp=%CurrentTimestamp: =%
-SET LastTimestamp=%LastTimestamp: =%
-
-IF "%CurrentTimestamp%" == "%LastTimestamp%" (
- ECHO Skipping gen.bat, schema files are unchanged
-) ELSE (
- ECHO Generating savegame code from flatbuffer schema...
- CD "%SchemaDir%"
- CALL gen.bat
- ECHO !CurrentTimestamp! > "%TimestampFile%"
-)
-
-ENDLOCAL
+ powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
+powershell -ExecutionPolicy Bypass -File "$(ProjectDir)Specific\savegame\schema\generate_code.ps1"
CD "$(ProjectDir)..\Documentation\"
CALL compile.bat .
@@ -330,7 +282,9 @@ del "$(TargetDir)*.exp" /q
del "$(TargetDir)OIS_d.dll" /q
- CD "$(ProjectDir)..\Documentation\"
+ powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
+
+CD "$(ProjectDir)..\Documentation\"
CALL compile.bat .
CD "$(ProjectDir)Specific\savegame\schema\"
@@ -409,7 +363,9 @@ del "$(TargetDir)*.exp" /q
del "$(TargetDir)OIS_d.dll" /q
- CD "$(ProjectDir)..\Documentation\"
+ powershell -ExecutionPolicy Bypass -File "$(SolutionDir)\Documentation\generate_objectlist.ps1"
+
+CD "$(ProjectDir)..\Documentation\"
CALL compile.bat .
CD "$(ProjectDir)Specific\savegame\schema\"