From 959794cfda1f83edc51512211ae5a9f6b1e0b179 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Thu, 15 May 2014 00:15:11 +0200 Subject: [PATCH] rnd-20140515-1-src * removed MS-DOS support --- ChangeLog | 3 + Makefile | 21 +- src/Makefile | 25 +- src/conftime.h | 2 +- src/libgame/Makefile | 2 - src/libgame/image.c | 5 - src/libgame/misc.c | 24 +- src/libgame/msdos.c | 1002 ---------------------------------------- src/libgame/msdos.h | 760 ------------------------------ src/libgame/platform.h | 14 +- src/libgame/setup.c | 25 - src/libgame/system.c | 31 +- src/libgame/system.h | 31 +- src/libgame/x11.c | 8 - src/libgame/x11.h | 7 - src/main.c | 2 - src/main.h | 5 +- 17 files changed, 16 insertions(+), 1951 deletions(-) delete mode 100644 src/libgame/msdos.c delete mode 100644 src/libgame/msdos.h diff --git a/ChangeLog b/ChangeLog index 84e7d51c..2b738cc5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2014-05-15 + * removed MS-DOS support + 2014-05-14 * cleanup of functions RedrawPlayfield() and BlitScreenToBitmap() diff --git a/Makefile b/Makefile index 00e7695b..d80dcb57 100644 --- a/Makefile +++ b/Makefile @@ -41,8 +41,7 @@ X11_PATH = /usr/X11R6 # uncomment to install game in single-user environment (default) # SCORE_ENTRIES = MANY_PER_NAME -# paths for cross-compiling (only needed for non-native MS-DOS and Win32 build) -CROSS_PATH_MSDOS = /usr/local/cross-msdos/i386-msdosdjgpp +# path for cross-compiling (only needed for non-native Windows build) CROSS_PATH_WIN32 = /usr/local/cross-tools/i386-mingw32msvc # compile special edition of R'n'D instead of the normal (classic) version @@ -93,15 +92,9 @@ mac-static: mac2-static: @$(MAKE_CMD) PLATFORM=macosx TARGET=sdl2-static -msdos: - @$(MAKE_CMD) PLATFORM=msdos - os2: @$(MAKE_CMD) PLATFORM=os2 -cross-msdos: - @PATH=$(CROSS_PATH_MSDOS)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-msdos - cross-win32: @PATH=$(CROSS_PATH_WIN32)/bin:${PATH} $(MAKE_CMD) PLATFORM=cross-win32 @@ -172,9 +165,6 @@ dist-clean: dist-build-unix: @BUILD_DIST=TRUE $(MAKE) -dist-build-msdos: - @BUILD_DIST=TRUE $(MAKE) cross-msdos - dist-build-win32: @BUILD_DIST=TRUE $(MAKE) cross-win32 @@ -187,9 +177,6 @@ dist-build-macosx-ppc: dist-package-unix: ./Scripts/make_dist.sh unix . -dist-package-msdos: - ./Scripts/make_dist.sh dos . - dist-package-win32: ./Scripts/make_dist.sh win . @@ -202,9 +189,6 @@ dist-package-macosx-ppc: dist-upload-unix: ./Scripts/make_dist.sh unix . upload -dist-upload-msdos: - ./Scripts/make_dist.sh dos . upload - dist-upload-win32: ./Scripts/make_dist.sh win . upload @@ -218,21 +202,18 @@ dist-build-all: $(MAKE) clean $(MAKE) dist-build-unix ; $(MAKE) dist-clean $(MAKE) dist-build-win32 ; $(MAKE) dist-clean -# $(MAKE) dist-build-msdos ; $(MAKE) dist-clean dist-package-all: $(MAKE) dist-package-unix $(MAKE) dist-package-win32 $(MAKE) dist-package-macosx $(MAKE) dist-package-macosx-ppc -# $(MAKE) dist-package-msdos dist-upload-all: $(MAKE) dist-upload-unix $(MAKE) dist-upload-win32 $(MAKE) dist-upload-macosx $(MAKE) dist-upload-macosx-ppc -# $(MAKE) dist-upload-msdos dist-all: dist-build-all dist-package-all diff --git a/src/Makefile b/src/Makefile index 8efe88c6..39eaad9f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -10,13 +10,9 @@ .EXPORT_ALL_VARIABLES: -ifndef PLATFORM # unknown platform -- try auto detection -ifdef COMSPEC -PLATFORM = msdos -else +ifndef PLATFORM # unknown platform -- default to Unix PLATFORM = unix endif -endif ifdef X11_PATH # path to X11 from top level Makefile XINC_PATH = $(X11_PATH)/include @@ -79,20 +75,6 @@ EXTRA_LDFLAGS = -lshfolder -lwsock32 TARGET = sdl2 endif -ifeq ($(PLATFORM),cross-msdos) # cross-compiling to MS-DOS -PROGBASE = rocks -PROGNAME = ../$(PROGBASE).exe -TARGET = allegro -endif - -ifeq ($(PLATFORM),msdos) # native compiling to MS-DOS -PROGBASE = rocks -PROGNAME = ../$(PROGBASE).exe -SYS_CFLAGS = -DTARGET_X11 -SYS_LDFLAGS = -s -lalleg -RM = del -endif - # ----------------------------------------------------------------------------- # configuring target @@ -127,11 +109,6 @@ SDL_LIBS = -lSDL2_image -lSDL2_mixer -lSDL2_net -lsmpeg2 -lmikmod SYS_LDFLAGS = $(SDL_LIBS) $(shell sdl2-config --static-libs) endif -ifeq ($(TARGET),allegro) # compiling for Allegro target -SYS_CFLAGS = -DTARGET_ALLEGRO -I$(CROSS_PATH_MSDOS)/include -SYS_LDFLAGS = -lalleg -endif - # ----------------------------------------------------------------------------- # configuring compile-time definitions diff --git a/src/conftime.h b/src/conftime.h index 59f9a2a2..762c55f1 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "2014-05-14 23:07" +#define COMPILE_DATE_STRING "2014-05-15 00:13" diff --git a/src/libgame/Makefile b/src/libgame/Makefile index 140e9fd9..62353527 100644 --- a/src/libgame/Makefile +++ b/src/libgame/Makefile @@ -21,7 +21,6 @@ SRCS = system.c \ hash.c \ setup.c \ misc.c \ - msdos.c \ x11.c \ sdl.c @@ -38,7 +37,6 @@ OBJS = system.o \ hash.o \ setup.o \ misc.o \ - msdos.o \ x11.o \ sdl.o diff --git a/src/libgame/image.c b/src/libgame/image.c index 50dce1d7..505238dc 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -23,8 +23,6 @@ #if defined(TARGET_X11) -/* for MS-DOS/Allegro, exclude all except newImage() and freeImage() */ - Image *newImage(unsigned int width, unsigned int height, unsigned int depth) { Image *image; @@ -55,8 +53,6 @@ void freeImage(Image *image) free(image); } -#if defined(PLATFORM_UNIX) - /* extra colors to try allocating in private color maps to minimize flashing */ #define NOFLASH_COLORS 256 @@ -807,7 +803,6 @@ int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename, return PCX_Success; } -#endif /* PLATFORM_UNIX */ #endif /* TARGET_X11 */ diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 38c062de..7c2f4353 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -223,18 +223,6 @@ boolean getTokenValueFromString(char *string, char **token, char **value) /* counter functions */ /* ------------------------------------------------------------------------- */ -#if defined(PLATFORM_MSDOS) -volatile unsigned int counter = 0; - -void increment_counter() -{ - counter++; -} - -END_OF_FUNCTION(increment_counter); -#endif - - /* maximal allowed length of a command line option */ #define MAX_OPTION_LEN 256 @@ -323,22 +311,12 @@ static unsigned int mainCounter(int mode) void InitCounter() /* set counter back to zero */ { -#if !defined(PLATFORM_MSDOS) mainCounter(INIT_COUNTER); -#else - LOCK_VARIABLE(counter); - LOCK_FUNCTION(increment_counter); - install_int_ex(increment_counter, BPS_TO_TIMER(100)); -#endif } unsigned int Counter() /* get milliseconds since last call of InitCounter() */ { -#if !defined(PLATFORM_MSDOS) return mainCounter(READ_COUNTER); -#else - return (counter * 10); -#endif } static void sleep_milliseconds(unsigned int milliseconds_delay) @@ -474,7 +452,7 @@ unsigned int get_random_number(int nr, int max) /* system info functions */ /* ------------------------------------------------------------------------- */ -#if !defined(PLATFORM_MSDOS) && !defined(PLATFORM_ANDROID) +#if !defined(PLATFORM_ANDROID) static char *get_corrected_real_name(char *real_name) { char *real_name_new = checked_malloc(MAX_USERNAME_LEN + 1); diff --git a/src/libgame/msdos.c b/src/libgame/msdos.c deleted file mode 100644 index c4c6ff4f..00000000 --- a/src/libgame/msdos.c +++ /dev/null @@ -1,1002 +0,0 @@ -/*********************************************************** -* Artsoft Retro-Game Library * -*----------------------------------------------------------* -* (c) 1994-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* msdos.c * -***********************************************************/ - -#include "system.h" - - -#if defined(PLATFORM_MSDOS) - -#include "sound.h" -#include "joystick.h" -#include "misc.h" -#include "setup.h" -#include "pcx.h" - -#define AllegroDefaultScreen() (display->screens[display->default_screen]) - -/* allegro driver declarations */ -DECLARE_GFX_DRIVER_LIST(GFX_DRIVER_VBEAF GFX_DRIVER_VESA2L GFX_DRIVER_VESA1) -DECLARE_COLOR_DEPTH_LIST(COLOR_DEPTH_8) -DECLARE_DIGI_DRIVER_LIST(DIGI_DRIVER_SB) -DECLARE_MIDI_DRIVER_LIST() -DECLARE_JOYSTICK_DRIVER_LIST(JOYSTICK_DRIVER_STANDARD) - -/* allegro global variables */ -extern volatile int key_shifts; -extern int num_joysticks; -extern JOYSTICK_INFO joy[]; -extern int i_love_bill; - -/* internal variables of msdos.c */ -static boolean keyboard_auto_repeat = TRUE; -static int key_press_state[MAX_SCANCODES]; -static XEvent event_buffer[MAX_EVENT_BUFFER]; -static int pending_events; -static boolean joystick_event; -static boolean mouse_installed = FALSE; -static int last_mouse_pos; -static int last_mouse_b; -static int last_joystick_state; -static BITMAP* video_bitmap; - -static RGB global_colormap[MAX_COLORS]; -static int global_colormap_entries_used = 0; - -boolean wait_for_vsync; - -static BITMAP *Read_PCX_to_AllegroBitmap(char *); - -static void allegro_init_drivers() -{ - int i; - - for (i = 0; i < MAX_EVENT_BUFFER; i++) - event_buffer[i].type = 0; - - for (i = 0; i < MAX_SCANCODES; i++) - key_press_state[i] = KeyReleaseMask; - - last_mouse_pos = mouse_pos; - last_mouse_b = 0; - - pending_events = 0; - clear_keybuf(); - - /* enable Windows friendly timer mode (already default under Windows) */ - i_love_bill = TRUE; - - install_keyboard(); - install_timer(); - if (install_mouse() > 0) - mouse_installed = TRUE; - - last_joystick_state = 0; - joystick_event = FALSE; -} - -static boolean allegro_init_audio() -{ - reserve_voices(NUM_MIXER_CHANNELS, 0); - - if (install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL) == -1) - if (install_sound(DIGI_SB, MIDI_NONE, NULL) == -1) - return FALSE; - - return TRUE; -} - -static boolean hide_mouse(Display *display, int x, int y, - unsigned int width, unsigned int height) -{ - if (mouse_x + display->mouse_ptr->w < x || mouse_x > x + width) - return FALSE; - if (mouse_y + display->mouse_ptr->h < y || mouse_y > y + height) - return FALSE; - - show_mouse(NULL); - - return TRUE; -} - -static void unhide_mouse(Display *display) -{ - if (mouse_installed) - show_mouse(video_bitmap); -} - -static KeySym ScancodeToKeySym(byte scancode) -{ - switch(scancode) - { - case KEY_ESC: return XK_Escape; - case KEY_1: return XK_1; - case KEY_2: return XK_2; - case KEY_3: return XK_3; - case KEY_4: return XK_4; - case KEY_5: return XK_5; - case KEY_6: return XK_6; - case KEY_7: return XK_7; - case KEY_8: return XK_8; - case KEY_9: return XK_9; - case KEY_0: return XK_0; - case KEY_MINUS: return XK_minus; - case KEY_EQUALS: return XK_equal; - case KEY_BACKSPACE: return XK_BackSpace; - case KEY_TAB: return XK_Tab; - case KEY_Q: return XK_q; - case KEY_W: return XK_w; - case KEY_E: return XK_e; - case KEY_R: return XK_r; - case KEY_T: return XK_t; - case KEY_Y: return XK_y; - case KEY_U: return XK_u; - case KEY_I: return XK_i; - case KEY_O: return XK_o; - case KEY_P: return XK_p; - case KEY_OPENBRACE: return XK_braceleft; - case KEY_CLOSEBRACE: return XK_braceright; - case KEY_ENTER: return XK_Return; - case KEY_LCONTROL: return XK_Control_L; - case KEY_A: return XK_a; - case KEY_S: return XK_s; - case KEY_D: return XK_d; - case KEY_F: return XK_f; - case KEY_G: return XK_g; - case KEY_H: return XK_h; - case KEY_J: return XK_j; - case KEY_K: return XK_k; - case KEY_L: return XK_l; - case KEY_COLON: return XK_colon; - case KEY_QUOTE: return XK_apostrophe; - case KEY_TILDE: return XK_asciitilde; - case KEY_LSHIFT: return XK_Shift_L; - case KEY_BACKSLASH: return XK_backslash; - case KEY_Z: return XK_z; - case KEY_X: return XK_x; - case KEY_C: return XK_c; - case KEY_V: return XK_v; - case KEY_B: return XK_b; - case KEY_N: return XK_n; - case KEY_M: return XK_m; - case KEY_COMMA: return XK_comma; - case KEY_STOP: return XK_period; - case KEY_SLASH: return XK_slash; - case KEY_RSHIFT: return XK_Shift_R; - case KEY_ASTERISK: return XK_KP_Multiply; - case KEY_ALT: return XK_Alt_L; - case KEY_SPACE: return XK_space; - case KEY_CAPSLOCK: return XK_Caps_Lock; - case KEY_F1: return XK_F1; - case KEY_F2: return XK_F2; - case KEY_F3: return XK_F3; - case KEY_F4: return XK_F4; - case KEY_F5: return XK_F5; - case KEY_F6: return XK_F6; - case KEY_F7: return XK_F7; - case KEY_F8: return XK_F8; - case KEY_F9: return XK_F9; - case KEY_F10: return XK_F10; - case KEY_NUMLOCK: return XK_Num_Lock; - case KEY_SCRLOCK: return XK_Scroll_Lock; - case KEY_HOME: return XK_Home; - case KEY_UP: return XK_Up; - case KEY_PGUP: return XK_Page_Up; - case KEY_MINUS_PAD: return XK_KP_Subtract; - case KEY_LEFT: return XK_Left; - case KEY_5_PAD: return XK_KP_5; - case KEY_RIGHT: return XK_Right; - case KEY_PLUS_PAD: return XK_KP_Add; - case KEY_END: return XK_End; - case KEY_DOWN: return XK_Down; - case KEY_PGDN: return XK_Page_Down; - case KEY_INSERT: return XK_Insert; - case KEY_DEL: return XK_Delete; - case KEY_PRTSCR: return XK_Print; - case KEY_F11: return XK_F11; - case KEY_F12: return XK_F12; - case KEY_LWIN: return XK_Meta_L; - case KEY_RWIN: return XK_Meta_R; - case KEY_MENU: return XK_Menu; - case KEY_PAD: return XK_VoidSymbol; - case KEY_RCONTROL: return XK_Control_R; - case KEY_ALTGR: return XK_Alt_R; - case KEY_SLASH2: return XK_KP_Divide; - case KEY_PAUSE: return XK_Pause; - - case NEW_KEY_BACKSLASH: return XK_backslash; - case NEW_KEY_1_PAD: return XK_KP_1; - case NEW_KEY_2_PAD: return XK_KP_2; - case NEW_KEY_3_PAD: return XK_KP_3; - case NEW_KEY_4_PAD: return XK_KP_4; - case NEW_KEY_5_PAD: return XK_KP_5; - case NEW_KEY_6_PAD: return XK_KP_6; - case NEW_KEY_7_PAD: return XK_KP_7; - case NEW_KEY_8_PAD: return XK_KP_8; - case NEW_KEY_9_PAD: return XK_KP_9; - case NEW_KEY_0_PAD: return XK_KP_0; - case NEW_KEY_STOP_PAD: return XK_KP_Separator; - case NEW_KEY_EQUALS_PAD: return XK_KP_Equal; - case NEW_KEY_SLASH_PAD: return XK_KP_Divide; - case NEW_KEY_ASTERISK_PAD: return XK_KP_Multiply; - case NEW_KEY_ENTER_PAD: return XK_KP_Enter; - - default: return XK_VoidSymbol; - } -} - -Pixel AllegroAllocColorCell(int r, int g, int b) -{ - byte pixel_mapping = 0; - int i; - - r >>= 10; - g >>= 10; - b >>= 10; - - /* try to use existing colors from the global colormap */ - for (i = 0; i < global_colormap_entries_used; i++) - { - if (r == global_colormap[i].r && - g == global_colormap[i].g && - b == global_colormap[i].b) /* color found */ - { - pixel_mapping = i; - break; - } - } - - if (i == global_colormap_entries_used) /* color not found */ - { - if (global_colormap_entries_used < MAX_COLORS) - global_colormap_entries_used++; - - i = global_colormap_entries_used - 1; - - global_colormap[i].r = r; - global_colormap[i].g = g; - global_colormap[i].b = b; - - set_palette(global_colormap); - - pixel_mapping = i; - } - - return pixel_mapping; -} - -void XMapWindow(Display *display, Window window) -{ - int x, y; - unsigned int width, height; - boolean mouse_off; - - x = AllegroDefaultScreen().x; - y = AllegroDefaultScreen().y; - width = AllegroDefaultScreen().width; - height = AllegroDefaultScreen().height; - - mouse_off = hide_mouse(display, x, y, width, height); - blit((BITMAP *)window, video_bitmap, 0, 0, x, y, width, height); - - if (mouse_off) - unhide_mouse(display); -} - -Display *XOpenDisplay(char *display_name) -{ - Screen *screen; - Display *display; - BITMAP *mouse_bitmap = NULL; - char *mouse_filename = getCustomImageFilename(program.msdos_cursor_filename); - - if ((mouse_bitmap = Read_PCX_to_AllegroBitmap(mouse_filename)) == NULL) - return NULL; - - screen = malloc(sizeof(Screen)); - display = malloc(sizeof(Display)); - - screen[0].cmap = 0; - screen[0].root = 0; - screen[0].white_pixel = AllegroAllocColorCell(0xFFFF, 0xFFFF, 0xFFFF); - screen[0].black_pixel = AllegroAllocColorCell(0x0000, 0x0000, 0x0000); - screen[0].video_bitmap = NULL; - - display->default_screen = 0; - display->screens = screen; - display->mouse_ptr = mouse_bitmap; - - allegro_init(); - allegro_init_drivers(); - set_color_depth(8); - - /* force Windows 95 to switch to fullscreen mode */ - set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0); - rest(200); - set_gfx_mode(GFX_AUTODETECT, XRES, YRES, 0, 0); - - return display; -} - -Window XCreateSimpleWindow(Display *display, Window parent, int x, int y, - unsigned int width, unsigned int height, - unsigned int border_width, unsigned int border, - unsigned int background) -{ - video_bitmap = create_video_bitmap(XRES, YRES); - clear_to_color(video_bitmap, background); - - AllegroDefaultScreen().video_bitmap = video_bitmap; - AllegroDefaultScreen().x = x; - AllegroDefaultScreen().y = y; - AllegroDefaultScreen().width = XRES; - AllegroDefaultScreen().height = YRES; - - set_mouse_sprite(display->mouse_ptr); - -#if 0 - set_mouse_sprite_focus(1, 1); -#endif - - set_mouse_speed(1, 1); - set_mouse_range(AllegroDefaultScreen().x + 1, - AllegroDefaultScreen().y + 1, - AllegroDefaultScreen().x + video.width + 1, - AllegroDefaultScreen().y + video.height + 1); - - show_video_bitmap(video_bitmap); - - return (Window)video_bitmap; -} - -Status XStringListToTextProperty(char **list, int count, - XTextProperty *text_prop_return) -{ - char *string; - - if (count >= 1) - { - string = malloc(strlen(list[0] + 1)); - strcpy(string, list[0]); - text_prop_return->value = (unsigned char *)string; - return 1; - } - else - text_prop_return = NULL; - - return 0; -} - -void XFree(void *data) -{ - checked_free(data); -} - -GC XCreateGC(Display *display, Drawable d, unsigned int value_mask, - XGCValues *values) -{ - XGCValues *gcv; - gcv = malloc(sizeof(XGCValues)); - gcv->foreground = values->foreground; - gcv->background = values->background; - gcv->graphics_exposures = values->graphics_exposures; - gcv->clip_mask = values->clip_mask; - gcv->clip_x_origin = values->clip_x_origin; - gcv->clip_y_origin = values->clip_y_origin; - gcv->value_mask = value_mask; - return (GC)gcv; -} - -void XSetClipMask(Display *display, GC gc, Pixmap pixmap) -{ - XGCValues *gcv = (XGCValues *)gc; - - gcv->clip_mask = pixmap; - gcv->value_mask |= GCClipMask; -} - -void XSetClipOrigin(Display *display, GC gc, int x, int y) -{ - XGCValues *gcv = (XGCValues *)gc; - - gcv->clip_x_origin = x; - gcv->clip_x_origin = y; -} - -void XFillRectangle(Display *display, Drawable d, GC gc, int x, int y, - unsigned int width, unsigned int height) -{ - boolean mouse_off = FALSE; - - if ((BITMAP *)d == video_bitmap) - { - x += AllegroDefaultScreen().x; - y += AllegroDefaultScreen().y; - freeze_mouse_flag = TRUE; - mouse_off = hide_mouse(display, x, y, width, height); - } - - rectfill((BITMAP *)d, x, y, x + width - 1, y + height - 1, - ((XGCValues *)gc)->foreground); - - if (mouse_off) - unhide_mouse(display); - - freeze_mouse_flag = FALSE; -} - -Pixmap XCreatePixmap(Display *display, Drawable d, unsigned int width, - unsigned int height, unsigned int depth) -{ - BITMAP *bitmap = NULL; - - if (gfx_capabilities & GFX_HW_VRAM_BLIT && - width == gfx.scrollbuffer_width && height == gfx.scrollbuffer_height) - bitmap = create_video_bitmap(width, height); - - if (bitmap == NULL) - bitmap = create_bitmap(width, height); - - return (Pixmap)bitmap; -} - -void XSync(Display *display, Bool discard_events) -{ - wait_for_vsync = TRUE; -} - -inline void XCopyArea(Display *display, Drawable src, Drawable dest, GC gc, - int src_x, int src_y, - unsigned int width, unsigned int height, - int dest_x, int dest_y) -{ - boolean mouse_off = FALSE; - - if ((BITMAP *)src == video_bitmap) - { - src_x += AllegroDefaultScreen().x; - src_y += AllegroDefaultScreen().y; - } - - if ((BITMAP *)dest == video_bitmap) - { - dest_x += AllegroDefaultScreen().x; - dest_y += AllegroDefaultScreen().y; - freeze_mouse_flag = TRUE; - mouse_off = hide_mouse(display, dest_x, dest_y, width, height); - } - - if (wait_for_vsync) - { - wait_for_vsync = FALSE; - vsync(); - } - - if (((XGCValues *)gc)->value_mask & GCClipMask) - masked_blit((BITMAP *)src, (BITMAP *)dest, src_x, src_y, dest_x, dest_y, - width, height); - else - blit((BITMAP *)src, (BITMAP *)dest, src_x, src_y, dest_x, dest_y, - width, height); - - if (mouse_off) - unhide_mouse(display); - - freeze_mouse_flag = FALSE; -} - -static BITMAP *Image_to_AllegroBitmap(Image *image) -{ - BITMAP *bitmap; - byte *src_ptr = image->data; - byte pixel_mapping[MAX_COLORS]; - unsigned int depth = 8; - int i, x, y; - - if (image->type == IMAGETYPE_TRUECOLOR && depth == 8) - Error(ERR_EXIT, "cannot handle true-color images on 8-bit display"); - - /* allocate new allegro bitmap structure */ - if ((bitmap = create_bitmap_ex(depth, image->width, image->height)) == NULL) - { - errno_pcx = PCX_NoMemory; - return NULL; - } - - clear(bitmap); - - /* try to use existing colors from the global colormap */ - for (i = 0; i < MAX_COLORS; i++) - { - if (!image->rgb.color_used[i]) - continue; - - pixel_mapping[i] = AllegroAllocColorCell(image->rgb.red[i], - image->rgb.green[i], - image->rgb.blue[i]); - } - - /* copy bitmap data */ - for (y = 0; y < image->height; y++) - for (x = 0; x < image->width; x++) - putpixel(bitmap, x, y, pixel_mapping[*src_ptr++]); - - return bitmap; -} - -static BITMAP *Read_PCX_to_AllegroBitmap(char *filename) -{ - BITMAP *bitmap; - Image *image; - - /* read the graphic file in PCX format to internal image structure */ - if ((image = Read_PCX_to_Image(filename)) == NULL) - return NULL; - - /* convert internal image structure to allegro bitmap structure */ - if ((bitmap = Image_to_AllegroBitmap(image)) == NULL) - return NULL; - - set_palette(global_colormap); - - return bitmap; -} - -int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename, - Pixmap *pixmap, Pixmap *pixmap_mask) -{ - BITMAP *bitmap; - - if ((bitmap = Read_PCX_to_AllegroBitmap(filename)) == NULL) - return errno_pcx; - - *pixmap = (Pixmap)bitmap; - - /* pixmap_mask will never be used in Allegro (which uses masked_blit()), - so use non-NULL dummy pointer to empty Pixmap */ - *pixmap_mask = (Pixmap)DUMMY_MASK; - - return PCX_Success; -} - -int XReadBitmapFile(Display *display, Drawable d, char *filename, - unsigned int *width_return, unsigned int *height_return, - Pixmap *bitmap_return, - int *x_hot_return, int *y_hot_return) -{ - BITMAP *bitmap; - - if ((bitmap = Read_PCX_to_AllegroBitmap(filename)) == NULL) - return BitmapOpenFailed; - - *width_return = bitmap->w; - *height_return = bitmap->h; - *x_hot_return = -1; - *y_hot_return = -1; - *bitmap_return = (Pixmap)bitmap; - - return BitmapSuccess; -} - -void XFreePixmap(Display *display, Pixmap pixmap) -{ - if (pixmap != DUMMY_MASK && - (is_memory_bitmap((BITMAP *)pixmap) || - is_screen_bitmap((BITMAP *)pixmap))) - destroy_bitmap((BITMAP *)pixmap); -} - -void XFreeGC(Display *display, GC gc) -{ - XGCValues *gcv = (XGCValues *)gc; - - checked_free(gcv); -} - -void XUnmapWindow(Display *display, Window window) -{ -} - -void XCloseDisplay(Display *display) -{ - BITMAP *bitmap = video_bitmap; - - if (is_screen_bitmap(bitmap)) - destroy_bitmap(bitmap); - - checked_free(display->screens); - checked_free(display); - - /* return to text mode (or DOS box on Windows screen) */ - set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); -} - -void XNextEvent(Display *display, XEvent *event_return) -{ - while (!pending_events) - XPending(display); - - memcpy(event_return, &event_buffer[pending_events], sizeof(XEvent)); - pending_events--; -} - -static void NewKeyEvent(int key_press_state, KeySym keysym) -{ - XKeyEvent *xkey; - - if (pending_events >= MAX_EVENT_BUFFER) - return; - - pending_events++; - xkey = (XKeyEvent *)&event_buffer[pending_events]; - xkey->type = key_press_state; - xkey->state = (unsigned int)keysym; -} - -#define HANDLE_RAW_KB_ALL_KEYS 0 -#define HANDLE_RAW_KB_MODIFIER_KEYS_ONLY 1 - -static int modifier_scancode[] = -{ - KEY_LSHIFT, - KEY_RSHIFT, - KEY_LCONTROL, - KEY_RCONTROL, - KEY_ALT, - KEY_ALTGR, - KEY_LWIN, - KEY_RWIN, - KEY_CAPSLOCK, - KEY_NUMLOCK, - KEY_SCRLOCK, - -1 -}; - -static void HandleKeyboardRaw(int mode) -{ - int i; - - for (i = 0; i < MAX_SCANCODES; i++) - { - int scancode, new_state, event_type; - char key_pressed; - - if (mode == HANDLE_RAW_KB_MODIFIER_KEYS_ONLY) - { - if ((scancode = modifier_scancode[i]) == -1) - return; - } - else - scancode = i; - - key_pressed = key[scancode]; - new_state = (key_pressed ? KeyPressMask : KeyReleaseMask); - event_type = (key_pressed ? KeyPress : KeyRelease); - - if (key_press_state[i] == new_state) /* state not changed */ - continue; - - key_press_state[i] = new_state; - - NewKeyEvent(event_type, ScancodeToKeySym(scancode)); - } -} - -static void HandleKeyboardEvent() -{ - if (keypressed()) - { - int key_info = readkey(); - int scancode = (key_info >> 8); - int ascii = (key_info & 0xff); - KeySym keysym = ScancodeToKeySym(scancode); - - if (scancode == KEY_PAD) - { - /* keys on the numeric keypad return just scancode 'KEY_PAD' - for some reason, so we must handle them separately */ - - if (ascii >= '0' && ascii <= '9') - keysym = XK_KP_0 + (KeySym)(ascii - '0'); - else if (ascii == '.') - keysym = XK_KP_Separator; - } - else if (ascii >= ' ' && ascii <= 'Z') - keysym = XK_space + (KeySym)(ascii - ' '); - else if (ascii == '^') - keysym = XK_asciicircum; - else if (ascii == '_') - keysym = XK_underscore; - else if (ascii == 'Ä') - keysym = XK_Adiaeresis; - else if (ascii == 'Ö') - keysym = XK_Odiaeresis; - else if (ascii == 'Ü') - keysym = XK_Udiaeresis; - else if (ascii == 'ä') - keysym = XK_adiaeresis; - else if (ascii == 'ö') - keysym = XK_odiaeresis; - else if (ascii == 'ü') - keysym = XK_udiaeresis; - else if (ascii == 'ß') - keysym = XK_ssharp; - - NewKeyEvent(KeyPress, keysym); - } - else if (key_shifts & (KB_SHIFT_FLAG | KB_CTRL_FLAG | KB_ALT_FLAG)) - { - /* the allegro function keypressed() does not give us single pressed - modifier keys, so we must detect them with the internal global - allegro variable 'key_shifts' and then handle them separately */ - - HandleKeyboardRaw(HANDLE_RAW_KB_MODIFIER_KEYS_ONLY); - } -} - -int XPending(Display *display) -{ - XButtonEvent *xbutton; - XMotionEvent *xmotion; - int i; - - /* When using 'HandleKeyboardRaw()', keyboard input is also stored in - the allegro keyboard input buffer and would be available a second - time by calling 'HandleKeyboardEvent()'. To avoid double keyboard - events, the allegro function 'clear_keybuf()' must be called each - time when switching from calling 'HandleKeyboardRaw()' to calling - 'HandleKeyboardEvent()' to get keyboard input, which is actually - done by 'XAutoRepeatOn()' which sets keyboard_auto_repeat to TRUE. */ - - /* keyboard event */ - if (keyboard_auto_repeat) - HandleKeyboardEvent(); - else - HandleKeyboardRaw(HANDLE_RAW_KB_ALL_KEYS); - - /* mouse motion event */ - if (mouse_pos != last_mouse_pos) - { - last_mouse_pos = mouse_pos; - pending_events++; - xmotion = (XMotionEvent *)&event_buffer[pending_events]; - xmotion->type = MotionNotify; - xmotion->x = mouse_x - AllegroDefaultScreen().x; - xmotion->y = mouse_y - AllegroDefaultScreen().y; - } - - /* mouse button event */ - if (mouse_b != last_mouse_b) - { - for (i = 0; i < 3; i++) /* check all three mouse buttons */ - { - int bitmask = (1 << i); - - if ((last_mouse_b & bitmask) != (mouse_b & bitmask)) - { - int mapping[3] = { 1, 3, 2 }; - - pending_events++; - xbutton = (XButtonEvent *)&event_buffer[pending_events]; - xbutton->type = (mouse_b & bitmask ? ButtonPress : ButtonRelease); - xbutton->button = mapping[i]; - xbutton->x = mouse_x - AllegroDefaultScreen().x; - xbutton->y = mouse_y - AllegroDefaultScreen().y; - } - } - last_mouse_b = mouse_b; - } - - return pending_events; -} - -KeySym XLookupKeysym(XKeyEvent *key_event, int index) -{ - return key_event->state; -} - -int XLookupString(XKeyEvent *key_event, char *buffer, int buffer_size, - KeySym *key, XComposeStatus *compose) -{ - *key = key_event->state; - return 0; -} - -void XSetForeground(Display *display, GC gc, unsigned int pixel) -{ - XGCValues *gcv = (XGCValues *)gc; - - gcv->foreground = pixel; -} - -void XDrawLine(Display *display, Drawable d, GC gc, - int x1, int y1, int x2, int y2) -{ - XGCValues *gcv = (XGCValues *)gc; - boolean mouse_off = FALSE; - - if ((BITMAP *)d == video_bitmap) - { - x1 += AllegroDefaultScreen().x; - y1 += AllegroDefaultScreen().y; - x2 += AllegroDefaultScreen().x; - y2 += AllegroDefaultScreen().y; - freeze_mouse_flag = TRUE; - mouse_off = hide_mouse(display, MIN(x1, x2), MIN(y1, y2), - MAX(x1, x2) - MIN(x1, x2), - MAX(y1, y2) - MIN(y1, y2)); - } - - line((BITMAP *)d, x1, y1, x2, y2, gcv->foreground); - - if (mouse_off) - unhide_mouse(display); - - freeze_mouse_flag = FALSE; -} - -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) -{ - *win_x = mouse_x - AllegroDefaultScreen().x; - *win_y = mouse_y - AllegroDefaultScreen().y; - - return True; -} - -void XAutoRepeatOn(Display *display) -{ - keyboard_auto_repeat = TRUE; - clear_keybuf(); -} - -void XAutoRepeatOff(Display *display) -{ - keyboard_auto_repeat = FALSE; -} - -void AllegroDrawLine(Drawable d, int from_x, int from_y, int to_x, int to_y, - Pixel color) -{ - boolean mouse_off = FALSE; - - if ((BITMAP *)d == video_bitmap) - { - int dx = AllegroDefaultScreen().x; - int dy = AllegroDefaultScreen().y; - int x1, y1, x2, y2; - - from_x += dx; - from_y += dy; - to_x += dx; - to_y += dy; - - x1 = (from_x < to_x ? from_x : to_x); - y1 = (from_y < to_y ? from_y : to_y); - x2 = (from_x < to_x ? to_x : from_x); - y2 = (from_y < to_y ? to_y : from_y); - - freeze_mouse_flag = TRUE; - mouse_off = hide_mouse(display, x1, y1, x2 - x1 + 1, y2 - y1 + 1); - } - - line((BITMAP *)d, from_x, from_y, to_x, to_y, color); - - if (mouse_off) - unhide_mouse(display); - - freeze_mouse_flag = FALSE; -} - -Pixel AllegroGetPixel(Drawable d, int x, int y) -{ - return getpixel((BITMAP *)d, x, y); -} - -void AllegroZoomBitmap(Drawable src, Drawable dst, - int src_width, int src_height, - int dst_width, int dst_height) -{ - stretch_blit((BITMAP *)src, (BITMAP *)dst, - 0, 0, src_width, src_height, 0, 0, dst_width, dst_height); -} - -void MSDOSOpenAudio(void) -{ - if (allegro_init_audio()) - { - audio.sound_available = TRUE; - audio.music_available = TRUE; - audio.loops_available = TRUE; - audio.sound_enabled = TRUE; - - audio.num_channels = NUM_MIXER_CHANNELS; - audio.music_channel = MUSIC_CHANNEL; - audio.first_sound_channel = FIRST_SOUND_CHANNEL; - - Mixer_InitChannels(); - } -} - -void MSDOSCloseAudio(void) -{ - /* nothing to be done here */ -} - -void NetworkServer(int port, int serveronly) -{ - Error(ERR_WARN, "networking not supported in DOS version"); -} - - -/* ========================================================================= */ -/* joystick functions */ -/* ========================================================================= */ - -void MSDOSInitJoysticks() -{ - int i; - - /* start from scratch */ - remove_joystick(); - - /* try to access two joysticks; if that fails, try to access just one */ - if (install_joystick(JOY_TYPE_2PADS) == 0 || - install_joystick(JOY_TYPE_AUTODETECT) == 0) - joystick.status = JOYSTICK_ACTIVATED; - - for (i = 0; i < MAX_PLAYERS; i++) - { - char *device_name = setup.input[i].joy.device_name; - int joystick_nr = getJoystickNrFromDeviceName(device_name); - - if (joystick_nr >= num_joysticks) - joystick_nr = -1; - - /* misuse joystick file descriptor variable to store joystick number */ - joystick.fd[i] = joystick_nr; - } -} - -boolean MSDOSReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2) -{ - /* the allegro global variable 'num_joysticks' contains the number - of joysticks found at initialization under MS-DOS / Windows */ - - if (nr < 0 || nr >= num_joysticks) - return FALSE; - - poll_joystick(); - - if (x != NULL) - *x = joy[nr].stick[0].axis[0].pos; - if (y != NULL) - *y = joy[nr].stick[0].axis[1].pos; - - if (b1 != NULL) - *b1 = joy[nr].button[0].b; - if (b2 != NULL) - *b2 = joy[nr].button[1].b; - - return TRUE; -} - -#endif /* PLATFORM_MSDOS */ diff --git a/src/libgame/msdos.h b/src/libgame/msdos.h deleted file mode 100644 index 9d6a2155..00000000 --- a/src/libgame/msdos.h +++ /dev/null @@ -1,760 +0,0 @@ -/*********************************************************** -* Artsoft Retro-Game Library * -*----------------------------------------------------------* -* (c) 1994-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* msdos.h * -***********************************************************/ - -#ifndef MSDOS_H -#define MSDOS_H - -#include -#include "allegro.h" - - -/* symbol 'window' is defined in DJGPP cross-compiler in libc.a(conio.o) */ -#define window window_internal - -/* symbol 'font' is defined in "allegro.h" */ -#define font font_internal - -/* system dependent definitions */ - -#define TARGET_STRING "DOS" - -/* allegro defines TRUE as -1 */ -#ifdef TRUE -#undef TRUE -#undef FALSE -#endif - -#define TRUE 1 -#define FALSE 0 - -#define XRES 800 -#define YRES 600 - -/* allegro defines some macros that bother the rest of the program */ -#ifdef joy_x -#undef joy_x -#undef joy_y -#undef joy_left -#undef joy_right -#undef joy_up -#undef joy_down -#undef joy_b1 -#undef joy_b2 -#endif - -/* additional Allegro keyboard mapping */ - -/* The following are all undefined in Allegro */ -#define NEW_KEY_BACKSLASH 86 -#define NEW_KEY_1_PAD 101 -#define NEW_KEY_2_PAD 102 -#define NEW_KEY_3_PAD 103 -#define NEW_KEY_4_PAD 104 -#define NEW_KEY_5_PAD 105 -#define NEW_KEY_6_PAD 106 -#define NEW_KEY_7_PAD 107 -#define NEW_KEY_8_PAD 108 -#define NEW_KEY_9_PAD 109 -#define NEW_KEY_0_PAD 110 -#define NEW_KEY_STOP_PAD 111 -#define NEW_KEY_EQUALS_PAD 112 -#define NEW_KEY_SLASH_PAD 113 -#define NEW_KEY_ASTERISK_PAD 114 -#define NEW_KEY_ENTER_PAD 115 - -/* X11 keyboard mapping (from 'keysymdef.h') */ - -#define XK_VoidSymbol 0xFFFFFF /* void symbol */ - -/* - * TTY Functions, cleverly chosen to map to ascii, for convenience of - * programming, but could have been arbitrary (at the cost of lookup - * tables in client code. - */ - -#define XK_BackSpace 0xFF08 /* back space, back char */ -#define XK_Tab 0xFF09 -#define XK_Linefeed 0xFF0A /* Linefeed, LF */ -#define XK_Clear 0xFF0B -#define XK_Return 0xFF0D /* Return, enter */ -#define XK_Pause 0xFF13 /* Pause, hold */ -#define XK_Scroll_Lock 0xFF14 -#define XK_Sys_Req 0xFF15 -#define XK_Escape 0xFF1B -#define XK_Delete 0xFFFF /* Delete, rubout */ - -/* International & multi-key character composition */ - -#define XK_Multi_key 0xFF20 /* Multi-key character compose */ -#define XK_SingleCandidate 0xFF3C -#define XK_MultipleCandidate 0xFF3D -#define XK_PreviousCandidate 0xFF3E - -/* Cursor control & motion */ - -#define XK_Home 0xFF50 -#define XK_Left 0xFF51 /* Move left, left arrow */ -#define XK_Up 0xFF52 /* Move up, up arrow */ -#define XK_Right 0xFF53 /* Move right, right arrow */ -#define XK_Down 0xFF54 /* Move down, down arrow */ -#define XK_Prior 0xFF55 /* Prior, previous */ -#define XK_Page_Up 0xFF55 -#define XK_Next 0xFF56 /* Next */ -#define XK_Page_Down 0xFF56 -#define XK_End 0xFF57 /* EOL */ -#define XK_Begin 0xFF58 /* BOL */ - -/* Misc Functions */ - -#define XK_Select 0xFF60 /* Select, mark */ -#define XK_Print 0xFF61 -#define XK_Execute 0xFF62 /* Execute, run, do */ -#define XK_Insert 0xFF63 /* Insert, insert here */ -#define XK_Undo 0xFF65 /* Undo, oops */ -#define XK_Redo 0xFF66 /* redo, again */ -#define XK_Menu 0xFF67 -#define XK_Find 0xFF68 /* Find, search */ -#define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */ -#define XK_Help 0xFF6A /* Help */ -#define XK_Break 0xFF6B -#define XK_Mode_switch 0xFF7E /* Character set switch */ -#define XK_script_switch 0xFF7E /* Alias for mode_switch */ -#define XK_Num_Lock 0xFF7F - -/* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ - -#define XK_KP_Space 0xFF80 /* space */ -#define XK_KP_Tab 0xFF89 -#define XK_KP_Enter 0xFF8D /* enter */ -#define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */ -#define XK_KP_F2 0xFF92 -#define XK_KP_F3 0xFF93 -#define XK_KP_F4 0xFF94 -#define XK_KP_Home 0xFF95 -#define XK_KP_Left 0xFF96 -#define XK_KP_Up 0xFF97 -#define XK_KP_Right 0xFF98 -#define XK_KP_Down 0xFF99 -#define XK_KP_Prior 0xFF9A -#define XK_KP_Page_Up 0xFF9A -#define XK_KP_Next 0xFF9B -#define XK_KP_Page_Down 0xFF9B -#define XK_KP_End 0xFF9C -#define XK_KP_Begin 0xFF9D -#define XK_KP_Insert 0xFF9E -#define XK_KP_Delete 0xFF9F -#define XK_KP_Equal 0xFFBD /* equals */ -#define XK_KP_Multiply 0xFFAA -#define XK_KP_Add 0xFFAB -#define XK_KP_Separator 0xFFAC /* separator, often comma */ -#define XK_KP_Subtract 0xFFAD -#define XK_KP_Decimal 0xFFAE -#define XK_KP_Divide 0xFFAF - -#define XK_KP_0 0xFFB0 -#define XK_KP_1 0xFFB1 -#define XK_KP_2 0xFFB2 -#define XK_KP_3 0xFFB3 -#define XK_KP_4 0xFFB4 -#define XK_KP_5 0xFFB5 -#define XK_KP_6 0xFFB6 -#define XK_KP_7 0xFFB7 -#define XK_KP_8 0xFFB8 -#define XK_KP_9 0xFFB9 - -/* - * Auxilliary Functions; note the duplicate definitions for left and right - * function keys; Sun keyboards and a few other manufactures have such - * function key groups on the left and/or right sides of the keyboard. - * We've not found a keyboard with more than 35 function keys total. - */ - -#define XK_F1 0xFFBE -#define XK_F2 0xFFBF -#define XK_F3 0xFFC0 -#define XK_F4 0xFFC1 -#define XK_F5 0xFFC2 -#define XK_F6 0xFFC3 -#define XK_F7 0xFFC4 -#define XK_F8 0xFFC5 -#define XK_F9 0xFFC6 -#define XK_F10 0xFFC7 -#define XK_F11 0xFFC8 -#define XK_L1 0xFFC8 -#define XK_F12 0xFFC9 -#define XK_L2 0xFFC9 -#define XK_F13 0xFFCA -#define XK_L3 0xFFCA -#define XK_F14 0xFFCB -#define XK_L4 0xFFCB -#define XK_F15 0xFFCC -#define XK_L5 0xFFCC -#define XK_F16 0xFFCD -#define XK_L6 0xFFCD -#define XK_F17 0xFFCE -#define XK_L7 0xFFCE -#define XK_F18 0xFFCF -#define XK_L8 0xFFCF -#define XK_F19 0xFFD0 -#define XK_L9 0xFFD0 -#define XK_F20 0xFFD1 -#define XK_L10 0xFFD1 -#define XK_F21 0xFFD2 -#define XK_R1 0xFFD2 -#define XK_F22 0xFFD3 -#define XK_R2 0xFFD3 -#define XK_F23 0xFFD4 -#define XK_R3 0xFFD4 -#define XK_F24 0xFFD5 -#define XK_R4 0xFFD5 -#define XK_F25 0xFFD6 -#define XK_R5 0xFFD6 -#define XK_F26 0xFFD7 -#define XK_R6 0xFFD7 -#define XK_F27 0xFFD8 -#define XK_R7 0xFFD8 -#define XK_F28 0xFFD9 -#define XK_R8 0xFFD9 -#define XK_F29 0xFFDA -#define XK_R9 0xFFDA -#define XK_F30 0xFFDB -#define XK_R10 0xFFDB -#define XK_F31 0xFFDC -#define XK_R11 0xFFDC -#define XK_F32 0xFFDD -#define XK_R12 0xFFDD -#define XK_F33 0xFFDE -#define XK_R13 0xFFDE -#define XK_F34 0xFFDF -#define XK_R14 0xFFDF -#define XK_F35 0xFFE0 -#define XK_R15 0xFFE0 - -/* Modifiers */ - -#define XK_Shift_L 0xFFE1 /* Left shift */ -#define XK_Shift_R 0xFFE2 /* Right shift */ -#define XK_Control_L 0xFFE3 /* Left control */ -#define XK_Control_R 0xFFE4 /* Right control */ -#define XK_Caps_Lock 0xFFE5 /* Caps lock */ -#define XK_Shift_Lock 0xFFE6 /* Shift lock */ - -#define XK_Meta_L 0xFFE7 /* Left meta */ -#define XK_Meta_R 0xFFE8 /* Right meta */ -#define XK_Alt_L 0xFFE9 /* Left alt */ -#define XK_Alt_R 0xFFEA /* Right alt */ -#define XK_Super_L 0xFFEB /* Left super */ -#define XK_Super_R 0xFFEC /* Right super */ -#define XK_Hyper_L 0xFFED /* Left hyper */ -#define XK_Hyper_R 0xFFEE /* Right hyper */ - -/* - * Latin 1 - * Byte 3 = 0 - */ - -#define XK_space 0x020 -#define XK_exclam 0x021 -#define XK_quotedbl 0x022 -#define XK_numbersign 0x023 -#define XK_dollar 0x024 -#define XK_percent 0x025 -#define XK_ampersand 0x026 -#define XK_apostrophe 0x027 -#define XK_quoteright 0x027 /* deprecated */ -#define XK_parenleft 0x028 -#define XK_parenright 0x029 -#define XK_asterisk 0x02a -#define XK_plus 0x02b -#define XK_comma 0x02c -#define XK_minus 0x02d -#define XK_period 0x02e -#define XK_slash 0x02f -#define XK_0 0x030 -#define XK_1 0x031 -#define XK_2 0x032 -#define XK_3 0x033 -#define XK_4 0x034 -#define XK_5 0x035 -#define XK_6 0x036 -#define XK_7 0x037 -#define XK_8 0x038 -#define XK_9 0x039 -#define XK_colon 0x03a -#define XK_semicolon 0x03b -#define XK_less 0x03c -#define XK_equal 0x03d -#define XK_greater 0x03e -#define XK_question 0x03f -#define XK_at 0x040 -#define XK_A 0x041 -#define XK_B 0x042 -#define XK_C 0x043 -#define XK_D 0x044 -#define XK_E 0x045 -#define XK_F 0x046 -#define XK_G 0x047 -#define XK_H 0x048 -#define XK_I 0x049 -#define XK_J 0x04a -#define XK_K 0x04b -#define XK_L 0x04c -#define XK_M 0x04d -#define XK_N 0x04e -#define XK_O 0x04f -#define XK_P 0x050 -#define XK_Q 0x051 -#define XK_R 0x052 -#define XK_S 0x053 -#define XK_T 0x054 -#define XK_U 0x055 -#define XK_V 0x056 -#define XK_W 0x057 -#define XK_X 0x058 -#define XK_Y 0x059 -#define XK_Z 0x05a -#define XK_bracketleft 0x05b -#define XK_backslash 0x05c -#define XK_bracketright 0x05d -#define XK_asciicircum 0x05e -#define XK_underscore 0x05f -#define XK_grave 0x060 -#define XK_quoteleft 0x060 /* deprecated */ -#define XK_a 0x061 -#define XK_b 0x062 -#define XK_c 0x063 -#define XK_d 0x064 -#define XK_e 0x065 -#define XK_f 0x066 -#define XK_g 0x067 -#define XK_h 0x068 -#define XK_i 0x069 -#define XK_j 0x06a -#define XK_k 0x06b -#define XK_l 0x06c -#define XK_m 0x06d -#define XK_n 0x06e -#define XK_o 0x06f -#define XK_p 0x070 -#define XK_q 0x071 -#define XK_r 0x072 -#define XK_s 0x073 -#define XK_t 0x074 -#define XK_u 0x075 -#define XK_v 0x076 -#define XK_w 0x077 -#define XK_x 0x078 -#define XK_y 0x079 -#define XK_z 0x07a -#define XK_braceleft 0x07b -#define XK_bar 0x07c -#define XK_braceright 0x07d -#define XK_asciitilde 0x07e - -#define XK_nobreakspace 0x0a0 -#define XK_exclamdown 0x0a1 -#define XK_cent 0x0a2 -#define XK_sterling 0x0a3 -#define XK_currency 0x0a4 -#define XK_yen 0x0a5 -#define XK_brokenbar 0x0a6 -#define XK_section 0x0a7 -#define XK_diaeresis 0x0a8 -#define XK_copyright 0x0a9 -#define XK_ordfeminine 0x0aa -#define XK_guillemotleft 0x0ab /* left angle quotation mark */ -#define XK_notsign 0x0ac -#define XK_hyphen 0x0ad -#define XK_registered 0x0ae -#define XK_macron 0x0af -#define XK_degree 0x0b0 -#define XK_plusminus 0x0b1 -#define XK_twosuperior 0x0b2 -#define XK_threesuperior 0x0b3 -#define XK_acute 0x0b4 -#define XK_mu 0x0b5 -#define XK_paragraph 0x0b6 -#define XK_periodcentered 0x0b7 -#define XK_cedilla 0x0b8 -#define XK_onesuperior 0x0b9 -#define XK_masculine 0x0ba -#define XK_guillemotright 0x0bb /* right angle quotation mark */ -#define XK_onequarter 0x0bc -#define XK_onehalf 0x0bd -#define XK_threequarters 0x0be -#define XK_questiondown 0x0bf -#define XK_Agrave 0x0c0 -#define XK_Aacute 0x0c1 -#define XK_Acircumflex 0x0c2 -#define XK_Atilde 0x0c3 -#define XK_Adiaeresis 0x0c4 -#define XK_Aring 0x0c5 -#define XK_AE 0x0c6 -#define XK_Ccedilla 0x0c7 -#define XK_Egrave 0x0c8 -#define XK_Eacute 0x0c9 -#define XK_Ecircumflex 0x0ca -#define XK_Ediaeresis 0x0cb -#define XK_Igrave 0x0cc -#define XK_Iacute 0x0cd -#define XK_Icircumflex 0x0ce -#define XK_Idiaeresis 0x0cf -#define XK_ETH 0x0d0 -#define XK_Eth 0x0d0 /* deprecated */ -#define XK_Ntilde 0x0d1 -#define XK_Ograve 0x0d2 -#define XK_Oacute 0x0d3 -#define XK_Ocircumflex 0x0d4 -#define XK_Otilde 0x0d5 -#define XK_Odiaeresis 0x0d6 -#define XK_multiply 0x0d7 -#define XK_Ooblique 0x0d8 -#define XK_Ugrave 0x0d9 -#define XK_Uacute 0x0da -#define XK_Ucircumflex 0x0db -#define XK_Udiaeresis 0x0dc -#define XK_Yacute 0x0dd -#define XK_THORN 0x0de -#define XK_Thorn 0x0de /* deprecated */ -#define XK_ssharp 0x0df -#define XK_agrave 0x0e0 -#define XK_aacute 0x0e1 -#define XK_acircumflex 0x0e2 -#define XK_atilde 0x0e3 -#define XK_adiaeresis 0x0e4 -#define XK_aring 0x0e5 -#define XK_ae 0x0e6 -#define XK_ccedilla 0x0e7 -#define XK_egrave 0x0e8 -#define XK_eacute 0x0e9 -#define XK_ecircumflex 0x0ea -#define XK_ediaeresis 0x0eb -#define XK_igrave 0x0ec -#define XK_iacute 0x0ed -#define XK_icircumflex 0x0ee -#define XK_idiaeresis 0x0ef -#define XK_eth 0x0f0 -#define XK_ntilde 0x0f1 -#define XK_ograve 0x0f2 -#define XK_oacute 0x0f3 -#define XK_ocircumflex 0x0f4 -#define XK_otilde 0x0f5 -#define XK_odiaeresis 0x0f6 -#define XK_division 0x0f7 -#define XK_oslash 0x0f8 -#define XK_ugrave 0x0f9 -#define XK_uacute 0x0fa -#define XK_ucircumflex 0x0fb -#define XK_udiaeresis 0x0fc -#define XK_yacute 0x0fd -#define XK_thorn 0x0fe -#define XK_ydiaeresis 0x0ff - -/* end of X11 keyboard mapping */ - - -#define screen myscreen - -#define XFlush(a) -#define XGetImage(a,b,c,d,e,f,g,h) ((XImage *) NULL) -#define XDisplayName(a) ((char *) NULL) -#define XFreeColors(a,b,c,d,e) -#define XSelectInput(a,b,c) -#define XDefaultDepth(a,b) (8) -#define XSetWMProperties(a,b,c,d,e,f,g,h,i) - -#define MAX_EVENT_BUFFER 256 -#define MAX_SCANCODES 128 - -#define True 1 -#define False 0 -#define None 0L - -#define DUMMY_FILE ((void *) -1) -#define DUMMY_MASK (-1) - -#define KeyPressMask (1L << 0) -#define KeyReleaseMask (1L << 1) -#define ButtonPressMask (1L << 2) -#define ButtonReleaseMask (1L << 3) -#define ButtonMotionMask (1L << 13) -#define ExposureMask (1L << 15) -#define StructureNotifyMask (1L << 17) -#define FocusChangeMask (1L << 21) - -#define KeyPress 2 -#define KeyRelease 3 -#define ButtonPress 4 -#define ButtonRelease 5 -#define MotionNotify 6 -#define FocusIn 9 -#define FocusOut 10 -#define Expose 12 -#define UnmapNotify 18 -#define MapNotify 19 -#define ClientMessage 33 - -#define LineSolid 0 -#define LineOnOffDash 1 -#define LineDoubleDash 2 - -#define CapNotLast 0 -#define CapButt 1 -#define CapRound 2 -#define CapProjecting 3 - -#define JoinMiter 0 -#define JoinRound 1 -#define JoinBevel 2 - -#define GCForeground (1L << 2) -#define GCBackground (1L << 3) -#define GCLineWidth (1L << 4) -#define GCLineStyle (1L << 5) -#define GCCapStyle (1L << 6) -#define GCJoinStyle (1L << 7) -#define GCGraphicsExposures (1L << 16) -#define GCClipMask (1L << 19) - -#define NormalState 1 /* most applications want to start this way */ -#define InputHint (1L << 0) -#define StateHint (1L << 1) -#define IconPixmapHint (1L << 2) -#define IconMaskHint (1L << 5) -#define PSize (1L << 3) /* program specified size */ -#define PMinSize (1L << 4) /* program specified minimum size */ -#define PMaxSize (1L << 5) /* program specified maximum size */ - -#define PCX_Success 0 -#define PCX_OpenFailed -1 -#define PCX_ReadFailed -2 -#define PCX_FileInvalid -3 -#define PCX_NoMemory -4 -#define PCX_ColorFailed -5 - -#define BitmapSuccess 0 -#define BitmapOpenFailed 1 -#define BitmapFileInvalid 2 -#define BitmapNoMemory 3 - -#define ZPixmap 2 /* depth == drawable depth */ - -#define DefaultScreen(dpy) (((_XPrivDisplay)dpy)->default_screen) -#define DefaultColormap(dpy, scr) (ScreenOfDisplay(dpy,scr)->cmap) -#define ScreenOfDisplay(dpy, scr) (&((_XPrivDisplay)dpy)->screens[scr]) -#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel) -#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel) -#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root) -#define AllPlanes ((unsigned int)~0L) - -#define DefaultVisual(dpy, scr) (NULL) -#define DefaultDepth(dpy, scr) (NULL) -#define XDisplayWidth(dpy, scr) (XRES) -#define XDisplayHeight(dpy, scr) (YRES) - -#define XGetPixel(ximage, x, y) \ - ((*((ximage)->f.get_pixel))((ximage), (x), (y))) - -typedef unsigned int Pixel; /* Index into colormap */ -typedef unsigned int XID; -typedef XID Window; -typedef XID Drawable; -typedef XID Pixmap; -typedef XID Colormap; -typedef XID KeySym; -typedef XID GContext; -typedef struct _XDisplay Display; -typedef int Visual; -typedef int XVisualInfo; -typedef int Atom; -typedef int Status; -typedef int Bool; -typedef int XComposeStatus; /* we don't need the real type */ - -typedef struct _XGC -{ - GContext gid; /* protocol ID for graphics context */ -} *GC; - -typedef struct -{ - Colormap cmap; /* default color map */ - Window root; /* root window id */ - unsigned int white_pixel; /* white pixel value */ - unsigned int black_pixel; /* black pixel value */ - int x; - int y; - unsigned int width; - unsigned int height; - BITMAP *video_bitmap; -} Screen; - -typedef struct _XDisplay -{ - int default_screen; /* default screen for operations */ - Screen *screens; /* pointer to list of screens */ - BITMAP *mouse_ptr; -} *_XPrivDisplay; - -typedef struct _XImage -{ - struct funcs - { - unsigned int (*get_pixel) (struct _XImage *, int, int); - } f; -} XImage; - -typedef struct -{ - int flags; /* marks which fields in this structure are defined */ - int width, height; /* should set so old wm's don't mess up */ - int min_width, min_height; - int max_width, max_height; -} XSizeHints; - -typedef struct -{ - int flags; /* marks which fields in this structure are defined */ - Bool input; /* does this application rely on the window manager to - get keyboard input? */ - int initial_state; /* see below */ - Pixmap icon_pixmap; /* pixmap to be used as icon */ - Pixmap icon_mask; /* icon mask bitmap */ -} XWMHints; - -typedef struct -{ - char *res_name; - char *res_class; -} XClassHint; - -typedef struct -{ - unsigned char *value; /* same as Property routines */ -} XTextProperty; - -typedef struct -{ - unsigned int foreground; /* foreground pixel */ - unsigned int background; /* background pixel */ - Bool graphics_exposures; /* boolean, should exposures be generated */ - Pixmap clip_mask; /* bitmap clipping; other calls for rects */ - int clip_x_origin; /* x origin for clipping */ - int clip_y_origin; /* y origin for clipping */ - unsigned int value_mask; - int line_width; /* line width */ - int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */ - int cap_style; /* CapNotLast, CapButt, - CapRound, CapProjecting */ - int join_style; /* JoinMiter, JoinRound, JoinBevel */ - -} XGCValues; - -typedef struct -{ - int type; - int x, y; - int width, height; -} XExposeEvent; - -typedef struct -{ - int type; /* of event */ - int x, y; /* pointer x, y coordinates in event window */ - unsigned int button; /* detail */ -} XButtonEvent; - -typedef struct -{ - int type; - int x, y; /* pointer x, y coordinates in event window */ -} XMotionEvent; - -typedef struct -{ - int type; /* of event */ - unsigned int state; /* key or button mask */ -} XKeyEvent; - -typedef struct -{ - int type; /* FocusIn or FocusOut */ -} XFocusChangeEvent; - -typedef struct -{ - int type; /* ClientMessage */ -} XClientMessageEvent; - -typedef union _XEvent -{ - int type; /* must not be changed; first element */ - XExposeEvent xexpose; - XButtonEvent xbutton; - XMotionEvent xmotion; - XKeyEvent xkey; -} XEvent; - -Pixel AllegroAllocColorCell(int, int, int); - -void XMapWindow(Display *, Window); -Display *XOpenDisplay(char *); -Window XCreateSimpleWindow(Display *, Window, int, int, - unsigned int, unsigned int, unsigned int, - unsigned int, unsigned int); -Status XStringListToTextProperty(char **, int, XTextProperty *); -void XFree(void *); -GC XCreateGC(Display *, Drawable, unsigned int, XGCValues *); -void XSetClipMask(Display *, GC, Pixmap); -void XSetClipOrigin(Display *, GC, int, int); -void XFillRectangle(Display *, Drawable, GC, int, int, - unsigned int, unsigned int); -Pixmap XCreatePixmap(Display *, Drawable, unsigned int, unsigned int, - unsigned int); -void XSync(Display *, Bool); -void XCopyArea(Display *, Drawable, Drawable, GC, int, int, - unsigned int, unsigned int, int, int); -int Read_PCX_to_Pixmap(Display *, Window, GC, char *, Pixmap *, Pixmap *); -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 *); -KeySym XLookupKeysym(XKeyEvent *, int); -int XLookupString(XKeyEvent *, char *, int, KeySym *, XComposeStatus *); -void XSetForeground(Display *, GC, unsigned int); -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 *); -void XAutoRepeatOff(Display *); - -void AllegroDrawLine(Drawable, int, int, int, int, Pixel); -Pixel AllegroGetPixel(Drawable, int, int); - -void AllegroZoomBitmap(Drawable, Drawable, int, int, int, int); - -void MSDOSOpenAudio(void); -void MSDOSCloseAudio(void); - -void NetworkServer(int, int); - -void MSDOSInitJoysticks(); -boolean MSDOSReadJoystick(int, int *, int *, boolean *, boolean *); - -#endif /* MSDOS_H */ diff --git a/src/libgame/platform.h b/src/libgame/platform.h index c9682559..292ff45c 100644 --- a/src/libgame/platform.h +++ b/src/libgame/platform.h @@ -18,10 +18,7 @@ /* define main platform keywords */ /* ========================================================================= */ -#if defined(MSDOS) -#define PLATFORM_MSDOS -#define PLATFORM_STRING "DOS" -#elif defined(WIN32) || defined(_WIN32) +#if defined(WIN32) || defined(_WIN32) #define PLATFORM_WIN32 #define PLATFORM_STRING "Windows" #else @@ -163,15 +160,6 @@ /* define additional target keywords */ /* ========================================================================= */ -#if defined(PLATFORM_MSDOS) -#ifndef TARGET_ALLEGRO -#define TARGET_ALLEGRO -#endif -#ifndef TARGET_X11 -#define TARGET_X11 -#endif -#endif - #if defined(PLATFORM_UNIX) && defined(TARGET_X11) #define TARGET_X11_NATIVE #endif diff --git a/src/libgame/setup.c b/src/libgame/setup.c index 39f805fc..a0711637 100644 --- a/src/libgame/setup.c +++ b/src/libgame/setup.c @@ -600,31 +600,6 @@ static char *getCorrectedArtworkBasename(char *basename) { char *basename_corrected = basename; -#if defined(PLATFORM_MSDOS) - if (program.filename_prefix != NULL) - { - int prefix_len = strlen(program.filename_prefix); - - if (strncmp(basename, program.filename_prefix, prefix_len) == 0) - basename_corrected = &basename[prefix_len]; - - /* if corrected filename is still longer than standard MS-DOS filename - size (8 characters + 1 dot + 3 characters file extension), shorten - filename by writing file extension after 8th basename character */ - if (strlen(basename_corrected) > 8 + 1 + 3) - { - static char *msdos_filename = NULL; - - checked_free(msdos_filename); - - msdos_filename = getStringCopy(basename_corrected); - strncpy(&msdos_filename[8], &basename[strlen(basename) - (1+3)], 1+3 +1); - - basename_corrected = msdos_filename; - } - } -#endif - return basename_corrected; } diff --git a/src/libgame/system.c b/src/libgame/system.c index fee0b17c..1e43e0b7 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -16,10 +16,6 @@ #include "platform.h" -#if defined(PLATFORM_MSDOS) -#include -#endif - #include "system.h" #include "image.h" #include "sound.h" @@ -81,7 +77,7 @@ void InitProgramInfo(char *argv0, #endif char *icon_title, char *x11_icon_filename, char *x11_iconmask_filename, - char *sdl_icon_filename, char *msdos_cursor_filename, + char *sdl_icon_filename, char *cookie_prefix, char *filename_prefix, int program_version) { @@ -103,7 +99,6 @@ void InitProgramInfo(char *argv0, program.x11_icon_filename = x11_icon_filename; program.x11_iconmask_filename = x11_iconmask_filename; program.sdl_icon_filename = sdl_icon_filename; - program.msdos_cursor_filename = msdos_cursor_filename; program.cookie_prefix = cookie_prefix; program.filename_prefix = filename_prefix; @@ -154,10 +149,6 @@ void InitPlatformDependentStuff(void) // this is initialized in GetOptions(), but may already be used before options.verbose = TRUE; -#if defined(PLATFORM_MSDOS) - _fmode = O_BINARY; -#endif - #if defined(PLATFORM_MACOSX) updateUserGameDataDir(); #endif @@ -186,13 +177,9 @@ void InitPlatformDependentStuff(void) void ClosePlatformDependentStuff(void) { -#if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS) +#if defined(PLATFORM_WIN32) closeErrorFile(); #endif - -#if defined(PLATFORM_MSDOS) - dumpErrorFile(); -#endif } void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, @@ -1489,8 +1476,8 @@ void ScaleBitmap(Bitmap *old_bitmap, int zoom_factor) /* mouse pointer functions */ /* ------------------------------------------------------------------------- */ -#if !defined(PLATFORM_MSDOS) #define USE_ONE_PIXEL_PLAYFIELD_MOUSEPOINTER 0 + /* XPM image definitions */ static const char *cursor_image_none[] = { @@ -1523,6 +1510,7 @@ static const char *cursor_image_none[] = /* hot spot */ "0,0" }; + #if USE_ONE_PIXEL_PLAYFIELD_MOUSEPOINTER static const char *cursor_image_dot[] = { @@ -1614,11 +1602,9 @@ static struct MouseCursorInfo *get_cursor_from_image(const char **image) return cursor; } -#endif /* !PLATFORM_MSDOS */ void SetMouseCursor(int mode) { -#if !defined(PLATFORM_MSDOS) static struct MouseCursorInfo *cursor_none = NULL; static struct MouseCursorInfo *cursor_playfield = NULL; struct MouseCursorInfo *cursor_new; @@ -1638,7 +1624,6 @@ void SetMouseCursor(int mode) #elif defined(TARGET_X11_NATIVE) X11SetMouseCursor(cursor_new); #endif -#endif } @@ -1669,8 +1654,6 @@ void OpenAudio(void) SDLOpenAudio(); #elif defined(PLATFORM_UNIX) UnixOpenAudio(); -#elif defined(PLATFORM_MSDOS) - MSDOSOpenAudio(); #endif } @@ -1680,8 +1663,6 @@ void CloseAudio(void) SDLCloseAudio(); #elif defined(PLATFORM_UNIX) UnixCloseAudio(); -#elif defined(PLATFORM_MSDOS) - MSDOSCloseAudio(); #endif audio.sound_enabled = FALSE; @@ -1886,8 +1867,6 @@ void InitJoysticks() SDLInitJoysticks(); #elif defined(PLATFORM_UNIX) UnixInitJoysticks(); -#elif defined(PLATFORM_MSDOS) - MSDOSInitJoysticks(); #endif #if 0 @@ -1902,7 +1881,5 @@ boolean ReadJoystick(int nr, int *x, int *y, boolean *b1, boolean *b2) return SDLReadJoystick(nr, x, y, b1, b2); #elif defined(PLATFORM_UNIX) return UnixReadJoystick(nr, x, y, b1, b2); -#elif defined(PLATFORM_MSDOS) - return MSDOSReadJoystick(nr, x, y, b1, b2); #endif } diff --git a/src/libgame/system.h b/src/libgame/system.h index 90e8bca7..6580d083 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -22,8 +22,6 @@ #include "macosx.h" #elif defined(PLATFORM_WIN32) #include "windows.h" -#elif defined(PLATFORM_MSDOS) -#include "msdos.h" #elif defined(PLATFORM_ANDROID) #include "android.h" #endif @@ -415,15 +413,9 @@ #define DOCS_DIRECTORY "docs" #define CACHE_DIRECTORY "cache" -#if !defined(PLATFORM_MSDOS) #define GFX_CLASSIC_SUBDIR "gfx_classic" #define SND_CLASSIC_SUBDIR "snd_classic" #define MUS_CLASSIC_SUBDIR "mus_classic" -#else -#define GFX_CLASSIC_SUBDIR "gfx_orig" -#define SND_CLASSIC_SUBDIR "snd_orig" -#define MUS_CLASSIC_SUBDIR "mus_orig" -#endif #if defined(CREATE_SPECIAL_EDITION_RND_JUE) #define GFX_DEFAULT_SUBDIR "jue0" @@ -442,7 +434,6 @@ #endif /* file names and filename extensions */ -#if !defined(PLATFORM_MSDOS) #define LEVELSETUP_DIRECTORY "levelsetup" #define SETUP_FILENAME "setup.conf" #define LEVELSETUP_FILENAME "levelsetup.conf" @@ -458,23 +449,6 @@ #define LEVELFILE_EXTENSION "level" #define TAPEFILE_EXTENSION "tape" #define SCOREFILE_EXTENSION "score" -#else -#define LEVELSETUP_DIRECTORY "lvlsetup" -#define SETUP_FILENAME "setup.cnf" -#define LEVELSETUP_FILENAME "lvlsetup.cnf" -#define EDITORSETUP_FILENAME "edsetup.cnf" -#define EDITORCASCADE_FILENAME "edcascad.conf" -#define HELPANIM_FILENAME "helpanim.cnf" -#define HELPTEXT_FILENAME "helptext.cnf" -#define LEVELINFO_FILENAME "lvlinfo.cnf" -#define GRAPHICSINFO_FILENAME "gfxinfo.cnf" -#define SOUNDSINFO_FILENAME "sndinfo.cnf" -#define MUSICINFO_FILENAME "musinfo.cnf" -#define ARTWORKINFO_CACHE_FILE "artinfo.cac" -#define LEVELFILE_EXTENSION "lvl" -#define TAPEFILE_EXTENSION "tap" -#define SCOREFILE_EXTENSION "sco" -#endif #define ERROR_BASENAME "stderr.txt" @@ -487,7 +461,7 @@ #define STRING_NEWLINE_UNIX "\n" #define STRING_NEWLINE_DOS "\r\n" -#if defined(PLATFORM_WIN32) || defined(PLATFORM_MSDOS) +#if defined(PLATFORM_WIN32) #define CHAR_PATH_SEPARATOR CHAR_PATH_SEPARATOR_DOS #define STRING_PATH_SEPARATOR STRING_PATH_SEPARATOR_DOS #define STRING_NEWLINE STRING_NEWLINE_DOS @@ -709,7 +683,6 @@ struct ProgramInfo char *x11_icon_filename; char *x11_iconmask_filename; char *sdl_icon_filename; - char *msdos_cursor_filename; char *cookie_prefix; char *filename_prefix; /* prefix to cut off from DOS filenames */ @@ -1309,7 +1282,7 @@ extern int FrameCounter; #if 1 void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, - char *, char *, char *, char *, int); + char *, char *, char *, int); #else void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, int); diff --git a/src/libgame/x11.c b/src/libgame/x11.c index 66f4a3ef..bdc21aee 100644 --- a/src/libgame/x11.c +++ b/src/libgame/x11.c @@ -59,10 +59,8 @@ void X11InitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window) static void X11InitDisplay() { -#if !defined(PLATFORM_MSDOS) XVisualInfo vinfo_template, *vinfo; int num_visuals; -#endif unsigned int depth; /* connect to X server */ @@ -83,7 +81,6 @@ static void X11InitDisplay() depth = DefaultDepth(display, screen); cmap = DefaultColormap(display, screen); -#if !defined(PLATFORM_MSDOS) /* look for good enough visual */ vinfo_template.screen = screen; vinfo_template.class = (depth == 8 ? PseudoColor : TrueColor); @@ -102,7 +99,6 @@ static void X11InitDisplay() (depth > 8 && visual->class != TrueColor && visual->class != DirectColor)) Error(ERR_EXIT, "X11 display not supported (inappropriate visual)"); -#endif /* !PLATFORM_MSDOS */ } static DrawWindow *X11InitWindow() @@ -111,7 +107,6 @@ static DrawWindow *X11InitWindow() unsigned int border_width = 4; XGCValues gc_values; unsigned int gc_valuemask; -#if !defined(PLATFORM_MSDOS) XTextProperty windowName, iconName; Pixmap icon_pixmap, iconmask_pixmap; unsigned int icon_width, icon_height; @@ -123,7 +118,6 @@ static DrawWindow *X11InitWindow() char *icon_name = program.window_title; int window_event_mask; Atom proto_atom = None, delete_atom = None; -#endif int screen_width, screen_height; int win_xpos, win_ypos; unsigned int pen_fg = WhitePixel(display, screen); @@ -146,7 +140,6 @@ static DrawWindow *X11InitWindow() width, height, border_width, pen_fg, pen_bg); -#if !defined(PLATFORM_MSDOS) proto_atom = XInternAtom(display, "WM_PROTOCOLS", FALSE); delete_atom = XInternAtom(display, "WM_DELETE_WINDOW", FALSE); if ((proto_atom != None) && (delete_atom != None)) @@ -208,7 +201,6 @@ static DrawWindow *X11InitWindow() KeyPressMask | KeyReleaseMask; XSelectInput(display, new_window->drawable, window_event_mask); -#endif /* create GC for drawing with window depth and background color (black) */ gc_values.graphics_exposures = False; diff --git a/src/libgame/x11.h b/src/libgame/x11.h index dc22d353..6e46e78d 100644 --- a/src/libgame/x11.h +++ b/src/libgame/x11.h @@ -14,7 +14,6 @@ #ifndef X11_H #define X11_H -#if !defined(PLATFORM_MSDOS) #define XK_MISCELLANY #define XK_LATIN1 @@ -24,24 +23,18 @@ #include #include #include -#endif /* system dependent definitions */ -/* MS-DOS header file also defines "TARGET_STRING" */ -#ifndef TARGET_STRING #define TARGET_STRING "X11" -#endif -#if defined(PLATFORM_UNIX) /* This triggers some stuff that is needed because X11 (XSetClipOrigin(), to be precise) is often very slow when preparing a masked XCopyArea() for big Pixmaps. To prevent this, small (tile-sized) mask Pixmaps are created which will then be set much faster with XSetClipOrigin() and speed things up a lot. */ #define TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND -#endif #define WINDOW_SCALING_STATUS WINDOW_SCALING_NOT_AVAILABLE #define FULLSCREEN_STATUS FULLSCREEN_NOT_AVAILABLE diff --git a/src/main.c b/src/main.c index 53ead02d..f2bcf143 100644 --- a/src/main.c +++ b/src/main.c @@ -5606,7 +5606,6 @@ int main(int argc, char *argv[]) InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX, PROGRAM_TITLE_STRING, ICON_TITLE_STRING, X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, - MSDOS_POINTER_FILENAME, COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); #else char *window_title_string = getWindowTitleString(); @@ -5614,7 +5613,6 @@ int main(int argc, char *argv[]) InitProgramInfo(argv[0], USERDATA_DIRECTORY, USERDATA_DIRECTORY_UNIX, PROGRAM_TITLE_STRING, window_title_string, ICON_TITLE_STRING, X11_ICON_FILENAME, X11_ICONMASK_FILENAME, SDL_ICON_FILENAME, - MSDOS_POINTER_FILENAME, COOKIE_PREFIX, FILENAME_PREFIX, GAME_VERSION_ACTUAL); #endif diff --git a/src/main.h b/src/main.h index 0e2259a5..c9a7164b 100644 --- a/src/main.h +++ b/src/main.h @@ -2099,7 +2099,7 @@ #define USERDATA_DIRECTORY_WIN32 PROGRAM_TITLE_STRING #define USERDATA_DIRECTORY_MACOSX PROGRAM_TITLE_STRING #define USERDATA_DIRECTORY_UNIX PROGRAM_UNIX_DATADIR_STRING -#define USERDATA_DIRECTORY_DOS "userdata" +#define USERDATA_DIRECTORY_OTHER "userdata" #if defined(PLATFORM_WIN32) #define USERDATA_DIRECTORY USERDATA_DIRECTORY_WIN32 @@ -2108,13 +2108,12 @@ #elif defined(PLATFORM_UNIX) #define USERDATA_DIRECTORY USERDATA_DIRECTORY_UNIX #else -#define USERDATA_DIRECTORY USERDATA_DIRECTORY_DOS +#define USERDATA_DIRECTORY USERDATA_DIRECTORY_OTHER #endif #define X11_ICON_FILENAME "rocks_icon.xbm" #define X11_ICONMASK_FILENAME "rocks_iconmask.xbm" #define SDL_ICON_FILENAME "RocksIcon32x32.png" -#define MSDOS_POINTER_FILENAME "mouse.pcx" /* file version numbers for resource files (levels, tapes, score, setup, etc.) ** currently supported/known file version numbers: -- 2.34.1