diff --git a/OpenTESArena/src/Game/ArenaClockUtils.h b/OpenTESArena/src/Game/ArenaClockUtils.h new file mode 100644 index 000000000..999a98e4b --- /dev/null +++ b/OpenTESArena/src/Game/ArenaClockUtils.h @@ -0,0 +1,35 @@ +#ifndef ARENA_CLOCK_UTILS_H +#define ARENA_CLOCK_UTILS_H + +#include "Clock.h" + +// @todo: maybe eventually read these from a text file + +namespace ArenaClockUtils +{ + // Beginnings of each time-of-day range. + const Clock Midnight(0, 0, 0); + const Clock Night1(0, 1, 0); + const Clock EarlyMorning(3, 0, 0); + const Clock Morning(6, 0, 0); + const Clock Noon(12, 0, 0); + const Clock Afternoon(12, 1, 0); + const Clock Evening(18, 0, 0); + const Clock Night2(21, 0, 0); + + // Ambient lighting change times. + const Clock AmbientStartBrightening(6, 0, 0); + const Clock AmbientEndBrightening(6, 15, 0); + const Clock AmbientStartDimming(17, 45, 0); + const Clock AmbientEndDimming(18, 0, 0); + + // Lamppost activation times. + const Clock LamppostActivate(17, 45, 0); + const Clock LamppostDeactivate(6, 15, 0); + + // Change in music times. + const Clock MusicSwitchToDay(6, 19, 0); + const Clock MusicSwitchToNight(17, 45, 0); +} + +#endif diff --git a/OpenTESArena/src/Game/ClockLibrary.cpp b/OpenTESArena/src/Game/ClockLibrary.cpp deleted file mode 100644 index a1528740b..000000000 --- a/OpenTESArena/src/Game/ClockLibrary.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "ClockLibrary.h" - -const Clock ClockLibrary::Midnight(0, 0, 0); -const Clock ClockLibrary::Night1(0, 1, 0); -const Clock ClockLibrary::EarlyMorning(3, 0, 0); -const Clock ClockLibrary::Morning(6, 0, 0); -const Clock ClockLibrary::Noon(12, 0, 0); -const Clock ClockLibrary::Afternoon(12, 1, 0); -const Clock ClockLibrary::Evening(18, 0, 0); -const Clock ClockLibrary::Night2(21, 0, 0); - -const Clock ClockLibrary::AmbientStartBrightening(6, 0, 0); -const Clock ClockLibrary::AmbientEndBrightening(6, 15, 0); -const Clock ClockLibrary::AmbientStartDimming(17, 45, 0); -const Clock ClockLibrary::AmbientEndDimming(18, 0, 0); - -const Clock ClockLibrary::LamppostActivate(17, 45, 0); -const Clock ClockLibrary::LamppostDeactivate(6, 15, 0); - -const Clock ClockLibrary::MusicSwitchToDay(6, 19, 0); -const Clock ClockLibrary::MusicSwitchToNight(17, 45, 0); diff --git a/OpenTESArena/src/Game/ClockLibrary.h b/OpenTESArena/src/Game/ClockLibrary.h deleted file mode 100644 index 7829c5dd3..000000000 --- a/OpenTESArena/src/Game/ClockLibrary.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CLOCK_LIBRARY_H -#define CLOCK_LIBRARY_H - -#include "Clock.h" - -class ClockLibrary -{ -public: - // Beginnings of each time-of-day range. - static const Clock Midnight; - static const Clock Night1; - static const Clock EarlyMorning; - static const Clock Morning; - static const Clock Noon; - static const Clock Afternoon; - static const Clock Evening; - static const Clock Night2; - - // Ambient lighting change times. - static const Clock AmbientStartBrightening; - static const Clock AmbientEndBrightening; - static const Clock AmbientStartDimming; - static const Clock AmbientEndDimming; - - // Lamppost activation times. - static const Clock LamppostActivate; - static const Clock LamppostDeactivate; - - // Change in music times. - static const Clock MusicSwitchToDay; - static const Clock MusicSwitchToNight; -}; - -#endif diff --git a/OpenTESArena/src/Game/GameData.cpp b/OpenTESArena/src/Game/GameData.cpp index 80e5ad5d0..b4bc956e0 100644 --- a/OpenTESArena/src/Game/GameData.cpp +++ b/OpenTESArena/src/Game/GameData.cpp @@ -5,7 +5,7 @@ #include "SDL.h" -#include "ClockLibrary.h" +#include "ArenaClockUtils.h" #include "Game.h" #include "GameData.h" #include "../Assets/ArenaPaletteName.h" @@ -100,16 +100,16 @@ GameData::~GameData() bool GameData::nightMusicIsActive() const { const double clockTime = this->clock.getPreciseTotalSeconds(); - const bool beforeDayMusicChange = clockTime < ClockLibrary::MusicSwitchToDay.getPreciseTotalSeconds(); - const bool afterNightMusicChange = clockTime >= ClockLibrary::MusicSwitchToNight.getPreciseTotalSeconds(); + const bool beforeDayMusicChange = clockTime < ArenaClockUtils::MusicSwitchToDay.getPreciseTotalSeconds(); + const bool afterNightMusicChange = clockTime >= ArenaClockUtils::MusicSwitchToNight.getPreciseTotalSeconds(); return beforeDayMusicChange || afterNightMusicChange; } bool GameData::nightLightsAreActive() const { const double clockTime = this->clock.getPreciseTotalSeconds(); - const bool beforeLamppostDeactivate = clockTime < ClockLibrary::LamppostDeactivate.getPreciseTotalSeconds(); - const bool afterLamppostActivate = clockTime >= ClockLibrary::LamppostActivate.getPreciseTotalSeconds(); + const bool beforeLamppostDeactivate = clockTime < ArenaClockUtils::LamppostDeactivate.getPreciseTotalSeconds(); + const bool afterLamppostActivate = clockTime >= ArenaClockUtils::LamppostActivate.getPreciseTotalSeconds(); return beforeLamppostDeactivate || afterLamppostActivate; } @@ -626,10 +626,10 @@ double GameData::getAmbientPercent() const // Time ranges where the ambient light changes. The start times are inclusive, // and the end times are exclusive. - const double startBrighteningTime = ClockLibrary::AmbientStartBrightening.getPreciseTotalSeconds(); - const double endBrighteningTime = ClockLibrary::AmbientEndBrightening.getPreciseTotalSeconds(); - const double startDimmingTime = ClockLibrary::AmbientStartDimming.getPreciseTotalSeconds(); - const double endDimmingTime = ClockLibrary::AmbientEndDimming.getPreciseTotalSeconds(); + const double startBrighteningTime = ArenaClockUtils::AmbientStartBrightening.getPreciseTotalSeconds(); + const double endBrighteningTime = ArenaClockUtils::AmbientEndBrightening.getPreciseTotalSeconds(); + const double startDimmingTime = ArenaClockUtils::AmbientStartDimming.getPreciseTotalSeconds(); + const double endDimmingTime = ArenaClockUtils::AmbientEndDimming.getPreciseTotalSeconds(); // In Arena, the min ambient is 0 and the max ambient is 1, but we're using // some values here that make testing easier. diff --git a/OpenTESArena/src/Interface/GameWorldPanel.cpp b/OpenTESArena/src/Interface/GameWorldPanel.cpp index f384f1631..0c65fa032 100644 --- a/OpenTESArena/src/Interface/GameWorldPanel.cpp +++ b/OpenTESArena/src/Interface/GameWorldPanel.cpp @@ -29,9 +29,9 @@ #include "../Entities/EntityAnimationUtils.h" #include "../Entities/EntityType.h" #include "../Entities/Player.h" +#include "../Game/ArenaClockUtils.h" #include "../Game/CardinalDirection.h" #include "../Game/CardinalDirectionName.h" -#include "../Game/ClockLibrary.h" #include "../Game/DateUtils.h" #include "../Game/GameData.h" #include "../Game/Game.h" @@ -409,14 +409,14 @@ GameWorldPanel::GameWorldPanel(Game &game) // uniformly distributed -- midnight and noon are only one minute. const std::array, 8> clocksAndIndices = { - std::make_pair(ClockLibrary::Midnight, 6), - std::make_pair(ClockLibrary::Night1, 5), - std::make_pair(ClockLibrary::EarlyMorning, 0), - std::make_pair(ClockLibrary::Morning, 1), - std::make_pair(ClockLibrary::Noon, 2), - std::make_pair(ClockLibrary::Afternoon, 3), - std::make_pair(ClockLibrary::Evening, 4), - std::make_pair(ClockLibrary::Night2, 5) + std::make_pair(ArenaClockUtils::Midnight, 6), + std::make_pair(ArenaClockUtils::Night1, 5), + std::make_pair(ArenaClockUtils::EarlyMorning, 0), + std::make_pair(ArenaClockUtils::Morning, 1), + std::make_pair(ArenaClockUtils::Noon, 2), + std::make_pair(ArenaClockUtils::Afternoon, 3), + std::make_pair(ArenaClockUtils::Evening, 4), + std::make_pair(ArenaClockUtils::Night2, 5) }; const Clock &presentClock = gameData.getClock(); @@ -3009,8 +3009,8 @@ void GameWorldPanel::tick(double dt) // See if the clock passed the boundary between night and day, and vice versa. const double oldClockTime = oldClock.getPreciseTotalSeconds(); const double newClockTime = newClock.getPreciseTotalSeconds(); - const double lamppostActivateTime = ClockLibrary::LamppostActivate.getPreciseTotalSeconds(); - const double lamppostDeactivateTime = ClockLibrary::LamppostDeactivate.getPreciseTotalSeconds(); + const double lamppostActivateTime = ArenaClockUtils::LamppostActivate.getPreciseTotalSeconds(); + const double lamppostDeactivateTime = ArenaClockUtils::LamppostDeactivate.getPreciseTotalSeconds(); const bool activateNightLights = (oldClockTime < lamppostActivateTime) && (newClockTime >= lamppostActivateTime); @@ -3033,8 +3033,8 @@ void GameWorldPanel::tick(double dt) // Check for changes in exterior music depending on the time. if ((mapType == MapType::City) || (mapType == MapType::Wilderness)) { - const double dayMusicStartTime = ClockLibrary::MusicSwitchToDay.getPreciseTotalSeconds(); - const double nightMusicStartTime = ClockLibrary::MusicSwitchToNight.getPreciseTotalSeconds(); + const double dayMusicStartTime = ArenaClockUtils::MusicSwitchToDay.getPreciseTotalSeconds(); + const double nightMusicStartTime = ArenaClockUtils::MusicSwitchToNight.getPreciseTotalSeconds(); const bool changeToDayMusic = (oldClockTime < dayMusicStartTime) && (newClockTime >= dayMusicStartTime);