This commit is contained in:
aozhiwei 2021-09-02 20:05:36 +08:00
parent 57447c94f5
commit a5664c666c

View File

@ -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;
}
}