aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions/ConditionMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-06-04 21:47:43 +0200
committerShauren <shauren.trinity@gmail.com>2021-06-04 21:47:43 +0200
commit8aaf750be1ee16a299016cf038bd84bd9b387544 (patch)
tree593d1044e318ec5d904ffcad4caee8a2a5a2f8d4 /src/server/game/Conditions/ConditionMgr.cpp
parent9542d221cb359f6dfd67aa1432877e19b942b619 (diff)
Core/Conditions: Implemented missing PlayerCondition columns - time and weather
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 0a328e20fa6..10717ff302d 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -2855,7 +2855,19 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
return false;
}
- // TODO: time condition
+ if (condition->Time[0])
+ {
+ ByteBuffer unpacker;
+ unpacker << condition->Time[0];
+ time_t from = unpacker.ReadPackedTime();
+ unpacker.rpos(0);
+ unpacker.wpos(0);
+ unpacker << condition->Time[1];
+ time_t to = unpacker.ReadPackedTime();
+
+ if (GameTime::GetGameTime() < from || GameTime::GetGameTime() > to)
+ return false;
+ }
if (condition->WorldStateExpressionID)
{
@@ -2867,7 +2879,9 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
return false;
}
- // TODO: weather condition
+ if (condition->WeatherID)
+ if (player->GetMap()->GetZoneWeather(player->GetZoneId()) != WeatherState(condition->WeatherID))
+ return false;
if (condition->Achievement[0])
{