c15cea0c814789888eea5af34042d4d3937df2de
Prevents assertion failure in Map::RemovePlayerFromMap (Map.cpp:935) when bot receives CMSG_WORLD_PORT_RESPONSE while in inconsistent state. Root cause: Deferred packet processing for STATUS_TRANSFER packets was calling handlers without validating player state. If a bot is IsInWorld() but NOT IsInGrid(), the handler would trigger the assertion: ASSERT(remove) // fails when remove=false and not in grid The fix adds state validation before processing STATUS_TRANSFER packets: - Checks player exists - Validates player is NOT in world (correct state for transfer) - Logs critical warning if player is in world but not in grid - Skips packet processing to prevent crash Crash context: Map 727 (BG), InstanceId 1, Difficulty 0 Co-Authored-By: Claude Opus 4.5 <[email protected]> Signed-off-by: luis <[email protected]>
WowCommunityProject
Blizzlike WowCommunity project
Languages
C++
89.3%
C
10.1%
CMake
0.4%