Skip to content

Commit

Permalink
Moved ClockLibrary to ArenaClockUtils.
Browse files Browse the repository at this point in the history
  • Loading branch information
afritz1 committed Feb 12, 2021
1 parent 18d7952 commit be8e83d
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 77 deletions.
35 changes: 35 additions & 0 deletions OpenTESArena/src/Game/ArenaClockUtils.h
Original file line number Diff line number Diff line change
@@ -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
21 changes: 0 additions & 21 deletions OpenTESArena/src/Game/ClockLibrary.cpp

This file was deleted.

34 changes: 0 additions & 34 deletions OpenTESArena/src/Game/ClockLibrary.h

This file was deleted.

18 changes: 9 additions & 9 deletions OpenTESArena/src/Game/GameData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#include "SDL.h"

#include "ClockLibrary.h"
#include "ArenaClockUtils.h"
#include "Game.h"
#include "GameData.h"
#include "../Assets/ArenaPaletteName.h"
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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.
Expand Down
26 changes: 13 additions & 13 deletions OpenTESArena/src/Interface/GameWorldPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -409,14 +409,14 @@ GameWorldPanel::GameWorldPanel(Game &game)
// uniformly distributed -- midnight and noon are only one minute.
const std::array<std::pair<Clock, int>, 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();
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit be8e83d

Please sign in to comment.