From 4946978ed7c0f50e5a8ea0550b51f271c964b626 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Fri, 17 Feb 2023 21:47:31 -0800 Subject: [PATCH] add blank name option --- src/Client.cc | 1 + src/Client.hh | 1 + src/Menu.hh | 7 ++++--- src/ProxyCommands.cc | 20 +++++++++++++++++--- src/ReceiveCommands.cc | 5 +++++ 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/Client.cc b/src/Client.cc index c239da08..f2731093 100644 --- a/src/Client.cc +++ b/src/Client.cc @@ -41,6 +41,7 @@ ClientOptions::ClientOptions() zero_remote_guild_card(false), ep3_infinite_meseta(false), red_name(false), + blank_name(false), function_call_return_value(-1) { } diff --git a/src/Client.hh b/src/Client.hh index 184825b3..e9ca031a 100644 --- a/src/Client.hh +++ b/src/Client.hh @@ -43,6 +43,7 @@ struct ClientOptions { bool zero_remote_guild_card; bool ep3_infinite_meseta; bool red_name; + bool blank_name; int64_t function_call_return_value; // -1 = don't block function calls ClientOptions(); diff --git a/src/Menu.hh b/src/Menu.hh index c3878f3d..82702b5b 100644 --- a/src/Menu.hh +++ b/src/Menu.hh @@ -67,9 +67,10 @@ namespace ProxyOptionsMenuItemID { constexpr uint32_t BLOCK_PATCHES = 0xAA6666AA; constexpr uint32_t SAVE_FILES = 0xAA7777AA; constexpr uint32_t RED_NAME = 0xAA8888AA; - constexpr uint32_t SUPPRESS_LOGIN = 0xAA9999AA; - constexpr uint32_t SKIP_CARD = 0xAAAAAAAA; - constexpr uint32_t EP3_INFINITE_MESETA = 0xAABBBBAA; + constexpr uint32_t BLANK_NAME = 0xAA9999AA; + constexpr uint32_t SUPPRESS_LOGIN = 0xAAAAAAAA; + constexpr uint32_t SKIP_CARD = 0xAABBBBAA; + constexpr uint32_t EP3_INFINITE_MESETA = 0xAACCCCAA; } diff --git a/src/ProxyCommands.cc b/src/ProxyCommands.cc index d83816ea..ce225237 100644 --- a/src/ProxyCommands.cc +++ b/src/ProxyCommands.cc @@ -181,7 +181,9 @@ static HandlerResult S_G_9A(shared_ptr, cmd.access_key = session.license->access_key; cmd.serial_number2 = cmd.serial_number; cmd.access_key2 = cmd.access_key; - cmd.name = session.character_name; + if (!session.options.blank_name) { + cmd.name = session.character_name; + } cmd.client_config.data = session.remote_client_config_data; cmd.extension.menu_id = 0; cmd.extension.lobby_id = 0; @@ -336,7 +338,9 @@ static HandlerResult S_V123P_02_17( cmd.access_key.clear_after(8); cmd.serial_number2 = cmd.serial_number; cmd.access_key2 = cmd.access_key; - cmd.name = session.character_name; + if (!session.options.blank_name) { + cmd.name = session.character_name; + } session.server_channel.send(0x9D, 0x00, &cmd, sizeof(cmd)); return HandlerResult::Type::SUPPRESS; } @@ -384,7 +388,9 @@ static HandlerResult S_V123P_02_17( cmd.access_key = fake_access_key_str; cmd.serial_number2 = cmd.serial_number; cmd.access_key2 = cmd.access_key; - cmd.name = session.character_name; + if (!session.options.blank_name) { + cmd.name = session.character_name; + } cmd.client_config.data = session.remote_client_config_data; cmd.extension.menu_id = 0; cmd.extension.lobby_id = 0; @@ -998,6 +1004,10 @@ static HandlerResult C_GXB_61(shared_ptr, if (session.options.enable_chat_filter) { add_color_inplace(pd.info_board.data(), pd.info_board.size()); } + if (session.options.blank_name) { + pd.disp.name.clear(); + modified = true; + } if (session.options.red_name && pd.disp.name_color != 0xFFFF0000) { pd.disp.name_color = 0xFFFF0000; modified = true; @@ -1013,6 +1023,10 @@ static HandlerResult C_GXB_61(shared_ptr, if (session.options.enable_chat_filter) { add_color_inplace(pd->info_board.data(), pd->info_board.size()); } + if (session.options.blank_name) { + pd->disp.name.clear(); + modified = true; + } if (session.options.red_name && pd->disp.name_color != 0xFFFF0000) { pd->disp.name_color = 0xFFFF0000; modified = true; diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index a7611325..eb3810f5 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -82,6 +82,7 @@ static const unordered_map proxy_options_menu_descrip {ProxyOptionsMenuItemID::BLOCK_PATCHES, u"Disable patches sent\nby the remote server"}, {ProxyOptionsMenuItemID::SAVE_FILES, u"Save local copies of\nfiles from the\nremote server\n(quests, etc.)"}, {ProxyOptionsMenuItemID::RED_NAME, u"Set your name\ncolor to red"}, + {ProxyOptionsMenuItemID::BLANK_NAME, u"Suppress your\ncharacter name\nduring login"}, {ProxyOptionsMenuItemID::SUPPRESS_LOGIN, u"Use an alternate\nlogin sequence"}, {ProxyOptionsMenuItemID::SKIP_CARD, u"Use an alternate\nvalue for your initial\nGuild Card"}, }); @@ -118,6 +119,7 @@ static vector proxy_options_menu_for_client( } if (s->proxy_enable_login_options) { add_option(ProxyOptionsMenuItemID::RED_NAME, c->options.red_name, u"Red name"); + add_option(ProxyOptionsMenuItemID::BLANK_NAME, c->options.blank_name, u"Blank name"); add_option(ProxyOptionsMenuItemID::SUPPRESS_LOGIN, c->options.suppress_remote_login, u"Skip login"); add_option(ProxyOptionsMenuItemID::SKIP_CARD, c->options.zero_remote_guild_card, u"Skip card"); } @@ -1828,6 +1830,9 @@ static void on_10(shared_ptr s, shared_ptr c, case ProxyOptionsMenuItemID::RED_NAME: c->options.red_name = !c->options.red_name; goto resend_proxy_options_menu; + case ProxyOptionsMenuItemID::BLANK_NAME: + c->options.blank_name = !c->options.blank_name; + goto resend_proxy_options_menu; case ProxyOptionsMenuItemID::SUPPRESS_LOGIN: c->options.suppress_remote_login = !c->options.suppress_remote_login; goto resend_proxy_options_menu;