fix: hearthstone from action bar, far teleport loading screen

Action bar hearthstone: the slot was type SPELL (spell 8690) not ITEM.
castSpell sends CMSG_CAST_SPELL which the server rejects for item-use
spells. Now detects item-use spells via getItemIdForSpell() and routes
through useItemById() instead, sending CMSG_USE_ITEM correctly.

Far same-map teleport: hearthstone on the same continent (e.g., Westfall
→ Stormwind on Azeroth) skipped the loading screen, so the player fell
through unloaded terrain. Now triggers a full world reload with loading
screen for teleports > 500 units, with the warmup ground check ensuring
WMO floors are loaded before spawning.
This commit is contained in:
Kelsi 2026-03-28 14:55:58 -07:00
parent 4e709692f1
commit 11571c582b
4 changed files with 54 additions and 6 deletions

View file

@ -1927,6 +1927,7 @@ public:
void swapContainerItems(uint8_t srcBag, uint8_t srcSlot, uint8_t dstBag, uint8_t dstSlot);
void swapBagSlots(int srcBagIndex, int dstBagIndex);
void useItemById(uint32_t itemId);
uint32_t getItemIdForSpell(uint32_t spellId) const;
bool isVendorWindowOpen() const;
const ListInventoryData& getVendorItems() const;
void setVendorCanRepair(bool v);