add param read
This commit is contained in:
parent
b08e14d2cb
commit
49537b8837
@ -4,6 +4,12 @@
|
||||
|
||||
namespace MetaData
|
||||
{
|
||||
void Parameter::Init()
|
||||
{
|
||||
int_val = a8::XValue(i->param_value());
|
||||
float_val = a8::XValue(i->param_value());
|
||||
str_val = a8::XValue(i->param_value()).GetString();
|
||||
}
|
||||
|
||||
void Map::Init()
|
||||
{
|
||||
|
@ -8,6 +8,12 @@ namespace MetaData
|
||||
struct Parameter
|
||||
{
|
||||
const metatable::Parameter* i = nullptr;
|
||||
|
||||
int int_val = 0;
|
||||
std::string str_val;
|
||||
double float_val = 0.0f;
|
||||
|
||||
void Init();
|
||||
};
|
||||
|
||||
struct Map
|
||||
|
@ -74,6 +74,7 @@ private:
|
||||
for (auto& meta : parameter_meta_list) {
|
||||
MetaData::Parameter& item = a8::FastAppend(parameter_list);
|
||||
item.i = &meta;
|
||||
item.Init();
|
||||
parameter_hash[item.i->param_name()] = &item;
|
||||
}
|
||||
|
||||
@ -195,10 +196,22 @@ void MetaMgr::Reload()
|
||||
loader_->Load();
|
||||
}
|
||||
|
||||
std::string MetaMgr::GetSysParam(const std::string& param_name)
|
||||
int MetaMgr::GetSysParamAsInt(const std::string& param_name, int def_val)
|
||||
{
|
||||
auto itr = loader_->parameter_hash.find(param_name);
|
||||
return itr != loader_->parameter_hash.end() ? itr->second->i->param_value() : "";
|
||||
return itr != loader_->parameter_hash.end() ? itr->second->int_val: def_val;
|
||||
}
|
||||
|
||||
double MetaMgr::GetSysParamAsFloat(const std::string& param_name, double def_val)
|
||||
{
|
||||
auto itr = loader_->parameter_hash.find(param_name);
|
||||
return itr != loader_->parameter_hash.end() ? itr->second->float_val: def_val;
|
||||
}
|
||||
|
||||
std::string MetaMgr::GetSysParamAsString(const std::string& param_name, const char* def_val)
|
||||
{
|
||||
auto itr = loader_->parameter_hash.find(param_name);
|
||||
return itr != loader_->parameter_hash.end() ? itr->second->str_val: def_val;
|
||||
}
|
||||
|
||||
MetaData::Map* MetaMgr::GetMap(int map_id)
|
||||
|
@ -16,7 +16,9 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
void UnInit();
|
||||
void Reload();
|
||||
|
||||
std::string GetSysParam(const std::string& param_name);
|
||||
int GetSysParamAsInt(const std::string& param_name, int def_val = 0);
|
||||
double GetSysParamAsFloat(const std::string& param_name, double def_val = 0.0f);
|
||||
std::string GetSysParamAsString(const std::string& param_name, const char* def_val = "");
|
||||
MetaData::Map* GetMap(int map_id);
|
||||
MetaData::MapThing* GetMapThing(int mapthing_id);
|
||||
MetaData::Player* GetPlayer(int id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user