diff options
Diffstat (limited to '')
-rw-r--r-- | games/heroes/heroes-0.21.patch | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/games/heroes/heroes-0.21.patch b/games/heroes/heroes-0.21.patch new file mode 100644 index 0000000000..7a58994934 --- /dev/null +++ b/games/heroes/heroes-0.21.patch @@ -0,0 +1,323 @@ +diff '--color=auto' -ruN ../heroes-0.21/src/argv.c ./src/argv.c +--- ../heroes-0.21/src/argv.c 2002-01-09 18:52:35.000000000 +0000 ++++ ./src/argv.c 2022-06-30 10:55:29.838547018 +0100 +@@ -45,8 +45,8 @@ + char* level_name; + bool mono = false; + bool bits8 = false; +-bool hqmix = false; +-int stretch = 1; ++bool hqmix = true; ++int stretch = 4; + bool nosound = false; + bool even_lines = false; + bool showprefs = false; +@@ -171,15 +171,11 @@ + -S, --no-sound disable sound\n\ + -X, --no-sfx disable sound-effects\n\ + -m, --mono non-stereo output\n\ +- -8, --8bits 8bits sound output\n\ +- -i, --high-quality high quality mixer\n")); ++ -8, --8bits 8bits sound output\n")); + puts (_("\ + Display options:\n\ + -G, --gfx-options=OPTIONS pass OPTIONS to the display driver\n\ +- -F, --full-screen full screen mode\n\ +- -2, --double stretch the display twofold\n\ +- -3, --triple stretch the display threefold\n\ +- -4, --quadruple stretch the display fourfold\n\ ++ -W, --windowed windowed mode\n\ + -e, --even-lines display only even-lines\n")); + /* TRANS: rotozoom is a graphical effect used in the demo of yore + where the screen rotate and zoom (actually it doesn't zoom in Heroes); +@@ -215,15 +211,13 @@ + {"default-saves", no_argument, &reinitsav, 1}, + {"default-scores", no_argument, &reinitsco, 1}, + {"devparm", no_argument, &devparm, 1}, +- {"double", no_argument, NULL, '2'}, + {"driver", required_argument, NULL, 'd'}, + {"drivers-info", no_argument, NULL, 'n'}, + {"even-lines", no_argument, NULL, 'e'}, +- {"full-screen", no_argument, NULL, 'F'}, ++ {"windowed", no_argument, NULL, 'W'}, + {"gfx-options", required_argument, NULL, 'G'}, + {"go", no_argument, NULL, 'g'}, + {"help", no_argument, NULL, 'h'}, +- {"high-quality", no_argument, NULL, 'i'}, + {"list", optional_argument, NULL, 'l'}, + {"load", required_argument, NULL, 'L'}, + {"mono", no_argument, NULL, 'm'}, +@@ -231,11 +225,9 @@ + {"no-joystick", no_argument, NULL, 'J'}, + {"no-sfx", no_argument, NULL, 'X'}, + {"no-sound", no_argument, NULL, 'S'}, +- {"quadruple", no_argument, NULL, '4'}, + {"quiet", no_argument, NULL, 'q'}, + {"really-quiet", no_argument, NULL, 'Q'}, + {"swap-sides", no_argument, NULL, 's'}, +- {"triple", no_argument, NULL, '3'}, + {"verbose", required_argument, NULL, 'v'}, + {"version", no_argument, NULL, 'v'}, + {"x10-saves", no_argument, &x10sav, 1}, +@@ -263,7 +255,7 @@ + for (;;) { + int option_index = 0; + +- c = getopt_long (argc, argv, "2348d:eFgG:hiJl::L:mnqQsSv::X", ++ c = getopt_long (argc, argv, "8d:eWgG:hiJl::L:mnqQsSv::X", + long_options, &option_index); + + /* Detect the end of the options. */ +@@ -290,9 +282,6 @@ + case '8': + bits8 = true; + break; +- case 'a': +- hqmix = true; +- break; + case 'X': + nosfx = true; + break; +@@ -319,27 +308,15 @@ + case 'G': + set_display_params (optarg); + break; +- case 'F': ++ case 'W': + set_full_screen_mode (); + break; + case 'J': + joyoff = true; + break; +- case '2': +- stretch = 2; +- break; +- case '3': +- stretch = 3; +- break; +- case '4': +- stretch = 4; +- break; + case 'e': + even_lines = true; + break; +- case 'i': +- hqmix = true; +- break; + case 'S': + nosound = true; + break; +diff '--color=auto' -ruN ../heroes-0.21/src/hedlite.c ./src/hedlite.c +--- ../heroes-0.21/src/hedlite.c 2002-02-06 21:49:44.000000000 +0000 ++++ ./src/hedlite.c 2022-06-30 10:55:29.838547018 +0100 +@@ -45,7 +45,6 @@ + #include "dirname.h" + + static a_pcx_image heditrsc; +-static a_pcx_image tile_set_img; + + unsigned short int xdalles = 0; + unsigned short int ydalles = 0; +diff '--color=auto' -ruN ../heroes-0.21/src/media/ggi/video.c ./src/media/ggi/video.c +--- ../heroes-0.21/src/media/ggi/video.c 2002-03-27 19:44:59.000000000 +0000 ++++ ./src/media/ggi/video.c 2022-06-30 10:55:29.838547018 +0100 +@@ -54,7 +54,7 @@ + + static ggi_mode vid_mode; + static char *display_params = NULL; +-static int full_screen = 0; ++static int full_screen = 1; + /* Direct buffer for each frame. + We might have db[0] == db[1] if double buffering is not available.*/ + static const ggi_directbuffer *db[2] = { NULL, NULL }; +@@ -88,7 +88,7 @@ + void + set_full_screen_mode (void) + { +- full_screen = 1; ++ full_screen = 0; + } + + static bool +diff '--color=auto' -ruN ../heroes-0.21/src/media/sdl/video.c ./src/media/sdl/video.c +--- ../heroes-0.21/src/media/sdl/video.c 2002-01-17 19:59:32.000000000 +0000 ++++ ./src/media/sdl/video.c 2022-06-30 10:55:29.838547018 +0100 +@@ -40,7 +40,7 @@ + it might requires locking. */ + + static SDL_Surface *visu = 0; +-static int visu_options = SDL_HWPALETTE | SDL_DOUBLEBUF; ++static int visu_options = SDL_HWPALETTE | SDL_DOUBLEBUF | SDL_FULLSCREEN; + static bool SDL_initialized = false; + #define SDL_VIDEODRIVER "SDL_VIDEODRIVER" + static char *sdl_videodriver = 0; +@@ -56,7 +56,7 @@ + void + set_full_screen_mode (void) + { +- visu_options |= SDL_FULLSCREEN; ++ visu_options &= ~SDL_FULLSCREEN; + } + + /* Fullscreen mode is toggeled by pressing Alt+Enter. +diff '--color=auto' -ruN ../heroes-0.21/src/media/video.c ./src/media/video.c +--- ../heroes-0.21/src/media/video.c 2001-09-21 11:43:57.000000000 +0100 ++++ ./src/media/video.c 2022-06-30 10:55:29.838547018 +0100 +@@ -27,111 +27,6 @@ + /* slow stretching routines */ + + static void +-stretch_twofold (const a_pixel *s, a_pixel *d, unsigned width) +-{ +- int rows_left, columns_left; +- +- for (rows_left = 200; rows_left; --rows_left) { +- for (columns_left = width / 2; columns_left; --columns_left) { +- a_pixel t1, t2; +- t1 = s[0]; +- t2 = s[1]; +- d[0] = t1; +- d[640 + 2] = t2; +- d[1] = t1; +- d[640 + 3] = t2; +- d[640 + 0] = t1; +- d[2] = t2; +- d[640 + 1] = t1; +- d[3] = t2; +- s += 2; +- d += 4; +- } +- d += 2 * (scr_pitch - width); +- s += xbuf - width; +- } +-} +- +-static void +-stretch_twofold_even (const a_pixel *s, a_pixel *d, unsigned width) +-{ +- int rows_left, columns_left; +- +- for (rows_left = 200; rows_left; --rows_left) { +- for (columns_left = width; columns_left; --columns_left) { +- d[1] = d[0] = *s; +- ++s; +- d += 2; +- } +- d += 2 * (scr_pitch - width); +- s += xbuf - width; +- } +-} +- +-static void +-stretch_threefold (const a_pixel* s, a_pixel *d, unsigned width) +-{ +- int rows_left, columns_left; +- +- for (rows_left = 200; rows_left; --rows_left) { +- for (columns_left = width / 2; columns_left; --columns_left) { +- a_pixel t1, t2; +- t1 = s[0]; +- t2 = s[1]; +- d[0] = t1; +- d[960 + 3] = t2; +- d[2*960 + 1] = t1; +- d[4] = t2; +- d[960 + 2] = t1; +- d[2*960 + 5] = t2; +- d[960 + 0] = t1; +- d[2*960 + 3] = t2; +- d[1] = t1; +- d[960 + 4] = t2; +- d[2*960 + 2] = t1; +- d[5] = t2; +- d[2*960 + 0] = t1; +- d[3] = t2; +- d[960 + 1] = t1; +- d[2*960 + 4] = t2; +- d[2] = t1; +- d[960 + 5] = t2; +- s += 2; +- d += 6; +- } +- d += 3 * (scr_pitch - width); +- s += xbuf - width; +- } +-} +- +-static void +-stretch_threefold_even (const a_pixel *s, a_pixel *d, unsigned width) +-{ +- int rows_left, columns_left; +- +- for (rows_left = 200 / 2; rows_left; --rows_left) { +- for (columns_left = width; columns_left; --columns_left) { +- a_pixel t1, t2; +- t1 = s[0]; +- t2 = s[xbuf]; +- d[0] = t1; +- d[0+960*4] = t2; +- d[1] = t1; +- d[2] = t1; +- d[1+960*4] = t2; +- d[0+960*2] = t1; +- d[1+960*2] = t1; +- d[2+960*4] = t2; +- d[2+960*2] = t1; +- ++s; +- d += 3; +- } +- d += 3 * (2 * scr_pitch - width); +- s += 2 * xbuf - width; +- } +-} +- +-static void + stretch_fourfold (const a_pixel *s, a_pixel *d, unsigned width) + { + int rows_left, columns_left; +@@ -196,27 +91,10 @@ + { + /* the result of stretching routines is written directly + to the video memory */ +- if (stretch == 2) { +- if (even_lines) +- stretch_twofold_even (s, d, width); +- else +- stretch_twofold (s, d, width); +- } else if (stretch == 3) { +- if (even_lines) +- stretch_threefold_even (s, d, width); +- else +- stretch_threefold (s, d, width); +- } else if (stretch == 4) { +- if (even_lines) +- stretch_fourfold_even (s, d, width); +- else +- stretch_fourfold (s, d, width); +- } else { /* stretch == 1 */ +- if (even_lines) +- copy_screen_even (s, d, width); +- else +- copy_screen (s, d, width); +- } ++ if (even_lines) ++ stretch_fourfold_even (s, d, width); ++ else ++ stretch_fourfold (s, d, width); + } + + void +diff '--color=auto' -ruN ../heroes-0.21/src/persona.h ./src/persona.h +--- ../heroes-0.21/src/persona.h 2001-09-21 11:43:54.000000000 +0100 ++++ ./src/persona.h 2022-06-30 10:55:48.008744082 +0100 +@@ -28,8 +28,8 @@ + * difference only if the program has a sgid or suid bit. + */ + +-bool keep_sgid; /* Whether we should keep the */ +-bool keep_suid; /* SGID or SUID priviledge. */ ++extern bool keep_sgid; /* Whether we should keep the */ ++extern bool keep_suid; /* SGID or SUID priviledge. */ + + /* Get information about the current persona, + and switch to the user persona. */ |