diff --git a/Documentation/doc/4 enums/Objects.ObjID.html b/Documentation/doc/4 enums/Objects.ObjID.html index 7fa0d1ba0..b10a91473 100644 --- a/Documentation/doc/4 enums/Objects.ObjID.html +++ b/Documentation/doc/4 enums/Objects.ObjID.html @@ -952,6 +952,7 @@ DOPPELGANGER_ORIGIN CORPSE WRAITH_TRAP WATERFALL_EMITTER +FIREFLY_EMITTER MESHSWAP1 MESHSWAP2 MESHSWAP3 @@ -1132,6 +1133,7 @@ AIR_BAR_TEXTURE DASH_BAR_TEXTURE SFX_BAR_TEXTURE WATERFALL_SPRITES +FIREFLY_SPRITES CROSSHAIR_GRAPHICS SPEEDOMETER_GRAPHICS CUSTOM_BAR_GRAPHICS @@ -1410,6 +1412,7 @@ AIR_BAR_TEXTURE DASH_BAR_TEXTURE SFX_BAR_TEXTURE WATERFALL_SPRITES +FIREFLY_SPRITES CROSSHAIR_GRAPHICS SPEEDOMETER_GRAPHICS CUSTOM_BAR_GRAPHICS diff --git a/TombEngine/Objects/Effects/Fireflies.cpp b/TombEngine/Objects/Effects/Fireflies.cpp index 31f9ebbc2..0510283f9 100644 --- a/TombEngine/Objects/Effects/Fireflies.cpp +++ b/TombEngine/Objects/Effects/Fireflies.cpp @@ -208,14 +208,14 @@ namespace TEN::Effects::Fireflies StreamerEffect.Spawn(targetItem->Index, firefly.Number, pos, direction0, orient2D, Vector4(firefly.r / (float)UCHAR_MAX, firefly.g / (float)UCHAR_MAX, firefly.b / (float)UCHAR_MAX, 1.0f), Vector4::Zero, - 6.3f - (firefly.zVel / 12), ((firefly.Velocity / 8) + firefly.zVel * 3) / (float)UCHAR_MAX, 0.0f, -0.1f, 90.0f, StreamerFeatherType::None, BlendMode::Additive); + 6.3f - (firefly.zVel / 12), ((firefly.Velocity / 8) + firefly.zVel * 3) / (float)UCHAR_MAX, 0.0f, -0.1f, 90.0f, StreamerFeatherMode::None, BlendMode::Additive); } else if (targetItem->ItemFlags[FirefliesItemFlags::TriggerFlags] < 0) { StreamerEffect.Spawn(targetItem->Index, firefly.Number, pos, direction0, orient2D, Vector4((firefly.r / 2) / (float)UCHAR_MAX, (firefly.g / 2) / (float)UCHAR_MAX, (firefly.b / 2) / (float)UCHAR_MAX, 0.2f), Vector4((firefly.r / 3) / (float)UCHAR_MAX, (firefly.g / 3) / (float)UCHAR_MAX, (firefly.b / 3) / (float)UCHAR_MAX, 0.2f), - 0.0f, 0.4f, 0.0f, 0.2f, 0.0f, StreamerFeatherType::None, BlendMode::Subtractive); + 0.0f, 0.4f, 0.0f, 0.2f, 0.0f, StreamerFeatherMode::None, BlendMode::Subtractive); } if ((targetItem->ItemFlags[FirefliesItemFlags::LightIndex1] == firefly.Number || targetItem->ItemFlags[FirefliesItemFlags::LightIndex2] == firefly.Number) && diff --git a/TombEngine/Objects/game_object_ids.h b/TombEngine/Objects/game_object_ids.h index 0acce1108..18c64a25b 100644 --- a/TombEngine/Objects/game_object_ids.h +++ b/TombEngine/Objects/game_object_ids.h @@ -1008,7 +1008,7 @@ enum GAME_OBJECT_ID : short ID_SFX_BAR_TEXTURE, ID_WATERFALL_SPRITES, ID_FIREFLY_SPRITES, - ID_CROSSHAIR_GRAPHICS = 1380, + ID_CROSSHAIR_GRAPHICS, ID_SPEEDOMETER_GRAPHICS, ID_CUSTOM_BAR_GRAPHICS, ID_CUSTOM_AMMO_GRAPHICS, diff --git a/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h b/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h index 54617cb58..04e5732a8 100644 --- a/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h +++ b/TombEngine/Scripting/Internal/TEN/Objects/ObjectIDs.h @@ -1,6 +1,7 @@ #pragma once -// Last generated on 18/11/2022 +// This file is generated automatically, do not edit it. +// Last generated on 17/03/2025. #include #include @@ -165,6 +166,7 @@ The following constants are inside ObjID. CYBORG SNIPER CHEF + KOLD WINGED_MUMMY CENTAUR_MUTANT DOPPELGANGER @@ -189,14 +191,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 +230,7 @@ The following constants are inside ObjID. IMP IMP_ROCK GUNSHIP - AUTOGUN + AUTO_GUN_VCI ROMAN_GOD1 ROMAN_GOD2 LAGOON_WITCH @@ -237,6 +239,7 @@ The following constants are inside ObjID. BOSS_EXPLOSION_RING CLAW_MUTANT WASP_MUTANT + TWIN_AUTO_GUN SKATEBOARD SKATEBOARD_KID WINSTON @@ -372,6 +375,11 @@ 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 @@ -604,7 +612,6 @@ The following constants are inside ObjID. CLOCKWORK_BEETLE CLOCKWORK_BEETLE_COMBO1 CLOCKWORK_BEETLE_COMBO2 - SWITCH_TYPE1 SWITCH_TYPE2 SWITCH_TYPE3 @@ -626,10 +633,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 @@ -776,7 +783,7 @@ The following constants are inside ObjID. KILL_ALL_TRIGGERS TRIGGER_TRIGGERER HIGH_OBJECT1 - HIGH_OBJECT2 + EMBER_EMITTER SMASH_OBJECT1 SMASH_OBJECT2 SMASH_OBJECT3 @@ -807,6 +814,7 @@ The following constants are inside ObjID. DOPPELGANGER_ORIGIN CORPSE WRAITH_TRAP + WATERFALL_EMITTER FIREFLY_EMITTER MESHSWAP1 MESHSWAP2 @@ -965,8 +973,6 @@ The following constants are inside ObjID. BRIDGE_TILT4 BRIDGE_CUSTOM HORIZON - BINOCULAR_GRAPHICS - TARGET_GRAPHICS SKY_GRAPHICS DEFAULT_SPRITES MISC_SPRITES @@ -981,30 +987,22 @@ 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 + WATERFALL_SPRITES + FIREFLY_SPRITES + CROSSHAIR_GRAPHICS + SPEEDOMETER_GRAPHICS + CUSTOM_BAR_GRAPHICS + CUSTOM_AMMO_GRAPHICS 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. @table Members */ @@ -1156,6 +1154,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 @@ -1193,14 +1215,48 @@ 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 + WATERFALL_SPRITES + FIREFLY_SPRITES + CROSSHAIR_GRAPHICS + SPEEDOMETER_GRAPHICS + CUSTOM_BAR_GRAPHICS + CUSTOM_AMMO_GRAPHICS + DIARY_SPRITES + DIARY_ENTRY_SPRITES +@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 }, @@ -1350,6 +1406,7 @@ static const auto GAME_OBJECT_IDS = std::unordered_map horizon1_position{}; + std::unique_ptr horizon1_orientation{}; + float horizon1_transparency = 0.0f; + bool horizon2_enabled = false; + int32_t horizon2_object_id = 0; + std::unique_ptr horizon2_position{}; + std::unique_ptr horizon2_orientation{}; + float horizon2_transparency = 0.0f; + int32_t lensflare_sprite_id = 0; + float lensflare_pitch = 0.0f; + float lensflare_yaw = 0.0f; + int32_t lensflare_color = 0; + int32_t starfield_star_count = 0; + int32_t starfield_meteor_count = 0; + int32_t starfield_meteor_spawn_density = 0; + int32_t starfield_meteor_velocity = 0; +}; + +struct LevelData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LevelDataT NativeTableType; + typedef LevelDataBuilder Builder; + struct Traits; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_LEVEL_FAR_VIEW = 4, + VT_STORM_ENABLED = 6, + VT_RUMBLE_ENABLED = 8, + VT_WEATHER_TYPE = 10, + VT_WEATHER_STRENGTH = 12, + VT_FOG_COLOR = 14, + VT_FOG_MIN_DISTANCE = 16, + VT_FOG_MAX_DISTANCE = 18, + VT_SKY_LAYER_1_ENABLED = 20, + VT_SKY_LAYER_1_COLOR = 22, + VT_SKY_LAYER_1_SPEED = 24, + VT_SKY_LAYER_2_ENABLED = 26, + VT_SKY_LAYER_2_COLOR = 28, + VT_SKY_LAYER_2_SPEED = 30, + VT_HORIZON1_ENABLED = 32, + VT_HORIZON1_OBJECT_ID = 34, + VT_HORIZON1_POSITION = 36, + VT_HORIZON1_ORIENTATION = 38, + VT_HORIZON1_TRANSPARENCY = 40, + VT_HORIZON2_ENABLED = 42, + VT_HORIZON2_OBJECT_ID = 44, + VT_HORIZON2_POSITION = 46, + VT_HORIZON2_ORIENTATION = 48, + VT_HORIZON2_TRANSPARENCY = 50, + VT_LENSFLARE_SPRITE_ID = 52, + VT_LENSFLARE_PITCH = 54, + VT_LENSFLARE_YAW = 56, + VT_LENSFLARE_COLOR = 58, + VT_STARFIELD_STAR_COUNT = 60, + VT_STARFIELD_METEOR_COUNT = 62, + VT_STARFIELD_METEOR_SPAWN_DENSITY = 64, + VT_STARFIELD_METEOR_VELOCITY = 66 + }; + int32_t level_far_view() const { + return GetField(VT_LEVEL_FAR_VIEW, 0); + } + bool storm_enabled() const { + return GetField(VT_STORM_ENABLED, 0) != 0; + } + bool rumble_enabled() const { + return GetField(VT_RUMBLE_ENABLED, 0) != 0; + } + int32_t weather_type() const { + return GetField(VT_WEATHER_TYPE, 0); + } + float weather_strength() const { + return GetField(VT_WEATHER_STRENGTH, 0.0f); + } + int32_t fog_color() const { + return GetField(VT_FOG_COLOR, 0); + } + float fog_min_distance() const { + return GetField(VT_FOG_MIN_DISTANCE, 0.0f); + } + float fog_max_distance() const { + return GetField(VT_FOG_MAX_DISTANCE, 0.0f); + } + bool sky_layer_1_enabled() const { + return GetField(VT_SKY_LAYER_1_ENABLED, 0) != 0; + } + int32_t sky_layer_1_color() const { + return GetField(VT_SKY_LAYER_1_COLOR, 0); + } + int32_t sky_layer_1_speed() const { + return GetField(VT_SKY_LAYER_1_SPEED, 0); + } + bool sky_layer_2_enabled() const { + return GetField(VT_SKY_LAYER_2_ENABLED, 0) != 0; + } + int32_t sky_layer_2_color() const { + return GetField(VT_SKY_LAYER_2_COLOR, 0); + } + int32_t sky_layer_2_speed() const { + return GetField(VT_SKY_LAYER_2_SPEED, 0); + } + bool horizon1_enabled() const { + return GetField(VT_HORIZON1_ENABLED, 0) != 0; + } + int32_t horizon1_object_id() const { + return GetField(VT_HORIZON1_OBJECT_ID, 0); + } + const TEN::Save::Vector3 *horizon1_position() const { + return GetStruct(VT_HORIZON1_POSITION); + } + const TEN::Save::EulerAngles *horizon1_orientation() const { + return GetStruct(VT_HORIZON1_ORIENTATION); + } + float horizon1_transparency() const { + return GetField(VT_HORIZON1_TRANSPARENCY, 0.0f); + } + bool horizon2_enabled() const { + return GetField(VT_HORIZON2_ENABLED, 0) != 0; + } + int32_t horizon2_object_id() const { + return GetField(VT_HORIZON2_OBJECT_ID, 0); + } + const TEN::Save::Vector3 *horizon2_position() const { + return GetStruct(VT_HORIZON2_POSITION); + } + const TEN::Save::EulerAngles *horizon2_orientation() const { + return GetStruct(VT_HORIZON2_ORIENTATION); + } + float horizon2_transparency() const { + return GetField(VT_HORIZON2_TRANSPARENCY, 0.0f); + } + int32_t lensflare_sprite_id() const { + return GetField(VT_LENSFLARE_SPRITE_ID, 0); + } + float lensflare_pitch() const { + return GetField(VT_LENSFLARE_PITCH, 0.0f); + } + float lensflare_yaw() const { + return GetField(VT_LENSFLARE_YAW, 0.0f); + } + int32_t lensflare_color() const { + return GetField(VT_LENSFLARE_COLOR, 0); + } + int32_t starfield_star_count() const { + return GetField(VT_STARFIELD_STAR_COUNT, 0); + } + int32_t starfield_meteor_count() const { + return GetField(VT_STARFIELD_METEOR_COUNT, 0); + } + int32_t starfield_meteor_spawn_density() const { + return GetField(VT_STARFIELD_METEOR_SPAWN_DENSITY, 0); + } + int32_t starfield_meteor_velocity() const { + return GetField(VT_STARFIELD_METEOR_VELOCITY, 0); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_LEVEL_FAR_VIEW) && + VerifyField(verifier, VT_STORM_ENABLED) && + VerifyField(verifier, VT_RUMBLE_ENABLED) && + VerifyField(verifier, VT_WEATHER_TYPE) && + VerifyField(verifier, VT_WEATHER_STRENGTH) && + VerifyField(verifier, VT_FOG_COLOR) && + VerifyField(verifier, VT_FOG_MIN_DISTANCE) && + VerifyField(verifier, VT_FOG_MAX_DISTANCE) && + VerifyField(verifier, VT_SKY_LAYER_1_ENABLED) && + VerifyField(verifier, VT_SKY_LAYER_1_COLOR) && + VerifyField(verifier, VT_SKY_LAYER_1_SPEED) && + VerifyField(verifier, VT_SKY_LAYER_2_ENABLED) && + VerifyField(verifier, VT_SKY_LAYER_2_COLOR) && + VerifyField(verifier, VT_SKY_LAYER_2_SPEED) && + VerifyField(verifier, VT_HORIZON1_ENABLED) && + VerifyField(verifier, VT_HORIZON1_OBJECT_ID) && + VerifyField(verifier, VT_HORIZON1_POSITION) && + VerifyField(verifier, VT_HORIZON1_ORIENTATION) && + VerifyField(verifier, VT_HORIZON1_TRANSPARENCY) && + VerifyField(verifier, VT_HORIZON2_ENABLED) && + VerifyField(verifier, VT_HORIZON2_OBJECT_ID) && + VerifyField(verifier, VT_HORIZON2_POSITION) && + VerifyField(verifier, VT_HORIZON2_ORIENTATION) && + VerifyField(verifier, VT_HORIZON2_TRANSPARENCY) && + VerifyField(verifier, VT_LENSFLARE_SPRITE_ID) && + VerifyField(verifier, VT_LENSFLARE_PITCH) && + VerifyField(verifier, VT_LENSFLARE_YAW) && + VerifyField(verifier, VT_LENSFLARE_COLOR) && + VerifyField(verifier, VT_STARFIELD_STAR_COUNT) && + VerifyField(verifier, VT_STARFIELD_METEOR_COUNT) && + VerifyField(verifier, VT_STARFIELD_METEOR_SPAWN_DENSITY) && + VerifyField(verifier, VT_STARFIELD_METEOR_VELOCITY) && + verifier.EndTable(); + } + LevelDataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(LevelDataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const LevelDataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct LevelDataBuilder { + typedef LevelData Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_level_far_view(int32_t level_far_view) { + fbb_.AddElement(LevelData::VT_LEVEL_FAR_VIEW, level_far_view, 0); + } + void add_storm_enabled(bool storm_enabled) { + fbb_.AddElement(LevelData::VT_STORM_ENABLED, static_cast(storm_enabled), 0); + } + void add_rumble_enabled(bool rumble_enabled) { + fbb_.AddElement(LevelData::VT_RUMBLE_ENABLED, static_cast(rumble_enabled), 0); + } + void add_weather_type(int32_t weather_type) { + fbb_.AddElement(LevelData::VT_WEATHER_TYPE, weather_type, 0); + } + void add_weather_strength(float weather_strength) { + fbb_.AddElement(LevelData::VT_WEATHER_STRENGTH, weather_strength, 0.0f); + } + void add_fog_color(int32_t fog_color) { + fbb_.AddElement(LevelData::VT_FOG_COLOR, fog_color, 0); + } + void add_fog_min_distance(float fog_min_distance) { + fbb_.AddElement(LevelData::VT_FOG_MIN_DISTANCE, fog_min_distance, 0.0f); + } + void add_fog_max_distance(float fog_max_distance) { + fbb_.AddElement(LevelData::VT_FOG_MAX_DISTANCE, fog_max_distance, 0.0f); + } + void add_sky_layer_1_enabled(bool sky_layer_1_enabled) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_1_ENABLED, static_cast(sky_layer_1_enabled), 0); + } + void add_sky_layer_1_color(int32_t sky_layer_1_color) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_1_COLOR, sky_layer_1_color, 0); + } + void add_sky_layer_1_speed(int32_t sky_layer_1_speed) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_1_SPEED, sky_layer_1_speed, 0); + } + void add_sky_layer_2_enabled(bool sky_layer_2_enabled) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_2_ENABLED, static_cast(sky_layer_2_enabled), 0); + } + void add_sky_layer_2_color(int32_t sky_layer_2_color) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_2_COLOR, sky_layer_2_color, 0); + } + void add_sky_layer_2_speed(int32_t sky_layer_2_speed) { + fbb_.AddElement(LevelData::VT_SKY_LAYER_2_SPEED, sky_layer_2_speed, 0); + } + void add_horizon1_enabled(bool horizon1_enabled) { + fbb_.AddElement(LevelData::VT_HORIZON1_ENABLED, static_cast(horizon1_enabled), 0); + } + void add_horizon1_object_id(int32_t horizon1_object_id) { + fbb_.AddElement(LevelData::VT_HORIZON1_OBJECT_ID, horizon1_object_id, 0); + } + void add_horizon1_position(const TEN::Save::Vector3 *horizon1_position) { + fbb_.AddStruct(LevelData::VT_HORIZON1_POSITION, horizon1_position); + } + void add_horizon1_orientation(const TEN::Save::EulerAngles *horizon1_orientation) { + fbb_.AddStruct(LevelData::VT_HORIZON1_ORIENTATION, horizon1_orientation); + } + void add_horizon1_transparency(float horizon1_transparency) { + fbb_.AddElement(LevelData::VT_HORIZON1_TRANSPARENCY, horizon1_transparency, 0.0f); + } + void add_horizon2_enabled(bool horizon2_enabled) { + fbb_.AddElement(LevelData::VT_HORIZON2_ENABLED, static_cast(horizon2_enabled), 0); + } + void add_horizon2_object_id(int32_t horizon2_object_id) { + fbb_.AddElement(LevelData::VT_HORIZON2_OBJECT_ID, horizon2_object_id, 0); + } + void add_horizon2_position(const TEN::Save::Vector3 *horizon2_position) { + fbb_.AddStruct(LevelData::VT_HORIZON2_POSITION, horizon2_position); + } + void add_horizon2_orientation(const TEN::Save::EulerAngles *horizon2_orientation) { + fbb_.AddStruct(LevelData::VT_HORIZON2_ORIENTATION, horizon2_orientation); + } + void add_horizon2_transparency(float horizon2_transparency) { + fbb_.AddElement(LevelData::VT_HORIZON2_TRANSPARENCY, horizon2_transparency, 0.0f); + } + void add_lensflare_sprite_id(int32_t lensflare_sprite_id) { + fbb_.AddElement(LevelData::VT_LENSFLARE_SPRITE_ID, lensflare_sprite_id, 0); + } + void add_lensflare_pitch(float lensflare_pitch) { + fbb_.AddElement(LevelData::VT_LENSFLARE_PITCH, lensflare_pitch, 0.0f); + } + void add_lensflare_yaw(float lensflare_yaw) { + fbb_.AddElement(LevelData::VT_LENSFLARE_YAW, lensflare_yaw, 0.0f); + } + void add_lensflare_color(int32_t lensflare_color) { + fbb_.AddElement(LevelData::VT_LENSFLARE_COLOR, lensflare_color, 0); + } + void add_starfield_star_count(int32_t starfield_star_count) { + fbb_.AddElement(LevelData::VT_STARFIELD_STAR_COUNT, starfield_star_count, 0); + } + void add_starfield_meteor_count(int32_t starfield_meteor_count) { + fbb_.AddElement(LevelData::VT_STARFIELD_METEOR_COUNT, starfield_meteor_count, 0); + } + void add_starfield_meteor_spawn_density(int32_t starfield_meteor_spawn_density) { + fbb_.AddElement(LevelData::VT_STARFIELD_METEOR_SPAWN_DENSITY, starfield_meteor_spawn_density, 0); + } + void add_starfield_meteor_velocity(int32_t starfield_meteor_velocity) { + fbb_.AddElement(LevelData::VT_STARFIELD_METEOR_VELOCITY, starfield_meteor_velocity, 0); + } + explicit LevelDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateLevelData( + flatbuffers::FlatBufferBuilder &_fbb, + int32_t level_far_view = 0, + bool storm_enabled = false, + bool rumble_enabled = false, + int32_t weather_type = 0, + float weather_strength = 0.0f, + int32_t fog_color = 0, + float fog_min_distance = 0.0f, + float fog_max_distance = 0.0f, + bool sky_layer_1_enabled = false, + int32_t sky_layer_1_color = 0, + int32_t sky_layer_1_speed = 0, + bool sky_layer_2_enabled = false, + int32_t sky_layer_2_color = 0, + int32_t sky_layer_2_speed = 0, + bool horizon1_enabled = false, + int32_t horizon1_object_id = 0, + const TEN::Save::Vector3 *horizon1_position = 0, + const TEN::Save::EulerAngles *horizon1_orientation = 0, + float horizon1_transparency = 0.0f, + bool horizon2_enabled = false, + int32_t horizon2_object_id = 0, + const TEN::Save::Vector3 *horizon2_position = 0, + const TEN::Save::EulerAngles *horizon2_orientation = 0, + float horizon2_transparency = 0.0f, + int32_t lensflare_sprite_id = 0, + float lensflare_pitch = 0.0f, + float lensflare_yaw = 0.0f, + int32_t lensflare_color = 0, + int32_t starfield_star_count = 0, + int32_t starfield_meteor_count = 0, + int32_t starfield_meteor_spawn_density = 0, + int32_t starfield_meteor_velocity = 0) { + LevelDataBuilder builder_(_fbb); + builder_.add_starfield_meteor_velocity(starfield_meteor_velocity); + builder_.add_starfield_meteor_spawn_density(starfield_meteor_spawn_density); + builder_.add_starfield_meteor_count(starfield_meteor_count); + builder_.add_starfield_star_count(starfield_star_count); + builder_.add_lensflare_color(lensflare_color); + builder_.add_lensflare_yaw(lensflare_yaw); + builder_.add_lensflare_pitch(lensflare_pitch); + builder_.add_lensflare_sprite_id(lensflare_sprite_id); + builder_.add_horizon2_transparency(horizon2_transparency); + builder_.add_horizon2_orientation(horizon2_orientation); + builder_.add_horizon2_position(horizon2_position); + builder_.add_horizon2_object_id(horizon2_object_id); + builder_.add_horizon1_transparency(horizon1_transparency); + builder_.add_horizon1_orientation(horizon1_orientation); + builder_.add_horizon1_position(horizon1_position); + builder_.add_horizon1_object_id(horizon1_object_id); + builder_.add_sky_layer_2_speed(sky_layer_2_speed); + builder_.add_sky_layer_2_color(sky_layer_2_color); + builder_.add_sky_layer_1_speed(sky_layer_1_speed); + builder_.add_sky_layer_1_color(sky_layer_1_color); + builder_.add_fog_max_distance(fog_max_distance); + builder_.add_fog_min_distance(fog_min_distance); + builder_.add_fog_color(fog_color); + builder_.add_weather_strength(weather_strength); + builder_.add_weather_type(weather_type); + builder_.add_level_far_view(level_far_view); + builder_.add_horizon2_enabled(horizon2_enabled); + builder_.add_horizon1_enabled(horizon1_enabled); + builder_.add_sky_layer_2_enabled(sky_layer_2_enabled); + builder_.add_sky_layer_1_enabled(sky_layer_1_enabled); + builder_.add_rumble_enabled(rumble_enabled); + builder_.add_storm_enabled(storm_enabled); + return builder_.Finish(); +} + +struct LevelData::Traits { + using type = LevelData; + static auto constexpr Create = CreateLevelData; +}; + +flatbuffers::Offset CreateLevelData(flatbuffers::FlatBufferBuilder &_fbb, const LevelDataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + struct RoomT : public flatbuffers::NativeTable { typedef Room TableType; int32_t index = 0; @@ -4958,6 +5361,13 @@ struct ParticleInfoT : public flatbuffers::NativeTable { int32_t node_number = 0; std::unique_ptr target_pos{}; int32_t sprite_id = 0; + int32_t damage = 0; + float framerate = 0.0f; + int32_t animation_type = 0; + int32_t light_radius = 0; + int32_t light_flicker = 0; + int32_t light_flicker_s = 0; + int32_t sound = 0; }; struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { @@ -5003,7 +5413,14 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_ROOM_NUMBER = 74, VT_NODE_NUMBER = 76, VT_TARGET_POS = 78, - VT_SPRITE_ID = 80 + VT_SPRITE_ID = 80, + VT_DAMAGE = 82, + VT_FRAMERATE = 84, + VT_ANIMATION_TYPE = 86, + VT_LIGHT_RADIUS = 88, + VT_LIGHT_FLICKER = 90, + VT_LIGHT_FLICKER_S = 92, + VT_SOUND = 94 }; int32_t x() const { return GetField(VT_X, 0); @@ -5122,6 +5539,27 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t sprite_id() const { return GetField(VT_SPRITE_ID, 0); } + int32_t damage() const { + return GetField(VT_DAMAGE, 0); + } + float framerate() const { + return GetField(VT_FRAMERATE, 0.0f); + } + int32_t animation_type() const { + return GetField(VT_ANIMATION_TYPE, 0); + } + int32_t light_radius() const { + return GetField(VT_LIGHT_RADIUS, 0); + } + int32_t light_flicker() const { + return GetField(VT_LIGHT_FLICKER, 0); + } + int32_t light_flicker_s() const { + return GetField(VT_LIGHT_FLICKER_S, 0); + } + int32_t sound() const { + return GetField(VT_SOUND, 0); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_X) && @@ -5163,6 +5601,13 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NODE_NUMBER) && VerifyField(verifier, VT_TARGET_POS) && VerifyField(verifier, VT_SPRITE_ID) && + VerifyField(verifier, VT_DAMAGE) && + VerifyField(verifier, VT_FRAMERATE) && + VerifyField(verifier, VT_ANIMATION_TYPE) && + VerifyField(verifier, VT_LIGHT_RADIUS) && + VerifyField(verifier, VT_LIGHT_FLICKER) && + VerifyField(verifier, VT_LIGHT_FLICKER_S) && + VerifyField(verifier, VT_SOUND) && verifier.EndTable(); } ParticleInfoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -5291,6 +5736,27 @@ struct ParticleInfoBuilder { void add_sprite_id(int32_t sprite_id) { fbb_.AddElement(ParticleInfo::VT_SPRITE_ID, sprite_id, 0); } + void add_damage(int32_t damage) { + fbb_.AddElement(ParticleInfo::VT_DAMAGE, damage, 0); + } + void add_framerate(float framerate) { + fbb_.AddElement(ParticleInfo::VT_FRAMERATE, framerate, 0.0f); + } + void add_animation_type(int32_t animation_type) { + fbb_.AddElement(ParticleInfo::VT_ANIMATION_TYPE, animation_type, 0); + } + void add_light_radius(int32_t light_radius) { + fbb_.AddElement(ParticleInfo::VT_LIGHT_RADIUS, light_radius, 0); + } + void add_light_flicker(int32_t light_flicker) { + fbb_.AddElement(ParticleInfo::VT_LIGHT_FLICKER, light_flicker, 0); + } + void add_light_flicker_s(int32_t light_flicker_s) { + fbb_.AddElement(ParticleInfo::VT_LIGHT_FLICKER_S, light_flicker_s, 0); + } + void add_sound(int32_t sound) { + fbb_.AddElement(ParticleInfo::VT_SOUND, sound, 0); + } explicit ParticleInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -5342,8 +5808,22 @@ inline flatbuffers::Offset CreateParticleInfo( int32_t room_number = 0, int32_t node_number = 0, const TEN::Save::Vector3 *target_pos = 0, - int32_t sprite_id = 0) { + int32_t sprite_id = 0, + int32_t damage = 0, + float framerate = 0.0f, + int32_t animation_type = 0, + int32_t light_radius = 0, + int32_t light_flicker = 0, + int32_t light_flicker_s = 0, + int32_t sound = 0) { ParticleInfoBuilder builder_(_fbb); + builder_.add_sound(sound); + builder_.add_light_flicker_s(light_flicker_s); + builder_.add_light_flicker(light_flicker); + builder_.add_light_radius(light_radius); + builder_.add_animation_type(animation_type); + builder_.add_framerate(framerate); + builder_.add_damage(damage); builder_.add_sprite_id(sprite_id); builder_.add_target_pos(target_pos); builder_.add_node_number(node_number); @@ -7660,6 +8140,7 @@ struct SaveGameStatisticsT : public flatbuffers::NativeTable { int32_t damage_taken = 0; int32_t distance = 0; int32_t kills = 0; + int32_t pickups = 0; int32_t secrets = 0; int32_t timer = 0; }; @@ -7675,8 +8156,9 @@ struct SaveGameStatistics FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_DAMAGE_TAKEN = 10, VT_DISTANCE = 12, VT_KILLS = 14, - VT_SECRETS = 16, - VT_TIMER = 18 + VT_PICKUPS = 16, + VT_SECRETS = 18, + VT_TIMER = 20 }; int32_t ammo_hits() const { return GetField(VT_AMMO_HITS, 0); @@ -7696,6 +8178,9 @@ struct SaveGameStatistics FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t kills() const { return GetField(VT_KILLS, 0); } + int32_t pickups() const { + return GetField(VT_PICKUPS, 0); + } int32_t secrets() const { return GetField(VT_SECRETS, 0); } @@ -7710,6 +8195,7 @@ struct SaveGameStatistics FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DAMAGE_TAKEN) && VerifyField(verifier, VT_DISTANCE) && VerifyField(verifier, VT_KILLS) && + VerifyField(verifier, VT_PICKUPS) && VerifyField(verifier, VT_SECRETS) && VerifyField(verifier, VT_TIMER) && verifier.EndTable(); @@ -7741,6 +8227,9 @@ struct SaveGameStatisticsBuilder { void add_kills(int32_t kills) { fbb_.AddElement(SaveGameStatistics::VT_KILLS, kills, 0); } + void add_pickups(int32_t pickups) { + fbb_.AddElement(SaveGameStatistics::VT_PICKUPS, pickups, 0); + } void add_secrets(int32_t secrets) { fbb_.AddElement(SaveGameStatistics::VT_SECRETS, secrets, 0); } @@ -7766,11 +8255,13 @@ inline flatbuffers::Offset CreateSaveGameStatistics( int32_t damage_taken = 0, int32_t distance = 0, int32_t kills = 0, + int32_t pickups = 0, int32_t secrets = 0, int32_t timer = 0) { SaveGameStatisticsBuilder builder_(_fbb); builder_.add_timer(timer); builder_.add_secrets(secrets); + builder_.add_pickups(pickups); builder_.add_kills(kills); builder_.add_distance(distance); builder_.add_damage_taken(damage_taken); @@ -7792,6 +8283,7 @@ struct SaveGameT : public flatbuffers::NativeTable { std::unique_ptr header{}; std::unique_ptr game{}; std::unique_ptr level{}; + std::unique_ptr level_data{}; int32_t secret_bits = 0; std::unique_ptr camera{}; std::unique_ptr lara{}; @@ -7858,62 +8350,63 @@ struct SaveGame FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_HEADER = 4, VT_GAME = 6, VT_LEVEL = 8, - VT_SECRET_BITS = 10, - VT_CAMERA = 12, - VT_LARA = 14, - VT_ROOMS = 16, - VT_ITEMS = 18, - VT_NEXT_ITEM_FREE = 20, - VT_NEXT_ITEM_ACTIVE = 22, - VT_ROOM_ITEMS = 24, - VT_FISH_SWARM = 26, - VT_FIREFLY_SWARM = 28, - VT_FXINFOS = 30, - VT_NEXT_FX_FREE = 32, - VT_NEXT_FX_ACTIVE = 34, - VT_FIXED_CAMERAS = 36, - VT_SINKS = 38, - VT_STATIC_MESHES = 40, - VT_FLYBY_CAMERAS = 42, - VT_PARTICLES = 44, - VT_RATS = 46, - VT_SPIDERS = 48, - VT_SCARABS = 50, - VT_BATS = 52, - VT_FLIP_MAPS = 54, - VT_FLIP_STATS = 56, - VT_FLIP_EFFECT = 58, - VT_FLIP_TIMER = 60, - VT_FLIP_STATUS = 62, - VT_CURRENT_FOV = 64, - VT_LAST_INV_ITEM = 66, - VT_ACTION_QUEUE = 68, - VT_SOUNDTRACKS = 70, - VT_CD_FLAGS = 72, - VT_POSTPROCESS_MODE = 74, - VT_POSTPROCESS_STRENGTH = 76, - VT_POSTPROCESS_TINT = 78, - VT_ROPE = 80, - VT_PENDULUM = 82, - VT_ALTERNATE_PENDULUM = 84, - VT_VOLUMES = 86, - VT_GLOBAL_EVENT_SETS = 88, - VT_VOLUME_EVENT_SETS = 90, - VT_SCRIPT_VARS = 92, - VT_CALLBACKS_PRE_START = 94, - VT_CALLBACKS_POST_START = 96, - VT_CALLBACKS_PRE_END = 98, - VT_CALLBACKS_POST_END = 100, - VT_CALLBACKS_PRE_SAVE = 102, - VT_CALLBACKS_POST_SAVE = 104, - VT_CALLBACKS_PRE_LOAD = 106, - VT_CALLBACKS_POST_LOAD = 108, - VT_CALLBACKS_PRE_LOOP = 110, - VT_CALLBACKS_POST_LOOP = 112, - VT_CALLBACKS_PRE_USEITEM = 114, - VT_CALLBACKS_POST_USEITEM = 116, - VT_CALLBACKS_PRE_FREEZE = 118, - VT_CALLBACKS_POST_FREEZE = 120 + VT_LEVEL_DATA = 10, + VT_SECRET_BITS = 12, + VT_CAMERA = 14, + VT_LARA = 16, + VT_ROOMS = 18, + VT_ITEMS = 20, + VT_NEXT_ITEM_FREE = 22, + VT_NEXT_ITEM_ACTIVE = 24, + VT_ROOM_ITEMS = 26, + VT_FISH_SWARM = 28, + VT_FIREFLY_SWARM = 30, + VT_FXINFOS = 32, + VT_NEXT_FX_FREE = 34, + VT_NEXT_FX_ACTIVE = 36, + VT_FIXED_CAMERAS = 38, + VT_SINKS = 40, + VT_STATIC_MESHES = 42, + VT_FLYBY_CAMERAS = 44, + VT_PARTICLES = 46, + VT_RATS = 48, + VT_SPIDERS = 50, + VT_SCARABS = 52, + VT_BATS = 54, + VT_FLIP_MAPS = 56, + VT_FLIP_STATS = 58, + VT_FLIP_EFFECT = 60, + VT_FLIP_TIMER = 62, + VT_FLIP_STATUS = 64, + VT_CURRENT_FOV = 66, + VT_LAST_INV_ITEM = 68, + VT_ACTION_QUEUE = 70, + VT_SOUNDTRACKS = 72, + VT_CD_FLAGS = 74, + VT_POSTPROCESS_MODE = 76, + VT_POSTPROCESS_STRENGTH = 78, + VT_POSTPROCESS_TINT = 80, + VT_ROPE = 82, + VT_PENDULUM = 84, + VT_ALTERNATE_PENDULUM = 86, + VT_VOLUMES = 88, + VT_GLOBAL_EVENT_SETS = 90, + VT_VOLUME_EVENT_SETS = 92, + VT_SCRIPT_VARS = 94, + VT_CALLBACKS_PRE_START = 96, + VT_CALLBACKS_POST_START = 98, + VT_CALLBACKS_PRE_END = 100, + VT_CALLBACKS_POST_END = 102, + VT_CALLBACKS_PRE_SAVE = 104, + VT_CALLBACKS_POST_SAVE = 106, + VT_CALLBACKS_PRE_LOAD = 108, + VT_CALLBACKS_POST_LOAD = 110, + VT_CALLBACKS_PRE_LOOP = 112, + VT_CALLBACKS_POST_LOOP = 114, + VT_CALLBACKS_PRE_USEITEM = 116, + VT_CALLBACKS_POST_USEITEM = 118, + VT_CALLBACKS_PRE_FREEZE = 120, + VT_CALLBACKS_POST_FREEZE = 122 }; const TEN::Save::SaveGameHeader *header() const { return GetPointer(VT_HEADER); @@ -7924,6 +8417,9 @@ struct SaveGame FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const TEN::Save::SaveGameStatistics *level() const { return GetPointer(VT_LEVEL); } + const TEN::Save::LevelData *level_data() const { + return GetPointer(VT_LEVEL_DATA); + } int32_t secret_bits() const { return GetField(VT_SECRET_BITS, 0); } @@ -8100,6 +8596,8 @@ struct SaveGame FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyTable(game()) && VerifyOffset(verifier, VT_LEVEL) && verifier.VerifyTable(level()) && + VerifyOffset(verifier, VT_LEVEL_DATA) && + verifier.VerifyTable(level_data()) && VerifyField(verifier, VT_SECRET_BITS) && VerifyOffset(verifier, VT_CAMERA) && verifier.VerifyTable(camera()) && @@ -8251,6 +8749,9 @@ struct SaveGameBuilder { void add_level(flatbuffers::Offset level) { fbb_.AddOffset(SaveGame::VT_LEVEL, level); } + void add_level_data(flatbuffers::Offset level_data) { + fbb_.AddOffset(SaveGame::VT_LEVEL_DATA, level_data); + } void add_secret_bits(int32_t secret_bits) { fbb_.AddElement(SaveGame::VT_SECRET_BITS, secret_bits, 0); } @@ -8435,6 +8936,7 @@ inline flatbuffers::Offset CreateSaveGame( flatbuffers::Offset header = 0, flatbuffers::Offset game = 0, flatbuffers::Offset level = 0, + flatbuffers::Offset level_data = 0, int32_t secret_bits = 0, flatbuffers::Offset camera = 0, flatbuffers::Offset lara = 0, @@ -8547,6 +9049,7 @@ inline flatbuffers::Offset CreateSaveGame( builder_.add_lara(lara); builder_.add_camera(camera); builder_.add_secret_bits(secret_bits); + builder_.add_level_data(level_data); builder_.add_level(level); builder_.add_game(game); builder_.add_header(header); @@ -8564,6 +9067,7 @@ inline flatbuffers::Offset CreateSaveGameDirect( flatbuffers::Offset header = 0, flatbuffers::Offset game = 0, flatbuffers::Offset level = 0, + flatbuffers::Offset level_data = 0, int32_t secret_bits = 0, flatbuffers::Offset camera = 0, flatbuffers::Offset lara = 0, @@ -8662,6 +9166,7 @@ inline flatbuffers::Offset CreateSaveGameDirect( header, game, level, + level_data, secret_bits, camera, lara, @@ -8722,6 +9227,125 @@ inline flatbuffers::Offset CreateSaveGameDirect( flatbuffers::Offset CreateSaveGame(flatbuffers::FlatBufferBuilder &_fbb, const SaveGameT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +inline LevelDataT *LevelData::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::make_unique(); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void LevelData::UnPackTo(LevelDataT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = level_far_view(); _o->level_far_view = _e; } + { auto _e = storm_enabled(); _o->storm_enabled = _e; } + { auto _e = rumble_enabled(); _o->rumble_enabled = _e; } + { auto _e = weather_type(); _o->weather_type = _e; } + { auto _e = weather_strength(); _o->weather_strength = _e; } + { auto _e = fog_color(); _o->fog_color = _e; } + { auto _e = fog_min_distance(); _o->fog_min_distance = _e; } + { auto _e = fog_max_distance(); _o->fog_max_distance = _e; } + { auto _e = sky_layer_1_enabled(); _o->sky_layer_1_enabled = _e; } + { auto _e = sky_layer_1_color(); _o->sky_layer_1_color = _e; } + { auto _e = sky_layer_1_speed(); _o->sky_layer_1_speed = _e; } + { auto _e = sky_layer_2_enabled(); _o->sky_layer_2_enabled = _e; } + { auto _e = sky_layer_2_color(); _o->sky_layer_2_color = _e; } + { auto _e = sky_layer_2_speed(); _o->sky_layer_2_speed = _e; } + { auto _e = horizon1_enabled(); _o->horizon1_enabled = _e; } + { auto _e = horizon1_object_id(); _o->horizon1_object_id = _e; } + { auto _e = horizon1_position(); if (_e) _o->horizon1_position = std::unique_ptr(new TEN::Save::Vector3(*_e)); } + { auto _e = horizon1_orientation(); if (_e) _o->horizon1_orientation = std::unique_ptr(new TEN::Save::EulerAngles(*_e)); } + { auto _e = horizon1_transparency(); _o->horizon1_transparency = _e; } + { auto _e = horizon2_enabled(); _o->horizon2_enabled = _e; } + { auto _e = horizon2_object_id(); _o->horizon2_object_id = _e; } + { auto _e = horizon2_position(); if (_e) _o->horizon2_position = std::unique_ptr(new TEN::Save::Vector3(*_e)); } + { auto _e = horizon2_orientation(); if (_e) _o->horizon2_orientation = std::unique_ptr(new TEN::Save::EulerAngles(*_e)); } + { auto _e = horizon2_transparency(); _o->horizon2_transparency = _e; } + { auto _e = lensflare_sprite_id(); _o->lensflare_sprite_id = _e; } + { auto _e = lensflare_pitch(); _o->lensflare_pitch = _e; } + { auto _e = lensflare_yaw(); _o->lensflare_yaw = _e; } + { auto _e = lensflare_color(); _o->lensflare_color = _e; } + { auto _e = starfield_star_count(); _o->starfield_star_count = _e; } + { auto _e = starfield_meteor_count(); _o->starfield_meteor_count = _e; } + { auto _e = starfield_meteor_spawn_density(); _o->starfield_meteor_spawn_density = _e; } + { auto _e = starfield_meteor_velocity(); _o->starfield_meteor_velocity = _e; } +} + +inline flatbuffers::Offset LevelData::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LevelDataT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateLevelData(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateLevelData(flatbuffers::FlatBufferBuilder &_fbb, const LevelDataT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LevelDataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _level_far_view = _o->level_far_view; + auto _storm_enabled = _o->storm_enabled; + auto _rumble_enabled = _o->rumble_enabled; + auto _weather_type = _o->weather_type; + auto _weather_strength = _o->weather_strength; + auto _fog_color = _o->fog_color; + auto _fog_min_distance = _o->fog_min_distance; + auto _fog_max_distance = _o->fog_max_distance; + auto _sky_layer_1_enabled = _o->sky_layer_1_enabled; + auto _sky_layer_1_color = _o->sky_layer_1_color; + auto _sky_layer_1_speed = _o->sky_layer_1_speed; + auto _sky_layer_2_enabled = _o->sky_layer_2_enabled; + auto _sky_layer_2_color = _o->sky_layer_2_color; + auto _sky_layer_2_speed = _o->sky_layer_2_speed; + auto _horizon1_enabled = _o->horizon1_enabled; + auto _horizon1_object_id = _o->horizon1_object_id; + auto _horizon1_position = _o->horizon1_position ? _o->horizon1_position.get() : 0; + auto _horizon1_orientation = _o->horizon1_orientation ? _o->horizon1_orientation.get() : 0; + auto _horizon1_transparency = _o->horizon1_transparency; + auto _horizon2_enabled = _o->horizon2_enabled; + auto _horizon2_object_id = _o->horizon2_object_id; + auto _horizon2_position = _o->horizon2_position ? _o->horizon2_position.get() : 0; + auto _horizon2_orientation = _o->horizon2_orientation ? _o->horizon2_orientation.get() : 0; + auto _horizon2_transparency = _o->horizon2_transparency; + auto _lensflare_sprite_id = _o->lensflare_sprite_id; + auto _lensflare_pitch = _o->lensflare_pitch; + auto _lensflare_yaw = _o->lensflare_yaw; + auto _lensflare_color = _o->lensflare_color; + auto _starfield_star_count = _o->starfield_star_count; + auto _starfield_meteor_count = _o->starfield_meteor_count; + auto _starfield_meteor_spawn_density = _o->starfield_meteor_spawn_density; + auto _starfield_meteor_velocity = _o->starfield_meteor_velocity; + return TEN::Save::CreateLevelData( + _fbb, + _level_far_view, + _storm_enabled, + _rumble_enabled, + _weather_type, + _weather_strength, + _fog_color, + _fog_min_distance, + _fog_max_distance, + _sky_layer_1_enabled, + _sky_layer_1_color, + _sky_layer_1_speed, + _sky_layer_2_enabled, + _sky_layer_2_color, + _sky_layer_2_speed, + _horizon1_enabled, + _horizon1_object_id, + _horizon1_position, + _horizon1_orientation, + _horizon1_transparency, + _horizon2_enabled, + _horizon2_object_id, + _horizon2_position, + _horizon2_orientation, + _horizon2_transparency, + _lensflare_sprite_id, + _lensflare_pitch, + _lensflare_yaw, + _lensflare_color, + _starfield_star_count, + _starfield_meteor_count, + _starfield_meteor_spawn_density, + _starfield_meteor_velocity); +} + inline RoomT *Room::UnPack(const flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); @@ -10119,6 +10743,13 @@ inline void ParticleInfo::UnPackTo(ParticleInfoT *_o, const flatbuffers::resolve { auto _e = node_number(); _o->node_number = _e; } { auto _e = target_pos(); if (_e) _o->target_pos = std::unique_ptr(new TEN::Save::Vector3(*_e)); } { auto _e = sprite_id(); _o->sprite_id = _e; } + { auto _e = damage(); _o->damage = _e; } + { auto _e = framerate(); _o->framerate = _e; } + { auto _e = animation_type(); _o->animation_type = _e; } + { auto _e = light_radius(); _o->light_radius = _e; } + { auto _e = light_flicker(); _o->light_flicker = _e; } + { auto _e = light_flicker_s(); _o->light_flicker_s = _e; } + { auto _e = sound(); _o->sound = _e; } } inline flatbuffers::Offset ParticleInfo::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ParticleInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -10168,6 +10799,13 @@ inline flatbuffers::Offset CreateParticleInfo(flatbuffers::FlatBuf auto _node_number = _o->node_number; auto _target_pos = _o->target_pos ? _o->target_pos.get() : 0; auto _sprite_id = _o->sprite_id; + auto _damage = _o->damage; + auto _framerate = _o->framerate; + auto _animation_type = _o->animation_type; + auto _light_radius = _o->light_radius; + auto _light_flicker = _o->light_flicker; + auto _light_flicker_s = _o->light_flicker_s; + auto _sound = _o->sound; return TEN::Save::CreateParticleInfo( _fbb, _x, @@ -10208,7 +10846,14 @@ inline flatbuffers::Offset CreateParticleInfo(flatbuffers::FlatBuf _room_number, _node_number, _target_pos, - _sprite_id); + _sprite_id, + _damage, + _framerate, + _animation_type, + _light_radius, + _light_flicker, + _light_flicker_s, + _sound); } inline SoundtrackT *Soundtrack::UnPack(const flatbuffers::resolver_function_t *_resolver) const { @@ -11019,6 +11664,7 @@ inline void SaveGameStatistics::UnPackTo(SaveGameStatisticsT *_o, const flatbuff { auto _e = damage_taken(); _o->damage_taken = _e; } { auto _e = distance(); _o->distance = _e; } { auto _e = kills(); _o->kills = _e; } + { auto _e = pickups(); _o->pickups = _e; } { auto _e = secrets(); _o->secrets = _e; } { auto _e = timer(); _o->timer = _e; } } @@ -11037,6 +11683,7 @@ inline flatbuffers::Offset CreateSaveGameStatistics(flatbuff auto _damage_taken = _o->damage_taken; auto _distance = _o->distance; auto _kills = _o->kills; + auto _pickups = _o->pickups; auto _secrets = _o->secrets; auto _timer = _o->timer; return TEN::Save::CreateSaveGameStatistics( @@ -11047,6 +11694,7 @@ inline flatbuffers::Offset CreateSaveGameStatistics(flatbuff _damage_taken, _distance, _kills, + _pickups, _secrets, _timer); } @@ -11063,6 +11711,7 @@ inline void SaveGame::UnPackTo(SaveGameT *_o, const flatbuffers::resolver_functi { auto _e = header(); if (_e) _o->header = std::unique_ptr(_e->UnPack(_resolver)); } { auto _e = game(); if (_e) _o->game = std::unique_ptr(_e->UnPack(_resolver)); } { auto _e = level(); if (_e) _o->level = std::unique_ptr(_e->UnPack(_resolver)); } + { auto _e = level_data(); if (_e) _o->level_data = std::unique_ptr(_e->UnPack(_resolver)); } { auto _e = secret_bits(); _o->secret_bits = _e; } { auto _e = camera(); if (_e) _o->camera = std::unique_ptr(_e->UnPack(_resolver)); } { auto _e = lara(); if (_e) _o->lara = std::unique_ptr(_e->UnPack(_resolver)); } @@ -11132,6 +11781,7 @@ inline flatbuffers::Offset CreateSaveGame(flatbuffers::FlatBufferBuild auto _header = _o->header ? CreateSaveGameHeader(_fbb, _o->header.get(), _rehasher) : 0; auto _game = _o->game ? CreateSaveGameStatistics(_fbb, _o->game.get(), _rehasher) : 0; auto _level = _o->level ? CreateSaveGameStatistics(_fbb, _o->level.get(), _rehasher) : 0; + auto _level_data = _o->level_data ? CreateLevelData(_fbb, _o->level_data.get(), _rehasher) : 0; auto _secret_bits = _o->secret_bits; auto _camera = _o->camera ? CreateCamera(_fbb, _o->camera.get(), _rehasher) : 0; auto _lara = _o->lara ? CreateLara(_fbb, _o->lara.get(), _rehasher) : 0; @@ -11193,6 +11843,7 @@ inline flatbuffers::Offset CreateSaveGame(flatbuffers::FlatBufferBuild _header, _game, _level, + _level_data, _secret_bits, _camera, _lara,