aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
diff options
context:
space:
mode:
authorxinef1 <w.szyszko2@gmail.com>2017-03-02 00:19:28 +0100
committerariel- <ariel-@users.noreply.github.com>2017-03-01 20:19:28 -0300
commit7011aabb56f061fc889ec42ce32b7605ceb35b53 (patch)
treef7fc5d7c1038b17246751192ca03195613c7eee3 /src/server/game/Entities/GameObject
parentce1108b8a28c1f69840bc161a06f08ee0a147753 (diff)
Core/GameObject: regenerate GO loot if respawn time passed since last loot generation time and not all items were taken (#19101)
Diffstat (limited to 'src/server/game/Entities/GameObject')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp1
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 851fdc5edca..301f78d8d0e 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -109,6 +109,7 @@ GameObject::GameObject() : WorldObject(false), MapObject(),
m_lootRecipientGroup = 0;
m_groupLootTimer = 0;
lootingGroupLowGUID = 0;
+ m_lootGenerationTime = 0;
ResetLootMode(); // restore default loot mode
m_stationaryPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index b9160f3cc11..08dd5039f07 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -794,6 +794,8 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
void AddLootMode(uint16 lootMode) { m_LootMode |= lootMode; }
void RemoveLootMode(uint16 lootMode) { m_LootMode &= ~lootMode; }
void ResetLootMode() { m_LootMode = LOOT_MODE_DEFAULT; }
+ void SetLootGenerationTime() { m_lootGenerationTime = time(nullptr); }
+ uint32 GetLootGenerationTime() const { return m_lootGenerationTime; }
void AddToSkillupList(ObjectGuid::LowType PlayerGuidLow) { m_SkillupList.push_back(PlayerGuidLow); }
bool IsInSkillupList(ObjectGuid::LowType PlayerGuidLow) const
@@ -934,6 +936,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
ObjectGuid m_lootRecipient;
uint32 m_lootRecipientGroup;
uint16 m_LootMode; // bitmask, default LOOT_MODE_DEFAULT, determines what loot will be lootable
+ uint32 m_lootGenerationTime;
ObjectGuid m_linkedTrap;