diff options
author | amdmi3 <amdmi3@FreeBSD.org> | 2013-06-14 21:18:53 +0800 |
---|---|---|
committer | amdmi3 <amdmi3@FreeBSD.org> | 2013-06-14 21:18:53 +0800 |
commit | 76e9c06cf8ef5efe18bf125d8ea2205001cee9e0 (patch) | |
tree | 5f3b38d01ef64132464becb274f9dd270758bf86 /games | |
parent | 3bd735be71e4bcc2eeee09e002233515a5e11051 (diff) | |
download | freebsd-ports-gnome-76e9c06cf8ef5efe18bf125d8ea2205001cee9e0.tar.gz freebsd-ports-gnome-76e9c06cf8ef5efe18bf125d8ea2205001cee9e0.tar.zst freebsd-ports-gnome-76e9c06cf8ef5efe18bf125d8ea2205001cee9e0.zip |
- Fix build with clang
- Add LICENSE
Diffstat (limited to 'games')
-rw-r--r-- | games/spacejunk/Makefile | 2 | ||||
-rw-r--r-- | games/spacejunk/files/patch-src-SFont.c | 12 | ||||
-rw-r--r-- | games/spacejunk/files/patch-src-physicbody.cpp | 111 |
3 files changed, 125 insertions, 0 deletions
diff --git a/games/spacejunk/Makefile b/games/spacejunk/Makefile index a6ac1ad6ee6b..f20ad63a84e6 100644 --- a/games/spacejunk/Makefile +++ b/games/spacejunk/Makefile @@ -10,6 +10,8 @@ MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION} MAINTAINER= amdmi3@FreeBSD.org COMMENT= A video game about traveling in 2D planetary systems +LICENSE= GPLv3 + GNU_CONFIGURE= yes USE_SDL= sdl mixer image MAKE_JOBS_SAFE= yes diff --git a/games/spacejunk/files/patch-src-SFont.c b/games/spacejunk/files/patch-src-SFont.c new file mode 100644 index 000000000000..b139751b8364 --- /dev/null +++ b/games/spacejunk/files/patch-src-SFont.c @@ -0,0 +1,12 @@ +Clang compatibility +--- src/SFont.c.orig 2013-06-14 01:28:33.767289275 +0400 ++++ src/SFont.c 2013-06-14 01:39:06.709113401 +0400 +@@ -72,7 +72,7 @@ + return -1; + } + +-Uint32 searchFirstPixel(SDL_Surface* s,int* X,int* Y,int* MinY){ ++void searchFirstPixel(SDL_Surface* s,int* X,int* Y,int* MinY){ + Uint32 bgpixel = GetPixel(s, 0, s->h-1); + + int x=0; diff --git a/games/spacejunk/files/patch-src-physicbody.cpp b/games/spacejunk/files/patch-src-physicbody.cpp new file mode 100644 index 000000000000..a5e891f87a67 --- /dev/null +++ b/games/spacejunk/files/patch-src-physicbody.cpp @@ -0,0 +1,111 @@ +Clang compatibility +--- src/physicbody.cpp.orig 2013-06-14 01:22:11.442112529 +0400 ++++ src/physicbody.cpp 2013-06-14 01:38:02.468909545 +0400 +@@ -20,9 +20,21 @@ + #include "physicbody.h" + #include <math.h> + #include <algorithm> ++#include <vector> + + using namespace std; + ++template<class T> ++class DynArray { ++private: ++ std::vector<T> data; ++ ++public: ++ DynArray(size_t len) : data(len) { } ++ ++ operator const T*() const { return data.data(); } ++ operator T*() { return data.data(); } ++}; + + const double PhysicEngine::G=6.6726e-17; + +@@ -165,7 +180,6 @@ + return acc; + } + +- + void PhysicEngine::_vstep (int delta) { + #define DELTA_LIMIT 3 + #define ERROR_LIMIT 0.001 +@@ -179,11 +193,11 @@ + real tempdelta=delta; + real time=0; + int n=bodies.size(); +- Vector2d accels[n]; ++ DynArray<Vector2d> accels(n); + calculateForces(0,accels); + loadcount++; +- Vector2d temp_pos[n]; +- Vector2d temp_vel[n]; ++ DynArray<Vector2d> temp_pos(n); ++ DynArray<Vector2d> temp_vel(n); + do { + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j) continue; +@@ -306,12 +320,12 @@ + real PhysicEngine::vstepRK5 (real delta,Vector2d initaccels[]) { + real maxdist=0; + int n=bodies.size(); +- Vector2d accels[n]; +- Vector2d mipos[n]; +- Vector2d k1pos[n]; +- Vector2d k1vel[n]; +- Vector2d k2pos[n]; +- Vector2d k2vel[n]; ++ DynArray<Vector2d> accels(n); ++ DynArray<Vector2d> mipos(n); ++ DynArray<Vector2d> k1pos(n); ++ DynArray<Vector2d> k1vel(n); ++ DynArray<Vector2d> k2pos(n); ++ DynArray<Vector2d> k2vel(n); + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j || ((*j)->flags & PhysicBody::FIXED)) continue; + mipos[(*j)->id]=(*j)->pos; +@@ -321,8 +335,8 @@ + (*j)->pos=mipos[(*j)->id]+k1pos[(*j)->id]*0.2; + } + calculateForces(delta*0.2,accels); +- Vector2d k3pos[n]; +- Vector2d k3vel[n]; ++ DynArray<Vector2d> k3pos(n); ++ DynArray<Vector2d> k3vel(n); + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j || ((*j)->flags & PhysicBody::FIXED)) continue; + k2vel[(*j)->id]=accels[(*j)->id]*delta; +@@ -330,8 +344,8 @@ + (*j)->pos=mipos[(*j)->id]+k1pos[(*j)->id]*(3.0/40.0)+k2pos[(*j)->id]*(9.0/40.0); + } + calculateForces(delta*0.3,accels); +- Vector2d k4pos[n]; +- Vector2d k4vel[n]; ++ DynArray<Vector2d> k4pos(n); ++ DynArray<Vector2d> k4vel(n); + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j || ((*j)->flags & PhysicBody::FIXED)) continue; + k3vel[(*j)->id]=accels[(*j)->id]*delta; +@@ -339,8 +353,8 @@ + (*j)->pos=mipos[(*j)->id]+k1pos[(*j)->id]*0.3+k2pos[(*j)->id]*(-0.9)+k3pos[(*j)->id]*1.2; + } + calculateForces(delta*0.6,accels); +- Vector2d k5pos[n]; +- Vector2d k5vel[n]; ++ DynArray<Vector2d> k5pos(n); ++ DynArray<Vector2d> k5vel(n); + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j || ((*j)->flags & PhysicBody::FIXED)) continue; + k4vel[(*j)->id]=accels[(*j)->id]*delta; +@@ -348,8 +362,8 @@ + (*j)->pos=mipos[(*j)->id]+k1pos[(*j)->id]*(-11.0/54.0)+k2pos[(*j)->id]*2.5+k3pos[(*j)->id]*(-70.0/27.0)+k4pos[(*j)->id]*(35.0/27.0); + } + calculateForces(delta,accels); +- Vector2d k6pos[n]; +- Vector2d k6vel[n]; ++ DynArray<Vector2d> k6pos(n); ++ DynArray<Vector2d> k6vel(n); + for (vector<PhysicBody*>::iterator j=bodies.begin();j!=bodies.end();j++) { + if (!*j || ((*j)->flags & PhysicBody::FIXED)) continue; + k5vel[(*j)->id]=accels[(*j)->id]*delta; |