Fix some compatibility issues in level.cpp, and possibly also a tiny accuracy improve...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 5 Mar 2015 18:27:52 +0000 (19:27 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 5 Mar 2015 18:27:52 +0000 (19:27 +0100)
level.cpp

index e14704a..3637799 100644 (file)
--- a/level.cpp
+++ b/level.cpp
@@ -48,9 +48,7 @@ static float d0, d1;
 static void filter_init(float cutoff_radians)
 {
        float resonance = 1.0f / sqrt(2.0f);
 static void filter_init(float cutoff_radians)
 {
        float resonance = 1.0f / sqrt(2.0f);
-       float sn, cs;
-       sincosf(cutoff_radians, &sn, &cs);
-
+       float sn = sin(cutoff_radians), cs = cos(cutoff_radians);
        float alpha = float(sn / (2 * resonance));
 
        // coefficients for lowpass filter
        float alpha = float(sn / (2 * resonance));
 
        // coefficients for lowpass filter
@@ -61,12 +59,11 @@ static void filter_init(float cutoff_radians)
         a1 = -2 * cs;
         a2 = 1 - alpha;
 
         a1 = -2 * cs;
         a2 = 1 - alpha;
 
-       float invA0 = 1.0f / a0;
-       b0 *= invA0;
-       b1 *= invA0;
-       b2 *= invA0;
-       a1 *= invA0;
-       a2 *= invA0;
+       b0 /= a0;
+       b1 /= a0;
+       b2 /= a0;
+       a1 /= a0;
+       a2 /= a0;
 
        // reset filter delays
        d0 = d1 = 0.0f;
 
        // reset filter delays
        d0 = d1 = 0.0f;