From b861e7aaee2b71709061b88615b3a523cffcb97d Mon Sep 17 00:00:00 2001 From: Matteo Bernardini Date: Mon, 4 Nov 2013 21:39:07 +0100 Subject: games/trackball: Fix building with the newer guile. Also fix the Esc key behaviour Signed-off-by: Matteo Bernardini --- .../patches/trackballs-1.1.4-guile20.patch | 310 +++++++++++++++++++++ ...ackballs-1.1.4-remove-old-sdl-workarounds.patch | 117 ++++++++ games/trackballs/trackballs.SlackBuild | 6 +- 3 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 games/trackballs/patches/trackballs-1.1.4-guile20.patch create mode 100644 games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch (limited to 'games/trackballs') diff --git a/games/trackballs/patches/trackballs-1.1.4-guile20.patch b/games/trackballs/patches/trackballs-1.1.4-guile20.patch new file mode 100644 index 0000000000..79a9174ce0 --- /dev/null +++ b/games/trackballs/patches/trackballs-1.1.4-guile20.patch @@ -0,0 +1,310 @@ +--- trackballs-1.1.4/src/game.cc 2007-05-25 12:24:42.000000000 +0200 ++++ trackballs-1.1.4.new/src/game.cc 2011-05-18 12:51:33.350253294 +0200 +@@ -65,7 +65,7 @@ + /* Load the bootup script */ + char scmname[256]; + snprintf(scmname,sizeof(scmname),"%s/levels/boot.scm",SHARE_DIR); +- gh_eval_file(scmname); ++ scm_c_primitive_load(scmname); + + player1 = new Player(gamer); + loadLevel(name); +@@ -110,7 +110,7 @@ + + if(map) delete map; + map = new Map(mapname); +- gh_eval_file(scmname); ++ scm_c_primitive_load(scmname); + + if(player1) + player1->timeLeft = startTime; +--- trackballs-1.1.4/src/guile.cc.x 2007-05-25 16:40:36.000000000 +0200 ++++ trackballs-1.1.4.new/src/guile.cc.x 2011-05-18 12:55:59.574253365 +0200 +@@ -1,88 +1,88 @@ + /* cpp arguments: guile.cc -DLOCALEDIR="/usr/local/share/locale" -DHAVE_CONFIG_H -I. -I.. -DSHARE_DIR="/usr/local/share/trackballs" -DPACKAGE="trackballs" -DVERSION="1.1.4" -g -O2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./ -I../ */ +- scm_c_define_gsubr (s_player, 0, 0, 0, (SCM (*)()) player); ; +- scm_c_define_gsubr (s_new_mr_black, 2, 0, 0, (SCM (*)()) new_mr_black); ; +- scm_c_define_gsubr (s_new_baby, 2, 0, 0, (SCM (*)()) new_baby); ; +- scm_c_define_gsubr (s_add_teleport, 5, 0, 0, (SCM (*)()) add_teleport); ; +- scm_c_define_gsubr (s_add_bird, 6, 0, 0, (SCM (*)()) add_bird); ; +- scm_c_define_gsubr (s_add_flag, 5, 0, 0, (SCM (*)()) add_flag); ; +- scm_c_define_gsubr (s_add_colormodifier, 7, 0, 0, (SCM (*)()) add_colormodifier); ; +- scm_c_define_gsubr (s_add_heightmodifier, 7, 3, 0, (SCM (*)()) add_heightmodifier); ; +- scm_c_define_gsubr (s_add_cactus, 3, 0, 0, (SCM (*)()) add_cactus); ; +- scm_c_define_gsubr (s_add_spike, 4, 0, 0, (SCM (*)()) add_spike); ; +- scm_c_define_gsubr (s_add_sidespike, 5, 0, 0, (SCM (*)()) add_sidespike); ; +- scm_c_define_gsubr (s_add_goal, 4, 0, 0, (SCM (*)()) add_goal); ; +- scm_c_define_gsubr (s_sign, 6, 1, 0, (SCM (*)()) sign); ; +- scm_c_define_gsubr (s_add_modpill, 5, 0, 0, (SCM (*)()) add_modpill); ; +- scm_c_define_gsubr (s_forcefield, 8, 0, 0, (SCM (*)()) forcefield); ; +- scm_c_define_gsubr (s_fun_switch, 4, 0, 0, (SCM (*)()) fun_switch); ; +- scm_c_define_gsubr (s_new_pipe, 7, 0, 0, (SCM (*)()) new_pipe); ; +- scm_c_define_gsubr (s_pipe_connector, 4, 0, 0, (SCM (*)()) pipe_connector); ; +- scm_c_define_gsubr (s_diamond, 2, 1, 0, (SCM (*)()) diamond); ; +- scm_c_define_gsubr (s_fountain, 6, 0, 0, (SCM (*)()) fountain); ; +- scm_c_define_gsubr (s_set_position, 3, 1, 0, (SCM (*)()) set_position); ; +- scm_c_define_gsubr (s_get_position_x, 1, 0, 0, (SCM (*)()) get_position_x); ; +- scm_c_define_gsubr (s_get_position_y, 1, 0, 0, (SCM (*)()) get_position_y); ; +- scm_c_define_gsubr (s_get_position_z, 1, 0, 0, (SCM (*)()) get_position_z); ; +- scm_c_define_gsubr (s_set_modtime, 3, 0, 0, (SCM (*)()) set_modtime); ; +- scm_c_define_gsubr (s_set_acceleration, 2, 0, 0, (SCM (*)()) set_acceleration); ; +- scm_c_define_gsubr (s_set_horizon, 2, 0, 0, (SCM (*)()) set_horizon); ; +- scm_c_define_gsubr (s_set_primary_color, 4, 1, 0, (SCM (*)()) set_primary_color); ; +- scm_c_define_gsubr (s_set_secondary_color, 4, 1, 0, (SCM (*)()) set_secondary_color); ; +- scm_c_define_gsubr (s_set_specular_color, 4, 1, 0, (SCM (*)()) set_specular_color); ; +- scm_c_define_gsubr (s_set_flag, 3, 0, 0, (SCM (*)()) set_flag); ; +- scm_c_define_gsubr (s_set_wind, 3, 0, 0, (SCM (*)()) set_wind); ; +- scm_c_define_gsubr (s_set_speed, 2, 0, 0, (SCM (*)()) set_speed); ; +- scm_c_define_gsubr (s_set_texture, 2, 0, 0, (SCM (*)()) set_texture); ; +- scm_c_define_gsubr (s_set_fountain_strength, 2, 0, 0, (SCM (*)()) set_fountain_strength); ; +- scm_c_define_gsubr (s_set_fountain_velocity, 4, 0, 0, (SCM (*)()) set_fountain_velocity); ; +- scm_c_define_gsubr (s_score_on_death, 2, 0, 0, (SCM (*)()) score_on_death); ; +- scm_c_define_gsubr (s_time_on_death, 2, 0, 0, (SCM (*)()) time_on_death); ; +- scm_c_define_gsubr (s_default_on_death, 3, 0, 0, (SCM (*)()) default_on_death); ; +- scm_c_define_gsubr (s_add_cyclic_platform, 8, 0, 0, (SCM (*)()) add_cyclic_platform); ; +- scm_c_define_gsubr (s_animator, 7, 0, 0, (SCM (*)()) animator); ; +- scm_c_define_gsubr (s_set_onoff, 2, 0, 0, (SCM (*)()) set_onoff); ; +- scm_c_define_gsubr (s_animator_value, 1, 0, 0, (SCM (*)()) animator_value); ; +- scm_c_define_gsubr (s_set_animator_direction, 2, 0, 0, (SCM (*)()) set_animator_direction); ; +- scm_c_define_gsubr (s_set_animator_position, 2, 0, 0, (SCM (*)()) set_animator_position); ; +- scm_c_define_gsubr (s_day, 0, 0, 0, (SCM (*)()) day); ; +- scm_c_define_gsubr (s_night, 0, 0, 0, (SCM (*)()) night); ; +- scm_c_define_gsubr (s_fog, 0, 1, 0, (SCM (*)()) fog); ; +- scm_c_define_gsubr (s_thick_fog, 0, 0, 0, (SCM (*)()) thick_fog); ; +- scm_c_define_gsubr (s_fog_color, 3, 0, 0, (SCM (*)()) fog_color); ; +- scm_c_define_gsubr (s_set_bonus_level, 1, 0, 0, (SCM (*)()) set_bonus_level); ; +- scm_c_define_gsubr (s_set_track_name, 1, 0, 0, (SCM (*)()) set_track_name); ; +- scm_c_define_gsubr (s_set_author, 1, 0, 0, (SCM (*)()) set_author); ; +- scm_c_define_gsubr (s_start_time, 1, 0, 0, (SCM (*)()) start_time); ; +- scm_c_define_gsubr (s_set_time, 1, 0, 0, (SCM (*)()) set_time); ; +- scm_c_define_gsubr (s_get_time, 0, 0, 0, (SCM (*)()) get_time); ; +- scm_c_define_gsubr (s_add_time, 1, 0, 0, (SCM (*)()) add_time); ; +- scm_c_define_gsubr (s_set_score, 1, 0, 0, (SCM (*)()) set_score); ; +- scm_c_define_gsubr (s_get_score, 0, 0, 0, (SCM (*)()) get_score); ; +- scm_c_define_gsubr (s_add_score, 1, 0, 0, (SCM (*)()) add_score); ; +- scm_c_define_gsubr (s_set_start_position, 2, 0, 0, (SCM (*)()) set_start_position); ; +- scm_c_define_gsubr (s_snow, 1, 0, 0, (SCM (*)()) snow); ; +- scm_c_define_gsubr (s_rain, 1, 0, 0, (SCM (*)()) rain); ; +- scm_c_define_gsubr (s_difficulty, 0, 0, 0, (SCM (*)()) difficulty); ; +- scm_c_define_gsubr (s_use_grid, 1, 0, 0, (SCM (*)()) use_grid); ; +- scm_c_define_gsubr (s_map_is_transparent, 1, 0, 0, (SCM (*)()) map_is_transparent); ; +- scm_c_define_gsubr (s_jump, 1, 0, 0, (SCM (*)()) jump); ; +- scm_c_define_gsubr (s_scale_oxygen, 1, 0, 0, (SCM (*)()) scale_oxygen); ; +- scm_c_define_gsubr (s_set_cell_flag, 6, 0, 0, (SCM (*)()) set_cell_flag); ; +- scm_c_define_gsubr (s_set_cell_velocity, 6, 0, 0, (SCM (*)()) set_cell_velocity); ; +- scm_c_define_gsubr (s_set_cell_heights, 8, 1, 0, (SCM (*)()) set_cell_heights); ; +- scm_c_define_gsubr (s_set_cell_water_heights, 8, 1, 0, (SCM (*)()) set_cell_water_heights); ; +- scm_c_define_gsubr (s_set_cell_colors, 8, 1, 0, (SCM (*)()) set_cell_colors); ; +- scm_c_define_gsubr (s_set_cell_wall_colors, 8, 1, 0, (SCM (*)()) set_cell_wall_colors); ; +- scm_c_define_gsubr (s_play_effect, 1, 0, 0, (SCM (*)()) play_effect); ; +- scm_c_define_gsubr (s_camera_angle, 2, 0, 0, (SCM (*)()) camera_angle); ; +- scm_c_define_gsubr (s_restart_time, 1, 0, 0, (SCM (*)()) restart_time); ; +- scm_c_define_gsubr (s_clear_song_preferences, 0, 0, 0, (SCM (*)()) clear_song_preferences); ; +- scm_c_define_gsubr (s_force_next_song, 0, 0, 0, (SCM (*)()) force_next_song); ; +- scm_c_define_gsubr (s_set_song_preference, 2, 0, 0, (SCM (*)()) set_song_preference); ; +- scm_c_define_gsubr (s_trigger, 4, 0, 0, (SCM (*)()) trigger); ; +- scm_c_define_gsubr (s_smart_trigger, 5, 0, 0, (SCM (*)()) smart_trigger); ; +- scm_c_define_gsubr (s_on_event, 3, 0, 0, (SCM (*)()) on_event); ; +- scm_c_define_gsubr (s_get_event_callback, 2, 0, 0, (SCM (*)()) get_event_callback); ; ++ scm_c_define_gsubr (s_player, 0, 0, 0, (void *) player); ; ++ scm_c_define_gsubr (s_new_mr_black, 2, 0, 0, (void *) new_mr_black); ; ++ scm_c_define_gsubr (s_new_baby, 2, 0, 0, (void *) new_baby); ; ++ scm_c_define_gsubr (s_add_teleport, 5, 0, 0, (void *) add_teleport); ; ++ scm_c_define_gsubr (s_add_bird, 6, 0, 0, (void *) add_bird); ; ++ scm_c_define_gsubr (s_add_flag, 5, 0, 0, (void *) add_flag); ; ++ scm_c_define_gsubr (s_add_colormodifier, 7, 0, 0, (void *) add_colormodifier); ; ++ scm_c_define_gsubr (s_add_heightmodifier, 7, 3, 0, (void *) add_heightmodifier); ; ++ scm_c_define_gsubr (s_add_cactus, 3, 0, 0, (void *) add_cactus); ; ++ scm_c_define_gsubr (s_add_spike, 4, 0, 0, (void *) add_spike); ; ++ scm_c_define_gsubr (s_add_sidespike, 5, 0, 0, (void *) add_sidespike); ; ++ scm_c_define_gsubr (s_add_goal, 4, 0, 0, (void *) add_goal); ; ++ scm_c_define_gsubr (s_sign, 6, 1, 0, (void *) sign); ; ++ scm_c_define_gsubr (s_add_modpill, 5, 0, 0, (void *) add_modpill); ; ++ scm_c_define_gsubr (s_forcefield, 8, 0, 0, (void *) forcefield); ; ++ scm_c_define_gsubr (s_fun_switch, 4, 0, 0, (void *) fun_switch); ; ++ scm_c_define_gsubr (s_new_pipe, 7, 0, 0, (void *) new_pipe); ; ++ scm_c_define_gsubr (s_pipe_connector, 4, 0, 0, (void *) pipe_connector); ; ++ scm_c_define_gsubr (s_diamond, 2, 1, 0, (void *) diamond); ; ++ scm_c_define_gsubr (s_fountain, 6, 0, 0, (void *) fountain); ; ++ scm_c_define_gsubr (s_set_position, 3, 1, 0, (void *) set_position); ; ++ scm_c_define_gsubr (s_get_position_x, 1, 0, 0, (void *) get_position_x); ; ++ scm_c_define_gsubr (s_get_position_y, 1, 0, 0, (void *) get_position_y); ; ++ scm_c_define_gsubr (s_get_position_z, 1, 0, 0, (void *) get_position_z); ; ++ scm_c_define_gsubr (s_set_modtime, 3, 0, 0, (void *) set_modtime); ; ++ scm_c_define_gsubr (s_set_acceleration, 2, 0, 0, (void *) set_acceleration); ; ++ scm_c_define_gsubr (s_set_horizon, 2, 0, 0, (void *) set_horizon); ; ++ scm_c_define_gsubr (s_set_primary_color, 4, 1, 0, (void *) set_primary_color); ; ++ scm_c_define_gsubr (s_set_secondary_color, 4, 1, 0, (void *) set_secondary_color); ; ++ scm_c_define_gsubr (s_set_specular_color, 4, 1, 0, (void *) set_specular_color); ; ++ scm_c_define_gsubr (s_set_flag, 3, 0, 0, (void *) set_flag); ; ++ scm_c_define_gsubr (s_set_wind, 3, 0, 0, (void *) set_wind); ; ++ scm_c_define_gsubr (s_set_speed, 2, 0, 0, (void *) set_speed); ; ++ scm_c_define_gsubr (s_set_texture, 2, 0, 0, (void *) set_texture); ; ++ scm_c_define_gsubr (s_set_fountain_strength, 2, 0, 0, (void *) set_fountain_strength); ; ++ scm_c_define_gsubr (s_set_fountain_velocity, 4, 0, 0, (void *) set_fountain_velocity); ; ++ scm_c_define_gsubr (s_score_on_death, 2, 0, 0, (void *) score_on_death); ; ++ scm_c_define_gsubr (s_time_on_death, 2, 0, 0, (void *) time_on_death); ; ++ scm_c_define_gsubr (s_default_on_death, 3, 0, 0, (void *) default_on_death); ; ++ scm_c_define_gsubr (s_add_cyclic_platform, 8, 0, 0, (void *) add_cyclic_platform); ; ++ scm_c_define_gsubr (s_animator, 7, 0, 0, (void *) animator); ; ++ scm_c_define_gsubr (s_set_onoff, 2, 0, 0, (void *) set_onoff); ; ++ scm_c_define_gsubr (s_animator_value, 1, 0, 0, (void *) animator_value); ; ++ scm_c_define_gsubr (s_set_animator_direction, 2, 0, 0, (void *) set_animator_direction); ; ++ scm_c_define_gsubr (s_set_animator_position, 2, 0, 0, (void *) set_animator_position); ; ++ scm_c_define_gsubr (s_day, 0, 0, 0, (void *) day); ; ++ scm_c_define_gsubr (s_night, 0, 0, 0, (void *) night); ; ++ scm_c_define_gsubr (s_fog, 0, 1, 0, (void *) fog); ; ++ scm_c_define_gsubr (s_thick_fog, 0, 0, 0, (void *) thick_fog); ; ++ scm_c_define_gsubr (s_fog_color, 3, 0, 0, (void *) fog_color); ; ++ scm_c_define_gsubr (s_set_bonus_level, 1, 0, 0, (void *) set_bonus_level); ; ++ scm_c_define_gsubr (s_set_track_name, 1, 0, 0, (void *) set_track_name); ; ++ scm_c_define_gsubr (s_set_author, 1, 0, 0, (void *) set_author); ; ++ scm_c_define_gsubr (s_start_time, 1, 0, 0, (void *) start_time); ; ++ scm_c_define_gsubr (s_set_time, 1, 0, 0, (void *) set_time); ; ++ scm_c_define_gsubr (s_get_time, 0, 0, 0, (void *) get_time); ; ++ scm_c_define_gsubr (s_add_time, 1, 0, 0, (void *) add_time); ; ++ scm_c_define_gsubr (s_set_score, 1, 0, 0, (void *) set_score); ; ++ scm_c_define_gsubr (s_get_score, 0, 0, 0, (void *) get_score); ; ++ scm_c_define_gsubr (s_add_score, 1, 0, 0, (void *) add_score); ; ++ scm_c_define_gsubr (s_set_start_position, 2, 0, 0, (void *) set_start_position); ; ++ scm_c_define_gsubr (s_snow, 1, 0, 0, (void *) snow); ; ++ scm_c_define_gsubr (s_rain, 1, 0, 0, (void *) rain); ; ++ scm_c_define_gsubr (s_difficulty, 0, 0, 0, (void *) difficulty); ; ++ scm_c_define_gsubr (s_use_grid, 1, 0, 0, (void *) use_grid); ; ++ scm_c_define_gsubr (s_map_is_transparent, 1, 0, 0, (void *) map_is_transparent); ; ++ scm_c_define_gsubr (s_jump, 1, 0, 0, (void *) jump); ; ++ scm_c_define_gsubr (s_scale_oxygen, 1, 0, 0, (void *) scale_oxygen); ; ++ scm_c_define_gsubr (s_set_cell_flag, 6, 0, 0, (void *) set_cell_flag); ; ++ scm_c_define_gsubr (s_set_cell_velocity, 6, 0, 0, (void *) set_cell_velocity); ; ++ scm_c_define_gsubr (s_set_cell_heights, 8, 1, 0, (void *) set_cell_heights); ; ++ scm_c_define_gsubr (s_set_cell_water_heights, 8, 1, 0, (void *) set_cell_water_heights); ; ++ scm_c_define_gsubr (s_set_cell_colors, 8, 1, 0, (void *) set_cell_colors); ; ++ scm_c_define_gsubr (s_set_cell_wall_colors, 8, 1, 0, (void *) set_cell_wall_colors); ; ++ scm_c_define_gsubr (s_play_effect, 1, 0, 0, (void *) play_effect); ; ++ scm_c_define_gsubr (s_camera_angle, 2, 0, 0, (void *) camera_angle); ; ++ scm_c_define_gsubr (s_restart_time, 1, 0, 0, (void *) restart_time); ; ++ scm_c_define_gsubr (s_clear_song_preferences, 0, 0, 0, (void *) clear_song_preferences); ; ++ scm_c_define_gsubr (s_force_next_song, 0, 0, 0, (void *) force_next_song); ; ++ scm_c_define_gsubr (s_set_song_preference, 2, 0, 0, (void *) set_song_preference); ; ++ scm_c_define_gsubr (s_trigger, 4, 0, 0, (void *) trigger); ; ++ scm_c_define_gsubr (s_smart_trigger, 5, 0, 0, (void *) smart_trigger); ; ++ scm_c_define_gsubr (s_on_event, 3, 0, 0, (void *) on_event); ; ++ scm_c_define_gsubr (s_get_event_callback, 2, 0, 0, (void *) get_event_callback); ; + s_mod_speed = scm_permanent_object (scm_c_define ("*mod-speed*", scm_long2num(0))); ; + s_mod_jump = scm_permanent_object (scm_c_define ("*mod-jump*", scm_long2num(1))); ; + s_mod_spike = scm_permanent_object (scm_c_define ("*mod-spike*", scm_long2num(2))); ; +--- trackballs-1.1.4/src/guile.h 2007-05-17 17:09:28.000000000 +0200 ++++ trackballs-1.1.4.new/src/guile.h 2011-05-18 12:46:26.197253216 +0200 +@@ -21,7 +21,6 @@ + #ifndef GUILE_H + #define GUILE_H + +-#include + #include + + void initGuileInterface(); +diff -up trackballs-1.1.4/share/levels/fourSeasons_2.scm~ trackballs-1.1.4/share/levels/fourSeasons_2.scm +--- trackballs-1.1.4/share/levels/fourSeasons_2.scm~ 2004-02-08 21:21:36.000000000 +0100 ++++ trackballs-1.1.4/share/levels/fourSeasons_2.scm 2011-05-18 14:40:43.959255037 +0200 +@@ -23,7 +23,7 @@ + + + (if (> (difficulty) *easy*) +- (begin ++ (let () + (define enemy-1 (new-mr-black 198.5 175.5)) + (if (= (difficulty) *hard*) (set-modtime enemy-1 *mod-spike* -1.)) + (set-acceleration enemy-1 2.0) +diff -up trackballs-1.1.4/share/levels/frg5.scm~ trackballs-1.1.4/share/levels/frg5.scm +--- trackballs-1.1.4/share/levels/frg5.scm~ 2006-10-18 19:59:14.000000000 +0200 ++++ trackballs-1.1.4/share/levels/frg5.scm 2011-05-18 14:47:09.175255141 +0200 +@@ -26,16 +26,11 @@ + + (diamond 190.0 182.0) + ++(define speed .3) + (cond +- ((= (difficulty) *easy*) +- (define speed .4) +- ) +- ((= (difficulty) *normal*) +- (define speed .3) +- ) +- ((= (difficulty) *hard*) +- (define speed .2) +- ) ++ ((= (difficulty) *easy*) (set! speed .4)) ++ ((= (difficulty) *normal*) (set! speed .3)) ++ ((= (difficulty) *hard*) (set! speed .2)) + ) + + (add-cyclic-platform 204 191 204 191 4.9 6.4 1. speed) +diff -up trackballs-1.1.4/share/levels/frg9.scm~ trackballs-1.1.4/share/levels/frg9.scm +--- trackballs-1.1.4/share/levels/frg9.scm~ 2006-10-30 21:23:38.000000000 +0100 ++++ trackballs-1.1.4/share/levels/frg9.scm 2011-05-18 14:47:04.903255137 +0200 +@@ -65,16 +65,11 @@ + (add-flag 208 219 30 0 1.5) + (add-flag 209 216 30 0 1.5) + ++(define speed .4) + (cond +- ((= (difficulty) *easy*) +- (define speed .6) +- ) +- ((= (difficulty) *normal*) +- (define speed .4) +- ) +- ((= (difficulty) *hard*) +- (define speed .2) +- ) ++ ((= (difficulty) *easy*) (set! speed .6)) ++ ((= (difficulty) *normal*) (set! speed .4)) ++ ((= (difficulty) *hard*) (set! speed .2)) + ) + + (add-cyclic-platform 220 238 220 238 3.0 5.0 1. speed) +diff -up trackballs-1.1.4/share/levels/hxtst.scm~ trackballs-1.1.4/share/levels/hxtst.scm +--- trackballs-1.1.4/share/levels/hxtst.scm~ 2003-03-29 23:59:44.000000000 +0100 ++++ trackballs-1.1.4/share/levels/hxtst.scm 2011-05-18 14:41:57.399255057 +0200 +@@ -26,7 +26,7 @@ + + ;; This would create a forcefield and a switch turning it on/off + (if (= (difficulty) *hard*) +- (begin ++ (let () + (define ff (forcefield 251.5 250.5 0.0 + 2.0 0.0 0.0 + 0.5 *ff-kill*)) +diff -up trackballs-1.1.4/share/levels/lv1.scm~ trackballs-1.1.4/share/levels/lv1.scm +--- trackballs-1.1.4/share/levels/lv1.scm~ 2007-05-25 16:58:49.000000000 +0200 ++++ trackballs-1.1.4/share/levels/lv1.scm 2011-05-18 14:37:40.552254989 +0200 +@@ -39,7 +39,7 @@ + + ;; This creates a forcefield and a switch turning it on/off + (if (= (difficulty) *hard*) +- (begin ++ (let () + (define ff (forcefield 251.5 250.5 0.0 + 2.0 0.0 0.0 + 0.5 *ff-kill*)) +diff -up trackballs-1.1.4/src/mmad.cc~ trackballs-1.1.4/src/mmad.cc +--- trackballs-1.1.4/src/mmad.cc~ 2011-05-18 12:58:04.000000000 +0200 ++++ trackballs-1.1.4/src/mmad.cc 2011-05-18 14:54:00.999255250 +0200 +@@ -38,6 +38,7 @@ char *SHARE_DIR_DEFAULT=SHARE_DIR; + #include "hofMode.h" + #include + #include ++#include + #include + #include + #include +@@ -554,6 +555,9 @@ int main(int argc,char **argv) { + char guileLoadPath[256+16];/*longest effective share directory plus"GUILE_LOAD_PATH="*/ + program_name = argv[0]; + ++ /* Disable guile deprecated warning, unless explicitly requested */ ++ setenv("GUILE_WARN_DEPRECATED", "no", 0); ++ + /*** Autmatic detection of SHARE_DIR ***/ + effectiveShareDir[0]=0; + /* From environment variable */ diff --git a/games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch b/games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch new file mode 100644 index 0000000000..21c9a58c20 --- /dev/null +++ b/games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch @@ -0,0 +1,117 @@ +diff -up trackballs-1.1.4/src/gameMode.cc~ trackballs-1.1.4/src/gameMode.cc +--- trackballs-1.1.4/src/gameMode.cc~ 2006-08-06 14:01:39.000000000 +0200 ++++ trackballs-1.1.4/src/gameMode.cc 2011-05-18 15:51:03.320256212 +0200 +@@ -26,9 +26,8 @@ using namespace std; + + GameMode *GameMode::current; + +-GameMode::GameMode() { keyUpReceived=1; } +-GameMode::~GameMode() { +-} ++GameMode::GameMode() {} ++GameMode::~GameMode() {} + void GameMode::activate(GameMode* gm) { + if(current) current->deactivated(); + current = gm; +@@ -36,7 +35,6 @@ void GameMode::activate(GameMode* gm) { + } + void GameMode::display(){} + void GameMode::key(int){} +-void GameMode::keyUp(int){ keyUpReceived=1; } + void GameMode::special(int key,int x,int y){} + void GameMode::idle(Real td){} + void GameMode::mouse(int state,int x,int y){} +diff -up trackballs-1.1.4/src/gameMode.h~ trackballs-1.1.4/src/gameMode.h +--- trackballs-1.1.4/src/gameMode.h~ 2006-08-06 14:01:20.000000000 +0200 ++++ trackballs-1.1.4/src/gameMode.h 2011-05-18 15:49:50.760256145 +0200 +@@ -33,7 +33,6 @@ class GameMode { + + virtual void display(); + virtual void key(int); +- virtual void keyUp(int); + virtual void special(int,int,int); + virtual void idle(Real dt); + virtual void doExpensiveComputations(); +@@ -44,9 +43,6 @@ class GameMode { + + static void activate(GameMode*); + static GameMode *current; +- protected: +- int keyUpReceived; +- private: + }; + + #endif +diff -up trackballs-1.1.4/src/mainMode.cc~ trackballs-1.1.4/src/mainMode.cc +--- trackballs-1.1.4/src/mainMode.cc~ 2007-05-25 12:23:50.000000000 +0200 ++++ trackballs-1.1.4/src/mainMode.cc 2011-05-18 15:45:44.458256059 +0200 +@@ -464,11 +464,6 @@ void MainMode::activated() { + camFocus[1] = Game::current->map->startPosition[1] - 5; + time = 0.0; + flash = 0.0; +- +- /* Fix for an apparanet bug in my SDL + Xorg combination... */ +- SDL_WM_ToggleFullScreen(screen); +- SDL_WM_ToggleFullScreen(screen); +- + } + void MainMode::deactivated() { free(viewportData); viewportData=NULL; } + void MainMode::playerLoose() { Game::current->gamer->playerLoose(); gameStatus=statusGameOver; } +diff -up trackballs-1.1.4/src/mmad.cc~ trackballs-1.1.4/src/mmad.cc +--- trackballs-1.1.4/src/mmad.cc~ 2011-05-18 14:55:38.000000000 +0200 ++++ trackballs-1.1.4/src/mmad.cc 2011-05-18 16:11:33.817256492 +0200 +@@ -411,7 +411,6 @@ void innerMain(void *closure,int argc,ch + /* Initialize random number generator */ + int seed=(int) getSystemTime(); + srand(seed); +- int keyUpReceived=1; + + while(is_running) { + +@@ -469,9 +468,6 @@ void innerMain(void *closure,int argc,ch + if(GameMode::current) GameMode::current->mouseDown(e->button,e->x,e->y); + break; + case SDL_KEYUP: +- /* Prevent repeated keys */ +- keyUpReceived=1; +- + /* Use Caps lock key to determine if mouse should be hidden+grabbed */ + if(event.key.keysym.sym == SDLK_CAPSLOCK) { + if(SDL_GetModState() & KMOD_CAPS) { +@@ -481,12 +477,12 @@ void innerMain(void *closure,int argc,ch + SDL_WM_GrabInput(SDL_GRAB_ON); + SDL_ShowCursor(SDL_DISABLE); + } +- } else +- GameMode::current->keyUp(event.key.keysym.sym); ++ } ++ break; + case SDL_KEYDOWN: +- + /* Always quit if the 'q' key is pressed */ +- if(event.key.keysym.sym == 'q' && SDL_GetModState() & KMOD_CTRL) exit(0); ++ if(event.key.keysym.sym == 'q' && SDL_GetModState() & KMOD_CTRL) ++ exit(0); + + /* Change between fullscreen/windowed mode if the 'f' key + is pressed */ +@@ -525,14 +521,13 @@ void innerMain(void *closure,int argc,ch + ((EditMode*)GameMode::current)->askQuit(); + } else if((GameMode::current && GameMode::current == MenuMode::menuMode)) + is_running=0; +- else { GameMode::activate(MenuMode::menuMode); while(SDL_PollEvent(&event)) {} } +- ++ else { ++ GameMode::activate(MenuMode::menuMode); ++ while(SDL_PollEvent(&event)) {} ++ } + } +- else if(GameMode::current) { +- /* Prevent repeated keys */ +- if(!keyUpReceived) break; +- keyUpReceived=0; + ++ else if(GameMode::current) { + GameMode::current->key(event.key.keysym.sym); + } + diff --git a/games/trackballs/trackballs.SlackBuild b/games/trackballs/trackballs.SlackBuild index 2be097e496..4dfee298a7 100644 --- a/games/trackballs/trackballs.SlackBuild +++ b/games/trackballs/trackballs.SlackBuild @@ -8,7 +8,7 @@ PRGNAM=trackballs VERSION=${VERSION:-1.1.4} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} # Automatically determine the architecture we're building on: @@ -58,6 +58,10 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Apply two patches from redhat: one to fix building and running with guile-2.0.x, +# another to fix "Esc" behaviour +for i in $CWD/patches/* ; do patch -p1 < $i ; done + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ -- cgit v1.2.3-65-gdbad