1
This commit is contained in:
parent
57447c94f5
commit
a5664c666c
@ -7,6 +7,7 @@
|
||||
|
||||
#include <a8/stringlist.h>
|
||||
#include <a8/csvreader.h>
|
||||
#include <a8/mutable_xobject.h>
|
||||
|
||||
#include "framework/cpp/utils.h"
|
||||
|
||||
@ -20,7 +21,8 @@
|
||||
#define METAMGR_READ_STR(field_name, def_val) MetaMgr::Instance()->field_name = \
|
||||
a8::XValue(MetaMgr::Instance()->GetSysParamAsString(#field_name, def_val)).GetString();
|
||||
|
||||
static void ParseElemets(const std::string& text,
|
||||
static void ParseElemets(const std::string& textid,
|
||||
const std::string& text,
|
||||
std::vector<std::tuple<int, std::string>>& elements)
|
||||
{
|
||||
auto parsevar_cb =
|
||||
@ -37,6 +39,10 @@ static void ParseElemets(const std::string& text,
|
||||
} else if (var_name == "${weapon.text_icon}") {
|
||||
elements.push_back(std::make_tuple(kFieldIdxWeaponTextIcon, ""));
|
||||
} else if (var_name.find("${image.id:") == 0) {
|
||||
std::vector<std::string> strings;
|
||||
a8::Split(var_name, strings, ':');
|
||||
std::string id = strings[1].substr(0, strings[1].length() - 1);
|
||||
elements.push_back(std::make_tuple(kImageElement, id));
|
||||
} else {
|
||||
abort();
|
||||
}
|
||||
@ -62,6 +68,27 @@ static void ParseElemets(const std::string& text,
|
||||
pcurr = pend;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
a8::MutableXObject* obj = a8::MutableXObject::NewObject();
|
||||
a8::MutableXObject* arr = a8::MutableXObject::NewArray();
|
||||
for (auto& e : elements) {
|
||||
a8::MutableXObject* obj_el = a8::MutableXObject::NewObject();
|
||||
obj_el->SetVal("type", std::get<0>(e));
|
||||
obj_el->SetVal("val", std::get<1>(e));
|
||||
arr->Push(obj_el);
|
||||
}
|
||||
obj->SetVal("text", text);
|
||||
obj->SetVal("elemets", arr);
|
||||
a8::UdpLog::Instance()->Info
|
||||
("load textid:%s ",
|
||||
{
|
||||
textid,
|
||||
obj->ToJsonStr()
|
||||
}
|
||||
);
|
||||
delete obj;
|
||||
}
|
||||
}
|
||||
|
||||
class MetaDataLoader
|
||||
@ -778,7 +805,7 @@ private:
|
||||
text_hash[meta.textid()] = meta.text();
|
||||
if (meta.text().find("battle_server_dead_text_") != std::string::npos) {
|
||||
std::vector<std::tuple<int, std::string>> elemets;
|
||||
ParseElemets(meta.text(), elemets);
|
||||
ParseElemets(meta.textid(), meta.text(), elemets);
|
||||
text_element_hash[meta.text()] = elemets;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user