From 8c097f0915b33d0e8377b9a8586f5809aecd2056 Mon Sep 17 00:00:00 2001 From: Quentin Date: Sun, 16 Jul 2023 12:04:24 +0200 Subject: [PATCH] fix(cache): weapon cache weapon types array not filled properly when filling from cache file (#1726) --- src/services/gta_data/gta_data_service.cpp | 16 ++++++++++++++-- src/services/gta_data/gta_data_service.hpp | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/services/gta_data/gta_data_service.cpp b/src/services/gta_data/gta_data_service.cpp index 61558745..34ffce66 100644 --- a/src/services/gta_data/gta_data_service.cpp +++ b/src/services/gta_data/gta_data_service.cpp @@ -163,8 +163,7 @@ namespace big load_peds(); load_vehicles(); - LOG(INFO) << "Loading " << m_weapons_cache.weapon_map.size() << " weapons from cache."; - LOG(INFO) << "Loading " << m_weapons_cache.weapon_components.size() << " weapon components from cache."; + load_weapons(); LOG(VERBOSE) << "Loaded all data from cache."; } @@ -205,6 +204,19 @@ namespace big m_vehicles_cache.free(); } + void gta_data_service::load_weapons() + { + LOG(INFO) << "Loading " << m_weapons_cache.weapon_map.size() << " weapons from cache."; + LOG(INFO) << "Loading " << m_weapons_cache.weapon_components.size() << " weapon components from cache."; + + for (const auto& [_, weapon] : m_weapons_cache.weapon_map) + { + add_if_not_exists(m_weapon_types, weapon.m_weapon_type); + } + + std::sort(m_weapon_types.begin(), m_weapon_types.end()); + } + inline void parse_ped(std::vector& peds, std::vector& mapped_peds, pugi::xml_document& doc) { const auto& items = doc.select_nodes("/CPedModelInfo__InitDataList/InitDatas/Item"); diff --git a/src/services/gta_data/gta_data_service.hpp b/src/services/gta_data/gta_data_service.hpp index 2046edb3..166df850 100644 --- a/src/services/gta_data/gta_data_service.hpp +++ b/src/services/gta_data/gta_data_service.hpp @@ -62,6 +62,7 @@ namespace big void load_data(); void load_peds(); void load_vehicles(); + void load_weapons(); void rebuild_cache();