Core/GameObjects: Defined more GameObjectFlags and GameObjectDynamicLowFlags

Port From (https://github.com/TrinityCore/TrinityCore/commit/21fefb31893dba5b6e2b909a672a3925a1534965)
This commit is contained in:
hondacrx
2021-12-01 11:08:49 -05:00
parent 5c48c512b5
commit 25f95d9f9d
2 changed files with 14 additions and 5 deletions
+12 -3
View File
@@ -98,9 +98,12 @@ namespace Framework.Constants
HideModel = 0x02,
Activate = 0x04,
Animate = 0x08,
NoInteract = 0x10,
Depleted = 0x10,
Sparkle = 0x20,
Stopped = 0x40
Stopped = 0x40,
NoInterract = 0x80,
InvertedMovement = 0x100,
Highlight = 0x200
}
public enum GameObjectFlags
@@ -115,8 +118,14 @@ namespace Framework.Constants
FreezeAnimation = 0x80,
Damaged = 0x200,
Destroyed = 0x400,
IgnoreCurrentStateForUseSpell = 0x4000, // Allows casting use spell without checking current state (opening open gameobjects, unlocking unlocked gameobjects and closing closed gameobjects)
InteractDistanceIgnoresModel = 0x8000, // Client completely ignores model bounds for interaction distance check
IgnoreCurrentStateForUseSpellExceptUnlocked = 0x40000, // Allows casting use spell without checking current state except unlocking unlocked gamobjets (opening open gameobjects and closing closed gameobjects)
InteractDistanceUsesTemplateModel = 0x80000, // client checks interaction distance from model sent in SMSG_QUERY_GAMEOBJECT_RESPONSE instead of GAMEOBJECT_DISPLAYID
MapObject = 0x00100000 // pre-7.0 model loading used to be controlled by file extension (wmo vs m2)
MapObject = 0x100000, // pre-7.0 model loading used to be controlled by file extension (wmo vs m2)
InMultiUse = 0x200000, // GO_FLAG_IN_USE equivalent for objects usable by multiple players
LowPrioritySelection = 0x4000000, // client will give lower cursor priority to this object when multiple objects overlap
}
public enum LootState
@@ -117,13 +117,13 @@ namespace Game.Entities
case GameObjectTypes.Chest:
case GameObjectTypes.Goober:
if (gameObject.ActivateToQuest(receiver))
dynFlags |= GameObjectDynamicLowFlags.Activate | GameObjectDynamicLowFlags.Sparkle;
dynFlags |= GameObjectDynamicLowFlags.Activate | GameObjectDynamicLowFlags.Sparkle | GameObjectDynamicLowFlags.Highlight;
else if (receiver.IsGameMaster())
dynFlags |= GameObjectDynamicLowFlags.Activate;
break;
case GameObjectTypes.Generic:
if (gameObject.ActivateToQuest(receiver))
dynFlags |= GameObjectDynamicLowFlags.Sparkle;
dynFlags |= GameObjectDynamicLowFlags.Sparkle | GameObjectDynamicLowFlags.Highlight;
break;
case GameObjectTypes.Transport:
case GameObjectTypes.MapObjTransport: