Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37039106
en ru br
Репозитории ALT
S:145.4_2015_01_05-alt1
5.1: 144-alt2
4.1: 144-alt2
4.0: 144-alt2
3.0: 137-alt3
www.altlinux.org/Changes

Группа :: Игры/Аркады
Пакет: sdlscav

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: sdlscav-newsdl.diff
Скачать


diff -u -b -B sdlscav-137/Makefile sdlscav/Makefile
--- sdlscav-137/Makefile	Sun Aug 22 11:44:44 1999
+++ sdlscav/Makefile	Mon Aug 21 17:57:27 2000
@@ -15,4 +15,4 @@
 anim.o:	anim.c scav.h anim.h
 
 clean:
-	rm *.o sdlscav
+	rm -f *.o sdlscav *~
Common subdirectories: sdlscav-137/data and sdlscav/data
diff -u -b -B sdlscav-137/gfx.c sdlscav/gfx.c
--- sdlscav-137/gfx.c	Sun Aug 22 12:25:43 1999
+++ sdlscav/gfx.c	Mon Aug 21 17:58:00 2000
@@ -19,6 +19,8 @@
 
 unsigned char mymap[768],currentmap[768];
 
+int gottimer;					/* every timer event will set this */
+
 drawstring(){}
 colormapon(){}
 colormapoff(){}
@@ -308,6 +310,12 @@
 	SDL_PollEvent(0);
 }
 
+/* Reset the number of input events */
+void resetinput()
+{
+	numdown=0;
+	mousebd=0;
+}
 
 void scaninput(void)
 {
@@ -315,8 +323,6 @@
 int key,mod;
 int bs=0;
 
-	numdown=0;
-	mousebd=0;
 	while(SDL_PollEvent(&event))
 	{
 		switch(event.type)
@@ -348,6 +354,9 @@
 			mousex=event.motion.x;
 			mousey=event.motion.y;
 			break;
+       case SDL_USEREVENT:
+			gottimer = 1;
+			break;
 		}
 	}
 }
diff -u -b -B sdlscav-137/scav.c sdlscav/scav.c
--- sdlscav-137/scav.c	Sun Aug 22 12:24:57 1999
+++ sdlscav/scav.c	Tue Aug 15 17:57:38 2000
@@ -1021,7 +1021,8 @@
 		copyup();
 		for(;;)
 		{
-			pause();
+			SDL_WaitEvent(NULL);
+			resetinput();
 			scaninput();
 			if(checkdown(' ') || checkdown(0x1b)) /* space or ESC */
 				break;
@@ -1188,16 +1189,16 @@
 int iterate()
 {
 uchar pausing;
-	pause();
 	randcount2++;
 	pausing=0;
+	gottimer = 0;
+	resetinput();
 	do
 	{
-		if(pausing) pause();
 		scaninput();
 		if(checkdown('x' | MYALTED) || checkdown('q' | MYALTED)) return 1; /* alt-x */
 		if(checkdown(MYPAUSE) && playing) pausing^=1;
-	} while(pausing);
+	} while(pausing || !gottimer);
 
 	mbuttons=(checkbutton(1) ? 1 : 0) | (checkbutton(3) ? 2 : 0);
 	mbuttons2=(checkbuttondown(1) ? 1 : 0) | (checkbuttondown(3) ? 2 : 0);
@@ -1537,12 +1538,20 @@
 	return 1;
 }
 unsigned char havepulse,interrupted;
-Uint32 sdlhandler(Uint32 time)
+static Uint32 sdlhandler(Uint32 time)
 {
+	SDL_Event timeevent;
+	
+	timeevent.type = SDL_USEREVENT;
+
 	hc++;
 	interrupted=1;
+
+	SDL_PeepEvents(&timeevent, 1, SDL_ADDEVENT, 0);
+
 	return time;
 }
+
 pulseon()
 {
 	if(havepulse) return;
@@ -1656,6 +1665,7 @@
 
 	while(!iterate());
 
+	pulseoff();
 
 	soundclose();
 	closegfx();
@@ -2579,8 +2589,9 @@
 			copyup();
 			changed=0;
 		}
+		SDL_WaitEvent(NULL);
+		resetinput();
 		scaninput();
-		pause();
 /*
 		p=keylist;
 		for(;;)
@@ -2626,7 +2637,8 @@
 	copyup();
 	for(;;)
 	{
-		pause();
+		resetinput();
+		SDL_WaitEvent(NULL);
 		scaninput();
 		if(!anydown()) continue;
 		code=firstdown();
@@ -2858,5 +2870,5 @@
 
 void waitsound()
 {
-	while(soundactive) pause();
+	while(soundactive) SDL_Delay(100);
 }
diff -u -b -B sdlscav-137/scav.h sdlscav/scav.h
--- sdlscav-137/scav.h	Sun Aug 22 12:06:45 1999
+++ sdlscav/scav.h	Tue Aug 15 17:47:06 2000
@@ -524,5 +524,6 @@
 #define MYSHIFTED 0x40
 #define MYALTED 0x200
 
+extern int gottimer;
 
 #endif
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin