rnd-20000720-1-src
[rocksndiamonds.git] / src / sdl.c
index d8100125d9f0e5ad92e85d773f936d9bfa8ec24a..3f1930136e0e4c8033766490842bb973cb45f9cf 100644 (file)
--- a/src/sdl.c
+++ b/src/sdl.c
@@ -15,6 +15,7 @@
 #ifdef USE_SDL_LIBRARY
 
 #include "main.h"
+#include "misc.h"
 
 inline void SDLCopyArea(SDL_Surface *src_surface, SDL_Surface *dst_surface,
                        int src_x, int src_y,
@@ -54,4 +55,27 @@ inline void SDLFillRectangle(SDL_Surface *surface, int x, int y,
                SDL_MapRGB(surface->format, color_r, color_g, color_b));
 }
 
+inline void SDLDrawSimpleLine(SDL_Surface *surface, int from_x, int from_y,
+                             int to_x, int to_y, unsigned int color)
+{
+  SDL_Rect rect;
+  unsigned int color_r = (color >> 2) && 0xff;
+  unsigned int color_g = (color >> 1) && 0xff;
+  unsigned int color_b = (color >> 0) && 0xff;
+
+  if (from_x > to_x)
+    swap_numbers(&from_x, &to_x);
+
+  if (from_y > to_y)
+    swap_numbers(&from_y, &to_y);
+
+  rect.x = from_x;
+  rect.y = from_y;
+  rect.w = (to_x - from_x + 1);
+  rect.h = (to_y - from_y + 1);
+
+  SDL_FillRect(surface, &rect,
+               SDL_MapRGB(surface->format, color_r, color_g, color_b));
+}
+
 #endif /* USE_SDL_LIBRARY */