Remove default last set macro.
[neverball] / share / geom.c
index 0f5dac7..2fdffb5 100644 (file)
@@ -1,4 +1,4 @@
-/*   
+/*
  * Copyright (C) 2003 Robert Kooima
  *
  * NEVERBALL is  free software; you can redistribute  it and/or modify
@@ -30,7 +30,7 @@
 /*---------------------------------------------------------------------------*/
 
 static GLuint ball_list;
-static GLuint ball_text;
+static GLuint ball_text[2];
 
 void ball_init(int b)
 {
@@ -39,14 +39,16 @@ void ball_init(int b)
     int j, stacks = b ? 16 :  8;
 
     config_get_s(CONFIG_BALL, name, MAXSTR);
+    ball_text[0] = make_image_from_file(NULL, NULL, NULL, NULL, name);
 
-    ball_text = make_image_from_file(NULL, NULL, NULL, NULL, name);
+    config_get_s(CONFIG_BALL_BONUS, name, MAXSTR);
+    ball_text[1] = make_image_from_file(NULL, NULL, NULL, NULL, name);
 
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
 
     ball_list = glGenLists(1);
-    
+
     glNewList(ball_list, GL_COMPILE);
     {
         for (i = 0; i < stacks; i++)
@@ -87,14 +89,18 @@ void ball_free(void)
     if (glIsList(ball_list))
         glDeleteLists(ball_list, 1);
 
-    if (glIsTexture(ball_text))
-        glDeleteTextures(1, &ball_text);
+    if (glIsTexture(ball_text[0]))
+        glDeleteTextures(1, &ball_text[0]);
 
-    ball_list = 0;
-    ball_text = 0;
+    if (glIsTexture(ball_text[1]))
+        glDeleteTextures(1, &ball_text[1]);
+
+    ball_list    = 0;
+    ball_text[0] = 0;
+    ball_text[1] = 0;
 }
 
-void ball_draw(void)
+void ball_draw(int i)
 {
     glPushAttrib(GL_POLYGON_BIT |
                  GL_LIGHTING_BIT |
@@ -110,7 +116,7 @@ void ball_draw(void)
 
         glEnable(GL_COLOR_MATERIAL);
 
-        glBindTexture(GL_TEXTURE_2D, ball_text);
+        glBindTexture(GL_TEXTURE_2D, ball_text[i]);
 
         /* Render the ball back to front in case it is translucent. */
 
@@ -149,7 +155,7 @@ void mark_init(int b)
     int i, slices = b ? 32 : 16;
 
     mark_list = glGenLists(1);
-    
+
     glNewList(mark_list, GL_COMPILE);
     {
         glBegin(GL_TRIANGLE_FAN);
@@ -282,12 +288,9 @@ void coin_color(float *c, int n)
 
 void coin_init(int b)
 {
-    char name[MAXSTR];
     int n = b ? 32 : 8;
 
-    config_get_s(CONFIG_COIN, name, MAXSTR);
-
-    coin_text = make_image_from_file(NULL, NULL, NULL, NULL, name);
+    coin_text = make_image_from_file(NULL, NULL, NULL, NULL, IMG_COIN);
     coin_list = glGenLists(1);
 
     glNewList(coin_list, GL_COMPILE);
@@ -371,7 +374,7 @@ void goal_init(int b)
                 {
                     float x = fcosf(2.f * PI * i / n);
                     float y = fsinf(2.f * PI * i / n);
-            
+
                     glColor4f(1.0f, 1.0f, 0.0f, 0.5f);
                     glVertex3f(x, 0.0f, y);
 
@@ -409,38 +412,36 @@ void jump_init(int b)
 
     jump_list = glGenLists(2);
 
-    for (k=0; k<12; k++)
+    for (k = 0; k < 12; k++)
     {
-       glNewList(jump_list + k, GL_COMPILE);
-       {
-           glPushAttrib(GL_TEXTURE_BIT  |
-                   GL_LIGHTING_BIT |
-                   GL_DEPTH_BUFFER_BIT);
-           {
-               glEnable(GL_COLOR_MATERIAL);
-               glDisable(GL_LIGHTING);
-               glDisable(GL_TEXTURE_2D);
-               glDepthMask(GL_FALSE);
-
-               glBegin(GL_QUAD_STRIP);
-               {
-                   for (i = 0; i <= n; i++)
-                   {
-                       float x = fcosf(2.f * PI * i / n);
-                       float y = fsinf(2.f * PI * i / n);
-
-                       glColor4f(1.0f, 1.0f, 1.0f, (k==0 ? 0.5f : 0.8f));
-                       glVertex3f(x, 0.0f, y);
-
-                       glColor4f(1.0f, 1.0f, 1.0f, 0.0f);
-                       glVertex3f(x, JUMP_HEIGHT, y);
-                   }
-               }
-               glEnd();
-           }
-           glPopAttrib();
-       }
-       glEndList();
+        glNewList(jump_list + k, GL_COMPILE);
+        {
+            glPushAttrib(GL_TEXTURE_BIT | GL_LIGHTING_BIT | GL_DEPTH_BUFFER_BIT);
+            {
+                glEnable(GL_COLOR_MATERIAL);
+                glDisable(GL_LIGHTING);
+                glDisable(GL_TEXTURE_2D);
+                glDepthMask(GL_FALSE);
+
+                glBegin(GL_QUAD_STRIP);
+                {
+                    for (i = 0; i <= n; i++)
+                    {
+                        float x = fcosf(2.f * PI * i / n);
+                        float y = fsinf(2.f * PI * i / n);
+
+                        glColor4f(1.0f, 1.0f, 1.0f, (k == 0 ? 0.5f : 0.8f));
+                        glVertex3f(x, 0.0f, y);
+
+                        glColor4f(1.0f, 1.0f, 1.0f, 0.0f);
+                        glVertex3f(x, JUMP_HEIGHT, y);
+                    }
+                }
+                glEnd();
+            }
+            glPopAttrib();
+        }
+        glEndList();
     }
 }
 
@@ -481,36 +482,34 @@ void swch_init(int b)
 
     for (k = 0; k < 4; k++)
     {
-       glNewList(swch_list + k, GL_COMPILE);
-       {
-           glPushAttrib(GL_TEXTURE_BIT  |
-                   GL_LIGHTING_BIT |
-                   GL_DEPTH_BUFFER_BIT);
-           {
-               glEnable(GL_COLOR_MATERIAL);
-               glDisable(GL_LIGHTING);
-               glDisable(GL_TEXTURE_2D);
-               glDepthMask(GL_FALSE);
-
-               glBegin(GL_QUAD_STRIP);
-               {
-                   for (i = 0; i <= n; i++)
-                   {
-                       float x = fcosf(2.f * PI * i / n);
-                       float y = fsinf(2.f * PI * i / n);
-
-                       glColor4fv(swch_colors[2*k]);
-                       glVertex3f(x, 0.0f, y);
-
-                       glColor4fv(swch_colors[2*k+1]);
-                       glVertex3f(x, SWCH_HEIGHT, y);
-                   }
-               }
-               glEnd();
-           }
-           glPopAttrib();
-       }
-       glEndList();
+        glNewList(swch_list + k, GL_COMPILE);
+        {
+            glPushAttrib(GL_TEXTURE_BIT | GL_LIGHTING_BIT | GL_DEPTH_BUFFER_BIT);
+            {
+                glEnable(GL_COLOR_MATERIAL);
+                glDisable(GL_LIGHTING);
+                glDisable(GL_TEXTURE_2D);
+                glDepthMask(GL_FALSE);
+
+                glBegin(GL_QUAD_STRIP);
+                {
+                    for (i = 0; i <= n; i++)
+                    {
+                        float x = fcosf(2.f * PI * i / n);
+                        float y = fsinf(2.f * PI * i / n);
+
+                        glColor4fv(swch_colors[2 * k]);
+                        glVertex3f(x, 0.0f, y);
+
+                        glColor4fv(swch_colors[2 * k + 1]);
+                        glVertex3f(x, SWCH_HEIGHT, y);
+                    }
+                }
+                glEnd();
+            }
+            glPopAttrib();
+        }
+        glEndList();
     }
 }
 
@@ -524,7 +523,7 @@ void swch_free(void)
 
 void swch_draw(int b, int e)
 {
-    glCallList(swch_list + b*2 + e);
+    glCallList(swch_list + b * 2 + e);
 }
 
 /*---------------------------------------------------------------------------*/
@@ -551,7 +550,7 @@ void flag_init(int b)
                 {
                     float x = fcosf(2.f * PI * i / n) * 0.01f;
                     float y = fsinf(2.f * PI * i / n) * 0.01f;
-            
+
                     glColor3f(1.0f, 1.0f, 1.0f);
                     glVertex3f(x, 0.0f,        y);
                     glVertex3f(x, GOAL_HEIGHT, y);
@@ -668,7 +667,7 @@ void fade_draw(float k)
             glDisable(GL_LIGHTING);
             glDisable(GL_DEPTH_TEST);
             glDisable(GL_TEXTURE_2D);
-            
+
             glColor4f(0.0f, 0.0f, 0.0f, k);
 
             glBegin(GL_QUADS);