From 0efff7d637336850f7af43c278cc53e22121c0f7 Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 9 Sep 2020 12:08:09 +0200 Subject: [PATCH] add iw4 tracerdef loading code --- src/ZoneCode.lua | 2 +- src/ZoneCode/Game/IW4/IW4_Commands.txt | 9 ++++++++- src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp | 10 +++++----- src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h | 2 +- src/ZoneCommon/Game/IW4/IW4_Assets.h | 17 +++++++++++++++-- src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp | 4 ++-- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/ZoneCode.lua b/src/ZoneCode.lua index 1668e031..bb933222 100644 --- a/src/ZoneCode.lua +++ b/src/ZoneCode.lua @@ -35,7 +35,7 @@ ZoneCode.Assets = { "StringTable", "LeaderboardDef", -- "StructuredDataDefSet", - -- "TracerDef", + "TracerDef", -- "VehicleDef", -- "AddonMapEnts" }, diff --git a/src/ZoneCode/Game/IW4/IW4_Commands.txt b/src/ZoneCode/Game/IW4/IW4_Commands.txt index 12a49407..397df02a 100644 --- a/src/ZoneCode/Game/IW4/IW4_Commands.txt +++ b/src/ZoneCode/Game/IW4/IW4_Commands.txt @@ -35,7 +35,7 @@ asset RawFile ASSET_TYPE_RAWFILE; asset StringTable ASSET_TYPE_STRINGTABLE; asset LeaderboardDef ASSET_TYPE_LEADERBOARD; // asset StructuredDataDefSet ASSET_TYPE_STRUCTURED_DATA_DEF; -// asset TracerDef ASSET_TYPE_TRACER; +asset TracerDef ASSET_TYPE_TRACER; // asset VehicleDef ASSET_TYPE_VEHICLE; // asset AddonMapEnts ASSET_TYPE_ADDON_MAP_ENTS; @@ -665,4 +665,11 @@ use LbColumnDef; set string name; set string statName; +// ========================================= +// TracerDef +// ========================================= +use TracerDef; +set string name; +set name name; + // EOF \ No newline at end of file diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp index b64a5f13..d4485e7d 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp @@ -136,7 +136,7 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority) m_string_table = nullptr; m_leaderboard = nullptr; // m_structed_data_def_set = nullptr; - // m_tracer = nullptr; + m_tracer = nullptr; // m_vehicle = nullptr; // m_addon_map_ents = nullptr; } @@ -189,7 +189,7 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa CASE_INIT_POOL_STATIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); CASE_INIT_POOL_STATIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); // CASE_INIT_POOL_STATIC(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, StructuredDataDefSet); - // CASE_INIT_POOL_STATIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); + CASE_INIT_POOL_STATIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); // CASE_INIT_POOL_STATIC(ASSET_TYPE_VEHICLE, m_vehicle, VehicleDef); // CASE_INIT_POOL_STATIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); @@ -249,7 +249,7 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type) CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable); CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, StructuredDataDefSet); - // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); + CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_TRACER, m_tracer, TracerDef); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_VEHICLE, m_vehicle, VehicleDef); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, AddonMapEnts); @@ -318,7 +318,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam CASE_ADD_TO_POOL(ASSET_TYPE_STRINGTABLE, m_string_table, stringTable); CASE_ADD_TO_POOL(ASSET_TYPE_LEADERBOARD, m_leaderboard, leaderboardDef); // CASE_ADD_TO_POOL(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set, structuredDataDefSet); - // CASE_ADD_TO_POOL(ASSET_TYPE_TRACER, m_tracer, tracerDef); + CASE_ADD_TO_POOL(ASSET_TYPE_TRACER, m_tracer, tracerDef); // CASE_ADD_TO_POOL(ASSET_TYPE_VEHICLE, m_vehicle, vehDef); // CASE_ADD_TO_POOL(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents, addonMapEnts); @@ -378,7 +378,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri CASE_GET_ASSET(ASSET_TYPE_STRINGTABLE, m_string_table); CASE_GET_ASSET(ASSET_TYPE_LEADERBOARD, m_leaderboard); // CASE_GET_ASSET(ASSET_TYPE_STRUCTURED_DATA_DEF, m_structed_data_def_set); - // CASE_GET_ASSET(ASSET_TYPE_TRACER, m_tracer); + CASE_GET_ASSET(ASSET_TYPE_TRACER, m_tracer); // CASE_GET_ASSET(ASSET_TYPE_VEHICLE, m_vehicle); // CASE_GET_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, m_addon_map_ents); diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h index 3345469b..e0b2d3b8 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h @@ -48,7 +48,7 @@ public: std::unique_ptr> m_string_table; std::unique_ptr> m_leaderboard; // std::unique_ptr> m_structed_data_def_set; - // std::unique_ptr> m_tracer; + std::unique_ptr> m_tracer; // std::unique_ptr> m_vehicle; // std::unique_ptr> m_addon_map_ents; diff --git a/src/ZoneCommon/Game/IW4/IW4_Assets.h b/src/ZoneCommon/Game/IW4/IW4_Assets.h index 5ca5d030..41c7a8f6 100644 --- a/src/ZoneCommon/Game/IW4/IW4_Assets.h +++ b/src/ZoneCommon/Game/IW4/IW4_Assets.h @@ -107,7 +107,7 @@ namespace IW4 struct StringTable; struct LeaderboardDef; // struct StructuredDataDefSet; - // struct TracerDef; + struct TracerDef; // struct VehicleDef; // struct AddonMapEnts; @@ -147,7 +147,7 @@ namespace IW4 StringTable* stringTable; LeaderboardDef* leaderboardDef; // StructuredDataDefSet* structuredDataDefSet; - // TracerDef* tracerDef; + TracerDef* tracerDef; // VehicleDef* vehDef; // AddonMapEnts* addonMapEnts; void* data; @@ -1680,6 +1680,19 @@ namespace IW4 LbColumnDef* columns; }; + struct TracerDef + { + const char* name; + Material* material; + unsigned int drawInterval; + float speed; + float beamLength; + float beamWidth; + float screwRadius; + float screwDist; + float colors[5][4]; + }; + #ifndef __zonecodegenerator } #endif diff --git a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp index 84cd657a..9aaee703 100644 --- a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp +++ b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp @@ -35,7 +35,7 @@ //#include "Game/IW4/XAssets/snddriverglobals/snddriverglobals_load_db.h" #include "Game/IW4/XAssets/stringtable/stringtable_load_db.h" //#include "Game/IW4/XAssets/structureddatadefset/structureddatadefset_load_db.h" -//#include "Game/IW4/XAssets/tracerdef/tracerdef_load_db.h" +#include "Game/IW4/XAssets/tracerdef/tracerdef_load_db.h" //#include "Game/IW4/XAssets/vehicledef/vehicledef_load_db.h" //#include "Game/IW4/XAssets/weaponcompletedef/weaponcompletedef_load_db.h" #include "Game/IW4/XAssets/xanimparts/xanimparts_load_db.h" @@ -137,7 +137,7 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart) LOAD_ASSET(ASSET_TYPE_STRINGTABLE, StringTable, stringTable); LOAD_ASSET(ASSET_TYPE_LEADERBOARD, LeaderboardDef, leaderboardDef); // LOAD_ASSET(ASSET_TYPE_STRUCTURED_DATA_DEF, StructuredDataDefSet, structuredDataDefSet); - // LOAD_ASSET(ASSET_TYPE_TRACER, TracerDef, tracerDef); + LOAD_ASSET(ASSET_TYPE_TRACER, TracerDef, tracerDef); // LOAD_ASSET(ASSET_TYPE_VEHICLE, VehicleDef, vehDef); // LOAD_ASSET(ASSET_TYPE_ADDON_MAP_ENTS, AddonMapEnts, addonMapEnts);