fix incorrect ep3 map command size
This commit is contained in:
@@ -1621,9 +1621,9 @@ struct S_RankUpdate_GC_Ep3_B7 {
|
|||||||
// B8 (S->C): Update card definitions (Episode 3)
|
// B8 (S->C): Update card definitions (Episode 3)
|
||||||
// Contents is a single little-endian le_uint32_t specifying the size of the
|
// Contents is a single little-endian le_uint32_t specifying the size of the
|
||||||
// (PRS-compressed) data, followed immediately by the data.
|
// (PRS-compressed) data, followed immediately by the data.
|
||||||
// Note: BB has a handler for B8, but it does nothing - the client ignores B8.
|
// Note: PSO BB accepts this command as well, but ignores it.
|
||||||
|
|
||||||
// B8 (C->S): Confirm updated card definitions
|
// B8 (C->S): Confirm updated card definitions (Episode 3)
|
||||||
// No arguments
|
// No arguments
|
||||||
// The client sends this after it receives a B8 from the server.
|
// The client sends this after it receives a B8 from the server.
|
||||||
|
|
||||||
@@ -1633,7 +1633,7 @@ struct S_Unknown_GC_Ep3_B9 {
|
|||||||
le_uint32_t unknown_a1; // Must be 1-4 (inclusive)
|
le_uint32_t unknown_a1; // Must be 1-4 (inclusive)
|
||||||
le_uint32_t unknown_a2;
|
le_uint32_t unknown_a2;
|
||||||
le_uint16_t unknown_a3;
|
le_uint16_t unknown_a3;
|
||||||
le_uint16_t unknown_a4;
|
le_uint16_t unused;
|
||||||
parray<uint8_t, 0x3800> unknown_a5;
|
parray<uint8_t, 0x3800> unknown_a5;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2708,14 +2708,14 @@ struct G_EnemyHitByPlayer_6x0A {
|
|||||||
// 0F: Invalid subcommand
|
// 0F: Invalid subcommand
|
||||||
// 10: Unknown (not valid on Episode 3)
|
// 10: Unknown (not valid on Episode 3)
|
||||||
// 11: Unknown (not valid on Episode 3)
|
// 11: Unknown (not valid on Episode 3)
|
||||||
// 12: Dragon actions (not valid on Episode 3)
|
// 12: Dragon boss actions (not valid on Episode 3)
|
||||||
// 13: Re Rol Le actions (not valid on Episode 3)
|
// 13: Re Rol Le boss actions (not valid on Episode 3)
|
||||||
// 14: Unknown (supported; game only; not valid on Episode 3)
|
// 14: Unknown (supported; game only; not valid on Episode 3)
|
||||||
// 15: Vol Opt boss actions (not valid on Episode 3)
|
// 15: Vol Opt boss actions (not valid on Episode 3)
|
||||||
// 16: Vol Opt boss actions (not valid on Episode 3)
|
// 16: Vol Opt boss actions (not valid on Episode 3)
|
||||||
// 17: Unknown (supported; game only; not valid on Episode 3)
|
// 17: Unknown (supported; game only; not valid on Episode 3)
|
||||||
// 18: Unknown (supported; game only; not valid on Episode 3)
|
// 18: Unknown (supported; game only; not valid on Episode 3)
|
||||||
// 19: Dark Falz actions (not valid on Episode 3)
|
// 19: Dark Falz boss actions (not valid on Episode 3)
|
||||||
// 1A: Invalid subcommand
|
// 1A: Invalid subcommand
|
||||||
// 1B: Unknown (not valid on Episode 3)
|
// 1B: Unknown (not valid on Episode 3)
|
||||||
// 1C: Unknown (supported; game only; not valid on Episode 3)
|
// 1C: Unknown (supported; game only; not valid on Episode 3)
|
||||||
@@ -3096,7 +3096,7 @@ struct G_BoxItemDropRequest_6xA2 {
|
|||||||
// B4: Unknown (Episode 3 only)
|
// B4: Unknown (Episode 3 only)
|
||||||
// B5: Episode 3 game setup menu state sync
|
// B5: Episode 3 game setup menu state sync
|
||||||
// B5: BB shop request (handled by the server)
|
// B5: BB shop request (handled by the server)
|
||||||
// B6: Episode 3 map list (server->client only)
|
// B6: Episode 3 subcommands (server->client only)
|
||||||
|
|
||||||
// B6: BB shop contents (server->client only)
|
// B6: BB shop contents (server->client only)
|
||||||
|
|
||||||
|
|||||||
@@ -2713,7 +2713,7 @@ static process_command_t gc_handlers[0x100] = {
|
|||||||
// B0
|
// B0
|
||||||
nullptr, process_server_time_request, nullptr, process_function_call_result,
|
nullptr, process_server_time_request, nullptr, process_function_call_result,
|
||||||
nullptr, nullptr, nullptr, process_ignored_command,
|
nullptr, nullptr, nullptr, process_ignored_command,
|
||||||
process_ignored_command, nullptr, process_ep3_meseta_transaction, nullptr,
|
process_ignored_command, process_ignored_command, process_ep3_meseta_transaction, nullptr,
|
||||||
nullptr, nullptr, nullptr, nullptr,
|
nullptr, nullptr, nullptr, nullptr,
|
||||||
|
|
||||||
// C0
|
// C0
|
||||||
|
|||||||
+2
-2
@@ -1450,7 +1450,7 @@ void send_ep3_map_list(shared_ptr<ServerState> s, shared_ptr<Lobby> l) {
|
|||||||
string cmd_data(16, '\0');
|
string cmd_data(16, '\0');
|
||||||
PSOSubcommand* subs = reinterpret_cast<PSOSubcommand*>(cmd_data.data());
|
PSOSubcommand* subs = reinterpret_cast<PSOSubcommand*>(cmd_data.data());
|
||||||
subs[0].dword = 0x000000B6;
|
subs[0].dword = 0x000000B6;
|
||||||
subs[1].dword = (data.size() + 0x14 + 3) & 0xFFFFFFFC;
|
subs[1].dword = (data.size() + 0x10 + 3) & 0xFFFFFFFC;
|
||||||
subs[2].dword = 0x00000040;
|
subs[2].dword = 0x00000040;
|
||||||
subs[3].dword = data.size();
|
subs[3].dword = data.size();
|
||||||
cmd_data += data;
|
cmd_data += data;
|
||||||
@@ -1466,7 +1466,7 @@ void send_ep3_map_data(shared_ptr<ServerState> s, shared_ptr<Lobby> l, uint32_t
|
|||||||
string data(0x14, '\0');
|
string data(0x14, '\0');
|
||||||
PSOSubcommand* subs = reinterpret_cast<PSOSubcommand*>(data.data());
|
PSOSubcommand* subs = reinterpret_cast<PSOSubcommand*>(data.data());
|
||||||
subs[0].dword = 0x000000B6;
|
subs[0].dword = 0x000000B6;
|
||||||
subs[1].dword = (19 + compressed.size()) & 0xFFFFFFFC;
|
subs[1].dword = (compressed.size() + 0x14 + 3) & 0xFFFFFFFC;
|
||||||
subs[2].dword = 0x00000041;
|
subs[2].dword = 0x00000041;
|
||||||
subs[3].dword = entry->map.map_number.load();
|
subs[3].dword = entry->map.map_number.load();
|
||||||
subs[4].dword = compressed.size();
|
subs[4].dword = compressed.size();
|
||||||
|
|||||||
@@ -3672,7 +3672,7 @@ I 94711 2022-07-26 00:26:28 - [Commands] Received from C-8 (NO DATA) (version=GC
|
|||||||
0000000000000010 | 00 00 00 00 |
|
0000000000000010 | 00 00 00 00 |
|
||||||
I 94711 2022-07-26 00:26:28 - [StaticGameData] Generated Episode 3 compressed map list (12120 -> 3105 bytes)
|
I 94711 2022-07-26 00:26:28 - [StaticGameData] Generated Episode 3 compressed map list (12120 -> 3105 bytes)
|
||||||
I 94711 2022-07-26 00:26:28 - [Commands] Sending to C-8 (NO DATA) (version=GC command=6C flag=00)
|
I 94711 2022-07-26 00:26:28 - [Commands] Sending to C-8 (NO DATA) (version=GC command=6C flag=00)
|
||||||
0000000000000000 | 6C 00 38 0C B6 00 00 00 38 0C 00 00 40 00 00 00 | l 8 8 @
|
0000000000000000 | 6C 00 38 0C B6 00 00 00 34 0C 00 00 40 00 00 00 | l 8 8 @
|
||||||
0000000000000010 | 21 0C 00 00 00 00 2F 58 8F 00 00 00 0E FC F8 F9 | ! /X
|
0000000000000010 | 21 0C 00 00 00 00 2F 58 8F 00 00 00 0E FC F8 F9 | ! /X
|
||||||
0000000000000020 | 1D C0 00 00 FF 2F 58 01 B1 00 6F 00 00 3B 02 30 | /X o ; 0
|
0000000000000020 | 1D C0 00 00 FF 2F 58 01 B1 00 6F 00 00 3B 02 30 | /X o ; 0
|
||||||
0000000000000030 | 64 FF 00 0D C6 FC 1A FC 27 AF 00 07 00 07 65 FF | d ' e
|
0000000000000030 | 64 FF 00 0D C6 FC 1A FC 27 AF 00 07 00 07 65 FF | d ' e
|
||||||
@@ -3887,7 +3887,7 @@ I 94711 2022-07-26 00:26:37 - [Commands] Received from C-8 (NO DATA) (version=GC
|
|||||||
0000000000000000 | CA 00 18 00 B3 05 E0 E1 41 00 00 10 FF FF FF FF | A
|
0000000000000000 | CA 00 18 00 B3 05 E0 E1 41 00 00 10 FF FF FF FF | A
|
||||||
0000000000000010 | 00 00 00 00 58 02 00 00 | X
|
0000000000000010 | 00 00 00 00 58 02 00 00 | X
|
||||||
I 94711 2022-07-26 00:26:37 - [Commands] Sending to C-8 (NO DATA) (version=GC command=6C flag=00)
|
I 94711 2022-07-26 00:26:37 - [Commands] Sending to C-8 (NO DATA) (version=GC command=6C flag=00)
|
||||||
0000000000000000 | 6C 00 84 04 B6 00 00 00 7C 04 00 00 41 00 00 00 | l | A
|
0000000000000000 | 6C 00 84 04 B6 00 00 00 80 04 00 00 41 00 00 00 | l | A
|
||||||
0000000000000010 | 58 02 00 00 69 04 00 00 FF 00 00 01 00 00 00 02 | X i
|
0000000000000010 | 58 02 00 00 69 04 00 00 FF 00 00 01 00 00 00 02 | X i
|
||||||
0000000000000020 | 58 8F 05 08 05 05 F7 C8 F4 FA DE CC FF 04 02 03 | X
|
0000000000000020 | 58 8F 05 08 05 05 F7 C8 F4 FA DE CC FF 04 02 03 | X
|
||||||
0000000000000030 | 80 FF 0C 01 49 01 D3 80 FF 0E BD 00 FF 1E 80 FF | I
|
0000000000000030 | 80 FF 0C 01 49 01 D3 80 FF 0E BD 00 FF 1E 80 FF | I
|
||||||
|
|||||||
Reference in New Issue
Block a user