summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Unbehaun <frostworks@gmx.de>2009-10-02 15:37:32 +0200
committerMarcel Unbehaun <frostworks@gmx.de>2009-10-02 15:37:32 +0200
commit4609f89024a286a598d71b47492686d4ed68ea4d (patch)
tree97a58791cea99c9982eccfe8d7f0ffa3d4cd3ee2 /games-arcade
parent(games-arcade/maxfighter) new maxfighter-1.0.ebuild based on Paul Bredbury's ... (diff)
downloadgamerlay-4609f89024a286a598d71b47492686d4ed68ea4d.tar.gz
gamerlay-4609f89024a286a598d71b47492686d4ed68ea4d.tar.bz2
gamerlay-4609f89024a286a598d71b47492686d4ed68ea4d.zip
(games-arcade/prototype) initial wip prototype-1.0.ebuild
(games-arcade/prototype) new Manifest (games-arcade/prototype) TODO /files/prototype-1.0-hacks.patch (games-arcade/prototype) new /files/prototype-1.0-homedir.patch (games-arcade/prototype) new /files/prototype-1.0-includes.patch (games-arcade/prototype) new /files/prototype-1.0-linuxfixes.patch (games-arcade/prototype) new /files/prototype-1.0-makefile.patch (games-arcade/prototype) new /files/prototype-1.0-sdlrendertarget.patch (games-arcade/prototype) new /files/prototype-1.0-setstate.patch (games-arcade/prototype) new /metadata.xml
Diffstat (limited to 'games-arcade')
-rw-r--r--games-arcade/prototype/Manifest11
-rw-r--r--games-arcade/prototype/files/prototype-1.0-hacks.patch111
-rw-r--r--games-arcade/prototype/files/prototype-1.0-homedir.patch234
-rw-r--r--games-arcade/prototype/files/prototype-1.0-includes.patch202
-rw-r--r--games-arcade/prototype/files/prototype-1.0-linuxfixes.patch110
-rw-r--r--games-arcade/prototype/files/prototype-1.0-makefile.patch33
-rw-r--r--games-arcade/prototype/files/prototype-1.0-sdlrendertarget.patch104
-rw-r--r--games-arcade/prototype/files/prototype-1.0-setstate.patch271
-rw-r--r--games-arcade/prototype/metadata.xml9
-rw-r--r--games-arcade/prototype/prototype-1.0.ebuild71
10 files changed, 1156 insertions, 0 deletions
diff --git a/games-arcade/prototype/Manifest b/games-arcade/prototype/Manifest
new file mode 100644
index 0000000..74e5e56
--- /dev/null
+++ b/games-arcade/prototype/Manifest
@@ -0,0 +1,11 @@
+AUX prototype-1.0-hacks.patch 4113 RMD160 c4c6505fb47aa2380be5e9356dbdc13c36111b60 SHA1 d83e27e7ac1acb26948f4a41d521239f69190300 SHA256 f50211b757ef89e11c16e43f94892c5acaca7e5a6ffa21167eda9425e1b10253
+AUX prototype-1.0-homedir.patch 10095 RMD160 d44b1fa01c49854db163786bf26bf3c6122dfbfb SHA1 945f6c7d608bd8ecf79e710d2d66b8668c257b0b SHA256 f93e1317c7fd6e3062007fc78b4c3504a7340f5f01d808a7c4352ea3cd2651a9
+AUX prototype-1.0-includes.patch 5964 RMD160 80e1503f818ed0d910d1c3df5d444853ee445892 SHA1 519096f56901400ab8245a77ab6ecc74b25f02e6 SHA256 495f8d29f457e5ac85cab44484f2423f8304a791c93d68241feb127d18055b39
+AUX prototype-1.0-linuxfixes.patch 3395 RMD160 108faa8de60bf8bfba768eff8281437d49fd8467 SHA1 fa524ddc7c3c4519059bf33458f1d12a9b6b386e SHA256 275503351be13299f65bff6c6eab6c42eb94277d8924a527161189d054fbd7ff
+AUX prototype-1.0-makefile.patch 1896 RMD160 d5f76e512c50d28a073114ad55334232f17c1730 SHA1 1db64a54423b36830fa9aa8f5b7ccf5c5b14d56c SHA256 fba5d060a3a40e7fe6cdbccaa71fb03f89ea84953a643bcede417e9c94e7e5f3
+AUX prototype-1.0-sdlrendertarget.patch 2772 RMD160 ab14ec0657a3807767602213f307c3eee420f107 SHA1 89c24bed4deeee40301b1456b50086f532bf0faa SHA256 a2439c5640225181269551da671796fbe678abbe22bf9a6b926a535c0cc28192
+AUX prototype-1.0-setstate.patch 11310 RMD160 66fb4cd5bd54259642a4b0a225a98756b4a03054 SHA1 45c3c16a7e823c77699761e658b871aa2e236fb2 SHA256 bc8209c432045219b78a72a242208f90d5c919bf40e0e28e24a78b466c2206c9
+DIST ProtoType.zip 20067895 RMD160 e2762829d4c3fc527ae67f71578db48dfdfc1974 SHA1 458e45a42c86be98756394ef5c6d606109ff961b SHA256 aae32d2e2110da3ca611c07dad9e0eb17ea9daea4103940ebc9ebffb853dd618
+DIST ProtoType_src.zip 489897 RMD160 76beb088a5aa31923f103006b2c9433e7927fcd1 SHA1 c58d7379f0959b63a57c71bffb90a65f47123ebf SHA256 dcf92b4ab422be4eddd2ac22ad1c065f5994de4d8d51ad6ea76fbaced81f9655
+EBUILD prototype-1.0.ebuild 2643 RMD160 6cf43b4ddd5b7b76c6d5cb9ddc6fe8f7b187059c SHA1 387e708489a343aaf8bf13d556ed394e6c4463e5 SHA256 d6c095b7bc65b5a4ca9172f3eac0aee4b75c228a9098d6d5c4811996b575263f
+MISC metadata.xml 249 RMD160 220cde0fc1a8d7d355705f0f6772bd8d77cdc17a SHA1 34b33eb8d24cd8bfef2ddfb8e80334fd77cc9488 SHA256 3875fd5008d7f5bfe7f3cf7bf330c209a5034f5988d37c1699fb3be35a7be906
diff --git a/games-arcade/prototype/files/prototype-1.0-hacks.patch b/games-arcade/prototype/files/prototype-1.0-hacks.patch
new file mode 100644
index 0000000..91f0282
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-hacks.patch
@@ -0,0 +1,111 @@
+diff -Naur Engine.cpp Engine.cpp
+--- Engine.cpp 2009-10-02 08:27:11.000000000 +0200
++++ Engine.cpp 2009-10-02 08:40:26.000000000 +0200
+@@ -20,9 +20,9 @@
+ winHeight = height;
+ int vsync=0, bpp=32, log=1, joystick=1;
+ int fullscreen = fscreen?1:0;
+- int renderTargets=1;
++ int renderTargets=0;
+ int FPS=0;
+- int scanlines = 1;
++ int scanlines = 0;
+ gSerializer.PutComment("Engine.cfg","[Display Properties]");
+ /* gSerializer.ReadVariable("Engine.cfg","winWidth",winWidth);
+ gSerializer.ReadVariable("Engine.cfg","winHeight",winHeight);
+@@ -1211,27 +1211,27 @@
+ }
+ void Engine::SaveScores()
+ {
+- DeleteFile("score.dat");
++// DeleteFile("score.dat");
+ gSerializer.ReadVariable("score.dat","1a",iHiScore[0]);
+- gSerializer.ReadVariable("score.dat","1b",string(szHiScore[0]));
++ gSerializer.ReadVariable("score.dat","1b",iHiScore[0]);
+ gSerializer.ReadVariable("score.dat","2a",iHiScore[1]);
+- gSerializer.ReadVariable("score.dat","2b",string(szHiScore[1]));
++ gSerializer.ReadVariable("score.dat","2b",iHiScore[1]);
+ gSerializer.ReadVariable("score.dat","3a",iHiScore[2]);
+- gSerializer.ReadVariable("score.dat","3b",string(szHiScore[2]));
++ gSerializer.ReadVariable("score.dat","3b",iHiScore[2]);
+ gSerializer.ReadVariable("score.dat","4a",iHiScore[3]);
+- gSerializer.ReadVariable("score.dat","4b",string(szHiScore[3]));
++ gSerializer.ReadVariable("score.dat","4b",iHiScore[3]);
+ gSerializer.ReadVariable("score.dat","5a",iHiScore[4]);
+- gSerializer.ReadVariable("score.dat","5b",string(szHiScore[4]));
++ gSerializer.ReadVariable("score.dat","5b",iHiScore[4]);
+ gSerializer.ReadVariable("score.dat","6a",iHiScore[5]);
+- gSerializer.ReadVariable("score.dat","6b",string(szHiScore[5]));
++ gSerializer.ReadVariable("score.dat","6b",iHiScore[5]);
+ gSerializer.ReadVariable("score.dat","7a",iHiScore[6]);
+- gSerializer.ReadVariable("score.dat","7b",string(szHiScore[6]));
++ gSerializer.ReadVariable("score.dat","7b",iHiScore[6]);
+ gSerializer.ReadVariable("score.dat","8a",iHiScore[7]);
+- gSerializer.ReadVariable("score.dat","8b",string(szHiScore[7]));
++ gSerializer.ReadVariable("score.dat","8b",iHiScore[7]);
+ gSerializer.ReadVariable("score.dat","9a",iHiScore[8]);
+- gSerializer.ReadVariable("score.dat","9b",string(szHiScore[8]));
++ gSerializer.ReadVariable("score.dat","9b",iHiScore[8]);
+ gSerializer.ReadVariable("score.dat","10a",iHiScore[9]);
+- gSerializer.ReadVariable("score.dat","10b",string(szHiScore[9]));
++ gSerializer.ReadVariable("score.dat","10b",iHiScore[9]);
+ }
+
+ void Engine::RenderScanLines()
+diff -Naur FrontEnd.cpp FrontEnd.cpp
+--- FrontEnd.cpp 2009-10-02 08:36:41.000000000 +0200
++++ FrontEnd.cpp 2009-10-02 08:40:49.000000000 +0200
+@@ -418,7 +418,7 @@
+
+ case 13://back to main
+ //write out new cfg
+- DeleteFile("Controls.cfg");
++// DeleteFile("Controls.cfg");
+ gSerializer.PutComment("Controls.cfg","[Control Configuration]");
+ for(int n=0; n<6;n++)
+ {
+diff -Naur Serializer.cpp Serializer.cpp
+--- Serializer.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Serializer.cpp 2009-10-02 08:41:21.000000000 +0200
+@@ -46,11 +46,11 @@
+ {
+ getline(f,s);
+ string tok;
+- stringstream(s) >> tok;
++// stringstream(s) >> tok;
+ if(tok == varname)
+ {
+ string tok2;
+- stringstream(s) >> tok >> tok2 >> value;
++// stringstream(s) >> tok >> tok2 >> value;
+ #ifdef PRINT_SERIAL
+ printf("%s read from file %s\n",tok.c_str(),file.c_str());
+ #endif
+@@ -84,11 +84,11 @@
+ {
+ getline(f,s);
+ string tok;
+- stringstream(s) >> tok;
++// stringstream(s) >> tok;
+ if(tok == varname)
+ {
+ string tok2;
+- stringstream(s) >> tok >> tok2 >> value;
++// stringstream(s) >> tok >> tok2 >> value;
+ #ifdef PRINT_SERIAL
+ printf("%s read from file %s\n",tok.c_str(),file.c_str());
+ #endif
+@@ -123,11 +123,11 @@
+ {
+ getline(f,s);
+ string tok;
+- stringstream(s) >> tok;
++// stringstream(s) >> tok;
+ if(tok == varname)
+ {
+ string tok2;
+- stringstream(s) >> tok >> tok2 >> value;
++// stringstream(s) >> tok >> tok2 >> value;
+ #ifdef PRINT_SERIAL
+ printf("%s read from file %s\n",tok.c_str(),file.c_str());
+ #endif
diff --git a/games-arcade/prototype/files/prototype-1.0-homedir.patch b/games-arcade/prototype/files/prototype-1.0-homedir.patch
new file mode 100644
index 0000000..4851804
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-homedir.patch
@@ -0,0 +1,234 @@
+diff -Naur Engine.cpp Engine.cpp
+--- Engine.cpp 2009-10-02 08:40:26.000000000 +0200
++++ Engine.cpp 2009-10-02 08:45:51.000000000 +0200
+@@ -23,18 +23,22 @@
+ int renderTargets=0;
+ int FPS=0;
+ int scanlines = 0;
+- gSerializer.PutComment("Engine.cfg","[Display Properties]");
+-/* gSerializer.ReadVariable("Engine.cfg","winWidth",winWidth);
+- gSerializer.ReadVariable("Engine.cfg","winHeight",winHeight);
+- gSerializer.ReadVariable("Engine.cfg","bpp",bpp);
+-*/ gSerializer.ReadVariable("Engine.cfg","Vsync",vsync);
+- gSerializer.ReadVariable("Engine.cfg","PBuffers",renderTargets);
+- gSerializer.ReadVariable("Engine.cfg","ShowFPS",FPS);
+- gSerializer.ReadVariable("Engine.cfg","Fullscreen",fullscreen);
+- gSerializer.ReadVariable("Engine.cfg","Scanlines",scanlines);
+- gSerializer.PutComment("Engine.cfg","[Engine Properties]");
+- gSerializer.ReadVariable("Engine.cfg","Keeplog",log);
+- gSerializer.ReadVariable("Engine.cfg","Joystick",joystick);
++
++ char enginepath[PATH_MAX];
++ snprintf(enginepath, PATH_MAX, "%s/.prototype/Engine.cfg", getenv("HOME"));
++
++ gSerializer.PutComment(enginepath,"[Display Properties]");
++/* gSerializer.ReadVariable(enginepath,"winWidth",winWidth);
++ gSerializer.ReadVariable(enginepath,"winHeight",winHeight);
++ gSerializer.ReadVariable(enginepath,"bpp",bpp);
++*/ gSerializer.ReadVariable(enginepath,"Vsync",vsync);
++ gSerializer.ReadVariable(enginepath,"PBuffers",renderTargets);
++ gSerializer.ReadVariable(enginepath,"ShowFPS",FPS);
++ gSerializer.ReadVariable(enginepath,"Fullscreen",fullscreen);
++ gSerializer.ReadVariable(enginepath,"Scanlines",scanlines);
++ gSerializer.PutComment(enginepath,"[Engine Properties]");
++ gSerializer.ReadVariable(enginepath,"Keeplog",log);
++ gSerializer.ReadVariable(enginepath,"Joystick",joystick);
+ FPS?bShowFps = true: bShowFps= false;
+ scanlines?bScanlines=true:bScanlines=false;
+ renderTargets? bRenderTargetSupport=true:bRenderTargetSupport=false;
+@@ -310,14 +314,17 @@
+ mKeys[5].SecondaryKey = SDLK_SPACE;
+ }
+
+- gSerializer.PutComment("Controls.cfg","[Control Configuration]");
++ char controlspath[PATH_MAX];
++ snprintf(controlspath, PATH_MAX, "%s/.prototype/Controls.cfg", getenv("HOME"));
++
++ gSerializer.PutComment(controlspath,"[Control Configuration]");
+ for(int n=0; n<6;n++)
+ {
+ char sz[256];
+ sprintf(sz,"%s_Primary",mKeys[n].KeyName);
+- gSerializer.ReadVariable("Controls.cfg",sz,mKeys[n].PrimaryKey);
++ gSerializer.ReadVariable(controlspath,sz,mKeys[n].PrimaryKey);
+ sprintf(sz,"%s_Secondary",mKeys[n].KeyName);
+- gSerializer.ReadVariable("Controls.cfg",sz,mKeys[n].SecondaryKey);
++ gSerializer.ReadVariable(controlspath,sz,mKeys[n].SecondaryKey);
+ }
+ }
+ //================================================================================================//
+@@ -1178,26 +1185,29 @@
+ string s9("CHEAT");
+ string s10("*****");
+
+- gSerializer.ReadVariable("score.dat","1a",iHiScore[0]);
+- gSerializer.ReadVariable("score.dat","1b",s1);
+- gSerializer.ReadVariable("score.dat","2a",iHiScore[1]);
+- gSerializer.ReadVariable("score.dat","2b",s2);
+- gSerializer.ReadVariable("score.dat","3a",iHiScore[2]);
+- gSerializer.ReadVariable("score.dat","3b",s3);
+- gSerializer.ReadVariable("score.dat","4a",iHiScore[3]);
+- gSerializer.ReadVariable("score.dat","4b",s4);
+- gSerializer.ReadVariable("score.dat","5a",iHiScore[4]);
+- gSerializer.ReadVariable("score.dat","5b",s5);
+- gSerializer.ReadVariable("score.dat","6a",iHiScore[5]);
+- gSerializer.ReadVariable("score.dat","6b",s6);
+- gSerializer.ReadVariable("score.dat","7a",iHiScore[6]);
+- gSerializer.ReadVariable("score.dat","7b",s7);
+- gSerializer.ReadVariable("score.dat","8a",iHiScore[7]);
+- gSerializer.ReadVariable("score.dat","8b",s8);
+- gSerializer.ReadVariable("score.dat","9a",iHiScore[8]);
+- gSerializer.ReadVariable("score.dat","9b",s9);
+- gSerializer.ReadVariable("score.dat","10a",iHiScore[9]);
+- gSerializer.ReadVariable("score.dat","10b",s10);
++ char scorepath[PATH_MAX];
++ snprintf(scorepath, PATH_MAX, "%s/.prototype/score.dat", getenv("HOME"));
++
++ gSerializer.ReadVariable(scorepath,"1a",iHiScore[0]);
++ gSerializer.ReadVariable(scorepath,"1b",s1);
++ gSerializer.ReadVariable(scorepath,"2a",iHiScore[1]);
++ gSerializer.ReadVariable(scorepath,"2b",s2);
++ gSerializer.ReadVariable(scorepath,"3a",iHiScore[2]);
++ gSerializer.ReadVariable(scorepath,"3b",s3);
++ gSerializer.ReadVariable(scorepath,"4a",iHiScore[3]);
++ gSerializer.ReadVariable(scorepath,"4b",s4);
++ gSerializer.ReadVariable(scorepath,"5a",iHiScore[4]);
++ gSerializer.ReadVariable(scorepath,"5b",s5);
++ gSerializer.ReadVariable(scorepath,"6a",iHiScore[5]);
++ gSerializer.ReadVariable(scorepath,"6b",s6);
++ gSerializer.ReadVariable(scorepath,"7a",iHiScore[6]);
++ gSerializer.ReadVariable(scorepath,"7b",s7);
++ gSerializer.ReadVariable(scorepath,"8a",iHiScore[7]);
++ gSerializer.ReadVariable(scorepath,"8b",s8);
++ gSerializer.ReadVariable(scorepath,"9a",iHiScore[8]);
++ gSerializer.ReadVariable(scorepath,"9b",s9);
++ gSerializer.ReadVariable(scorepath,"10a",iHiScore[9]);
++ gSerializer.ReadVariable(scorepath,"10b",s10);
+ strcpy(szHiScore[0],s1.c_str());
+ strcpy(szHiScore[1],s2.c_str());
+ strcpy(szHiScore[2],s3.c_str());
+@@ -1211,27 +1221,30 @@
+ }
+ void Engine::SaveScores()
+ {
++ char scorepath[PATH_MAX];
++ snprintf(scorepath, PATH_MAX, "%s/.prototype/score.dat", getenv("HOME"));
++
+ // DeleteFile("score.dat");
+- gSerializer.ReadVariable("score.dat","1a",iHiScore[0]);
+- gSerializer.ReadVariable("score.dat","1b",iHiScore[0]);
+- gSerializer.ReadVariable("score.dat","2a",iHiScore[1]);
+- gSerializer.ReadVariable("score.dat","2b",iHiScore[1]);
+- gSerializer.ReadVariable("score.dat","3a",iHiScore[2]);
+- gSerializer.ReadVariable("score.dat","3b",iHiScore[2]);
+- gSerializer.ReadVariable("score.dat","4a",iHiScore[3]);
+- gSerializer.ReadVariable("score.dat","4b",iHiScore[3]);
+- gSerializer.ReadVariable("score.dat","5a",iHiScore[4]);
+- gSerializer.ReadVariable("score.dat","5b",iHiScore[4]);
+- gSerializer.ReadVariable("score.dat","6a",iHiScore[5]);
+- gSerializer.ReadVariable("score.dat","6b",iHiScore[5]);
+- gSerializer.ReadVariable("score.dat","7a",iHiScore[6]);
+- gSerializer.ReadVariable("score.dat","7b",iHiScore[6]);
+- gSerializer.ReadVariable("score.dat","8a",iHiScore[7]);
+- gSerializer.ReadVariable("score.dat","8b",iHiScore[7]);
+- gSerializer.ReadVariable("score.dat","9a",iHiScore[8]);
+- gSerializer.ReadVariable("score.dat","9b",iHiScore[8]);
+- gSerializer.ReadVariable("score.dat","10a",iHiScore[9]);
+- gSerializer.ReadVariable("score.dat","10b",iHiScore[9]);
++ gSerializer.ReadVariable(scorepath,"1a",iHiScore[0]);
++ gSerializer.ReadVariable(scorepath,"1b",iHiScore[0]);
++ gSerializer.ReadVariable(scorepath,"2a",iHiScore[1]);
++ gSerializer.ReadVariable(scorepath,"2b",iHiScore[1]);
++ gSerializer.ReadVariable(scorepath,"3a",iHiScore[2]);
++ gSerializer.ReadVariable(scorepath,"3b",iHiScore[2]);
++ gSerializer.ReadVariable(scorepath,"4a",iHiScore[3]);
++ gSerializer.ReadVariable(scorepath,"4b",iHiScore[3]);
++ gSerializer.ReadVariable(scorepath,"5a",iHiScore[4]);
++ gSerializer.ReadVariable(scorepath,"5b",iHiScore[4]);
++ gSerializer.ReadVariable(scorepath,"6a",iHiScore[5]);
++ gSerializer.ReadVariable(scorepath,"6b",iHiScore[5]);
++ gSerializer.ReadVariable(scorepath,"7a",iHiScore[6]);
++ gSerializer.ReadVariable(scorepath,"7b",iHiScore[6]);
++ gSerializer.ReadVariable(scorepath,"8a",iHiScore[7]);
++ gSerializer.ReadVariable(scorepath,"8b",iHiScore[7]);
++ gSerializer.ReadVariable(scorepath,"9a",iHiScore[8]);
++ gSerializer.ReadVariable(scorepath,"9b",iHiScore[8]);
++ gSerializer.ReadVariable(scorepath,"10a",iHiScore[9]);
++ gSerializer.ReadVariable(scorepath,"10b",iHiScore[9]);
+ }
+
+ void Engine::RenderScanLines()
+diff -Naur FrontEnd.cpp FrontEnd.cpp
+--- FrontEnd.cpp 2009-10-02 08:40:49.000000000 +0200
++++ FrontEnd.cpp 2009-10-02 08:46:44.000000000 +0200
+@@ -419,14 +419,17 @@
+ case 13://back to main
+ //write out new cfg
+ // DeleteFile("Controls.cfg");
+- gSerializer.PutComment("Controls.cfg","[Control Configuration]");
++
++ char controlspath[PATH_MAX];
++ snprintf(controlspath, PATH_MAX, "%s/.prototype/Controls.cfg", getenv("HOME"));
++ gSerializer.PutComment(controlspath,"[Control Configuration]");
+ for(int n=0; n<6;n++)
+ {
+ char sz[256];
+ sprintf(sz,"%s_Primary",mKeys[n].KeyName);
+- gSerializer.ReadVariable("Controls.cfg",sz,mKeys[n].PrimaryKey);
++ gSerializer.ReadVariable(controlspath,sz,mKeys[n].PrimaryKey);
+ sprintf(sz,"%s_Secondary",mKeys[n].KeyName);
+- gSerializer.ReadVariable("Controls.cfg",sz,mKeys[n].SecondaryKey);
++ gSerializer.ReadVariable(controlspath,sz,mKeys[n].SecondaryKey);
+ }
+ //back to main
+ SetState(&Engine::UpdateSplash2,&Engine::RenderConfig); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0.25f,&Engine::StartFadeIn);
+diff -Naur Log.cpp Log.cpp
+--- Log.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Log.cpp 2009-10-02 08:47:53.000000000 +0200
+@@ -1,4 +1,6 @@
+ #include "Log.h"
++#include <sys/stat.h>
++#include "stdafx.h"
+ //================================================================================================//
+ /**************************
+ ** global logging system **
+@@ -9,6 +11,8 @@
+
+ void Log::OutPut(string str)
+ {
++ char logpath[PATH_MAX];
++ snprintf(logpath, PATH_MAX, "%s/.prototype/Logfile.txt", getenv("HOME"));
+ if(!bKeepLog)
+ return;
+ #ifdef PRINT_TO_CONSOLE
+@@ -17,11 +21,11 @@
+ ofstream f;
+ if(!lcount)
+ {
+- f.open("Logfile.txt");
++ f.open(logpath);
+ f << "Logfile created on " << __DATE__ << endl;
+ }
+ else
+- f.open("Logfile.txt",ios::app);
++ f.open(logpath,ios::app);
+
+ if(f.is_open())
+ {
+diff -Naur ProtoType.cpp ProtoType.cpp
+--- ProtoType.cpp 2009-10-02 08:36:58.000000000 +0200
++++ ProtoType.cpp 2009-10-02 08:48:22.000000000 +0200
+@@ -2,9 +2,13 @@
+ //
+
+ #include "stdafx.h"
++#include <sys/stat.h>
+
+ int main(int argc, char* argv[])
+ {
++ char cfg_path[PATH_MAX];
++ snprintf(cfg_path, PATH_MAX, "%s/.prototype/", getenv("HOME"));
++ mkdir(cfg_path, 0755);
+ Engine engine(640,480,false,"PROTOTYPE");
+
+ return 0;
diff --git a/games-arcade/prototype/files/prototype-1.0-includes.patch b/games-arcade/prototype/files/prototype-1.0-includes.patch
new file mode 100644
index 0000000..9dc3d4e
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-includes.patch
@@ -0,0 +1,202 @@
+diff -Naur Bug.cpp Bug.cpp
+--- Bug.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Bug.cpp 2009-10-02 08:17:08.000000000 +0200
+@@ -1,6 +1,6 @@
+ #include "Bug.h"
+ #include "Engine.h"
+-#include "debris.h"
++#include "Debris.h"
+
+ Bug::Bug()
+ {
+diff -Naur Bullet.cpp Bullet.cpp
+--- Bullet.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Bullet.cpp 2009-10-02 08:17:25.000000000 +0200
+@@ -1,4 +1,4 @@
+-#include "engine.h"
++#include "Engine.h"
+ #include "Debris.h"
+ #include "RandExplosion.h"
+ //================================================================================================//
+diff -Naur Editor.cpp Editor.cpp
+--- Editor.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Editor.cpp 2009-10-02 08:17:41.000000000 +0200
+@@ -1,5 +1,5 @@
+ #include "Engine.h"
+-#include "UTIL_BitOp.h"
++#include "UTIL_bitop.h"
+ //================================================================================================//
+ /************************
+ ** Set editor defaults **
+diff -Naur Engine.cpp Engine.cpp
+--- Engine.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Engine.cpp 2009-10-02 08:17:54.000000000 +0200
+@@ -1,4 +1,4 @@
+-#include "engine.h"
++#include "Engine.h"
+ //#define PROFILE_TIME 100//set your profile time here (if you want to profile for specific set length)
+ //================================================================================================//
+ /***********************
+diff -Naur Engine.h Engine.h
+--- Engine.h 2009-10-02 08:14:42.000000000 +0200
++++ Engine.h 2009-10-02 08:18:49.000000000 +0200
+@@ -2,7 +2,7 @@
+ #ifdef WIN32
+ #include <windows.h>
+ #endif
+-#include <sdl.h>
++#include <SDL/SDL.h>
+ #include <fstream>
+
+ #include "Sound.h"
+@@ -49,7 +49,7 @@
+ #include "TriggerSlowDown.h"
+ #include "Fire.h"
+ #include "SolarFlare.h"
+-#include "FireBug.h"
++#include "fireBug.h"
+ #include "SpaceTrash.h"
+ #include <list>
+ using namespace std;
+diff -Naur Entity.h Entity.h
+--- Entity.h 2009-10-02 08:14:42.000000000 +0200
++++ Entity.h 2009-10-02 08:19:12.000000000 +0200
+@@ -1,10 +1,10 @@
+ #pragma once
+ #include "Vector.h"
+ #include "Button.h"
+-#include "UTIL_Bitop.h"
++#include "UTIL_bitop.h"
+ #include "Sprite.h"
+ #include "UTIL_Misc.h"
+-#include "Geo2d.h"
++#include "Geo2D.h"
+ #include "Geo2D_Draw.h"
+ #include "FileIO.h"
+ #include <list>
+diff -Naur firebug.cpp firebug.cpp
+--- firebug.cpp 2009-10-02 08:14:42.000000000 +0200
++++ firebug.cpp 2009-10-02 08:22:25.000000000 +0200
+@@ -1,4 +1,4 @@
+-#include "FireBug.h"
++#include "fireBug.h"
+ #include "Engine.h"
+ #include "Debris.h"
+ FireBug::FireBug()
+diff -Naur Map.cpp Map.cpp
+--- Map.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Map.cpp 2009-10-02 08:19:25.000000000 +0200
+@@ -1,5 +1,5 @@
+ #include "Engine.h"
+-#include "UTIL_Bitop.h"
++#include "UTIL_bitop.h"
+ //================================================================================================//
+ /*********************************
+ ** Little cleanup of the arrays **
+diff -Naur PostEffects.cpp PostEffects.cpp
+--- PostEffects.cpp 2009-10-02 08:14:42.000000000 +0200
++++ PostEffects.cpp 2009-10-02 08:19:42.000000000 +0200
+@@ -1,4 +1,4 @@
+-#include "engine.h"
++#include "Engine.h"
+ //================================================================================================//
+ /*************************************************************************
+ ** if we have pbuffer support, we'll copy the main frame into one image **
+diff -Naur Profiler.h Profiler.h
+--- Profiler.h 2009-10-02 08:14:42.000000000 +0200
++++ Profiler.h 2009-10-02 08:19:55.000000000 +0200
+@@ -1,5 +1,5 @@
+ #pragma
+-#include <sdl.h>
++#include <SDL/SDL.h>
+ #include <vector>
+ #include <string>
+ #include <fstream>
+diff -Naur Sound.h Sound.h
+--- Sound.h 2009-10-02 08:14:42.000000000 +0200
++++ Sound.h 2009-10-02 08:20:12.000000000 +0200
+@@ -1,5 +1,5 @@
+ #pragma once
+-#include <FMOD/fmod.h>
++#include <fmod.h>
+ #include <stdio.h>
+
+ class Sound
+diff -Naur SpriteEffect.cpp SpriteEffect.cpp
+--- SpriteEffect.cpp 2009-10-02 08:14:42.000000000 +0200
++++ SpriteEffect.cpp 2009-10-02 08:20:39.000000000 +0200
+@@ -1,6 +1,6 @@
+ #include "SpriteEffect.h"
+ #include "UTIL_openGL.h"
+-#include "UTIL_misc.h"
++#include "UTIL_Misc.h"
+ #include "Sprite.h"
+ #include "Engine.h"
+ SpriteEffect::SpriteEffect()
+diff -Naur Sprite.h Sprite.h
+--- Sprite.h 2009-10-02 08:14:42.000000000 +0200
++++ Sprite.h 2009-10-02 08:20:25.000000000 +0200
+@@ -1,5 +1,5 @@
+ #pragma once
+-#include "UTIL_OpenGL.h"
++#include "UTIL_openGL.h"
+ #include "SpriteSheet.h"
+
+ void RenderSprite(SpriteSheet spr, int frame, float x, float y, float w, float h);
+diff -Naur Timer.h Timer.h
+--- Timer.h 2009-10-02 08:14:42.000000000 +0200
++++ Timer.h 2009-10-02 08:20:55.000000000 +0200
+@@ -1,5 +1,5 @@
+ #pragma once
+-#include <sdl.h>
++#include <SDL/SDL.h>
+ class Timer
+ {
+ private:
+diff -Naur UTIL_Fade.cpp UTIL_Fade.cpp
+--- UTIL_Fade.cpp 2009-10-02 08:14:42.000000000 +0200
++++ UTIL_Fade.cpp 2009-10-02 08:21:13.000000000 +0200
+@@ -1,6 +1,6 @@
+ #include "UTIL_Fade.h"
+ #include "UTIL_Misc.h"
+-#include "UTIL_OpenGL.h"
++#include "UTIL_openGL.h"
+
+ Fade::Fade()
+ {
+diff -Naur UTIL_openGL.h UTIL_openGL.h
+--- UTIL_openGL.h 2009-10-02 08:14:42.000000000 +0200
++++ UTIL_openGL.h 2009-10-02 08:22:12.000000000 +0200
+@@ -3,14 +3,14 @@
+ #ifdef _WIN32
+ #include <windows.h>
+ #endif
+-#include <gl/gl.h>
+-#include <gl/glu.h>
+-#include <gl/glext.h>
+-#include <gl/wglext.h>
+-#include <il/il.h>
+-#include <il/ilu.h>
+-#include <il/ilut.h>
+-#include <string>
++#include <GL/gl.h>
++#include <GL/glu.h>
++#include <GL/glext.h>
++//#include <gl/wglext.h>
++#include <IL/il.h>
++#include <IL/ilu.h>
++#include <IL/ilut.h>
++#include <cstring>
+ #include <sstream>
+ #include "Log.h"
+ //#define EXTENSION_SUPPORT_1_1
+diff -Naur UTIL_SDL.h UTIL_SDL.h
+--- UTIL_SDL.h 2009-10-02 08:14:42.000000000 +0200
++++ UTIL_SDL.h 2009-10-02 08:21:29.000000000 +0200
+@@ -1,5 +1,5 @@
+ #pragma once
+-#include <sdl.h>
++#include <SDL/SDL.h>
+ #include "UTIL_openGL.h"
+ #include "Log.h"
+ #define SDL_VERSION_1_3
diff --git a/games-arcade/prototype/files/prototype-1.0-linuxfixes.patch b/games-arcade/prototype/files/prototype-1.0-linuxfixes.patch
new file mode 100644
index 0000000..c8a2658
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-linuxfixes.patch
@@ -0,0 +1,110 @@
+diff -Naur FileIO.h FileIO.h
+--- FileIO.h 2009-10-02 08:14:42.000000000 +0200
++++ FileIO.h 2009-10-02 08:36:02.000000000 +0200
+@@ -207,4 +207,4 @@
+ };
+
+
+-#endif _FILEIO_H_
++#endif
+diff -Naur Font.h Font.h
+--- Font.h 2009-10-02 08:14:42.000000000 +0200
++++ Font.h 2009-10-02 08:36:14.000000000 +0200
+@@ -35,7 +35,7 @@
+ /*************************************
+ ** Methods **
+ *************************************/
+- bool Font::GenerateGlyphs(char* name);
++ bool GenerateGlyphs(char* name);
+ void GenerateOffsets(unsigned char* data, int w, int h);//variable widths
+ void GenerateCoords();//texture coordinate per glyph
+ /*************************************
+@@ -50,4 +50,4 @@
+ int mAlign;
+ float sine,sineMulti;
+ bool bSineWave;
+-};
+\ Kein Zeilenumbruch am Dateiende.
++};
+diff -Naur FrontEnd.cpp FrontEnd.cpp
+--- FrontEnd.cpp 2009-10-02 08:33:58.000000000 +0200
++++ FrontEnd.cpp 2009-10-02 08:36:41.000000000 +0200
+@@ -1017,21 +1017,21 @@
+ mFade.StartFadeOut(mTimer.GetTime(),2,3.1f);
+ IntroTimer = mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime()+1;
+- if(stricmp(szHiScore[iHiScoreOverWrite],"AAAAA")==0)
++ if(strcmp(szHiScore[iHiScoreOverWrite],"AAAAA")==0)
+ {
+ strcpy(szHiScore[iHiScoreOverWrite],"SHMUP");
+ }
+- if(stricmp(szHiScore[iHiScoreOverWrite],"hyper")==0)
++ if(strcmp(szHiScore[iHiScoreOverWrite],"hyper")==0)
+ {
+ bHyperMode = true;
+ SND_LARGEEXPLODE2;
+ }
+- if(stricmp(szHiScore[iHiScoreOverWrite],"wimps")==0)
++ if(strcmp(szHiScore[iHiScoreOverWrite],"wimps")==0)
+ {
+ bWimpMode = !bWimpMode;
+ SND_LARGEEXPLODE2;
+ }
+- if(stricmp(szHiScore[iHiScoreOverWrite],"bossy")==0)
++ if(strcmp(szHiScore[iHiScoreOverWrite],"bossy")==0)
+ {
+ bBossFight = !bBossFight;
+ SND_LARGEEXPLODE2;
+diff -Naur ProtoType.cpp ProtoType.cpp
+--- ProtoType.cpp 2009-10-02 08:14:42.000000000 +0200
++++ ProtoType.cpp 2009-10-02 08:36:58.000000000 +0200
+@@ -3,7 +3,7 @@
+
+ #include "stdafx.h"
+
+-int _tmain(int argc, _TCHAR* argv[])
++int main(int argc, char* argv[])
+ {
+ Engine engine(640,480,false,"PROTOTYPE");
+
+diff -Naur stdafx.h stdafx.h
+--- stdafx.h 2009-10-02 08:14:42.000000000 +0200
++++ stdafx.h 2009-10-02 08:37:56.000000000 +0200
+@@ -7,7 +7,7 @@
+
+
+ #include <iostream>
+-#include <tchar.h>
++//#include <tchar.h>
+
+ // TODO: reference additional headers your program requires here
+ #include "Engine.h"
+diff -Naur UTIL_openGL.h UTIL_openGL.h
+--- UTIL_openGL.h 2009-10-02 08:22:12.000000000 +0200
++++ UTIL_openGL.h 2009-10-02 08:37:49.000000000 +0200
+@@ -1,3 +1,4 @@
++#define ILUT_USE_OPENGL
+ #pragma once
+ //#include <gl/glew.h>
+ #ifdef _WIN32
+diff -Naur UTIL_SDL.cpp UTIL_SDL.cpp
+--- UTIL_SDL.cpp 2009-10-02 08:14:42.000000000 +0200
++++ UTIL_SDL.cpp 2009-10-02 08:37:32.000000000 +0200
+@@ -42,7 +42,7 @@
+ stringstream(str);
+ str << "Resolution Set: " << width << "x" << height << "x" << bpp << endl;
+ gLog.OutPut(str.str());
+- if(!vsync)
++/* if(!vsync)
+ {
+ PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");
+ if(wglSwapIntervalEXT==NULL)
+@@ -50,7 +50,7 @@
+ wglSwapIntervalEXT(0);
+ gLog.OutPut("Vsync Disabled.\n");
+ }
+-/* else
++ else
+ {
+ PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");
+ if(wglSwapIntervalEXT==NULL)
diff --git a/games-arcade/prototype/files/prototype-1.0-makefile.patch b/games-arcade/prototype/files/prototype-1.0-makefile.patch
new file mode 100644
index 0000000..f84fed6
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-makefile.patch
@@ -0,0 +1,33 @@
+diff -Naur Makefile Makefile
+--- Makefile 1970-01-01 01:00:00.000000000 +0100
++++ Makefile 2009-10-01 11:01:40.000000000 +0200
+@@ -0,0 +1,29 @@
++CPP = g++
++CXXFLAGS = -O2 -g -I/usr/include/ -I./ -I/usr/include/GL
++LDFLAGS = -lGL -lGLU -lILUT -ILU -lIL -lfmod
++
++DEST = .
++
++LD = gcc
++
++SDL_LDFLAGS = $(shell sdl-config --libs)
++SDL_CFLAGS = $(shell sdl-config --cflags) $(CXXLAGS)
++
++MAKEFILE = Makefile
++
++OBJS = AnimGenerator.o Font.o Serpent.o Beam.o FrontEnd.o SolarFlare.o Boss.o Game.o Sound.o BrainBoss.o Generator.o SpaceTrash.o BrainCell.o Geo2D.o Sperm.o BreakScenery.o Geo2D_Draw.o Sprite.o Bug.o HUD.o SpriteEffect.o Bullet.o LadyBird.o SpriteSheet.o Button.o Log.o StarBurst.o CheckPoint.o Map.o stdafx.o Debris.o MidBoss.o SuperTurret.o Demo.o Orb.o Timer.o Editor_Anims.o Player.o TriggerSlowDown.o Editor.o PostEffects.o TriggerSpeedUp.o Editor_EntityProperties.o PowerDroid.o Turret.o Engine.o PowerUp.o UTIL_bitop.o Engine_Generators.o Profiler.o UTIL_Fade.o Entity.o ProtoType.o UTIL_Misc.o Explosion.o RandExplosion.o UTIL_openGL.o Fighter.o Rhino.o UTIL_SDL.o firebug.o Rocket.o Fire.o Serializer.o
++
++PRINT = pr
++
++PROGRAM = prototype
++
++SHELL = /bin/sh
++
++%.o: %.cpp
++ $(CPP) -O2 -g -I./ -I/usr/include/ -I/usr/include/GL $(CXXLAGS) -c $<
++all: $(PROGRAM)
++
++$(PROGRAM): $(OBJS) $(LIBS)
++ @echo "Linking $(PROGRAM) ..."
++ $(LD) -o $(PROGRAM) $(OBJS) -lGL -lGLU $(LDFLAGS) $(SDL_LDFLAGS)
++
diff --git a/games-arcade/prototype/files/prototype-1.0-sdlrendertarget.patch b/games-arcade/prototype/files/prototype-1.0-sdlrendertarget.patch
new file mode 100644
index 0000000..a980402
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-sdlrendertarget.patch
@@ -0,0 +1,104 @@
+diff -Naur Engine.h Engine.h
+--- Engine.h 2009-10-02 08:18:49.000000000 +0200
++++ Engine.h 2009-10-02 08:24:25.000000000 +0200
+@@ -183,7 +183,7 @@
+ void RenderWaterTransparent(const float interp);
+
+ // render target related
+- SDL_RenderTarget *pMainTarget,*pPostTarget, *p64x64Target, *p256x256Target;
++// SDL_RenderTarget *pMainTarget,*pPostTarget, *p64x64Target, *p256x256Target;
+
+ void BindMainContext();
+ void FinalizeMainContext();
+diff -Naur PostEffects.cpp PostEffects.cpp
+--- PostEffects.cpp 2009-10-02 08:19:42.000000000 +0200
++++ PostEffects.cpp 2009-10-02 08:25:09.000000000 +0200
+@@ -12,9 +12,9 @@
+ return;
+ }
+ glEnable(GL_TEXTURE_2D);
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Lock_pBuffer(pMainTarget);
+-//#endif
++#endif
+ UTIL_GL::GL2D::SetOrtho(1024,512);
+
+ }
+@@ -29,9 +29,9 @@
+ return;
+
+ glEnable(GL_TEXTURE_2D);
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Unlock_pBuffer(pMainTarget);
+-//#endif
++#endif
+ RenderMainContext();
+ }
+ //================================================================================================//
+@@ -42,10 +42,10 @@
+ void Engine::RenderMainContext()
+ {
+ glEnable(GL_TEXTURE_2D);
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Bind_pBuffer(*pMainTarget);
+-//#endif
+-// UTIL_GL::GL2D::SetOrtho(640,480);
++#endif
++ UTIL_GL::GL2D::SetOrtho(640,480);
+ glColor4f(1,1,1,1);
+ glDisable(GL_BLEND);
+ glBegin(GL_QUADS);
+@@ -83,11 +83,11 @@
+ if(!bRenderTargetSupport)
+ return;
+
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Unlock_pBuffer(pMainTarget);
+ glEnable(GL_TEXTURE_2D);
+ UTIL_SDL::Lock_pBuffer(p64x64Target);
+-//#endif
++#endif
+ glClearColor(0,0,0,0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glViewport(0,0,64,64);
+@@ -101,11 +101,11 @@
+
+ px+=64;
+ glEnable(GL_TEXTURE_2D);
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Unlock_pBuffer(p64x64Target);
+ BindMainContext();
+ UTIL_SDL::Bind_pBuffer(*p64x64Target);
+-//#endif
++#endif
+ glDisable(GL_BLEND);
+ float hpx = (1.0f/64.0f)*0.5f;
+ float hpy = (1.0f/64.0f)*0.5f;
+@@ -183,9 +183,9 @@
+ if(x1<0)x1=0;
+ x2=(x2-x1)+32;
+ if(x2>640)x2=640;
+-//#ifdef SDL_VERSION_1_3
++#ifdef SDL_VERSION_1_3
+ UTIL_SDL::Bind_pBuffer(*pMainTarget);
+-//#endif
++#endif
+ UTIL_GL::SetBlend(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glColor4f(1,1.0f,1,1);
+
+diff -Naur UTIL_SDL.h UTIL_SDL.h
+--- UTIL_SDL.h 2009-10-02 08:21:29.000000000 +0200
++++ UTIL_SDL.h 2009-10-02 08:25:33.000000000 +0200
+@@ -3,6 +3,7 @@
+ #include "UTIL_openGL.h"
+ #include "Log.h"
+ #define SDL_VERSION_1_3
++#undef SDL_VERSION_1_3
+ //================================================================================================//
+ /*****************
+ ** SDL helpers **
diff --git a/games-arcade/prototype/files/prototype-1.0-setstate.patch b/games-arcade/prototype/files/prototype-1.0-setstate.patch
new file mode 100644
index 0000000..b7af9f9
--- /dev/null
+++ b/games-arcade/prototype/files/prototype-1.0-setstate.patch
@@ -0,0 +1,271 @@
+diff -Naur Engine.cpp Engine.cpp
+--- Engine.cpp 2009-10-02 08:17:54.000000000 +0200
++++ Engine.cpp 2009-10-02 08:56:20.000000000 +0200
+@@ -97,7 +97,7 @@
+ bBossFight = false;
+ bCompileWithEditor = false;
+ StartFrontEnd();
+- SetState(UpdateIntro,RenderIntro);
++ SetState(&Engine::UpdateIntro,&Engine::RenderIntro);
+
+ //start rolling
+ Pump();
+@@ -430,8 +430,7 @@
+ bHyperMode = false;
+ bBossFight = false;
+ StartFrontEnd();
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ iOption = 0;
+diff -Naur FrontEnd.cpp FrontEnd.cpp
+--- FrontEnd.cpp 2009-10-02 08:14:42.000000000 +0200
++++ FrontEnd.cpp 2009-10-02 08:58:02.000000000 +0200
+@@ -33,7 +33,7 @@
+ mbTimedState = false;
+ fGameOverFrame = 0;
+ StartFadeIn();
+- SetState(UpdateIntro,RenderIntro);
++ SetState(&Engine::UpdateIntro,&Engine::RenderIntro);
+ // gLog.OutPut("StartFrontEnd END\n");
+ }
+ //================================================================================================//
+@@ -213,15 +213,13 @@
+ case 0://start game
+ stmSplash.Stop(30);
+ smpUIselect.Play(1);
+- SetState(UpdateSplash2,RenderSplash);
+- SetStateTimed(UpdateGame,RenderGame,2,StartGame);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateGame,&Engine::RenderGame,2,&Engine::StartGame);
+ mFade.StartFadeOut(mTimer.GetTime(),0,2.15f);
+ KEY_ATTACK1.state = RELEASED;
+ break;
+ case 1://configure
+ smpUImove.Play(1);
+- SetState(UpdateSplash2,RenderSplash);
+- SetStateTimed(UpdateConfig,RenderConfig,0.25f,StartFadeIn);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateConfig,&Engine::RenderConfig,0.25f,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,0.3f);
+ break;
+ case 2://editor
+@@ -234,15 +232,13 @@
+ if(!LoadEditorData())
+ return;
+ bUseEditor = true;
+- SetState(NULL,RenderSplash);
+- SetStateTimed(UpdateEditor,RenderEditor,0.25f);
++ SetState(NULL,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateEditor,&Engine::RenderEditor,0.25f);
+ StartEditor();
+ }
+ else
+ {
+ smpUImove.Play(1);
+- SetState(UpdateSplash2,RenderSplash);
+- SetStateTimed(UpdateHowToPlay,RenderHowToPlay,0.25f,StartFadeIn);
++ SetState(NULL,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateEditor,&Engine::RenderEditor,0.25f);
+ mFade.StartFadeOut(mTimer.GetTime(),2,0.3f);
+ }
+ break;
+@@ -433,8 +429,7 @@
+ gSerializer.ReadVariable("Controls.cfg",sz,mKeys[n].SecondaryKey);
+ }
+ //back to main
+- SetState(UpdateSplash2,RenderConfig);
+- SetStateTimed(UpdateSplash,RenderSplash,0.25f,StartFadeIn);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderConfig); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0.25f,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,0.3f);
+ break;
+
+@@ -577,13 +572,13 @@
+ bHyperMode = false;
+ bBossFight = false;
+ bWimpMode = false;
+- SetState(UpdateGameOver,RenderGameOver);
++ SetState(&Engine::UpdateGameOver,&Engine::RenderGameOver);
+ stmSplash.Load("Data/Sound/GameOver.ogg",false);
+ stmSplash.Play(30);
+ StartFadeIn();
+ fGameOverFrame = 0;
+ bGameOverFrame = false;
+- SetStateTimed(UpdateGameOver,RenderGameOver,10,EndGameOver);
++ SetStateTimed(&Engine::UpdateGameOver,&Engine::RenderGameOver,10,&Engine::EndGameOver);
+ }
+ void Engine::EndGameOver()
+ {
+@@ -591,12 +586,12 @@
+ {
+ if(mPlayer.iScore>iHiScore[n])
+ {
+- SetStateTimed(UpdateEnterHiScore,RenderEnterHiScore,3,StartEnterHiScore);
++ SetStateTimed(&Engine::UpdateEnterHiScore,&Engine::RenderEnterHiScore,3,&Engine::StartEnterHiScore);
+ mFade.StartFadeOut(mTimer.GetTime(),2,3.5f);
+ return;
+ }
+ }
+- SetStateTimed(UpdateIntro,RenderIntro,3,StartFrontEnd);
++ SetStateTimed(&Engine::UpdateIntro,&Engine::RenderIntro,3,&Engine::StartFrontEnd);
+ mFade.StartFadeOut(mTimer.GetTime(),2,3.5f);
+ }
+ void Engine::UpdateGameOver(float delta)
+@@ -642,7 +637,7 @@
+ {
+ if(mTimer.GetTime()>IntroTimer+20)
+ {
+- SetStateTimed(UpdateIntro2,RenderIntro2,1,StartFadeIn);
++ SetStateTimed(&Engine::UpdateIntro2,&Engine::RenderIntro2,1,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,1.1f);
+ IntroTimer= mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime();
+@@ -650,8 +645,7 @@
+ }
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ iOption = 0;
+@@ -707,7 +701,7 @@
+ {
+ if(mTimer.GetTime()>IntroTimer+5)
+ {
+- SetStateTimed(UpdateIntro3,RenderIntro3,1,StartFadeIn);
++ SetStateTimed(&Engine::UpdateIntro3,&Engine::RenderIntro3,1,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,1.1f);
+ IntroTimer= mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime();
+@@ -715,8 +709,7 @@
+ }
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ iOption = 0;
+@@ -753,7 +746,7 @@
+ }
+ if(mTimer.GetTime()>IntroTimer+6)
+ {
+- SetStateTimed(UpdateIntro4,RenderIntro4,1,StartFadeIn);
++ SetStateTimed(&Engine::UpdateIntro4,&Engine::RenderIntro4,1,&Engine::StartFadeIn);
+ IntroTimer = mTimer.GetTime();
+ mFade.StartFadeOut(mTimer.GetTime(),2,1.1f);
+ return;
+@@ -761,8 +754,7 @@
+ fGameOverFrame>15? fGameOverFrame-=15:fGameOverFrame += 0.25f;
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ iOption = 0;
+@@ -823,7 +815,7 @@
+ fGameOverFrame>6? fGameOverFrame-=6:fGameOverFrame += 0.25f;
+ if(mTimer.GetTime()>IntroTimer+6)
+ {
+- SetStateTimed(UpdateHiScores,RenderHiScores,1,StartFadeIn);
++ SetStateTimed(&Engine::UpdateHiScores,&Engine::RenderHiScores,1,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,1.1f);
+ IntroTimer = mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime()+1;
+@@ -832,8 +824,7 @@
+ }
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ return;
+@@ -901,16 +892,14 @@
+ IntroTimer = mTimer.GetTime()+2;
+ fUIDelay = mTimer.GetTime()+2;
+ bDemo = true;
+- SetState(UpdateSplash2,RenderHiScores);
+- SetStateTimed(UpdateGame,RenderGame,2,StartGame);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderHiScores); SetStateTimed(&Engine::UpdateGame,&Engine::RenderGame,2,&Engine::StartGame);
+ mFade.StartFadeOut(mTimer.GetTime(),0,2.1f);
+ fGameDifficulty = 2;
+ return;
+ }
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ iOption = 0;
+@@ -957,7 +946,7 @@
+ //================================================================================================//
+ void Engine::StartEnterHiScore()
+ {
+- SetState(UpdateEnterHiScore,RenderEnterHiScore);
++ SetState(&Engine::UpdateEnterHiScore,&Engine::RenderEnterHiScore);
+ stmSplash.Load("Data/Sound/HiScores.ogg",false);
+ stmSplash.Play(30);
+ StartFadeIn();
+@@ -1024,8 +1013,7 @@
+ iScoreEntryDigit++;
+ if(iScoreEntryDigit>4)
+ {
+- SetState(UpdateSplash2,RenderEnterHiScore);
+- SetStateTimed(UpdateIntro,RenderIntro,3,StartFrontEnd);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderEnterHiScore); SetStateTimed(&Engine::UpdateIntro,&Engine::RenderIntro,3,&Engine::StartFrontEnd);
+ mFade.StartFadeOut(mTimer.GetTime(),2,3.1f);
+ IntroTimer = mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime()+1;
+@@ -1171,8 +1159,7 @@
+ if(KEY_UI_SELECT.state == JUST_PRESSED || KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+ smpUImove.Play(1);
+- SetState(UpdateSplash2,RenderHowToPlay);
+- SetStateTimed(UpdateSplash,RenderSplash,0.25f,StartFadeIn);
++ SetState(&Engine::UpdateSplash2,&Engine::RenderHowToPlay); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0.25f,&Engine::StartFadeIn);
+ mFade.StartFadeOut(mTimer.GetTime(),2,0.3f);
+ }
+ }
+diff -Naur Game.cpp Game.cpp
+--- Game.cpp 2009-10-02 08:14:42.000000000 +0200
++++ Game.cpp 2009-10-02 08:56:20.000000000 +0200
+@@ -184,8 +184,7 @@
+ }
+ if(KEY_ATTACK1.state == JUST_PRESSED || KEY_ATTACK2.state == JUST_PRESSED || KEY_UI_SELECT.state == JUST_PRESSED || KEY_UI_SELECT2.state == JUST_PRESSED)
+ {
+- SetState(UpdateSplash,RenderSplash);
+- SetStateTimed(UpdateSplash,RenderSplash,0);
++ SetState(&Engine::UpdateSplash,&Engine::RenderSplash); SetStateTimed(&Engine::UpdateSplash,&Engine::RenderSplash,0);
+ mFade.StartFadeIn(mTimer.GetTime(),2,0.5f);
+ fUIDelay = mTimer.GetTime();
+ bDemo = false;
+@@ -644,7 +643,7 @@
+ void Engine::StartCompleted()
+ {
+ bGameCompleted = true;
+- SetStateTimed(UpdateCongratulations,RenderCongratulations,5,FadeInEndCompleted);
++ SetStateTimed(&Engine::UpdateCongratulations,&Engine::RenderCongratulations,5,&Engine::FadeInEndCompleted);
+ mFade.StartFadeOut(mTimer.GetTime(),2,5.1f);
+ fUIDelay = mTimer.GetTime()+5;
+ stmStage.Stop(FSOUND_ALL);
+@@ -657,11 +656,11 @@
+ void Engine::FadeInEndCompleted()
+ {
+ StartFadeIn();
+- SetStateTimed(UpdateCongratulations,RenderCongratulations,20,EndCompleted);
++ SetStateTimed(&Engine::UpdateCongratulations,&Engine::RenderCongratulations,20,&Engine::EndCompleted);
+ }
+ void Engine::EndCompleted()
+ {
+- SetStateTimed(NULL,RenderIntro,3,StartGameOver);
++ SetStateTimed(NULL,&Engine::RenderIntro,3,&Engine::StartGameOver);
+ mFade.StartFadeOut(mTimer.GetTime(),2,3.1f);
+ IntroTimer = mTimer.GetTime()+1;
+ fUIDelay = mTimer.GetTime()+1;
diff --git a/games-arcade/prototype/metadata.xml b/games-arcade/prototype/metadata.xml
new file mode 100644
index 0000000..4e4714e
--- /dev/null
+++ b/games-arcade/prototype/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+ <email>frostworks@gmx.de</email>
+ <name>Marcel Unbehaun</name>
+</maintainer>
+<herd>games</herd>
+</pkgmetadata>
diff --git a/games-arcade/prototype/prototype-1.0.ebuild b/games-arcade/prototype/prototype-1.0.ebuild
new file mode 100644
index 0000000..6ed8706
--- /dev/null
+++ b/games-arcade/prototype/prototype-1.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+
+inherit eutils games
+
+DESCRIPTION="awarded winning RType clone"
+HOMEPAGE="http://xout.blackened-interactive.com/ProtoType.html"
+SRC_URI="http://xout.blackened-interactive.com/dump/new/ProtoType_src.zip
+ http://xout.blackened-interactive.com/ProtoType/ProtoType.zip"
+LICENSE="public-domain"
+KEYWORDS="~x86"
+IUSE=""
+SLOT="0"
+
+RDEPEND="virtual/opengl
+ virtual/glu
+ media-libs/libsdl
+ media-libs/devil
+ media-libs/fmod"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${PN}_${PV}
+
+src_prepare(){
+ edos2unix *.{cpp,h}
+ epatch ${FILESDIR}/"${P}-makefile.patch"
+ epatch ${FILESDIR}/"${P}-includes.patch"
+ epatch ${FILESDIR}/"${P}-sdlrendertarget.patch"
+ epatch ${FILESDIR}/"${P}-setstate.patch"
+ epatch ${FILESDIR}/"${P}-linuxfixes.patch"
+ epatch ${FILESDIR}/"${P}-hacks.patch"
+ epatch ${FILESDIR}/"${P}-homedir.patch"
+ for i in "${WORKDIR}"/*.cpp; do sed -i "$i" -e "s:Data/:"${GAMES_DATADIR}"/"${PN}"/:g"; done
+}
+
+src_install() {
+ dogamesbin ${PN}
+ local datadir="${GAMES_DATADIR}"/"${PN}"
+ dodir ${datadir}
+ insinto "${GAMES_DATADIR}"/"${PN}"
+ mv ProtoType/Data/Gfx/forcecharge.png ProtoType/Data/Gfx/ForceCharge.png
+ mv ProtoType/Data/Gfx/chainParticle.png ProtoType/Data/Gfx/ChainParticle.png
+ mv ProtoType/Data/Gfx/Ladybird.png ProtoType/Data/Gfx/LadyBird.png
+ mv ProtoType/Data/Gfx/Turret1.png ProtoType/Data/Gfx/turret1.png
+ mv ProtoType/Data/Gfx/StarBurst.png ProtoType/Data/Gfx/Starburst.png
+ mv ProtoType/Data/Gfx/forceblast.png ProtoType/Data/Gfx/Forceblast.png
+ mv ProtoType/Data/Gfx/Fireball.png ProtoType/Data/Gfx/FireBall.png
+ mv ProtoType/Data/Gfx/anim_back1.png ProtoType/Data/Gfx/Anim_back1.png
+ mv ProtoType/Data/Gfx/anim_back2.png ProtoType/Data/Gfx/Anim_back2.png
+ mv ProtoType/Data/Gfx/anim_Fore1.png ProtoType/Data/Gfx/Anim_Fore1.png
+ mv ProtoType/Data/Gfx/anim_Fore2.png ProtoType/Data/Gfx/Anim_Fore2.png
+ mv ProtoType/Data/Gfx/anim_Fore3.png ProtoType/Data/Gfx/Anim_Fore3.png
+ mv ProtoType/Data/Gfx/WaterSplash.png ProtoType/Data/Gfx/watersplash.png
+ mv ProtoType/Data/Gfx/PrototypeMk1.png ProtoType/Data/Gfx/Prototypemk1.png
+ mv ProtoType/Data/Sound/deflection.wav ProtoType/Data/Sound/Deflection.wav
+ mv ProtoType/Data/Sound/smallExplosion.wav ProtoType/Data/Sound/SmallExplosion.wav
+ mv ProtoType/Data/Sound/PickUp.wav ProtoType/Data/Sound/Pickup.wav
+ mv ProtoType/Data/Sound/UI_Select.wav ProtoType/Data/Sound/UI_select.wav
+ doins -r ProtoType/Data/* || die
+ newicon ProtoType/Data/Gfx/FireBug.png "${PN}.png"
+ make_desktop_entry "${PN}" "${PN}"
+ prepgamesdirs
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+
+} \ No newline at end of file