Commit Graph
82 Commits
Author SHA1 Message Date
nhmall 8fb23b4a41 non-Unix build was broken today
Changes to be committed:
	modified:   src/cmd.c

../src/cmd.c(515) : warning C4013: 'check_user_string' undefined; assuming extern returning int)
link error - cmd.o : error LNK2019:
unresolved external symbol _check_user_string referenced in function _enter_explore_mode
2015-03-31 19:07:25 -04:00
nhmall 6ab783b05b cmdline Makefile updates 2015-03-29 21:00:50 -04:00
nhmall 0751842083 clean up cmdline Makefile for VS2010,VS2013,...
VS2010 tested ok.
VS2013 tested ok.
VS2015 generated a _lot_ of linker warnings building NetHack, but it built.
2015-03-29 20:28:38 -04:00
nhmall 5a90f5f366 fix some compiler warnings windows cmdline
Changes to be committed:
	modified:   src/hack.c
	modified:   src/vision.c
2015-03-29 20:07:41 -04:00
nhmall 2c9ad065c1 add data.base suggestion for whistle
On 1/24/2014 6:48 AM, a bug reporter wrote:
> The whistle in Nethack has no encyclopedia entry. I suggest for the next
> release something from the M. R. James ghost story 'Oh, Whistle, and I'll Come
> to You My Lad'.
>
2015-03-29 10:50:39 -04:00
nhmall 5855deae6e doc/fixes update for C343-357 2015-03-28 18:20:19 -04:00
nhmall e69b5ae944 fix C343-357 Rust monsters may chew non-ferrous items
Changes to be committed:
	modified:   src/mon.c

website should be updated to reflect this bug closure.

C343-357 Rust monsters may chew non-ferrous items.
2015-03-28 18:08:09 -04:00
nhmall 35d80f5922 remove #ifdef TOURIST straggler
Changes to be committed:
	modified:   src/worn.c
2015-03-28 18:05:42 -04:00
nhmall 011520d61a Guidebook transcription typo 2015-03-28 15:23:28 -04:00
nhmall 9b328f1ad6 Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-28 11:23:47 -04:00
nhmall c035402c14 flavor enhance zap downwards/upwards when hiding
Changes to be committed:
	modified:   doc/fixes35.0
	modified:   include/extern.h
	modified:   src/apply.c
	modified:   src/zap.c

    On 3/23/2015 6:41 PM, a bug reporter wrote:
    > When you're hiding under an item (e.g. via garter snake polyform), and
    > that item gets polyshuddered into nonexistence, you continue hiding
    > (under nothing).
    This was addressed previously.

    > (Incidentally, it's a bit weird that you use > to aim at items that are
    > flavorwise above you at the time.)

    This addresses the flavorwise concern.
2015-03-28 11:20:44 -04:00
nhmall ec456ade9f a couple of substitution errors in Guidebook.tex 2015-03-28 01:06:28 -04:00
nhmall cb79a82bfb fix up some syntax errors in Guidebook.tex 2015-03-28 00:49:38 -04:00
nhmall 4a3a130795 subsitution gone amuck
Changes to be committed:
	modified:   doc/Guidebook.mn
2015-03-27 19:56:04 -04:00
nhmall 67cbd0c8e9 Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-27 19:48:17 -04:00
nhmall 76ee82b7d3 more doc updates
Changes to be committed:
	modified:   dat/history
	modified:   doc/Guidebook.mn
	modified:   doc/Guidebook.tex
2015-03-27 19:47:17 -04:00
nhmall f9e8e80589 Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-26 12:41:26 -04:00
nhmall 896fb15249 sync docs
Pasi pointed it out that the SYSCF stuff was only added
to Guidebook.mn not Guidebook.tex
2015-03-26 12:40:22 -04:00
nhmall 7d4298655d names of public servers and tournament contrib
Changes to be committed:
	modified:   dat/history
2015-03-26 08:05:23 -04:00
nhmall a355911c2c no hiding under nothing
On 3/23/2015 6:41 PM, a bug reporter wrote:
> When you're hiding under an item (e.g. via garter snake polyform), and
> that item gets polyshuddered into nonexistence, you continue hiding
> (under nothing).

This addresses the "hiding under nothing" bug, but does not
address this flavor comment also included in the report:
> (Incidentally, it's a bit weird that you use > to aim at items that are
> flavorwise above you at the time.)
2015-03-24 22:07:16 -04:00
nhmall dde4f6322c Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-24 19:29:11 -04:00
nhmall a1cc33d6ae fix invalid pointer dereference in morguemon
On 3/23/2015 6:41 PM, a bug reporter wrote:
> If the game generates a graveyard, the graveyard places a normal
> demon, but all normal demons are extinct at the time, then morguemon (at
> mkroom.c line 423) indexes mons with NON_PM (the return value of
> ndemon() if it can't find a reference), which is an invalid pointer
> dereference. According to the testbench, this mostly seems to happen on
> dlvl 12.

This fixes the code violation, but the logic will now drop down to the
ghost/wraith/zombie code when that happens.

Is that desireable, or should something else happen (for variety)?
2015-03-24 19:20:14 -04:00
nhmall b1547c4770 include header file <ctype.h> in lev_main.c
options.c depends on ctype.h  and uses tolower()
so no sense getting into a discussion about
use of _that_
2015-03-24 19:26:01 +02:00
nhmall c4009b781c Actually use the new routines in lev_main 2015-03-24 19:25:54 +02:00
nhmall f9d22e02cd lev_main's own internal case-insensitive compare
TEST SUITE

int case_insensitive_comp(const char *, const char *);

/* define your built-in compiler library variation here */

/* #define BUILTIN(a,b) strcasecmp(a,b) */
/* #define BUILTIN(a,b) stricmp(a,b) */

int main(int argc, char *argv[])
{
	const char *t1 = "NetHack";
	const char *t2 = "nethack";
	const char *t3 = "Fred";
	const char *t4 = "Barney lived next door";

	/* try the results with built-in strcmpi first */

	printf("builtin:\tcompare <%s> to <%s>, result %d.\n",
		t1, t2, BUILTIN(t1,t2));
	printf("builtin:\tcompare <%s> to <%s>, result %d.\n",
		t3, t4, BUILTIN(t3,t4));

	/* try the results with case_insensitive_comp 2nd */

	printf("ours:\tcompare <%s> to <%s>, result %d.\n",
		t1, t2, case_insensitive_comp(t1,t2));
	printf("ours:\tcompare <%s> to <%s>, result %d.\n",
		t3, t4, case_insensitive_comp(t3,t4));

}

int
case_insensitive_comp(s1, s2)
const char *s1;
const char *s2;
{
    unsigned char u1, u2;

    for ( ; ; s1++, s2++) {
	u1 = tolower((unsigned char) *s1);
	u2 = tolower((unsigned char) *s2);
	if ((u1 == '\0') || (u1 != u2)) {
	    break;
	}
    }
    return u1-u2;
}

======================== END TEST SUITE ===========================
2015-03-24 19:25:45 +02:00
nhmall c49dbcc5b3 include this also 2015-03-24 19:16:29 +02:00
nhmall 4c2df285b4 an easy fix for strcmpi and we move on
Here in branch paxed-new_lev_comp-B (branched
from paxed-new_lev_comp) is a simple fix
for the strcmpi issue.

The bottom section of lev_main.c has a bunch
of forced linkages to names from NetHack etc.
	#ifdef STRICT_REF_DEF
	bunch of stuff
	#endif

This change to lev_main should make everything
work for those that don't supply a compiler
library version of strcmpi()

With this patch, those people can just
add a -DSTRICT_REF_DEF to their compile line
for lev_main.c.

This would close the issue in a simple way,
and doesn't require linking in anything new to
the level compiler, or modifying any port's Makefiles etc.
2015-03-24 19:06:01 +02:00
nhmall a948e6aafb remove stale feature alert
This old feature alert from 3.3.0 is pretty stale, so remove
if from the code because everybody has probably suppressed
it by now.

	/* Because 'Q' used to be quit... */
	if (flags.suppress_alert < FEATURE_NOTICE_VER(3,3,0))
		pline("Note: Please use #quit if you wish to exit the game.");
2015-03-22 18:11:49 -04:00
nhmall 0e6355e017 Add note about feature alert mechanism 2015-03-22 18:04:18 -04:00
nhmall 3b064145a3 File for explaining code quirks/features/caveats
- added NOCWD_ASSUMPTIONS and PREFIXES_IN_USE section.
2015-03-22 15:05:18 -04:00
nhmall 74c5f489ae adjust PREFIXES_IN_USE for SYSCF 2015-03-22 11:11:41 -04:00
nhmall c3c968f87c options and config file handling
With SYSCF, the SYSCF_FILE name was overwriting the
default config file name making it unavailable for
subsequent user config file options handling.

- Keep the name of the last config file successfully opened.
- Do it without orphaning the default config file name needed
  for the next pass.
2015-03-22 10:44:36 -04:00
nhmall af9af8b701 put mystery line back but !WIN32
Since that line of code is used by a lot of different ports, I decided to
recant its removal and just add #ifdef to ensure it isn't compiled on WIN32.

I think other ports might encounter the same issue where the first pass with
filename set to 'sysconf', is then going to overwrite the hard-coded user
config file name, but I can't fix or test those so for those ports, it
will be now be back the way it was.
2015-03-21 16:17:17 -04:00
nhmall 349e264ac3 remove a troublesome line of code
Whenever SYSCF was enabled on Windows, the option
processing would go bonkers with illegal options
at startup. I noticed it months ago, and Derek
had it happen the other evening.

It turns out, the hard-coded 'defaults.nh' setting
was being overwritten with the name sysconf on
the first SET_IN_SYS pass, so all subsequent passes
were re-opening the SYSC_FILE instead of the
user config file.

I opted to take it out as I couldn't ascertain
why it was there in the first place.
2015-03-21 16:01:03 -04:00
nhmall b8515fb5fd throw in a windows sysconf skeleton 2015-03-21 15:54:30 -04:00
nhmall 734d118d39 a sys/winnt/Makefile.msc update 2015-03-21 15:50:03 -04:00
nhmall 41ac4aef92 fix SYSCF so that things build when first defined
Things won't build for ports that first
define SYSCF.

This moves assure_syscf_file() from unixmain.c
to files.c and adjusts extern.h to get it
out from under #ifdef UNIX.

The call to assure_syscf_file() in options.c was
only #ifdef SYSCF, SYSCF_FILE and not UNIX,
so new ports #defining SYSCF would get an erro.

assure_syscf_file() will be utilized by mswin
when SYSCF is defined.
2015-03-21 15:38:31 -04:00
nhmall 297e7c6d5f Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-21 10:53:42 -04:00
nhmall e3eb74166f obj change to support some upcoming work
This is an enabling patch for upcoming work. It breaks
save/bones so editlevel is incremented.

I'd like to a second overloadable int field in struct obj,
instead of just the one that is typically overloaded - corpsenm.

The second one can be used for things that are being tallied
up as opposed to a static one time assignment for reference/linkage
purposes.

The differentiation will allow both uses to co-exist for the
same object.
2015-03-21 10:46:11 -04:00
nhmall 66d642fad9 more mswin cmdline Makefile tweaks 2015-03-20 22:06:28 -04:00
nhmall 02cdaf5a09 Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-18 23:01:34 -04:00
nhmall d182920655 update cmdline Makefile 2015-03-18 23:00:46 -04:00
nhmall c80828fe7a Start to prepare dat/history for release
This gets the history started. Please review/correct/improve and
fill in the various <FIXME> items I've flagged.
2015-03-17 22:40:57 -04:00
nhmall ae974e7a6d dungeoneers update March 16, 2015 2015-03-17 18:47:37 +02:00
nhmall a873129caf withdraw fixes35.0 part of prior commit
There was actually a fixes35.0 entry further down that covered off
that particular entry already which I missed first time around.

> many instances of physical damage were not taking Half_physical_damage
>	into account when reducing your hitpoints
2015-03-17 18:47:29 +02:00
nhmall 3e5d6bf68f catch up on half-physical damage docs
This is catching up on some things that were changed
in development years ago that Dave C. suggested be
documented.

For the record:
-The things that were evaluated and ruled out
are now documented in include/youprop.h so they don't
come up again.

- The things that were evaluated and deemed to be susceptible
to the intrinsic and thus led to a modification in the code
are listed below in this commit message.

Modifications:
- A crystal ball exploding on being applied
- Artifacts' blasting
- Being a fish out of water
- Being hit by Mjollnir on the return
- Being thwacked by an iron ball chained to you
- Boiling/freezing potions
- Broken wands
- Bumping head on ceiling by cursed levitation
- Burning (un)holy water
- Chest/door/tin traps
- Dipping a lit lamp into a potion of oil
- Exploding rings and wands (under all circumstances)
- Exploding spellbooks
- Falling downstairs
- Falling into a (spiked) pit
- Falling off or failing to mount a steed
- Falling on a sink while levitating
- Getting squished in a pit under a boulder
- Hitting your foot with a bullwhip
- Hitting yourself with your pick-axe
- Hooking yourself with a grappling hook
- iron-ball-pulling yourself out of a bear trap
- Jumping/Newton's-Thirding into something solid
- Kicking something that makes you go "Ouch!"
- Land mine explosion
- Sitting in a spiked pit
- Stinking cloud damage
- Thrown potion (bottle)
- Zapping yourself with a wand, horn or spell
- Jumping yourself out of a bear trap
2015-03-17 18:47:29 +02:00
nhmall 2904297cc0 Additional obstruction messaging fixup 2015-03-17 18:47:28 +02:00
nhmall 995ba09363 fix messaging in obstructed() in lock.c
From ais523's recent list of bugs:
If a long worm tail is blocking the door, and you're blind and not
telepathic, attempting to close the door marks the position of its head.

From an email received in late September 2014 before the git conversion:
> I was trying to close a door, not noticing that there was a garter
> snake there, and this message resulted:
> The garter snake stands in the way!
> I haven't tried it with any other monsters without feet, but
> "stands in the way" appears to be the wrong way to describe
> this situation...

Both of the above were found in the same function in lock.c
2015-03-17 18:47:28 +02:00
nhmall c2ed47803a "swallowed whole" was preceded by "You bite into"
Another reported by ais523:
The death message "swallowed %s whole" is preceded by
"You bite into %s."; these contradict.
2015-03-17 18:47:27 +02:00
nhmall f2d9494d95 abuse wisdom in keeping with Rider eating msg
The death message for eating a Rider is "unwisely tried to eat...", but
it doesn't abuse Wisdom (potentially relevant if you lifesave)
2015-03-17 18:47:27 +02:00
nhmall 631005ed03 charge for a boulder that fills a pit in shop
Changes to be committed:
	modified:   src/do.c

From the email sent by ais523 earlier:
> You aren't charged for digging a pit below an unpaid boulder
> (causing the boulder to fill the pit).
2015-03-17 18:47:26 +02:00
nhmall ad1d682751 from ais523 list: charge for boulder filling pit 2015-03-17 18:47:26 +02:00
nhmall d594f9fe01 catch up on some fixes entries 2015-03-17 18:47:23 +02:00
nhmall 074fb69be0 do_look() in post-3.4.3 code fixes entry 2015-03-17 18:47:22 +02:00
nhmall 5174eb157f One VS Makefile for Nethack that works with VS2010-VS2015 2015-03-17 18:47:21 +02:00
nhmall 2b83895fd4 typo in format string on previous commit 2015-03-17 18:47:21 +02:00
nhmall 20b16455ef more do_look() glyph usage without it being set properly
Changes to be committed:
	modified:   src/pager.c

When the previous occurrence that triggered a segfault
was fixed, I didn't check for more of them. It turns out there
were more instances.

This also removes some dead code.
2015-03-17 18:47:21 +02:00
nhmall 0b231571bc fix a segfault in mapglyph reported by Pasi earlier today
Changes to be committed:
	modified:   src/pager.c

Steps to reproduce the reported segfault:
Use / command, answer n, press space and enter

In do_look() variable glyph is only set to a proper
value if using the screen (from_screen) or the
mouse (clicklook).

On the code path that triggered the segfault,
glyph was being passed to mapglyph with a random
arbitrary value.

If glyph had been initialized at the start of
do_look(), it would have prevented the segfault,
but would have always displayed a giant ant or
something silly instead of the correct thing.

Don't use glyph except under
from_screen || clicklook.
2015-03-17 18:47:19 +02:00
nhmall c6e85f2c27 Fix some README mistakes that Janet spotted 2015-03-17 18:47:15 +02:00
nhmall dcd3299723 Updated README
On 3/1/2015 10:37 AM, coppro wrote:
> >>          Sun SPARC based machine running SunOS 4.x, Solaris 2.x, or
> Solaris 7
>
> By release time, I should have access to a BSD flavour installed on a SPARC
> machine. Would out be helpful for me to do cursory tests?

On 3/1/2015 10:41 AM, lorimer wrote:
> I have access to a Borland environment too, so I'll be
> borrowing that at some point.  [Just not soon.]

I didn't include the above, just in case they don't happen.
The README can, of course, be updated again once they have
been tried.
2015-03-17 18:47:15 +02:00
nhmall 4da05c9dba catch up fixes with some recent changes; also add 'community patch' section 2015-03-17 18:46:54 +02:00
nhmall c24dcf76b2 dungeoneers update March 16, 2015 2015-03-16 06:04:43 -04:00
nhmall 5fa4a1c82f withdraw fixes35.0 part of prior commit
There was actually a fixes35.0 entry further down that covered off
that particular entry already which I missed first time around.

> many instances of physical damage were not taking Half_physical_damage
>	into account when reducing your hitpoints
2015-03-15 12:59:34 -04:00
nhmall 6e0a3dda2e catch up on half-physical damage docs
This is catching up on some things that were changed
in development years ago that Dave C. suggested be
documented.

For the record:
-The things that were evaluated and ruled out
are now documented in include/youprop.h so they don't
come up again.

- The things that were evaluated and deemed to be susceptible
to the intrinsic and thus led to a modification in the code
are listed below in this commit message.

Modifications:
- A crystal ball exploding on being applied
- Artifacts' blasting
- Being a fish out of water
- Being hit by Mjollnir on the return
- Being thwacked by an iron ball chained to you
- Boiling/freezing potions
- Broken wands
- Bumping head on ceiling by cursed levitation
- Burning (un)holy water
- Chest/door/tin traps
- Dipping a lit lamp into a potion of oil
- Exploding rings and wands (under all circumstances)
- Exploding spellbooks
- Falling downstairs
- Falling into a (spiked) pit
- Falling off or failing to mount a steed
- Falling on a sink while levitating
- Getting squished in a pit under a boulder
- Hitting your foot with a bullwhip
- Hitting yourself with your pick-axe
- Hooking yourself with a grappling hook
- iron-ball-pulling yourself out of a bear trap
- Jumping/Newton's-Thirding into something solid
- Kicking something that makes you go "Ouch!"
- Land mine explosion
- Sitting in a spiked pit
- Stinking cloud damage
- Thrown potion (bottle)
- Zapping yourself with a wand, horn or spell
- Jumping yourself out of a bear trap
2015-03-15 12:36:45 -04:00
nhmall f799bffbb2 Additional obstruction messaging fixup 2015-03-14 09:43:07 -04:00
nhmall ece3385900 fix messaging in obstructed() in lock.c
From ais523's recent list of bugs:
If a long worm tail is blocking the door, and you're blind and not
telepathic, attempting to close the door marks the position of its head.

From an email received in late September 2014 before the git conversion:
> I was trying to close a door, not noticing that there was a garter
> snake there, and this message resulted:
> The garter snake stands in the way!
> I haven't tried it with any other monsters without feet, but
> "stands in the way" appears to be the wrong way to describe
> this situation...

Both of the above were found in the same function in lock.c
2015-03-13 22:27:09 -04:00
nhmall da83545660 "swallowed whole" was preceded by "You bite into"
Another reported by ais523:
The death message "swallowed %s whole" is preceded by
"You bite into %s."; these contradict.
2015-03-13 07:33:32 -04:00
nhmall 75e6fc27db abuse wisdom in keeping with Rider eating msg
The death message for eating a Rider is "unwisely tried to eat...", but
it doesn't abuse Wisdom (potentially relevant if you lifesave)
2015-03-13 01:02:09 -04:00
nhmall a46ad54b1d charge for a boulder that fills a pit in shop
Changes to be committed:
	modified:   src/do.c

From the email sent by ais523 earlier:
> You aren't charged for digging a pit below an unpaid boulder
> (causing the boulder to fill the pit).
2015-03-11 23:04:02 -04:00
nhmall b889a4b938 from ais523 list: charge for boulder filling pit 2015-03-11 21:57:36 -04:00
nhmall 64b3c6460a catch up on some fixes entries 2015-03-10 18:34:01 -04:00
nhmall 547ad18c7e Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-10 18:02:29 -04:00
nhmall 1287999b1c do_look() in post-3.4.3 code fixes entry 2015-03-10 18:00:49 -04:00
nhmall 7c65f47dfd One VS Makefile for Nethack that works with VS2010-VS2015 2015-03-10 14:25:54 -04:00
nhmall 67aab26a83 typo in format string on previous commit 2015-03-09 22:11:49 -04:00
nhmall 7113829de0 more do_look() glyph usage without it being set properly
Changes to be committed:
	modified:   src/pager.c

When the previous occurrence that triggered a segfault
was fixed, I didn't check for more of them. It turns out there
were more instances.

This also removes some dead code.
2015-03-09 22:05:48 -04:00
nhmall 941c3378ad Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-09 21:19:37 -04:00
nhmall fa04eff282 fix a segfault in mapglyph reported by Pasi earlier today
Changes to be committed:
	modified:   src/pager.c

Steps to reproduce the reported segfault:
Use / command, answer n, press space and enter

In do_look() variable glyph is only set to a proper
value if using the screen (from_screen) or the
mouse (clicklook).

On the code path that triggered the segfault,
glyph was being passed to mapglyph with a random
arbitrary value.

If glyph had been initialized at the start of
do_look(), it would have prevented the segfault,
but would have always displayed a giant ant or
something silly instead of the correct thing.

Don't use glyph except under
from_screen || clicklook.
2015-03-09 21:08:26 -04:00
nhmall 06b7534af3 Merge branch 'master' of https://rodney.nethack.org:20040/git/NHsource 2015-03-05 20:52:37 -05:00
nhmall e9a03fd094 Fix some README mistakes that Janet spotted 2015-03-05 20:45:17 -05:00
nhmall 4a0935114c Updated README
On 3/1/2015 10:37 AM, coppro wrote:
> >>          Sun SPARC based machine running SunOS 4.x, Solaris 2.x, or
> Solaris 7
>
> By release time, I should have access to a BSD flavour installed on a SPARC
> machine. Would out be helpful for me to do cursory tests?

On 3/1/2015 10:41 AM, lorimer wrote:
> I have access to a Borland environment too, so I'll be
> borrowing that at some point.  [Just not soon.]

I didn't include the above, just in case they don't happen.
The README can, of course, be updated again once they have
been tried.
2015-03-03 20:13:51 -05:00
nhmall a609bda996 catch up fixes with some recent changes; also add 'community patch' section 2015-03-01 09:28:09 -05:00