aboutsummaryrefslogtreecommitdiffstats
path: root/games
diff options
context:
space:
mode:
authoramdmi3 <amdmi3@FreeBSD.org>2013-06-14 21:18:53 +0800
committeramdmi3 <amdmi3@FreeBSD.org>2013-06-14 21:18:53 +0800
commit76e9c06cf8ef5efe18bf125d8ea2205001cee9e0 (patch)
tree5f3b38d01ef64132464becb274f9dd270758bf86 /games
parent3bd735be71e4bcc2eeee09e002233515a5e11051 (diff)
downloadfreebsd-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/Makefile2
-rw-r--r--games/spacejunk/files/patch-src-SFont.c12
-rw-r--r--games/spacejunk/files/patch-src-physicbody.cpp111
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;