diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-10-27 15:15:20 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2013-10-27 15:15:20 +0100 |
commit | 73e02597b6abc82fe8d5bea681e5a1160baa1dd1 (patch) | |
tree | 0de3f2818d2453e5efefedf482686b5c549fbb68 /src | |
parent | 54cc7dcb41f1a57f44d69bb45a6ebd16e259b389 (diff) |
Core/Spells: Implemented profession daily cooldowns
Closes #10883
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index a052ae1ad4b..b8a52152202 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -430,7 +430,8 @@ enum MountFlags enum SpellCategoryFlags { SPELL_CATEGORY_FLAG_COOLDOWN_SCALES_WITH_WEAPON_SPEED = 0x01, // unused - SPELL_CATEGORY_FLAG_COOLDOWN_STARTS_ON_EVENT = 0x04 + SPELL_CATEGORY_FLAG_COOLDOWN_STARTS_ON_EVENT = 0x04, + SPELL_CATEGORY_FLAG_COOLDOWN_EXPIRES_AT_MIDNIGHT = 0x08 }; enum TotemCategoryType diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 83c305b8973..5bbf0cd6263 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -22289,6 +22289,14 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite if (catrec > 0) catrec += categoryModifier; } + + SpellCategoryEntry const* categoryEntry = sSpellCategoryStore.LookupEntry(cat); + ASSERT(categoryEntry); + if (categoryEntry->Flags & SPELL_CATEGORY_FLAG_COOLDOWN_EXPIRES_AT_MIDNIGHT) + { + struct tm date = *localtime(&curTime); + catrec = catrec * DAY - (date.tm_hour * HOUR + date.tm_min * MINUTE + date.tm_sec) * IN_MILLISECONDS; + } } // replace negative cooldowns by 0 |