Commit Graph

2586 Commits

Author SHA1 Message Date
PatR
4b0a1af482 xlogfile tweak to avoid forcing ANSI C
Avoid the C89/C90 feature of implicit concatentation of string literals.
XLOG_SEP handling becomes clumsier but will work with pre-ANSI compilers.
2015-03-18 19:21:29 -07:00
Pasi Kallinen
debdf7ca48 Move some hard-coded string arrays into data files.
Random epitaphs, engravings and hallucinatory monsters now
live in text data files.
2015-03-18 22:05:10 +02:00
Pasi Kallinen
e93add8cb8 Prevent segfault, water_damage may get a NULL obj 2015-03-18 21:40:54 +02:00
Pasi Kallinen
27add21e7e Merge branch 'paxed-xlogfile' 2015-03-18 18:57:52 +02:00
Pasi Kallinen
379c23096a More getpos improvements
Look up remembered dungeon features, not user-visible glyphs,
and ignore uninteresting features (room, corridor and wall tiles).

Original patch by Patric Mueller, from UnNetHack
2015-03-17 21:29:54 +02:00
PatR
ad03a7fb7a some lint cleanup 2015-03-16 19:22:49 -07:00
PatR
562fa952ce allow DEBUGFILES to be overridden via getenv()
If getenv("DEBUGFILES") yields a value then it takes precedence over
sysconf.DEBUGFILES or sys.c's #define DEBUGFILES.  (It probably should
only be controlled via environment since it is not a system-wide
attribute, but I haven't taken out the SYSCF handling for it.)
2015-03-16 15:54:10 -07:00
PatR
0d0711fe17 fix #H3724 - gold pile stacking bug
Bug report included a pointer to a fix; this patch is a superset.
Gold pieces dropped on an altar by the player got their bknown flag set,
which is incorrect since bless/curse doesn't apply to coins.  If a
monster (in reported case, a slain temple priest) dropped gold there too
then the two stacks wouldn't merge.  For the normal !GOLDOBJ config, the
problem goes away as soon as the gold gets picked up.  I didn't test for
GOLDOBJ but think two inventory slots containing gold can result.

     The superset part is to not break agnostic conduct by dropping gold
on an altar since no information is revealed when doing that.

[This was one of the very last patches checked into the old cvs repository,
where the somewhat out of date message above was accidentally omitted.]
2015-03-16 02:29:10 -07:00
PatR
a983a58b6a free 'sysopt' strings upon termination 2015-03-16 02:03:40 -07:00
PatR
14525ed0c6 DEBUG/debugpline() fixup
* Replace variadic debugpline() with fixed argument debugpline0(str),
   debugpline1(fmt,arg), and so on so that C99 support isn't required;
 * showdebug() becomes a function rather than a macro and handles a
   bit more;
 * two debugpline() calls in light.c have been changed to impossible();
 * DEBUGFILES macro (in sys.c) can substitute for SYSCF's DEBUGFILES
   setting in !SYSCF configuration (I hope that's temporary).
2015-03-15 18:02:26 -07:00
Pasi Kallinen
3bbbb01c53 Death talks in CAPITAL LETTERS 2015-03-15 09:53:34 +02: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
Pasi Kallinen
f8aced5480 Add Extended Logfile 2015-03-12 21:35:04 +02:00
Pasi Kallinen
400d842a8f Fix warnings 2015-03-12 17:57:13 +02: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
Pasi Kallinen
a335f8306f Add MAX_STATUENAME_RANK sysconf setting
MAX_STATUENAME_RANK tells how many score file entries to use
for random statue names.
2015-03-11 19:59:52 +02:00
Pasi Kallinen
3243b332a3 getpos improvements: automatic description
Pressing '@' will move the cursor on top of the hero.
Pressing '#' will toggle automatic description mode, where
the feature under the cursor is automatically described
when the cursor is moved.
2015-03-11 17:16:05 +02:00
Pasi Kallinen
d5abd07dad Add boolean option "bones"
Setting bones off prevents saving and loading bones files.
2015-03-10 19:50:29 +02:00
Pasi Kallinen
f0a335da2a Fix GENERIC_USERNAMES thinko 2015-03-10 17:30:24 +02: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
Pasi Kallinen
560898d3d4 Change command X to twoweapon toggle
Explore mode is now an extended command #exploremode.
There's no sense that a command used max. once per game, and
in normal games not at all, takes up a key. So, analogous to
the 'x' command (swap weapons), 'X' now toggles two-weapon
combat.
2015-03-09 22:53:43 +02:00
Pasi Kallinen
fa186c0156 Comment typofix 2015-03-09 22:22:32 +02:00
Pasi Kallinen
c0a5b49e62 Use a menu to loot multiple containers
When looting a location with multiple containers, show a menu for user
to pick the containers to loot instead of asking a yes/no question for
each container.
2015-03-09 21:08:42 +02:00
Pasi Kallinen
8e31929ef5 Define for generic usernames which prompt for name
Instead of hard-coding the "play", "player", etc. usernames
which will prompt the user for their name, allow defining
the names in config.h
2015-03-09 18:42:53 +02:00
Pasi Kallinen
1609081320 Implement fcntl(2) file locking
If you run a server, then you know of the somewhat annoying perm_lock
errors that creep up, requiring your attention before anyone else can
start a game.

This patch properly implements fcntl(2) locking on systems that can
handle it (*nix systems), that results in the lock being automatically
released on program termination, whether abnormal or not.

Original patch by Drew Streib, update by Edoardo Spadolini
2015-03-07 15:11:41 +02:00
Pasi Kallinen
f2ab8f336b You_hear already checks deafness 2015-03-06 21:01:02 +02:00
Sean Hunt
f64e530bff Make a few fixes to code that was confusing indent 2015-03-02 13:25:41 -05:00
Pasi Kallinen
d829b92f0e Sanitize petnames and fruit to prevent escape codes 2015-03-02 20:10:18 +02:00
Sean Hunt
bd62873ee2 Print lava item destructions only if surviving.
This partially reverts commit 72c2ae233d
in order to prevent players from using hangups during the destruction
messages to save themselves.
2015-03-02 12:52:04 -05:00
Sean Hunt
777328bd5c Merge fire-based erosion to common codepaths.
This finally eliminates all direct increases of `oeroded` and `oeroded2`
and moves them all to go via `erode_obj()`. They are still manipulated
directly in a few places, but not to erode objects.

This now merges the `fire_damage()` function to a common codepath, used
for items on lava and burning oil, but fire needs more work. There is
still a duplication between `destroy_item()` and `fire_damage()`; the
two codepaths should eventually be merged in some manner so that there
is only one codepath to say "an object was affected by fire". This path
might require some parameters, such as whether the fire will just erode
objects or burn them outright, but that can happen another day.
2015-03-02 12:50:03 -05:00
Sean Hunt
3acd3c4a00 Fold get_wet() into water_damage().
This now ensures that dipping into water works like other sources of
water damage. There is a potentially significant gameplay change here:
dipping a container into uncursed water will wet all its contents. If
this is a problem, then we should add another parameter to water_damage
which will suppress this behaviour for dipping.
2015-03-02 12:50:01 -05:00
Sean Hunt
57dcad3774 Rename rust_dmg() to erode_obj(). 2015-03-02 12:50:01 -05:00
Sean Hunt
3a049cf66e Eliminate erode_obj() and other erosion.
Now all erosion that isn't fire-based goes through `rust_dmg()`
2015-03-02 12:50:00 -05:00
Sean Hunt
7e0d552b06 A lot more cleanup to rust and water. 2015-03-02 12:49:59 -05:00
Sean Hunt
d588210a77 Cover a couple of corner cases with rust_dmg(). 2015-03-02 12:49:57 -05:00
Sean Hunt
9c4b0113aa Remove the victim argument to rust_dmg().
The argument can be calculated from `otmp`.
2015-03-02 12:49:57 -05:00
Sean Hunt
5ffd5a3000 Factor out a new is_moat function.
The fact that Juiblex's swamp is MOAT but not moat is weird and should
probably be looked at at some point.
2015-03-02 12:49:56 -05:00
keni
6fd30ab1ce Manually fix botched NHDT-Branch expansions. 2015-03-01 20:32:28 -05:00
Pasi Kallinen
7754afd9fa Remove last mention of DUNGEON_OVERVIEW 2015-03-01 10:16:00 +02:00
Derek S. Ray
4dddb97301 remove and transfer INVISIBLE_OBJECTS to branch 2015-02-27 19:34:32 -05:00
Derek S. Ray
5ee52039ca Remove unused size from questpgr.c 2015-02-27 19:34:31 -05:00
Sean Hunt
17ea9ff9ab Fix some warnings on the unconditionals branch. 2015-02-27 19:34:31 -05:00
Sean Hunt
a3faa93403 Remove experimental Unicode support.
This reverts commit 7f0f43e6f9 and some related
subsequent commits.

This compiles, but I have not done extensive testing.

Conflicts:
	include/config.h
	include/decl.h
	include/extern.h
	include/global.h
	include/tradstdc.h
	include/wintty.h
	src/drawing.c
	src/files.c
	src/hacklib.c
	src/mapglyph.c
	src/options.c
	sys/winnt/nttty.c
	win/tty/getline.c
	win/tty/topl.c
	win/tty/wintty.c
2015-02-27 19:34:29 -05:00
Sean Hunt
7c09285a8c Make EXP_ON_BOTL unconditional. 2015-02-27 19:34:26 -05:00