summaryrefslogtreecommitdiff
path: root/games/trackballs
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2020-10-24 20:58:16 -0400
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2020-10-31 11:15:36 +0700
commit2b3bc29612de1037176c6decf85b229ffb46d92c (patch)
treec1ed5e3315d76d765ed5c9e34ab832ef455ecbd7 /games/trackballs
parentb1045b8fd5c896741e96cd172e21727d4f6b13c0 (diff)
downloadslackbuilds-2b3bc29612de1037176c6decf85b229ffb46d92c.tar.gz
games/trackballs: Updated for version 1.3.1.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/trackballs')
-rw-r--r--games/trackballs/README26
-rw-r--r--games/trackballs/patches/abs.diff22
-rw-r--r--games/trackballs/patches/trackballs-1.1.4-guile20.patch310
-rw-r--r--games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch117
-rw-r--r--games/trackballs/slack-desc10
-rw-r--r--games/trackballs/trackballs.SlackBuild103
-rw-r--r--games/trackballs/trackballs.info10
7 files changed, 42 insertions, 556 deletions
diff --git a/games/trackballs/README b/games/trackballs/README
index 497414136d..9c19f1b577 100644
--- a/games/trackballs/README
+++ b/games/trackballs/README
@@ -1,23 +1,17 @@
-Trackballs is a marble game inspired by the 80s Atari classic Marble
-Madness.
+trackballs (3d marble game)
+
+Trackballs is a game inspired by the 80s Atari classic Marble Madness.
By steering a marble ball through a labyrinth filled with sharp objects,
pools of acid, and other obstacles, the player collects points. When
the destination is reached you continue on to the next, more difficult
level... unless the time runs out.
-This Slackware package can include the music and/or extra levels available
-at the trackballs home page: http://trackballs.sourceforge.net
-
-To add the music, download the file "trackballs-music-1.4.tar.bz2"
-and save it in the same directory as the SlackBuild script. If using
-a newer version of the music than 1.4, set MUSICVER in the environment
-before running trackballs.SlackBuild.
+The music and extra levels from older versions of trackballs are
+now included in the package, so you don't have to download them
+separately.
-To add extra levels, download the level collections you want and place
-them in the levels/ subdirectory before running trackballs.SlackBuild. The
-script can handle levels in tar or zip format. Note that some of the
-add-on levels offered on the web site are now included with the game
-source (specificallly, "Box O' Fun", "Child of Tales", and "Castles"
-are part of the main game now, and don't need to be added). Also note
-that the "Six Levels" pack doesn't work with this version of the game.
+Note: I didn't update this for many years, because newer releases
+require newer video hardware (with OpenGL 3.3 support). If you're
+unable to run the game because of old hardware, let me know (email
+address in the .info file).
diff --git a/games/trackballs/patches/abs.diff b/games/trackballs/patches/abs.diff
deleted file mode 100644
index 597971906d..0000000000
--- a/games/trackballs/patches/abs.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Naur trackballs-1.1.4/src/glHelp.cc trackballs-1.1.4.patched/src/glHelp.cc
---- trackballs-1.1.4/src/glHelp.cc 2007-04-07 09:15:09.000000000 -0400
-+++ trackballs-1.1.4.patched/src/glHelp.cc 2017-06-21 11:58:32.035646783 -0400
-@@ -129,7 +129,6 @@
- // why is this removed? should it not be done???
- glDeleteTextures(1,&texture);
- }
--inline Real abs(Real v) {return v>0.0?v:-v;}
- double mousePointerPhase=0.0;
-
- void tickMouse(Real td) {
-diff -Naur trackballs-1.1.4/src/menuMode.cc trackballs-1.1.4.patched/src/menuMode.cc
---- trackballs-1.1.4/src/menuMode.cc 2007-04-07 09:16:26.000000000 -0400
-+++ trackballs-1.1.4.patched/src/menuMode.cc 2017-06-21 11:58:36.201646790 -0400
-@@ -163,7 +163,6 @@
- case MENU_EDITOR: GameMode::activate(EditMode::editMode); break;
- }
- }
--inline Real abs(Real v) {return v>0.0?v:-v;}
-
- void MenuMode::idle(Real td) {
- int w,h,i,x,y;
diff --git a/games/trackballs/patches/trackballs-1.1.4-guile20.patch b/games/trackballs/patches/trackballs-1.1.4-guile20.patch
deleted file mode 100644
index 79a9174ce0..0000000000
--- a/games/trackballs/patches/trackballs-1.1.4-guile20.patch
+++ /dev/null
@@ -1,310 +0,0 @@
---- 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 <guile/gh.h>
- #include <libguile.h>
-
- 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 <SDL/SDL_image.h>
- #include <unistd.h>
-+#include <stdlib.h>
- #include <settingsMode.h>
- #include <settings.h>
- #include <setupMode.h>
-@@ -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
deleted file mode 100644
index 21c9a58c20..0000000000
--- a/games/trackballs/patches/trackballs-1.1.4-remove-old-sdl-workarounds.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-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/slack-desc b/games/trackballs/slack-desc
index 95df12983a..392c4ea247 100644
--- a/games/trackballs/slack-desc
+++ b/games/trackballs/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-trackballs: trackballs (marble game)
+trackballs: trackballs (3d marble game)
trackballs:
-trackballs: Trackballs is a marble game inspired by the 80s Atari classic
-trackballs: Marble Madness.
+trackballs: Trackballs is a game inspired by the 80s Atari classic Marble Madness.
trackballs:
trackballs: By steering a marble ball through a labyrinth filled with sharp
trackballs: objects, pools of acid, and other obstacles, the player collects
-trackballs: points. When the destination is reached you continue on to the
-trackballs: next, more difficult level... unless the time runs out.
+trackballs: points. When the destination is reached you continue on to the next,
+trackballs: more difficult level... unless the time runs out.
+trackballs:
trackballs:
trackballs:
diff --git a/games/trackballs/trackballs.SlackBuild b/games/trackballs/trackballs.SlackBuild
index 810a670593..280d2adc21 100644
--- a/games/trackballs/trackballs.SlackBuild
+++ b/games/trackballs/trackballs.SlackBuild
@@ -6,11 +6,12 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20201024 bkw: update for v1.3.1
# 20170621 bkw: fix build on -current
PRGNAM=trackballs
-VERSION=${VERSION:-1.1.4}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-1.3.1}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -52,43 +53,31 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -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. Also abs.diff, which fixes the build for
-# gcc 7 from -current.
-for i in $CWD/patches/* ; do patch -p1 < $i ; done
-
-# Make icons honor DESTDIR (thanks to Johannes for this fix)
-sed -i 's/ $(iconsdir)/ $(DESTDIR)$(iconsdir)/g' share/icons/Makefile.in
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --build=$ARCH-slackware-linux
-
-make
-make install-strip DESTDIR=$PKG
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+mkdir -p build
+cd build
+ cmake \
+ -DTRACKBALLS_BIN_DIR=/usr/games \
+ -DTRACKBALLS_MAN_DIR=/usr/man \
+ -DTRACKBALLS_DOC_DIR=/usr/doc/$PRGNAM-$VERSION \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ ..
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
+cd ..
gzip $PKG/usr/man/man6/$PRGNAM.6
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
-cp -a README AUTHORS COPYING ChangeLog FAQ TODO $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a docs/*.html $PKG/usr/doc/$PRGNAM-$VERSION/html
+cp -a README* AUTHORS* COPYING* FAQ* TODO* NEWS* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-mkdir -p $PKG/usr/share/applications
-cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
-
+# Compatibility icon for old-school window managers.
mkdir -p $PKG/usr/share/pixmaps
cat share/icons/$PRGNAM-64x64.png > $PKG/usr/share/pixmaps/$PRGNAM.png
@@ -96,53 +85,5 @@ mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
-# Include the music, if we find the music tarball
-MUSICFILE=$CWD/$PRGNAM-music-${MUSICVER}.tar.${MUSICEXT}
-if [ -e "$MUSICFILE" ]; then
- tar xvf "$MUSICFILE"
- chown root:root $PRGNAM-music/*.ogg
- chmod 0644 $PRGNAM-music/*.ogg
- cp -a $PRGNAM-music/*.ogg $PKG/usr/share/$PRGNAM/music
- cat $PRGNAM-music/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.music
-fi
-
-# Include extra levels, if we find any. This is more complex than it
-# should need to be, but some of the level archives create a top-level
-# directory and some don't...
-levels_included=""
-if [ -e $CWD/levels/ ]; then
- for file in $CWD/levels/*; do
- found=0
- rm -rf tmplevels
- mkdir -p tmplevels
-
- case "$file" in
- *.tar.gz|*.tar.bz2)
- tar xvfzC "$file" tmplevels
- found=1
- ;;
- *.zip)
- ( cd tmplevels ; unzip "$file" )
- found=1
- ;;
- *) # break
- ;;
- esac
-
- if [ "$found" = "1" ]; then
- levels_included="$levels_included\n$( basename $file )"
- find tmplevels -type f -print0 | xargs -0 chmod 644
- find tmplevels -type f -print0 | xargs -0 chown root:root
- find tmplevels -type f -exec cp -a '{}' $PKG/usr/share/$PRGNAM/levels \;
- fi
- done
-
- if [ -n "$levels_included" ]; then
- echo -e "This package includes the following extra level packs:\n" \
- "$levels_included" > \
- $PKG/usr/doc/$PRGNAM-$VERSION/README.extra_levels
- fi
-fi
-
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/games/trackballs/trackballs.info b/games/trackballs/trackballs.info
index c51e5bd3ef..df581f82d3 100644
--- a/games/trackballs/trackballs.info
+++ b/games/trackballs/trackballs.info
@@ -1,10 +1,10 @@
PRGNAM="trackballs"
-VERSION="1.1.4"
-HOMEPAGE="http://trackballs.sourceforge.net"
-DOWNLOAD="http://downloads.sourceforge.net/trackballs/trackballs-1.1.4.tar.gz"
-MD5SUM="84e2e8bb68842a636da91673751279a0"
+VERSION="1.3.1"
+HOMEPAGE="https://trackballs.github.io/"
+DOWNLOAD="https://github.com/trackballs/trackballs/archive/v1.3.1/trackballs-1.3.1.tar.gz"
+MD5SUM="838ad07e30f2a819eacf268925ace093"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES=""
+REQUIRES="SDL2_mixer SDL2_image SDL2_ttf"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"