summaryrefslogtreecommitdiff
path: root/audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp')
-rw-r--r--audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp b/audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp
new file mode 100644
index 00000000000..c06b302dc67
--- /dev/null
+++ b/audio/milkytracker/patches/patch-src_tracker_TrackerStartup.cpp
@@ -0,0 +1,27 @@
+$NetBSD: patch-src_tracker_TrackerStartup.cpp,v 1.1 2014/01/02 06:45:48 dholland Exp $
+
+Taking the absolute value of the difference of two values doesn't work
+if the difference is unsigned. Do something else semi-reasonable
+instead for the case when the clock goes backwards.
+
+--- src/tracker/TrackerStartUp.cpp~ 2008-02-23 16:32:45.000000000 +0000
++++ src/tracker/TrackerStartUp.cpp
+@@ -134,14 +134,16 @@ void Tracker::hideSplash()
+ pp_int32 deltaT = 100;
+ while (shade >= 0.0f)
+ {
+- pp_int32 startTime = ::PPGetTickCount();
++ pp_uint32 startTime = ::PPGetTickCount();
+ #if defined(__EXCLUDE_BIGLOGO__) || defined(__LOWRES__)
+ screen->paintSplash(LogoSmall::rawData, LogoSmall::width, LogoSmall::height, LogoSmall::width*4, 4, (int)shade);
+ #else
+ screen->paintSplash(LogoBig::rawData, LogoBig::width, LogoBig::height, LogoBig::width*3, 3, (int)shade);
+ #endif
+ shade-=deltaT * (1.0f/6.25f);
+- deltaT = abs(::PPGetTickCount() - startTime);
++ pp_uint32 nowTime = ::PPGetTickCount();
++ /* just in case the clock goes backwards */
++ deltaT = nowTime > startTime ? nowTime - startTime : 0;
+ if (!deltaT) deltaT++;
+ }
+ screen->clear();