moon-buggy/moon-buggy-1.0.51-sound.patch

262 lines
8.3 KiB
Diff

Patch by Robert Scheck <robert@fedoraproject.org> for moon-buggy >= 1.0.51, basing
on the original, but experimental, esound-based moon-buggy sound add-on patch of
the upstream maintainer Jochen Voss <voss@seehuhn.de>. Main differences are, that
the use of autoreconf is needed, because no direct patching of configure/Makefile
is done.
I also ensured, that moon-buggy still can be played without any sound, which isn't
possible with the upstream version of the patch. Upstream enforces, once the patch
is used, that a sound card is available on the machine moon-buggy is run. If you
would like to use moon-buggy with the esd sound add-on, add the parameter '-w' or
the long form '--with-sound' when calling the moon-buggy binary.
My suggestion was sent upstream - but I think, the esd sound add-on for moon-buggy
first needs to get implemented better before such an enhancement can be done on the
upstream side.
--- moon-buggy-1.0.51/Makefile.am 2004-12-27 16:34:32.000000000 +0100
+++ moon-buggy-1.0.51/Makefile.am.sound 2009-01-03 18:44:46.000000000 +0100
@@ -2,7 +2,9 @@
# Copyright 1999, 2000, 2001 Jochen Voss
# $Id: Makefile.am 6092 2004-12-27 15:34:32Z voss $
-EXTRA_DIST = manpage.in car.img \
+SOUND_FILES = jump.wav laser.wav crash.wav
+
+EXTRA_DIST = manpage.in car.img $(SOUND_FILES) README.sound \
text2c.sed img.sed ANNOUNCE moon-buggy.lsm \
moon-buggy.png moon-buggy.xpm title.eps
DISTCLEANFILES = moon-buggy.6
@@ -14,8 +16,8 @@
game.c level.c ground.c buggy.c buggy.h laser.c meteor.c highscore.c \
realname.c queue.c vclock.c date.c persona.c signal.c keyboard.c \
terminal.c cursor.c random.c error.c xmalloc.c xstrdup.c darray.h \
- hpath.c
-moon_buggy_LDADD = @CURSES_LIBS@
+ hpath.c sound.c
+moon_buggy_LDADD = @CURSES_LIBS@ @ESD_LIBS@
info_TEXINFOS = moon-buggy.texi
man_MANS = moon-buggy.6
@@ -24,6 +26,11 @@
hpath.o: hpath.c moon-buggy.h Makefile
$(COMPILE) -DSCORE_DIR=\"$(scoredir)\" -c $<
+sounddir = @SOUND_DIR@
+sound_DATA = $(SOUND_FILES)
+sound.o: sound.c moon-buggy.h
+ $(COMPILE) -DSOUND_DIR=\"$(sounddir)\" @ESD_CFLAGS@ -c $<
+
BUILT_SOURCES = copying.h buggy.h
copying.h: COPYING text2c.sed
cd $(srcdir) && sed -f text2c.sed $(srcdir)/COPYING >$@
--- moon-buggy-1.0.51/buggy.c 2004-12-27 16:58:57.000000000 +0100
+++ moon-buggy-1.0.51/buggy.c.sound 2009-01-03 19:11:21.000000000 +0100
@@ -179,6 +179,9 @@
state = sz_sit;
start_wheel ();
crash_detected = 1;
+ if (sound_flag == 1) {
+ play_sound (mev_CRASH);
+ }
}
}
print_buggy ();
@@ -193,6 +196,9 @@
assert (state->has_ground);
remove_event (jump_handler); /* only one jump at a time */
add_event (t, jump_handler, sz_jump);
+ if (sound_flag == 1) {
+ play_sound (mev_JUMP);
+ }
}
int
@@ -215,6 +221,9 @@
state = sz_crash;
print_buggy ();
start_wheel ();
+ if (sound_flag == 1) {
+ play_sound (mev_CRASH);
+ }
return 1;
}
@@ -232,6 +241,9 @@
print_buggy ();
start_wheel ();
crash_detected = 1;
+ if (sound_flag == 1) {
+ play_sound (mev_CRASH);
+ }
return 1;
}
--- moon-buggy-1.0.51/configure.ac 2005-01-07 15:55:57.000000000 +0100
+++ moon-buggy-1.0.51/configure.ac.sound 2009-01-03 19:19:07.000000000 +0100
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_REVISION($Revision: 1.4 $)
-AC_INIT(moon-buggy, 1.0.51, voss@seehuhn.de)
+AC_INIT(moon-buggy, 1.0.51+esd, voss@seehuhn.de)
AC_CONFIG_SRCDIR([moon-buggy.h])
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(config.h)
@@ -28,6 +28,9 @@
dnl Checks for libraries.
AC_CHECK_LIB(m, modf)
+PKG_CHECK_MODULES(ESD, esound)
+AC_SUBST(ESD_CFLAGS)
+AC_SUBST(ESD_LIBS)
JV_CHECK_CURSES
dnl Checks for header files.
@@ -63,5 +66,8 @@
AM_CONDITIONAL(short_getopt, test "x$ac_cv_func_getopt_long" != xyes)
+SOUND_DIR='$(datadir)/moon-buggy/sounds/'
+AC_SUBST(SOUND_DIR)
+
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
--- moon-buggy-1.0.51/laser.c 2003-04-13 21:06:31.000000000 +0200
+++ moon-buggy-1.0.51/laser.c.sound 2009-01-03 19:13:33.000000000 +0100
@@ -108,6 +108,9 @@
DA_ADD (beam_table, struct beam *, b);
add_event (t+TICK(0.25), beam_handler, b);
adjust_score (-1);
+ if (sound_flag == 1) {
+ play_sound (mev_LASER);
+ }
}
void
--- moon-buggy-1.0.51/moon-buggy.h 2003-04-13 21:07:04.000000000 +0200
+++ moon-buggy-1.0.51/moon-buggy.h.sound 2009-01-03 19:14:25.000000000 +0100
@@ -28,6 +28,7 @@
extern WINDOW *moon, *status, *message;
extern int car_base;
+extern int sound_flag;
extern void print_message (const char *str);
extern void print_hint (const char *str);
@@ -217,4 +218,8 @@
/* from "hpath.c" */
extern const char *score_dir;
+/* from "sound.c" */
+enum event_type { mev_JUMP, mev_LASER, mev_CRASH };
+extern void play_sound (enum event_type type);
+
#endif /* FILE_MOON_BUGGY_H_SEEN */
--- moon-buggy-1.0.51/moon-buggy.info 2005-01-07 15:59:15.000000000 +0100
+++ moon-buggy-1.0.51/moon-buggy.info.sound 2009-01-03 19:15:37.000000000 +0100
@@ -32,7 +32,7 @@
dangerous craters there. Fortunately your car can jump over them!
This edition (last updated 27 December 2004) of the manual applies to
-version 1.0.51 of the program.
+version 1.0.51+esd of the program.
* Menu:
--- moon-buggy-1.0.51/stamp-vti 2006-03-19 20:25:18.000000000 +0100
+++ moon-buggy-1.0.51/stamp-vti.sound 2009-01-03 19:15:52.000000000 +0100
@@ -1,4 +1,4 @@
@set UPDATED 27 December 2004
@set UPDATED-MONTH December 2004
-@set EDITION 1.0.51
-@set VERSION 1.0.51
+@set EDITION 1.0.51+esd
+@set VERSION 1.0.51+esd
--- moon-buggy-1.0.51/version.texi 2005-01-07 15:57:00.000000000 +0100
+++ moon-buggy-1.0.51/version.texi.sound 2009-01-03 19:16:07.000000000 +0100
@@ -1,4 +1,4 @@
@set UPDATED 27 December 2004
@set UPDATED-MONTH December 2004
-@set EDITION 1.0.51
-@set VERSION 1.0.51
+@set EDITION 1.0.51+esd
+@set VERSION 1.0.51+esd
--- moon-buggy-1.0.51/main.c 2006-03-19 20:24:14.000000000 +0100
+++ moon-buggy-1.0.51/main.c.sound.c 2009-01-03 19:06:56.000000000 +0100
@@ -30,6 +30,7 @@
WINDOW *moon, *status, *message;
int car_base;
+int sound_flag = 0;
void
@@ -135,11 +136,12 @@
{ "mesg", no_argument, 0, 'm' },
{ "no-title", no_argument, 0, 'n' },
{ "show-scores", no_argument, 0, 's' },
+ { "with-sound", no_argument, 0, 'w' },
{ "version", no_argument, 0, 'V' },
{ NULL, 0, NULL, 0}
};
#endif
-#define MB_SHORT_OPTIONS "chmnsV"
+#define MB_SHORT_OPTIONS "chmnswV"
int help_flag = 0;
int highscore_flag = 0;
int title_flag = 1;
@@ -182,6 +184,9 @@
case 's':
highscore_flag = 1;
break;
+ case 'w':
+ sound_flag = 1;
+ break;
case 'V':
version_flag = 1;
break;
@@ -221,6 +226,8 @@
out);
fputs (OPT("-n","--no-title ") "omit the title screen\n", out);
fputs (OPT("-s","--show-scores ") "only show the highscore list\n", out);
+ fputs (OPT("-w","--with-sound ") "enable sound using esd feature\n",
+ out);
fputs (OPT("-V","--version ") "show the version number and exit\n\n",
out);
fputs ("Please report bugs to <voss@seehuhn.de>.\n", out);
--- moon-buggy-1.0.51/README 2004-12-27 16:51:24.000000000 +0100
+++ moon-buggy-1.0.51/README.sound 2009-01-03 20:02:52.000000000 +0100
@@ -18,6 +18,19 @@
by the command 'moon-buggy -V'.
+SOUND FEATURE:
+
+ This version of moon-buggy includes the very experimental sound add-
+on using esd. It can only be used in conjunction with moon-buggy in
+version 1.0.51. As moon-buggy should be able to run on a simple VT100
+terminal, this add-on is not part of the main moon-buggy distribution.
+
+ In Fedora, the experimental sound add-on was added more lightweight
+than upstream wrote the original patch. The parameter '-w' or the long
+form '--with-sound' can be appended when calling the moon-buggy binary.
+If no parameter is given, moon-buggy will run without any sounds.
+
+
INSTALLATION:
Moon-buggy requires the curses library as a prerequisite. If
--- moon-buggy-1.0.51/manpage.in 2004-12-27 16:58:57.000000000 +0100
+++ moon-buggy-1.0.51/manpage.in.sound 2009-01-03 21:20:43.000000000 +0100
@@ -32,6 +32,9 @@
.Op s show\-scores
shows the current highscore list and exits.
.TP
+.Op w with\-sound
+enables experimental sound add-on using esd.
+.TP
.Op V version
prints the program\'s version to standard output and exits.
.SH KEYS