summaryrefslogtreecommitdiff
path: root/src/timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/timer.cpp')
-rw-r--r--src/timer.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/timer.cpp b/src/timer.cpp
new file mode 100644
index 0000000..b59bec8
--- /dev/null
+++ b/src/timer.cpp
@@ -0,0 +1,53 @@
+#include "timer.hpp"
+
+Timer::Timer()
+{
+ startTicks = 0;
+ pausedTicks= 0;
+ paused = false;
+ started = false;
+}
+
+void Timer::Start()
+{
+ started = true;
+ paused = false;
+ startTicks = SDL_GetTicks();
+}
+
+void Timer::Stop()
+{
+ started =false;
+ paused = false;
+}
+
+void Timer::Pause()
+{
+ if ((started == true) && (paused == false )){
+ paused = true;
+ pausedTicks = SDL_GetTicks() - startTicks;
+ }
+}
+
+void Timer::unPause()
+{
+ if (paused)
+ {
+ paused = false;
+ startTicks = SDL_GetTicks() - pausedTicks;
+ pausedTicks = 0;
+ }
+}
+
+int Timer::getTicks()
+{
+ if(started)
+ {
+ if (paused)
+ return pausedTicks;
+ else
+ return SDL_GetTicks() - startTicks;
+ }
+ else
+ return 0;
+}