fix data2 handling in 30 command from GetExtendedPlayerInfo

This commit is contained in:
Martin Michelsen
2025-07-24 21:37:36 -07:00
parent 1ecc41dea9
commit bf028ed0f6
+6 -1
View File
@@ -3546,15 +3546,21 @@ static asio::awaitable<void> on_30(shared_ptr<Client> c, Channel::Message& msg)
switch (c->version()) {
case Version::DC_V2:
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSODCV2CharacterFile::Character>());
ch->inventory.decode_from_client(c->version());
break;
case Version::GC_NTE:
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOGCNTECharacterFileCharacter>());
ch->inventory.decode_from_client(c->version());
break;
case Version::GC_V3:
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOGCCharacterFile::Character>());
// Note: We don't call ch->inventory.decode_from_client here because
// the data is sent in the game's native byte order, which is already
// correct on GC (unlike for 61/98)
break;
case Version::XB_V3:
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOXBCharacterFile::Character>());
ch->inventory.decode_from_client(c->version());
break;
case Version::GC_EP3_NTE:
case Version::GC_EP3:
@@ -3568,7 +3574,6 @@ static asio::awaitable<void> on_30(shared_ptr<Client> c, Channel::Message& msg)
default:
throw logic_error("extended player data command not implemented for version");
}
ch->inventory.decode_from_client(c->version());
ch->disp.visual.version = 4;
ch->disp.visual.name_color_checksum = 0x00000000;
}