-
Notifications
You must be signed in to change notification settings - Fork 453
/
fixes3-7-0.txt
2726 lines (2710 loc) · 169 KB
/
fixes3-7-0.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
$NHDT-Branch: (unknown) $:$NHDT-Revision: 1.1339 $ $NHDT-Date: 1702264272 2023/12/11 03:11:12 $
General Fixes and Modified Features
-----------------------------------
hero polymorphed into a vampire can use #monster to shape-shift rather than
just do a one-shot polymorph into bat/cloud/wolf and shifted vampire
hero can use #monster again to take on another form (randomly chosen
among the shiftable shapes and true vampire form)
adjust bones filename buffer sizes to accommodate suffix
fix internal self-recover to work with recent fields added to checkpoint file
improvements to pronoun usage when hallucinating
function calls made from map_glyphinfo() based on dungeon level are now called
once per level
fast hero could have random clairvoyance happen more than once on same turn
using 'Q' on wielded weapon would offer to split stack; make using 'w' on a
quivered stack behave similarly
weight for giant spider was too low for creature of size 'large';
weight for giant beetle was much too low for 'large'
leave some menu items out of "invert all" via '@' when their inclusion would
degrade the usefulness of that interface feature
change crysknife from mineral to bone and worm tooth from unspecified to bone
worn meat ring shouldn't cause increased hunger; neither should fake Amulet
worn +0 ring of protection should cause increased hunger if it is the only
source of extrinsic Protection
monster wielding Stormbringer or healer's Staff against another monster would
heal the hero instead of the wielding monster when draining life
change twoweapon feedback from "not a weapon" to "not a suitable weapon"
don't allow twoweapon combat if either weapon is a bow, crossbow, or sling
[later: or arrows, bolts, and missiles (darts, shuriken, boomerangs)]
drum of earthquake feedback reported various things (fountains, thrones, &c)
falling into a chasm but they remained intact because trap creation
had been changed to not clobber such things (so couldn't make pits)
make earthquake which hits a secret door or a secret corridor reveal it
wizard mode wishing for "Amulet of Yendor" had 50:50 chance for true Amulet
or a cheap plastic imitation; recognize "real Amulet of Yendor" and
"fake Amulet of Yendor" to precisely specify either of them but also
take away the 50% chance of yielding a fake one when neither real nor
fake is specified
unpaid globs showed weight info unconditionally outside of wizmode
walking out of tethered-to-buried-object trap condition was supposed to
reinstate punishment but wasn't finding the buried iron ball because
the trap condition was cleared first to indicate escape; result was
attached chain that got dragged around but had no ball attached
when poly'd into a giant and moving onto a boulder's spot, message given was
confused about whether autopickup would occur so could be misleading
random role selection wasn't honoring unwanted alignment(s) properly
if at the edge of the map window, trying to move farther fails but used a turn
hero can no longer wear blindfold/towel/lenses when poly'd into headless form
revamp achievement tracking for exploring Mine's End and Sokoban (by acquiring
luckstone and bag of holding or amulet of reflection, respectively)
throttle long worm growth rate and HP accumulation
poly'd hero was able to zap wands, apply tools, and #rub objects without
having any hands
spellcasting monster got an extra move after casting
allow defining #wizgenesis quantity in the prompt
digging through iron bars from an adjacent pit made a pit on top of the bars
give feedback if controlled level teleport attempt fails because hero is
already on the bottom level and player tries to go even deeper
unseen pet that drowned didn't give "you have a sad feeling" message
prevent ravens from blinding other ravens: /corvus oculum corvi non eruit/
have ^X provide more information when held or swallowed
display wasn't updating immediately after toggling hilite_pet option
randomly choosing role could lead to crash via segfault
if eel bite attack caused hero to move (killed + rehumanized + crawled out
of water), its grab attack could succeed even if no longer adjacent
specifying a count when picking [part of] a stack of scrolls of scare monster
ignored that count and the whole stack was affected
wizmakemap didn't account for unique monsters and didn't correct monster
birth counts
generate objects (eg. statues) with genocided or extinct monster classes
in special levels, if requested
if the orc-town version of mine town has been loaded, creation of orc zombies
or orc mummies would name them as part of the town raiding orc clan
when punished, involuntarily teleporting and landing within chain range of
attached ball while encumbered worse than burdened could trigger
"remove_object: obj not on floor" panic on hero's next move
update persistent inventory when 'menu_headings' or 'sortloot' options change
update persistent inventory when putting on a helmet causes it to auto-curse
inventory cursing caused by "this water's no good" effect when drinking from
a fountain didn't update persistent inventory window
leashing or unleashing pets wasn't updating persistent inventory window
when the wetness of a towel in inventory changed, persistent inventory wasn't
updated to show that
using wizard mode identify to ID 'all' updated perm_invent window but IDing
specific items--even every one of them--did not
hold_another_object added item to inventory first, then maybe removed and
dropped it, resulting in spurious add and remove perm_invent updates
when hold_another_object fails while hero is swallowed, drop the item into
swallower's inventory instead of onto the floor
hold_another_object (for wishing, horn of plenty, theft while poly'd, other
non-pickup actions giving hero another inventory item) wasn't
reporting change in encumbrance; that would catch up on next turn but
could be off during additional move(s) for current turn
hold_another_object used hardcoded Stressed to limit carrying instead of
using the 'pickup_burden' option for that
transforming a potion by dipping a unicorn horn into it could result in the
potion being dropped due to 'pickup_burden' if encumbrance was already
over threshold before dipping but within it after removal from invent
fix priest created inside temple wall
fix vault guard occasionally encasing monsters in stone
tone down scare monster by excluding humans and uniques
lock the castle chest
revamp amnesia to forget skills instead of objects or maps
when Punished and carrying the iron ball and levitating, hurtling in the
opposite direction of a thrown object didn't bring along the chain
recognize "kirin" as alias for "ki-rin" when asked to create a monster
make unique swallowing monsters (Juiblex) resist magical digging from inside
correctly account for fuel remaining when lit candles are attached
to candelabrum (the previous code would make the game unwinnable if
there were 15 or fewer turns remaining)
praying on an unaligned altar outside of Gehennom behaved like an ordinary
prayer; make that always fail
tribute (Discworld snippets) typos, in book order rather than fix order:
Sourcery passage #4 "the moment the words were out of your mouth" ->
"the moment and the words out of your mouth" where "were" didn't
belong and awkward phrasing because of it caused "and" to be removed
(would be much clearer if optional comma after "moment" was included)
Moving Pictures passage #10 initial single quote should be double,
#12 "or" -> "of", #14 second instance of "megalomaniac" misspelled
Lords and Ladies passage #5, near end add missing opening double
quote, passage #7 last paragraph, "to" -> "be"
Men at Arms passage #1, italicize /for/, passage #2, insert omitted
word "had": 'it was /fate/ that _had_ let Edward'
Interesting Times passage #1, italicize several words
Feet of Clay passage #1, second "does not need" -> "doesn't even need"
Hogfather passage #7 missing initial double quote for "Oh, just ...",
also #7 insert missing "you" into "Why are you feeling [...]"
Soul Music passage #1, italicize /feel/, #8, "fossile" -> "fossil"
Jingo passage #2 "Vines" -> "Vimes", "profferred" -> "proffered",
missing opening single quote on second sentence of Lord Downey's
line, passage #11 both in footnote: "genious" -> "genius",
"was, oddly enough, was one [...]" -> "was, oddly enough, one [...]"
The Fifth Elephant #1, italicize /always/, #9, "dublet" -> "doublet"
The Truth #1, italicize several words
Thief of Time #2, "gold starts" -> "gold stars"
A Hat Full of Sky passage #9 "though" -> "thought"
Death quotes #29, "metaphore" -> "metaphor"
various, including Death quotes: use two spaces to separate sentences
unicorn corpses and wraith corpses could be sacrificed even if "too old"
hero polymorphed into a hider and hiding was not unhidden when teleporting
impose tighter restraints on 'summon nasties', both for spellcasting monsters
and post-Wizard harassment
prevent swallowing monster ending up in a solid wall if it killed vault guard
fix attached ball getting deallocated if swallowed, going down into a pit,
and saving
level compiler creates correct novel with supplied name
for farlook, describe water in the castle moat and in Juiblex's swamp as moat
and as swamp, respectively, rather than just as "water"
make hezrous emit poison clouds when they move
make vrocks emit a poison cloud when they flee
stepping from one type of terrain to another was triggering an unnecessary
status update
make shriekers summon baby purple worms if purple worms would be too tough
make non-tame (baby) purple worms eat corpses off the ground
make baby purple worms attack shriekers
make hero polymorphed into baby purple worm warned against shriekers
confused scroll of light summons tame cancelled lights
potions of hallucination can give enlightenment
add a small chance of surviving food poisoning
deliberate level teleporter activation ignores magic resistance
auto-id scroll of remove curse when a known buc-state was changed
demon lords hate Demonbane
pets avoid eating shapeshifter corpses unless starving or nearly feral
blessed scroll of teleportation gives a single controlled teleport
allow opening a tin without interruption if slimed
tell player when wielding a different weapon toggles off dual-wielding
object taking erosion damage might give feedback message when out of view
or not give such when in view, depending on stale value of 'bhitpos'
[cited case assumed message came from drowned monster's dropped
inventory when out-of-view ice melted]
it's possible to wish for tins of the Riders in wizard mode; eating one is
fatal but if you're life-saved or decline to die, the game crashed
revival via undead turning of corpse carried by hero said "your <mon> corpse
comes alive" even when revived monster was undead
prevent searching or waiting next to a hostile monster if boolean option
safe_wait is on - override with 'm'
prevent searching or waiting if hero is slimed, stoning, strangled,
or deadly ill if safe_wait is on - override with 'm'
allow random mimics to show up mimicing more furniture than just stairs
scatter exploding bag of holding contents instead of outright deleting them
male hero poly'd into nymph chooses charm vs seduce message based on being
male rather than on all nymphs being female but charm message was
using hardcoded pronouns She,her for target monster--wrong for male
target and noticable if "<mon> finishes taking off his suit" is given
hostile monsters with a ranged attack try to stay away from melee range
allow displacing peaceful creatures
unicorn horns don't restore attribute loss anymore
when a shop is changed from food to health food, change room type to match
wish parsing of things containing monster names would accept all supported
alternate spellings if they occurred at the end ("corpse of mumakil")
but only some when they occurred elsewhere ("gray-elf corpse" worked,
"mumakil corpse" yielded "does not exist") depending upon name length
couldn't wish for werecreature corpse or tin because monster name lookup
always matched the beast form which is flagged no-corpse; switch to
human form for "were<creature>"
wishing for werecreature figurine always made one that created the monster in
beast form if activated; allow "human were<creature>" to explicitly
specify werecreature's human form (for corpses and tins as well as
figurines); override the restriction against human figurines for that
wishing for "royal jelly" yielded "lump of royal jelly" as a special case, but
other 'of' items such as "clove of garlic", "sprig of wolfsbane", or
"piece of cloth" didn't allow using their post-of words as shorthand
monster or object detection found semi-dead vault guard at <0,0> while
traversing fmon list; monster detection gave misleading feedback
(blank map instead of 'strange feeling') if there were no other
monsters on level; likewise object detection and guard's minvent
squadprob[] in mkroom.c was defined with 5 elements but initialized only 4
resulting in giant ants sometimes
allow nurses heal attack when wielding a non-weapon/weaptool
if riding or levitating, hero could apply bullwhip downward to pull up things
from underwater or lava; feedback implied the item was on the surface
some monster code was checking whether pets or engulfers were eating green
slime by checking for green slime corpse instead of glob
change light radius of stack of candles to square root
could get redundate "mon hits other-mon" messages when mon wields an artifact
failed untrap while mounted that moved hero onto the trap would leave steed
with stale coordinates, triggering warnings if 'sanity_check' is On
when digging a pit results in it being filled by adjacent pool or lava, any
objects at the spot weren't subjected to water or fire damage;
also, riding hero's steed wasn't subjected to immersion either
after "double trouble", cloned Wizard would wait until he had suffered some
damage or hero moved into direct view; keep STRAT_WAIT for original
Wizard but avoid that for clones
beyond turn 100000, prayer timeout is longer (scaling with game length)
falling while going down stairs and dropping items due to encumbrance or
punishment wasn't subjecting fragile ones to breakage
objects scattered by an explosion which land on water or lava weren't affected
by the water or lava
change mkclass() to usually honor (always honor for L class) the hell-only and
never-in-hell monster creation flags; no more achi-lich in the Castle
(nor master lich there unless demilich gets a potion of gain level)
thieving monster could be killed while hero was removing armor, triggering
warning "stealarm(): dead monster stealing" when taking-off finished
petrifying a long worm and then reanimating it handled tail incorrectly;
with sanity_check On, X coordinate of head segment was reported as 0
attempting to read a novel while blind reported "you can't read the mystic
runes" like for a spellbook; use "you can't read the words" for novel
don't let life draining reduce a monster's max HP below its level + 1
report "<Mon> expires" rather than "<Mon> dies" if polymorphed hero kills a
non-living monster (golem, vortex) with life drain (vampire bite)
allow hero in silver-hating form to ring the silver bell but only if on/over
the vibrating square
reading the Book of the Dead while blind is allowed; doing so gives
"you turn the pages of the Book of the Dead" and the type of item
becomes discovered, but the object wasn't being flagged as 'dknown'
so if not seen yet it remained "a spellbook" in hero's inventory
reading cursed Book of the Dead while blind gave feedback for sighted hero
reading non-cursed Book of the Dead after prepping with the other tools gave
a message referring to those as "artifacts" if either of them were
cursed; those unique items aren't artifacts so use "relics" instead
zapping a line of boulders with striking or force bolt was updating 'couldsee'
but deferring 'cansee', resulting in seeing the first boulder fracture
and only hearing that happen for the others despite coming into view
the default engraving, epitaph, and bogus monster inserted by 'makedefs -s'
(3.6.6 fix for empty source data file) lacked terminating newline, so
when the corresponding file wasn't actually empty its first line ended
up concatenated; default portion of the bad combined entry would be
decrypted properly but the portion from the file's first line wouldn't
if the Wizard of Yendor fled up the stairs on level 1, the game would behave
as if he was still in play, but he wouldn't be on migrating monsters
list so couldn't be brought back and wouldn't appear on Plane of Earth
(stale non-zero value for context.no_of_wizards)
if a mind flayer's psychic blast targeted a hidden monster, feedback named
the monster but it wasn't brought out of hiding
hero poly'd into a mind flayer who used #monster to emit a psychic blast was
able to harm mindless monsters with it
some hero attacks that should have gotten a skill bonus or penalty didn't
change internal name of "<foo> venom" to "splash of <foo> venom"
some operations that made sense to handle venom ('D', scroll of identify, no
doubt others) ignored it because venom is suppressed from packorder;
matters for wizard mode or for normal play that loads wizard bones
singularize "splashes" to "splash" instead of "splashe"
treat slinging gems and tossing or slinging stones at unicorns as attacks
give rot-away timer instead of revive timer to corpses of cancelled trolls
switch revive timer to rot-away timer if a troll corpse gets cancelled
uncancel an ice troll if its corpse is put into an ice box; give corpse a
revive timer if later taken out
splitting a stack of candy bars gave new wrapper text depending upon the
obj->o_id value assigned; keep existing text for both halves of stack
(side-effect: separate candy bars usually won't merge anymore)
describing tin variety (deep fried, pureed, &c) relied on the 'contents known'
flag but object identification wasn't setting obj->cknown for tins
wizard mode #wizintrinsic: setting Levitation wouldn't block Flying as
intended because the check for that was being made too soon
chatting to the quest leader in wizard mode with sufficient experience level
and insufficient piety, player is asked whether alignment should be
boosted; answering 'n' resulted in being prompted a second time
end of game inventory disclosure passed an inappropriate argument to the
inventory display routine; not noticeable for tty and curses,
noticeable but not harmful for X11, and slightly harmful for Qt
turning into slime rendered hero as slime one turn too soon
avoid potential infinite loop if hangup occurs at ring "right or left?" prompt
randomize the turns where accessories and extrinsics affect nutrition
handle being interrupted by approaching monsters more consistently
if hero attacked a peaceful monster, some other peaceful monsters with humanoid
shape (minotaur, zruty, perhaps others) that witnessed it but which
shouldn't be capable of normal speech expressed their surprise audibly
make gasp/exclamation message from peaceful monsters be more verbose to
indicate which monster is doing the gasping or exclaiming
when make was invoked with -j makedefs instances could end up running in
parallel and could trample on each other's temp files; default to
using mkstemp(); allow a port runtime library implementation that lacks
mkstemp() to define HAS_NO_MKSTEMP to revert to the old behavior;
provide a work-alike mkstemp() implementation for windows visual studio
in mdlib.c so there is no requirement to define HAS_NO_MKSTEMP there
make piranhas faster and give them extra bite attack
fire sources can ignite candles, lamps, and potions of oil
for multiple drop ('D') with menustyle traditional or combination, if the only
object class player picked was '$' then it operated on all classes
small monsters could seep through their shirt
don't snuff brass lantern when it's hit by water unless it is submerged
when reporting that hero can't repair a chest's broken lock with key/pick/card
just describe the base item without BUC, user assigned name, &c since
"You can't repair a chest's lock with an uncursed key." implicitly
suggests that you might be able to do so with a blessed or cursed one
pre-populate teleport destination prompt with travel destination
ghosts cannot be renamed
tossed upwards objects got two times half physical damage reduction
monster xorns could pass through iron bars but not eat them; monster rock
moles could no neither; now they can eat bars when adjacent and will
do so if the bars are blocking their path
hero poly'd into rust monster could implicitly eat bars when adjacent by
trying to move there, now when in rock mole form too; in xorn form
can explicitly eat them via 'e' after moving onto their spot
monster hiding under an egg that hatched was kept hidden
restful sleep regenerates hit points
attacking non-adjacent concealed mimic by applying a polearm would make the
hero be stuck to that mimic
hero could break a wand ("raising the wand high over your head, you break it
in two") even if hands were welded to a two-handed weapon or to a
one-handed weapon and also to a shield
if a monster threw a cocktrice egg at the hero but hit and petrified another
monster, the hero would get credit/blame for killing it
since ki-rin look quite a bit like unicorns, make them be more like one:
allow them to use their own horn to cure themselves; remove M1_ANIMAL,
change MS_NEIGH to MS_SPELL, add MR_POISON, use horse body parts;
they're still 'A' rather than 'u' and don't care about gems
wand/scroll of create monster or bag of tricks that makes a new monster which
can be seen or sensed becomes discovered, but was doing so even for a
concealed mimic seen as furniture or an object
'showscore' could be used to determine how much gold was inside a container
whose contents were unknown
wizard mode (only way to get timed flying): if levitation and flying time out
on same turn, player was told "You have stopped levitating and are
now flying."; status line wasn't updated to remove stale Fly condition
throwing or kicking a shop container (that's light enough to move) made the
hero pay for any gold inside, then didn't refund that amount if the
container landed inside the shop
try to fix message sequencing for tame golems that "roast/rot/rust in peace"
autodescribe when moving the cursor was erroneously honoring MSGTYPE=stop
and potentially delivering sounds
reduce the number of "seeXYZ" commands by renaming some: #seenv -> #wizseenv,
#seegold -> #showgold, #seespells -> #showspells, #seetrap -> #showtrap
when saving while punished or game ends while punished, handling for ball and
chain might access freed memory with unpredictable consequences
brown pudding monster hitting another monster with decay attack corroded armor
instead of rotting it
<?> -> <full key bindings> omitted 'n' prefix and M-digit for number_pad mode,
and ^A/re-do was suppressed due lack of obsolete '#define REDO'
add missing key binding support for rush.numpad; default is M-5 for numpad==1
or plain 5 for numpad==2 where behavior of 5 and M-5 are swapped
allow monsters to use wand of undead turning to revive corpses on floor
in some situations
selling a container to a shop for gold leaves any contents that the shop
doesn't ordinarily buy and sell owned by the hero, but selling the
container for credit resulted in the shop taking poesession of such
contents without giving any additional credit; mark out of place
contents 'no_charge' so that hero can reclaim them without buying
add some new demonic and angelic maledictions
when fire damage dried a wet towel, it would never reduce the wetness to 0
when water damage wet a towel, the new wetness might randomly become less
make Death revive earlier, and all the Riders after 67 turns at latest
when protection from shape changers begins, force mimic out of concealment
even if hero can't see its location; for locations that can be seen,
don't make double-trouble Wizard concealed as another monster--or pet
temporarily mimicking something while eating mimic corpse--fall asleep
best possible armor class reduced from -127 to -99; worst from +127 to +99;
charged or enchanted individual items also capped at +/- 99 (affects
wizard mode wishing, negligible effect on normal play)
fix several inconsistencies for objects at hole locations
make repeat (^A) work when bound to some other keystroke
if a prefix key was bound to some character which ordinarily ran a regular
command and that command wasn't bound to another key, typing the
prefix followed by a non-movement key behaved strangely: instead
of reporting "invalid direction" it would run the other command
(actually depended upon relative order of prefix's new and old key)
reqmenu (the request-a-menu prefix supported by a handful of non-movement
commands) could be bound to some key other than 'm' but it only
worked if the new key was also a movement prefix
when telepathically sensed pet ate a mimic corpse and temporarily took on
a different shape, you were told that you sensed it changing into
something but the map continued to show its true shape (telepathy
overrides mimic hiding); give a different message in that case
when a pet ate a mimic corpse and tried to temporarily look like a sink it
ended up looking like a throne (terrain type SINK == symbol S_throne)
have dowhatdoes ('&') catch up with '?i' to describe ^A, ESC, and movement
prefix keystrokes correctly instead of reporting "no such command"
give barrow wights a cold touch
for configuration using external compression on save files that applied a name
suffix, 'selectsaved' (restore via menu) couldn't handle any which had
been manually uncompressed, mangling file name trying to remove suffix
an empty lamp hit by fire reported "the oil lamp catches fire" (but at least
didn't light)
spells that require a target spot rather than a direction (like skilled
fireball) would not let a blinded hero target his/her own spot, with
feedback stating hero failed to hold location sufficiently in mind;
when not blind, such spells left autodescribe feedback for target spot
in the message window while the spell was being performed
prevent wish request "death wand" from matching Death monster and producing a
random wand instead of a wand of death
grammar bit: "you hear a [AEF] note squeak in the distance" (should be "an")
during engraving, spaces were counted instead of non-spaces [later: affected
code is gone, removed when engraving was converted into an occupation]
when an explosion scatters objects, make any that fly over sinks stop there
output message when changing fastmove mode while cursor targeting
messages when Minetown watchmen become angry could report "you see an angry
guard approaching" even if he was invisible and hero can't see invis
when autopickup is on but disabled due to being inside a shop, have ^X say so
don't force fake player monks to always be male
it was theoretically possible to overflow an internal buffer containing
inventory letters by carrying more than 52 separate lit candles and
using the '(' or '*' commands
hero would be blinded and stunned by an Archon's radiance (gaze attack) even
if the Archon was blind, but monsters would not
applying a polearm to attempt to attack a hidden monster would report "wait!
there's a monster hidden there" and display the "remembered, unseen
monster" glyph but only use a turn if polearm wasn't already wielded
key parsing during options processing was inconsistent between OPTIONS=foo:k
BINDINGS=k:foo where k represents a key designation; the OPTIONS form
recognized backslash escape sequences but not M-x meta characters,
vice versa for BINDINGS (most noticeable for menu interaction keys
such as menu_next_page because those can be set via either directive)
when creating a rolling boulder trap, don't place boulder on a path that
starts on or passes over a pit/spiked pit, hole/trap door,
teleport trap/level teleporter/magic portal
remove superfluous "All" from "All foos are already nonexistent." when blessed
genocide tries to remove something which has already been genocided
"#dip <item> into -" produced a scrambled message:
You mime dip <item> intoing something.
similarly, "#rub the royal jelly on -" produced
You mime rub the royal jellying on something.
mounted hero falling out of saddle shouldn't hit ground and take damage when
levitating or flying (if done without steed's help)
avoid "obj not free" panic if monster kills itself by reading scroll of earth
attempting to throw a partial stack of gold at self was prevented but left
the partial stack in an extra $ inventory slot
quivering a partial stack of gold succeeded and put the partial stack in an
extra $ inventory slot
if player managed to get multiple $ items, all but the last could be moved to
normal letter slots via #adjust and then subsequent #adjust with a
count could split them into even more slots
when a monster on the far side of a closed door opens it, sometimes the hero
was told about the monster without it being displayed on the map
also show extended command name when showing what a key does in help
poly'd hero who exploded when attacking a monster didn't wake up other
monsters in the vicinity; when attacking thin air, hero's explosion
woke other monsters within different radius than same monster's would
troll corpse revival was inhibited by hero wielding Trollsbane; change that
to being killed by Trollsbane instead (wielded by hero or by monster)
statues representing petrified creatures on Medusa's level might be from
monsters who change form (golems) when hit with stoning damage
attempt to make corpse or statue of a named player character would yield that
of a random monster instead when 'record' was empty; could result in
statues of non-stonable creatures in cockatrice nests
homemade tin of very low nutrition corpse gave more nutrition than the corpse
magic mapping performed while engulfed or underwater would display whole map
but then not switch back to the engulfed or underwater restricted view
#overview used hardcoded bold and inverse for highlighting; switch to the
'menu_headings' option value so player has some control
for menustyle:full, the 'A' menu choice to auto-select everything now only
does so if no other choices have been picked; when any have (object
class or BUCX state or both), it auto-selects every item that matches
those choices (so still skips the second menu) rather than every item
using travel to move one step diagonally where that step was blocked by being
too narrow to squeeze through stopped travel instead of considering
alternate routes to the destination
turn off input autocompletion for '#twoweapon' since simple 'X' invokes it;
likewise for #wizdetect (^E), #wizgenesis (^G), #wizidentify (^I),
#wizlevelport (^V), #wizmap (^F), and #wizwish (^W); probably ought
to do so for #overview (^O) too but that one still autocompletes
if a branch has only one level (Fort Ludios), prevent creation of any level
teleporters there (level definition doesn't have any but wizard mode
wishing could attempt to place one)
opening/unlocking magic zapped at monster holding the hero will release hold
(zap at engulfer already expels hero); zapping at self has same effect
when riding, allow scroll of remove curse read by hero to affect steed's saddle
the 'scores' option for final top ten display left default values in place if
only some of the three settings were set; 'scores:own' should have
produced '0 top/0 around/own' but ended up as '3 top/2 around/own'
allow 'scores:none' as shorthand for 'scores:0 t/0 a/!o' (player will be told
whether new score made the list but no scores will be shown)
contents of chests, large boxes, and ice boxes are now immune to water damage
unless the container is cursed, same as for oilskin sacks (previously,
chests+large boxes were always immune and ice boxes always vulnerable)
applying an empty brass lantern in an attempt to light it reported "your lamp
has run out of power"; change to "your lantern is out of power"
when swallowed or underwater, player could be told about events (such as a
shapechanger taking on a new form) that the hero sensed but which
were not shown on the screen; treat being swallowed or underwater as
situations which block telepathy, extended monster detection, warning
some rolling boulder trap feedback was inconsistent
change "killed by <a foo>, while {paralyzed|frozen} by <a foo>" into
"killed by <a foo>, while {paralyzed|frozen}" if the killer caused
hero's helplessness
"It looks very angry" would be given if a hero wielding Excalibur or Demonbane
offended an unseen demon lord
Entering a special room, only wake up the monsters in that room instead of
doing a level-wide wake-up
any blessed key was behaving as if was the rogue's Master Key when unlocking
a trapped chest or box
when an unseen non-pet picks up or uses an item, hero loses known/dknown/
bknown/cknown/lknown memory of that item (so becomes unidentified; in
particular, player won't be asked what to call unseen thrown potion)
when picking up a stackable item, it can be identified by comparing it to
another identical item that is already identified
wishing for a partly eaten wraith corpse yielded "partly eaten food (1) more
nutritious than untouched food (0)"
if PREFIXES_IN_USE was defined (and VAR_PLAYGROUND forces it to be) when
COMPRESS was also defined (external save and bones file compression
via fork()+exec()), the file name buffer in docompress_file() wasn't
big enough so could overflow and trigger a crash
suppress "This <foo> corpse takes {delicious|okay|terrible}" if preceded by
"You have a bad case of stomach acid" or "Ecch - that must have been
poisonous"
innocuous items like scrolls or eucalyptus leaves did harm when falling on
hero's head after being thrown upward
fighter types who start out knowing all non-magic armor should not know
cornuthaum and dunce cap
prediscovered weapons adjustmens: only knights and samurai know polearms;
rangers know launchers (bows), ammo (arrows), and spears regardless
of their race/species; likewise, rogues know all daggers
if the move counter ever reaches 1000000000, end the game
knights get no metal armor penalty for clerical spells
change touch of death from instadeath to maxhp reduction and damage
report cause of death due to touch of death as "killed by the touch of death
inflicted by <monster>" instead of just "killed by a touch of death"
report cause of death due to wand/spell/breath as "killed by <flash damage>
zapped/cast/exhaled by <monster>" instead of just "killed by <damage>"
dying from being level-drained below level 1 killed hero without saying so
and jumped straight to "do you want your possessions identified?"
conflict will now consider your charisma and requires line of sight
boost hit points of some golems
make anti-magic fields always drain max energy
eating magical monsters such as wizards or shamans may give a mild buzz
make exploding spheres create an actual explosion
pets are more careful about attacking monsters at low health
allow killing your quest leader to open the quest
give King Arthur Excalibur
when moving the cursor to examine the map, have '^' move to next trap even if
that trap is displayed with some other symbol (web, vibrating square)
change valkyrie and warrior (valk quest) monsters from chaotic to lawful
change attendant (healer quest) monster from lawful to neutral
quit is not longer bound to M-q
change default value of autopickup to off and color to on
resurrected corpse of mon could end up with different gender from original mon
using a bullwhip to snatch a wielded cockatrice corpse from a monster when not
wearing gloves and without life-saving could trigger "obj_is_local"
panic during final cleanup
make fire-command autowield an appropriate launcher and add fireassist boolean
option to toggle the assistance off
Angels and priests were always described as "the {Angel,priest,high priest} of
<deity>" when first two should have been "{an Angel,a priest}..."
shopkeepers can remove pits and webs
perm_invent: when buying shop goods using itemized purchasing while persistent
inventory window was enabled, the prices of unpaid items went away as
soon as any item was bought (actual item-by-item purchase worked ok)
perm_invent: making an engraving which reduced known enchantment of a weapon
or known charge count of a marker didn't update persistent inventory
change getloc fastmove keys in number_pad mode from hardcoded HJKL to the
run/rush movement keys (meta+number)
allow using rush/run prefix key in getloc to fastmove the cursor
avoid "it" in messages "Wait! There's an it hiding under <an object>!" (hero
moving) and "It was hidden under <an object>!" (unseen monster moving)
don't extinguish burning objects when engulfed by a fire vortex
allow wishing for a novel via description "paperback book" (previously only
worked when specifying "paperback spellbook")
deal with gold leaving a shop via scatter()
defer encumbrance check during polymorph to new man; newman() -> redist_attr()
-> encumber_msg() could report change in encumbrance that immediately
became obsolete if polyman() subsequently restored old attributes
fix heap-use-after-free when attacking monster with potion
for "a" vs "an", add ukulele and uke as exceptions for "an u<anything>"
add new extended command #retravel
remove special doinv key, functionality was equal to BIND=0:inventory
some monsters should not have been scared of bugle playing
monsters that drowned would never leave a corpse (holdover from decades ago
when it wasn't possible to recover anything from a water location)
give alternate message if hero is blind when throne gives "your vision clears"
monster wearing an alchemy smock was only getting poison resistance from it,
not acid resistance; give both properties, just like for hero
in wizard mode, knowing teleport away spell resulted in ^T always attempting
the spell instead of teleporting on demand
describe a couple of isolated moat spots on Samurai quest home level as water
rather than as moat
crawling out of water to avoid drowning didn't work as intended when trying
to move diagonally through a tight squeeze
in wizard mode, polymorphing into hero's role monster in order to revert to
normal form would complain about missing light source if hero was
changing back from the form of a light-emitting monster [didn't affect
normal play because role monsters are invalid polymorph targets there]
revise a 3.6.1 fix: if a spellbook which is being read becomes cursed, always
stop reading: "The <book> slams shut!" and set book->bknown
concealed mimic could trigger sanity check warning "mimic concealed as an
object despite Prot-from-shape-changers" if hidden as "strange object"
cancelled shape changer would become uncancelled if saved and restored (even
just leaving its level and then returning)
don't include time spent suspended in background (^Z) or in shell escape (!)
in the total elapsed time recorded to xlogfile
if a monster is starting to turn into green slime, eat the corpse, tin, or
egg of any creature that might polymorph into a fiery monster to cure
the slime, not just of one of a chameleon
yet another fix for display problems during restore: if game is saved while
hero is hallucinating but that's suppressed because of wielding
Grayswandir, hero is riding, and the steed is on or over an object,
restore will try to update hero's spot when making sure objects aren't
being obfuscated by hallucination, but when displaying the hero there
instead it would access steed pointer before that has been set up
resistances gained from worn or wielded items also protect hero's inventory
dwarvish cloaks somewhat protect hero's inventory from cold and fire
non-metallic gloves protect worn rings from shock
message "Oops! food rations out of your grasp!" occurred due to perm_invent
in mid-operation overwriting all of xname's/doname's obufs; fixed by
having hold_another_object() defer perm_invent update til done with
all its args (so fixed as a side-effect of "spurious add and remove
perm_invent updates" above, prior to being reported as #K3401)
similar "The ogre lord yanks Cleaver from your corpses!" due to caching the
result from makeplural(body_part(HAND)) then having a perm_invent
update clobber that; fixed by having inventory display release the
obuf used for each item so that the same one will be reused for the
next item, to avoid churning through the whole pool of obufs
gas clouds are a little random in how they spread out from a point
Izchak occasionally stocks wands/scrolls/spellbooks of light
data tracking for #overview was mis-using u.urooms[] and after being in a
situation where hero was in multiple rooms at once, visiting other
levels might flag unvisisted rooms as having been visited
special damage attacks by the Riders and by fatal-illness inflictors such as
Demogorgon did no damage against other monsters, only against the hero
using obj->o_id to control 'random' behavior of a helm of opposite alignment
could potentially be controlled by player when wishing for such
obj->o_id might be set to invalid value 0 when a partly used up stack had a
dummy copy added to a shop's bill or when a bones file was loaded
(in theory that could happen on any system but in practice it could
only happen on a configuration that uses 16-bit ints)
if a Rider or displacer beast swapped places with a single-segment long worm
the segment co-located with the head wasn't moved with that head;
if sanity_checking was enabled a warning could be triggered:
mon (000000) at seg location is not worm (123abc)
blessed scroll of remove curse read while confused blesses or curses any
uncursed items in inventory, but if hero was dual-wielding and the
scroll cursed the secondary weapon, that would be dropped and further
object traversal would process items on the floor at hero's spot
instead of the rest of inventory
can now use m<dir> to try to move to an adjacent boulder's spot without
pushing it; hero poly'd into a giant or a tiny creature or carrying so
little as to be able to squeeze there will succeed, others will fail
breaching a shop wall, using locking magic to put a door there, then unlocking
that door yielded a situation where subsequent shop damage repair
produced invalid map data which resulted in an impossible() warning
about "wall_angle: unknown" during map display; similar for a vault
wall if it's the spot where the guard arrives to lead hero out
if vault guard arrives on a boulder in a breach in the vault wall when coming
to lead the hero out, smash that boulder into rocks so that the hero
won't try--and fail, because the guard will be in its way--to push it
when vault walls are repaired, destroy any rocks or boulders at their spots
melting ice timer could persist after the ice was gone from digging or from an
exploding land mine
using 'F'orcefight against iron bars while wielding something breakable could
yield erratic outcome because non-deterministic breaktest() was being
called twice and could yield results that conflicted
have applying a polearm give feedback similar to 'F' for melee weapon when
attacking a wall or boulder
if weight_cap() ever returned 0 (which probably can't happen), using #untrap
to pull a monster out of a pit would trigger a divide by 0 crash
avoid "you now detect it where the vampire bat was" when a vampire shifts from
a bat seen with infravision to an unseen fog cloud
if an artifact gets created as a random treasure drop and then deleted because
it is too big to include with a small corpse, explicitly uncreate it
instead of just discarding it so that it is eligible for use later
when creating random contents for a container, explicitly exclude artifacts
(already implicitly excluded because randomly generated artifacts are
all weapons and containers don't start with any weapons in them)
don't give lance or mattock as starting equipment when creating soldiers
fixup for the insect "legs" (some extraneous walls inside solid stone) on the
baalz level didn't work as intended if that level was flipped
handle flipped level when fixing up the baalz level "eyes" too
prevent normal monster activity from picking up the mines' luckstone or the
Sokoban amulet/bag before hero has done so; relying on scare monster
and/or engraved Elbereth wasn't sufficient to guard the Sokoban prize
proceed a little further into dochat() if hero is deaf
stacks of 1 to 49 gold pieces weighed 0
the chance for #untrap to free a monster stuck in a web was very unlikely
unless hero was poly'd into spider form; make it less hard
if #untrap monst-from-web failure happened while hero was standing on a spot
where a new web couldn't be created (furniture, grave, magic portal),
the expected "<monst> remains entangled" feedback wasn't delivered
if hero is wearing an amulet of magical breathing and polymorphs into a fish
or sea monster, don't lose health for turns spent out of water
fix up some "the" handling for monsters whose type name is upper case to avoid
"Uruk-hai is healthy for a statue", "You can't polymorph into Oracle"
controlled polymorph would turn hero into new man or woman if player asked to
become a unique monster of the same race (so usually human) instead of
being told that polymorphing into the specified form wasn't allowed
assigning a fruit name that matches the name of an artifact which doesn't use
any "the" prefix could yield messages showing "the Artifact" when
dealing with the artifact rather than fruit: "You are blasted by _the_
Excalibur's power!"; didn't impact basic inventory formatting
selection of random engravings, epitaphs, and hallucinatory monster names had
the same problem that rumor selection used to have: entries which
follow longer than average lines are most likely to be chosen and
ones which follow shorter than average lines are least likely; use
same workaround as for rumors: pad the shortest lines; result isn't
uniforn distribution but is better (tradeoff vs size; see makedefs)
make selection of random rumors, engravings, epitaphs, and hallucinatory monst
names have uniform distribution by handling long lines specially
when filling a special room with monsters, if one that can come in groups got
picked the group could spill to outside of the room
extend 3.6.1 fix to explicitly use name of unseen shopkeeper instead of "It"
in various shop related messages (ones issued outside of shk.c)
fix some inconsistencies with applied bullwhip vs monster
polymorphing while wearing an amulet of strangulation from a form that wasn't
vulnerable to one that was gave wrong message ("still constricts")
for accessibility reasons, give a message when monster teleports and
when a monster is created during gameplay (for the cases that
did not have their own custom message)
if a gremlin stole intrinsic 'see invisible' the map wasn't updated properly
mark some messages as urgent ("You die*.", having equipment stolen, being
caught in a magical explosion)
if a leashed pet changed name (#name m) or an unnamed pet changed type
(polymorph or grow-up) and perm_invent was On, persistent inventory
display didn't get updated to show the leash's changed information
attack feedback when using a bullwhip said "swing"; change to "lash";
use "lash" for hero hitting with wet towel too
attack feedback for monster using polearm when adjacent said "thrust"; change
to "bash"
apply runmode delay to multiturn actions, not just running
if a giant carrying a boulder was on ice that melted, it could be killed
twice, first by drowning, then by boulder filling the resulting pool
when it dropped inventory before being removed from the map
allow fire-command to automatically use a polearm, if wielding it
make '$' command also count gold carried inside containers
fleeing leprechauns bury their gold after teleporting
allow #tipping container contents directly into another container
when one leg is wounded, have ^X report which (already used plural if both)
wand of probing used on steed ('z >') didn't include wounded leg(s) feedback
getting wounded in one leg when the other was already wounded miraculously
healed old leg and kept longer of their recovery timeouts for new one
when parsing config file entry "BINDINGS=key1:cmd1,key2:cmd2,key3:cmd3" allow
keyN to be either a naked comma or backslash+comma instead requiring
that comma's numeric value be used to bind comma to a command
when two or more shops share a wall and hero uses Passes_walls to carry an
unpaid item from inside a shop into the shared wall, it could yield
impossible "unpaid_cost: object wasn't on any bill" when examining
inventory if the shop code picked wrong shopkeeper to determine cost
when two or more shops share a wall and hero uses Passes_walls to carry an
unpaid item through the shared wall into another shop, theft of that
unpaid item from the first shop wasn't noticed
redo the unpaid_cost fix to handle shop items inside hero-owned container
flyers shouldn't fall on arrival when going down holes or trap doors
change movement keys and some special keys into extended commands
"WHAMMM!!!" feedback when kicking a door suggests noise so if hero is deaf an
alternate message should be given
fix typo in message shown when hero sees a monster's wet towel become drier
for hero with slippery fingers, enlightenment reports "slippery fingers" or
"slippery gloves" but self-probing described it as "slippery hands"
when hitting with wet towel causes it to lose some wetness, defer "your towel
dries" until after the hit message
do some extra damage when hitting an iron golem with a wet towel
when already at level 30 and gaining another level--which doesn't increase
level further but does add more HP and Pw--throttle the increases
don't stop running when next to a peaceful, unless it blocks the way
mindless monsters shouldn't cringe stepping on squeaky boards
falling down a hole or trapdoor will cause damage proportional to fall height
stinking gas clouds block line-of-sight
covetous monsters will teleport to downstairs or upstairs to heal
have fake player monsters use verbalize instead of pline when reacting to chat
fix mention_walls distinguishing unseen walls from solid stone
don't push unknown boulders when moving
in flush_screen, reorder the code slightly to complete the bot() and
timebot() calls prior to the window port call to place the cursor
on the hero
magic traps can toggle intrinsic invisibility
Death attacking a monster does drain life attack
add unique Rider revival messages
don't dereference NULL u.ustuck in dobuzz() when hero has been swallowed
monsters should growl even if you can't hear it
give a sound effect message when thrown item lands in water or lava
don't show rusting of items that land in water
the water used on the Plane of Water stops thrown or kicked items
looting will do #force if you could do it and the container is locked
and you didn't have a tool to unlock it
use silly names for rays (such as breath weapons) when hallucinating
zombies groan instead of being silent
martial arts users, sasquatches, and heroes wearing kicking boots can
no longer miss a monster completely with a clumsy kick
knights get no caitiff penalty against undead
candy bars are bright blue in text mode
towels weigh more than blindfolds
knight quest home level contains some saddled warhorses
allow creating unhidden traps in special levels
reading magic marker shows the specific red ink color
imps and other creatures cussing hero wake up nearby monsters
make ravens oviparous
thrown items can get stuck in webs
engraving with Fire Brand burns the text on the floor and does not
dull the artifact
make looting less tedious by getting rid of a y/n prompt making the command
go directly into the loot-in-out -menu
always give a message when monster changes form via polytrap if seen
illiterate hero receiving a spellbook from their deity gets the spell shoved
directly into their mind instead
adjust levels of sleep, confuse monster, and charm monster spells
replace monk starting sleep spell with confuse monster
chargeable rings have a chance of getting charged when hit with electricity
flint and hard gems break less often when thrown
hobbits getting a sling also get some ammo for it
elves and rangers get alignment penalty for cutting down trees
casting a forgotten spell uses some random amount of power
heroes starting with a spell have at least one level one spell, and
have just enough power to cast it
huge monsters get easily out of pits
give a message when a trapped monster frees itself from some trap
change kitchen sink glyph to a white {
killed wood golem has a chance to also drop small shields, clubs,
elven spears, and boomerangs
discovering an object on first turn with persistent inventory enabled might
not update inventory info for that item (autopickup a blank scroll
or spellbook and read it as first action; it becomes discovered but
will still be shown as if undiscovered until next inventory update)
most traps now require touching the floor to trigger
if a lit potion of oil on the floor was launched by an explosion and it hit
and killed the hero via missile damage rather than its own explosion,
it could trigger an "obj_is_local" panic when end of game cleanup
tried to extinguish it as a light source
place_object() validated coordinates after using them to index level.objects
killed rope golem may drop leashes and bullwhips
using magic portals stuns hero for a few turns
using level teleporters confuses hero without teleport control for a few turns
clear obj->bypass for buried objects [a giant on ice triggers a fire trap,
inventory is subjected to burning and surviving objects have their
bypass bit set, giant is killed by fire trap and drops a boulder and
other inventory, ice is melted, boulder plugs resulting pool burying
rest of giant's dropped inventory, subsequent sanity checks report
that there are buried objects which are 'flagged bypass']
give Sunsword as starting gear only to lawful Angels; since Demonbane has
become a mace and Angels only get swords, they won't start with it
for #knownclass with menustyle=Tradtional, allow player to ask for `a even if
no artifacts have been discovered yet, same as `<any-object-class>;
likewise for `u to ask to see unique items
reduce eucalyptus leaf nutrition to 1
life-saving might increase max HP; if level drain triggers that, don't let max
HP go up because it confuses healing for monster wielding Stormbringer
HP recovery and/or max HP boost from eating royal jelly didn't perform a
status update to show the change
if poly'd hero is hiding under food and eats or #offers that food, stop hiding
hide-under monsters who can be turned to stone aren't able to hide under a
cockatrice corpse unless there is something else present but make sure
that the other items aren't all more cockatrice corpses
don't stop travel when going past a closed door (eg. when traveling along
a room wall)
some monster corpses can now convey temporary acid or stoning resistance
fix travel getting stuck oscillating between two locations
kicking a trapped chest and getting the exploding chest result destroyed items
at the hero's location rather than the chest's location; because of
that it left the exploded chest intact
it was possible to destroy a Rider corpse with an exploding chest
when teleporting, don't consider pits/spiked pits/trap doors/holes as unsafe
destination locations if hero is levitating or flying
try to avoid locations with engraved Elbereth or scare monster scroll when
creating new monsters or picking teleport destinations for monsters
who are susceptible to those
be more flexible when wishing checks for artifact name matches; now allows
"firebrand" or "fire-brand" to yield "Fire Brand"
exclude unique monsters from pacification when untrapped from web
ask to kick a door open, if it's locked and you don't have unlocking tool
give a message when stinking cloud is created on top of hero
when being life-saved prevents the hero from moving again during current turn,
avoid logfile annotation "while helpless" if hero dies a second time
if drinking from a fountain randomly gave the 'detect monsters' effect but
there were no monsters on the level then there was no feedback
object detection always showed a mimic imitating a statue as a tengu even if
it had information available about some other type of monster
avoid "the Lord Surtur's corpse glows iridescently" when shk_your() or the()
is applied to the corpse of unique monster with a personal name
restoring while attached ball or chain is on floor in a breach of a shop wall
could have it be moved out of wall gap as that gets repaired, then
might trigger an impossible about being positioned too far from hero
don't try to catch up for lost time for shop damage repair in restdamage()
called from getlev(); let normal shopkeeper movement take care of it
shop wall repair that was delayed because the hero or a monster was an
obstacle in the gap at repair time might not be displayed as wall
once the obstacle moved and the repair eventually took place
putting objects into a container with menustyle=traditional and then taking
them back out with #tip would result in complaints about obj bypass
bit being set if sanity_check was On
when drinking or dipping, allow the 'm' prefix to be used to skip asking
about fountains and pools
calling real or fake Amulet something could give away information about them
throwing gold while inside a purple worm would yield "The gold disappears
in the the purple worm's entrails." (note doubled "the")
inventory #adjust for !fixinv, after picking 'from' slot the prompt for 'to'
slot was supposed to include the next letter beyond those in use as
a candidate for destination but an off by 1 error only showed a-x
where x is last letter used (despite that, y could still be picked)
with two-weapon combat or Cleaver attacking multiple targets, hero kept going
with next attack after being paralyzed by passive counter-attack
trap detection could falsely find trapped secret doors; those can't be trapped
due to details of how they use overlaid fields in the rm structure
for force-fight against edge of level, report "you harmlessly attack unknown
obstacle" rather than "you have moved as far <direction> as possible"
using wizard mode ^V in endgame to return to previously visited Plane of Water
now gets the same air bubbles back instead of a replacement set;
likewise for clouds on Plane of Air
on tty at least, "version incompatibility for save/123xyzzy" was invisible:
a blank message of appropriate length followed by --More--
fix a pair of off-by-one bugs when doling out initial characteristics points,
resulting in an unintentional bias toward Str and away from Cha;
negligible effect on individual games but had a minor cumulative
effect across a large set of games
using a marker to write "novel" or "paperback book" on a known blank spellbook
was producing a randomly chosen Pratchett novel; make it fail instead
when a monster killed a pudding and it left a glob, that glob might not be
displayed on the map (wasn't an issue for killed-by-hero case)
if player gave a subset count when removing an item from a container, then got
the pickup_burden prompt and declined to continue, the item remained
split rather be recombined, making it possible to create multiple
stacks of gold inside a container
two-handed weapon message stated "welds to monster's hand" instead of
"welds to monster's hands"
when formatting an object, avoid capitalization of "The" in "<item> named
The <quest-artifact>"
be less specific when cause of death is "handling a <ring or wand>" that
happened to be silver for current game; list it as "a silver ring" or
"a silver wand" rather than "ring of searching" or "wand of locking"
adjust the row placement of copyright and early startup messages so that
aren't partially overwritten by prompts that follow
ball and chain could be accessed after having been freed if bones were saved
early post-3.4.3 tried to fix the "naming artifacts trick" which could be used
to distinguish the type of some undiscovered items, but using a name
that only matched an artifact after capitalization was exploitable
the u.ustuck hierarchy is: swallowed by ustuck, hero poly'd into sticky form
is holding ustuck even if ustuck is sticky, ustuck is holding hero;
but some code assumed that the first two cases were reversed and
could make formerly sticky pold'd hero clear ustuck, leaving hero
swallowed by nothing (u.uswallow==1 with u.ustuck==NULL); that could
cause a crash if u.ustuck got dereferenced
when a vampire gains levels and grows into a vampire lord, change its cham
field (shapechanger base type) from vampire to vampire lord so that if
it revives in base form it won't revert to plain vampire
a migrating long worm that couldn't arrive could be placed at <0,0> while
setting up another migration attempt to the level, triggering
impossible "trying to place long worm tail at <0,0> mstate:8 on level"
(message is confused; it should say "long worm" without tail)
dropping things with 'D' wouldn't merge them with compatible items already at
that floor spot because use of obj->bypass made them seem incompatible
a hero on the quest home level who runs or travels past the quest leader and
gets tossed out of the quest for some reason would keep running on the
far side of the quest portal
allow rush/run over water if wearing discovered water walking boots
flying pets wouldn't target underwater food but if they happened to fly over
such food they could and would eat it
praying on an altar with pet corpse on it can revive the pet
applying a cursed oil lamp can make your hands slippery
valkyries start with a spear instead of a long sword
grid bugs don't have hands
if #wizmakemap was used to generate a replacement level while any shopkeeper,
temple priest, or vault guard from the level was off of it at the
time, the monster's eshk, epri, or egd data became invalid and would
cause trouble if the monster returned to its 'home' level
similarly, if #wizfliplevel was used to transpose an active level while a
vauld guard was maintaining a temporary corridor or while a monster
with eshk, epri, or egd data was off level, that data became invalid
blessed potion of polymorph will prompt user for monster to poly into
out of array bounds access attempt occurred when deciding whether to bounce
if wand or spell zap reached edge of map
if blind hero was challanged by a vault guard, it wasn't possible to see how
to start following that guard out of the vault
make taming via magic harp be consistent with scroll of taming and charm
spell: an angry shopkeeper becomes pacified (but never tamed)
wielding a bec de corbin makes ravens generate peaceful
moving with 'm' prefix allows hero to enter a known pit carefully
rangers always succeed in disarming bear traps, unless impaired
bigroom variant 2 may have ice floor in unlit areas
bigroom variant 3 may have some walls replaced with other terrain
bigroom variant 4 may have two large squares of terrain in the middle
bigroom variant 5 may have patches of ice or clouds
some large monsters can knock back smaller monsters with a hit
change Demonbane to a mace, make it the first sac gift for priests,
and give it an invoke ability to banish demons
wielding Giantslayer prevents knockback from larger monsters; likewise for
carried loadstone(s)
scared hostile monster which cannot move away will attack
prevent a fog cloud that has engulfed the hero from moving under closed doors
allow cutting a known spider web with wielded weapon by force-fighting the web
holes and trapdoors have a fixed exit level
recent changes to losedogs() could result in an infinite loop when migrating
monsters try to arrive as hero moves to a different level
when invisible without see invisible you could see your hands glowing red
after reading a scroll of confuse monster and delivering melee hits
greased saddle makes it impossible to mount the steed
if an item-using monster zaps a wand of digging downward on a level that