#include <timer.hpp>
Public Member Functions | |
Timer () | |
~Timer () | |
void | start (float period, bool cyclic=false) |
start the timer with the given period (in seconds). | |
bool | check () |
returns true if a period (or more) passed since start call or last successful check | |
void | stop () |
stop the timer | |
float | get_period () const |
returns the period of the timer or 0 if it isn't started | |
float | get_timeleft () const |
float | get_timegone () const |
bool | started () const |
Private Attributes | |
float | period |
float | cycle_start |
bool | cyclic |
Definition at line 25 of file timer.hpp.
Timer::Timer | ( | ) |
Definition at line 21 of file timer.cpp.
00021 : 00022 period(0), 00023 cycle_start(0), 00024 cyclic(false) 00025 { 00026 }
void Timer::start | ( | float | period, | |
bool | cyclic = false | |||
) |
start the timer with the given period (in seconds).
If cyclic=true then the timer will be reset after each period. Set period to zero if you want to disable the timer.
Definition at line 33 of file timer.cpp.
References cycle_start, and game_time.
Referenced by GhostTree::activate(), FlyingSnowBall::activate(), Dispenser::activate(), DartTrap::activate(), Stalactite::active_update(), SpiderMite::active_update(), Root::active_update(), Plant::active_update(), Mole::active_update(), Kugelblitz::active_update(), GhostTree::active_update(), FlyingSnowBall::active_update(), DartTrap::active_update(), AngryStone::active_update(), Yeti::be_angry(), Snail::be_kicked(), BouncyCoin::BouncyCoin(), BrokenBrick::BrokenBrick(), Yeti::collision_solid(), MrIceBlock::collision_squished(), Dispenser::collision_squished(), Player::do_backflip(), Player::do_standup(), Player::draw(), Electrifier::Electrifier(), SecretAreaTrigger::event(), Climbable::event(), Kugelblitz::explode(), Fireworks::Fireworks(), Thunderstorm::flash(), FloatingText::FloatingText(), Player::handle_horizontal_input(), Player::handle_input(), Player::handle_vertical_input(), Kugelblitz::hit(), SpiderMite::initialize(), Player::kick(), Player::kill(), LevelIntro::LevelIntro(), Player::make_invincible(), GameSession::on_escape_press(), Particles::Particles(), Player::Player(), Toad::set_state(), SkullyHop::set_state(), MrIceBlock::set_state(), Mole::set_state(), BadGuy::set_state(), Player::set_winning(), Camera::shake(), SmokeCloud::SmokeCloud(), SnowParticleSystem::SnowParticleSystem(), Thunderstorm::start(), YetiStalactite::start_shaking(), Fish::start_waiting(), EndSequenceWalkRight::starting(), EndSequenceWalkLeft::starting(), EndSequenceFireworks::starting(), stop(), Stumpy::Stumpy(), Yeti::take_hit(), worldmap::Tux::tryContinueWalking(), WalkingBadguy::turn_around(), Igel::turn_around(), Door::update(), LevelIntro::update(), Thunderstorm::update(), SnowParticleSystem::update(), SkullTile::update(), and Fireworks::update().
00034 { 00035 this->period = period; 00036 this->cyclic = cyclic; 00037 cycle_start = game_time; 00038 }
bool Timer::check | ( | ) |
returns true if a period (or more) passed since start call or last successful check
Definition at line 41 of file timer.cpp.
References cycle_start, cyclic, game_time, and period.
Referenced by Yeti::active_update(), Toad::active_update(), Stumpy::active_update(), Stalactite::active_update(), SpiderMite::active_update(), Snail::active_update(), SkullyHop::active_update(), Plant::active_update(), MrIceBlock::active_update(), Mole::active_update(), Kugelblitz::active_update(), GhostTree::active_update(), FlyingSnowBall::active_update(), Fish::active_update(), Dispenser::active_update(), DartTrap::active_update(), AngryStone::active_update(), BadGuy::check_state_timer(), MrIceBlock::collision_squished(), Player::do_standup(), SecretAreaTrigger::draw(), Player::draw(), EndSequenceWalkRight::running(), EndSequenceWalkLeft::running(), EndSequenceFireworks::running(), Door::update(), LevelIntro::update(), Thunderstorm::update(), SnowParticleSystem::update(), SmokeCloud::update(), SkullTile::update(), Player::update(), Particles::update(), FloatingText::update(), Fireworks::update(), Electrifier::update(), BrokenBrick::update(), BouncyCoin::update(), and BadGuy::update().
00042 { 00043 if(period == 0) 00044 return false; 00045 00046 if(game_time - cycle_start >= period) { 00047 if(cyclic) { 00048 cycle_start = game_time - fmodf(game_time - cycle_start, period); 00049 } else { 00050 period = 0; 00051 } 00052 return true; 00053 } 00054 00055 return false; 00056 }
void Timer::stop | ( | ) | [inline] |
stop the timer
Definition at line 41 of file timer.hpp.
References start().
Referenced by Dispenser::deactivate(), Player::do_duck(), Player::do_standup(), Climbable::event(), Fish::freeze(), Dispenser::freeze(), Player::handle_vertical_input(), Player::kill(), Camera::reset(), MrIceBlock::set_state(), Thunderstorm::start(), Thunderstorm::stop(), and SkullTile::update().
00042 { start(0); }
float Timer::get_period | ( | ) | const [inline] |
returns the period of the timer or 0 if it isn't started
Definition at line 45 of file timer.hpp.
Referenced by Player::do_standup().
00046 { return period; }
float Timer::get_timeleft | ( | ) | const [inline] |
Definition at line 47 of file timer.hpp.
References cycle_start, and game_time.
Referenced by FloatingText::draw(), BouncyCoin::draw(), started(), GameSession::update(), SnowParticleSystem::update(), and Player::update().
00048 { return period - (game_time - cycle_start); }
float Timer::get_timegone | ( | ) | const [inline] |
Definition at line 49 of file timer.hpp.
References cycle_start, and game_time.
Referenced by SkullTile::draw(), and Camera::shake().
00050 { return game_time - cycle_start; }
bool Timer::started | ( | ) | const [inline] |
Definition at line 51 of file timer.hpp.
References get_timeleft().
Referenced by Root::active_update(), Plant::active_update(), Igel::active_update(), Player::collision(), Yeti::collision_solid(), SecretAreaTrigger::draw(), Thunderstorm::draw(), Player::draw(), Yeti::draw(), Fish::draw(), worldmap::WorldMap::draw_status(), Climbable::event(), Player::handle_horizontal_input(), Player::handle_vertical_input(), Player::is_invincible(), Player::kill(), Camera::shake(), Yeti::take_hit(), WalkingBadguy::turn_around(), GameSession::update(), SkullTile::update(), and Player::update().
00052 { return period != 0 && get_timeleft() > 0; }
float Timer::period [private] |
float Timer::cycle_start [private] |
Definition at line 56 of file timer.hpp.
Referenced by check(), get_timegone(), get_timeleft(), and start().
bool Timer::cyclic [private] |