fix data2 handling in 30 command from GetExtendedPlayerInfo
This commit is contained in:
@@ -3546,15 +3546,21 @@ static asio::awaitable<void> on_30(shared_ptr<Client> c, Channel::Message& msg)
|
|||||||
switch (c->version()) {
|
switch (c->version()) {
|
||||||
case Version::DC_V2:
|
case Version::DC_V2:
|
||||||
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSODCV2CharacterFile::Character>());
|
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSODCV2CharacterFile::Character>());
|
||||||
|
ch->inventory.decode_from_client(c->version());
|
||||||
break;
|
break;
|
||||||
case Version::GC_NTE:
|
case Version::GC_NTE:
|
||||||
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOGCNTECharacterFileCharacter>());
|
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOGCNTECharacterFileCharacter>());
|
||||||
|
ch->inventory.decode_from_client(c->version());
|
||||||
break;
|
break;
|
||||||
case Version::GC_V3:
|
case Version::GC_V3:
|
||||||
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOGCCharacterFile::Character>());
|
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;
|
break;
|
||||||
case Version::XB_V3:
|
case Version::XB_V3:
|
||||||
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOXBCharacterFile::Character>());
|
ch = PSOBBCharacterFile::create_from_file(msg.check_size_t<PSOXBCharacterFile::Character>());
|
||||||
|
ch->inventory.decode_from_client(c->version());
|
||||||
break;
|
break;
|
||||||
case Version::GC_EP3_NTE:
|
case Version::GC_EP3_NTE:
|
||||||
case Version::GC_EP3:
|
case Version::GC_EP3:
|
||||||
@@ -3568,7 +3574,6 @@ static asio::awaitable<void> on_30(shared_ptr<Client> c, Channel::Message& msg)
|
|||||||
default:
|
default:
|
||||||
throw logic_error("extended player data command not implemented for version");
|
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.version = 4;
|
||||||
ch->disp.visual.name_color_checksum = 0x00000000;
|
ch->disp.visual.name_color_checksum = 0x00000000;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user