summary refs log tree commit diff
path: root/pkgs/games/ltris
diff options
context:
space:
mode:
authorSimon Lackerbauer <simon@lackerbauer.com>2017-06-16 16:32:30 +0200
committerSimon Lackerbauer <simon@lackerbauer.com>2017-06-16 21:37:18 +0200
commite0c1c51d738304e7851a547a992e0fc27d2a45c8 (patch)
tree4226f57de9e36157bc750f9b5fe80878d9ac3bf6 /pkgs/games/ltris
parent100cd2af5aadfb457037a989a0ac5c4437b66ea5 (diff)
downloadnixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar.gz
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar.bz2
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar.lz
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar.xz
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.tar.zst
nixpkgs-e0c1c51d738304e7851a547a992e0fc27d2a45c8.zip
ltris: init at 1.0.19
Diffstat (limited to 'pkgs/games/ltris')
-rw-r--r--pkgs/games/ltris/default.nix22
-rw-r--r--pkgs/games/ltris/gcc5_compliance.diff299
2 files changed, 321 insertions, 0 deletions
diff --git a/pkgs/games/ltris/default.nix b/pkgs/games/ltris/default.nix
new file mode 100644
index 00000000000..10a79a69673
--- /dev/null
+++ b/pkgs/games/ltris/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, SDL, SDL_mixer }:
+
+stdenv.mkDerivation rec {
+  name = "ltris-${version}";
+  version = "1.0.19";
+  buildInputs = [ SDL SDL_mixer ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/${name}.tar.gz";
+    sha256 = "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg";
+  };
+
+  patchPhase = "patch -p0 < ${./gcc5_compliance.diff}";
+
+  meta = with stdenv.lib; {
+    description = "Tetris clone from the LGames series";
+    homepage = http://lgames.sourceforge.net/LBreakout2/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.ciil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/ltris/gcc5_compliance.diff b/pkgs/games/ltris/gcc5_compliance.diff
new file mode 100644
index 00000000000..bf53fcf8467
--- /dev/null
+++ b/pkgs/games/ltris/gcc5_compliance.diff
@@ -0,0 +1,299 @@
+Index: ChangeLog
+===================================================================
+--- ChangeLog	(revision 163)
++++ ChangeLog	(revision 164)
+@@ -1,3 +1,5 @@
++- removed all inline keywords to work with GCC 5 (2015/05/16 MS)
++
+ 1.0.19:
+ - removed link to lib math as not needed (2013/10/29 MS)
+ - reset key states when unpausing to prevent unwanted movement (2013/10/29 MS)
+Index: src/bowl.c
+===================================================================
+--- src/bowl.c	(revision 163)
++++ src/bowl.c	(revision 164)
+@@ -333,7 +333,7 @@
+ Set a tile contents and pixel contents.
+ ====================================================================
+ */
+-inline void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
++void bowl_set_tile( Bowl *bowl, int x, int y, int tile_id )
+ {
+     int i, j = y * bowl->block_size;
+     bowl->contents[x][y] = tile_id;
+Index: src/sdl.c
+===================================================================
+--- src/sdl.c	(revision 163)
++++ src/sdl.c	(revision 164)
+@@ -244,7 +244,7 @@
+ #endif
+ 
+ /* return full path of bitmap */
+-inline void get_full_bmp_path( char *full_path, char *file_name )
++void get_full_bmp_path( char *full_path, char *file_name )
+ {
+     sprintf(full_path,  "%s/gfx/%s", SRC_DIR, file_name );
+ }
+@@ -330,7 +330,7 @@
+ /*
+     lock surface
+ */
+-inline void lock_surf(SDL_Surface *sur)
++void lock_surf(SDL_Surface *sur)
+ {
+     if (SDL_MUSTLOCK(sur))
+         SDL_LockSurface(sur);
+@@ -339,7 +339,7 @@
+ /*
+     unlock surface
+ */
+-inline void unlock_surf(SDL_Surface *sur)
++void unlock_surf(SDL_Surface *sur)
+ {
+     if (SDL_MUSTLOCK(sur))
+         SDL_UnlockSurface(sur);
+@@ -666,7 +666,7 @@
+ /*
+     lock font surface
+ */
+-inline void lock_font(Font *fnt)
++void lock_font(Font *fnt)
+ {
+     if (SDL_MUSTLOCK(fnt->pic))
+         SDL_LockSurface(fnt->pic);
+@@ -675,7 +675,7 @@
+ /*
+     unlock font surface
+ */
+-inline void unlock_font(Font *fnt)
++void unlock_font(Font *fnt)
+ {
+     if (SDL_MUSTLOCK(fnt->pic))
+         SDL_UnlockSurface(fnt->pic);
+@@ -905,7 +905,7 @@
+ /*
+     update rectangle (0,0,0,0)->fullscreen
+ */
+-inline void refresh_screen(int x, int y, int w, int h)
++void refresh_screen(int x, int y, int w, int h)
+ {
+     SDL_UpdateRect(sdl.screen, x, y, w, h);
+ }
+@@ -1055,7 +1055,7 @@
+ /*
+     lock surface
+ */
+-inline void lock_screen()
++void lock_screen()
+ {
+     if (SDL_MUSTLOCK(sdl.screen))
+         SDL_LockSurface(sdl.screen);
+@@ -1064,7 +1064,7 @@
+ /*
+     unlock surface
+ */
+-inline void unlock_screen()
++void unlock_screen()
+ {
+     if (SDL_MUSTLOCK(sdl.screen))
+         SDL_UnlockSurface(sdl.screen);
+@@ -1073,7 +1073,7 @@
+ /*
+     flip hardware screens (double buffer)
+ */
+-inline void flip_screen()
++void flip_screen()
+ {
+     SDL_Flip(sdl.screen);
+ }
+@@ -1132,7 +1132,7 @@
+ /*
+     get milliseconds since last call
+ */
+-inline int get_time()
++int get_time()
+ {
+     int ms;
+     cur_time = SDL_GetTicks();
+@@ -1148,7 +1148,7 @@
+ /*
+     reset timer
+ */
+-inline void reset_timer()
++void reset_timer()
+ {
+     last_time = SDL_GetTicks();
+ }
+Index: src/sdl.h
+===================================================================
+--- src/sdl.h	(revision 163)
++++ src/sdl.h	(revision 164)
+@@ -41,8 +41,8 @@
+ SDL_Surface* load_surf(char *fname, int f);
+ SDL_Surface* create_surf(int w, int h, int f);
+ void free_surf( SDL_Surface **surf );
+-inline void lock_surf(SDL_Surface *sur);
+-inline void unlock_surf(SDL_Surface *sur);
++void lock_surf(SDL_Surface *sur);
++void unlock_surf(SDL_Surface *sur);
+ void blit_surf(void);
+ void alpha_blit_surf(int alpha);
+ void fill_surf(int c);
+@@ -86,8 +86,8 @@
+ Font* load_fixed_font(char *fname, int off, int len, int w);
+ void free_font(Font **sfnt);
+ int  write_text(Font *sfnt, SDL_Surface *dest, int x, int y, char *str, int alpha);
+-inline void lock_font(Font *sfnt);
+-inline void unlock_font(Font *sfnt);
++void lock_font(Font *sfnt);
++void unlock_font(Font *sfnt);
+ SDL_Rect last_write_rect(Font *fnt);
+ int  text_width(Font *fnt, char *str);
+ 
+@@ -132,14 +132,14 @@
+ char** get_mode_names( int *count );
+ int  set_video_mode( Video_Mode mode );
+ void hardware_cap();
+-inline void refresh_screen( int x, int y, int w, int h );
++void refresh_screen( int x, int y, int w, int h );
+ void refresh_rects();
+ void add_refresh_rect(int x, int y, int w, int h);
+ int  wait_for_key();
+ void wait_for_click();
+-inline void lock_screen();
+-inline void unlock_screen();
+-inline void flip_screen();
++void lock_screen();
++void unlock_screen();
++void flip_screen();
+ void fade_screen( int type, int ms );
+ void take_screenshot( int i );
+ 
+@@ -148,8 +148,8 @@
+ SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, char *source );
+ 
+ /* timer */
+-inline int get_time();
+-inline void reset_timer();
++int get_time();
++void reset_timer();
+ 
+ #ifdef __cplusplus
+ };
+Index: src/tools.c
+===================================================================
+--- src/tools.c	(revision 163)
++++ src/tools.c	(revision 164)
+@@ -23,7 +23,7 @@
+ #include "ltris.h"
+ 
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int strequal( char *str1, char *str2 )
++int strequal( char *str1, char *str2 )
+ {
+     if ( strlen( str1 ) != strlen( str2 ) ) return 0;
+     return ( !strncmp( str1, str2, strlen( str1 ) ) );
+@@ -30,7 +30,7 @@
+ }
+ 
+ /* set delay to ms milliseconds */
+-inline void delay_set( Delay *delay, int ms )
++void delay_set( Delay *delay, int ms )
+ {
+     delay->limit = ms;
+     delay->cur = 0;
+@@ -37,13 +37,13 @@
+ }
+ 
+ /* reset delay ( cur = 0 )*/
+-inline void delay_reset( Delay *delay )
++void delay_reset( Delay *delay )
+ {
+     delay->cur = 0;
+ }
+ 
+ /* check if times out and reset */
+-inline int delay_timed_out( Delay *delay, int ms )
++int delay_timed_out( Delay *delay, int ms )
+ {
+     delay->cur += ms;
+     if ( delay->cur >= delay->limit ) {
+@@ -56,12 +56,12 @@
+ }
+ 
+ /* set timer so that we have a time out next call of delay_timed_out() */
+-inline void delay_force_time_out( Delay *delay )
++void delay_force_time_out( Delay *delay )
+ {
+     delay->cur = delay->limit;
+ }
+ 
+-inline void goto_tile( int *x, int *y, int d )
++void goto_tile( int *x, int *y, int d )
+ {
+     /*  0 -up, clockwise, 5 - left up */
+     switch ( d ) {
+@@ -326,24 +326,24 @@
+ the target value until reached when counter_update() is called.
+ ====================================================================
+ */
+-inline void counter_set( Counter *counter, double value )
++void counter_set( Counter *counter, double value )
+ {
+     counter->value = value;
+     counter->approach = value;
+ }
+-inline void counter_add( Counter *counter, double add )
++void counter_add( Counter *counter, double add )
+ {
+     counter->value += add;
+ }
+-inline double counter_get_approach( Counter counter )
++double counter_get_approach( Counter counter )
+ {
+     return counter.approach;
+ }
+-inline double counter_get( Counter counter )
++double counter_get( Counter counter )
+ {
+     return counter.value;
+ }
+-inline void counter_update( Counter *counter, int ms )
++void counter_update( Counter *counter, int ms )
+ {
+     double change;
+     if ( counter->approach == counter->value ) return;
+Index: src/tools.h
+===================================================================
+--- src/tools.h	(revision 163)
++++ src/tools.h	(revision 164)
+@@ -33,7 +33,7 @@
+ #define VEC_DIST( vec1, vec2 ) ( sqrt( ( vec1.x - vec2.x ) * ( vec1.x - vec2.x ) + ( vec1.y - vec2.y ) * ( vec1.y - vec2.y ) ) )
+ 
+ /* compares to strings and returns true if their first strlen(str1) chars are equal */
+-inline int strequal( char *str1, char *str2 );
++int strequal( char *str1, char *str2 );
+ 
+ /* delete lines */
+ void delete_lines( char **lines, int line_number );
+@@ -45,16 +45,16 @@
+ } Delay;
+ 
+ /* set delay to ms milliseconds */
+-inline void delay_set( Delay *delay, int ms );
++void delay_set( Delay *delay, int ms );
+ 
+ /* reset delay ( cur = 0 )*/
+-inline void delay_reset( Delay *delay );
++void delay_reset( Delay *delay );
+ 
+ /* check if time's out ( add ms milliseconds )and reset */
+-inline int delay_timed_out( Delay *delay, int ms );
++int delay_timed_out( Delay *delay, int ms );
+ 
+ /* set timer so that we have a time out next call of delay_timed_out() */
+-inline void delay_force_time_out( Delay *delay );
++void delay_force_time_out( Delay *delay );
+ 
+ /* return distance betwteen to map positions */
+ int get_dist( int x1, int y1, int x2, int y2 );