Commit Graph

81 Commits

Author SHA1 Message Date
nethack.allison
fd205fc1db followup to compression changes 2005-01-23 14:34:29 +00:00
nethack.allison
ab1872b928 zlib support; also internal compression changes
o Add support for zlib compression via ZLIB_COMP in config.h (ZLIB_COMP
  and COMPRESS are mutually exclusive).
o rlecomp and zerocomp are run time options available if RLECOMP and
  ZEROCOMP are defined, but not turned on by default if either COMPRESS
  or ZLIB_COMP are defined.
o Add information to the save file about internal compression options
  used when writing the save file, particularly rlecomp and zerocomp
  support.
o Automatically adjust rlecomp and zerocomp (if support compiled in)
  when reading in an existing savefile that was saved with those options
  turned on.  Still allows writing out of savefile in preferred format.
o In order to support zlib and not conflict with compress and uncompress
  routines there, the NetHack internal functions were changed to
  nh_uncompress and nh_compress as done in the zlib contribution received
  in 1999 from <Someone>.

I tagged the sources NETHACK_3_5_0_PREZLIB prior to applying these
changes.
2005-01-22 15:28:15 +00:00
cohrs
521c9203a5 files.c fixup
With recent files.c changes, code required for Qt compilation on Unix no
longer worked.
2005-01-13 00:39:38 +00:00
nethack.allison
d957558be4 yet another bit 2005-01-10 01:13:03 +00:00
nethack.allison
15ae774a78 selectsaved option (trunk only)
- always write plname into save file, no longer conditional
- add 'selectsaved' wincap option to control the display of
  a menu of save files for ports/platforms that support it.
- add support for win32 tty using normal nethack menus.
- the win/tty/wintty code is generalized enough that any
  tty port could support the option if the appropriate port-specific
  code hooks for wildcard file lookups are added to src/file.c
  specifically in the get_saved_games() routine. There is posix
  code in there from Warwick already, and there is findfirst/findnext
  code in there from win32. Warwick has the posix code only
  enabled for Qt at present, but with wintty support, that could be expanded
  to other Unix environments quite easily I would think.

Here is what the tty support looks like:

    NetHack, Copyright 1985-2005
         By Stichting Mathematisch Centrum and M. Stephenson.
         See license for details.

    Select one of your saved games
    a - Bob
    b - Fred
    c - June
    d - mine3
    e - Sirius
    f - Start a new character
    (end)

The following files existed in the NetHack SAVEDIR directory
at the time:
    ALLISONMI-Bob.NetHack-saved-game
    ALLISONMI-Fred.NetHack-saved-game
    ALLISONMI-June.NetHack-saved-game
    ALLISONMI-mine3.NetHack-saved-game
    ALLISONMI-Sirius.NetHack-saved-game
Note that despite the file names, the actual character name
is drawn from the savefile.

The WIN32CON support passes
    USER-*.NetHack-saved-game
to findfirst/findnext where USER is your login name of course.
2005-01-09 21:40:24 +00:00
nethack.allison
5fa8f73af8 housekeeping: mark trunk sources 3.5 (src) 2005-01-02 16:44:46 +00:00
nethack.allison
28a1a41668 shadowed declaration warning
<Someone> complained that his compiler was giving these
warnings:
cmd.c:2119: warning: declaration of `expl' shadows a global declaration
dungeon.c:292: warning: declaration of `rand' shadows a global declaration
exper.c💯 warning: declaration of `exp' shadows a global declaration
files.c:278: warning: declaration of `basename' shadows a global declaration
hack.c:1102: warning: declaration of `expl' shadows a global declaration
pickup.c:2081: warning: declaration of `select' shadows a global declaration
role.c:1060: warning: declaration of `conj' shadows a global declaration
2004-12-16 00:20:54 +00:00
nethack.rankin
00dcc2ae4c fix #U1206 - Quest artifact in WIZKIT file aborts program
Fix the wizard mode crash From a bug report.  Move the WIZKIT
message suppression to a lower level instead of trying to guard against
present and future pline() calls in the wishing code.  The way that was
being handling wasn't suitable for dealing with quest feedback.

     This also includes a couple of additional wishing synonyms.
2004-11-24 02:50:32 +00:00
kmhugo
f4322a56fb Mac Carbon updates 2004-08-10 05:37:41 +00:00
nethack.allison
40f3251cf4 prevent infinite recursion in impossible 2003-12-05 12:30:18 +00:00
nethack.allison
73e2a01501 unintentional change removal
A recursive guard check was accidentally checked in with the
status field stuff. Remove it.
2003-11-30 05:54:02 +00:00
nethack.allison
10480f4397 core support for status field highlighting (trunk only)
This provides the core support needed for status field highlighting.
This patch doesn't actually perform status field highlighting for any port,
but provides the core hooks for doing so.

The syntax is:
OPTIONS=hilite_status:{fieldname}/{threshold}/{below}/{above}
where {fieldname} is the name of a status field.
           {threshold} is the value used as the threshold to trigger a display
                             change.  It can also be set to "updown" to trigger
                             a display change whenever it rises or whenever it falls.
                             If you end the threshold value with %, then it signifies
                             that you want to trigger the display change based on the
                             percentage of maximum.
         {below}, {above}
                        are the color or display attribute that you want to use when
                        the field value is underneath the threshold. Supported display
                        fields are:  normal, inverse, bold, black, red, green,
                                         brown, blue, magenta, cyan, gray, orange,
                                         bright-green, yellow, bright-blue, bright-magenta,
                                         bright-cyan, or white.
Valid field names are:
        alignment, armor-class, carrying-capacity,
        charisma, condition, constitution, dexterity,
        dungeon-level, experience-level, experience,
        gold, HD, hitpoints-max, hitpoints, hunger,
        intelligence, power-max, power, score,
        strength, time, title, wisdom

Refer to window.doc for details. Guidebook updates to come later.
2003-11-30 05:51:53 +00:00
nethack.rankin
d74990926c paniclog enhancement
Include the version number in paniclog entries, so there'll be more
information whenever someone forwards them to us.
2003-11-23 10:01:58 +00:00
nethack.rankin
23d3a146d9 autopickup exceptions
External names longer than 31 characters trigger a compiler warning
for me about truncation, and that causes make to quit.  So shorten the
two long names.  Also, call the cleanup routine for the FREE_ALL_MEMORY
configuration.
2003-11-15 08:09:18 +00:00
nethack.allison
c0349ec918 autopickup_exceptions build option
Add config.h experimental option AUTOPICKUP_EXCEPTIONS.

It's an interface-only change which allows you to add lines to your
config file to selectively avoid autopickup of items based on their
text description that is displayed when you pick them up. It does
it by matching a pattern against the xname singular return value.

For example:

autopickup_exception = "*corpse" will avoid picking up corpses, even if
food (%) is in your pickup_types.

autopickup_exception = "*brown*"
will avoid picking up any brown items (why, I do not know)

autopickup_exception = "*loadstone"
will NOT avoid picking up loadstones, unless they are already
identified, because the xname string will be "gray stone", so no
match there.

The matching has no knowledge of in-game objects, it is just
a text pattern match, thus it is an interface change, not a gameplay
change, and it is meant as a convenience for players.
2003-11-15 01:05:32 +00:00
nethack.allison
7bab241f17 flag adjustments (trunk only)
Move all system or port specific flags to sysflags which is used only if
SYSFLAGS is defined, and leave everything else in flags unconditional.
2003-11-09 11:48:38 +00:00
warwick
2d9aba259d POSIX compliance for get_saved_games(). 2003-11-07 04:47:26 +00:00
nethack.allison
125d1f1cf1 handheld lockfile left around fix (from <Someone>) 2003-10-25 18:32:30 +00:00
cohrs
36faeeea3c debian bug #23229 - save file permissions
Use fqname buffer 1 for restoring the save file (just like save does when
creating it) so the value won't change out from under the code in unixmain.
- Also moved a tty-specific hack in docompress_file that was causing
the 'y' response to the "keep the save file" prompt to be echoed twice.
2003-10-16 16:18:26 +00:00
cohrs
db011864c0 U651 - avoid declaring errno unnecessarily
Some changes for standard C platforms, to avoid declaring errno explictly.
Such platforms should declare errno in errno.h, which is already included
in the files in question.
2003-09-24 02:12:22 +00:00
nethack.allison
bd170f5869 show errno not result
open_levelfile_exclusively() was showing the return value -1 in a panic message, even though that was the only possible value; show errno instead
2003-09-13 17:11:20 +00:00
warwick
1fc1945222 A .txt file is easier for the end user. 2003-09-11 04:19:02 +00:00
kmhugo
1282e5c623 Synch recent 3.4.2 changes to main trunk
This is merely a synchronization of recent changes for the
Macintosh Carbon port, which were committed to the 3.4.2
branch, to the main trunk.
2003-08-30 00:45:58 +00:00
jwalz
2d294c47f8 strerror() is ANSI
(and not found by default on e.g. SUNOS4 and SVR2)
2003-08-29 16:09:13 +00:00
cohrs
423ad806a3 U571 - access denied message
Since only developers know that "13" is EACCES, try to include the text
message.  I'm not 100% sure the ifdefs are complete, but it can be tweaked
as needed.  This was the only common message in files.c that included errno
so it's the only one I changed.  Of course, "13" is only one of several
possible errno values that might reasonably show up here.
2003-08-02 21:39:57 +00:00
cohrs
362518c3ac BSD and POSIX
Finally got around to installing OpenBSD (rev 3.3) in a vmware partition.
Found that several #if BSD's were inappropriate for modern BSD's.  Haven't
installed FreeBSD or NetBSD, but based on reading their man pages,
these changes are needed there too.  Mostly due to POSIX time() signature.
2003-07-06 22:06:46 +00:00
nethack.allison
d3fc89f25d U486 follow-up
>>+ #define OPENFAILURE(fd) (fd < 0)
>>+ # endif
>>      lockptr = 0;
>>!     while (retryct-- && OPENFAILURE(lockptr)) {>nhversion: 3.4.1
>And now this is accepted as valid and nothing is opened...

Oops, thanks Janet.
2003-06-07 17:18:28 +00:00
nethack.allison
ff8744798d fix for U486: Can't get Nethack 3.4.1 to work
>nhversion: 3.4.1
>
> nhfrom: 3.4.1 Official binary release for Windows 95/98/NT/2000/Me/XP
> (nh341win.zip)
> comments: Whenever I run NethackW.exe, the nethack window
> appears, and does not run anything.  When I close out of the
> program, I get this message:
> Waiting for access to C:\GAMES\NETHACK341\record.  (X  retries left).  > The X seems to  always be either 9 or 59.  I don't know how to fix this > > problem, any help would  be greatly appreciated

<Someone> writes:
>win32 open() returns -1 if failed - same as POSIX open().
> There is no STDIN in GUI applications so 0 is a valid return
> value from open().
> So it should read like that unless that breaks Amiga code:

Since I can't test the Amiga code, I added a macro
OPENFAILURE to keep the Amiga code the same as it
is now.  It should probably be reviewed by someone on
the Amiga team to verify if open() on the Amiga returns
0 or -1 on failure.  If the latter, the macro could be
removed completely.
2003-06-07 13:16:40 +00:00
warwick
4bebf0624b Avoid using NAME_MAX. What we really wanted was PL_NSIZ. 2003-04-22 06:54:45 +00:00
warwick
02fba50b34 Allow both UNIX and MacOSX conventions for configfile. 2003-04-03 04:21:57 +00:00
nethack.rankin
7a1fcd008a wizkit revisited
The previous changed ended up discarding the begining portion of
excessively long lines and keeping the end.  It's unlikely that either
part is going to be valid, but reporting the ending portion as a failed
wish would make tracking down and fixing the situation trickier.
2003-02-19 08:35:51 +00:00
nethack.allison
0e2630f817 wizkit fgets() buffer size
also ignore lines where we didn't read a newline within BUFSZ characters
2003-02-19 06:14:47 +00:00
jwalz
6689de0e04 Lint cleanup, nothing significant.
There is one more new complaint that might cause problems:
explode.c(545): warning: conversion from long may lose accuracy
2003-02-19 03:18:49 +00:00
jwalz
1d488f4762 Allow use of old compiler. 2003-02-18 22:31:12 +00:00
cohrs
2643ae3ee9 pline bits
a few plines that were without punctuation.  There may be more non-DEBUG
pline or pline-like things that are still missing punctuation.  They are
almost impossible to find after the fact, since they could be anywhere,
including in various dat files and functions that pass strings and formats
into other functions that call pline.
2003-02-12 06:30:06 +00:00
nethack.allison
46b88235a1 Borland bits (from Yitzhak) 2002-09-02 14:29:57 +00:00
nethack.allison
d1da0e7398 bones file diagnostics
Pat added some error information to create_levelfile.
This does the same for create_bonesfile, but the
only place it is logged is in the paniclog, unless
you're in wizard mode.  If bones file creation is
silently failing for someone and they aren't getting
bones files, this provides a way to diagnose why.
2002-08-24 23:25:40 +00:00
nethack.rankin
b00a9dcd4a level file handling and trickery feedback
1) consolidate all core usage of `errno' in files.c;
2) give more feedback for any failure by create_levelfile or open_levelfile,
   similar to what was being done for problems during level change;
3) include trickery info in paniclog (many instances of "trickery" seem to
   be due to disk or quota problems rather than user misbehavior...).

The create_levelfile call in pcmain probably ought to be changed to use
error feedback, but in the meantime this should continue working.

Perhaps error() should be modified to update paniclog too, but I didn't
want to go through all its port-specific incarnations making changes.
2002-08-23 14:52:25 +00:00
nethack.allison
2697615bd3 win32: hold .0 file open exclusively
-prevents problems with internal recover
if second copy of game is started up with
the same player name.
2002-08-21 15:21:56 +00:00
nethack.allison
3515dcf1f1 SELF_RECOVER for win32
- define SELF_RECOVER for win32
- add code to perform a recover operation from
  within NetHack itself when SELF_RECOVER is defined
2002-08-21 03:30:19 +00:00
nethack.allison
17ba46e459 recover.c had:
#  ifdef WIN32
#define SAVESIZE	(PL_NSIZ + 40)  /* username-player.NetHack-saved-game */

files.c had:
#  if defined(WIN32)
#define SAVESIZE	(PL_NSIZ + 60)	/* username-player.NetHack-saved-game */

It has to be 40 for savefile compatibility with 3.4.0.
2002-08-18 19:35:45 +00:00
cohrs
dee94b0410 handle 0 in DUNGEONS et al
As suggested by <Someone>, treat 0 entries in the various graphics symbol
specifications as leaving the value unchanged.
2002-08-13 04:18:46 +00:00
warwick
0b7c39a331 alloc, not malloc 2002-07-29 05:16:54 +00:00
warwick
036d873dbb Just a comment. 2002-07-24 08:10:36 +00:00
warwick
bdc6c965af Rollback NAME_MAX workarounds as suggested. 2002-07-23 06:07:21 +00:00
nethack.allison
4da155e376 djgpp build was also broken 2002-07-23 05:33:00 +00:00
nethack.allison
d9dad62838 build fix for files.c
Warwick's plname files.c addition broke the
build on both win32 and CE because NAMES_MAX
wasn't defined.

In win32 it was defined in limits.h, but only
when _POSIX_ was defined.

In CE it just didn't exist in any of the
header files.  Since it was also complaining
about strdup(), I #ifdef'd Warwick's code out
under CE.
2002-07-23 04:51:28 +00:00
warwick
7b5618e03c Enclose savefile format change by STORE_PLNAME_IN_FILE macro. 2002-07-22 09:13:04 +00:00
warwick
16b7d4a099 Store plname in save files (and restore it).
Move get_saved_games() functionality to files.c
Use moved get_saved_games() functionality in Qt windowport.
[also some non-enabled perminv code in Qt windowport]
2002-07-22 06:25:52 +00:00
nethack.allison
0cc5b698d5 Windows CE port addition 2002-07-22 03:20:52 +00:00