summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
authorVanilla I. Shu <vanilla@FreeBSD.org>1997-11-26 19:45:37 +0000
committerVanilla I. Shu <vanilla@FreeBSD.org>1997-11-26 19:45:37 +0000
commit7211490698d9f7564d1fe7cc61e3e163a5d9281b (patch)
treef451b915cb0b3d64d03c525f5cdc4627ea2a5012 /games
parentUpdate to 2.4 (diff)
Update to 2.4
PR: 5514
Notes
Notes: svn path=/head/; revision=8846
Diffstat (limited to 'games')
-rw-r--r--games/xboing/files/patch-aa534
-rw-r--r--games/xboing/files/patch-ab8
-rw-r--r--games/xboing/files/patch-ac107
-rw-r--r--games/xboing/files/patch-ad216
4 files changed, 585 insertions, 280 deletions
diff --git a/games/xboing/files/patch-aa b/games/xboing/files/patch-aa
index af49d035e1ae..671fe68d1275 100644
--- a/games/xboing/files/patch-aa
+++ b/games/xboing/files/patch-aa
@@ -1,78 +1,456 @@
-diff -rc /usr/ports/games/xboing/xboing/include/misc.h ./include/misc.h
-*** /usr/ports/games/xboing/xboing/include/misc.h Wed Jan 4 17:14:48 1995
---- ./include/misc.h Mon Apr 3 22:26:22 1995
-***************
-*** 87,93 ****
- int ObtainWindowWidthHeight(Display *display, Window window,
- int *width, int *height);
- void sleepSync(Display *display, unsigned long ms);
-! int usleep(unsigned long usec);
- int ObtainMousePosition(Display *display, Window window, int *x, int *y);
- int YesNoDialogue(Display *display, char *message);
- Pixmap ScalePixmap(Display *display, Window window, Pixmap source,
---- 87,93 ----
- int ObtainWindowWidthHeight(Display *display, Window window,
- int *width, int *height);
- void sleepSync(Display *display, unsigned long ms);
-! int Usleep(unsigned long usec);
- int ObtainMousePosition(Display *display, Window window, int *x, int *y);
- int YesNoDialogue(Display *display, char *message);
- Pixmap ScalePixmap(Display *display, Window window, Pixmap source,
-***************
-*** 100,106 ****
- int YesNoDialogue();
- int ObtainMousePosition();
- void sleepSync();
-! int usleep();
- int ObtainWindowWidthHeight();
- int ResizeMainWindow();
- char *GetHomeDir();
---- 100,106 ----
- int YesNoDialogue();
- int ObtainMousePosition();
- void sleepSync();
-! int Usleep();
- int ObtainWindowWidthHeight();
- int ResizeMainWindow();
- char *GetHomeDir();
-diff -rc /usr/ports/games/xboing/xboing/misc.c ./misc.c
-*** /usr/ports/games/xboing/xboing/misc.c Wed Jan 4 17:13:33 1995
---- ./misc.c Mon Apr 3 22:13:07 1995
-***************
-*** 79,87 ****
- */
-
- #if NeedFunctionPrototypes
-! int usleep(unsigned long usec)
- #else
-! int usleep(usec)
- unsigned long usec;
- #endif
- {
---- 79,87 ----
- */
-
- #if NeedFunctionPrototypes
-! int Usleep(unsigned long usec)
- #else
-! int Usleep(usec)
- unsigned long usec;
- #endif
- {
-***************
-*** 122,128 ****
- ((et.tv_usec - st.tv_usec) / 1000) );
-
- if ((ms) > ((1000 / 60) + SyncTime))
-! usleep(ms - SyncTime);
- }
-
- #if NeedFunctionPrototypes
---- 122,128 ----
- ((et.tv_usec - st.tv_usec) / 1000) );
-
- if ((ms) > ((1000 / 60) + SyncTime))
-! Usleep(ms - SyncTime);
- }
-
- #if NeedFunctionPrototypes
+--- bonus.c.orig Thu Nov 20 03:12:56 1997
++++ bonus.c Thu Nov 20 03:15:32 1997
+@@ -311,7 +311,7 @@
+ XFlush(display);
+
+ SetBonusWait(BONUS_SCORE, frame + 5);
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ DEBUG("set bonus mode to BONUS_SCORE.")
+ }
+@@ -326,7 +326,7 @@
+ {
+ DEBUG("in function DoScore() in bonus.c")
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Nice message rewarding you for your efforts */
+ strcpy(string, "Congratulations on finishing this level.");
+@@ -336,7 +336,7 @@
+
+ ypos += (35 + GAP);
+ SetBonusWait(BONUS_BONUS, frame + LINE_DELAY);
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+ DEBUG("set bonus mode to BONUS_BONUS.")
+ }
+
+@@ -387,7 +387,7 @@
+ DrawShadowCentredText(display, window, textFont,
+ string, ypos, blue, TOTAL_WIDTH);
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Now skip to the next sequence */
+ SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY);
+@@ -411,7 +411,7 @@
+ bonusScore += ComputeScore(SUPER_BONUS_SCORE);
+ DisplayScore(display, scoreWindow, bonusScore);
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Now skip to the next sequence */
+ SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY);
+@@ -454,7 +454,7 @@
+ ypos += (int) (textFont->ascent + GAP * 1.5);
+ firstTime = True;
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+ }
+ }
+
+@@ -468,7 +468,7 @@
+ {
+ int secs, theLevel;
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Get the number of seconds left on the clock */
+ secs = GetLevelTimeBonus();
+@@ -533,7 +533,7 @@
+ /* Play the sound for the super bonus */
+ if (noSound == False) playSoundFile("Doh3", 80);
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Get ready for the next sequence */
+ SetBonusWait(BONUS_TIME, frame + LINE_DELAY);
+@@ -569,7 +569,7 @@
+ SetBonusWait(BONUS_TIME, frame + LINE_DELAY);
+ ypos += (textFont->ascent + GAP/2);
+ firstTime = True;
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+ }
+ }
+
+@@ -583,7 +583,7 @@
+ {
+ int secs = 0;
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Get the number of seconds left on the clock */
+ secs = GetLevelTimeBonus();
+@@ -627,7 +627,7 @@
+ int myrank = 0;
+ char str[5];
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Obtain current ranking for this score */
+ myrank = GetHighScoreRanking(score);
+@@ -680,7 +680,7 @@
+ {
+ DEBUG("DoEndText in bonus screen.")
+
+- SetGameSpeed(SLOW_SPEED);
++ SetGameSpeed(MEDIUM_SPEED);
+
+ /* Finishing sentence - so you know what level to do */
+ sprintf(string, "Prepare for level %ld", level+1);
+--- main.c.orig Thu Nov 20 03:15:34 1997
++++ main.c Thu Nov 20 03:15:54 1997
+@@ -156,7 +156,7 @@
+
+ /* Set an entire game speedup or slowdown speed */
+ temp = (speed / (long) userDelay);
+- userDelay = delay;
++ userDelay = delay/2 + 3;
+ speed = (long) (temp * userDelay);
+ speedLevel = 10 - delay;
+ }
+--- misc.c.orig Fri Nov 22 09:28:46 1996
++++ misc.c Thu Nov 20 03:18:15 1997
+@@ -89,8 +89,8 @@
+ #ifdef SYSV
+ #ifdef __clipper__
+ struct timeval tv;
+- tv.tv_sec=((usec)/1000);
+- tv.tv_usec=(((usec)%1000)*1000);
++ tv.tv_sec=((usec)/1000000);
++ tv.tv_usec=((usec)%1000000);
+ select(1,NULL,NULL,NULL,&tv);
+ #else
+ poll((struct poll *) 0, (size_t) 0, usec / 1000); /* ms resolution */
+@@ -105,6 +105,68 @@
+ #endif
+
+ #if NeedFunctionPrototypes
++static int kudelay(unsigned long count)
++#else
++static int kudelay(count)
++unsigned long count;
++#endif
++{
++ unsigned int bluff = 1;
++
++ while( count-- != 0 ) /* this can hardly be "optimised out" */
++ bluff = (bluff ^ ((bluff & 1) * 0x6110)) >> 1;
++
++ return( bluff );
++}
++
++#if NeedFunctionPrototypes
++static void kusleep(unsigned long usec)
++#else
++static void kusleep(usec)
++ unsigned long usec;
++#endif
++{
++ static float kuliber_time = 0.0;
++ static float kuliber_count = 0.0;
++ static unsigned long kutimerswap = (1000000 / 15);
++ struct timeval st, et;
++ long gap;
++ unsigned long count;
++
++ if( kuliber_time == 0.0 )
++ {
++ count = 0x1000; /* calibrate delay loop */
++ gettimeofday(&st, NULL);
++
++ while( True )
++ {
++ kudelay( count );
++ count = (count << 1);
++ gettimeofday(&et, NULL);
++ gap = (((et.tv_sec - st.tv_sec) * 1000000) +
++ (et.tv_usec - st.tv_usec) );
++
++ if( gap > 400*1000 )
++ break;
++ }
++
++ kuliber_time = (float)(gap/4);
++ kuliber_count = (float)(((count-1)&~0xFFF)>>2);
++ }
++
++ if( usec > kutimerswap )
++ {
++ kutimerswap = (1000000 / 30);
++ usleep( usec ); /* using usleep() for low resolution only */
++ }
++ else
++ {
++ kutimerswap = (1000000 / 15);
++ kudelay( (unsigned long)(kuliber_count*((float)usec/kuliber_time)) );
++ }
++}
++
++#if NeedFunctionPrototypes
+ void sleepSync(Display *display, unsigned long ms)
+ #else
+ void sleepSync(display, ms)
+@@ -112,27 +174,85 @@
+ unsigned long ms;
+ #endif
+ {
+- struct timeval st, et;
+- long SyncTime;
+- static unsigned long accu;
++ static long Expected_time = 0;
++ static long Ref_sec = 0;
++ static long Ref_usec = 0;
++ static long Sleeping_time = 0;
++ static int PLL_filter = 0;
++ struct timeval st;
++ long elapsed;
++ long dodelay;
++ float x;
+
+- gettimeofday(&st, NULL);
+ XSync(display, False);
+- gettimeofday(&et, NULL);
+
+- SyncTime = (((et.tv_sec - st.tv_sec) * 1000) +
+- ((et.tv_usec - st.tv_usec) / 1000) );
++ gettimeofday(&st, NULL);
++
++ if( Ref_sec == 0 )
++ {
++ Ref_sec = st.tv_sec; /* take the initial reference point */
++ Ref_usec = st.tv_usec;
++ Sleeping_time = ms * 1000;
++ }
++
++ elapsed = (st.tv_sec - Ref_sec) * 1000000 + (st.tv_usec - Ref_usec);
++ dodelay = Sleeping_time;
++
++ if( PLL_filter > 0 && elapsed != 0 ) /* Phase lock loop */
++ {
++ dodelay = Expected_time + Sleeping_time - elapsed;
++
++ if( dodelay < 0 )
++ {
++ dodelay = 0; PLL_filter--;
++ }
++ else
++ if( dodelay > 2*Sleeping_time )
++ {
++ dodelay = 2*Sleeping_time; PLL_filter--;
++ }
++ else
++ PLL_filter = 3;
++
++ if( elapsed > 40*Sleeping_time && Expected_time > 40*Sleeping_time )
++ {
++ elapsed -= 20*Sleeping_time; /* Ref. point shouldn't be far away*/
++ Expected_time -= 20*Sleeping_time;
++ Ref_usec += 20*Sleeping_time;
++ Ref_sec += Ref_usec/1000000; Ref_usec %= 1000000;
++ }
++ }
+
+-/* if ((ms) > ((1000 / 60) + SyncTime))
+- usleep(ms - SyncTime);
+-*/
+- if ((ms + accu) > ((1000 / 30) + SyncTime))
++ if( PLL_filter <= 0 && elapsed > 40000 ) /* Frequency lock loop */
+ {
+- usleep(ms +accu - SyncTime);
+- accu = 0;
++ /* feedback filter */
++ x = 0.5 + 0.5 * (float)Expected_time / (float)elapsed;
++
++ if( x < 0.966 ) /* Acceleration must be strongly limited */
++ x = 0.966;
++
++ if( x > 2.0 )
++ x = 2.0;
++
++ Sleeping_time = (long)((float)Sleeping_time * x);
++
++ if( Sleeping_time < 500 )
++ Sleeping_time = 500;
++
++ if( x > 0.99 && x < 1.01 && Sleeping_time > ms*500 )
++ PLL_filter = -1 - 4*PLL_filter; /* locked - it's time to try PLL */
++ else
++ PLL_filter = 0;
++
++ Ref_sec = st.tv_sec;
++ Ref_usec = st.tv_usec;
++ Expected_time = 0;
++ dodelay = Sleeping_time;
+ }
+- else if (ms > SyncTime)
+- accu += (ms - SyncTime);
++
++ kusleep( dodelay );
++
++ Expected_time += ms * 1000;
+ }
+
+ #if NeedFunctionPrototypes
+--- presents.c.orig Thu Nov 20 03:18:42 1997
++++ presents.c Thu Nov 20 03:21:38 1997
+@@ -287,7 +287,7 @@
+ }
+ #endif
+
+- SetPresentWait(PRESENT_TEXT1, frame + 800);
++ SetPresentWait(PRESENT_TEXT1, frame + 200);
+ }
+
+ #if NeedFunctionPrototypes
+@@ -309,7 +309,7 @@
+ RenderShape(display, window, justin, justinM,
+ x, y, 285, 44, True);
+
+- SetPresentWait(PRESENT_TEXT2, frame + 300);
++ SetPresentWait(PRESENT_TEXT2, frame + 100);
+ }
+
+ #if NeedFunctionPrototypes
+@@ -331,7 +331,7 @@
+ RenderShape(display, window, kibell, kibellM,
+ x, y, 260, 40, True);
+
+- SetPresentWait(PRESENT_TEXT3, frame + 500);
++ SetPresentWait(PRESENT_TEXT3, frame + 200);
+ }
+
+ #if NeedFunctionPrototypes
+@@ -355,7 +355,7 @@
+ RenderShape(display, window, presents, presentsM,
+ x, y, 410, 44, True);
+
+- SetPresentWait(PRESENT_TEXT_CLEAR, frame + 750);
++ SetPresentWait(PRESENT_TEXT_CLEAR, frame + 250);
+ }
+
+ #if NeedFunctionPrototypes
+@@ -375,7 +375,7 @@
+
+ FadeAwayArea(display, window, x, y, 410, 44);
+
+- SetPresentWait(PRESENT_LETTERS, frame + 10);
++ SetPresentWait(PRESENT_LETTERS, frame + 5);
+ }
+
+ /* The distances for the gap inbetwen blocks */
+@@ -404,7 +404,7 @@
+ DrawLetter(display, window, i, x, y);
+ x += 10 + dists[i];
+
+- SetPresentWait(PRESENT_LETTERS, frame + 300);
++ SetPresentWait(PRESENT_LETTERS, frame + 100);
+ }
+ else
+ {
+@@ -416,7 +416,7 @@
+ x += dists[3];
+ DrawLetter(display, window, 3, x, y);
+
+- SetPresentWait(PRESENT_SHINE, frame + 200);
++ SetPresentWait(PRESENT_SHINE, frame + 100);
+ }
+
+ i++;
+@@ -463,7 +463,7 @@
+ if (in == 11)
+ {
+ XCopyArea(display, store, window, gc, 0, 0, 20, 20, x, y);
+- SetPresentWait(PRESENT_SPECIAL_TEXT1, frame + 500);
++ SetPresentWait(PRESENT_SPECIAL_TEXT1, frame + 100);
+ }
+ }
+ }
+@@ -499,7 +499,7 @@
+ len = strlen(wisdom);
+ x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) -
+ (XTextWidth(dataFont, wisdom, len) / 2);
+- nextFrame = frame + 10;
++ nextFrame = frame + 5;
+ first = False;
+ }
+
+@@ -508,11 +508,11 @@
+ if (noSound == False) playSoundFile("key", 60);
+ DrawText(display, window, x, y, dataFont, red, wisdom, i);
+
+- nextFrame = frame + 30;
++ nextFrame = frame + 15;
+
+ i++;
+ if (i > len)
+- SetPresentWait(PRESENT_SPECIAL_TEXT2, frame + 700);
++ SetPresentWait(PRESENT_SPECIAL_TEXT2, frame + 150);
+ }
+ }
+
+@@ -542,7 +542,7 @@
+ len = strlen(wisdom2);
+ x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) -
+ (XTextWidth(dataFont, wisdom2, len) / 2);
+- nextFrame = frame + 10;
++ nextFrame = frame + 5;
+ first = False;
+ }
+
+@@ -551,11 +551,11 @@
+ if (noSound == False) playSoundFile("key", 60);
+ DrawText(display, window, x, y, dataFont, red, wisdom2, i);
+
+- nextFrame = frame + 30;
++ nextFrame = frame + 15;
+
+ i++;
+ if (i > len)
+- SetPresentWait(PRESENT_SPECIAL_TEXT3, frame + 700);
++ SetPresentWait(PRESENT_SPECIAL_TEXT3, frame + 150);
+ }
+ }
+
+@@ -584,7 +584,7 @@
+ len = strlen(wisdom3);
+ x = ((PLAY_WIDTH + MAIN_WIDTH) / 2) -
+ (XTextWidth(dataFont, wisdom3, len) / 2);
+- nextFrame = frame + 10;
++ nextFrame = frame + 5;
+ first = False;
+ }
+
+@@ -593,11 +593,11 @@
+ if (noSound == False) playSoundFile("key", 60);
+ DrawText(display, window, x, y, dataFont, red, wisdom3, i);
+
+- nextFrame = frame + 30;
++ nextFrame = frame + 15;
+
+ i++;
+ if (i > len)
+- SetPresentWait(PRESENT_CLEAR, frame + 800);
++ SetPresentWait(PRESENT_CLEAR, frame + 200);
+ }
+ }
+
+@@ -642,7 +642,7 @@
+ yb -= 10;
+
+ if (yt > ((PLAY_HEIGHT + MAIN_HEIGHT) / 2))
+- SetPresentWait(PRESENT_FINISH, frame + 20);
++ SetPresentWait(PRESENT_FINISH, frame + 10);
+
+ nextFrame = frame + 20;
+ }
diff --git a/games/xboing/files/patch-ab b/games/xboing/files/patch-ab
index 6888bd8d638d..d84e20dec50a 100644
--- a/games/xboing/files/patch-ab
+++ b/games/xboing/files/patch-ab
@@ -1,7 +1,7 @@
-*** audio/LINUXaudio.c.orig Tue May 24 16:34:59 1994
---- audio/LINUXaudio.c Sun Mar 5 23:43:14 1995
+*** audio/LINUXaudio.c.orig Thu Nov 20 03:04:17 1997
+--- audio/LINUXaudio.c Thu Nov 20 03:04:31 1997
***************
-*** 38,44 ****
+*** 55,61 ****
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
@@ -9,7 +9,7 @@
#include "include/error.h"
#include "include/audio.h"
---- 38,44 ----
+--- 55,61 ----
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
diff --git a/games/xboing/files/patch-ac b/games/xboing/files/patch-ac
index 194960707fc6..463d27168004 100644
--- a/games/xboing/files/patch-ac
+++ b/games/xboing/files/patch-ac
@@ -1,64 +1,43 @@
-*** Imakefile.orig Wed Jun 1 17:11:10 1994
---- Imakefile Sun Mar 5 23:43:55 1995
-***************
-*** 5,24 ****
- XCOMM This is the directory where the highscore, level & sound data will be
- XCOMM placed. Default will be the current directory.
-
-! XBOING_DIR = .
-
- XCOMM These are some defines that must be set. Some may be overwritten in the
- XCOMM machine arch section.
-
-! XPMLIB = -L../xpm-3.4c/lib -lXpm
-! XPMINCLUDE = -I../xpm-3.4c/lib
- XBOINGINCLUDE = -I./include
- LEVEL_INSTALL_DIR = $(XBOING_DIR)/levels
- SOUNDS_DIR = $(XBOING_DIR)/sounds
- BACKUP_DIR = $(XBOING_DIR)/../backups
- HIGH_SCORE_FILE = $(XBOING_DIR)/.xboing.scr
-! AUDIO_AVAILABLE = False
-! AUDIO_SRC = audio/NOaudio.c
- AUDIO_INCLUDE =
- AUDIO_LIB =
-
---- 5,24 ----
- XCOMM This is the directory where the highscore, level & sound data will be
- XCOMM placed. Default will be the current directory.
-
-! XBOING_DIR = /usr/X11R6/lib/X11/xboing
-
- XCOMM These are some defines that must be set. Some may be overwritten in the
- XCOMM machine arch section.
-
-! XPMLIB = -lXpm
-! XPMINCLUDE = -I/usr/X11R6/include/X11
- XBOINGINCLUDE = -I./include
- LEVEL_INSTALL_DIR = $(XBOING_DIR)/levels
- SOUNDS_DIR = $(XBOING_DIR)/sounds
- BACKUP_DIR = $(XBOING_DIR)/../backups
- HIGH_SCORE_FILE = $(XBOING_DIR)/.xboing.scr
-! AUDIO_AVAILABLE = True
-! AUDIO_SRC = audio/LINUXaudio.c
- AUDIO_INCLUDE =
- AUDIO_LIB =
-
-***************
-*** 98,105 ****
- -DLEVEL_INSTALL_DIR=\"$(LEVEL_INSTALL_DIR)\" \
- -DAUDIO_AVAILABLE=\"$(AUDIO_AVAILABLE)\" \
- -DSOUNDS_DIR=\"$(SOUNDS_DIR)\" \
-! -DREADMEP_FILE=\"$(XBOING_DIR)/docs/problems.doc\"
-! XCOMM -DUSE_FLOCK=\"True\" \
- XCOMM -DNO_LOCKING=\"True\"
-
- LOCAL_LIBRARIES = $(AUDIO_LIB) $(XPMLIB) $(XLIB) -lm
---- 98,105 ----
- -DLEVEL_INSTALL_DIR=\"$(LEVEL_INSTALL_DIR)\" \
- -DAUDIO_AVAILABLE=\"$(AUDIO_AVAILABLE)\" \
- -DSOUNDS_DIR=\"$(SOUNDS_DIR)\" \
-! -DREADMEP_FILE=\"$(XBOING_DIR)/docs/problems.doc\" \
-! -DUSE_FLOCK=\"True\"
- XCOMM -DNO_LOCKING=\"True\"
-
- LOCAL_LIBRARIES = $(AUDIO_LIB) $(XPMLIB) $(XLIB) -lm
+--- Imakefile.orig Fri Nov 22 09:28:46 1996
++++ Imakefile Thu Nov 20 03:28:47 1997
+@@ -24,23 +24,23 @@
+ XCOMM This is the directory where the highscore, level & sound data will be
+ XCOMM placed. Default will be the current directory.
+
+- XBOING_DIR = .
++ XBOING_DIR = ${X11BASE}/lib/X11/xboing
+
+ XCOMM These are some defines that must be set. Some may be overwritten in the
+ XCOMM machine arch section.
+
+- XPMLIB = -L/usr/X11/lib -lXpm
+- XPMINCLUDE = -I/usr/X11/include/X11
++ XPMLIB = -lXpm
++ XPMINCLUDE = -I${X11BASE}/include/X11
+ XBOINGINCLUDE = -I./include
+ LEVEL_INSTALL_DIR = $(XBOING_DIR)/levels
+ SOUNDS_DIR = $(XBOING_DIR)/sounds
+ BACKUP_DIR = $(XBOING_DIR)/../backups
+ HIGH_SCORE_FILE = $(XBOING_DIR)/.xboing.scr
+- AUDIO_AVAILABLE = False
+- AUDIO_SRC = audio/NOaudio.c
++ AUDIO_AVAILABLE = True
++ AUDIO_SRC = audio/LINUXaudio.c
+ AUDIO_INCLUDE =
+ AUDIO_LIB =
+- CDEBUGFLAGS = -g
++ CDEBUGFLAGS = -O2 -m486 -pipe
+
+ XCOMM Uncomment this if you want to use ANY of the AUDIO sound systems
+ #define COMPILE_IN_AUDIO
+@@ -132,8 +132,8 @@
+ -DLEVEL_INSTALL_DIR=\"$(LEVEL_INSTALL_DIR)\" \
+ -DAUDIO_AVAILABLE=\"$(AUDIO_AVAILABLE)\" \
+ -DSOUNDS_DIR=\"$(SOUNDS_DIR)\" \
+- -DREADMEP_FILE=\"$(XBOING_DIR)/docs/problems.doc\"
+-XCOMM -DUSE_FLOCK=\"True\" \
++ -DREADMEP_FILE=\"$(XBOING_DIR)/docs/problems.doc\" \
++ -DUSE_FLOCK=\"True\"
+ XCOMM -DNEED_USLEEP=\"True\" \
+ XCOMM -DNO_LOCKING=\"True\"
+
diff --git a/games/xboing/files/patch-ad b/games/xboing/files/patch-ad
index 7b5d3a776810..115a3ec70534 100644
--- a/games/xboing/files/patch-ad
+++ b/games/xboing/files/patch-ad
@@ -1,134 +1,82 @@
-*** highscore.c.orig Wed Jan 4 17:13:31 1995
---- highscore.c Fri Apr 7 00:13:54 1995
-***************
-*** 54,59 ****
---- 54,60 ----
- #include <unistd.h>
- #include <time.h>
- #include <sys/param.h>
-+ #include <sys/stat.h>
- #include <netinet/in.h>
- #include <X11/Xlib.h>
- #include <X11/Xutil.h>
-***************
-*** 118,124 ****
- static void InitialiseHighScores(void);
- static void SortHighScores(void);
- static void DeleteScore(int i);
-! static int LockUnlock(int cmd);
- #else
- static int LockUnlock();
- static void DeleteScore();
---- 119,125 ----
- static void InitialiseHighScores(void);
- static void SortHighScores(void);
- static void DeleteScore(int i);
-! static int LockUnlock(int cmd, int fd);
- #else
- static int LockUnlock();
- static void DeleteScore();
-***************
-*** 839,845 ****
-
- /* Lock the file for me only */
- if (type == GLOBAL)
-! id = LockUnlock(LOCK_FILE);
-
- /* Read in the lastest scores */
- if (ReadHighScoreTable(type) == False)
---- 840,846 ----
-
- /* Lock the file for me only */
- if (type == GLOBAL)
-! id = LockUnlock(LOCK_FILE, -1);
-
- /* Read in the lastest scores */
- if (ReadHighScoreTable(type) == False)
-***************
-*** 869,875 ****
- else
- {
- /* Don't add as score is smaller */
-! return False;
- }
- }
- } /* for */
---- 870,876 ----
- else
- {
- /* Don't add as score is smaller */
-! goto doUnlock;
- }
- }
- } /* for */
-***************
-*** 891,906 ****
-
- /* Unlock the file now thanks */
- if (id != -1)
-! id = LockUnlock(UNLOCK_FILE);
-
- /* Yes - it was placed in the highscore */
- return True;
- }
- }
-
- /* Unlock the file now thanks */
- if (id != -1)
-! id = LockUnlock(UNLOCK_FILE);
-
- /* Not even a highscore - loser! */
- return False;
---- 892,908 ----
-
- /* Unlock the file now thanks */
- if (id != -1)
-! id = LockUnlock(UNLOCK_FILE, id);
-
- /* Yes - it was placed in the highscore */
- return True;
- }
- }
-
-+ doUnlock:
- /* Unlock the file now thanks */
- if (id != -1)
-! id = LockUnlock(UNLOCK_FILE, id);
-
- /* Not even a highscore - loser! */
- return False;
-***************
-*** 1178,1187 ****
- }
-
- #if NeedFunctionPrototypes
-! static int LockUnlock(int cmd)
- #else
-! static int LockUnlock(cmd)
-! int cmd;
- #endif
- {
- static int inter = -1;
---- 1180,1189 ----
- }
-
- #if NeedFunctionPrototypes
-! static int LockUnlock(int cmd, int fd)
- #else
-! static int LockUnlock(cmd, fd)
-! int cmd, fd;
- #endif
- {
- static int inter = -1;
-***************
-*** 1218,1223 ****
---- 1220,1228 ----
- /* Open the highscore file for both read & write */
- if (cmd == LOCK_FILE)
- inter = open(filename, O_CREAT | O_RDWR, 0666);
-+ else
-+ /* use old fd to unlock */
-+ inter = fd;
-
- #ifndef NO_LOCKING
-
+--- highscore.c.orig Thu Nov 20 03:07:35 1997
++++ highscore.c Thu Nov 20 03:12:23 1997
+@@ -55,6 +55,7 @@
+ #include <time.h>
+ #include <file.h>
+ #include <sys/param.h>
++#include <sys/stat.h>
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #include <X11/Xos.h>
+@@ -119,7 +120,7 @@
+ static void InitialiseHighScores(void);
+ static void SortHighScores(void);
+ static void DeleteScore(int i);
+-static int LockUnlock(int cmd);
++static int LockUnlock(int cmd, int fd);
+ #else
+ static int LockUnlock();
+ static void DeleteScore();
+@@ -844,7 +845,7 @@
+
+ /* Lock the file for me only */
+ if (type == GLOBAL)
+- id = LockUnlock(LOCK_FILE);
++ id = LockUnlock(LOCK_FILE, -1);
+
+ /* Read in the lastest scores */
+ if (ReadHighScoreTable(type) == False)
+@@ -875,8 +876,8 @@
+ {
+ /* Don't add as score is smaller */
+ if (id != -1)
+- id = LockUnlock(UNLOCK_FILE);
+- return False;
++ id = LockUnlock(UNLOCK_FILE, id);
++ goto doUnlock;
+ }
+ }
+ } /* for */
+@@ -898,16 +899,17 @@
+
+ /* Unlock the file now thanks */
+ if (id != -1)
+- id = LockUnlock(UNLOCK_FILE);
++ id = LockUnlock(UNLOCK_FILE, id);
+
+ /* Yes - it was placed in the highscore */
+ return True;
+ }
+ }
+
++doUnlock:
+ /* Unlock the file now thanks */
+ if (id != -1)
+- id = LockUnlock(UNLOCK_FILE);
++ id = LockUnlock(UNLOCK_FILE, id);
+
+ /* Not even a highscore - loser! */
+ return False;
+@@ -1185,10 +1187,10 @@
+ }
+
+ #if NeedFunctionPrototypes
+-static int LockUnlock(int cmd)
++static int LockUnlock(int cmd, int fd)
+ #else
+ static int LockUnlock(cmd)
+- int cmd;
++ int cmd, fd;
+ #endif
+ {
+ static int inter = -1;
+@@ -1225,6 +1227,9 @@
+ /* Open the highscore file for both read & write */
+ if (cmd == LOCK_FILE)
+ inter = open(filename, O_CREAT | O_RDWR, 0666);
++ else
++ /* use old fd to unlock */
++ inter = fd;
+
+ #ifndef NO_LOCKING
+