work around 6xD9 client bug
This commit is contained in:
@@ -6356,7 +6356,10 @@ struct G_AddSRankWeaponSpecial_BB_6xD8 {
|
||||
} __packed_ws__(G_AddSRankWeaponSpecial_BB_6xD8, 0x24);
|
||||
|
||||
// 6xD9: Momoka item exchange (BB; handled by server)
|
||||
// The client sends this when it executes an F95B quest opcode.
|
||||
// The client sends this when it executes an F95B quest opcode. The client has
|
||||
// an unfortunate bug where it doesn't set the size field when generating this
|
||||
// command, so the size ends up as an uninitialized value and the client sends
|
||||
// more (or less!) data than necessary.
|
||||
|
||||
struct G_MomokaItemExchange_BB_6xD9 {
|
||||
G_ClientIDHeader header;
|
||||
|
||||
@@ -5194,7 +5194,8 @@ static asio::awaitable<void> on_momoka_item_exchange_bb(shared_ptr<Client> c, Su
|
||||
throw runtime_error("6xD9 command sent during free play");
|
||||
}
|
||||
|
||||
const auto& cmd = msg.check_size_t<G_MomokaItemExchange_BB_6xD9>();
|
||||
// See notes in CommandFormats.hh about why we allow larger commands here
|
||||
const auto& cmd = msg.check_size_t<G_MomokaItemExchange_BB_6xD9>(0xFFFF);
|
||||
auto s = c->require_server_state();
|
||||
auto p = c->character_file();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user