use .psochar format for BB characters
This commit is contained in:
+82
-31
@@ -19,8 +19,6 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
FileContentsCache player_files_cache(300 * 1000 * 1000);
|
||||
|
||||
uint32_t PlayerVisualConfig::compute_name_color_checksum(uint32_t name_color) {
|
||||
uint8_t x = (random_object<uint32_t>() % 0xFF) + 1;
|
||||
uint8_t y = (random_object<uint32_t>() % 0xFF) + 1;
|
||||
@@ -222,20 +220,6 @@ void GuildCardBB::clear() {
|
||||
this->char_class = 0;
|
||||
}
|
||||
|
||||
void PlayerBank::load(const string& filename) {
|
||||
*this = player_files_cache.get_obj_or_load<PlayerBank>(filename).obj;
|
||||
for (uint32_t x = 0; x < this->num_items; x++) {
|
||||
this->items[x].data.id = 0x0F010000 + x;
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerBank::save(const string& filename, bool save_to_filesystem) const {
|
||||
player_files_cache.replace(filename, this, sizeof(*this));
|
||||
if (save_to_filesystem) {
|
||||
save_file(filename, this, sizeof(*this));
|
||||
}
|
||||
}
|
||||
|
||||
void PlayerLobbyDataPC::clear() {
|
||||
this->player_tag = 0;
|
||||
this->guild_card_number = 0;
|
||||
@@ -288,10 +272,17 @@ PlayerRecordsBB_Challenge::PlayerRecordsBB_Challenge(const PlayerRecordsDC_Chall
|
||||
times_ep1_online(rec.times_ep1_online),
|
||||
times_ep2_online(0),
|
||||
times_ep1_offline(0),
|
||||
unknown_g3(rec.unknown_g3),
|
||||
grave_is_ep2(0),
|
||||
grave_stage_num(rec.grave_stage_num),
|
||||
grave_floor(rec.grave_floor),
|
||||
unknown_g0(0),
|
||||
grave_deaths(rec.grave_deaths),
|
||||
unknown_u4(0),
|
||||
grave_coords_time(rec.grave_coords_time),
|
||||
grave_time(rec.grave_time),
|
||||
unknown_g1(rec.unknown_g1),
|
||||
grave_x(rec.grave_x),
|
||||
grave_y(rec.grave_y),
|
||||
grave_z(rec.grave_z),
|
||||
grave_team(rec.grave_team.decode(), 1),
|
||||
grave_message(rec.grave_message.decode(), 1),
|
||||
unknown_m5(0),
|
||||
@@ -305,10 +296,17 @@ PlayerRecordsBB_Challenge::PlayerRecordsBB_Challenge(const PlayerRecordsPC_Chall
|
||||
times_ep1_online(rec.times_ep1_online),
|
||||
times_ep2_online(0),
|
||||
times_ep1_offline(0),
|
||||
unknown_g3(rec.unknown_g3),
|
||||
grave_is_ep2(0),
|
||||
grave_stage_num(rec.grave_stage_num),
|
||||
grave_floor(rec.grave_floor),
|
||||
unknown_g0(0),
|
||||
grave_deaths(rec.grave_deaths),
|
||||
unknown_u4(0),
|
||||
grave_coords_time(rec.grave_coords_time),
|
||||
grave_time(rec.grave_time),
|
||||
unknown_g1(rec.unknown_g1),
|
||||
grave_x(rec.grave_x),
|
||||
grave_y(rec.grave_y),
|
||||
grave_z(rec.grave_z),
|
||||
grave_team(rec.grave_team.decode(), 1),
|
||||
grave_message(rec.grave_message.decode(), 1),
|
||||
unknown_m5(0),
|
||||
@@ -322,14 +320,24 @@ PlayerRecordsBB_Challenge::PlayerRecordsBB_Challenge(const PlayerRecordsV3_Chall
|
||||
times_ep1_online(rec.stats.times_ep1_online),
|
||||
times_ep2_online(rec.stats.times_ep2_online),
|
||||
times_ep1_offline(rec.stats.times_ep1_offline),
|
||||
unknown_g3(rec.stats.unknown_g3),
|
||||
grave_is_ep2(rec.stats.grave_is_ep2),
|
||||
grave_stage_num(rec.stats.grave_stage_num),
|
||||
grave_floor(rec.stats.grave_floor),
|
||||
unknown_g0(rec.stats.unknown_g0),
|
||||
grave_deaths(rec.stats.grave_deaths),
|
||||
unknown_u4(rec.stats.unknown_u4),
|
||||
grave_coords_time(rec.stats.grave_coords_time),
|
||||
grave_time(rec.stats.grave_time),
|
||||
unknown_g1(rec.stats.unknown_g1),
|
||||
grave_x(rec.stats.grave_x),
|
||||
grave_y(rec.stats.grave_y),
|
||||
grave_z(rec.stats.grave_z),
|
||||
grave_team(rec.stats.grave_team.decode(), 1),
|
||||
grave_message(rec.stats.grave_message.decode(), 1),
|
||||
unknown_m5(rec.stats.unknown_m5),
|
||||
unknown_t6(rec.stats.unknown_t6),
|
||||
ep1_online_award_state(rec.stats.ep1_online_award_state),
|
||||
ep2_online_award_state(rec.stats.ep2_online_award_state),
|
||||
ep1_offline_award_state(rec.stats.ep1_offline_award_state),
|
||||
rank_title(rec.rank_title.decode(), 1),
|
||||
unknown_l7(rec.unknown_l7) {}
|
||||
|
||||
@@ -339,9 +347,23 @@ PlayerRecordsBB_Challenge::operator PlayerRecordsDC_Challenge() const {
|
||||
ret.unknown_u0 = this->unknown_u0;
|
||||
ret.rank_title.encode(this->rank_title.decode());
|
||||
ret.times_ep1_online = this->times_ep1_online;
|
||||
ret.unknown_g3 = 0;
|
||||
if (this->grave_is_ep2) {
|
||||
ret.grave_stage_num = 0;
|
||||
ret.grave_floor = 0;
|
||||
ret.unknown_g1 = 0;
|
||||
ret.grave_x = 0;
|
||||
ret.grave_y = 0;
|
||||
ret.grave_z = 0;
|
||||
} else {
|
||||
ret.grave_stage_num = this->grave_stage_num;
|
||||
ret.grave_floor = this->grave_floor;
|
||||
ret.unknown_g1 = this->unknown_g1;
|
||||
ret.grave_x = this->grave_x;
|
||||
ret.grave_y = this->grave_y;
|
||||
ret.grave_z = this->grave_z;
|
||||
}
|
||||
ret.grave_time = this->grave_time;
|
||||
ret.grave_deaths = this->grave_deaths;
|
||||
ret.grave_coords_time = this->grave_coords_time;
|
||||
ret.grave_team.encode(this->grave_team.decode());
|
||||
ret.grave_message.encode(this->grave_message.decode());
|
||||
ret.times_ep1_offline = this->times_ep1_offline;
|
||||
@@ -355,9 +377,23 @@ PlayerRecordsBB_Challenge::operator PlayerRecordsPC_Challenge() const {
|
||||
ret.unknown_u0 = this->unknown_u0;
|
||||
ret.rank_title = this->rank_title;
|
||||
ret.times_ep1_online = this->times_ep1_online;
|
||||
ret.unknown_g3 = 0;
|
||||
if (this->grave_is_ep2) {
|
||||
ret.grave_stage_num = 0;
|
||||
ret.grave_floor = 0;
|
||||
ret.unknown_g1 = 0;
|
||||
ret.grave_x = 0;
|
||||
ret.grave_y = 0;
|
||||
ret.grave_z = 0;
|
||||
} else {
|
||||
ret.grave_stage_num = this->grave_stage_num;
|
||||
ret.grave_floor = this->grave_floor;
|
||||
ret.unknown_g1 = this->unknown_g1;
|
||||
ret.grave_x = this->grave_x;
|
||||
ret.grave_y = this->grave_y;
|
||||
ret.grave_z = this->grave_z;
|
||||
}
|
||||
ret.grave_time = this->grave_time;
|
||||
ret.grave_deaths = this->grave_deaths;
|
||||
ret.grave_coords_time = this->grave_coords_time;
|
||||
ret.grave_team.encode(this->grave_team.decode());
|
||||
ret.grave_message.encode(this->grave_message.decode());
|
||||
ret.times_ep1_offline = this->times_ep1_offline;
|
||||
@@ -372,15 +408,25 @@ PlayerRecordsBB_Challenge::operator PlayerRecordsV3_Challenge<false>() const {
|
||||
ret.stats.times_ep1_online = this->times_ep1_online;
|
||||
ret.stats.times_ep2_online = this->times_ep2_online;
|
||||
ret.stats.times_ep1_offline = this->times_ep1_offline;
|
||||
ret.stats.unknown_g3 = this->unknown_g3;
|
||||
ret.stats.grave_is_ep2 = this->grave_is_ep2;
|
||||
ret.stats.grave_stage_num = this->grave_stage_num;
|
||||
ret.stats.grave_floor = this->grave_floor;
|
||||
ret.stats.unknown_g0 = this->unknown_g0;
|
||||
ret.stats.grave_deaths = this->grave_deaths;
|
||||
ret.stats.unknown_u4 = this->unknown_u4;
|
||||
ret.stats.grave_coords_time = this->grave_coords_time;
|
||||
ret.stats.grave_team.encode(this->grave_team.decode());
|
||||
ret.stats.grave_message.encode(this->grave_message.decode());
|
||||
ret.stats.grave_time = this->grave_time;
|
||||
ret.stats.unknown_g1 = this->unknown_g1;
|
||||
ret.stats.grave_x = this->grave_x;
|
||||
ret.stats.grave_y = this->grave_y;
|
||||
ret.stats.grave_z = this->grave_z;
|
||||
ret.stats.grave_team.encode(this->grave_team.decode(), 1);
|
||||
ret.stats.grave_message.encode(this->grave_message.decode(), 1);
|
||||
ret.stats.unknown_m5 = this->unknown_m5;
|
||||
ret.stats.unknown_t6 = this->unknown_t6;
|
||||
ret.rank_title.encode(this->rank_title.decode());
|
||||
ret.stats.ep1_online_award_state = this->ep1_online_award_state;
|
||||
ret.stats.ep2_online_award_state = this->ep2_online_award_state;
|
||||
ret.stats.ep1_offline_award_state = this->ep1_offline_award_state;
|
||||
ret.rank_title.encode(this->rank_title.decode(), 1);
|
||||
ret.unknown_l7 = this->unknown_l7;
|
||||
return ret;
|
||||
}
|
||||
@@ -956,3 +1002,8 @@ const ChallengeTemplateDefinition& get_challenge_template_definition(GameVersion
|
||||
throw runtime_error("invalid class flags on original player");
|
||||
}
|
||||
}
|
||||
|
||||
SymbolChat::SymbolChat()
|
||||
: spec(0),
|
||||
corner_objects(0x00FF),
|
||||
face_parts() {}
|
||||
|
||||
Reference in New Issue
Block a user