TmpMenu/BigBaseV2/src/services/gta_data/gta_data_service.hpp

52 lines
1.6 KiB
C++
Raw Normal View History

2022-07-19 18:19:19 +08:00
#pragma once
#include "file_manager/file.hpp"
#include "vehicle_item.hpp"
#include "ped_item.hpp"
#include "weapon_item.hpp"
#include "gta/joaat.hpp"
2022-07-19 18:19:19 +08:00
namespace big
{
class gta_data_service
{
std::vector<std::string> m_vehicle_class_arr;
std::map<Hash, int> m_vehicle_hash_idx_map;
std::vector<vehicle_item> m_vehicle_item_arr;
const vehicle_item empty_vehicle_item = vehicle_item();
std::vector<std::string> m_ped_type_arr;
std::map<Hash, int> m_ped_hash_idx_map;
std::vector<ped_item> m_ped_item_arr;
const ped_item empty_ped_item = ped_item();
std::vector<std::string> m_weapon_type_arr;
std::map<Hash, int> m_weapon_hash_idx_map;
std::vector<weapon_item> m_weapon_item_arr;
const weapon_item empty_weapon_item = weapon_item();
2022-07-19 18:19:19 +08:00
public:
gta_data_service();
~gta_data_service();
const vehicle_item& find_vehicle_by_hash(Hash hash);
const std::vector<std::string>& get_vehicle_class_arr();
const std::vector<vehicle_item>& get_vehicle_arr();
2022-07-19 18:19:19 +08:00
const ped_item& find_ped_by_hash(Hash hash);
const std::vector<std::string>& get_ped_type_arr();
const std::vector<ped_item>& get_ped_arr();
const weapon_item& find_weapon_by_hash(Hash hash);
const std::vector<std::string>& get_weapon_type_arr();
const std::vector<weapon_item>& get_weapon_arr();
2022-07-19 18:19:19 +08:00
private:
2022-08-13 17:19:18 +08:00
void load_from_file(std::string file_path, std::string etag_path, std::string url, bool(gta_data_service::* load_func)(file), std::string data_name);
2022-07-19 18:19:19 +08:00
2022-08-13 17:19:18 +08:00
bool load_vehicles(file file_to_load);
bool load_peds(file file_to_load);
bool load_weapons(file file_to_load);
2022-07-19 18:19:19 +08:00
};
inline gta_data_service* g_gta_data_service{};
}