regen patches
This commit is contained in:
parent
3e4e4f565a
commit
07f0e962cc
@ -1,5 +1,6 @@
|
||||
--- Imakefile.orig Fri Nov 22 02:28:46 1996
|
||||
+++ Imakefile Thu Mar 8 02:21:42 2001
|
||||
$OpenBSD: patch-Imakefile,v 1.3 2004/03/05 22:56:42 naddy Exp $
|
||||
--- Imakefile.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ Imakefile 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -24,23 +24,22 @@ XCOMM ==================================
|
||||
XCOMM This is the directory where the highscore, level & sound data will be
|
||||
XCOMM placed. Default will be the current directory.
|
||||
|
@ -1,29 +0,0 @@
|
||||
*** editor.c.orig Wed Jan 13 22:23:04 1999
|
||||
--- editor.c Wed Jan 13 22:27:18 1999
|
||||
***************
|
||||
*** 652,660 ****
|
||||
Display *display;
|
||||
#endif
|
||||
{
|
||||
EditState = EDIT_TEST;
|
||||
|
||||
! strcpy(tempName, tempnam("/tmp", "xboing-"));
|
||||
if (SaveLevelDataFile(display, tempName) == False)
|
||||
ShutDown(display, 1, "Sorry, cannot save test play level.");
|
||||
|
||||
--- 652,666 ----
|
||||
Display *display;
|
||||
#endif
|
||||
{
|
||||
+ int fd;
|
||||
+
|
||||
EditState = EDIT_TEST;
|
||||
|
||||
! sprintf(tempName, "/tmp/xboing-XXXXXXXXXX");
|
||||
! if ((fd = mkstemp(tempName)) < 0)
|
||||
! ShutDown(display, 1, "Sorry, cannot save test play level.");
|
||||
!
|
||||
! close(fd);
|
||||
if (SaveLevelDataFile(display, tempName) == False)
|
||||
ShutDown(display, 1, "Sorry, cannot save test play level.");
|
||||
|
@ -1,20 +1,13 @@
|
||||
*** audio/LINUXaudio.c.orig Thu Nov 20 03:04:17 1997
|
||||
--- audio/LINUXaudio.c Thu Nov 20 03:04:31 1997
|
||||
***************
|
||||
*** 55,61 ****
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
! #include <linux/soundcard.h>
|
||||
|
||||
#include "include/error.h"
|
||||
#include "include/audio.h"
|
||||
--- 55,61 ----
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
+ #include <sys/ioctl.h>
|
||||
! #include <soundcard.h>
|
||||
|
||||
#include "include/error.h"
|
||||
#include "include/audio.h"
|
||||
$OpenBSD: patch-audio-LINUXaudio.c,v 1.2 2004/03/05 22:56:42 naddy Exp $
|
||||
--- audio/LINUXaudio.c.orig 1996-11-22 02:28:33.000000000 +0100
|
||||
+++ audio/LINUXaudio.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -55,7 +55,8 @@
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
-#include <linux/soundcard.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+#include <soundcard.h>
|
||||
|
||||
#include "include/error.h"
|
||||
#include "include/audio.h"
|
||||
|
@ -1,12 +1,11 @@
|
||||
*** ball.c.orig Wed Jan 13 22:16:23 1999
|
||||
--- ball.c Wed Jan 13 22:16:29 1999
|
||||
***************
|
||||
*** 50,56 ****
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
- #include <values.h>
|
||||
#include <xpm.h>
|
||||
#include <X11/Xos.h>
|
||||
|
||||
--- 50,55 ----
|
||||
$OpenBSD: patch-ball.c,v 1.2 2004/03/05 22:56:42 naddy Exp $
|
||||
--- ball.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ ball.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -50,7 +50,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
-#include <values.h>
|
||||
#include <xpm.h>
|
||||
#include <X11/Xos.h>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
--- bonus.c.orig Thu Nov 20 03:12:56 1997
|
||||
+++ bonus.c Thu Nov 20 03:15:32 1997
|
||||
@@ -311,7 +311,7 @@
|
||||
$OpenBSD: patch-bonus.c,v 1.2 2004/03/05 22:56:42 naddy Exp $
|
||||
--- bonus.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ bonus.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -311,7 +311,7 @@ void DrawTitleText(display, window)
|
||||
XFlush(display);
|
||||
|
||||
SetBonusWait(BONUS_SCORE, frame + 5);
|
||||
@ -9,7 +10,7 @@
|
||||
|
||||
DEBUG("set bonus mode to BONUS_SCORE.")
|
||||
}
|
||||
@@ -326,7 +326,7 @@
|
||||
@@ -326,7 +326,7 @@ static void DoScore(display, window)
|
||||
{
|
||||
DEBUG("in function DoScore() in bonus.c")
|
||||
|
||||
@ -18,7 +19,7 @@
|
||||
|
||||
/* Nice message rewarding you for your efforts */
|
||||
strcpy(string, "Congratulations on finishing this level.");
|
||||
@@ -336,7 +336,7 @@
|
||||
@@ -336,7 +336,7 @@ static void DoScore(display, window)
|
||||
|
||||
ypos += (35 + GAP);
|
||||
SetBonusWait(BONUS_BONUS, frame + LINE_DELAY);
|
||||
@ -27,7 +28,7 @@
|
||||
DEBUG("set bonus mode to BONUS_BONUS.")
|
||||
}
|
||||
|
||||
@@ -387,7 +387,7 @@
|
||||
@@ -387,7 +387,7 @@ static void DoBonuses(display, window)
|
||||
DrawShadowCentredText(display, window, textFont,
|
||||
string, ypos, blue, TOTAL_WIDTH);
|
||||
|
||||
@ -36,7 +37,7 @@
|
||||
|
||||
/* Now skip to the next sequence */
|
||||
SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY);
|
||||
@@ -411,7 +411,7 @@
|
||||
@@ -411,7 +411,7 @@ static void DoBonuses(display, window)
|
||||
bonusScore += ComputeScore(SUPER_BONUS_SCORE);
|
||||
DisplayScore(display, scoreWindow, bonusScore);
|
||||
|
||||
@ -45,7 +46,7 @@
|
||||
|
||||
/* Now skip to the next sequence */
|
||||
SetBonusWait(BONUS_LEVEL, frame + LINE_DELAY);
|
||||
@@ -454,7 +454,7 @@
|
||||
@@ -454,7 +454,7 @@ static void DoBonuses(display, window)
|
||||
ypos += (int) (textFont->ascent + GAP * 1.5);
|
||||
firstTime = True;
|
||||
|
||||
@ -54,7 +55,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,7 +468,7 @@
|
||||
@@ -468,7 +468,7 @@ static void DoLevel(display, window)
|
||||
{
|
||||
int secs, theLevel;
|
||||
|
||||
@ -63,7 +64,7 @@
|
||||
|
||||
/* Get the number of seconds left on the clock */
|
||||
secs = GetLevelTimeBonus();
|
||||
@@ -533,7 +533,7 @@
|
||||
@@ -533,7 +533,7 @@ static void DoBullets(display, window)
|
||||
/* Play the sound for the super bonus */
|
||||
if (noSound == False) playSoundFile("Doh3", 80);
|
||||
|
||||
@ -72,7 +73,7 @@
|
||||
|
||||
/* Get ready for the next sequence */
|
||||
SetBonusWait(BONUS_TIME, frame + LINE_DELAY);
|
||||
@@ -569,7 +569,7 @@
|
||||
@@ -569,7 +569,7 @@ static void DoBullets(display, window)
|
||||
SetBonusWait(BONUS_TIME, frame + LINE_DELAY);
|
||||
ypos += (textFont->ascent + GAP/2);
|
||||
firstTime = True;
|
||||
@ -81,7 +82,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -583,7 +583,7 @@
|
||||
@@ -583,7 +583,7 @@ static void DoTimeBonus(display, window)
|
||||
{
|
||||
int secs = 0;
|
||||
|
||||
@ -90,7 +91,7 @@
|
||||
|
||||
/* Get the number of seconds left on the clock */
|
||||
secs = GetLevelTimeBonus();
|
||||
@@ -627,7 +627,7 @@
|
||||
@@ -627,7 +627,7 @@ static void DoHighScore(display, window)
|
||||
int myrank = 0;
|
||||
char str[5];
|
||||
|
||||
@ -99,7 +100,7 @@
|
||||
|
||||
/* Obtain current ranking for this score */
|
||||
myrank = GetHighScoreRanking(score);
|
||||
@@ -680,7 +680,7 @@
|
||||
@@ -680,7 +680,7 @@ static void DoEndText(display, window)
|
||||
{
|
||||
DEBUG("DoEndText in bonus screen.")
|
||||
|
||||
@ -108,349 +109,3 @@
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
20
games/xboing/patches/patch-editor_c
Normal file
20
games/xboing/patches/patch-editor_c
Normal file
@ -0,0 +1,20 @@
|
||||
$OpenBSD: patch-editor_c,v 1.1 2004/03/05 22:56:42 naddy Exp $
|
||||
--- editor.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ editor.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -652,9 +652,15 @@ static void SetupPlayTest(display)
|
||||
Display *display;
|
||||
#endif
|
||||
{
|
||||
+ int fd;
|
||||
+
|
||||
EditState = EDIT_TEST;
|
||||
|
||||
- strcpy(tempName, tempnam("/tmp", "xboing-"));
|
||||
+ sprintf(tempName, "/tmp/xboing-XXXXXXXXXX");
|
||||
+ if ((fd = mkstemp(tempName)) < 0)
|
||||
+ ShutDown(display, 1, "Sorry, cannot save test play level.");
|
||||
+
|
||||
+ close(fd);
|
||||
if (SaveLevelDataFile(display, tempName) == False)
|
||||
ShutDown(display, 1, "Sorry, cannot save test play level.");
|
||||
|
@ -1,5 +1,6 @@
|
||||
--- highscore.c.orig Thu Nov 20 03:07:35 1997
|
||||
+++ highscore.c Thu Nov 20 03:12:23 1997
|
||||
$OpenBSD: patch-highscore.c,v 1.2 2004/03/05 22:56:42 naddy Exp $
|
||||
--- highscore.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ highscore.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -55,6 +55,7 @@
|
||||
#include <time.h>
|
||||
#include <file.h>
|
||||
@ -8,7 +9,7 @@
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xos.h>
|
||||
@@ -119,7 +120,7 @@
|
||||
@@ -119,7 +120,7 @@ static void SetHighScoreWait(enum HighSc
|
||||
static void InitialiseHighScores(void);
|
||||
static void SortHighScores(void);
|
||||
static void DeleteScore(int i);
|
||||
@ -17,7 +18,7 @@
|
||||
#else
|
||||
static int LockUnlock();
|
||||
static void DeleteScore();
|
||||
@@ -844,7 +845,7 @@
|
||||
@@ -844,7 +845,7 @@ int CheckAndAddScoreToHighScore(score, l
|
||||
|
||||
/* Lock the file for me only */
|
||||
if (type == GLOBAL)
|
||||
@ -26,7 +27,7 @@
|
||||
|
||||
/* Read in the lastest scores */
|
||||
if (ReadHighScoreTable(type) == False)
|
||||
@@ -875,8 +876,8 @@
|
||||
@@ -875,8 +876,8 @@ int CheckAndAddScoreToHighScore(score, l
|
||||
{
|
||||
/* Don't add as score is smaller */
|
||||
if (id != -1)
|
||||
@ -37,7 +38,7 @@
|
||||
}
|
||||
}
|
||||
} /* for */
|
||||
@@ -898,16 +899,17 @@
|
||||
@@ -898,16 +899,17 @@ int CheckAndAddScoreToHighScore(score, l
|
||||
|
||||
/* Unlock the file now thanks */
|
||||
if (id != -1)
|
||||
@ -57,7 +58,7 @@
|
||||
|
||||
/* Not even a highscore - loser! */
|
||||
return False;
|
||||
@@ -1185,10 +1187,10 @@
|
||||
@@ -1185,10 +1187,10 @@ void ResetHighScore(type)
|
||||
}
|
||||
|
||||
#if NeedFunctionPrototypes
|
||||
@ -70,7 +71,7 @@
|
||||
#endif
|
||||
{
|
||||
static int inter = -1;
|
||||
@@ -1225,6 +1227,9 @@
|
||||
@@ -1225,6 +1227,9 @@ static int LockUnlock(cmd)
|
||||
/* Open the highscore file for both read & write */
|
||||
if (cmd == LOCK_FILE)
|
||||
inter = open(filename, O_CREAT | O_RDWR, 0666);
|
||||
|
12
games/xboing/patches/patch-main_c
Normal file
12
games/xboing/patches/patch-main_c
Normal file
@ -0,0 +1,12 @@
|
||||
$OpenBSD: patch-main_c,v 1.1 2004/03/05 22:56:42 naddy Exp $
|
||||
--- main.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ main.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -156,7 +156,7 @@ void SetUserSpeed(delay)
|
||||
|
||||
/* 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;
|
||||
}
|
184
games/xboing/patches/patch-misc_c
Normal file
184
games/xboing/patches/patch-misc_c
Normal file
@ -0,0 +1,184 @@
|
||||
$OpenBSD: patch-misc_c,v 1.1 2004/03/05 22:56:42 naddy Exp $
|
||||
--- misc.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ misc.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -89,8 +89,8 @@ void usleep(usec)
|
||||
#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 @@ void usleep(usec)
|
||||
#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 @@ void sleepSync(display, ms)
|
||||
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 ((ms) > ((1000 / 60) + SyncTime))
|
||||
- usleep(ms - SyncTime);
|
||||
-*/
|
||||
- if ((ms + accu) > ((1000 / 30) + SyncTime))
|
||||
+ if( Ref_sec == 0 )
|
||||
{
|
||||
- usleep(ms +accu - SyncTime);
|
||||
- accu = 0;
|
||||
+ Ref_sec = st.tv_sec; /* take the initial reference point */
|
||||
+ Ref_usec = st.tv_usec;
|
||||
+ Sleeping_time = ms * 1000;
|
||||
}
|
||||
- else if (ms > SyncTime)
|
||||
- accu += (ms - SyncTime);
|
||||
+
|
||||
+ 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( PLL_filter <= 0 && elapsed > 40000 ) /* Frequency lock loop */
|
||||
+ {
|
||||
+ /* 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;
|
||||
+ }
|
||||
+
|
||||
+ kusleep( dodelay );
|
||||
+
|
||||
+ Expected_time += ms * 1000;
|
||||
}
|
||||
|
||||
#if NeedFunctionPrototypes
|
153
games/xboing/patches/patch-presents_c
Normal file
153
games/xboing/patches/patch-presents_c
Normal file
@ -0,0 +1,153 @@
|
||||
$OpenBSD: patch-presents_c,v 1.1 2004/03/05 22:56:42 naddy Exp $
|
||||
--- presents.c.orig 1996-11-22 02:28:46.000000000 +0100
|
||||
+++ presents.c 2004-03-05 23:30:39.000000000 +0100
|
||||
@@ -287,7 +287,7 @@ void DoPresentFlag(display, window)
|
||||
}
|
||||
#endif
|
||||
|
||||
- SetPresentWait(PRESENT_TEXT1, frame + 800);
|
||||
+ SetPresentWait(PRESENT_TEXT1, frame + 200);
|
||||
}
|
||||
|
||||
#if NeedFunctionPrototypes
|
||||
@@ -309,7 +309,7 @@ static void DoText1(display, window)
|
||||
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 @@ static void DoText2(display, window)
|
||||
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 @@ static void DoText3(display, window)
|
||||
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 @@ static void DoTextClear(display, window)
|
||||
|
||||
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 @@ static void DoLetters(display, window)
|
||||
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 @@ static void DoLetters(display, window)
|
||||
x += dists[3];
|
||||
DrawLetter(display, window, 3, x, y);
|
||||
|
||||
- SetPresentWait(PRESENT_SHINE, frame + 200);
|
||||
+ SetPresentWait(PRESENT_SHINE, frame + 100);
|
||||
}
|
||||
|
||||
i++;
|
||||
@@ -463,7 +463,7 @@ static void DoSparkle(display, window)
|
||||
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 @@ static void DoSpecialText1(display, wind
|
||||
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 @@ static void DoSpecialText1(display, wind
|
||||
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 @@ static void DoSpecialText2(display, wind
|
||||
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 @@ static void DoSpecialText2(display, wind
|
||||
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 @@ static void DoSpecialText3(display, wind
|
||||
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 @@ static void DoSpecialText3(display, wind
|
||||
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 @@ static void DoClear(display, window)
|
||||
yb -= 10;
|
||||
|
||||
if (yt > ((PLAY_HEIGHT + MAIN_HEIGHT) / 2))
|
||||
- SetPresentWait(PRESENT_FINISH, frame + 20);
|
||||
+ SetPresentWait(PRESENT_FINISH, frame + 10);
|
||||
|
||||
nextFrame = frame + 20;
|
||||
}
|
Loading…
Reference in New Issue
Block a user