use D5 on versions that support it

This commit is contained in:
Martin Michelsen
2022-08-24 00:04:35 -07:00
parent 4066f80407
commit e808a7b6a3
6 changed files with 23 additions and 9 deletions
-2
View File
@@ -693,13 +693,11 @@ static string create_download_quest_file(const string& compressed_data,
// Add temporary extra bytes if necessary so encryption won't fail - the data
// size must be a multiple of 4 for PSO V2 encryption.
size_t original_size = data.size();
data.resize((data.size() + 3) & (~3));
PSOV3Encryption encr(encryption_seed);
encr.encrypt(data.data() + sizeof(PSODownloadQuestHeader),
data.size() - sizeof(PSODownloadQuestHeader));
data.resize(original_size);
return data;
}
+17 -1
View File
@@ -521,7 +521,23 @@ void send_header_text(Channel& ch, uint16_t command,
}
void send_message_box(shared_ptr<Client> c, const u16string& text) {
uint16_t command = (c->version == GameVersion::PATCH) ? 0x13 : 0x1A;
uint16_t command;
switch (c->version) {
case GameVersion::PATCH:
command = 0x13;
break;
case GameVersion::DC:
case GameVersion::PC:
command = 0x1A;
break;
case GameVersion::GC:
case GameVersion::XB:
case GameVersion::BB:
command = 0xD5;
break;
default:
throw logic_error("invalid game version");
}
send_text(c->channel, command, text, true);
}