fix EE command format

This commit is contained in:
Martin Michelsen
2022-05-22 01:30:25 -07:00
parent 767883214d
commit 22b69276dd
3 changed files with 7 additions and 7 deletions
+3 -3
View File
@@ -251,7 +251,7 @@ struct S_StartFileDownloads_Patch_11 {
// A small message box appears in lower-right corner, and the player must press
// a key to continue.
struct SC_TextHeader_01_06_11_B0 {
struct SC_TextHeader_01_06_11_B0_EE {
le_uint32_t unused;
le_uint32_t guild_card_number;
// Text immediately follows this header (char[] on DC/GC, char16_t[] on PC/BB)
@@ -1692,8 +1692,8 @@ union C_UpdateAccountData_BB_ED {
};
// EE (S->C): Scrolling message (BB)
// Contents are plain text (char16_t). The message appears at the top of the
// screen and slowly scrolls to the left.
// Same format as 01. The message appears at the top of the screen and slowly
// scrolls to the left.
// EF (S->C): Unknown (BB)
// Has an unknown number of subcommands (00EF, 01EF, etc.)
+3 -3
View File
@@ -68,7 +68,7 @@ static void send_text_message_to_client(
uint8_t command,
const std::string& message) {
StringWriter w;
w.put<SC_TextHeader_01_06_11_B0>({0, 0});
w.put<SC_TextHeader_01_06_11_B0_EE>({0, 0});
if (session.version == GameVersion::PC) {
auto decoded = decode_sjis(message);
w.write(decoded.data(), decoded.size() * sizeof(decoded[0]));
@@ -312,8 +312,8 @@ static bool process_server_dc_pc_gc_04(shared_ptr<ServerState>,
static bool process_server_dc_pc_gc_06(shared_ptr<ServerState>,
ProxyServer::LinkedSession& session, uint16_t, uint32_t, string& data) {
if (session.license) {
auto& cmd = check_size_t<SC_TextHeader_01_06_11_B0>(data,
sizeof(SC_TextHeader_01_06_11_B0), 0xFFFF);
auto& cmd = check_size_t<SC_TextHeader_01_06_11_B0_EE>(data,
sizeof(SC_TextHeader_01_06_11_B0_EE), 0xFFFF);
if (cmd.guild_card_number == session.remote_guild_card_number) {
cmd.guild_card_number = session.license->serial_number;
}
+1 -1
View File
@@ -476,7 +476,7 @@ void send_text(shared_ptr<Client> c, StringWriter& w, uint16_t command,
void send_header_text(shared_ptr<Client> c, uint16_t command,
uint32_t guild_card_number, const u16string& text) {
StringWriter w;
w.put(SC_TextHeader_01_06_11_B0({0, guild_card_number}));
w.put(SC_TextHeader_01_06_11_B0_EE({0, guild_card_number}));
send_text(c, w, command, text);
}