Commit Graph

10158 Commits

Author SHA1 Message Date
nhmall
54600e3e5c doc/Guidebook.txt update from daily cron 2020-01-27 10:31:37 -05:00
nhmall
bbac985cf0 Guidebook date stamp 2020-01-27 09:25:40 -05:00
nhmall
86b045f80c Merge updates from 'NetHack-3.6' into NetHack-3.7-Jan2020 2020-01-27 09:02:05 -05:00
nhmall
033894d784 Merge branch 'NetHack-3.7' into NetHack-3.7-Jan2020 2020-01-27 08:52:17 -05:00
nhmall
0305d0ae41 avoid link error with gcc 10 which enables -fno-common by default 2020-01-27 08:46:48 -05:00
nhmall
61d0d21f47 avoid link error with gcc 10 which enables -fno-common by default 2020-01-27 08:23:56 -05:00
PatR
eb61690f34 Install.vms update 2020-01-27 02:20:47 -08:00
Pasi Kallinen
4add2cdc54 Doc copypaste error 2020-01-27 10:20:31 +02:00
Pasi Kallinen
1783b9de3e Doc and sample config for MSDOS video resolution 2020-01-27 10:13:48 +02:00
Ray Chason
b52392a5bc Make background appear as a proper black 2020-01-27 09:54:59 +02:00
Ray Chason
b296196a4a Scale the font for large resolutions 2020-01-27 09:54:58 +02:00
Ray Chason
82a219c227 Lift restrictions on tilesets
Support full color tilesets with tiles of arbitrary size.
2020-01-27 09:54:58 +02:00
Ray Chason
34da5ea372 MSDOS/VESA: Make clipy and clipymax available to MS-DOS
VESA mode may need to scroll up and down as well as left and right.
2020-01-27 09:54:58 +02:00
Ray Chason
b2c8d916f6 Add set_tile_type, stretch_tile and free_tile
set_tile_type frees tileset memory not in use for the current tile
type (paletted or full color).
stretch_tile and free_tile support resizing tiles at run time.
2020-01-27 09:54:58 +02:00
Ray Chason
1870e5a41b Fix bugs affecting full-color BMP files 2020-01-27 09:54:58 +02:00
Ray Chason
9460796a2b MSDOS/VESA: Add video_width and video_height
To be used to set the video mode
2020-01-27 09:54:58 +02:00
Ray Chason
aa3303cafc More bits for linear frame buffer 2020-01-27 09:54:58 +02:00
Ray Chason
8d9f31e91f Support the linear frame buffer if available
If the linear frame buffer is in use, the entire frame buffer is
visible all at once, and no calls to the window function are needed.
2020-01-27 09:54:58 +02:00
Ray Chason
ab6424b31c Call the window function directly if supported
Some BIOSes allow calling the window function directly, bypassing the
logic that distinguishes this call from other BIOS calls. Should be
faster on some systems.
2020-01-27 09:54:58 +02:00
Ray Chason
c0d1c4efb7 Use 8 bit mode if available
This was not previously done because the palette was not correctly set
up, and QEMU gave incorrect colors. The palette setup function now
falls back to the standard BIOS function if the VESA BIOS function
fails, which resolves the issue with QEMU. The mode selection logic now
favors 8 bit color if the tile set is compatible.

Using 8 bit mode means fewer writes to memory and fewer uses of the
BIOS window function.
2020-01-27 09:54:58 +02:00
PatR
c911446188 more wizard mode wishing for terrain
Try a lot harder to keep terrain/level flags in a sane state.  They're
overloaded so it's not simple.

Creating a fountain or sink incremented the corresponding counter (for
controlling ambient sounds) but removing one by wishing for something
else in its place didn't decrement.

Allow wish for "disturbed grave" to create a grave with the 'disturbed'
flag set, similar to existing "magic fountain" and 'blessedftn' flag.
(I didn't add "looted throne", "looted tree", and several other things
that use the 'looted' overload of 'rm.flags'.)

Automate block_point (tree, cloud, secret corridor, or secret door in
open doorway) and add unblock_point (use Pass_wall to move into wall
or tree or stone, or just walk onto a cloud, then make iron bars or
almost any other wishable terrain to replace the blocking feature).
2020-01-26 12:23:50 -08:00
nhmall
391e100d38 doc/Guidebook.txt update from daily cron 2020-01-26 10:03:15 -05:00
PatR
4505a8dc4c left out of "limit rate of long worm growth" 2020-01-26 05:12:55 -08:00
PatR
9b2c9e79d8 limit rate of long worm growth
Make long worms grow more slowly (although that didn't seem to make
as much a difference as expected) and limit the amount of HP they
acculate if they shrink and then re-expand.  Shrinking doesn't take
away max HP but growing used to always add to max.  Now it won't add
to max HP unless the number of segments is at that worm's peak, so
shrinking will inhibit the exhorbitant HP expansion that idle worms
have had.
2020-01-26 04:57:13 -08:00
Pasi Kallinen
aa7f098af1 Cloud wish should block vision 2020-01-26 14:33:11 +02:00
Pasi Kallinen
ae843bc10a Allow wizmode wishing for cloud terrain 2020-01-26 14:05:11 +02:00
PatR
206e9668f1 achievement tracking oversight
obj->record_achieve_special (overlay of obj->corpsenm) is no longer
used.
2020-01-26 02:58:18 -08:00
nhmall
3c968a09a3 Merge 'NetHack-3.6' updates into NetHack-3.7-Jan2020 2020-01-25 23:45:38 -05:00
nhmall
9e165b9e2a release prep bits 2020-01-25 23:42:36 -05:00
nhmall
47b18d7bde Merge 'NetHack-3.6' changes into NetHack-3.7-Jan2020 2020-01-25 22:17:42 -05:00
Bart House
fd6ecbaa17 Merge branch 'NetHack-3.6' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6 2020-01-25 17:07:59 -08:00
Bart House
05455f7baa Fall back to executable path if we have trouble converting known path. 2020-01-25 17:07:45 -08:00
nhmall
80486912c2 Merge branch 'NetHack-3.7' into NetHack-3.7-Jan2020 2020-01-25 17:26:23 -05:00
PatR
b0b25db4f0 worm.c cleanup
Mostly removing 'register', but also clear stale wgrowtime[] values
at the time they become obsolete instead of waiting for initworm()
to replace them when eventually re-used.
2020-01-25 14:12:10 -08:00
PatR
2b5dc80278 unix 'make clean' update
Remove dat/gitinfo.txt which has been getting overlooked.
Hardly urgent, but useful if this is the last 3.5.x release.
2020-01-25 12:08:28 -08:00
nhmall
24f2e098c5 Xcode build fixes 2020-01-25 12:34:06 -05:00
nhmall
42c4600ba7 Merge build tools updates from 'NetHack-3.6' into NetHack-3.7-Jan2020 2020-01-25 12:29:31 -05:00
nhmall
f72df6c21f exec commands in MSBUILD *.proj files didn't handle spaces in directory names 2020-01-25 12:23:54 -05:00
nhmall
b443dea158 Merge branch 'NetHack-3.7' into NetHack-3.7-Jan2020 2020-01-25 09:41:21 -05:00
PatR
a453215a06 disclose achievements
When disclosing conduct at end of game (but not during except in
wizard mode), display achievements too.  They're also included in
dumplog if it's enabled.  Previously they were only output as an
extra field in xlogfile.
2020-01-24 17:00:49 -08:00
nhmall
97b74e6f7b Merge branch 'NetHack-3.7' into NetHack-3.7-Jan2020 2020-01-24 17:27:48 -05:00
PatR
0166239a22 simplify achievement tracking for special objects
This turned out to be a lot more work than I anticipated, but it is
definitely simpler (other than having #wizmakemap take achievements
away if you replace the level that contains the 'prize', which wasn't
handled before).

I cheated and made Mine's End into a no-bones level because the new
flagging scheme for luckstone, bag, and amulet can't carry over from
one game to another.  It probably should have been no-bones all along.
Sokoban didn't have this issue because it's already no-bones.

Existing save files are invalidated.
2020-01-24 13:54:23 -08:00
PatR
dba6c20e2d loading Lua scripts
When loading a Lua script, modify it with a comment containing the
file name (or DLB module name) so that error reporting doesn't just
show the first 60 bytes of the script.  Also, don't assume that it's
possible to load an entire script in one fread().  Unfortunately
that got way out of hand and the result isn't pretty.  But something
of the sort is necessary.  (Reading the script into one string first
and then applying modifications while copying it into a second one
would probably be a lot cleaner than mixing the two operations.)

If a script starts with a comment or a blank line, the insertion of
the file name comment won't disturb the line number reported in an
error message.  But if the script starts out with code on its first
line, error reports will be off by one for the line number.  Showing
the file name is more useful than keeping that number accurate.
2020-01-24 13:26:01 -08:00
PatR
b2fa6292db Lua error reporting buffer overflow
nhl_error() was clobbering the stack.  I assume that the 'source'
field in the Lua debugging structure is normally a file name, but
nethack loads an entire Lua script into one long string because it
usually comes out of the DLB container, and 'source' contained the
full string.  That would overflow the local buffer in nhl_error()
if nethack encountered a Lua problem and tried to report it. (In
my case, the problem was in a level description file modification.)

[Not something under user control unless user can modify dat/*.lua
and put the result into $HACKDIR/nhdat.]
2020-01-24 12:52:35 -08:00
PatR
424750867a wizard mode un-polymorph
When already polymorphed, polymorphing into 'human' (or character's
species) to revert to normal when at low level has the infuriating
tendency to yield "your new form isn't healthy enough to survive".
Allow specifying your own role as a way to rehumanize() instead of
going through newman() and level/sex/characteristics randomization
which that performs.
2020-01-21 18:29:23 -08:00
PatR
3e18804371 half poison gas damage from wearing a wet towel
Make wearing a wet towel confer new attribute Half_gas_damage in
addition to the usual blindness.  It reduces damage from being inside
a gas cloud region and from being hit by poison gas breath attack.
It also fully blocks breathing of potion vapors.

Might make the Plane of Fire easier although overcoming its blindness
with telepathy won't reveal elementals.  Definitely has the potential
to make blind-from-birth conduct easier which wasn't the intent and
probably isn't significant.
2020-01-21 17:03:54 -08:00
PatR
a13d6c03c9 no more headless eyewear
Noticed while working on something else:  hero kept wearing a towel
after polymorphing into a form without any head.  And when not already
wearing one, could put on a blindfold/towel/lenses while in a headless
form.
2020-01-21 15:36:33 -08:00
PatR
fa890fc7a2 wielded tin opener
For simplified weapon description (used by ^X and a few other places),
show "tin opener" instead of generic "tool" for that item since there
are cases where it is expected to be wielded.

Also, don't describe a wielded "glob of <foo>" as "food".
2020-01-21 15:11:59 -08:00
PatR
08775c2c78 add some long worm comments
and keep the remove_monster()+place_monster() followed by worm_move()
operations together.  No change in behavior.
2020-01-21 06:20:45 -08:00
nhmall
36bb4334e8 Merge fixes from 'NetHack-3.6' into NetHack-3.7-Jan2020 2020-01-20 21:33:20 -05:00