split bb team rewards field

This commit is contained in:
Martin Michelsen
2022-05-08 00:55:36 -07:00
parent 72810a19f0
commit dc7ec97c0c
3 changed files with 6 additions and 13 deletions
+1
View File
@@ -487,6 +487,7 @@ PlayerBB ClientGameData::export_player_bb() {
ret.unknown6.clear();
ret.quest_data2 = player->quest_data2;
ret.key_config = account->key_config;
ret.unused = 0;
return ret;
}
+3 -11
View File
@@ -238,7 +238,6 @@ struct GuildCardFileBB {
parray<uint8_t, 0x01AC> unknown_a2;
} __attribute__((packed));
// PSOBB key config and team info
struct KeyAndTeamConfigBB {
parray<uint8_t, 0x0114> unknown_a1; // 0000
parray<uint8_t, 0x016C> key_config; // 0114
@@ -250,16 +249,7 @@ struct KeyAndTeamConfigBB {
le_uint16_t reserved; // 02CA
ptext<char16_t, 0x0010> team_name; // 02CC
parray<uint8_t, 0x0800> team_flag; // 02EC
le_uint64_t team_rewards; // 0AEC
} __attribute__((packed));
// BB account data
struct PlayerAccountDataBB {
parray<uint8_t, 0x04E0> symbol_chats;
KeyAndTeamConfigBB key_config;
GuildCardFileBB guild_cards;
le_uint32_t options;
parray<uint8_t, 0x0A40> shortcuts; // chat shortcuts (@1FB4 in E7 command)
le_uint32_t team_rewards; // 0AEC
} __attribute__((packed));
@@ -349,6 +339,7 @@ struct PlayerBB { // Used in 00E7 command
parray<uint8_t, 0x002C> unknown6; // 2E20 //
parray<uint8_t, 0x0058> quest_data2; // 2E4C // player
KeyAndTeamConfigBB key_config; // 2EA4 // account
le_uint32_t unused;
} __attribute__((packed)); // total size: 39A0
@@ -378,6 +369,7 @@ struct SavedAccountDataBB { // .nsa file format
parray<le_uint32_t, 0x001E> blocked_senders;
GuildCardFileBB guild_cards;
KeyAndTeamConfigBB key_config;
le_uint32_t unused;
le_uint32_t option_flags;
parray<uint8_t, 0x0A40> shortcuts;
parray<uint8_t, 0x04E0> symbol_chats;
+2 -2
View File
@@ -1340,9 +1340,9 @@ void process_return_player_data_bb(shared_ptr<ServerState>, shared_ptr<Client> c
void process_update_key_config_bb(shared_ptr<ServerState>, shared_ptr<Client> c,
uint16_t, uint32_t, const string& data) {
// Some clients have only a uint32_t at the end for team rewards
check_size_t<KeyAndTeamConfigBB>(data,
auto& cmd = check_size_t<KeyAndTeamConfigBB>(data,
sizeof(KeyAndTeamConfigBB) - 4, sizeof(KeyAndTeamConfigBB));
memcpy(&c->game_data.account()->key_config, data.data(), data.size());
c->game_data.account()->key_config = cmd;
// TODO: We should send a response here, but I don't know which one!
}