update PlayerVisualConfigV4 struct to match client implementation
This commit is contained in:
+31
-29
@@ -412,18 +412,18 @@ struct S_UpdateClientConfig_DC_PC_04 {
|
||||
le_uint32_t guild_card_number = 0;
|
||||
} __packed_ws__(S_UpdateClientConfig_DC_PC_04, 8);
|
||||
|
||||
struct S_UpdateClientConfig_V3_04 {
|
||||
template <size_t ClientConfigBytes>
|
||||
struct S_UpdateClientConfigT_V3_BB_04 {
|
||||
le_uint32_t player_tag = 0x00010000;
|
||||
le_uint32_t guild_card_number = 0;
|
||||
// This field is opaque to the client; it will send back the contents verbatim in subsequent 9E or 9F commands.
|
||||
parray<uint8_t, 0x20> client_config;
|
||||
} __packed_ws__(S_UpdateClientConfig_V3_04, 0x28);
|
||||
parray<uint8_t, ClientConfigBytes> client_config;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct S_UpdateClientConfig_BB_04 {
|
||||
le_uint32_t player_tag = 0x00010000;
|
||||
le_uint32_t guild_card_number = 0;
|
||||
parray<uint8_t, 0x28> client_config;
|
||||
} __packed_ws__(S_UpdateClientConfig_BB_04, 0x30);
|
||||
using S_UpdateClientConfig_V3_04 = S_UpdateClientConfigT_V3_BB_04<0x20>;
|
||||
using S_UpdateClientConfig_BB_04 = S_UpdateClientConfigT_V3_BB_04<0x28>;
|
||||
check_struct_size(S_UpdateClientConfig_V3_04, 0x28);
|
||||
check_struct_size(S_UpdateClientConfig_BB_04, 0x30);
|
||||
|
||||
// 05: Disconnect
|
||||
// Internal name: SndLogout
|
||||
@@ -1053,13 +1053,13 @@ struct PlayerRecordsEntry_BB {
|
||||
|
||||
struct C_CharacterData_DCv1_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */
|
||||
} __packed_ws__(C_CharacterData_DCv1_61_98, 0x041C);
|
||||
|
||||
struct C_CharacterData_DCv2_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */ PlayerRecordsEntry_DC records;
|
||||
/* 04D8 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 04F0 */
|
||||
@@ -1067,7 +1067,7 @@ struct C_CharacterData_DCv2_61_98 {
|
||||
|
||||
struct C_CharacterData_PC_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */ PlayerRecordsEntry_PC records;
|
||||
/* 0510 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 0528 */ parray<le_uint32_t, 0x1E> blocked_senders;
|
||||
@@ -1079,7 +1079,7 @@ struct C_CharacterData_PC_61_98 {
|
||||
|
||||
struct C_CharacterData_GCNTE_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */ PlayerRecordsEntry_DC records;
|
||||
/* 04D8 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 04F0 */ parray<le_uint32_t, 0x1E> blocked_senders;
|
||||
@@ -1091,7 +1091,7 @@ struct C_CharacterData_GCNTE_61_98 {
|
||||
|
||||
struct C_CharacterData_V3_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */ PlayerRecordsEntry_V3 records;
|
||||
/* 0538 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 0550 */ pstring<TextEncoding::MARKED, 0xAC> info_board;
|
||||
@@ -1104,7 +1104,7 @@ struct C_CharacterData_V3_61_98 {
|
||||
|
||||
struct C_CharacterData_Ep3_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 034C */ PlayerDispDataV123 disp;
|
||||
/* 041C */ PlayerRecordsEntry_V3 records;
|
||||
/* 0538 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 0550 */ pstring<TextEncoding::MARKED, 0xAC> info_board;
|
||||
@@ -1117,7 +1117,7 @@ struct C_CharacterData_Ep3_61_98 {
|
||||
|
||||
struct C_CharacterData_BB_61_98 {
|
||||
/* 0000 */ PlayerInventory inventory;
|
||||
/* 034C */ PlayerDispDataBB disp;
|
||||
/* 034C */ PlayerDispDataV4 disp;
|
||||
/* 04DC */ PlayerRecordsEntry_BB records;
|
||||
/* 0638 */ ChoiceSearchConfig choice_search_config;
|
||||
/* 0650 */ pstring<TextEncoding::UTF16, 0xAC> info_board;
|
||||
@@ -1215,7 +1215,7 @@ struct S_JoinGame_Ep3_64 : S_JoinGame_GC_64 {
|
||||
// four of these are always present and they are filled in in slot positions.
|
||||
struct Ep3PlayerEntry {
|
||||
PlayerInventory inventory;
|
||||
PlayerDispDataDCPCV3 disp;
|
||||
PlayerDispDataV123 disp;
|
||||
} __packed_ws__(Ep3PlayerEntry, 0x41C);
|
||||
parray<Ep3PlayerEntry, 4> players_ep3;
|
||||
} __packed_ws__(S_JoinGame_Ep3_64, 0x1180);
|
||||
@@ -1292,10 +1292,10 @@ struct S_JoinLobbyT {
|
||||
return offsetof(S_JoinLobbyT, entries) + used_entries * sizeof(Entry);
|
||||
}
|
||||
} __attribute__((packed));
|
||||
using S_JoinLobby_DCNTE_65_67_68 = S_JoinLobbyT<LobbyFlagsDCNTE, PlayerLobbyDataDCGC, PlayerDispDataDCPCV3>;
|
||||
using S_JoinLobby_PC_65_67_68 = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataPC, PlayerDispDataDCPCV3>;
|
||||
using S_JoinLobby_DC_GC_65_67_68_Ep3_EB = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataDCGC, PlayerDispDataDCPCV3>;
|
||||
using S_JoinLobby_BB_65_67_68 = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataBB, PlayerDispDataBB>;
|
||||
using S_JoinLobby_DCNTE_65_67_68 = S_JoinLobbyT<LobbyFlagsDCNTE, PlayerLobbyDataDCGC, PlayerDispDataV123>;
|
||||
using S_JoinLobby_PC_65_67_68 = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataPC, PlayerDispDataV123>;
|
||||
using S_JoinLobby_DC_GC_65_67_68_Ep3_EB = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataDCGC, PlayerDispDataV123>;
|
||||
using S_JoinLobby_BB_65_67_68 = S_JoinLobbyT<LobbyFlags, PlayerLobbyDataBB, PlayerDispDataV4>;
|
||||
check_struct_size(S_JoinLobby_DCNTE_65_67_68, 0x32D4);
|
||||
check_struct_size(S_JoinLobby_PC_65_67_68, 0x339C);
|
||||
check_struct_size(S_JoinLobby_DC_GC_65_67_68_Ep3_EB, 0x32DC);
|
||||
@@ -1307,7 +1307,7 @@ struct S_JoinLobby_XB_65_67_68 {
|
||||
struct Entry {
|
||||
PlayerLobbyDataXB lobby_data;
|
||||
PlayerInventory inventory;
|
||||
PlayerDispDataDCPCV3 disp;
|
||||
PlayerDispDataV123 disp;
|
||||
} __packed_ws__(Entry, 0x468);
|
||||
// Note: not all of these will be filled in and sent if the lobby isn't full (the command size will be shorter than
|
||||
// this struct's size)
|
||||
@@ -2948,7 +2948,7 @@ struct S_CardBattleTableConfirmation_Ep3_E5 {
|
||||
|
||||
struct SC_PlayerPreview_CreateCharacter_BB_00E5 {
|
||||
le_int32_t character_index = 0;
|
||||
PlayerDispDataBBPreview preview;
|
||||
PlayerDispDataV4Preview preview;
|
||||
} __packed_ws__(SC_PlayerPreview_CreateCharacter_BB_00E5, 0x80);
|
||||
|
||||
// E6 (C->S): Spectator team control (Episode 3)
|
||||
@@ -3034,7 +3034,7 @@ struct S_JoinSpectatorTeam_Ep3_E8 {
|
||||
struct PlayerEntry {
|
||||
/* 0000 */ PlayerLobbyDataDCGC lobby_data;
|
||||
/* 0020 */ PlayerInventory inventory;
|
||||
/* 036C */ PlayerDispDataDCPCV3 disp;
|
||||
/* 036C */ PlayerDispDataV123 disp;
|
||||
/* 043C */
|
||||
} __packed_ws__(PlayerEntry, 0x43C);
|
||||
/* 0080 */ parray<PlayerEntry, 4> players;
|
||||
@@ -4761,7 +4761,7 @@ struct G_SyncPlayerDispAndInventory_DCNTE_6x70 {
|
||||
/* 0054 */ PlayerHoldState_DCProtos hold_state;
|
||||
/* 0064 */ le_uint32_t area = 0;
|
||||
/* 0068 */ le_uint32_t player_flags = 0;
|
||||
/* 006C */ PlayerVisualConfig visual;
|
||||
/* 006C */ PlayerVisualConfigV123 visual;
|
||||
/* 00BC */ PlayerStats stats;
|
||||
/* 00E0 */ le_uint32_t num_items = 0;
|
||||
/* 00E4 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
@@ -4779,7 +4779,7 @@ struct G_SyncPlayerDispAndInventory_DC112000_6x70 {
|
||||
/* 0060 */ PlayerHoldState_DCProtos hold_state;
|
||||
/* 0070 */ le_uint32_t area = 0;
|
||||
/* 0074 */ le_uint32_t player_flags = 0;
|
||||
/* 0078 */ PlayerVisualConfig visual;
|
||||
/* 0078 */ PlayerVisualConfigV123 visual;
|
||||
/* 00C8 */ PlayerStats stats;
|
||||
/* 00EC */ le_uint32_t num_items = 0;
|
||||
/* 00F0 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
@@ -4810,13 +4810,13 @@ struct G_6x70_Base_V1 {
|
||||
/* 00AC */ le_uint32_t area = 0;
|
||||
/* 00B0 */ le_uint32_t player_flags = 0;
|
||||
/* 00B4 */ parray<uint8_t, 0x14> technique_levels_v1 = 0xFF; // Last byte is uninitialized
|
||||
/* 00C8 */ PlayerVisualConfig visual;
|
||||
/* 0118 */
|
||||
} __packed_ws__(G_6x70_Base_V1, 0x118);
|
||||
/* 00C8 */
|
||||
} __packed_ws__(G_6x70_Base_V1, 0xC8);
|
||||
|
||||
struct G_SyncPlayerDispAndInventory_DC_PC_6x70 {
|
||||
/* 0000 */ G_ExtendedHeaderT<G_ClientIDHeader> header = {{0x70, 0x00, 0x0000}, sizeof(G_SyncPlayerDispAndInventory_DC_PC_6x70)};
|
||||
/* 0008 */ G_6x70_Base_V1 base;
|
||||
/* 00D0 */ PlayerVisualConfigV123 visual;
|
||||
/* 0120 */ PlayerStats stats;
|
||||
/* 0144 */ le_uint32_t num_items = 0;
|
||||
/* 0148 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
@@ -4827,6 +4827,7 @@ struct G_SyncPlayerDispAndInventory_DC_PC_6x70 {
|
||||
struct G_SyncPlayerDispAndInventory_GC_6x70 {
|
||||
/* 0000 */ G_ExtendedHeaderT<G_ClientIDHeader> header = {{0x70, 0x00, 0x0000}, sizeof(G_SyncPlayerDispAndInventory_GC_6x70)};
|
||||
/* 0008 */ G_6x70_Base_V1 base;
|
||||
/* 00D0 */ PlayerVisualConfigV123 visual;
|
||||
/* 0120 */ PlayerStats stats;
|
||||
/* 0144 */ le_uint32_t num_items = 0;
|
||||
/* 0148 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
@@ -4837,6 +4838,7 @@ struct G_SyncPlayerDispAndInventory_GC_6x70 {
|
||||
struct G_SyncPlayerDispAndInventory_XB_6x70 {
|
||||
/* 0000 */ G_ExtendedHeaderT<G_ClientIDHeader> header = {{0x70, 0x00, 0x0000}, sizeof(G_SyncPlayerDispAndInventory_XB_6x70)};
|
||||
/* 0008 */ G_6x70_Base_V1 base;
|
||||
/* 00D0 */ PlayerVisualConfigV123 visual;
|
||||
/* 0120 */ PlayerStats stats;
|
||||
/* 0144 */ le_uint32_t num_items = 0;
|
||||
/* 0148 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
@@ -4850,7 +4852,7 @@ struct G_SyncPlayerDispAndInventory_XB_6x70 {
|
||||
struct G_SyncPlayerDispAndInventory_BB_6x70 {
|
||||
/* 0000 */ G_ExtendedHeaderT<G_ClientIDHeader> header = {{0x70, 0x00, 0x0000}, sizeof(G_SyncPlayerDispAndInventory_BB_6x70)};
|
||||
/* 0008 */ G_6x70_Base_V1 base;
|
||||
/* 0120 */ pstring<TextEncoding::UTF16_ALWAYS_MARKED, 0x10> name;
|
||||
/* 00D0 */ PlayerVisualConfigV4 visual;
|
||||
/* 0140 */ PlayerStats stats;
|
||||
/* 0164 */ le_uint32_t num_items = 0;
|
||||
/* 0168 */ parray<PlayerInventoryItem, 0x1E> items;
|
||||
|
||||
Reference in New Issue
Block a user