4 years agoMake room for more unrands.
Neil Moore [Sat, 30 Nov 2013 01:06:07 +0000 (20:06 -0500)]
Make room for more unrands.

4 years agoAllow jellies to split again (#7708)
Chris Campbell [Sat, 30 Nov 2013 01:01:24 +0000 (01:01 +0000)]
Allow jellies to split again (#7708)

Previously their maxhp cap when eating items stopped them from being able
to split (unless they ate lots of doors!). Also adds the same maxhp cap
from item-eating to door-eating, also renames base_max to avg_hp, to be a
little less misleading.

4 years agoCorrect mons_avg_hp calculation.
Neil Moore [Sat, 30 Nov 2013 00:47:21 +0000 (19:47 -0500)]
Correct mons_avg_hp calculation.

We were rounding too early, causing low numbers for monsters with an odd
hit die size (1 HP too low for every 2 HD).

We still round down rather than randomly so the function remains

4 years agoMore minor tutorial fixes.
Raphael Langella [Fri, 29 Nov 2013 15:19:35 +0000 (16:19 +0100)]
More minor tutorial fixes.

4 years agoDelay more prompt until level has finished loading.
Raphael Langella [Fri, 29 Nov 2013 23:12:02 +0000 (00:12 +0100)]
Delay more prompt until level has finished loading.

Getting a more prompt during level load results in a screen only partially
updated and looking really bugged. It's especially bad since it happened
during loading tutorial levels which is the very first thing many new player
see. It also happened when entering a level with an announce portal. If there
are more cases, I didn't test them.

4 years agoAdd a Sigmund/Edmund minivault.
Robert Lund [Sat, 23 Nov 2013 08:05:43 +0000 (00:05 -0800)]
Add a Sigmund/Edmund minivault.

[Made the weaponry in Edmund's closet more specific. -nfm]

4 years agoDon't let statdrain from god wrath bypass sustain ability
Chris Campbell [Fri, 29 Nov 2013 21:31:23 +0000 (21:31 +0000)]
Don't let statdrain from god wrath bypass sustain ability

Similar to confusion+clarity.

4 years agoDon't try to replace Abyss, Pan entries on the orbrun.
Neil Moore [Fri, 29 Nov 2013 21:31:40 +0000 (16:31 -0500)]
Don't try to replace Abyss, Pan entries on the orbrun.

4 years agoAllow setting in dlua.
Adam Borowski [Fri, 29 Nov 2013 21:27:51 +0000 (22:27 +0100)]
Allow setting in dlua.

Even if the game is not in wizmode, like vaults could want to.

4 years agoDon't overload lua
Adam Borowski [Fri, 29 Nov 2013 21:21:50 +0000 (22:21 +0100)]
Don't overload lua

It's safer to have the same function be available in clua and dlua, and
allow setting the amount only in wizmode.  This way, we have only C++-like
overloading (number of arguments) but no two distinct versions depending
on which interpreter you're in.

4 years agoRename a function for clarity.
Neil Moore [Fri, 29 Nov 2013 21:14:35 +0000 (16:14 -0500)]
Rename a function for clarity.

4 years agoAllow to be read in clua
gammafunk [Fri, 29 Nov 2013 08:31:27 +0000 (02:31 -0600)]
Allow to be read in clua

4 years agoChangelog through 0.14-a0-1169-g4815781.
Steve Melenchuk [Fri, 29 Nov 2013 17:40:41 +0000 (10:40 -0700)]
Changelog through 0.14-a0-1169-g4815781.

Usual disclaimer applies.

4 years agoSimplify find_newmons_square(), make it not crash.
Adam Borowski [Fri, 29 Nov 2013 15:18:54 +0000 (16:18 +0100)]
Simplify find_newmons_square(), make it not crash.

After the first failure, it kept calling find_newmons_square_near() (and
that in turn radius_iterator) with an invalid starting spot which would
then always fail.

Passing the monster that's to be checked for clouds to inside functions
removes the need to make many random tries.

4 years agoCheck that nothing uses a radius_iterator centered outside the map.
Adam Borowski [Fri, 29 Nov 2013 03:25:14 +0000 (04:25 +0100)]
Check that nothing uses a radius_iterator centered outside the map.

If I'm wrong, please revert.

4 years agoDrop the rock worm tile.
Adam Borowski [Fri, 29 Nov 2013 02:57:26 +0000 (03:57 +0100)]
Drop the rock worm tile.

4 years agoGenerate a raiju corpse tile.
Steve Melenchuk [Fri, 29 Nov 2013 03:20:52 +0000 (20:20 -0700)]
Generate a raiju corpse tile.

4 years agoCorrectly pluralise raiju as raiju.
Steve Melenchuk [Fri, 29 Nov 2013 03:15:11 +0000 (20:15 -0700)]
Correctly pluralise raiju as raiju.

4 years agoCap monster summons.
Steve Melenchuk [Fri, 29 Nov 2013 02:56:19 +0000 (19:56 -0700)]
Cap monster summons.

This has most noticeably been an issue with, say, Ilsuiw's water
elementals (or old-and-then-new-again elemental wellsprings) and
Sojobo's air elementals; it tended to get extremely spammy and tedious.

There are some monster spells for which I've set the cap fairly high -
perhaps unnecessarily so; these can be tinkered with as necessary.

4 years agoAxe "without limit" from wellspring description.
Adam Borowski [Fri, 29 Nov 2013 02:35:24 +0000 (03:35 +0100)]
Axe "without limit" from wellspring description.

4 years agoMake elemental badsprings summon (via the primal wave) instead of having a band.
Adam Borowski [Fri, 29 Nov 2013 02:28:04 +0000 (03:28 +0100)]
Make elemental badsprings summon (via the primal wave) instead of having a band.

That's what DracoOmega suggests.  Should be less annoying now that the
wellspring can get used up.  Also, note that they don't have two separate
spells: their Primal Wave does damage, spawns water and summons the
elementals, all in one package.

4 years agoMake wellsprings use their hp as mana for casting their spells (tenofswords).
Adam Borowski [Fri, 29 Nov 2013 01:47:09 +0000 (02:47 +0100)]
Make wellsprings use their hp as mana for casting their spells (tenofswords).

4 years agoFix a crash on acid splash.
Adam Borowski [Fri, 29 Nov 2013 01:07:50 +0000 (02:07 +0100)]
Fix a crash on acid splash.

4 years agoRemove rock worms.
Adam Borowski [Fri, 29 Nov 2013 01:01:51 +0000 (02:01 +0100)]
Remove rock worms.

4 years agoAutomated brace removal.
Adam Borowski [Fri, 29 Nov 2013 00:20:08 +0000 (01:20 +0100)]
Automated brace removal.

4 years agoFix a warning in optimized builds.
Adam Borowski [Fri, 29 Nov 2013 00:19:41 +0000 (01:19 +0100)]
Fix a warning in optimized builds.

4 years agoAdd hit_(non)magic(_nomove) functions, rename hit_adjacent to hit_closest_nomove.
elliptic [Fri, 29 Nov 2013 00:11:38 +0000 (19:11 -0500)]
Add hit_(non)magic(_nomove) functions, rename hit_adjacent to hit_closest_nomove.

One issue with the recently added automagic functionality is that it
displaces the regular tab autofight, making it painful to use for characters
who would still like to melee weak monsters.

For now, I'm leaving the default automagic behavior as it is for a bit more
testing and feedback. This commit makes it easier for players to put autofight
and automagic on two different keys, by macroing one to ===hit_nonmagic and
the other to ===hit_magic. (I plan to use tab and capslock, personally.)
There are also non-moving versions at hit_nonmagic_nomove() and

For more consistent and correct naming, hit_adjacent() (shift-tab by default)
was renamed to hit_closest_nomove().

4 years agoUnbreak tiles.
Adam Borowski [Fri, 29 Nov 2013 00:16:04 +0000 (01:16 +0100)]
Unbreak tiles.

4 years agoDrop tagstring.{cc,h}
Adam Borowski [Fri, 29 Nov 2013 00:04:09 +0000 (01:04 +0100)]
Drop tagstring.{cc,h}

A whole file for four lines of code.

4 years agoDon't convert the argument to stop_attack_prompt() back and forth.
Adam Borowski [Thu, 28 Nov 2013 23:52:31 +0000 (00:52 +0100)]
Don't convert the argument to stop_attack_prompt() back and forth.

4 years agoRestrict mpr() to literals only.
Adam Borowski [Thu, 28 Nov 2013 23:48:38 +0000 (00:48 +0100)]
Restrict mpr() to literals only.

The translation project is stalled, but this makes all of such static strings
trivially gatherable without any extra work.

4 years agoRemove mpr_nocap().
Adam Borowski [Thu, 28 Nov 2013 22:47:56 +0000 (23:47 +0100)]
Remove mpr_nocap().

No particular reason, other than consistency.  And all but two used wasteful
double-conversion, so this is not a speed regression.

4 years agoReverse the order of arguments in mpr_nojoin().
Adam Borowski [Thu, 28 Nov 2013 22:41:06 +0000 (23:41 +0100)]
Reverse the order of arguments in mpr_nojoin().

The old one was quite bizarre, inconsistent with mprf().

Only two cases used the default channel (mpr_nojoin() is quite special...),
so I did not add an overload with the default.

4 years agoRemove the multi-argument version of mpr().
Adam Borowski [Thu, 28 Nov 2013 22:36:46 +0000 (23:36 +0100)]
Remove the multi-argument version of mpr().

4 years agoReplace `mpr(s, ch)` with `mprf(ch, s)`
Adam Borowski [Thu, 28 Nov 2013 22:33:32 +0000 (23:33 +0100)]
Replace `mpr(s, ch)` with `mprf(ch, s)`

Also simplify quite a few cases.

It turns out in >90% cases of non-literals the argument had .c_str(),
which meant it was pointlessly malloc()ed and converted from and to
std::string.  I believe a sprintf is faster, so even the argument of
miniscule speed-up doesn't apply.

4 years agoRevert "Replace `mprf(ch, s)` with `mpr(s, ch)`"
Adam Borowski [Thu, 28 Nov 2013 16:39:14 +0000 (17:39 +0100)]
Revert "Replace `mprf(ch, s)` with `mpr(s, ch)`"

It trades readability and consistency for an utterly negligible bit of
speed.  With the amount of further processing mpr() does, a single sprintf
is nothing.

This reverts commit d9dfa8fc9755fb0a4e8954c7eb94f32fe97b82e0.

4 years agoPlace fallback chance tag vaults when main vault is blocked by [l]uniq tag.
Steve Melenchuk [Fri, 29 Nov 2013 00:05:04 +0000 (17:05 -0700)]
Place fallback chance tag vaults when main vault is blocked by [l]uniq tag.

This was occasionally causing hellpanabyss entries to not place.

4 years agoDon't produce twice as many zombies on D:12-15.
Adam Borowski [Thu, 28 Nov 2013 23:54:58 +0000 (00:54 +0100)]
Don't produce twice as many zombies on D:12-15.

A quirk of dropping the small/large restriction.

4 years agoCorrect a comment.
Adam Borowski [Fri, 18 Jan 2013 02:48:24 +0000 (03:48 +0100)]
Correct a comment.

4 years agoClarity breathe flame ability description (magicpoints)
Chris Campbell [Thu, 28 Nov 2013 22:58:47 +0000 (22:58 +0000)]
Clarity breathe flame ability description (magicpoints)

4 years agoRevert "Remove linesprint (st_)"
Chris Campbell [Thu, 28 Nov 2013 18:03:25 +0000 (18:03 +0000)]
Revert "Remove linesprint (st_)"

This reverts commit ccf31d4db4ab08536c2fa1aaaac39570039dca73.
This reverts commit 9c081e9989210999fec13828c7766572d8f5ccdd.

I have no strong opinion on whether it should be rotatable or not but
hopefully it's possible to come to some agreement on it without removing
the map.

4 years agoShatter "The shillelagh engulfs you!"
Steve Melenchuk [Thu, 28 Nov 2013 20:58:13 +0000 (13:58 -0700)]
Shatter "The shillelagh engulfs you!"

Don't display engulfs messages for visual beams.

4 years agoRemove linesprint (st_)
Neil Moore [Thu, 28 Nov 2013 17:08:07 +0000 (12:08 -0500)]
Remove linesprint (st_)

4 years agoOrient linesprint horizontally only.
Rahul Chandra [Thu, 28 Nov 2013 03:19:57 +0000 (23:49 -0330)]
Orient linesprint horizontally only.

On most console and many tiled displays, there is more map room
horizontally, so this makes it easier to see the relevant area.

4 years agoCan "You die..." message
Chris Oelmueller [Thu, 28 Nov 2013 09:12:48 +0000 (10:12 +0100)]
Can "You die..." message

4 years agoRename mprnojoin to mpr_nojoin
Chris Oelmueller [Thu, 28 Nov 2013 09:12:47 +0000 (10:12 +0100)]
Rename mprnojoin to mpr_nojoin

For consistency with mpr_nocap, mpr_comma_separated_list and friends.

4 years agoReplace `mprf(ch, s)` with `mpr(s, ch)`
Chris Oelmueller [Thu, 28 Nov 2013 08:25:12 +0000 (09:25 +0100)]
Replace `mprf(ch, s)` with `mpr(s, ch)`

Scripted, then manually reviewed.

4 years agoReplace `mprf(s)` with `mpr(s)`
Chris Oelmueller [Thu, 28 Nov 2013 08:25:12 +0000 (09:25 +0100)]
Replace `mprf(s)` with `mpr(s)`

Scripted, then manually reviewed.

4 years agoString semantics
Chris Oelmueller [Thu, 28 Nov 2013 08:25:11 +0000 (09:25 +0100)]
String semantics

4 years agoRemove hardcoded ENDOFPACK from a message
Chris Oelmueller [Thu, 28 Nov 2013 08:25:11 +0000 (09:25 +0100)]
Remove hardcoded ENDOFPACK from a message

4 years agoRemove double spaces.
Raphael Langella [Thu, 28 Nov 2013 15:17:31 +0000 (16:17 +0100)]
Remove double spaces.

4 years agoDon't waste potions of speed, flight or invis.
Adam Borowski [Thu, 28 Nov 2013 04:03:37 +0000 (05:03 +0100)]
Don't waste potions of speed, flight or invis.

Invis can be drank while contaminated which isn't going to do anything good,
but it has a non-zero effect.

4 years agoFormatting and tag improvements to tutorial.
Raphael Langella [Thu, 28 Nov 2013 00:11:47 +0000 (01:11 +0100)]
Formatting and tag improvements to tutorial.

Especially the end screens. I've tested all 5 of them across the 3 interfaces.

4 years agoDon't remove double newlines when printing tutorial messages.
Raphael Langella [Wed, 27 Nov 2013 20:55:15 +0000 (21:55 +0100)]
Don't remove double newlines when printing tutorial messages.

And don't strip lines. This should simplify formatting them.

4 years agoFix some anachronisms in the level-building docs (rchandra, HangedMan)
Neil Moore [Thu, 28 Nov 2013 03:28:47 +0000 (22:28 -0500)]
Fix some anachronisms in the level-building docs (rchandra, HangedMan)

4 years agoDon't allow wasting potions of curing/heal wounds while under DDoor
Chris Campbell [Thu, 28 Nov 2013 01:05:57 +0000 (01:05 +0000)]
Don't allow wasting potions of curing/heal wounds while under DDoor

4 years agoDon't give any nutrition for potions other than porridge.
Adam Borowski [Wed, 27 Nov 2013 22:31:54 +0000 (23:31 +0100)]
Don't give any nutrition for potions other than porridge.

That's a weird gimmick that doesn't seem obvious to players other than those
who came from Nethack.

4 years agoAbort drinking known potions of a few types when they'd have no effect.
Adam Borowski [Wed, 27 Nov 2013 22:05:25 +0000 (23:05 +0100)]
Abort drinking known potions of a few types when they'd have no effect.

Only a few types of potions for the moment ({cure ,,beneficial }mutation,
berserk, lignify) as I suspect this commit might be reverted.

Mostly, I'd want to hear if this is a good idea.

4 years agoDon't rot vampires by potions of beneficial mutation.
Adam Borowski [Wed, 27 Nov 2013 15:49:22 +0000 (16:49 +0100)]
Don't rot vampires by potions of beneficial mutation.

It had a weird spoily special case of always passing the mutation through if
satiated or higher, explained as convenience (you would need to get fully
tanked to quaff otherwise).  Thus, extend the logic to remove that magic

4 years agoSimplify potion quaff-id.
Adam Borowski [Wed, 27 Nov 2013 15:11:13 +0000 (16:11 +0100)]
Simplify potion quaff-id.

4 years agoFix gargoyles and black dracs not resuming flight upon ending tree form.
Adam Borowski [Wed, 27 Nov 2013 13:51:09 +0000 (14:51 +0100)]
Fix gargoyles and black dracs not resuming flight upon ending tree form.

4 years agoMake sure potions of lignification don't work in water if you can't permafly.
Adam Borowski [Wed, 27 Nov 2013 13:40:31 +0000 (14:40 +0100)]
Make sure potions of lignification don't work in water if you can't permafly.

4 years agoAxe a bunch of redundant arena sprint renames.
Adam Borowski [Wed, 27 Nov 2013 08:22:16 +0000 (09:22 +0100)]
Axe a bunch of redundant arena sprint renames.

Especially boring ones that come together with an interesting one, such as
the succubus or the witch (a novel name, a set of spells, a desc and a
tile).  It's rare anyone gets that far, so they just watered down better
renames that already compete with regular uniques.

Even with this culling, your chances to meet a succubus are 1/6 for a game
that's already most of its way towards winning.

4 years agoShow -Swift light in darkgrey while in liquid.
Neil Moore [Wed, 27 Nov 2013 21:21:31 +0000 (16:21 -0500)]
Show -Swift light in darkgrey while in liquid.

4 years agoLet more uniques generate on D:14-16.
elliptic [Wed, 27 Nov 2013 20:53:57 +0000 (15:53 -0500)]
Let more uniques generate on D:14-16.

Azrael, Kirke, Louise, Roxanne, Rupert, and Snorg now generate on D:14-16
instead of Depths, and Snorg also generates on Lair:3-.

4 years agoAdd comment.
elliptic [Wed, 27 Nov 2013 20:49:50 +0000 (15:49 -0500)]
Add comment.

4 years agoSwiftness changes.
elliptic [Wed, 27 Nov 2013 20:34:31 +0000 (15:34 -0500)]
Swiftness changes.

A L2 buff that could easily be kept up permanently and gave a very powerful
effect for the entire game was problematic for a few reasons. The stealth
and trapfinding penalties were supposed to help with this, but they didn't
really succeed, so let's try something else.

Now Swiftness has two stages, of equal duration. In the first stage it
decreases movement delay by 25% and in the second stage it increases
movement delay by 50%. This has the effect that the spell is speed-neutral
over the two stages combined if you are moving the entire time, so you
cannot simply use the spell to kite monsters forever. It still provides a
powerful short-term boost to movement speed and the balance between the
two stages can be broken in a few ways, including simply taking more
non-movement actions during the second stage.

Of course, the spell cannot be recast while either stage is in effect.

The penalties to stealth and trapfinding have been removed and the spell
is now castable by Formicids.

4 years agoHell, Pan, Abyss entry vault dampening
Jason Van [Wed, 27 Nov 2013 01:32:52 +0000 (20:32 -0500)]
Hell, Pan, Abyss entry vault dampening

 * Function-ify quite a few lines for hell entries and pan entries.
 * Use a luniq tag limiting noticeable threats from one hell/pan/abyss
   themed entry vault per floor, to moderate content use and over-use,
   and limit potential extremes of demon presence in Depths.
 * Buff lemuel_hellmouth vaults: placing mostly melee-only monsters stuck
   over a lava moat is pretty weak for such late vaults.
 * Only place one huge threat vault per game, if hell entries are going
   to place on every floor of Depths.
 * Three new hell entry vaults, essentially decorative, each based off a hell.
 * Have a low, depth-scaling-down chance to place almost no demons
   in each entry vault, doubling threat entries as previously-missing
   decorative entries.

4 years agoWebtiles: allow multiple IP/port combinations.
Neil Moore [Wed, 27 Nov 2013 19:42:32 +0000 (14:42 -0500)]
Webtiles: allow multiple IP/port combinations.

There is not yet a way to specify a different cert for each SSL address,
but that would be nice.

4 years ago[txc] Improve the wrapping for languages without spaces.
Raphael Langella [Wed, 27 Nov 2013 15:02:55 +0000 (16:02 +0100)]
[txc] Improve the wrapping for languages without spaces.

Punctuation is less likely to end up at the beginning of a line (but it still
can happen). Tags are also less likely to be broken.

4 years agoFormatting improvements and tag fixing in hints.
Raphael Langella [Wed, 27 Nov 2013 15:02:39 +0000 (16:02 +0100)]
Formatting improvements and tag fixing in hints.

Also remove an obsolete reference to knives.

4 years agoGive ogre magi their own spellbooks (no functional change).
Cedor [Wed, 27 Nov 2013 11:28:03 +0000 (12:28 +0100)]
Give ogre magi their own spellbooks (no functional change).

[Original title: add spell books for ogre mages and removing the special
in spell loading and monster description (replacing first spell by

4 years agoHomogenize the Abyss Party Patrol
Brendan Hickey [Wed, 27 Nov 2013 03:34:20 +0000 (19:34 -0800)]
Homogenize the Abyss Party Patrol

Draw more abyss spawns from the abyss and fewer from outside the abyss.

4 years agoUnmark actor::pos() as virtual.
Adam Borowski [Wed, 27 Nov 2013 00:57:16 +0000 (01:57 +0100)]
Unmark actor::pos() as virtual.

This prevented inlining this trivial function, and it gets called ~15M times
per gprof's virtual second:
  %time              self #called
  0.81      6.25     0.12 160842498     0.00     0.00  actor::pos() const

4 years agoEncapsulate clearing monster flags into a function on their own.
Adam Borowski [Wed, 27 Nov 2013 00:23:02 +0000 (01:23 +0100)]
Encapsulate clearing monster flags into a function on their own.

Just so it can show up on (unoptimized) profiles.

4 years agoDon't compute slime neighbours on levels with no slime.
Adam Borowski [Wed, 27 Nov 2013 00:17:30 +0000 (01:17 +0100)]
Don't compute slime neighbours on levels with no slime.

2% of a qw profile was spent there.

Might be better to optimize it for levels with actual slime on them as well:
we call set_terrain_changed() which can update slime neighbour counts,
removing the need to compute them repeatedly.  Not doing this right now only
because I'm not sure about all cases vault placement can alter the terrain.

4 years agoMake ENCH_SLEEPY a flag rather an enchantment.
Adam Borowski [Tue, 26 Nov 2013 09:39:08 +0000 (10:39 +0100)]
Make ENCH_SLEEPY a flag rather an enchantment.

This way it can get cleared a lot faster: we have a loop to remove it from
every monster every turn, which shows up this prominently on qw profiles:

[4]     59.6    0.07   14.57   21662         handle_monsters(bool) [4]
                0.31    9.15 1263185/2072593 monster::del_ench(enchant_type, bool, bool)

This commit merely optimizes it without improving the complexity: inventing
some field last_slept could allow setting this only when the monster gets
hibernated.  For now I went the easy but lame way; having the query
encapsulated means a stronger optimization can be done easier.

4 years agoFix indentation.
Neil Moore [Tue, 26 Nov 2013 22:38:11 +0000 (17:38 -0500)]
Fix indentation.

4 years agoDon't let Ozo's armour prevent spriggan rider dismountal.
Neil Moore [Tue, 26 Nov 2013 22:01:03 +0000 (17:01 -0500)]
Don't let Ozo's armour prevent spriggan rider dismountal.

Not that they can actually have Ozo's armour, but still.  To
demonstrate, create a spriggan rider perm_ench:ozocubus_armour and kill
it with fire.

Introduced in 0.13-a0-2683-geefce6b.

4 years agoGive handle warnings for known-cursed weapons of unknown brand.
Neil Moore [Tue, 26 Nov 2013 20:51:41 +0000 (15:51 -0500)]
Give handle warnings for known-cursed weapons of unknown brand.

Spotted by simmarine.

4 years agoRemove unused Xom greater demon summoning code
Chris Campbell [Tue, 26 Nov 2013 14:52:43 +0000 (14:52 +0000)]
Remove unused Xom greater demon summoning code

Per #7321, Xom can't ever actually summon holies or greater demons, and
this appears to have been the case for years (9e6fb5de4cf9 is the culprit
as far as I can tell). It might be good to expand Xom's list of summons
from just demons, but it's probably better to just do so from scratch
rather than attempt to re-use ancient code for it.

4 years agoDon't start VM and As with knowledge of potions of poison
Chris Campbell [Tue, 26 Nov 2013 14:23:37 +0000 (14:23 +0000)]
Don't start VM and As with knowledge of potions of poison

It's unlikely to achieve much other than maybe saving a scroll of identify,
unlike Ar's knowledge of scrolls of recharging which is likely to be somewhat

4 years agoIdentify starting items before checking them for uselessness
Chris Campbell [Tue, 26 Nov 2013 14:17:19 +0000 (14:17 +0000)]
Identify starting items before checking them for uselessness

Fixes FoWr being given scrolls of blinking. Still lets them recognise the
item type, which is probably fine but has some slightly weird results in
Sprint and Zotdef (Mummies recognising a bunch of potion types).

4 years agoRemove runelock tile changes for Depths.
Adam Borowski [Tue, 26 Nov 2013 13:46:23 +0000 (14:46 +0100)]
Remove runelock tile changes for Depths.

4 years agoRemove ?immolation's depth restriction
Chris Campbell [Tue, 26 Nov 2013 12:46:13 +0000 (12:46 +0000)]
Remove ?immolation's depth restriction

Read-identifying it is no longer likely to be lethal to low-level characters.

4 years agoFix a cloud crash during banishment.
Adam Borowski [Tue, 26 Nov 2013 02:30:51 +0000 (03:30 +0100)]
Fix a cloud crash during banishment.

4 years ago[Transifex] Sync.
Translators [Tue, 26 Nov 2013 00:04:49 +0000 (01:04 +0100)]
[Transifex] Sync.

Signed-off-by: Raphael Langella <>
4 years agoUpdate descriptions of branches to match the rune lock changes.
Raphael Langella [Mon, 25 Nov 2013 22:54:59 +0000 (23:54 +0100)]
Update descriptions of branches to match the rune lock changes.

4 years agoChange <w> tags to <input> in translations.
Raphael Langella [Mon, 25 Nov 2013 22:40:24 +0000 (23:40 +0100)]
Change <w> tags to <input> in translations.

To follow the change in english (b487bcecc).

4 years agoEnsure that yesno() calls input under HUP at most once.
Adam Borowski [Mon, 25 Nov 2013 23:26:45 +0000 (00:26 +0100)]
Ensure that yesno() calls input under HUP at most once.

In some scenarios, injecting a single escape is not enough; this flow
should be race-free now.

4 years agoRemove sighup_save_and_exit().
Adam Borowski [Mon, 25 Nov 2013 22:53:02 +0000 (23:53 +0100)]
Remove sighup_save_and_exit().

As the comment said, every single use of this function was a save-corrupting

Too bad, there's one case left: on Unix, HUP will fclose(stdin), which can
immediately fail due to fclose() using malloc (free() to be exact), and then
it still relies on undefined behaviour which sometimes works only because
ncurses does weird things behind our back.

4 years agoUnbreak win32 tile builds.
Adam Borowski [Mon, 25 Nov 2013 22:49:57 +0000 (23:49 +0100)]
Unbreak win32 tile builds.

Sadly, if this pseudo-signal ever happens, it will kill a game without saving.

4 years agoAllow graceful shutdown rather than a forced save (win32 console).
Adam Borowski [Wed, 30 Oct 2013 20:59:59 +0000 (21:59 +0100)]
Allow graceful shutdown rather than a forced save (win32 console).

This injects a fake key code into the input stream, making the syscall
return.  The pseudo-signal handler thread will then wait forever (for a
value of "forever" of 15 seconds).

4 years agoHopefully work around recent mingw linking libwinpthread-1.dll dynamically.
Adam Borowski [Mon, 25 Nov 2013 22:39:40 +0000 (23:39 +0100)]
Hopefully work around recent mingw linking libwinpthread-1.dll dynamically.

4 years agoAllow graceful shutdown rather than a forced save (tiles, Android).
Adam Borowski [Wed, 30 Oct 2013 20:58:15 +0000 (21:58 +0100)]
Allow graceful shutdown rather than a forced save (tiles, Android).

Android is NOT tested!

Also, this will end in an infinite loop if some code keeps asking for input
even though seen_hups is set; yesno() did this until recently.

4 years agoFix an infinite loop.
Adam Borowski [Mon, 25 Nov 2013 22:04:06 +0000 (23:04 +0100)]
Fix an infinite loop.

4 years agoForce a "no" answer when yesno() gets cancelled by a HUP.
Adam Borowski [Mon, 25 Nov 2013 21:47:04 +0000 (22:47 +0100)]
Force a "no" answer when yesno() gets cancelled by a HUP.

This is wrong: if there's indeed no correct default answer, the caller
should reissue the question when the game is loaded.  Not every caller
does, but it seems all cases yet unhandled are:
* unidentified scroll of brand weapon
* unidentified scroll of ID/EA/charging
* any scroll of ID on 2nd or 3rd item

It's likely the player will start thinking, read learndb/spoilers, etc,
when he gets branding, which can result in a HUP -- but that's still
better than corrupting saves and/or allowing cheats.

4 years agoGive a number of yesno() prompts default answers for HUP.
Adam Borowski [Mon, 25 Nov 2013 19:41:05 +0000 (20:41 +0100)]
Give a number of yesno() prompts default answers for HUP.

4 years agoReplace the quote for substantial wisps.
Adam Borowski [Mon, 25 Nov 2013 21:37:29 +0000 (22:37 +0100)]
Replace the quote for substantial wisps.

Less fitting than the old one, except for the wee detail of the old one
being in a language hardly anyone knows.  I can't translate poetry myself,

(There's a technical reason: due to transifex problems, you can't have
a quote in non-.en without .en existing.)

4 years agoShorten DNGN_ENTER_FOO/DNGN_RETURN_FROM_FOO enums.
Adam Borowski [Mon, 25 Nov 2013 16:41:56 +0000 (17:41 +0100)]