summaryrefslogtreecommitdiffhomepage
path: root/StarsEx
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2024-03-21 02:23:44 +0100
committerAki <please@ignore.pl>2024-03-21 02:23:44 +0100
commitebbf3a75f9b0f6af7ebdc6a02a68c15378e77342 (patch)
treec1ae71d72382188738aa1f667a9bb23856fc1ccc /StarsEx
parent1a6f1241eb85c82d4fddf7b61a867a1bb828992e (diff)
downloadstarshatter-ebbf3a75f9b0f6af7ebdc6a02a68c15378e77342.zip
starshatter-ebbf3a75f9b0f6af7ebdc6a02a68c15378e77342.tar.gz
starshatter-ebbf3a75f9b0f6af7ebdc6a02a68c15378e77342.tar.bz2
Removed Fixed Point Arithmetic implementation
This will bite me in near future, won't it? Add it back to FoundationEx at that point. Try handling it with some constepxr, too. Keywords for grep: fix-point, fixed-point, fast_f2i, IntMask, FractMask, fix::one, fix_sixty_five
Diffstat (limited to 'StarsEx')
-rw-r--r--StarsEx/CMakeLists.txt1
-rw-r--r--StarsEx/Color.cpp15
-rw-r--r--StarsEx/Fix.cpp22
-rw-r--r--StarsEx/Fix.h120
-rw-r--r--StarsEx/TerrainClouds.cpp1
-rw-r--r--StarsEx/Window.cpp1
6 files changed, 7 insertions, 153 deletions
diff --git a/StarsEx/CMakeLists.txt b/StarsEx/CMakeLists.txt
index 99ccabe..4541191 100644
--- a/StarsEx/CMakeLists.txt
+++ b/StarsEx/CMakeLists.txt
@@ -83,7 +83,6 @@ add_library(
FighterAI.cpp
FighterTacticalAI.cpp
FirstTimeDlg.cpp
- Fix.cpp
FlightComp.cpp
FlightDeck.cpp
FlightPlanner.cpp
diff --git a/StarsEx/Color.cpp b/StarsEx/Color.cpp
index 8c468dd..5ed6257 100644
--- a/StarsEx/Color.cpp
+++ b/StarsEx/Color.cpp
@@ -14,7 +14,6 @@
#include "Color.h"
#include "Video.h"
#include "Pcx.h"
-#include "Fix.h"
#include "Utils.h"
// +--------------------------------------------------------------------+
@@ -118,10 +117,10 @@ Color::operator*(const Color& c) const
Color
Color::operator*(double scale) const
{
- int r = fast_f2i(Red() * scale); if (r > 255) r = 255;
- int g = fast_f2i(Green() * scale); if (g > 255) g = 255;
- int b = fast_f2i(Blue() * scale); if (b > 255) b = 255;
- int a = fast_f2i(Alpha() * scale); if (a > 255) a = 255;
+ int r = static_cast<int>(Red() * scale); if (r > 255) r = 255;
+ int g = static_cast<int>(Green() * scale); if (g > 255) g = 255;
+ int b = static_cast<int>(Blue() * scale); if (b > 255) b = 255;
+ int a = static_cast<int>(Alpha() * scale); if (a > 255) a = 255;
return Color((BYTE) r, (BYTE) g, (BYTE) b, (BYTE) a);
}
@@ -129,9 +128,9 @@ Color::operator*(double scale) const
Color
Color::dim(double scale) const
{
- int r = fast_f2i(Red() * scale);
- int g = fast_f2i(Green() * scale);
- int b = fast_f2i(Blue() * scale);
+ int r = static_cast<int>(Red() * scale);
+ int g = static_cast<int>(Green() * scale);
+ int b = static_cast<int>(Blue() * scale);
return Color((BYTE) r, (BYTE) g, (BYTE) b, (BYTE) Alpha());
}
diff --git a/StarsEx/Fix.cpp b/StarsEx/Fix.cpp
deleted file mode 100644
index e73fba7..0000000
--- a/StarsEx/Fix.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-
- AUTHOR: John DiCamillo
-
-
- OVERVIEW
- ========
- Fixed point number class with 16 bits of fractional precision
-*/
-
-#include "Fix.h"
-
-// +--------------------------------------------------------------------+
-
-const fix fix::one = fix(1);
-const fix fix::two = fix(2);
-const fix fix::three = fix(3);
-const fix fix::five = fix(5);
-const fix fix::ten = fix(10);
diff --git a/StarsEx/Fix.h b/StarsEx/Fix.h
deleted file mode 100644
index 84c5ac3..0000000
--- a/StarsEx/Fix.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-
- AUTHOR: John DiCamillo
-
-
- OVERVIEW
- ========
- Fixed point number class with 16 bits of fractional precision
-*/
-
-#ifndef Fix_h
-#define Fix_h
-
-// +--------------------------------------------------------------------+
-
-#include "Types.h"
-
-// +--------------------------------------------------------------------+
-
-const double fix_sixty_five=65536.0;
-
-inline int fast_f2i(double d)
-{
- return static_cast<int>(d);
-}
-
-// +--------------------------------------------------------------------+
-
-class fix
-{
-public:
- static const char* TYPENAME() { return "fix"; }
-
- enum FixDef { Precision=16, IntMask=0xffff0000, FractMask=0x0000ffff };
- static const fix one;
- static const fix two;
- static const fix three;
- static const fix five;
- static const fix ten;
-
- fix() : val(0) { }
- fix(int n) : val(n<<Precision) { }
- fix(double d) : val(static_cast<long>(d * fix_sixty_five)) { }
- fix(const fix& f) : val(f.val) { }
-
- // conversion operators:
- operator int () const { return (val>>Precision); }
- operator float () const { return ((float) val) / ((float) fix_sixty_five); }
- operator double() const { return ((double) val) / fix_sixty_five; }
-
- // assignment operators:
- fix& operator=(const fix& f) { val=f.val; return *this; }
- fix& operator=(int n) { val=(n<<Precision); return *this; }
- fix& operator=(double d) { val = static_cast<long>(d * fix_sixty_five); return *this; }
-
- // comparison operators:
- int operator==(const fix& f) const { return val==f.val; }
- int operator!=(const fix& f) const { return val!=f.val; }
- int operator<=(const fix& f) const { return val<=f.val; }
- int operator>=(const fix& f) const { return val>=f.val; }
- int operator< (const fix& f) const { return val< f.val; }
- int operator> (const fix& f) const { return val> f.val; }
-
- // arithmetic operators:
- fix operator+(const fix& f) const { fix r; r.val = val+f.val; return r; }
- fix operator-(const fix& f) const { fix r; r.val = val-f.val; return r; }
- fix operator*(const fix& f) const {
- fix r;
- r.val = (val * f.val) >> Precision;
- return r; }
- fix operator/(const fix& f) const {
- fix r;
- r.val = (val << Precision) / f.val;
- return r; }
- fix& operator+=(const fix& f) { val+=f.val; return *this; }
- fix& operator-=(const fix& f) { val-=f.val; return *this; }
- fix& operator*=(const fix& f) {
- val = (val * f.val) >> Precision;
- return *this; }
- fix& operator/=(const fix& f) {
- val = (val << Precision) / f.val;
- return *this; }
-
- fix operator+(int n) const { fix r; r.val = val+(n<<Precision); return r; }
- fix operator-(int n) const { fix r; r.val = val-(n<<Precision); return r; }
- fix operator*(int n) const { fix r; r.val = val*n; return r; }
- fix operator/(int n) const { fix r; r.val = val/n; return r; }
- fix& operator+=(int n) { val+=(n<<Precision); return *this; }
- fix& operator-=(int n) { val-=(n<<Precision); return *this; }
- fix& operator*=(int n) { val*=n; return *this; }
- fix& operator/=(int n) { val/=n; return *this; }
-
- fix operator+(double d) const { fix f(d); return (*this)+f; }
- fix operator-(double d) const { fix f(d); return (*this)-f; }
- fix operator*(double d) const { fix f(d); return (*this)*f; }
- fix operator/(double d) const { fix f(d); return (*this)/f; }
- fix& operator+=(double d) { fix f(d); val+=f.val; return *this; }
- fix& operator-=(double d) { fix f(d); val-=f.val; return *this; }
- fix& operator*=(double d) { val*=static_cast<long>(d); return *this; }
- fix& operator/=(double d) { val/=static_cast<long>(d); return *this; }
-
- // misc. functions:
- fix truncate() const { fix r; r.val = val&IntMask; return r; }
- fix fraction() const { fix r; r.val = val-truncate().val; return r; }
- fix floor() const { fix r; r.val = val&IntMask; return r; }
- fix ceil() const { fix r; r.val = (val+FractMask)&IntMask; return r; }
- fix adjust_up() const { fix r; r.val = val+FractMask; return r; }
- fix adjust_down() const { fix r; r.val = val-FractMask; return r; }
-
- fix muldiv(const fix& num, const fix& den) const { return (*this) * num / den; }
-
- // data:
- long val;
-};
-
-#endif // Fix_h
-
diff --git a/StarsEx/TerrainClouds.cpp b/StarsEx/TerrainClouds.cpp
index 6f1ae73..bfad243 100644
--- a/StarsEx/TerrainClouds.cpp
+++ b/StarsEx/TerrainClouds.cpp
@@ -18,7 +18,6 @@
#include "CameraView.h"
#include "Bitmap.h"
#include "Game.h"
-#include "Fix.h"
#include "Scene.h"
// +--------------------------------------------------------------------+
diff --git a/StarsEx/Window.cpp b/StarsEx/Window.cpp
index 54015e5..110ca7c 100644
--- a/StarsEx/Window.cpp
+++ b/StarsEx/Window.cpp
@@ -14,7 +14,6 @@
#include "Window.h"
#include "Bitmap.h"
#include "Color.h"
-#include "Fix.h"
#include "Font.h"
#include "Polygon.h"
#include "Screen.h"