aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Object/Updates/ViewerDependentValues.h4
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h46
2 files changed, 30 insertions, 20 deletions
diff --git a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
index e27ee27619f..2f6db818a38 100644
--- a/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
+++ b/src/server/game/Entities/Object/Updates/ViewerDependentValues.h
@@ -76,13 +76,13 @@ public:
case GAMEOBJECT_TYPE_CHEST:
case GAMEOBJECT_TYPE_GOOBER:
if (gameObject->ActivateToQuest(receiver))
- dynFlags |= GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE;
+ dynFlags |= GO_DYNFLAG_LO_ACTIVATE | GO_DYNFLAG_LO_SPARKLE | GO_DYNFLAG_LO_HIGHLIGHT;
else if (receiver->IsGameMaster())
dynFlags |= GO_DYNFLAG_LO_ACTIVATE;
break;
case GAMEOBJECT_TYPE_GENERIC:
if (gameObject->ActivateToQuest(receiver))
- dynFlags |= GO_DYNFLAG_LO_SPARKLE;
+ dynFlags |= GO_DYNFLAG_LO_SPARKLE | GO_DYNFLAG_LO_HIGHLIGHT;
break;
case GAMEOBJECT_TYPE_TRANSPORT:
case GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT:
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 470109e3e93..241f1fe0495 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -2765,29 +2765,39 @@ enum GameobjectTypes : uint8
enum GameObjectFlags
{
- GO_FLAG_IN_USE = 0x00000001, // disables interaction while animated
- GO_FLAG_LOCKED = 0x00000002, // require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip
- GO_FLAG_INTERACT_COND = 0x00000004, // cannot interact (condition to interact - requires GO_DYNFLAG_LO_ACTIVATE to enable interaction clientside)
- GO_FLAG_TRANSPORT = 0x00000008, // any kind of transport? Object can transport (elevator, boat, car)
- GO_FLAG_NOT_SELECTABLE = 0x00000010, // not selectable even in GM mode
- GO_FLAG_NODESPAWN = 0x00000020, // never despawn, typically for doors, they just change state
- GO_FLAG_AI_OBSTACLE = 0x00000040, // makes the client register the object in something called AIObstacleMgr, unknown what it does
- GO_FLAG_FREEZE_ANIMATION = 0x00000080,
+ GO_FLAG_IN_USE = 0x00000001, // disables interaction while animated
+ GO_FLAG_LOCKED = 0x00000002, // require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip
+ GO_FLAG_INTERACT_COND = 0x00000004, // cannot interact (condition to interact - requires GO_DYNFLAG_LO_ACTIVATE to enable interaction clientside)
+ GO_FLAG_TRANSPORT = 0x00000008, // any kind of transport? Object can transport (elevator, boat, car)
+ GO_FLAG_NOT_SELECTABLE = 0x00000010, // not selectable even in GM mode
+ GO_FLAG_NODESPAWN = 0x00000020, // never despawn, typically for doors, they just change state
+ GO_FLAG_AI_OBSTACLE = 0x00000040, // makes the client register the object in something called AIObstacleMgr, unknown what it does
+ GO_FLAG_FREEZE_ANIMATION = 0x00000080,
+
// for object types GAMEOBJECT_TYPE_GARRISON_BUILDING, GAMEOBJECT_TYPE_GARRISON_PLOT and GAMEOBJECT_TYPE_PHASEABLE_MO flag bits 8 to 12 are used as WMOAreaTable::NameSetID
- GO_FLAG_DAMAGED = 0x00000200,
- GO_FLAG_DESTROYED = 0x00000400,
- GO_FLAG_INTERACT_DISTANCE_USES_TEMPLATE_MODEL = 0x00080000, // client checks interaction distance from model sent in SMSG_QUERY_GAMEOBJECT_RESPONSE instead of GAMEOBJECT_DISPLAYID
- GO_FLAG_MAP_OBJECT = 0x00100000 // pre-7.0 model loading used to be controlled by file extension (wmo vs m2)
+ GO_FLAG_DAMAGED = 0x00000200,
+ GO_FLAG_DESTROYED = 0x00000400,
+
+ GO_FLAG_IGNORE_CURRENT_STATE_FOR_USE_SPELL = 0x00004000, // Allows casting use spell without checking current state (opening open gameobjects, unlocking unlocked gameobjects and closing closed gameobjects)
+ GO_FLAG_INTERACT_DISTANCE_IGNORES_MODEL = 0x00008000, // Client completely ignores model bounds for interaction distance check
+ GO_FLAG_IGNORE_CURRENT_STATE_FOR_USE_SPELL_EXCEPT_UNLOCKED = 0x00040000, // Allows casting use spell without checking current state except unlocking unlocked gamobjets (opening open gameobjects and closing closed gameobjects)
+ GO_FLAG_INTERACT_DISTANCE_USES_TEMPLATE_MODEL = 0x00080000, // client checks interaction distance from model sent in SMSG_QUERY_GAMEOBJECT_RESPONSE instead of GAMEOBJECT_DISPLAYID
+ GO_FLAG_MAP_OBJECT = 0x00100000, // pre-7.0 model loading used to be controlled by file extension (wmo vs m2)
+ GO_FLAG_IN_MULTI_USE = 0x00200000, // GO_FLAG_IN_USE equivalent for objects usable by multiple players
+ GO_FLAG_LOW_PRIORITY_SELECTION = 0x04000000, // client will give lower cursor priority to this object when multiple objects overlap
};
enum GameObjectDynamicLowFlags
{
- GO_DYNFLAG_LO_HIDE_MODEL = 0x02, // Object model is not shown with this flag
- GO_DYNFLAG_LO_ACTIVATE = 0x04, // enables interaction with GO
- GO_DYNFLAG_LO_ANIMATE = 0x08, // possibly more distinct animation of GO
- GO_DYNFLAG_LO_NO_INTERACT = 0x10, // appears to disable interaction (not fully verified)
- GO_DYNFLAG_LO_SPARKLE = 0x20, // makes GO sparkle
- GO_DYNFLAG_LO_STOPPED = 0x40 // Transport is stopped
+ GO_DYNFLAG_LO_HIDE_MODEL = 0x0002, // Object model is not shown with this flag
+ GO_DYNFLAG_LO_ACTIVATE = 0x0004, // enables interaction with GO
+ GO_DYNFLAG_LO_ANIMATE = 0x0008, // possibly more distinct animation of GO
+ GO_DYNFLAG_LO_DEPLETED = 0x0010, // can no longer be interacted with (and for gathering nodes it forces "open" visual state)
+ GO_DYNFLAG_LO_SPARKLE = 0x0020, // makes GO sparkle
+ GO_DYNFLAG_LO_STOPPED = 0x0040, // Transport is stopped
+ GO_DYNFLAG_LO_NO_INTERACT = 0x0080,
+ GO_DYNFLAG_LO_INVERTED_MOVEMENT = 0x0100, // GAMEOBJECT_TYPE_TRANSPORT only
+ GO_DYNFLAG_LO_HIGHLIGHT = 0x0200, // Allows object highlight when GO_DYNFLAG_LO_ACTIVATE or GO_DYNFLAG_LO_SPARKLE are set, not only when player is on quest determined by Data fields
};
// client side GO show states