Commit Graph

157 Commits

Author SHA1 Message Date
keni
d8c49ec9d1 Add updated copyright lines, part 1. 2018-04-25 15:00:13 -04:00
Pasi Kallinen
fa89d84fa3 Silence yet another warning 2018-03-31 07:47:41 +03:00
Pasi Kallinen
2548d68dd3 Fix some warnings
Remove an unused variable, add missing FALLTHRUs, and use the same
FALLTHRU wording where it wasn't recognized by gcc
2018-03-30 19:42:50 +03:00
Pasi Kallinen
94ad7512a6 Compile-time option to allow some prompts remember the input
Define EDIT_GETLIN to make the tty, X11, and Qt4 windowports to
remember the input strings for wishing and annotation.
2018-03-26 23:04:53 +03:00
PatR
c59f9512c7 T-shirt punctuation
'It reads:  "foo bar quux"' is a sentence so should have a terminating
period.  Technically that ought to be placed inside the quotes, but
putting it after distinguishes slogans which have their own punctuation
from ones which don't.

A couple of entries contain multiple sentences.  Some used two-space
separation between those sentences, some only one; make all use two.

Add a few new T-shirt messages, including a couple with pop culture
references which are only 10 years old instead of 20 or more....
2018-01-12 16:13:14 -08:00
PatR
b4540086f8 self-genocide's "you feel dead inside"
It seems to me that the reaction to "you feel dead inside" when you're
polymorphed into an undead creature at the time would be "so what else
is new?".  Vary the "dead" when current form is something which gets
reported as "destroyed" rather than "killed" when killed.  That happens
for things flagged as non-living.  Now undead "feel condemned inside"
and golems "feel empty inside".  Neither of those are ideal but they're
more interesting than "feel dead inside".

After becoming dead inside, give a reminder about that during
enlightenment and if you restore a saved game in that condition.  It
was the latter that set this in motion:  I wanted to confirm that
restoring with u.uhp == -1 didn't give "you aren't healthy enough to
survive restoration" when polymorphed.  (It doesn't; the game resumes
and you'll die if/when you rehumanize.)
2017-12-12 17:53:54 -08:00
PatR
4fad1ba3cc fix #H6285 - speaking vs strangulation
Reading a scroll while blind is permitted if you know its label, but
message is "as you pronounce the words, the scroll vanishes" unless
you are poly'd into a form which can't make sounds, in which case you
"cogitate" rather than "pronouce".  Switch to the cogitate variant if
you are suffering from strangulation.

Casting spells didn't even have the distinction; you could cast them
without regard to speech capability.  Check for that.  Unlike with
scrolls, now you can't cast if you can't speak (or grunt or bark or
whatever) instead of having a variant description of the action, so
this is a bigger change.
2017-10-19 23:08:46 -07:00
Pasi Kallinen
612a0cb909 Make boulder dropping noise wake up monsters
Also, don't bother waking up monsters who would end up dead anyway.
2017-10-14 21:29:20 +03:00
Pasi Kallinen
7d8ba1d46f Monsters hit by a boulder from your scroll of earth should get angry 2017-10-14 21:00:47 +03:00
Pasi Kallinen
d1b4253307 Fix reversed stinking cloud targeting logic
...and give indication when blessed scroll of fire was targeted
at illegal position.
2017-08-24 09:04:54 +03:00
Pasi Kallinen
c7d13d6fa3 Make blessed scroll of fire useful
Blessed scroll of fire allows to choose the explosion location like
scroll of stinking cloud does. This should make it somewhat useful
in the early game.
2017-08-23 23:35:53 +03:00
Pasi Kallinen
42a3f9d906 Silence another warning 2017-08-19 13:44:08 +03:00
Pasi Kallinen
b13bae91dc Add way to cycle through valid locations for polearm or jump target 2017-07-31 19:10:26 +03:00
Alex Smith
ee5b488514 Differentiate between monster anger from attacks and from other causes
setmangry() and wakeup() were being used for multiple purposes. Add an
extra parameter to track which. This fixes several minor bugs (e.g.
whether monsters with no eyes were angered by (useless) gaze attacks
against them previously depended on the state of a UI option, and
the Minetown guards would be annoyed if you used a cursed scroll of
tame monster on a shopkeeper). It's also a prerequisite for the
Elbereth changes I'm working on.
2016-10-17 18:19:22 +01:00
PatR
eb22f7f583 fix #H4427 - confused scroll of light
When scroll of light is read while confused and summons a yellow or
black light, if it didn't have a user-supplied type name then user
would be asked to supply one even if scroll of light was identified.
Let effect()'s caller handle docall().
2016-07-05 04:31:51 -07:00
Pasi Kallinen
3502cfcc5a Hallucinatory liquids for water, lava, and acid 2016-06-07 20:57:50 +03:00
Pasi Kallinen
d45d475468 Gremlin wailing in agony should wake up nearby monsters
Also allow wizmode ^G create sleeping monsters
2016-05-29 09:35:55 +03:00
PatR
74ee31e504 more angry god vs pacifist conduct
Do it properly, using the arguments to xkilled() instead of reversing
the conduct counter after the fact.

The xkilled() flag value of '1' has been reversed.  It used to mean
'display message' but now means 'suppress message' since both of the
other flag bits are for suppression.  All callers have been updated
to specify either XKILL_GIVEMSG or XKILL_NOMSG so the underlying
number remains transparent.
2016-05-10 15:59:22 -07:00
PatR
b89e0a832f ^G enhancement
Accept "male" or "female" when specifying monster type for ^G.
Groundwork for testing and hopefully eventually fixing "female
gnome" grows up into "gnome lord" and becomes male.
2016-03-10 17:50:09 -08:00
PatR
ef863f3c9f fix #H4057 - rusting amulets
There have been two or three reports on getting feedback about
amulets rusting.  Object formatting doesn't display erosion for
them, so being told about damage then not seeing that damage
feels like a bug.  Even if damage was displayed, it has no effect
on them so would still feel somewhat strange.  It does display
erosion for wands and rings, which is strange too.

This limits erosion damage--and its feedback--to items which are
actually impacted by erosion:  armor, weapons and weapon-tools;
also heavy iron balls and iron chains since they've traditionally
shown rust even though it has little effect.

A side-effect of this change is that flammable items (other than
armor and weapons) which don't burn up immediately will no longer
become burnt, then very burnt, thorougly burnt, and finally be
destroyed.  Since the player couldn't see or possibly repair the
erosion state, it seemed incomplete.  It could be reinstated by
making other flammable items be subject to erosion and displayed
as such by xname() & co.

Wishing now avoids applying erosion and erosion-proofing to items
that aren't affected by it, regardless of material.  It also now
allows wishing for "rusty rustproof <iron-object>" which used to
suppress "rusty" in that combination and triggered a couple of
old bug reports.

Heavy iron balls and iron chains can have rust repaired and can
be made rustproof by wielding, then reading enchant weapon while
confused, as if they were weapons.
2016-03-09 16:37:43 -08:00
Pasi Kallinen
0ca477486d Unify putting a saddle on steed 2016-02-05 17:23:22 +02:00
Pasi Kallinen
00935a11c8 Allow wizmode creating saddled and invisible monsters 2016-02-05 16:58:13 +02:00
Pasi Kallinen
c740425a90 Use define for iron ball weight increment 2016-01-06 16:23:48 +02:00
PatR
7d6d508eef more tin opener
Reading a non-cursed scroll of enchant weapon has a side-effect of
uncursing a weapon welded to hand(s).  Make it do the same thing for
cursed tin opener, the only non-weapon/non-weptool that welds to hand.
2015-12-19 18:14:39 -08:00
nhmall
a5c63af579 objected to 2015-12-18 20:55:24 -05:00
nhmall
5ee09d66d6 blind pronunciation of scroll formula not a literacy violation
bug bz25, no web id, devteam email received on 1/3/2006 6:15 AM:
> Reading a scroll while blind shouldn't violate illiterate conduct
2015-12-18 19:02:19 -05:00
PatR
af6887796f scrolls written while blind; scrolls of mail
Make a fix suggested during beta testing:  you can read scrolls while
blind if you know the label, and you can write a scroll with a magic
marker while blind, but the result was flagged as description unknown
so you couldn't read the newly written scroll until regaining sight
or obtaining object identification.  So change writing a previously
discovered scroll while blind to set dknown since a successful write
always yields the type of scroll requested.  Getting lucky while
attempting to write an undiscovered scroll--which has to be done by
scroll's type name (for instance "food detection") rather than by its
label ("YUM YUM")--still leaves the description flagged as unknown
since hero hasn't seen the what sort of label the new scroll has.

Along the way I got side-tracked by the possibilty of writing a scroll
of mail.  It's allowed and yielded the same result as finding such a
scroll in bones, or wishing for one:  when read, it was junk mail from
Larn.  Make one written via marker give different feedback since it
comes from creation of a stamped scroll without any stamps available.

Also, suppress an "argument not used" warning for readmail().
2015-12-16 02:23:32 -08:00
PatR
ead5b0f210 fix #H4061 - uncursed scroll of enchant armor
In 3.4.3, reading an uncursed scroll of enchant armor while wearing
a piece of cursed armor performed an uncurse as well as raising
enchantment.  A fairly big patch to redo how pending shop bills were
affected by altering the items on the bill accidentally took away
the uncurse part when modifying the scroll code to use the bless()/
uncurse()/curse() functions instead of manipulating the armor's
blessed and cursed flags directly.
2015-12-12 18:08:11 -08:00
PatR
a35c3e184c fix #H3994 - cursed genocide is inconsistent
After reading a cursed scroll of genocide, explicitly choosing "none"
when asked to pick what type of monster to wipe out, you get "sent in
some <rndmonst>".  But picking nothing (or something invalid) 5 times
gave "that's enough tries" without sending in random monsters.  Make
the time-to-give-up behavior be the same as the don't-want-to behavior.

Also, treat picking ESC the same as "none", like blessed genocide does.
2015-12-08 23:12:28 -08:00
PatR
3903381a2d dungeon overview bug fixes
Reported by a beta tester months ago:  it was possible to recognize
your god's temple on the Astral Plane by stepping into its doorway,
since #overview would show "temple of <your god>" (only if just one
temple had been entered and the altar in it was the only one you'd
seen and it was for your own god; #overview doesn't show "temple of
<other god>", just "a temple").  After this fix it will just show
"a temple" even when you can see the temple's altar, so #overview
can't be used as a shortcut to finding the right temple.

While testing the fix I discovered that amnesia wasn't handled when
forgetting the current level's map, only when other levels got
flagged as forgotten.  The number of altars, fountains, and so on
are recalculated when #overview is executed, so current-level amnesia
worked for those.  But data about known rooms is not recalculated,
so the number of temples and shops you'd visited on the level stayed
instead of being forgotten.  The fix is a bit iffy for the case where
you only forget random spots scattered across the level's map rather
than the whole thing; this just wipes #overview memory of every room
even if parts of rooms are still remembered.
2015-11-29 21:46:24 -08:00
Pasi Kallinen
08b041f15f Pacify some clang compile warnings, pt 2 2015-11-21 23:50:11 +02:00
PatR
a2a567737e warning suppression
Fix a couple of the clang static analyzer's warnings.

muse.c has some reformatting.  zap.c wasn't triggering any warning about
possible null pointer, but using MON_AT() to maybe avoid m_at() is not
a useful optimization since m_at() is a macro which starts out by using
MON_AT() itself.
2015-11-19 18:49:50 -08:00
Pasi Kallinen
7132f56901 Unwrap t-shirt and apron texts, and add one t-shirt msg 2015-11-09 13:24:40 +02:00
PatR
449084fa6c eliminate implicit concatenation of strings
Explicitly combine adjacent string literals so that pre-ANSI compilers
still have a chance to compile the code.  I thought these had already
been dealt with, but I kept stumbling across them while reformatting,
so am trying to get them all out of the way now.
2015-11-06 15:57:23 -08:00
PatR
102e427ca7 fix scroll of charging
The intended change was that you'd get an increase to max energy if
current was sufficiently close to max rather than only when it was
already at max.  It wasn't intended that you'd fail to have current
boosted all the way to max in the case where it wasn't sufficiently
close.  That's fixed here.
2015-11-05 18:39:02 -08:00
PatR
ea8afe7e24 formatting - last of the trailing continuations
Last few && or || followed by end-of-line comments, plus tab replacement
and 'return' parentheses.  Not as many of those; some of these files had
already had that done.

Also, tweaked non-cursed scroll of charging read while confused to be a
tiny bit more effective.

To do:  find and fix block comments that immediately follow a line with
an end-of-line comment and got misindented to line up with that comment.
2015-11-05 00:54:13 -08:00
Pasi Kallinen
f056bdb429 Comment typofixes, pt 2 2015-10-17 13:15:46 +03:00
Pasi Kallinen
e995d88997 Fix cursed scroll of light on the rogue level
Being blind and engulfed, reading cursed scroll of light did still darken
the room on the Rogue level.  This also changes the logic a bit, so that
cursed scroll of light will douse lamps in your inventory, even when
swallowed.
2015-10-09 08:00:47 +03:00
PatR
a28b535e80 litroom() vs Blind
An item from the "A few bugs" mail was that reading a scroll of light
when swallowed didn't light the surrounding area--which is intended--
but that doing so while blind *did*.  The logic in litroom()--which
the report was based on--was wrong, but do_clear_area() prevented the
light was escaping the engulfer.  So there was no bug from the player's
perspective, but only because the vision code has special handling for
being swallowed.  This fixes litroom()'s logic and does some formatting
cleanup.
2015-10-08 18:05:05 -07:00
Sean Hunt
4cd43fdaa2 Clean up ceiling nits.
Fixes C343-102.
2015-05-24 11:12:12 -04:00
Sean Hunt
dc08561ddb Replace tabs with spaces. 2015-05-09 14:45:43 -04:00
Derek S. Ray
1770591189 fix duplicated header lines 2015-05-09 14:35:12 -04:00
Derek S. Ray
a3b260f390 Merge branch 'AlexK-misc'
* AlexK-misc:
  erosion is not being removed after reading non-cursed scroll of enchant weapon
2015-05-09 14:34:16 -04:00
Sean Hunt
97d6fade74 Reformat all C files.
I'll push a formatting guide at some point. There may still be
outstanding changes, but please feel free to resolve those as you arrive
a them.

To the best of my knowledge, there is no changes to the actual code
content, but the formatter does have the occasional bug. If you run into
an issue, please fix it!
2015-05-09 13:43:16 -04:00
Alex Kompel
6a66408964 erosion is not being removed after reading non-cursed scroll of enchant weapon 2015-05-08 00:12:36 -07:00
nhmall
20069798d4 Merge branch 'master' into win32-x64-working 2015-05-07 04:52:30 -04:00
karnov
2a907f894e Version number increment 2015-05-06 22:04:27 -04:00
nhmall
67e7565ee2 Merge branch 'master' into win32-x64-working
Conflicts:
	src/sp_lev.c
2015-04-22 22:33:22 -04:00
Pasi Kallinen
5a42ce4040 Unify boulder dropping on player
... and if you're swallowed, make the dropped boulder hit the monster.
(Changes from UnNetHack)
2015-04-22 20:22:55 +03:00
nhmall
9b63abf2b0 Merge branch 'master' into win32-x64-working 2015-04-21 17:52:40 -04:00