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>
This commit is contained in:
B. Watson 2020-10-24 20:58:16 -04:00 committed by Willy Sudiarto Raharjo
parent b1045b8fd5
commit 2b3bc29612
No known key found for this signature in database
GPG key ID: 3F617144D7238786
7 changed files with 41 additions and 555 deletions

View file

@ -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
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 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.
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).

View file

@ -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;

View file

@ -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 */

View file

@ -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);
}

View file

@ -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:

View file

@ -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 {} \;
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -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
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}

View file

@ -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"