diff --git a/src/ZoneCode.lua b/src/ZoneCode.lua index 560373d5..d3c3cc15 100644 --- a/src/ZoneCode.lua +++ b/src/ZoneCode.lua @@ -26,7 +26,7 @@ ZoneCode.Assets = { -- "Font_s", -- "MenuList", -- "menuDef_t", - -- "LocalizeEntry", + "LocalizeEntry", -- "WeaponCompleteDef", -- "SndDriverGlobals", -- "FxEffectDef", diff --git a/src/ZoneCode/Game/IW4/IW4_Commands.txt b/src/ZoneCode/Game/IW4/IW4_Commands.txt index 10c85e8f..b9306eea 100644 --- a/src/ZoneCode/Game/IW4/IW4_Commands.txt +++ b/src/ZoneCode/Game/IW4/IW4_Commands.txt @@ -26,7 +26,7 @@ asset LoadedSound ASSET_TYPE_LOADED_SOUND; // asset Font_s ASSET_TYPE_FONT; // asset MenuList ASSET_TYPE_MENULIST; // asset menuDef_t ASSET_TYPE_MENU; -// asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY; +asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY; // asset WeaponCompleteDef ASSET_TYPE_WEAPON; // asset SndDriverGlobals ASSET_TYPE_SNDDRIVER_GLOBALS; // asset FxEffectDef ASSET_TYPE_FX; @@ -399,6 +399,14 @@ set condition info::data_ptr never; set condition info::initial_ptr never; set action SetSoundData(MssSound); +// ========================================= +// LocalizeEntry +// ========================================= +use LocalizeEntry; +set string name; +set name name; +set string value; + // ========================================= // RawFile // ========================================= diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp index 4b03aa1f..2f047b4c 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.cpp @@ -127,7 +127,7 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority) // m_font = nullptr; // m_menu_list = nullptr; // m_menu_def = nullptr; - // m_localize = nullptr; + m_localize = nullptr; // m_weapon = nullptr; // m_snd_driver_globals = nullptr; // m_fx = nullptr; @@ -180,7 +180,7 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa // CASE_INIT_POOL_STATIC(ASSET_TYPE_FONT, m_font, Font_s); // CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); // CASE_INIT_POOL_STATIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); - // CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); + CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); // CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef); // CASE_INIT_POOL_STATIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); // CASE_INIT_POOL_STATIC(ASSET_TYPE_FX, m_fx, FxEffectDef); @@ -240,7 +240,7 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type) // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FONT, m_font, Font_s); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); - // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); + CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals); // CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FX, m_fx, FxEffectDef); @@ -309,7 +309,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam // CASE_ADD_TO_POOL(ASSET_TYPE_FONT, m_font, font); // CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList); // CASE_ADD_TO_POOL(ASSET_TYPE_MENU, m_menu_def, menu); - // CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize); + CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize); // CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON, m_weapon, weapon); // CASE_ADD_TO_POOL(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, sndDriverGlobals); // CASE_ADD_TO_POOL(ASSET_TYPE_FX, m_fx, fx); @@ -369,7 +369,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri // CASE_GET_ASSET(ASSET_TYPE_FONT, m_font); // CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list); // CASE_GET_ASSET(ASSET_TYPE_MENU, m_menu_def); - // CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize); + CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize); // CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon); // CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals); // CASE_GET_ASSET(ASSET_TYPE_FX, m_fx); diff --git a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h index ba5cd7e2..0248931c 100644 --- a/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h +++ b/src/ZoneCommon/Game/IW4/GameAssetPoolIW4.h @@ -39,7 +39,7 @@ public: // std::unique_ptr> m_font; // std::unique_ptr> m_menu_list; // std::unique_ptr> m_menu_def; - // std::unique_ptr> m_localize; + std::unique_ptr> m_localize; // std::unique_ptr> m_weapon; // std::unique_ptr> m_snd_driver_globals; // std::unique_ptr> m_fx; diff --git a/src/ZoneCommon/Game/IW4/IW4_Assets.h b/src/ZoneCommon/Game/IW4/IW4_Assets.h index 1d972d37..f7c46dd5 100644 --- a/src/ZoneCommon/Game/IW4/IW4_Assets.h +++ b/src/ZoneCommon/Game/IW4/IW4_Assets.h @@ -98,7 +98,7 @@ namespace IW4 // struct Font_s; // struct MenuList; // struct menuDef_t; - // struct LocalizeEntry; + struct LocalizeEntry; // struct WeaponCompleteDef; // struct SndDriverGlobals; // struct FxEffectDef; @@ -138,7 +138,7 @@ namespace IW4 // Font_s* font; // MenuList* menuList; // menuDef_t* menu; - // LocalizeEntry* localize; + LocalizeEntry* localize; // WeaponCompleteDef* weapon; // SndDriverGlobals* sndDriverGlobals; // FxEffectDef* fx; @@ -971,6 +971,12 @@ namespace IW4 float knots[16][2]; }; + struct LocalizeEntry + { + const char* value; + const char* name; + }; + #ifndef __zonecodegenerator } #endif diff --git a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp index f92ba10f..35e36cb7 100644 --- a/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp +++ b/src/ZoneLoading/Game/IW4/ContentLoaderIW4.cpp @@ -18,7 +18,7 @@ //#include "Game/IW4/XAssets/gfxworld/gfxworld_load_db.h" //#include "Game/IW4/XAssets/leaderboarddef/leaderboarddef_load_db.h" #include "Game/IW4/XAssets/loadedsound/loadedsound_load_db.h" -//#include "Game/IW4/XAssets/localizeentry/localizeentry_load_db.h" +#include "Game/IW4/XAssets/localizeentry/localizeentry_load_db.h" //#include "Game/IW4/XAssets/mapents/mapents_load_db.h" #include "Game/IW4/XAssets/material/material_load_db.h" #include "Game/IW4/XAssets/materialpixelshader/materialpixelshader_load_db.h" @@ -92,6 +92,9 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart) loader.Load(&varXAsset->header.headerEntry); \ break; \ } +#define SKIP_ASSET(type_index, typeName, headerEntry) \ + case type_index: \ + break; assert(varXAsset != nullptr); @@ -110,9 +113,9 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart) LOAD_ASSET(ASSET_TYPE_VERTEXDECL, MaterialVertexDeclaration, vertexDecl); LOAD_ASSET(ASSET_TYPE_TECHNIQUE_SET, MaterialTechniqueSet, techniqueSet); LOAD_ASSET(ASSET_TYPE_IMAGE, GfxImage, image); - LOAD_ASSET(ASSET_TYPE_SOUND, snd_alias_list_t, sound); - LOAD_ASSET(ASSET_TYPE_SOUND_CURVE, SndCurve, sndCurve); - LOAD_ASSET(ASSET_TYPE_LOADED_SOUND, LoadedSound, loadSnd); + LOAD_ASSET(ASSET_TYPE_SOUND, snd_alias_list_t, sound); + LOAD_ASSET(ASSET_TYPE_SOUND_CURVE, SndCurve, sndCurve); + LOAD_ASSET(ASSET_TYPE_LOADED_SOUND, LoadedSound, loadSnd); // LOAD_ASSET(ASSET_TYPE_CLIPMAP_SP, clipMap_t, clipMap); // LOAD_ASSET(ASSET_TYPE_CLIPMAP_MP, clipMap_t, clipMap); // LOAD_ASSET(ASSET_TYPE_COMWORLD, ComWorld, comWorld); @@ -125,9 +128,9 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart) // LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font); // LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList); // LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu); - // LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize); + LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize); // LOAD_ASSET(ASSET_TYPE_WEAPON, WeaponCompleteDef, weapon); - // LOAD_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals); + SKIP_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals); // LOAD_ASSET(ASSET_TYPE_FX, FxEffectDef, fx); // LOAD_ASSET(ASSET_TYPE_IMPACT_FX, FxImpactTable, impactFx); LOAD_ASSET(ASSET_TYPE_RAWFILE, RawFile, rawfile);