fix EE command format
This commit is contained in:
@@ -251,7 +251,7 @@ struct S_StartFileDownloads_Patch_11 {
|
|||||||
// A small message box appears in lower-right corner, and the player must press
|
// A small message box appears in lower-right corner, and the player must press
|
||||||
// a key to continue.
|
// 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 unused;
|
||||||
le_uint32_t guild_card_number;
|
le_uint32_t guild_card_number;
|
||||||
// Text immediately follows this header (char[] on DC/GC, char16_t[] on PC/BB)
|
// 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)
|
// EE (S->C): Scrolling message (BB)
|
||||||
// Contents are plain text (char16_t). The message appears at the top of the
|
// Same format as 01. The message appears at the top of the screen and slowly
|
||||||
// screen and slowly scrolls to the left.
|
// scrolls to the left.
|
||||||
|
|
||||||
// EF (S->C): Unknown (BB)
|
// EF (S->C): Unknown (BB)
|
||||||
// Has an unknown number of subcommands (00EF, 01EF, etc.)
|
// Has an unknown number of subcommands (00EF, 01EF, etc.)
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ static void send_text_message_to_client(
|
|||||||
uint8_t command,
|
uint8_t command,
|
||||||
const std::string& message) {
|
const std::string& message) {
|
||||||
StringWriter w;
|
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) {
|
if (session.version == GameVersion::PC) {
|
||||||
auto decoded = decode_sjis(message);
|
auto decoded = decode_sjis(message);
|
||||||
w.write(decoded.data(), decoded.size() * sizeof(decoded[0]));
|
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>,
|
static bool process_server_dc_pc_gc_06(shared_ptr<ServerState>,
|
||||||
ProxyServer::LinkedSession& session, uint16_t, uint32_t, string& data) {
|
ProxyServer::LinkedSession& session, uint16_t, uint32_t, string& data) {
|
||||||
if (session.license) {
|
if (session.license) {
|
||||||
auto& cmd = check_size_t<SC_TextHeader_01_06_11_B0>(data,
|
auto& cmd = check_size_t<SC_TextHeader_01_06_11_B0_EE>(data,
|
||||||
sizeof(SC_TextHeader_01_06_11_B0), 0xFFFF);
|
sizeof(SC_TextHeader_01_06_11_B0_EE), 0xFFFF);
|
||||||
if (cmd.guild_card_number == session.remote_guild_card_number) {
|
if (cmd.guild_card_number == session.remote_guild_card_number) {
|
||||||
cmd.guild_card_number = session.license->serial_number;
|
cmd.guild_card_number = session.license->serial_number;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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,
|
void send_header_text(shared_ptr<Client> c, uint16_t command,
|
||||||
uint32_t guild_card_number, const u16string& text) {
|
uint32_t guild_card_number, const u16string& text) {
|
||||||
StringWriter w;
|
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);
|
send_text(c, w, command, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user