rnd-20060128-1-src
[rocksndiamonds.git] / src / libgame / sdl.c
index 74123228f2b2185f43100f4c3b2d5c19b70f356a..e460de3b434ab97dd5726f42340c636fe12208c2 100644 (file)
@@ -71,7 +71,7 @@ inline void SDLInitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window,
   fullscreen_yoffset = 0;
 
 #ifdef FULLSCREEN_BUG
-  for (i=0; screen_xy[i][0] != -1; i++)
+  for (i = 0; screen_xy[i][0] != -1; i++)
   {
     if (video.width <= screen_xy[i][0] && video.height <= screen_xy[i][1])
     {
@@ -248,11 +248,6 @@ inline void SDLFillRectangle(Bitmap *dst_bitmap, int x, int y,
 {
   Bitmap *real_dst_bitmap = (dst_bitmap == window ? backbuffer : dst_bitmap);
   SDL_Rect rect;
-#if 0
-  unsigned int color_r = (color >> 16) & 0xff;
-  unsigned int color_g = (color >>  8) & 0xff;
-  unsigned int color_b = (color >>  0) & 0xff;
-#endif
 
 #ifdef FULLSCREEN_BUG
   if (dst_bitmap == backbuffer || dst_bitmap == window)
@@ -267,13 +262,7 @@ inline void SDLFillRectangle(Bitmap *dst_bitmap, int x, int y,
   rect.w = width;
   rect.h = height;
 
-#if 1
   SDL_FillRect(real_dst_bitmap->surface, &rect, color);
-#else
-  SDL_FillRect(real_dst_bitmap->surface, &rect,
-              SDL_MapRGB(real_dst_bitmap->surface->format,
-                         color_r, color_g, color_b));
-#endif
 
   if (dst_bitmap == window)
     SDL_UpdateRect(backbuffer->surface, x, y, width, height);
@@ -284,11 +273,6 @@ inline void SDLDrawSimpleLine(Bitmap *dst_bitmap, int from_x, int from_y,
 {
   SDL_Surface *surface = dst_bitmap->surface;
   SDL_Rect rect;
-#if 0
-  unsigned int color_r = (color >> 16) & 0xff;
-  unsigned int color_g = (color >>  8) & 0xff;
-  unsigned int color_b = (color >>  0) & 0xff;
-#endif
 
   if (from_x > to_x)
     swap_numbers(&from_x, &to_x);
@@ -309,12 +293,7 @@ inline void SDLDrawSimpleLine(Bitmap *dst_bitmap, int from_x, int from_y,
   }
 #endif
 
-#if 1
   SDL_FillRect(surface, &rect, color);
-#else
-  SDL_FillRect(surface, &rect,
-               SDL_MapRGB(surface->format, color_r, color_g, color_b));
-#endif
 }
 
 inline void SDLDrawLine(Bitmap *dst_bitmap, int from_x, int from_y,
@@ -340,11 +319,11 @@ inline void SDLDrawLines(SDL_Surface *surface, struct XY *points,
   int i, x, y;
   int line_width = 4;
 
-  for (i=0; i<num_points - 1; i++)
+  for (i = 0; i < num_points - 1; i++)
   {
-    for (x=0; x<line_width; x++)
+    for (x = 0; x < line_width; x++)
     {
-      for (y=0; y<line_width; y++)
+      for (y = 0; y < line_width; y++)
       {
        int dx = x - line_width / 2;
        int dy = y - line_width / 2;
@@ -889,9 +868,9 @@ inline void SDLInvertArea(Bitmap *bitmap, int src_x, int src_y,
 {
   int x, y;
 
-  for (y=src_y; y < src_y + height; y++)
+  for (y = src_y; y < src_y + height; y++)
   {
-    for (x=src_x; x < src_x + width; x++)
+    for (x = src_x; x < src_x + width; x++)
     {
       Uint32 pixel = SDLGetPixel(bitmap, x, y);
 
@@ -906,9 +885,9 @@ inline void SDLCopyInverseMasked(Bitmap *src_bitmap, Bitmap *dst_bitmap,
 {
   int x, y;
 
-  for (y=0; y < height; y++)
+  for (y = 0; y < height; y++)
   {
-    for (x=0; x < width; x++)
+    for (x = 0; x < width; x++)
     {
       Uint32 pixel = SDLGetPixel(src_bitmap, src_x + x, src_y + y);
 
@@ -1116,9 +1095,8 @@ int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst)
   -----------------------------------------------------------------------------
   zoomSurface()
 
-  Zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.
+  Zooms a 32bit or 8bit 'src' surface to newly created 'dst' surface.
   'zoomx' and 'zoomy' are scaling factors for width and height.
-  If 'smooth' is 1 then the destination 32bit surface is anti-aliased.
   If the surface is not 8bit or 32bit RGBA/ABGR it will be converted
   into a 32bit RGBA format on the fly.
   -----------------------------------------------------------------------------
@@ -1181,7 +1159,7 @@ SDL_Surface *zoomSurface(SDL_Surface *src, int dst_width, int dst_height)
   else
   {
     /* copy palette */
-    for (i=0; i < zoom_src->format->palette->ncolors; i++)
+    for (i = 0; i < zoom_src->format->palette->ncolors; i++)
       zoom_dst->format->palette->colors[i] =
        zoom_src->format->palette->colors[i];
     zoom_dst->format->palette->ncolors = zoom_src->format->palette->ncolors;
@@ -1441,6 +1419,7 @@ void HandleJoystickEvent(Event *event)
 void SDLInitJoysticks()
 {
   static boolean sdl_joystick_subsystem_initialized = FALSE;
+  boolean print_warning = !sdl_joystick_subsystem_initialized;
   int i;
 
   if (!sdl_joystick_subsystem_initialized)
@@ -1454,17 +1433,26 @@ void SDLInitJoysticks()
     }
   }
 
-  for (i=0; i<MAX_PLAYERS; i++)
+  for (i = 0; i < MAX_PLAYERS; i++)
   {
+    /* get configured joystick for this player */
     char *device_name = setup.input[i].joy.device_name;
     int joystick_nr = getJoystickNrFromDeviceName(device_name);
 
     if (joystick_nr >= SDL_NumJoysticks())
+    {
+      if (setup.input[i].use_joystick && print_warning)
+       Error(ERR_WARN, "cannot find joystick %d", joystick_nr);
+
       joystick_nr = -1;
+    }
 
     /* misuse joystick file descriptor variable to store joystick number */
     joystick.fd[i] = joystick_nr;
 
+    if (joystick_nr == -1)
+      continue;
+
     /* this allows subsequent calls to 'InitJoysticks' for re-initialization */
     if (SDLCheckJoystickOpened(joystick_nr))
       SDLCloseJoystick(joystick_nr);
@@ -1474,7 +1462,9 @@ void SDLInitJoysticks()
 
     if (!SDLOpenJoystick(joystick_nr))
     {
-      Error(ERR_WARN, "cannot open joystick %d", joystick_nr);
+      if (print_warning)
+       Error(ERR_WARN, "cannot open joystick %d", joystick_nr);
+
       continue;
     }