Limitated the number of bullets to be shot at the same time.
[supertux.git] / src / intro.cpp
index 66fb3db..0939e4b 100644 (file)
@@ -1,14 +1,21 @@
-/*
-  intro.c
-  
-  Super Tux - Intro Screen
-  by Bill Kendrick
-  bill@newbreedsoftware.com
-  http://www.newbreedsoftware.com/supertux/
-  
-  April 11, 2000 - March 15, 2004
-*/
+//  $Id$
+//
+//  SuperTux -  A Jump'n Run
+//  Copyright (C) 2000 Bill Kendrick <bill@newbreedsoftware.com>
+//
+//  This program is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU General Public License
+//  as published by the Free Software Foundation; either version 2
+//  of the License, or (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -41,14 +48,14 @@ char * intro_text[] = {
 int intro(void)
 {
   SDL_Event event;
-  texture_type bkgd,  copter_squish,  copter_stretch, beam,
+  texture_type bkgd, copter_squish,  copter_stretch, beam,
   gown_sit,  gown_lookup,  gown_upset,
   tux_sit, tux_upset, tux_mad;
   texture_type copter[2];
   SDL_Rect src, dest;
   int done, i, quit, j, scene;
   int * height, * height_speed;
-  timer_type timer;
+  Timer timer;
 
   /* Load sprite images: */
   texture_load(&bkgd, datadir + "/images/intro/intro.png", IGNORE_ALPHA);
@@ -108,7 +115,7 @@ int intro(void)
 
       /* Draw things: */
 
-      if (timer_get_gone(&timer) < 2000 && scene == 0)
+      if (timer.get_gone() < 2000 && scene == 0)
         {
           ++scene;
           /* Gown and tux sitting: */
@@ -120,7 +127,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 2000 && scene == 1)
+      if (timer.get_gone() >= 2000 && scene == 1)
         {
           ++scene;
           /* Helicopter begins to fly in: */
@@ -130,19 +137,19 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 2000 && timer_get_gone(&timer) < 4000)
+      if (timer.get_gone() >= 2000 && timer.get_gone() < 4000)
         {
           /* Helicopter flying in: */
           texture_draw_part(&bkgd,0,32, 0, 32, screen->w, (copter[0].h));
 
           texture_draw(&copter[i % 2],
-                       (float)(timer_get_gone(&timer) - 2000) / 5  - (copter[0].w), 32);
+                       (float)(timer.get_gone() - 2000) / 5  - (copter[0].w), 32);
 
           update_rect(screen, 0, 32, screen->w, (copter[0].h));
         }
 
 
-      if (timer_get_gone(&timer) >= 2500 && scene == 2)
+      if (timer.get_gone() >= 2500 && scene == 2)
         {
           ++scene;
           /* Gown notices something... */
@@ -151,7 +158,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 3500 && scene == 3)
+      if (timer.get_gone() >= 3500 && scene == 3)
         {
           ++scene;
           /* Gown realizes it's bad! */
@@ -160,7 +167,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 4000 && timer_get_gone(&timer) < 8000)
+      if (timer.get_gone() >= 4000 && timer.get_gone() < 8000)
         {
           /* Helicopter sits: */
           texture_draw_part(&bkgd,0,32, 0, 32, screen->w, (copter[0].h));
@@ -170,7 +177,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 5000 && scene == 4)
+      if (timer.get_gone() >= 5000 && scene == 4)
         {
           ++scene;
           /* Tux realizes something's happening: */
@@ -183,7 +190,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 5000 && timer_get_gone(&timer) <= 8000)
+      if (timer.get_gone() >= 5000 && timer.get_gone() <= 8000)
         {
           /* Beam gown up! */
 
@@ -210,7 +217,7 @@ int intro(void)
 
               texture_draw_part(&gown_upset,src.x,src.y,dest.x,dest.y,dest.w,dest.h);
 
-              height[j] = 400 + rand() % 10 - (int)(300. * ((float)(timer_get_gone(&timer) - 5000)/(float)3000.));
+              height[j] = 400 + rand() % 10 - (int)(300. * ((float)(timer.get_gone() - 5000)/(float)3000.));
               if(height[j] < 105)
                 height[j] = 105;
             }
@@ -223,7 +230,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 8000 && scene == 5)
+      if (timer.get_gone() >= 8000 && scene == 5)
         {
           texture_draw_part(&bkgd,
                             310, 32 + (copter[0].h), 310,
@@ -241,7 +248,7 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 8000 && timer_get_gone(&timer) <= 8250)
+      if (timer.get_gone() >= 8000 && timer.get_gone() <= 8250)
         {
           /* Helicopter starting to speed off: */
 
@@ -254,14 +261,14 @@ int intro(void)
         }
 
 
-      if (timer_get_gone(&timer) >= 8250)
+      if (timer.get_gone() >= 8250)
         {
           /* Helicopter speeding off: */
 
           texture_draw_part(&bkgd, 0, 32, 0, 32, screen->w, (copter_stretch.h));
 
           texture_draw(&copter_stretch,
-                       (timer_get_gone(&timer) - 8250) /*(i - (8250 / FPS)) * 30*/ + 400 - (copter[0].w),
+                       (timer.get_gone() - 8250) /*(i - (8250 / FPS)) * 30*/ + 400 - (copter[0].w),
                        32);
 
           update_rect(screen, 0, 32, screen->w, (copter_stretch.h));
@@ -277,18 +284,18 @@ int intro(void)
 
   /* Free surfaces: */
 
-  texture_free(&bkgd);
-  texture_free(&gown_sit);
-  texture_free(&gown_lookup);
-  texture_free(&gown_upset);
-  texture_free(&tux_sit);
-  texture_free(&tux_upset);
-  texture_free(&tux_mad);
-  texture_free(&copter[0]);
-  texture_free(&copter[1]);
-  texture_free(&copter_squish);
-  texture_free(&copter_stretch);
-  texture_free(&beam);
+  delete bkgd;
+  delete gown_sit;
+  delete gown_lookup;
+  delete gown_upset;
+  delete tux_sit;
+  delete tux_upset;
+  delete tux_mad;
+  delete copter[0];
+  delete copter[1];
+  delete copter_squish;
+  delete copter_stretch;
+  delete beam;
 
 
   /* Free array buffers: */