rnd-20001203-2-src
authorHolger Schemel <info@artsoft.org>
Sun, 3 Dec 2000 03:36:29 +0000 (04:36 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:35:21 +0000 (10:35 +0200)
src/init.c
src/libgame/msdos.c
src/libgame/msdos.h
src/libgame/sdl.c
src/libgame/sdl.h
src/libgame/system.c
src/libgame/text.c
src/libgame/x11.h
src/main.c
src/main.h

index 1c56fc0a3d9b7f6cfc782690452bc007333b5ae0..08bbb05bdfe968f051c0a73041496c48d4c5bb0b 100644 (file)
@@ -328,11 +328,9 @@ void InitDisplay()
 
 void InitGfx()
 {
-  int i, j;
+  int i;
 
-#if defined(TARGET_SDL)
-  SDL_Surface *sdl_image_tmp;
-#else
+#if defined(TARGET_X11)
   GC copy_clipmask_gc;
   XGCValues clip_gc_values;
   unsigned long clip_gc_valuemask;
@@ -368,6 +366,7 @@ void InitGfx()
   }; 
 #endif
 
+#ifdef TARGET_X11
   static struct
   {
     int start;
@@ -419,6 +418,7 @@ void InitGfx()
     { GFX2_SHIELD_ACTIVE, 3 },
     { -1, 0 }
   };
+#endif
 
   /* initialize playfield properties */
 
@@ -454,6 +454,7 @@ void InitGfx()
 
 #if defined(TARGET_SDL)
 
+#if 0
   /* initialize surface array to 'NULL' */
   for(i=0; i<NUM_TILES; i++)
     tile_masked[i] = NULL;
@@ -463,6 +464,7 @@ void InitGfx()
   {
     for(j=0; j<tile_needs_clipping[i].count; j++)
     {
+      SDL_Surface *sdl_image_tmp;
       int tile = tile_needs_clipping[i].start + j;
       int graphic = tile;
       int src_x, src_y;
@@ -470,7 +472,7 @@ void InitGfx()
       Bitmap src_bitmap;
 
       getGraphicSource(graphic, &bitmap_nr, &src_x, &src_y);
-      src_bitmap = pix_masked[bitmap_nr];
+      src_bitmap = pix[bitmap_nr];
 
       /* create surface for masked tile graphic */
       if ((sdl_image_tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, TILEX, TILEY,
@@ -489,6 +491,7 @@ void InitGfx()
       BlitBitmap(src_bitmap, tile_masked[tile], src_x,src_y, TILEX,TILEY, 0,0);
     }
   }
+#endif
 
 #else /* !TARGET_SDL */
 
@@ -523,6 +526,8 @@ void InitGfx()
   /* create only those clipping Pixmaps we really need */
   for(i=0; tile_needs_clipping[i].start>=0; i++)
   {
+    int j;
+
     for(j=0; j<tile_needs_clipping[i].count; j++)
     {
       int tile = tile_needs_clipping[i].start + j;
@@ -596,13 +601,13 @@ void LoadGfx(int pos, struct PictureFileInfo *pic)
       Error(ERR_EXIT, "IMG_Load() failed: %s", SDL_GetError());
 
     /* create native non-transparent surface for current image */
-    if ((pix[pos] = SDL_DisplayFormat(sdl_image_tmp)) == NULL)
+    if ((pix[pos]->surface = SDL_DisplayFormat(sdl_image_tmp)) == NULL)
       Error(ERR_EXIT, "SDL_DisplayFormat() failed: %s", SDL_GetError());
 
     /* create native transparent surface for current image */
     SDL_SetColorKey(sdl_image_tmp, SDL_SRCCOLORKEY,
                    SDL_MapRGB(sdl_image_tmp->format, 0x00, 0x00, 0x00));
-    if ((pix_masked[pos] = SDL_DisplayFormat(sdl_image_tmp)) == NULL)
+    if ((pix[pos]->surface_masked = SDL_DisplayFormat(sdl_image_tmp)) == NULL)
       Error(ERR_EXIT, "SDL_DisplayFormat() failed: %s", SDL_GetError());
 
     /* free temporary surface */
index 53a0b08fe24e8d370bee631ddf8520b51f6f4990..a49148817ce28d1a3b79d368e9d7123fe6184024 100644 (file)
@@ -642,6 +642,10 @@ void XFreeGC(Display *display, GC gc)
     free(gcv);
 }
 
+void XUnmapWindow(Display *display, Window window)
+{
+}
+
 void XCloseDisplay(Display *display)
 {
   BITMAP *bitmap = video_bitmap;
@@ -887,6 +891,10 @@ void XDestroyImage(XImage *ximage)
 {
 }
 
+void XDestroyWindow(Display *display, Window window)
+{
+}
+
 Bool XQueryPointer(Display *display, Window window,
                   Window *root, Window *child, int *root_x, int *root_y,
                   int *win_x, int *win_y, unsigned int *mask)
index 12b0bb6d45cafcc65ed62cfd4adc0bd87351fb5f..f2bfabef2bb0db198e703babbfd441fe811f6198 100644 (file)
@@ -21,6 +21,9 @@
 /* symbol 'window' is defined in DJGPP cross-compiler in libc.a(conio.o) */
 #define window window_djgpp
 
+/* symbol 'font' is defined in "allegro.h" */
+#define font font_allegro
+
 /* system dependent definitions */
 
 #define TARGET_STRING          "DOS"
@@ -690,6 +693,7 @@ int XReadBitmapFile(Display *, Drawable, char *,
                    unsigned int *, unsigned int *, Pixmap *, int *, int *);
 void XFreePixmap(Display *, Pixmap);
 void XFreeGC(Display *, GC);
+void XUnmapWindow(Display *, Window);
 void XCloseDisplay(Display *);
 void XNextEvent(Display *, XEvent *);
 int XPending(Display *);
@@ -698,6 +702,7 @@ int XLookupString(XKeyEvent *, char *, int, KeySym *, XComposeStatus *);
 void XSetForeground(Display *, GC, unsigned long);
 void XDrawLine(Display *, Drawable, GC, int, int, int, int);
 void XDestroyImage(XImage *);
+void XDestroyWindow(Display *, Window);
 Bool XQueryPointer(Display *, Window, Window *, Window *, int *, int *,
                   int *, int *, unsigned int *);
 void XAutoRepeatOn(Display *);
index 2d6d16b5072df53ae1e1d64ac8e415b2e25c1a09..19526fe0b5a3c1ff1847f019a7e2e0ed302db8cf 100644 (file)
@@ -65,10 +65,11 @@ inline boolean SDLSetVideoMode(DrawBuffer *backbuffer, boolean fullscreen)
   {
     /* switch display to fullscreen mode, if available */
     DrawWindow window_old = *backbuffer;
-    DrawWindow window_new;
+    DrawWindow window_new = CreateBitmapStruct();
 
-    if ((window_new = SDL_SetVideoMode(video.width, video.height, video.depth,
-                                      surface_flags)) == NULL)
+    if ((window_new->surface = SDL_SetVideoMode(video.width, video.height,
+                                               video.depth, surface_flags))
+       == NULL)
     {
       /* switching display to fullscreen mode failed */
       Error(ERR_WARN, "SDL_SetVideoMode() failed: %s", SDL_GetError());
@@ -80,7 +81,7 @@ inline boolean SDLSetVideoMode(DrawBuffer *backbuffer, boolean fullscreen)
     else
     {
       if (window_old)
-       SDL_FreeSurface(window_old);
+       FreeBitmap(window_old);
       *backbuffer = window_new;
 
       video.fullscreen_enabled = TRUE;
@@ -92,10 +93,11 @@ inline boolean SDLSetVideoMode(DrawBuffer *backbuffer, boolean fullscreen)
   {
     /* switch display to window mode */
     DrawWindow window_old = *backbuffer;
-    DrawWindow window_new;
+    DrawWindow window_new = CreateBitmapStruct();
 
-    if ((window_new = SDL_SetVideoMode(video.width, video.height, video.depth,
-                                      surface_flags)) == NULL)
+    if ((window_new->surface = SDL_SetVideoMode(video.width, video.height,
+                                               video.depth, surface_flags))
+       == NULL)
     {
       /* switching display to window mode failed -- should not happen */
       Error(ERR_WARN, "SDL_SetVideoMode() failed: %s", SDL_GetError());
@@ -105,7 +107,7 @@ inline boolean SDLSetVideoMode(DrawBuffer *backbuffer, boolean fullscreen)
     else
     {
       if (window_old)
-       SDL_FreeSurface(window_old);
+       FreeBitmap(window_old);
       *backbuffer = window_new;
 
       video.fullscreen_enabled = FALSE;
index cc60462b05e52fd8b926f03b51a77e2173dbd6a5..c3c46682d51413330fcbfeb3bd7610c204a72332 100644 (file)
 #define FULLSCREEN_STATUS      FULLSCREEN_AVAILABLE
 
 
-/* structure definitions */
-
-struct SDLSurfaceInfo
-{
-  SDL_Surface *surface;
-  SDL_Surface *surface_masked;
-};
-
-
 /* SDL type definitions */
 
 typedef struct SDLSurfaceInfo  *Bitmap;
@@ -65,6 +56,17 @@ typedef int                  Visual;
 typedef int                    Colormap;
 
 
+/* structure definitions */
+
+struct SDLSurfaceInfo
+{
+  SDL_Surface *surface;
+  SDL_Surface *surface_masked;
+  GC gc;
+  GC stored_clip_gc;
+};
+
+
 /* SDL symbol definitions */
 
 #define None                   0L
index fe32a073010a33f7bd92289b9f85d6bcff8c77d4..a88b78cfdb89630d70a96bd83106fa82ea2250e7 100644 (file)
@@ -162,14 +162,14 @@ inline Bitmap CreateBitmap(int width, int height, int depth)
   if (!(pixmap = XCreatePixmap(display, window->drawable,
                               width, height, real_depth)))
     Error(ERR_EXIT, "cannot create pixmap");
-
   new_bitmap->drawable = pixmap;
-#endif
 
   if (window == NULL)
     Error(ERR_EXIT, "Window GC needed for Bitmap -- create Window first");
   new_bitmap->gc = window->gc;
 
+#endif
+
   return new_bitmap;
 }
 
@@ -283,7 +283,7 @@ inline void DrawSimpleWhiteLine(Bitmap bitmap, int from_x, int from_y,
                                int to_x, int to_y)
 {
 #ifdef TARGET_SDL
-  SDLDrawSimpleLine(bitmap->drawable, from_x, from_y, to_x, to_y, 0xffffff);
+  SDLDrawSimpleLine(bitmap->surface, from_x, from_y, to_x, to_y, 0xffffff);
 #else
   XSetForeground(display, bitmap->gc, WhitePixel(display, screen));
   XDrawLine(display, bitmap->drawable, bitmap->gc, from_x, from_y, to_x, to_y);
index 513166fdc5d7b0aeb635745c24aa312dc2ea647c..2fbf1cb319cf3b48b6514d552e383ba70898bbce 100644 (file)
 
 #include "libgame.h"
 
-#if 1
-#include "main_TMP.h"
-#endif
-
 
 /* ========================================================================= */
 /* exported variables                                                        */
index dc40776669fe84676a606ff6e7258aa3374ee804..f48584215ffb9440e2f5f60cd3d8c11155b1e7b3 100644 (file)
 #define FULLSCREEN_STATUS      FULLSCREEN_NOT_AVAILABLE
 
 
-/* structure definitions */
-
-struct X11DrawableInfo
-{
-  Drawable drawable;
-  Drawable clip_mask;
-  GC gc;               /* GC for normal drawing (inheritated from 'window') */
-  GC stored_clip_gc;   /* GC for masked drawing (used for whole Pixmap)     */
-  GC clip_gc;          /* can be 'stored_clip_gc' or one-tile-only clip GC  */
-};
-
-
 /* X11 type definitions */
 
 typedef struct X11DrawableInfo *Bitmap;
@@ -67,6 +55,18 @@ typedef XFocusChangeEvent    FocusChangeEvent;
 typedef XClientMessageEvent    ClientMessageEvent;
 
 
+/* structure definitions */
+
+struct X11DrawableInfo
+{
+  Drawable drawable;
+  Drawable clip_mask;
+  GC gc;               /* GC for normal drawing (inheritated from 'window') */
+  GC stored_clip_gc;   /* GC for masked drawing (used for whole Pixmap)     */
+  GC clip_gc;          /* can be 'stored_clip_gc' or one-tile-only clip GC  */
+};
+
+
 /* X11 symbol definitions */
 
 #define EVENT_BUTTONPRESS      ButtonPress
index 5547d8224a959d4357a1eefed1afd287fb21dd51..bf7e3f5bcba90a439112bc038f705e0bf57495c7 100644 (file)
@@ -36,9 +36,9 @@ GC            tile_clip_gc;
 Bitmap         pix[NUM_BITMAPS];
 #if 0
 Bitmap         pix_masked[NUM_BITMAPS];
-#endif
+
 Bitmap         tile_masked[NUM_TILES];
-#if 0
+
 Pixmap         clipmask[NUM_BITMAPS];
 #endif
 Pixmap         tile_clipmask[NUM_TILES];
@@ -602,6 +602,8 @@ int num_element_info = sizeof(element_info)/sizeof(char *);
 
 
 
+#if 0
+
 /* +-----------------------------------------------------------------------+ */
 /* | SDL TEST STUFF                                                        | */
 /* +-----------------------------------------------------------------------+ */
@@ -976,6 +978,8 @@ void TEST_SDL_JOYSTICK()
 /* | SDL TEST STUFF                                                        | */
 /* +-----------------------------------------------------------------------+ */
 
+#endif
+
 
 
 int main(int argc, char *argv[])
index 512fe3f688d164f93e7b7d4b7a6094dd7daf557e..f2b5320e335af8ecbcc0f638a796309875f18920 100644 (file)
@@ -448,9 +448,9 @@ extern GC           tile_clip_gc;
 extern Bitmap          pix[];
 #if 0
 extern Bitmap          pix_masked[];
-#endif
+
 extern Bitmap          tile_masked[];
-#if 0
+
 extern Pixmap          clipmask[];
 #endif
 extern Pixmap          tile_clipmask[];