Log PC patch menu function filtering
This commit is contained in:
@@ -455,15 +455,44 @@ std::shared_ptr<const Menu> ClientFunctionIndex::patch_switches_menu(
|
|||||||
|
|
||||||
auto map_it = this->functions_by_specific_version.find(specific_version);
|
auto map_it = this->functions_by_specific_version.find(specific_version);
|
||||||
if (map_it != this->functions_by_specific_version.end()) {
|
if (map_it != this->functions_by_specific_version.end()) {
|
||||||
|
client_functions_log.warning_f(
|
||||||
|
"Patch menu debug: building menu for specific_version={} with {} function entries",
|
||||||
|
str_for_specific_version(specific_version),
|
||||||
|
map_it->second.size());
|
||||||
|
|
||||||
for (auto [name, fn] : map_it->second) {
|
for (auto [name, fn] : map_it->second) {
|
||||||
if (fn->appears_in_patches_menu() && !server_auto_patches_enabled.count(fn->short_name)) {
|
bool appears = fn->appears_in_patches_menu();
|
||||||
|
bool server_auto = server_auto_patches_enabled.count(fn->short_name);
|
||||||
|
bool client_enabled = client_auto_patches_enabled.count(fn->short_name);
|
||||||
|
bool dragon_debug =
|
||||||
|
(fn->short_name.find("Dragon") != std::string::npos) ||
|
||||||
|
(fn->long_name.find("Dragon") != std::string::npos);
|
||||||
|
|
||||||
|
if (dragon_debug || appears) {
|
||||||
|
client_functions_log.warning_f(
|
||||||
|
"Patch menu debug: key={} short={} long={} visibility={} appears={} server_auto={} client_enabled={} menu_item_id={:08X}",
|
||||||
|
name,
|
||||||
|
fn->short_name,
|
||||||
|
fn->long_name,
|
||||||
|
phosg::name_for_enum(fn->visibility),
|
||||||
|
appears,
|
||||||
|
server_auto,
|
||||||
|
client_enabled,
|
||||||
|
static_cast<uint32_t>(fn->menu_item_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (appears && !server_auto) {
|
||||||
std::string item_text;
|
std::string item_text;
|
||||||
item_text.push_back(client_auto_patches_enabled.count(fn->short_name) ? '*' : '-');
|
item_text.push_back(client_enabled ? '*' : '-');
|
||||||
item_text += fn->long_name.empty() ? fn->short_name : fn->long_name;
|
item_text += fn->long_name.empty() ? fn->short_name : fn->long_name;
|
||||||
ret->items.emplace_back(
|
ret->items.emplace_back(
|
||||||
fn->menu_item_id, item_text, fn->description, MenuItem::Flag::REQUIRES_SEND_FUNCTION_CALL_RUNS_CODE);
|
fn->menu_item_id, item_text, fn->description, MenuItem::Flag::REQUIRES_SEND_FUNCTION_CALL_RUNS_CODE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
client_functions_log.warning_f(
|
||||||
|
"Patch menu debug: no functions for specific_version={}",
|
||||||
|
str_for_specific_version(specific_version));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user