struct VideoSystemInfo video;
struct AudioSystemInfo audio;
struct GfxInfo gfx;
-struct FontInfo font;
-struct AnimInfo anim;
struct ArtworkInfo artwork;
struct JoystickInfo joystick;
struct SetupInfo setup;
/* init/close functions */
/* ========================================================================= */
-void InitCommandName(char *argv0)
+void InitProgramInfo(char *argv0,
+ char *userdata_directory, char *program_title,
+ char *window_title, char *icon_title,
+ char *x11_icon_filename, char *x11_iconmask_filename,
+ char *msdos_pointer_filename,
+ char *cookie_prefix, char *filename_prefix,
+ int program_version)
{
program.command_basename =
(strrchr(argv0, '/') ? strrchr(argv0, '/') + 1 : argv0);
+
+ program.userdata_directory = userdata_directory;
+ program.program_title = program_title;
+ program.window_title = window_title;
+ program.icon_title = icon_title;
+ program.x11_icon_filename = x11_icon_filename;
+ program.x11_iconmask_filename = x11_iconmask_filename;
+ program.msdos_pointer_filename = msdos_pointer_filename;
+
+ program.cookie_prefix = cookie_prefix;
+ program.filename_prefix = filename_prefix;
+
+ program.version_major = VERSION_MAJOR(program_version);
+ program.version_minor = VERSION_MINOR(program_version);
+ program.version_patch = VERSION_PATCH(program_version);
}
void InitExitFunction(void (*exit_function)(int))
{
#if defined(PLATFORM_MSDOS)
_fmode = O_BINARY;
-#endif
-
-#if !defined(PLATFORM_UNIX)
- program.userdata_directory = "userdata";
-#endif
-
-#if defined(PLATFORM_MSDOS)
initErrorFile();
#endif
#endif
}
-void InitProgramInfo(char *unix_userdata_directory, char *program_title,
- char *window_title, char *icon_title,
- char *x11_icon_filename, char *x11_iconmask_filename,
- char *msdos_pointer_filename,
- char *cookie_prefix, char *filename_prefix,
- int program_version)
-{
-#if defined(PLATFORM_UNIX)
- program.userdata_directory = unix_userdata_directory;
-#else
- program.userdata_directory = "userdata";
-#endif
-
- program.program_title = program_title;
- program.window_title = window_title;
- program.icon_title = icon_title;
- program.x11_icon_filename = x11_icon_filename;
- program.x11_iconmask_filename = x11_iconmask_filename;
- program.msdos_pointer_filename = msdos_pointer_filename;
-
- program.cookie_prefix = cookie_prefix;
- program.filename_prefix = filename_prefix;
-
- program.version_major = VERSION_MAJOR(program_version);
- program.version_minor = VERSION_MINOR(program_version);
- program.version_patch = VERSION_PATCH(program_version);
-}
-
void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize,
int real_sx, int real_sy,
- int full_sxsize, int full_sysize)
+ int full_sxsize, int full_sysize,
+ Bitmap *field_save_buffer)
{
gfx.sx = sx;
gfx.sy = sy;
gfx.full_sxsize = full_sxsize;
gfx.full_sysize = full_sysize;
+ gfx.field_save_buffer = field_save_buffer;
+
gfx.background_bitmap = NULL;
gfx.background_bitmap_mask = REDRAW_NONE;
#endif
}
+inline void DrawRectangle(Bitmap *bitmap, int x, int y, int width, int height,
+ Pixel color)
+{
+ if (DrawingDeactivated(x, y, width, height))
+ return;
+
+#ifdef TARGET_SDL
+ SDLFillRectangle(bitmap, x, y, width, height, color);
+#else
+ XSetForeground(display, bitmap->gc, color);
+ XFillRectangle(display, bitmap->drawable, bitmap->gc, x, y, width, height);
+ XSetForeground(display, bitmap->gc, BlackPixel(display, screen));
+#endif
+}
+
+#if 1
+inline void ClearRectangle(Bitmap *bitmap, int x, int y, int width, int height)
+{
+#ifdef TARGET_SDL
+ DrawRectangle(bitmap, x, y, width, height, 0x000000);
+#else
+ DrawRectangle(bitmap, x, y, width, height, 0x000000);
+#endif
+}
+#else
inline void ClearRectangle(Bitmap *bitmap, int x, int y, int width, int height)
{
if (DrawingDeactivated(x, y, width, height))
XFillRectangle(display, bitmap->drawable, bitmap->gc, x, y, width, height);
#endif
}
+#endif
inline void ClearRectangleOnBackground(Bitmap *bitmap, int x, int y,
int width, int height)
int width, int height,
int dst_x, int dst_y)
{
- if (DrawingOnBackground(src_x, src_y))
+ if (DrawingOnBackground(dst_x, dst_y))
{
/* draw background */
BlitBitmap(gfx.background_bitmap, dst_bitmap, dst_x, dst_y, width, height,
void CreateBitmapWithSmallBitmaps(Bitmap *src_bitmap)
{
- Bitmap *tmp_bitmap, *tmp_bitmap_2, *tmp_bitmap_4, *tmp_bitmap_8;
+ Bitmap *tmp_bitmap, *tmp_bitmap_2, *tmp_bitmap_8;
int src_width, src_height;
int tmp_width, tmp_height;
tmp_bitmap = CreateBitmap(tmp_width, tmp_height, DEFAULT_DEPTH);
tmp_bitmap_2 = ZoomBitmap(src_bitmap, src_width / 2, src_height / 2);
- tmp_bitmap_4 = ZoomBitmap(src_bitmap, src_width / 4, src_height / 4);
tmp_bitmap_8 = ZoomBitmap(src_bitmap, src_width / 8, src_height / 8);
BlitBitmap(src_bitmap, tmp_bitmap, 0, 0, src_width, src_height, 0, 0);
BlitBitmap(tmp_bitmap_2, tmp_bitmap, 0, 0, src_width / 2, src_height / 2,
0, src_height);
- BlitBitmap(tmp_bitmap_4, tmp_bitmap, 0, 0, src_width / 4, src_height / 4,
- src_width / 2, src_height);
BlitBitmap(tmp_bitmap_8, tmp_bitmap, 0, 0, src_width / 8, src_height / 8,
3 * src_width / 4, src_height);
FreeBitmap(tmp_bitmap_2);
- FreeBitmap(tmp_bitmap_4);
FreeBitmap(tmp_bitmap_8);
#ifdef TARGET_SDL
audio.sound_deactivated = FALSE;
audio.mixer_pipe[0] = audio.mixer_pipe[1] = 0;
- audio.mixer_pid = -1;
+ audio.mixer_pid = 0;
audio.device_name = NULL;
audio.device_fd = -1;