diff --git a/src/backend/commands/player/toxic/kamikaze.cpp b/src/backend/commands/player/toxic/kamikaze.cpp index 0667af60..f7c2897d 100644 --- a/src/backend/commands/player/toxic/kamikaze.cpp +++ b/src/backend/commands/player/toxic/kamikaze.cpp @@ -98,7 +98,7 @@ namespace big string::operations::to_lower(item_name_lower); if (item_name_lower.find(args_lower) != std::string::npos) { - result.push(rage::joaat(item.first)); + result.push(rage::joaat(item.second.m_name)); return result; } } diff --git a/src/backend/commands/spawn/spawn_vehicle.cpp b/src/backend/commands/spawn/spawn_vehicle.cpp index 7d3722eb..da1186cb 100644 --- a/src/backend/commands/spawn/spawn_vehicle.cpp +++ b/src/backend/commands/spawn/spawn_vehicle.cpp @@ -46,7 +46,7 @@ namespace big string::operations::to_lower(args_lower); if (item_name_lower.find(args_lower) != std::string::npos) { - result.push(rage::joaat(item.first)); + result.push(rage::joaat(item.second.m_name)); return result; } } diff --git a/src/hooks/protections/can_apply_data.cpp b/src/hooks/protections/can_apply_data.cpp index 0e83e9ea..4d9b1d0a 100644 --- a/src/hooks/protections/can_apply_data.cpp +++ b/src/hooks/protections/can_apply_data.cpp @@ -206,25 +206,15 @@ namespace big if (info->get_model_type() == eModelType::Vehicle) { - for (auto& [name, data] : g_gta_data_service.vehicles()) - { - if (data.m_hash == model) - { - model_str = name.data(); - break; - } - } + auto& vehicles = g_gta_data_service.vehicles(); + if(auto it = vehicles.find(model); it != vehicles.end()) + model_str = it->second.m_name; } else if (info->get_model_type() == eModelType::Ped) { - for (auto& [name, data] : g_gta_data_service.peds()) - { - if (data.m_hash == model) - { - model_str = name.data(); - break; - } - } + auto& peds = g_gta_data_service.peds(); + if(auto it = peds.find(model); it != peds.end()) + model_str = it->second.m_name; } if (!model_str) diff --git a/src/services/gta_data/gta_data_service.cpp b/src/services/gta_data/gta_data_service.cpp index d0c68164..8d832246 100644 --- a/src/services/gta_data/gta_data_service.cpp +++ b/src/services/gta_data/gta_data_service.cpp @@ -72,17 +72,17 @@ namespace big // innefficient getters, don't care to fix right now const ped_item& gta_data_service::ped_by_hash(uint32_t hash) { - for (const auto& [name, ped] : m_peds) - if (ped.m_hash == hash) - return ped; + if(auto it = m_peds.find(hash); it != m_peds.end()) + return it->second; + return gta_data_service::empty_ped; } const vehicle_item& gta_data_service::vehicle_by_hash(uint32_t hash) { - for (const auto& [name, veh] : m_vehicles) - if (veh.m_hash == hash) - return veh; + if(auto it = m_vehicles.find(hash); it != m_vehicles.end()) + return it->second; + return gta_data_service::empty_vehicle; } @@ -181,7 +181,7 @@ namespace big const auto ped = cached_peds[i]; add_if_not_exists(m_ped_types, ped.m_ped_type); - m_peds.insert({ped.m_name, ped}); + m_peds.insert({ped.m_hash, ped}); } std::sort(m_ped_types.begin(), m_ped_types.end()); @@ -203,7 +203,7 @@ namespace big const auto vehicle = cached_vehicles[i]; add_if_not_exists(m_vehicle_classes, vehicle.m_vehicle_class); - m_vehicles.insert({vehicle.m_name, vehicle}); + m_vehicles.insert({vehicle.m_hash, vehicle}); } std::sort(m_vehicle_classes.begin(), m_vehicle_classes.end()); diff --git a/src/services/gta_data/gta_data_service.hpp b/src/services/gta_data/gta_data_service.hpp index ff85426b..d7d99198 100644 --- a/src/services/gta_data/gta_data_service.hpp +++ b/src/services/gta_data/gta_data_service.hpp @@ -14,8 +14,8 @@ namespace big UPDATING }; - using ped_map = std::map; - using vehicle_map = std::map; + using ped_map = std::map; + using vehicle_map = std::map; using string_vec = std::vector; class gta_data_service final @@ -58,6 +58,11 @@ namespace big return m_weapons_cache.weapon_components; } + std::string get_vehicle_full_name(vehicle_item veh); + { + return std::format("{} {} {}", veh.m_vehicle_class, veh.m_display_manufacturer, veh.m_display_name); + } + private: bool is_cache_up_to_date(); diff --git a/src/views/players/player/player_info.cpp b/src/views/players/player/player_info.cpp index 63010bb6..ca8541a7 100644 --- a/src/views/players/player/player_info.cpp +++ b/src/views/players/player/player_info.cpp @@ -246,7 +246,8 @@ namespace big if (CVehicleModelInfo* vehicle_model_info = static_cast(vehicle->m_model_info)) { - vehicle_name = g_gta_data_service.vehicles()[vehicle_model_info->m_name].m_display_name; // TODO + auto vehicle_item = g_gta_data_service.vehicles()[vehicle_model_info->m_hash]; + vehicle_name = g_gta_data_service.get_vehicle_full_name(vehicle_item); } if (veh_damage_bits & (uint32_t)eEntityProofs::GOD)