add blank name option

This commit is contained in:
Martin Michelsen
2023-02-17 21:47:31 -08:00
parent 1eba82c739
commit 4946978ed7
5 changed files with 28 additions and 6 deletions
+1
View File
@@ -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) { }
+1
View File
@@ -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();
+4 -3
View File
@@ -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;
}
+17 -3
View File
@@ -181,7 +181,9 @@ static HandlerResult S_G_9A(shared_ptr<ServerState>,
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<ServerState>,
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<ServerState>,
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;
+5
View File
@@ -82,6 +82,7 @@ static const unordered_map<uint32_t, const char16_t*> 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<MenuItem> 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<ServerState> s, shared_ptr<Client> 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;