18#ifndef ViewerDependentValues_h__
19#define ViewerDependentValues_h__
52 if (summon->GetSummonerGUID() == receiver->
GetGUID() && summon->GetCreatureIdVisibleToSummoner())
53 entryId = *summon->GetCreatureIdVisibleToSummoner();
73 dynamicFlags &= ~UNIT_DYNFLAG_TAPPED;
76 dynamicFlags &= ~UNIT_DYNFLAG_LOOTABLE;
79 dynamicFlags &= ~UNIT_DYNFLAG_CAN_SKIN;
85 dynamicFlags &= ~UNIT_DYNFLAG_TRACK_UNIT;
90 uint16 pathProgress = 0xFFFF;
91 switch (gameObject->GetGoType())
94 if (gameObject->ActivateToQuest(receiver))
98 if (gameObject->ActivateToQuest(receiver))
104 if (gameObject->ActivateToQuest(receiver))
114 if (gameObject->ActivateToQuest(receiver))
120 dynFlags = dynamicFlags & 0xFFFF;
121 pathProgress = dynamicFlags >> 16;
125 if (!gameObject->CanInteractWithCapturePoint(receiver))
128 dynFlags &= ~GO_DYNFLAG_LO_NO_INTERACT;
131 if (gameObject->ActivateToQuest(receiver))
140 if (!gameObject->MeetsInteractCondition(receiver))
143 dynamicFlags = (
uint32(pathProgress) << 16) |
uint32(dynFlags);
165 if (summon->GetSummonerGUID() == receiver->
GetGUID())
167 if (summon->GetCreatureIdVisibleToSummoner())
168 cinfo =
sObjectMgr->GetCreatureTemplate(*summon->GetCreatureIdVisibleToSummoner());
170 if (summon->GetDisplayIdVisibleToSummoner())
171 displayId = *summon->GetDisplayIdVisibleToSummoner();
184 cinfo = transformInfo;
218 return factionTemplate;
233 flags &= ~UNIT_FLAG_UNINTERACTIBLE;
249 flags &= ~UNIT_FLAG3_ALREADY_SKINNED;
303 for (
auto const& [creatureId, spellClickInfo] : clickBounds)
305 if (!spellClickInfo.IsFitToRequirements(receiver, unit))
308 if (!
sConditionMgr->IsObjectMeetingSpellClickConditions(unit->
GetEntry(), spellClickInfo.spellId, receiver, unit))
311 interactSpellId = spellClickInfo.spellId;
316 return interactSpellId;
404 startTime = localizedStartTime->count();
@ CREATURE_FLAG_EXTRA_TRIGGER
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ GAMEOBJECT_TYPE_CAPTURE_POINT
@ GAMEOBJECT_TYPE_TRANSPORT
@ GAMEOBJECT_TYPE_GENERIC
@ GAMEOBJECT_TYPE_QUESTGIVER
@ GAMEOBJECT_TYPE_MAP_OBJ_TRANSPORT
@ GAMEOBJECT_TYPE_GATHERING_NODE
@ UNIT_DYNFLAG_TRACK_UNIT
@ GO_DYNFLAG_LO_HIGHLIGHT
@ GO_DYNFLAG_LO_NO_INTERACT
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_NPC_FLAG_SPELLCLICK
@ UNIT_FLAG3_ALREADY_SKINNED
@ UNIT_BYTE2_FLAG_SANCTUARY
Milliseconds const * GetLineStartTime(LocaleConstant locale, int32 lineId) const
Milliseconds GetLastLineEndTime(LocaleConstant locale) const
bool IsSkinnedBy(Player const *player) const
CreatureTemplate const * GetCreatureTemplate() const
GOState GetGoStateFor(ObjectGuid const &viewer) const
GameObjectTemplate const * GetGOInfo() const
GameobjectTypes GetGoType() const
bool IsLootAllowedFor(Player const *player) const
Difficulty GetDifficultyID() const
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
static GameObject * ToGameObject(Object *o)
static ObjectGuid GetGUID(Object const *o)
bool isAllowedToLoot(Creature const *creature) const
WorldSession * GetSession() const
bool IsGameMaster() const
bool CanSeeGossipOn(Creature const *creature) const
bool CanSeeSpellClickOn(Creature const *creature) const
static value_type GetValue(UF::GameObjectData const *gameObjectData, GameObject const *gameObject, Player const *receiver)
UF::GameObjectData::FlagsTag::value_type value_type
UF::GameObjectData::StateTag::value_type value_type
static value_type GetValue(UF::GameObjectData const *, GameObject const *gameObject, Player const *receiver)
static value_type GetValue(UF::ObjectData const *objectData, Object const *object, Player const *receiver)
UF::ObjectData::DynamicFlagsTag::value_type value_type
static value_type GetValue(UF::ObjectData const *objectData, Object const *object, Player const *receiver)
UF::ObjectData::EntryIDTag::value_type value_type
static value_type GetValue(UF::UnitData const *, Unit const *unit, Player const *receiver)
UF::UnitData::AuraStateTag::value_type value_type
UF::UnitData::DisplayIDTag::value_type value_type
static value_type GetValue(UF::UnitData const *unitData, Unit const *unit, Player const *receiver)
static value_type GetValue(UF::UnitData const *unitData, Unit const *unit, Player const *receiver)
UF::UnitData::FactionTemplateTag::value_type value_type
UF::UnitData::Flags3Tag::value_type value_type
static value_type GetValue(UF::UnitData const *unitData, Unit const *unit, Player const *receiver)
static value_type GetValue(UF::UnitData const *unitData, Unit const *, Player const *receiver)
UF::UnitData::FlagsTag::value_type value_type
UF::UnitData::InteractSpellIDTag::value_type value_type
static value_type GetValue(UF::UnitData const *unitData, Unit const *unit, Player const *receiver)
static value_type GetValue(UF::UnitData const *unitData, uint32 i, Unit const *unit, Player const *receiver)
UF::UnitData::NpcFlagsTag::value_type value_type
UF::UnitData::PvpFlagsTag::value_type value_type
static value_type GetValue(UF::UnitData const *unitData, Unit const *unit, Player const *receiver)
bool IsInteractionAllowedInCombat() const
uint32 GetTransformSpell() const
uint32 BuildAuraStateUpdateForTarget(Unit const *target) const
TempSummon * ToTempSummon()
uint32 GetFaction() const override
bool IsInRaidWith(Unit const *unit) const
bool IsInteractionAllowedWhileHostile() const
bool IsControlledByPlayer() const
bool IsHostileTo(WorldObject const *target) const
FactionTemplateEntry const * GetFactionTemplateEntry() const
LocaleConstant GetSessionDbLocaleIndex() const
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP
ObjectData const objectData[]
ObjectData const gameObjectData[]
CreatureModel const * GetFirstVisibleModel() const
bool IsFriendlyTo(FactionTemplateEntry const *entry) const
struct GameObjectTemplate::@213::@218 chest
UpdateField< int32, 96, 114 > InteractSpellID
UpdateFieldArray< uint32, 2, 127, 128 > NpcFlags
UpdateField< int32, 0, 5 > DisplayID
UpdateField< uint32, 32, 46 > Flags3
UpdateField< uint8, 64, 83 > PvpFlags
UpdateField< uint32, 32, 44 > Flags
UpdateField< int32, 32, 43 > FactionTemplate