diff --git a/src/CommandFormats.hh b/src/CommandFormats.hh index 7ea102f1..a36e7607 100644 --- a/src/CommandFormats.hh +++ b/src/CommandFormats.hh @@ -301,6 +301,8 @@ struct S_Reconnect_Patch_14 : S_Reconnect { // player why they can't do something (e.g. join a full game). // This format is shared by multiple commands; for all of them except 06 (S->C), // the guild_card_number field is unused and should be 0. +// On BB, this command may be sent as 0001 or 0101; in the latter case, the +// message box appears in the lower-left corner instead. struct SC_TextHeader_01_06_11_B0_EE { le_uint32_t unused = 0; @@ -3490,7 +3492,8 @@ struct S_CardTradeComplete_GC_Ep3_EE_FlagD4 { // EE (S->C): Scrolling message (BB) // Same format as 01. The message appears at the top of the screen and slowly -// scrolls to the left. +// scrolls to the left. The maximum length of the message is 0x400 bytes (0x200 +// UTF-16 characters). // EF (C->S): Join card auction (Episode 3) // When a card auction is ready to begin, the leader sends this command to diff --git a/src/SendCommands.cc b/src/SendCommands.cc index b002020a..3d604696 100644 --- a/src/SendCommands.cc +++ b/src/SendCommands.cc @@ -789,8 +789,9 @@ void send_quest_info(shared_ptr c, const string& text, bool is_download_ c->config.check_flag(Client::Flag::IS_DC_TRIAL_EDITION) ? ColorMode::STRIP : ColorMode::ADD); } -void send_lobby_message_box(shared_ptr c, const string& text) { - send_header_text(c->channel, 0x01, 0, text, c->config.check_flag(Client::Flag::IS_DC_TRIAL_EDITION) ? ColorMode::STRIP : ColorMode::ADD); +void send_lobby_message_box(shared_ptr c, const string& text, bool left_side_on_bb) { + uint16_t command = (left_side_on_bb && (c->version() == GameVersion::BB)) ? 0x0101 : 0x0001; + send_header_text(c->channel, command, 0, text, c->config.check_flag(Client::Flag::IS_DC_TRIAL_EDITION) ? ColorMode::STRIP : ColorMode::ADD); } void send_ship_info(shared_ptr c, const string& text) { diff --git a/src/SendCommands.hh b/src/SendCommands.hh index f5620404..33192df2 100644 --- a/src/SendCommands.hh +++ b/src/SendCommands.hh @@ -179,7 +179,7 @@ void send_ep3_timed_message_box(Channel& ch, uint32_t frames, const std::string& void send_lobby_name(std::shared_ptr c, const std::string& text); void send_quest_info(std::shared_ptr c, const std::string& text, bool is_download_quest); -void send_lobby_message_box(std::shared_ptr c, const std::string& text); +void send_lobby_message_box(std::shared_ptr c, const std::string& text, bool left_side_on_bb = false); void send_ship_info(std::shared_ptr c, const std::string& text); void send_ship_info(Channel& ch, const std::string& text); void send_text_message(Channel& ch, const std::string& text);