fix converted 6x70 subcommand size field
This commit is contained in:
@@ -455,8 +455,11 @@ static void on_sync_joining_player_disp_and_inventory(
|
|||||||
send_or_enqueue_joining_player_command(target, command, flag, data, size);
|
send_or_enqueue_joining_player_command(target, command, flag, data, size);
|
||||||
|
|
||||||
} else if (sender_is_gc) {
|
} else if (sender_is_gc) {
|
||||||
// Convert GC command to XB command
|
// Convert the GC command to the XB command format. There are some extra
|
||||||
|
// fields on the end, so we also need to adjust the size field in the
|
||||||
|
// extended header to account for that.
|
||||||
G_SyncPlayerDispAndInventory_XB_6x70 out_cmd = {check_size_t<G_SyncPlayerDispAndInventory_DC_PC_GC_6x70>(data, size), 0, 0, 0};
|
G_SyncPlayerDispAndInventory_XB_6x70 out_cmd = {check_size_t<G_SyncPlayerDispAndInventory_DC_PC_GC_6x70>(data, size), 0, 0, 0};
|
||||||
|
out_cmd.header.size = sizeof(out_cmd);
|
||||||
if (c->license->xb_user_id) {
|
if (c->license->xb_user_id) {
|
||||||
out_cmd.xb_user_id_high = static_cast<uint32_t>((c->license->xb_user_id >> 32) & 0xFFFFFFFF);
|
out_cmd.xb_user_id_high = static_cast<uint32_t>((c->license->xb_user_id >> 32) & 0xFFFFFFFF);
|
||||||
out_cmd.xb_user_id_low = static_cast<uint32_t>(c->license->xb_user_id & 0xFFFFFFFF);
|
out_cmd.xb_user_id_low = static_cast<uint32_t>(c->license->xb_user_id & 0xFFFFFFFF);
|
||||||
@@ -471,7 +474,8 @@ static void on_sync_joining_player_disp_and_inventory(
|
|||||||
send_or_enqueue_joining_player_command(target, command, flag, out_cmd);
|
send_or_enqueue_joining_player_command(target, command, flag, out_cmd);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Convert XB command to GC command
|
// The XB command has some extra fields on the end; PSO GC will just ignore
|
||||||
|
// them, so we don't bother to remove them.
|
||||||
static_assert(
|
static_assert(
|
||||||
sizeof(G_SyncPlayerDispAndInventory_DC_PC_GC_6x70) < sizeof(G_SyncPlayerDispAndInventory_XB_6x70),
|
sizeof(G_SyncPlayerDispAndInventory_DC_PC_GC_6x70) < sizeof(G_SyncPlayerDispAndInventory_XB_6x70),
|
||||||
"GC 6x70 command is larger than XB 6x70 command");
|
"GC 6x70 command is larger than XB 6x70 command");
|
||||||
|
|||||||
Reference in New Issue
Block a user