Files
Leviathan/Client/Game/game/DB/STitleDB.h
T
2026-06-01 12:46:52 +02:00

84 lines
1.7 KiB
C++

#pragma once
//#include <string>
//#include <vector>
#include <map>
#include <toolkit/khash.h>
#pragma once
#pragma pack( 1 )
struct TitleResource
{
int id;
int name_id;
int tooltip_id; // 획득 조건 스트링 아이디
int status_id; // 진행 상황 스트링 아이디
char rate;
short opt_type[8];
float opt_var1[8];
float opt_var2[8];
int effect_id; // 성능 ID
int local_flag;
bool is_periodic;
int begin_of_period;
int end_of_period;
};
struct TitleConditionResource
{
int id;
int sub_id;
int group_id;
int condition_type_id;
__int64 count;
bool is_archieve_condition;
};
struct TitleConditionTypeResource
{
int id;
int category;
int category_value[3];
};
typedef std::map<int, TitleResource> mapTitleRes;
typedef std::multimap<int, TitleConditionResource> mapTitleCRes;
typedef std::map<int, TitleConditionTypeResource> mapTitleCTRes;
class STitleDB
{
public:
STitleDB();
~STitleDB();
const std::map<int,TitleResource>& GetTitleRes() { return m_TitleRes; }
const std::multimap<int,TitleConditionResource>& GetTitleConditionRes() { return m_TitleConditionRes; }
const std::map<int,TitleConditionTypeResource>& getTitleConditionTypeRes() { return m_titleTypeConditionRes; }
protected:
void Init();
void Destroy();
void Load();
void LoadTitleRes(); // 3개의 DB를 같이 관리 하므로 Load에서 세개를 호출해준다..
void LoadTitleConRes();
void LoadTitleConTypeRes();
std::map<int, TitleResource> m_TitleRes;
std::multimap<int, TitleConditionResource> m_TitleConditionRes;
std::map<int, TitleConditionTypeResource> m_titleTypeConditionRes;
private:
public:
static STitleDB* m_pThis;
};
STitleDB & GetTitleDB();
#pragma pack()