]> code.delx.au - pong/blobdiff - pong.c
Fixed fmax for all systems
[pong] / pong.c
diff --git a/pong.c b/pong.c
index 09bf9d4ca1637ab9c7da80d1a7637f2f75a4afd4..2931d5a6fc9a52d22fb56a60ab328c4d7568bd1a 100644 (file)
--- a/pong.c
+++ b/pong.c
@@ -38,6 +38,10 @@ static GLdouble ballVecX = 0.0;
 static GLdouble ballVecY = 0.0;
 
 
+static inline double myfmax(double a, double b) {
+       return a > b ? a : b;
+}
+
 static void initBall(void) {
        ballX = 0.0;
        ballY = 0.0;
@@ -74,14 +78,14 @@ static void run(void) {
        // Check for collisions with paddles
        if(ballVecX < 0 && ballX <= -HEIGHT + -ballVecX * 1.5) {
                if(ballY >= paddle1 - PADDLESIZE && ballY <= paddle1 + PADDLESIZE) {
-                       GLdouble speedChange = fmax(1.0, fabs(paddle1 - ballY) * SPEEDBINC);
+                       GLdouble speedChange = myfmax(1.0, fabs(paddle1 - ballY) * SPEEDBINC);
                        ballVecX *= -speedChange * SPEEDXINC;
                        ballVecY *= speedChange * SPEEDYINC;
                }
        }
        if(ballVecX > 0 && ballX >=  HEIGHT - ballVecX * 1.5) {
                if(ballY >= paddle2 - PADDLESIZE && ballY <= paddle2 + PADDLESIZE) {
-                       GLdouble speedChange = fmax(1.0, fabs(paddle2 - ballY) * SPEEDBINC);
+                       GLdouble speedChange = myfmax(1.0, fabs(paddle2 - ballY) * SPEEDBINC);
                        ballVecX *= -speedChange * SPEEDXINC;
                        ballVecY *= speedChange * SPEEDYINC;
                }
@@ -165,9 +169,9 @@ static void gameDisplay(void) {
        glEnd();
 
        // Draw the ball
-       glPointSize(5.0);
-       glBegin(GL_POINTS);
+       glBegin(GL_LINES);
        glVertex2d(ballX, ballY);
+       glVertex2d(ballX - ballVecX, ballY - ballVecY);
        glEnd();
 
        // Write the score