Now the growings animation looks pretty cool :)
[supertux.git] / src / globals.cpp
index 3b64443..0c16a30 100644 (file)
+//  $Id$
+// 
+//  SuperTux
+//  Copyright (C) 2004 SuperTux Development Team, see AUTHORS for details
 //
-// C Implementation: globals
-//
-// Description:
-//
-//
-// Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2004
-//
-// Copyright: See COPYING file that comes with this distribution
-//
+//  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 "globals.h"
 
 /** The datadir prefix prepended when loading game data file */
 std::string datadir;
 
+JoystickKeymap::JoystickKeymap()
+{
+  a_button     = 0;
+  b_button     = 1;
+  start_button = 2;
+  
+  x_axis = 0;
+  y_axis = 1;
+    
+  dead_zone = 4096;
+}
+
+JoystickKeymap joystick_keymap;
+
 SDL_Surface * screen;
-text_type black_text, gold_text, blue_text, red_text, yellow_nums, white_text, white_small_text, white_big_text;
+Font* black_text;
+Font* gold_text;
+Font* silver_text;
+Font* blue_text;
+Font* red_text;
+Font* green_text;
+Font* yellow_nums;
+Font* white_text;
+Font* white_small_text;
+Font* white_big_text;
+
+MouseCursor * mouse_cursor;
 
-int use_gl, use_joystick, use_fullscreen, debug_mode, show_fps;
+bool use_gl;
+bool use_joystick;
+bool use_fullscreen;
+bool debug_mode;
+bool show_fps;
+float game_speed = 1.0f;
 
-int joystick_num = 0; 
+int joystick_num = 0;
 char* level_startup_file = 0;
-bool launch_worldmap_mode = false;
+bool launch_leveleditor_mode = false;
 
 /* SuperTux directory ($HOME/.supertux) and save directory($HOME/.supertux/save) */
 char *st_dir, *st_save_dir;
 
 SDL_Joystick * js;
 
+/* Returns 1 for every button event, 2 for a quit event and 0 for no event. */
+int wait_for_event(SDL_Event& event,unsigned int min_delay, unsigned int max_delay, bool empty_events)
+{
+  int i;
+  Timer maxdelay;
+  Timer mindelay;
+  
+  maxdelay.init(false);
+  mindelay.init(false);
+
+  if(max_delay < min_delay)
+    max_delay = min_delay;
+
+  maxdelay.start(max_delay);
+  mindelay.start(min_delay);
+
+  if(empty_events)
+    while (SDL_PollEvent(&event))
+    {}
+
+  /* Handle events: */
+
+  for(i = 0; maxdelay.check() || !i; ++i)
+    {
+      while (SDL_PollEvent(&event))
+        {
+          if(!mindelay.check())
+            {
+              if (event.type == SDL_QUIT)
+                {
+                  /* Quit event - quit: */
+                  return 2;
+                }
+              else if (event.type == SDL_KEYDOWN)
+                {
+                  /* Keypress - skip intro: */
+
+                  return 1;
+                }
+              else if (event.type == SDL_JOYBUTTONDOWN)
+                {
+                  /* Fire button - skip intro: */
+
+                  return 1;
+                }
+              else if (event.type == SDL_MOUSEBUTTONDOWN)
+                {
+                  /* Mouse button - skip intro: */
+                  return 1;
+                }
+            }
+        }
+      SDL_Delay(10);
+    }
 
+  return 0;
+}