diff options
author | Kudlaty <none@none> | 2009-09-04 05:11:27 +0200 |
---|---|---|
committer | Kudlaty <none@none> | 2009-09-04 05:11:27 +0200 |
commit | 8c255266e7c38096ddf9d3e29eadd35ca46e4c4d (patch) | |
tree | 9e8f2190bffbf24a1db5970e9ef768a4c8e65fd1 /src/game | |
parent | 2465ef00a24118d75edcef60600f4c1603a6ac3b (diff) |
Fix some issues with game object create according to last patch. Thx to NoFantasy and DearScorpion
--HG--
branch : trunk
Diffstat (limited to 'src/game')
-rw-r--r-- | src/game/GameObject.cpp | 3 | ||||
-rw-r--r-- | src/game/Object.cpp | 23 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index b7c46694344..c60ec02bab9 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -173,15 +173,16 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map *map, uint32 phaseMa SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction); SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags); - SetUInt16Value(GAMEOBJECT_DYNAMIC, 1, uint16(-1)); SetEntry(goinfo->id); SetUInt32Value(GAMEOBJECT_DISPLAYID, goinfo->displayId); + // GAMEOBJECT_BYTES_1, index at 0, 1, 2 and 3 SetGoState(go_state); SetGoType(GameobjectTypes(goinfo->type)); + SetGoArtKit(0); // unknown what this is SetGoAnimProgress(animprogress); SetByteValue(GAMEOBJECT_BYTES_1, 2, artKit); diff --git a/src/game/Object.cpp b/src/game/Object.cpp index cd93d3115c5..b2e3486a210 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -484,10 +484,10 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask if (isType(TYPEMASK_GAMEOBJECT) && !((GameObject*)this)->IsTransport()) { if ( ((GameObject*)this)->ActivateToQuest(target) || target->isGameMaster()) - { IsActivateToQuest = true; - updateMask->SetBit(GAMEOBJECT_DYNAMIC); - } + + updateMask->SetBit(GAMEOBJECT_DYNAMIC); + if (((GameObject*)this)->GetGoArtKit()) updateMask->SetBit(GAMEOBJECT_BYTES_1); } @@ -662,18 +662,27 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask switch(((GameObject*)this)->GetGoType()) { case GAMEOBJECT_TYPE_CHEST: - *data << uint32(0xFFFF0009); // enable quest object. Represent 9, but 1 for client before 2.3.0 + // enable quest object. Represent 9, but 1 for client before 2.3.0 + *data << uint16(9); + *data << uint16(-1); break; case GAMEOBJECT_TYPE_GOOBER: - *data << uint32(0xFFFF0001); + *data << uint16(1); + *data << uint16(-1); break; default: - *data << uint32(0xFFFF0000); // unknown, not happen. + // unknown, not happen. + *data << uint16(0); + *data << uint16(-1); break; } } else - *data << uint32(0xFFFF0000); // disable quest object + { + // disable quest object + *data << uint16(0); + *data << uint16(-1); + } } else *data << m_uint32Values[ index ]; // other cases |