rnd-20000718-1-src
[rocksndiamonds.git] / src / tools.c
index dbd8c5d5b9c567b5e5aca73c7f45c521b8fa4631..0c9cd1766e69264bcacc83ed69a7f278ac7d9e96 100644 (file)
@@ -338,6 +338,15 @@ int getFontHeight(int font_size, int font_type)
 
 void DrawInitText(char *text, int ypos, int color)
 {
+#ifdef USE_SDL_LIBRARY
+  if (sdl_window && sdl_pix[PIX_SMALLFONT])
+  {
+    SDLFillRectangle(sdl_window, 0, ypos, WIN_XSIZE, FONT2_YSIZE, 0x000000);
+    DrawTextExt(window, gc, (WIN_XSIZE - strlen(text) * FONT2_XSIZE)/2,
+               ypos,text,FS_SMALL,color);
+    SDL_Flip(sdl_window);
+  }
+#else
   if (display && window && pix[PIX_SMALLFONT])
   {
     XFillRectangle(display, window, gc, 0, ypos, WIN_XSIZE, FONT2_YSIZE);
@@ -345,6 +354,7 @@ void DrawInitText(char *text, int ypos, int color)
                ypos,text,FS_SMALL,color);
     XFlush(display);
   }
+#endif
 }
 
 void DrawTextFCentered(int y, int font_type, char *format, ...)
@@ -447,8 +457,15 @@ void DrawTextExt(Drawable d, GC gc, int x, int y,
                  0, 0, font_width, font_height, dest_x, dest_y);
       }
       else
+      {
+#ifdef USE_SDL_LIBRARY
+       SDLCopyArea(sdl_pix[font_pixmap], sdl_window,
+                   src_x, src_y, font_width, font_height, dest_x, dest_y);
+#else
        XCopyArea(display, pix[font_pixmap], d, gc,
                  src_x, src_y, font_width, font_height, dest_x, dest_y);
+#endif
+      }
     }
 
     x += font_width;
@@ -1196,8 +1213,10 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
        graphic += phase2;
     }
   }
-  else if (element == EL_SIEB_LEER || element == EL_SIEB2_LEER ||
-          element == EL_SIEB_VOLL || element == EL_SIEB2_VOLL)
+  else if (element == EL_MAGIC_WALL_EMPTY ||
+          element == EL_MAGIC_WALL_BD_EMPTY ||
+          element == EL_MAGIC_WALL_FULL ||
+          element == EL_MAGIC_WALL_BD_FULL)
   {
     graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE);
   }
@@ -1425,13 +1444,13 @@ void DrawScreenField(int x, int y)
     boolean cut_mode = NO_CUTTING;
 
     if (Store[ux][uy] == EL_MORAST_LEER ||
-       Store[ux][uy] == EL_SIEB_LEER ||
-       Store[ux][uy] == EL_SIEB2_LEER ||
+       Store[ux][uy] == EL_MAGIC_WALL_EMPTY ||
+       Store[ux][uy] == EL_MAGIC_WALL_BD_EMPTY ||
        Store[ux][uy] == EL_AMOEBE_NASS)
       cut_mode = CUT_ABOVE;
     else if (Store[ux][uy] == EL_MORAST_VOLL ||
-            Store[ux][uy] == EL_SIEB_VOLL ||
-            Store[ux][uy] == EL_SIEB2_VOLL)
+            Store[ux][uy] == EL_MAGIC_WALL_FULL ||
+            Store[ux][uy] == EL_MAGIC_WALL_BD_FULL)
       cut_mode = CUT_BELOW;
 
     if (cut_mode == CUT_ABOVE)
@@ -1461,8 +1480,8 @@ void DrawScreenField(int x, int y)
                  MovDir[oldx][oldy] == MV_RIGHT);
 
     if (Store[oldx][oldy] == EL_MORAST_LEER ||
-       Store[oldx][oldy] == EL_SIEB_LEER ||
-       Store[oldx][oldy] == EL_SIEB2_LEER ||
+       Store[oldx][oldy] == EL_MAGIC_WALL_EMPTY ||
+       Store[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTY ||
        Store[oldx][oldy] == EL_AMOEBE_NASS)
       cut_mode = CUT_ABOVE;
 
@@ -2455,10 +2474,10 @@ int el2gfx(int element)
     case EL_MORAST_VOLL:       return GFX_MORAST_VOLL;
     case EL_TROPFEN:           return GFX_TROPFEN;
     case EL_BOMBE:             return GFX_BOMBE;
-    case EL_SIEB_INAKTIV:      return GFX_SIEB_INAKTIV;
-    case EL_SIEB_LEER:         return GFX_SIEB_LEER;
-    case EL_SIEB_VOLL:         return GFX_SIEB_VOLL;
-    case EL_SIEB_TOT:          return GFX_SIEB_TOT;
+    case EL_MAGIC_WALL_OFF:    return GFX_MAGIC_WALL_OFF;
+    case EL_MAGIC_WALL_EMPTY:  return GFX_MAGIC_WALL_EMPTY;
+    case EL_MAGIC_WALL_FULL:   return GFX_MAGIC_WALL_FULL;
+    case EL_MAGIC_WALL_DEAD:   return GFX_MAGIC_WALL_DEAD;
     case EL_SALZSAEURE:                return GFX_SALZSAEURE;
     case EL_AMOEBE_TOT:                return GFX_AMOEBE_TOT;
     case EL_AMOEBE_NASS:       return GFX_AMOEBE_NASS;
@@ -2516,10 +2535,10 @@ int el2gfx(int element)
     case EL_ERZ_EDEL_ROT:      return GFX_ERZ_EDEL_ROT;
     case EL_ERZ_EDEL_LILA:     return GFX_ERZ_EDEL_LILA;
     case EL_MAMPFER2:          return GFX_MAMPFER2;
-    case EL_SIEB2_INAKTIV:     return GFX_SIEB2_INAKTIV;
-    case EL_SIEB2_LEER:                return GFX_SIEB2_LEER;
-    case EL_SIEB2_VOLL:                return GFX_SIEB2_VOLL;
-    case EL_SIEB2_TOT:         return GFX_SIEB2_TOT;
+    case EL_MAGIC_WALL_BD_OFF: return GFX_MAGIC_WALL_BD_OFF;
+    case EL_MAGIC_WALL_BD_EMPTY:return GFX_MAGIC_WALL_BD_EMPTY;
+    case EL_MAGIC_WALL_BD_FULL:        return GFX_MAGIC_WALL_BD_FULL;
+    case EL_MAGIC_WALL_BD_DEAD:        return GFX_MAGIC_WALL_BD_DEAD;
     case EL_DYNABOMB_ACTIVE_1: return GFX_DYNABOMB;
     case EL_DYNABOMB_ACTIVE_2: return GFX_DYNABOMB;
     case EL_DYNABOMB_ACTIVE_3: return GFX_DYNABOMB;
@@ -2664,6 +2683,7 @@ int el2gfx(int element)
     case EL_BD_WALL:           return GFX_BD_WALL;
     case EL_BD_ROCK:           return GFX_BD_ROCK;
     case EL_DX_SUPABOMB:       return GFX_DX_SUPABOMB;
+    case EL_SP_MURPHY_CLONE:   return GFX_SP_MURPHY_CLONE;
 
     default:
     {