refactor proxy destinations menu generation
This commit is contained in:
+26
-20
@@ -266,30 +266,36 @@ void ServerState::create_menus(shared_ptr<const JSONObject> config_json) {
|
|||||||
this->information_menu_gc = information_menu_gc;
|
this->information_menu_gc = information_menu_gc;
|
||||||
this->information_contents = information_contents;
|
this->information_contents = information_contents;
|
||||||
|
|
||||||
this->proxy_destinations_menu_pc.emplace_back(ProxyDestinationsMenuItemID::GO_BACK,
|
auto generate_proxy_destinations_menu = +[](
|
||||||
u"Go back", u"Return to the\nmain menu", 0);
|
vector<MenuItem>& ret_menu,
|
||||||
this->proxy_destinations_menu_gc.emplace_back(ProxyDestinationsMenuItemID::GO_BACK,
|
vector<pair<string, uint16_t>>& ret_pds,
|
||||||
u"Go back", u"Return to the\nmain menu", 0);
|
const unordered_map<string, shared_ptr<JSONObject>>& d) {
|
||||||
{
|
ret_menu.clear();
|
||||||
|
ret_pds.clear();
|
||||||
|
|
||||||
|
ret_menu.emplace_back(ProxyDestinationsMenuItemID::GO_BACK, u"Go back",
|
||||||
|
u"Return to the\nmain menu", 0);
|
||||||
|
|
||||||
uint32_t item_id = 0;
|
uint32_t item_id = 0;
|
||||||
for (const auto& item : d.at("ProxyDestinations-GC")->as_dict()) {
|
for (const auto& item : d) {
|
||||||
const string& netloc_str = item.second->as_string();
|
const string& netloc_str = item.second->as_string();
|
||||||
this->proxy_destinations_menu_gc.emplace_back(item_id, decode_sjis(item.first),
|
const string& description = "$C7Remote server:\n$C6" + netloc_str;
|
||||||
decode_sjis(netloc_str), 0);
|
ret_menu.emplace_back(item_id, decode_sjis(item.first),
|
||||||
this->proxy_destinations_gc.emplace_back(parse_netloc(netloc_str));
|
decode_sjis(description), 0);
|
||||||
|
ret_pds.emplace_back(parse_netloc(netloc_str));
|
||||||
item_id++;
|
item_id++;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
{
|
|
||||||
uint32_t item_id = 0;
|
generate_proxy_destinations_menu(
|
||||||
for (const auto& item : d.at("ProxyDestinations-PC")->as_dict()) {
|
this->proxy_destinations_menu_pc,
|
||||||
const string& netloc_str = item.second->as_string();
|
this->proxy_destinations_pc,
|
||||||
this->proxy_destinations_menu_pc.emplace_back(item_id, decode_sjis(item.first),
|
d.at("ProxyDestinations-PC")->as_dict());
|
||||||
decode_sjis(netloc_str), 0);
|
generate_proxy_destinations_menu(
|
||||||
this->proxy_destinations_pc.emplace_back(parse_netloc(netloc_str));
|
this->proxy_destinations_menu_gc,
|
||||||
item_id++;
|
this->proxy_destinations_gc,
|
||||||
}
|
d.at("ProxyDestinations-GC")->as_dict());
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
const string& netloc_str = d.at("ProxyDestination-Patch")->as_string();
|
const string& netloc_str = d.at("ProxyDestination-Patch")->as_string();
|
||||||
this->proxy_destination_patch = parse_netloc(netloc_str);
|
this->proxy_destination_patch = parse_netloc(netloc_str);
|
||||||
|
|||||||
Reference in New Issue
Block a user