slackbuilds/games/clonekeen/slackbuild.diff

287 lines
7.9 KiB
Diff

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)