From cb3e6dbce325290fd649ce469adc253fee54f844 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 21 Apr 2011 21:13:47 +0200 Subject: Core/Spells: Fixed players getting stuck in shapeshift forms after too quick shifting --- src/server/game/Entities/Unit/Unit.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 536d9c0ff18..6a6cd82af15 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1769,7 +1769,15 @@ class Unit : public WorldObject uint64 m_ObjectSlot[4]; ShapeshiftForm GetShapeshiftForm() const { return ShapeshiftForm(GetByteValue(UNIT_FIELD_BYTES_2, 3)); } - void SetShapeshiftForm(ShapeshiftForm form) { SetByteValue(UNIT_FIELD_BYTES_2, 3, form); } + void SetShapeshiftForm(ShapeshiftForm form) + { + SetByteValue(UNIT_FIELD_BYTES_2, 3, form); + + // force update as too quick shapeshifting and back + // causes the value to stay the same serverside + // causes issues clientside (player gets stuck) + ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2); + } inline bool IsInFeralForm() const { -- cgit v1.2.3