tags 385714 + patch
kthxbye

Attached is the final patch for the FTBFS.  It replaces the previous
patch, because apparently someone defined min and max as macros, which
causes std::min and std::max to turn out rather weirdly.

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 713 440 7475 | http://crustytoothpaste.ath.cx/~bmc | My opinion only
Screw you, AACS LA: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
OpenPGP: RSA v4 4096b 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
--- starfighter-1.1.orig/code/classes.h
+++ starfighter-1.1/code/classes.h
@@ -427,7 +427,7 @@
 	{
 		SDL_Flip(screen);
 		// Give the audio (and possibly the X server) time to work...
-		SDL_Delay(1);
+	//	SDL_Delay(1);
 	}
 
 	/*
--- starfighter-1.1.orig/code/game.cpp
+++ starfighter-1.1/code/game.cpp
@@ -240,6 +240,7 @@
 			then = SDL_GetTicks();
 			frames = 0;
 			graphics.updateScreen();
+			SDL_Delay(16);
 		}
 
 		if ((currentGame.area == 24) && (engine.addAliens > -1))
@@ -277,11 +278,7 @@
 		}
 
 		// (Attempt to) Limit us to 60 frame a second
-		while (SDL_GetTicks() < (frameLimit + 16))
-		{
-			// Do nothing. If we were to insert an SDL_Delay(1) in here
-			// then we would actually lose around 10 frames per second!!
-		}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 
--- starfighter-1.1.orig/code/intermission.cpp
+++ starfighter-1.1/code/intermission.cpp
@@ -848,7 +848,7 @@
 		doCursor();
 
 		// Limit us to 60 frame a second
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 
--- starfighter-1.1.orig/code/missions.cpp
+++ starfighter-1.1/code/missions.cpp
@@ -795,6 +795,7 @@
 			getPlayerInput();
 			if ((engine.keyState[SDLK_LCTRL]) || (engine.keyState[SDLK_RCTRL]))
 				break;
+			SDL_Delay(16);
 		}
 
 		graphics.clearScreen(graphics.black);
@@ -913,6 +914,7 @@
 			getPlayerInput();
 			if ((engine.keyState[SDLK_LCTRL]) || (engine.keyState[SDLK_RCTRL]))
 				break;
+			SDL_Delay(16);
 		}
 	}
 
--- starfighter-1.1.orig/code/script.cpp
+++ starfighter-1.1/code/script.cpp
@@ -298,7 +298,7 @@
 		if ((showMessage) && (graphics.messageBox != NULL))
 			graphics.blit(graphics.messageBox, (800 - graphics.messageBox->w) / 2, 500);
 
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 		
 		if (engine.keyState[SDLK_ESCAPE])
--- starfighter-1.1.orig/code/title.cpp
+++ starfighter-1.1/code/title.cpp
@@ -453,7 +453,8 @@
 			engine.keyState[SDLK_LCTRL] = engine.keyState[SDLK_RCTRL] = engine.keyState[SDLK_SPACE] = 0;
 		}
 
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		// (Attempt to) Limit us to 60 frame a second
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 
@@ -558,7 +559,7 @@
 			break;
 		}
 
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 }
@@ -614,7 +615,7 @@
 		graphics.blit(gameover, x,  y);
 
 		// Limit us to 60 frame a second
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 
@@ -724,7 +725,7 @@
 		SDL_FillRect(graphics.screen, &r1, graphics.black);
 		SDL_FillRect(graphics.screen, &r2, graphics.black);
 
-		while (SDL_GetTicks() < (frameLimit + 16)){}
+		SDL_Delay(frameLimit + 16 - max(min(SDL_GetTicks(), 0), 16));
 		frameLimit = SDL_GetTicks();
 	}
 

Attachment: signature.asc
Description: Digital signature

Reply via email to