f032225eee
v5.1 The bitmap graphics from the US Macintosh release of Lancelot now display correctly. v5.0 V1 games are also now supported. The input logic now correctly handles commas and full stops in the user's input for v3 or later games. The input logic now allows hyphens and apostrophes to be input, which is needed for some v2 games. The dictionary listing for v2 games no longer has junk on the end. The graphics detection algorithm has been improved, so that it now correctly finds graphics in all known games. A difference in the logic between the v2 and v3 line-drawn graphics has been implemented, which corrects the scaling for some v2 graphics. Added #seed and #play meta commands. v4.1 Corrected a bug that made Lancelot unplayable. BBC B bitmaps are now shown as they appeared on the original computer.
84 lines
2.3 KiB
Text
84 lines
2.3 KiB
Text
$NetBSD: patch-aa,v 1.3 2013/10/13 10:19:22 wiz Exp $
|
|
|
|
--- unix-curses.c.orig 2011-05-29 07:39:50.000000000 +0000
|
|
+++ unix-curses.c
|
|
@@ -9,11 +9,6 @@
|
|
*
|
|
* A few notes on this port:
|
|
*
|
|
- * I've modified level9.h to use the LITTLEENDIAN macro -- it assumes this if
|
|
- * you're using DOS or Windows, otherwise it uses the byte sex macros. This
|
|
- * shouldn't hurt a little-endian machine (Intel), but you must undefine
|
|
- * LITTLEENDIAN if you've got a Motorola-type machine.
|
|
- *
|
|
* If you don't specify a path, level9 Linux will look first in the directory
|
|
* $LEVEL9DIR, if defined, and then in the current directory.
|
|
*
|
|
@@ -38,11 +33,6 @@
|
|
#define FILE_DELIM '/'
|
|
|
|
/*
|
|
- * Set this if you are compiling on a little-endian machine (ARM, Intel)
|
|
- */
|
|
-#define LITTLEENDIAN 1
|
|
-
|
|
-/*
|
|
* Define this as 1 to get the Emacs-type key bindings
|
|
* Ctrl-A (go to beginning of line)
|
|
* Ctrl-B (back one character)
|
|
@@ -88,7 +78,7 @@ extern FILE* scriptfile;
|
|
/*
|
|
* You might have to change this if not using ncurses
|
|
*/
|
|
-#include <ncurses/curses.h>
|
|
+#include <curses.h>
|
|
|
|
|
|
#define CTRL_A '\x01'
|
|
@@ -773,25 +763,11 @@ int main (int argc, char *argv [])
|
|
char gamename [256];
|
|
char *envbuf;
|
|
L9BOOL gotgame;
|
|
+ char bp[1024];
|
|
|
|
/*
|
|
* Check byte sex
|
|
*/
|
|
-# if LITTLEENDIAN
|
|
- L9UINT32 test = 0x12345678;
|
|
- char *tcp = (char *) &test;
|
|
-# else
|
|
- L9UINT32 test = 0x78563412;
|
|
- char *tcp = (char *) &test;
|
|
-# endif
|
|
- if ((tcp [0] != 0x78) || (tcp [1] != 0x56) ||
|
|
- (tcp [2] != 0x34) || (tcp [3] != 0x12))
|
|
- {
|
|
- fprintf (stderr, "%s: compiled with the wrong byte sex!\n"
|
|
- " Check the LITTLEENDIAN macro in os/unix-curses.c\n",
|
|
- argv [0]);
|
|
- exit (1);
|
|
- }
|
|
|
|
if (argc != 2)
|
|
{
|
|
@@ -820,8 +796,9 @@ int main (int argc, char *argv [])
|
|
/*
|
|
* Get the terminal characteristics for line width and More prompt
|
|
*/
|
|
+ tgetent(bp, getenv("TERM"));
|
|
Line_width = tgetnum ("co");
|
|
- if (Line_width == ERR)
|
|
+ if ((Line_width == -1) || (Line_width == ERR))
|
|
{
|
|
fprintf (stderr, "Couldn't get terminal width---falling back on good old"
|
|
" 80 columns\n\n");
|
|
@@ -829,7 +806,7 @@ int main (int argc, char *argv [])
|
|
}
|
|
|
|
More_lines = tgetnum ("li");
|
|
- if (More_lines == ERR)
|
|
+ if ((More_lines == -1) || (More_lines == ERR))
|
|
{
|
|
fprintf (stderr, "Couldn't get terminal height---guessing\n\n");
|
|
More_lines = 24;
|