diff options
Diffstat (limited to 'games/clonekeen/slackbuild.diff')
-rw-r--r-- | games/clonekeen/slackbuild.diff | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/games/clonekeen/slackbuild.diff b/games/clonekeen/slackbuild.diff new file mode 100644 index 0000000000..f95cc882db --- /dev/null +++ b/games/clonekeen/slackbuild.diff @@ -0,0 +1,286 @@ +diff -Naur keen.orig/src/Makefile.lnx keen/src/Makefile.lnx +--- keen.orig/src/Makefile.lnx 2005-11-09 22:27:50.000000000 -0500 ++++ keen/src/Makefile.lnx 2010-03-26 03:06:24.000000000 -0400 +@@ -31,6 +31,7 @@ + sdl/keydrv.o sdl/snddrv.o sdl/timedrv.o sdl/viddrv.o \ + scale2x/scalebit.o scale2x/scale2x.o scale2x/scale3x.o \ + scale2x/pixel.o \ ++ unix_fopen_wrapper.o \ + keen.h keenext.h sounds.h funcdefs.h latch.h game.h + gcc -g3 -o keen \ + main.o fileio.o \ +@@ -51,6 +52,7 @@ + sdl/keydrv.o sdl/snddrv.o sdl/timedrv.o sdl/viddrv.o \ + scale2x/scalebit.o scale2x/scale2x.o scale2x/scale3x.o \ + scale2x/pixel.o \ ++ unix_fopen_wrapper.o \ + `sdl-config --libs` + + +diff -Naur keen.orig/src/keen.h keen/src/keen.h +--- keen.orig/src/keen.h 2005-11-07 16:39:12.000000000 -0500 ++++ keen/src/keen.h 2010-03-26 03:06:24.000000000 -0400 +@@ -14,6 +14,10 @@ + #include <windows.h> + #endif + ++#ifdef TARGET_LNX ++ #include "unix_fopen_wrapper.h" ++#endif ++ + #include "sounds.h" + #include "funcdefs.h" + #include "latch.h" +diff -Naur keen.orig/src/main.c keen/src/main.c +--- keen.orig/src/main.c 2005-11-09 23:35:10.000000000 -0500 ++++ keen/src/main.c 2010-03-26 03:11:56.000000000 -0400 +@@ -75,7 +75,7 @@ + + char loadinggame, loadslot; + +-FILE *log=NULL; ++/* FILE *log=NULL; */ + + stFade fade; + stMap map; +@@ -161,7 +161,7 @@ + SetDefaultOptions(); + setoption(OPT_FULLSCREEN, "SDL Fullscreen Mode", 0); + setoption(OPT_ZOOM, "Image Zoom", 1); +- setoption(OPT_FRAMESKIP, "Frameskip", 2); ++ setoption(OPT_FRAMESKIP, "Frameskip", 1); + + /* process command line options */ + VidDrv_printf("Processing command-line options.\n"); +@@ -180,6 +180,7 @@ + { + numplayers = 2; + } ++ /* + else if (strcmp(tempbuf, "-3player")==0) + { + numplayers = 3; +@@ -188,6 +189,7 @@ + { + numplayers = 4; + } ++ */ + else if (strcmp(tempbuf, "-single")==0) + { + numplayers = 1; +@@ -240,6 +242,7 @@ + { + showfps = 1; + } ++ /* + else if (strcmp(tempbuf, "-host")==0) // start network server + { + is_server = 1; +@@ -250,6 +253,7 @@ + is_client = 1; + localmp = 0; + } ++ */ + else if (i!=1 || atoi(argv[i])==0) + { + VidDrv_printf("Wait a minute...what the hell does '%s' mean?\n",tempbuf); +diff -Naur keen.orig/src/misc.c keen/src/misc.c +--- keen.orig/src/misc.c 2005-11-16 20:04:28.000000000 -0500 ++++ keen/src/misc.c 2010-03-26 03:15:46.000000000 -0400 +@@ -1103,7 +1103,7 @@ + { + VidDrv_printf("Usage: keen [lvlnum] [-*player] [-nopk] [-ep*] [-dtm] [-nocheat] [-rec] -[eseq]\n\n"); + VidDrv_printf("lvlnum specify a level number (such as 2) to go directly to that level\n"); +- VidDrv_printf("-*player select number of players (1-4); defaults to 1\n"); ++ VidDrv_printf("-*player select number of players (1-2); defaults to 1\n"); + VidDrv_printf("-nopk do not allow players to kill each other in multiplayer games\n"); + VidDrv_printf("-ep* select episode 1, 2, or 3; defaults to 1\n"); + VidDrv_printf("-dtm go directly to the world map, bypassing intro and title screen\n"); +diff -Naur keen.orig/src/sdl/viddrv.c keen/src/sdl/viddrv.c +--- keen.orig/src/sdl/viddrv.c 2005-11-16 20:08:30.000000000 -0500 ++++ keen/src/sdl/viddrv.c 2010-03-26 03:06:24.000000000 -0400 +@@ -29,8 +29,10 @@ + + SDL_Rect dstrect; + ++#ifndef TARGET_LNX + extern FILE *log; + #define CKLOGFILENAME "ck.log" ++#endif + + #define MAX_CONSOLE_MESSAGES 3 + #define CONSOLE_MESSAGE_X 3 +@@ -222,11 +224,11 @@ + // applies all changes to the palette made with pal_set + void pal_apply(void) + { +- SDL_SetColors(screen, &MyPalette, 0, 256); +- SDL_SetColors(ScrollSurface, &MyPalette, 0, 256); ++ SDL_SetColors(screen, MyPalette, 0, 256); ++ SDL_SetColors(ScrollSurface, MyPalette, 0, 256); + if (blitsurface_alloc) + { +- SDL_SetColors(BlitSurface, &MyPalette, 0, 256); ++ SDL_SetColors(BlitSurface, MyPalette, 0, 256); + } + } + +@@ -338,9 +340,9 @@ + // shuts down the video driver + void VidDrv_Stop(void) + { +- if(screen) { SDL_FreeSurface(screen); VidDrv_printf("freed screen\n"); } +- if(ScrollSurface) { SDL_FreeSurface(ScrollSurface); VidDrv_printf("freed scrollsurface\n"); } +- if(blitsurface_alloc) { blitsurface_alloc = 0; SDL_FreeSurface(BlitSurface); VidDrv_printf("freed blitsurface\n"); } ++ if(screen) { SDL_FreeSurface(screen); screen = NULL; VidDrv_printf("freed screen\n"); } ++ if(ScrollSurface) { SDL_FreeSurface(ScrollSurface); ScrollSurface = NULL; VidDrv_printf("freed scrollsurface\n"); } ++ if(blitsurface_alloc) { blitsurface_alloc = 0; SDL_FreeSurface(BlitSurface); BlitSurface = NULL; VidDrv_printf("freed blitsurface\n"); } + } + + // resets graphics to allow changing of resolution or zoom settings +@@ -365,10 +367,12 @@ + // SDL-specific, not win32-specific) + void VidDrv_InitConsole(void) + { ++#ifndef TARGET_LNX + FILE *fp; + // erase contents of log file + fp = fopen(CKLOGFILENAME, "wb"); + fclose(fp); ++#endif + } + + void VidDrv_printf(const char *str, ...) +diff -Naur keen.orig/src/unix_fopen_wrapper.c keen/src/unix_fopen_wrapper.c +--- keen.orig/src/unix_fopen_wrapper.c 1969-12-31 19:00:00.000000000 -0500 ++++ keen/src/unix_fopen_wrapper.c 2010-03-26 03:06:24.000000000 -0400 +@@ -0,0 +1,123 @@ ++ ++/* semi-case-insensitive fopen() replacement. ++ ++Usage: ++ ++#include "unix_fopen_wrapper.h" ++FILE *foo = fopen("bar.baz", "rb"); ++ ++fopen() gets redefined to unix_fopen() in the header file. ++unix_fopen() attempts to call the real fopen() on: ++ ++bar.baz ++BAR.baz ++Bar.baz ++bar.BAZ ++BAR.BAZ ++Bar.BAZ ++bar.Baz ++BAR.Baz ++Bar.Baz ++ ++It'll still miss e.g. baR.baz or bAr.baz ++ ++If there's no . in the filename (e.g. "bar"), just check ++for bar, BAR, Bar ++*/ ++ ++#include <stdio.h> ++#include <ctype.h> ++#include <string.h> ++#include <limits.h> ++ ++void lcase_all(char *c) { ++ if(!c || !*c) return; ++ while(*c && *c != '.') { ++ *c = tolower(*c); ++ c++; ++ } ++} ++ ++void ucase_all(char *c) { ++ if(!c || !*c) return; ++ while(*c && *c != '.') { ++ *c = toupper(*c); ++ c++; ++ } ++} ++ ++void ucase_first(char *c) { ++ if(!c || !*c) return; ++ lcase_all(c); ++ c[0] = toupper(c[0]); ++} ++ ++FILE *unix_fopen(const char *path, const char *mode) { ++ FILE *result; ++ char realpath[PATH_MAX], *name, *ext; ++ ++/* #define DEBUG_FOPEN */ ++ ++#ifdef DEBUG_FOPEN ++#define TRY_FOPEN(p, m) { \ ++ result = fopen(p, m); \ ++ fprintf(stderr, "-- %s:%d: (%s,%s): %s\n", \ ++ __FILE__, __LINE__, p, m, (result ? "OK" : "fail")); \ ++ if(result) return result; \ ++} ++#else ++#define TRY_FOPEN(p, m) { if( (result = fopen(p, m)) ) return result; } ++#endif ++ ++ /* try it as-is first */ ++ TRY_FOPEN(path, mode); ++ ++ /* parse into name and (possible) extension */ ++ strcpy(realpath, path); ++ ext = strrchr(realpath, '.'); ++ if(ext) { ++ ++ext; ++ if(!ext[0]) ext = NULL; ++ } ++ ++ /* skip any directory component(s) */ ++ name = strrchr(realpath, '/'); ++ if(!name) name = realpath; ++ ++ /* permutations... */ ++ lcase_all(ext); ++ lcase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_first(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_all(ext); ++ lcase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_first(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_first(ext); ++ lcase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_all(name); ++ TRY_FOPEN(realpath, mode); ++ ++ ucase_first(name); ++ TRY_FOPEN(realpath, mode); ++ ++#ifdef DEBUG_FOPEN ++ fprintf(stderr, "%s:%s: TRY_FOPEN(%s,%s): Giving up", ++ __FILE__, __LINE__, path, mode); ++#endif ++ return NULL; ++} +diff -Naur keen.orig/src/unix_fopen_wrapper.h keen/src/unix_fopen_wrapper.h +--- keen.orig/src/unix_fopen_wrapper.h 1969-12-31 19:00:00.000000000 -0500 ++++ keen/src/unix_fopen_wrapper.h 2010-03-26 03:06:24.000000000 -0400 +@@ -0,0 +1,2 @@ ++FILE *unix_fopen(const char *path, const char *mode); ++#define fopen(x,y) unix_fopen(x,y) |