Skip site navigation (1)Skip section navigation (2)
Date:      20 Nov 1997 21:02:24 -0000
From:      vanilla@MinJe.com.TW
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   ports/5114: Update xboing to 2.4
Message-ID:  <19971120210224.20076.qmail@MinJe.com.TW>
Resent-Message-ID: <199711202120.NAA08469@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         5114
>Category:       ports
>Synopsis:       Update xboing to 2.4
>Confidential:   yes
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 20 13:20:03 PST 1997
>Last-Modified:
>Originator:     Vanill I. Shu
>Organization:
Cray running FreeBSD
>Release:        FreeBSD 3.0-CURRENT i386
>Environment:

>Description:

	Update xboing to 2.4,
	add a patch from MASTER_SITE_XCONTRIB 

>How-To-Repeat:

>Fix:
	
diff -ruN xboing.orig/Makefile xboing/Makefile
--- xboing.orig/Makefile	Fri Jan  3 17:37:00 1997
+++ xboing/Makefile	Thu Nov 20 02:57:37 1997
@@ -1,12 +1,12 @@
 # New ports collection makefile for:	xboing
-# Version required:	2.3
+# Version required:	2.4
 # Date created:		31 January 1995
 # Whom:			janek
 #
 # $Id: Makefile,v 1.8 1997/01/03 09:37:00 obrien Exp $
 
-DISTNAME=	xboing2.3
-PKGNAME=	xboing-2.3
+DISTNAME=	xboing2.4
+PKGNAME=	xboing-2.4
 CATEGORIES=	games
 MASTER_SITES=	${MASTER_SITE_XCONTRIB}
 MASTER_SITE_SUBDIR=	games
diff -ruN xboing.orig/files/md5 xboing/files/md5
--- xboing.orig/files/md5	Sat Apr  8 13:06:17 1995
+++ xboing/files/md5	Thu Nov 20 03:25:34 1997
@@ -1 +1 @@
-MD5 (xboing2.3.tar.gz) = c73134a6121fdd7bc8e730114afc2ad8
+MD5 (xboing2.4.tar.gz) = d596d29e53cf0deceb18f3b646787709
diff -ruN xboing.orig/patches/patch-aa xboing/patches/patch-aa
--- xboing.orig/patches/patch-aa	Sat Apr  8 13:06:18 1995
+++ xboing/patches/patch-aa	Thu Jan  1 08:00:00 1970
@@ -1,78 +0,0 @@
-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
diff -ruN xboing.orig/patches/patch-ab xboing/patches/patch-ab
--- xboing.orig/patches/patch-ab	Mon Mar  6 16:13:36 1995
+++ xboing/patches/patch-ab	Thu Nov 20 03:26:34 1997
@@ -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 -ruN xboing.orig/patches/patch-ac xboing/patches/patch-ac
--- xboing.orig/patches/patch-ac	Sat Apr  8 13:06:19 1995
+++ xboing/patches/patch-ac	Thu Nov 20 03:29:16 1997
@@ -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 -ruN xboing.orig/patches/patch-ad xboing/patches/patch-ad
--- xboing.orig/patches/patch-ad	Sat Apr  8 13:06:20 1995
+++ xboing/patches/patch-ad	Thu Nov 20 03:33:24 1997
@@ -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
+ 
diff -ruN xboing.orig/patches/patch-ae xboing/patches/patch-ae
--- xboing.orig/patches/patch-ae	Thu Jan  1 08:00:00 1970
+++ xboing/patches/patch-ae	Thu Nov 20 03:23:54 1997
@@ -0,0 +1,456 @@
+--- 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 -ruN xboing.orig/pkg/PLIST xboing/pkg/PLIST
--- xboing.orig/pkg/PLIST	Mon Nov 18 21:58:59 1996
+++ xboing/pkg/PLIST	Thu Nov 20 03:34:57 1997
@@ -67,6 +67,21 @@
 lib/X11/xboing/levels/level63.data
 lib/X11/xboing/levels/level64.data
 lib/X11/xboing/levels/level65.data
+lib/X11/xboing/levels/level66.data
+lib/X11/xboing/levels/level67.data
+lib/X11/xboing/levels/level68.data
+lib/X11/xboing/levels/level69.data
+lib/X11/xboing/levels/level70.data
+lib/X11/xboing/levels/level71.data
+lib/X11/xboing/levels/level72.data
+lib/X11/xboing/levels/level73.data
+lib/X11/xboing/levels/level74.data
+lib/X11/xboing/levels/level75.data
+lib/X11/xboing/levels/level76.data
+lib/X11/xboing/levels/level77.data
+lib/X11/xboing/levels/level78.data
+lib/X11/xboing/levels/level79.data
+lib/X11/xboing/levels/level80.data
 lib/X11/xboing/levels/new.data
 lib/X11/xboing/sounds/Doh1.au
 lib/X11/xboing/sounds/Doh2.au
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971120210224.20076.qmail>