crawl.git
3 weeks agoUse `catpath` instead of string + for some path combination stone_soup-0.26
advil [Sun, 7 Feb 2021 03:18:20 +0000]
Use `catpath` instead of string + for some path combination

This should fix 12489, where the use of string concatenation was leading
to part of the path without an unterminated directory turning into part
of the filename.

(cherry picked from commit dfb9265905083d519ffbaaf5fe2b346bfcb2721a)

3 weeks agoFix a bitwise operator used for fire order (12481)
advil [Sun, 7 Feb 2021 22:28:41 +0000]
Fix a bitwise operator used for fire order (12481)

This is supposed to keep classes from being added to the vector multiple
times, but with & it obviously wouldn't do this correctly, leading to
somewhat unpredictable results for custom fire orders. (This whole use
of bitmasks for the fire order is one of the last vestiges of oldquivers
and could use a complete refactor.)

(cherry picked from commit 37e0bc138e91fa1b77dd9274448fd547f0139580)

4 weeks agoUpdate the changelog for 0.26.1 0.26.1
Edgar A. Bering IV [Wed, 3 Feb 2021 18:58:56 +0000]
Update the changelog for 0.26.1

4 weeks agoDefang bunyips (hatsuma)
Edgar A. Bering IV [Wed, 3 Feb 2021 19:14:15 +0000]
Defang bunyips (hatsuma)

Closes #1705; fixing history with binary files made git rebase angry.

(cherry picked from commit c50aac273e734c876acf0fa01035fd175a94c35f)

4 weeks agoDon't let tabbing throw nets with autofight_throw/nomove
advil [Wed, 3 Feb 2021 17:42:19 +0000]
Don't let tabbing throw nets with autofight_throw/nomove

I'm not sure it's the best path to go down to keep adding small
hard-coded exceptions like this, but this change brings nets in line
with other quiver actions affected by 006ef2cfcc4; they won't be
triggered by autofight commands that may fire the quiver. The biggest
case where this matters is on a Gl start with one of the relevant
options set. In a very small poll of players it seems like most people
have been using autoinscriptions for this and don't want these commands
to ever auto-shoot nets anyways. As with that previous commit,
CMD_AUTOFIRE itself will still work.

It's less clear what to do with other ammo starts where players may not
want to tab-fire, e.g. poison darts, dispersal boomerangs.
Autoinscribing `!Q` or `!f` is currently an option but that's very
fiddly and more for advanced rc file users.

(cherry picked from commit 0525f28e48ca99d96238553a1e10d9cd2799606b)

4 weeks agoRework monster placement in a minivault
gammafunk [Wed, 3 Feb 2021 18:23:11 +0000]
Rework monster placement in a minivault

The vault called simply "pond" places over D:10- and all of Lair, but
has pretty unambitious monster placement. Except for the fact that its
insubstantial wisps got replaced with will-o-the-wisps!  Aside from this
unfortunate wisp storm, the monster list didn't scale well with
placement. This commit reworks the placement, conditioning it on depth
and refining the two Lair and Swamp themes it has.

Lair and Swamp monster sets are used for D:10-12 and Lair, but only the
Swamp set is used for D:13-, since the amphibious Lair monsters aren't
an interesting enough set by that point. The Lair set starts from D:10
mostly easier Lair spawns, but ramps this up through Lair and throws
torpor snails into the mix by Lair:4. The Swamp set starts as just
vampire mosquitoes with light swamp drakeage on D:10, but as depth
increases adds swamp dragons, hydra, and eventually will-o-the-wisps.

(cherry picked from commit b9655bc238defdc8b2f98aaa5af38a311fcb55cd)

4 weeks agoFix some locale issues with skill targets
advil [Wed, 3 Feb 2021 14:22:50 +0000]
Fix some locale issues with skill targets

This commit (i) lets players enter numbers using the locale decimal
separator in the skill menu (since atof needs this for parsing unless we
were to override the numeric locale), and (ii) uses this separator
instead of a hardcoded `.` in skill targets -- this is for consistency
with the rest of the menu, which already does this.

(cherry picked from commit 486a53e33331661535c28001dd06c11be61c948a)

4 weeks agoUpdate lightning scale description for Pa (u/tom_yum_soup)
advil [Wed, 3 Feb 2021 03:23:59 +0000]
Update lightning scale description for Pa (u/tom_yum_soup)

This is not a very flavorful description, but at least it's accurate.

(cherry picked from commit 74f53ef62982531f7f5e405075780b23da10070e)

4 weeks agoNo treeporting into summoned trees (vt)
Nicholas Feinberg [Wed, 3 Feb 2021 02:58:48 +0000]
No treeporting into summoned trees (vt)

This caused crashes, actually!

(cherry picked from commit 4e57ec5eb2ab2be5fe1b385687790a244697cba9)

4 weeks agoFix eleio tree-a-port (12478, gammafunk, Yermak)
Nicholas Feinberg [Wed, 3 Feb 2021 02:22:45 +0000]
Fix eleio tree-a-port (12478, gammafunk, Yermak)

Don't let them go through glass.

(cherry picked from commit dc854216a721790535d6b8f6501e2097c8f77e33)

4 weeks ago`channel` -> `*channel` on wucad mu
advil [Tue, 2 Feb 2021 20:27:42 +0000]
`channel` -> `*channel` on wucad mu

to indicate that it is a passive effect.

(cherry picked from commit 075faa55195e897331e784be8075f2bf6850dd1a)

4 weeks agoRefactor targeting to minimize console redraws
advil [Tue, 2 Feb 2021 17:10:35 +0000]
Refactor targeting to minimize console redraws

38af612a8a cleaned up the direction chooser code-wise quite a bit, but
it had unintended side-effects for console. In particular, after this
commit, the entire window was fully cleared and redrawn on every
keypress. This isn't very noticeable on local builds, but it is
extremely heavy over ssh and can (especially with lower ping) cause bad
flicker when targeting while playing online. (It also is going to have a
non-trivial impact, in aggregate, on ttyrec size.) This commit refactors
the widget wrapping so that most of the time a full screen redraw is not
needed; only the parts of the view that need to be redrawn get redrawn,
the message window is only redrawn if there are messages, and the
sidebar is only redrawn when a full screen redraw is triggered (e.g.
initially, or by opening and closing the help window). This code may or
may not be a bit hacky relative to more normal Widget classes.

This should involve no change for local tiles. However, as far as I can
tell the new OverlayWidget class works fine in local tiles, if doing all
this redrawing were to be a problem there. Should also not impact
webtiles targeting.

(cherry picked from commit 0dd03a7ff89a8cfd5b48dfdc0a004616898175c7)

4 weeks agoFix attack flavour descriptions
Nicholas Feinberg [Sun, 31 Jan 2021 16:53:13 +0000]
Fix attack flavour descriptions

Fix a compiler warning in util/monster and remove support for removed
flavours.

(cherry picked from commit 290af4607b226df4d9870a9f4b9e406d62ee10f4)

4 weeks agoDon't try to spawn spiny frogs in arena sprint
Josh Gelbard [Sun, 31 Jan 2021 04:19:48 +0000]
Don't try to spawn spiny frogs in arena sprint

(cherry picked from commit cee7053d2bed74fa23f9e2733082f0ee18264bd1)

4 weeks agoRestore 0.24 console map scrolling behavior
advil [Mon, 1 Feb 2021 18:46:11 +0000]
Restore 0.24 console map scrolling behavior

In 2fe5a39f5e4 code that was only used to initialize the map view, prior
to the commit, was converted to set the region and cursor position on
every render. The result was a change in behavior, where previously
scrolling only moved the viewport when it hit the edges of the map,
after this commit it effectively scrolled the viewpoint on any movement
on big enough maps, keeping the cursor in the center. It's possible this
was even intentional, not sure, because the new behavior resembled what
happens in local tiles and webtiles in the map view (this would at least
make it easy to miss relative to non-console map view). However, this
behavior is not a good fit for the console map view; The map changing on
any movement of the cursor is (IMO) much harder for the user to process
than just changing the cursor position, and the required full-screen
redraw every step is slower over ssh. (To be clear, I actually think
this first point applies to the other two UIs as well, but one step at a
time.)

This commit restores the 0.24 behavior with (what I think is) a small
improvement: scrolling within a few squares of the edge rather than at
the edge will trigger movement of the viewport on the map, always
keeping a 3 tile margin. (0.24 and earlier scrolled at the edge.)

(cherry picked from commit 9b2ddefb565037d10b5097f32efe8a489b6db6d8)

4 weeks agoRemove item_info
advil [Thu, 21 Jan 2021 16:20:03 +0000]
Remove item_info

This type was just a typedef to item_def. It was added in 8f49829c0752,
apparently with the idea that item_info would be used for item_defs that
represented id info, and item_def otherwise. However, this convention
wasn't even documented, let alone enforced by an actual type distinction
(and c++ never added a strict typedef), so it has undergone drift and
largely now exists to confuse people. I could imagine redoing this so
that the type checker will do something, but the id system is also much
less important now than it was at the time of the original commit, so it
seems cleaner just to simplify.

(cherry picked from commit 12357ec85acb6b7696f7ac9a8999d49c598b9a0d)

4 weeks agoCorrectly describe stair behavior of durable summons
Edgar A. Bering IV [Mon, 1 Feb 2021 21:48:43 +0000]
Correctly describe stair behavior of durable summons

These have always been able to use stairs, but at some point describe.cc
lost the memo.

Closes #1618

(cherry picked from commit 52650a75300c345176b9c2e3c24595fff5409565)

4 weeks agoMark monster equipment as "SEEN" after we id it
Edgar A. Bering IV [Mon, 1 Feb 2021 21:18:08 +0000]
Mark monster equipment as "SEEN" after we id it

This affects note-taking only, as set_ident_flags doesn't care about
seen for item knwoledge. Closes #1580.

(cherry picked from commit 54cb51f37247eae6a6af72b2c9bf495c8da869b6)

4 weeks agoDefer a terrain check for rampage
Edgar A. Bering IV [Mon, 1 Feb 2021 17:24:19 +0000]
Defer a terrain check for rampage

Only check for passable terrain for cells that don't contain our rampage
target, so that monsters in impassible terrain can still be rampaged at
if they're adjacent to a safe square for the player.

Closes #1632

(cherry picked from commit 3ba7187429a5cc7760544410b359c8876a112dc8)

4 weeks agoRestore a bit of smarts to autoexplore (Aliscans)
Edgar A. Bering IV [Mon, 1 Feb 2021 16:32:28 +0000]
Restore a bit of smarts to autoexplore (Aliscans)

Since possibly a long time (I didn't archaeology) autoexplore has had a
non-executing guard against moving adjacent to unknown territory when it
doesn't have to. This commit restores the check.

Closes #1595

(cherry picked from commit 56efc2da1ba8b841f0c2dd4fd85ce10d39e8924f)

4 weeks agoProperly initialize configurable dirs
Edgar A. Bering IV [Mon, 1 Feb 2021 16:11:01 +0000]
Properly initialize configurable dirs

Options.shared_dir is the storage location for a build-condfigured
SHARED_DIR_PATH option, and otherwise is a synonym for Options.save_dir
(which has sane defaults and is forced to the configured global default
in DGAMELAUNCH builds);

However, it only gets correctly set to Options.save_dir after the call
to Options.reset_options for the second load of the user's rc file after
game start. Consequently, the High Scores display doesn't respect
Options.save_dir, even though the main menu otherwise does.

This commit implements some custom handling for save_dir to behave
correctly on builds without customization.

Closes #1694

(cherry picked from commit b03138de70942a676bdb94907144b441c2d66e07)

4 weeks agoRemove ball lightning from arena sprint
Edgar A. Bering IV [Mon, 1 Feb 2021 15:02:05 +0000]
Remove ball lightning from arena sprint

Closes #1713

(cherry picked from commit 923471202265045539fea93fb1743ad623bddbf0)

4 weeks agoFix the prompts on the Q/Q* menus
wheals [Sun, 31 Jan 2021 22:26:06 +0000]
Fix the prompts on the Q/Q* menus

(cherry picked from commit 3bf79179390c25951040291716e269ae3b0e2371)

4 weeks agoDon't print the menu prompt in the message port
wheals [Sun, 31 Jan 2021 22:22:29 +0000]
Don't print the menu prompt in the message port

This applies to all auto_list menus (i.e., all of them but the second
part of the adjust items prompt). This is more consistent with the q, r,
etc. menus which already didn't print a prompt outside the menu itself.

(cherry picked from commit 47d50fa972585cb213a4bc3b94b2dca7486c1eb3)

4 weeks agoAdd a missing space
wheals [Sun, 31 Jan 2021 22:03:44 +0000]
Add a missing space

(cherry picked from commit 7d305d30b109651507865e4fd53fd7eef3b123c3)

4 weeks ago"throw a tremorstone" -> "release a tremorstone"
wheals [Sun, 31 Jan 2021 18:43:34 +0000]
"throw a tremorstone" -> "release a tremorstone"

"Throw" seems like an odd term both flavor-wise and mechanically. It
made sense when the evokable was targeted, but now is inconsistent with
throwing any other item, which lets you target.

(cherry picked from commit 95f23adaf735cededeb4b8b6492f4030a7fa6578)

4 weeks agoAdjust a check for hazardous statuary
Edgar A. Bering IV [Sat, 30 Jan 2021 19:02:08 +0000]
Adjust a check for hazardous statuary

Closes #1670. The want_move parameter would treat statues as one tile
closer in i_feel_safe for travel purposes, even if there was a wall in
the way. This resulted in an edge-case where the player would feel
unsafe even though no hazard existed, see the related issue for an
example.

(cherry picked from commit 22a811f1fd8bfb6bc4e3c09468762f40aa0c13b1)

4 weeks agoAdd prompts to various types of movement
AdamPG [Thu, 28 Jan 2021 12:08:36 +0000]
Add prompts to various types of movement

This commit adds a prompt to several forms of movement that previously did not end Ozocubu's armour or frozen ramparts. This commit also adds barb damage and a prompt to several physically-flavoured forms of movement (such as barachian hop) that previously did not trigger barb damage, and removes braces that were made unnecessary by a previous commit.

(cherry picked from commit 1307ea1511c33914024d5c4512606aea6ee5e331)

4 weeks agoChange the colour of the message displayed when frozen ramparts ends
AdamPG [Thu, 28 Jan 2021 02:01:00 +0000]
Change the colour of the message displayed when frozen ramparts ends

Currently, Ozocubu's armour uses the MSGCH_DURATION colour (blue) and frozen ramparts uses the default colour (white) upon ending. This commit makes these messages consistent.

(cherry picked from commit 88da7fdab61dd00ee7fb6c79d1ff2acf3bb1b70e)

4 weeks agoMake icy spells end whenever the player's position changes
AdamPG [Thu, 28 Jan 2021 01:54:38 +0000]
Make icy spells end whenever the player's position changes

Currently, many forms of movement (such as barachian's hop, Uskayaw's line pass and all forms of blinking) do not break frozen ramparts or Ozocubu's armour. Since the location of frozen ramparts is tied to the player's position at the time of casting, any change to the player's position should break the spell. Arguably Ozocubu's armour should break only for voluntary movement, as the effect is not tied to the player's initial position, but for consistency we make it break under the same conditions as frozen ramparts.

(cherry picked from commit 8403051451b3af3135498e920adb9af3ede58deb)

4 weeks agoReword a Wyrmbane message
Kate [Sat, 23 Jan 2021 04:30:34 +0000]
Reword a Wyrmbane message

The joke on-equip message for draconians wasn't a very good one.

(cherry picked from commit ac52ab2824cde490052cb4f6795311bba8ead61a)

4 weeks agoDownweight a Lugonu altar vault
Edgar A. Bering IV [Thu, 28 Jan 2021 19:23:15 +0000]
Downweight a Lugonu altar vault

This altar vault has a very large place range, and so was appearing
quite frequently (I didn't run mapstat, but it was in 1/3rd of my
tournament games!). Lower the weight so it doesn't get old.

(cherry picked from commit cd1702ac4d57aa477367796c8a280c25c103a702)

4 weeks agoSlightly improve a citation.
Neil Moore [Thu, 28 Jan 2021 17:57:45 +0000]
Slightly improve a citation.

[skip ci]

(cherry picked from commit de412597e9ac9b6f025ed68d0af5128f2a8c4147)

4 weeks agoConsistently indent quotes in quotes.txt
Edgar A. Bering IV [Thu, 28 Jan 2021 09:39:54 +0000]
Consistently indent quotes in quotes.txt

Closes #1700

(cherry picked from commit d2cd6250dadfa4f6e60fd3d65a06fd0e45be6fed)

4 weeks agoFix some KJV citations
Edgar A. Bering IV [Thu, 28 Jan 2021 09:05:17 +0000]
Fix some KJV citations

(cherry picked from commit 5b54ba61a2cd0178f8fd816039f16c9e0d172bc6)

4 weeks agoMention diggability on xv (hellmonk)
Nicholas Feinberg [Thu, 28 Jan 2021 02:57:18 +0000]
Mention diggability on xv (hellmonk)

(cherry picked from commit 607d9e9d8595f373743d3659b5337218c4d1fd81)

4 weeks agoPrevent Ozocubu's Armour from breaking when equipping heavier armour
AdamPG [Wed, 27 Jan 2021 20:42:32 +0000]
Prevent Ozocubu's Armour from breaking when equipping heavier armour

(cherry picked from commit d3d0dda1a4a3603eff78b9b3fd8de10c589b194b)

4 weeks agoAdjust a misleading description (12374)
Edgar A. Bering IV [Wed, 27 Jan 2021 21:28:57 +0000]
Adjust a misleading description (12374)

(cherry picked from commit 36043c2b5fab12fea75559e8c82b5031252af1e5)

4 weeks agoRemove an unused parameter and simplify
Edgar A. Bering IV [Wed, 27 Jan 2021 20:37:04 +0000]
Remove an unused parameter and simplify

(cherry picked from commit 1f8c70d38dcf045fd40771ad4ae8580379e0114e)

4 weeks agoDon't leak stash info with Gozag gold detection (12413)
Edgar A. Bering IV [Wed, 27 Jan 2021 20:03:50 +0000]
Don't leak stash info with Gozag gold detection (12413)

This makes gold detection work more like item detection, in that the
detected gold does not appear in stash search as it did previously. This
is a bit unfortunate, but this is the lone edge-case remaining where a
stash pile is revealed partially. It shows that the detected thing is
gold versus an item for a gnoll on the map, which suffices.

(cherry picked from commit f9d094ba9912b00531782455c027dcf27446a2e6)

4 weeks agoDon't hide Bows for one hand-paired ants
Edgar A. Bering IV [Wed, 27 Jan 2021 19:21:54 +0000]
Don't hide Bows for one hand-paired ants

(cherry picked from commit e9b1cf51b553d16a09382f598990d4783fdcd2b0)

4 weeks agoHide Bows when a hand is sacrificed (12398)
Edgar A. Bering IV [Wed, 27 Jan 2021 18:59:54 +0000]
Hide Bows when a hand is sacrificed (12398)

(cherry picked from commit 78287705fb54fdabfd85b5129ed2304777f0cfc7)

4 weeks agoRemove an inappropriate sanctuary check
Edgar A. Bering IV [Wed, 27 Jan 2021 18:03:31 +0000]
Remove an inappropriate sanctuary check

(cherry picked from commit 66c491863679d6a81e058da4d49d4b2ab959d0a4)

4 weeks agoDon't look for clouds in the wrong places (12459)
Edgar A. Bering IV [Wed, 27 Jan 2021 17:50:05 +0000]
Don't look for clouds in the wrong places (12459)

(cherry picked from commit 0faeb86a0160faaa369a1beb29dee409ffe43bc5)

4 weeks agoMake trove entries transparent
Edgar A. Bering IV [Wed, 27 Jan 2021 07:41:36 +0000]
Make trove entries transparent

(cherry picked from commit 832131d6acf56c3a2f0cd76ea9f1077243337e88)

4 weeks agoRemove banana bunyips (hatsuma)
Nicholas Feinberg [Wed, 27 Jan 2021 06:02:54 +0000]
Remove banana bunyips (hatsuma)

The end of an era...

(cherry picked from commit bcd94eb0113dff32c34b6843ef906f59d9793c03)

4 weeks agoThe future
wheals [Thu, 14 Jan 2021 21:24:49 +0000]
The future

(cherry picked from commit 8aa0e2c87f6091a12041dd3dfc7a966e616a35c2)

4 weeks agoDon't print resist messages when casting Ozocubu's refridgeration
Edgar A. Bering IV [Tue, 26 Jan 2021 20:25:08 +0000]
Don't print resist messages when casting Ozocubu's refridgeration

Closes #1693

(cherry picked from commit 4a2642d2bdb3ef15130582128f60ab41a3482040)

4 weeks agoSuppress DGL clrscr escape code during targeting
advil [Wed, 13 Jan 2021 19:10:38 +0000]
Suppress DGL clrscr escape code during targeting

On a USE_DGAMELAUNCH=yes build, clrscr calls send an escape code that is
interpreted by dgamelaunch as a clrscr command, and is also apparently
used to synchronize ttyrecs (??). This happens at the same time as
regular ncurses clrscr, but it seems that it is likely sent and
processed immediately, whereas clrscr has no effect until a refresh().
Since 38af612a8a6b923, while targeting, the entire console display is
fully cleared and redrawn on every key (via the call chain
UIDirectionChooserView::_render() -> redraw_screen -> draw_border ->
clrscr). I have not been able to fully understand either why this does
happen or why it needs to happen (the screen is actually cleared by a
call to ui.cc::clear_text_region that wipes out everything during the ui
render chain, making a full redraw necessary), but the net effect is
that this causes a lot of blinking when playing in console through
dgamelaunch, especially with a low ping.

As an interim solution, in this commit I've simply suppressed all dgl
clear codes during targeting. They happen often enough otherwise that
hopefully this wouldn't cause any synchronization problems, if anything
is even using these codes any more.

(cherry picked from commit 75406f0b48011c29bc2eba159a82f05db85e8e07)

4 weeks agoAdjust some empty quiver cycle messaging
advil [Sun, 31 Jan 2021 17:39:52 +0000]
Adjust some empty quiver cycle messaging

This gets rid of the vestiges of oldquiver error messages, and rewrites
things to use the newquiver code in a more straightforward way. This
removes some of the hints that the old errors gave about inscriptions
etc, but I think the simplification her targets everything that will be
likely to apply to newer players who need the hints in the first place.

(cherry picked from commit e082b6e869bdc040c2f701e488adcffcf59e1c7c)

4 weeks agoFix =f,=F,!Q inscriptions
advil [Sun, 31 Jan 2021 14:58:48 +0000]
Fix =f,=F,!Q inscriptions

The behavior of =f/=F was unintentionally flipped, and also broken for
ammo items in another way I think. !Q hasn't been working for a while;
I think this was broken by moving quiver selection away from an
inventory menu. Here I have slightly changed the behavior, by making !Q
entail =f and =F, and therefore be a quick shortcut for "really don't
ever quiver this thing".

(cherry picked from commit e4214ee8635b4d0b90edbd44d3a5c3bdd70dd6c2)

4 weeks agoDon't use fire_order for Q menu inclusion
advil [Sun, 31 Jan 2021 14:35:56 +0000]
Don't use fire_order for Q menu inclusion

This affected only ammo, and was more confusing than helpful. A better
candidate for the menu itself (tbd) might be something more like the
spell library hide/show feature.

(cherry picked from commit 29c5ad5b46b261903533b6f55e3b0fa32b51e16a)

4 weeks agoImprove some comments re ability ranges when quivered
advil [Sun, 31 Jan 2021 03:05:13 +0000]
Improve some comments re ability ranges when quivered

(cherry picked from commit 1fbed8a51c0d6a0c01c5d67d72025178ce4644fd)

4 weeks agoAdd a better UI range check for minor destruction (12451)
advil [Sat, 30 Jan 2021 21:04:00 +0000]
Add a better UI range check for minor destruction (12451)

Minor destruction did not have a range check except on activation,
leading to bad behavior with autofight_throw=true when quivered.  This
commit follows the same strategy in 0579ed41f9 for rolling charge. The
background problem is that the ability API is still somewhat
impoverished, and we don't want to fully disable the ability with no
enemy in range (because there is no way to force-activate it equivalent
to casting `Z`). However, for quiver and autofight purposes the quivered
ability needs to be marked as disabled in this scenario. Eventually it
would be nice if spells and abilities had a more uniform interface for
these issues.

(cherry picked from commit 539a43b7bd55b04df16067de732d355adc36b12d)

4 weeks agoHalve the impact of map scaling on glyph mode
advil [Fri, 29 Jan 2021 21:39:40 +0000]
Halve the impact of map scaling on glyph mode

Because the base value (e.g. the text size at 100) is so much smaller
than regular tiles, zooming out from 100 has an outsized impact. An
alternative to this commit would have been to change the default map
mode scale value to something less zoomed out, but doing things this way
also correctly handles the case where a glyph mode player is spectating
a tiles player at the regular zoom levels.

(cherry picked from commit dcb3803577713d9b32586d8e92f3c351eacf684b)

4 weeks agoLimit printable keycodes in webtiles to ASCII
advil [Thu, 28 Jan 2021 23:47:54 +0000]
Limit printable keycodes in webtiles to ASCII

This was (I think) impacting non-US keyboards, where keycodes
corresponding to invalid UTF-8 were causing the webserver to choke, and
the macro menu not to get forwarded to the client (keycode 169, which
*may* result from a closing paren on AZERTY, is one example). It
possibly also affects some unusual keys on certain keyboards. There must
be a more elegant solution but for now this will just show the keycode
directly in the macro menu. Better would be to somehow figure what keys
are involved, and print their names, but this seems a bit of a hopeless
task for webtiles.

It's possible that console needs a similar fix as well, but there (at
least in my testing) the result is not that the menu fails altogether --
though it's not very usable. But this would be better tested by someone
with a different locale / keyboard layout. SDL should be handled by SDL
code, so if it fails on this stuff, it's at least not a crawl bug.

(cherry picked from commit 8ba017916cb72e9aaca932eebd3702a75daeed3f)

4 weeks agoUse a name for ' ' when a name is called for
advil [Thu, 28 Jan 2021 23:05:52 +0000]
Use a name for ' ' when a name is called for

This is a printable char, but isn't apparent in most circumstances when
it would be printed directly, so ' ' is not useful as the character
description. Therefore, use "Space". Impacts only menu hotkeys, and
probably only in the macro menu.

(cherry picked from commit dd83002478a0ce41aafb116edbfb50769263d21c)

4 weeks agoDon't do zone filling in the abyss
advil [Wed, 27 Jan 2021 01:06:47 +0000]
Don't do zone filling in the abyss

Unlike normal builder scenarios, connectivity checks are only rarely
triggered in the abyss, by the placement of a minivault it seems. (I'm
surprised they happen at all, and wonder what they accomplish.) In this
case, it seems wrong to do any fills, as the abyss is supposed to allow
temporarily disconnected zones.

In mantis 12442, 12416, as well as #1680, it was reported that this
scenario could lead to errors, because the fill code assumed that no
items had been placed yet. As far as I know this is mostly true, just
not for the abyss, which does most of its building before minivaults
have the chance to place. I've also added a guard against filling over
items, even though the main fix in this commit prevents the specific
case from coming up. Interfering items just get nuked, to prevent vetos.

Resolves #1680.

(cherry picked from commit 6fc33f2424d4d222e5b9c246de6e0eb260ef7ca8)

4 weeks agoFix some error handling for lobby save info
advil [Thu, 21 Jan 2021 17:41:38 +0000]
Fix some error handling for lobby save info

This info was collected asynchronously, but the code didn't do anything
to handle the case where the socket closed before the save info was
fully collected, leading to uncaught exceptions in the logs.

(cherry picked from commit 6cd7b45605abe9fcaa12244b57adb321707af240)

4 weeks agoClean up logging for full socket buffer
advil [Wed, 20 Jan 2021 20:26:35 +0000]
Clean up logging for full socket buffer

When holding down a key in webtiles for something that takes a long
enough time to outpace the key repeat (either because it is
cpu-intensive or just because it imposes a delay), the buffer used to
communicate with the crawl instance can fill up, which triggers an
exception (and drops the key). When this happens, it is quite spammy in
logs on live servers. Ideally this could be prevented from happening in
the first place (e.g. any time this can happen on autofight/autofire is
a case that should be better optimized), but it will inevitably happen
from time to time, and doesn't need to fill up the logs quite so much
when it does; the stack trace is not informative.

For future reference, the full stack trace for a single case of this
will look something like (with minor differences between OSs):

2021-01-20 14:05:25,059 WARN: #0     Error while handling JSON message (''{"msg":"key","keycode":9}'')!
Traceback (most recent call last):
  File "/Users/advil/repos/crawl/crawl-ref/source/webserver/ws_handler.py", line 869, in on_message
    self.process.handle_input(message)
  File "/Users/advil/repos/crawl/crawl-ref/source/webserver/process_handler.py", line 897, in handle_input
    self.conn.send_message(utf8(msg))
  File "/Users/advil/repos/crawl/crawl-ref/source/webserver/connection.py", line 109, in send_message
    self.socket.sendto(utf8(data), self.crawl_socketpath)
OSError: [Errno 55] No buffer space available

(cherry picked from commit a89a45757602832c4d7cc2c0c75d91c5dbbb79d3)

5 weeks agoFix the build?
Nicholas Feinberg [Tue, 26 Jan 2021 06:25:14 +0000]
Fix the build?

This code is extremely bad!

(cherry picked from commit 9515ab555c48c7948b83cd0c90aab9b48a623626)

5 weeks agoIntegrate palentonga sprites
Nicholas Feinberg [Mon, 25 Jan 2021 02:37:00 +0000]
Integrate palentonga sprites

And add new palentonga lichform and 8form sprites.

Cloaks look sort of awful here, but not sure what can be done!

(cherry picked from commit d3d65450af1be519b13540c2be9d37250c5135b1)

5 weeks agodonger sprites
Hatsuma [Thu, 14 Jan 2021 21:10:54 +0000]
donger sprites

(cherry picked from commit 2a9d61b3d9209352f81f66656e013089fb886315)

5 weeks agoAnger monsters who block player attacks
Edgar A. Bering IV [Thu, 14 Jan 2021 15:26:14 +0000]
Anger monsters who block player attacks

Consistent with dodged attacks that the monster is awake to notice.
Closes #1612

(cherry picked from commit 28f6fc2273667f8cfd248e6983378049009c1588)

5 weeks agoShow cloud damage for player spells
Nicholas Feinberg [Sat, 23 Jan 2021 17:30:48 +0000]
Show cloud damage for player spells

This is experimental. It's weird in that it's sort of asymmetric with
the monster versions (e.g. fire crab's flaming cloud), since those
show the impact damage instead. Maybe it's helpful, though?

(cherry picked from commit ee1497a6375b852b2ba279d7a8dc15cb336b3626)

5 weeks agoDisplay accuracy on ranged targeters
Nicholas Feinberg [Sat, 16 Jan 2021 17:14:44 +0000]
Display accuracy on ranged targeters

This was an oversight. Oops!

(cherry picked from commit 3644e03777a4ae25da7387eea5323cff28c985ce)

5 weeks agoReduce net trap trigger chance
Nicholas Feinberg [Sun, 17 Jan 2021 04:55:58 +0000]
Reduce net trap trigger chance

Since making net traps not run out of ammo, they've become more vicious
than was intended. To mitigate this, give them a 2/3 chance of *not*
triggering when a monster enters them.

It'd be interesting to make them require LoF to hit the player, but
that's an experiment for another day.

(cherry picked from commit d412354acc90c94f97caa2b925f6806b5669a2d9)

5 weeks agoDisplay Glaciate damage on xv
Nicholas Feinberg [Sat, 23 Jan 2021 16:57:41 +0000]
Display Glaciate damage on xv

And remove support for player-cast Glaciate, since that's long-gone!

(cherry picked from commit 4d92ddfd83d592eea8e720b88f80c12e787ce985)

5 weeks agoMake fenstriders evil (Snakku)
Nicholas Feinberg [Sat, 23 Jan 2021 16:11:47 +0000]
Make fenstriders evil (Snakku)

Oversight - I was used to this being auto-set from spells!

(cherry picked from commit 2451fdf569ce1c81badf580ee3f5a0ac1c378df5)

5 weeks agoAdd missing roll icon (hatsuma)
Nicholas Feinberg [Sat, 23 Jan 2021 16:10:36 +0000]
Add missing roll icon (hatsuma)

(cherry picked from commit 0bfbe0ea93c96d6b248771444e46f17384bc84fd)

5 weeks agoFix the depth of a ghost vault (Mantis 12464)
gammafunk [Sat, 23 Jan 2021 13:43:00 +0000]
Fix the depth of a ghost vault (Mantis 12464)

In Dungeon it was only ever placing on D:8, instead of on its intended depth of D:8-D:$.

(cherry picked from commit e71ae6e9b589659c955af9c76e56bcfba10d24d0)

5 weeks agoremove CMD_EAT from colemak
Andrew O'Neill [Wed, 20 Jan 2021 22:36:47 +0000]
remove CMD_EAT from colemak

This is no longer needed since eating is out.

(cherry picked from commit 3cb999cee24d21027a90ee950438e07f0e8c40ea)

5 weeks agoDon't auto-drop ?tele in Gauntlet (Yermak)
Nicholas Feinberg [Mon, 18 Jan 2021 17:35:29 +0000]
Don't auto-drop ?tele in Gauntlet (Yermak)

For purposes of auto-selecting items for drop with `d,`, ignore temp
conditions such as 'being in Gauntlet'. This should discourage accidents.

(cherry picked from commit b51a1d6fd61b7e2405b67dc7532af6cfe0f5ea0c)

5 weeks agoAdjust timing for evoked unrand HP/MP costs
Kate [Sun, 17 Jan 2021 03:37:17 +0000]
Adjust timing for evoked unrand HP/MP costs

As with the Majin-Bo in 0fe236c, reduce HP and MP as a cost before activating
the ability, and refund it if the ability is aborted.

(cherry picked from commit 5a9077b8aed1eb6ea37e5b3bdbcfa24c5cd76e98)

5 weeks agoAdd a missing of (Aliscans)
Edgar A. Bering IV [Fri, 15 Jan 2021 15:44:29 +0000]
Add a missing of (Aliscans)

(cherry picked from commit 19769c27d73555abf9a189ccd13d859961be720a)

5 weeks agoPrevent trampling a constricted actor (12432)
Edgar A. Bering IV [Thu, 14 Jan 2021 18:07:06 +0000]
Prevent trampling a constricted actor (12432)

The other option would be to have constriction broken on trampling.
However, I went with this resolution because either:
 - the player is being trampled and constricted, don't make their life
   easier
 - or the player has allies and is trying to do both things to a target,
   creating an ally-micromanagement encouraging edge case

(cherry picked from commit 33242fe616db5dce3af243c52cb968cd9a9297ad)

5 weeks agoDon't update constriction when testing door seals
Edgar A. Bering IV [Thu, 14 Jan 2021 17:44:25 +0000]
Don't update constriction when testing door seals

The vault warden AI check to see if it should seal a door
was using move_to_pos to evaluate the tension of actor moves, but
move_to_pos handles updating constriction information of the
constrictor. The result was that if the check needed to test if pushing
something through a door in a way that would break constriction was a
good idea, the constriction would actually break, even if the monster
ultimately decided to not close the door!

Closes #1566

(cherry picked from commit 897d3da516b74d2ab7e49b61dc4f072745eeb5fa)

5 weeks agoFix a tension check for runic seals (8085, 10542)
Edgar A. Bering IV [Thu, 14 Jan 2021 17:22:03 +0000]
Fix a tension check for runic seals (8085, 10542)

The previous tension check for closing doors had an incorrect
conditional, so that if tension were *increased* by the closure, the
warden would not decide to close the door! Additionally, this check
returned true in situations where the tension was 0 before and after the
closure. The result of the latter behavior was often locking the player
in with their allies away from the warden.

Closes #1534

(cherry picked from commit ea5d59904d4e11208804ba4af322f681ade07abd)

5 weeks agoAdjust the charging of Majin-Bo's hp cost
Edgar A. Bering IV [Thu, 14 Jan 2021 16:10:54 +0000]
Adjust the charging of Majin-Bo's hp cost

Don't send it through ouch, it should be treated like an ability hp
cost, not damage (so no harm scaling!). Also, dec the hp at the same
place as the mp cost of the spell, for appropriate sequencing of the
effect and to give the player a preview of the cost while targeting.

Closes #1578

(cherry picked from commit 0fe236cf81fa067bbd5ccc5c028db979305c62a7)

5 weeks agoSimplify Tornado interactions with distance movement
Edgar A. Bering IV [Thu, 14 Jan 2021 14:10:03 +0000]
Simplify Tornado interactions with distance movement

Prior to this commit, if the player moved by translocating (or Ba hop)
multiple tiles while under the effects of tornado, the tornado was
cancelled, without requiring cooldown, UNLESS the translocation landed
the player in a tornado cloud, in which case the tornado duration was
decremented by a translocational penalty.

No change to duration was incurred on taking a passage of golubria or
transporter.

On taking stairs the tornado was cancelled with no cooldown.

This commit changes the behavior to: blinknado is ok, but all other long
distance changes end tornado and give the cooldown.

Closes #1611

(cherry picked from commit b0dbf93ca22535ea573f56bb86bf499fe25a1824)

5 weeks agoDon't offer conjured things god blessings
Edgar A. Bering IV [Thu, 14 Jan 2021 12:40:54 +0000]
Don't offer conjured things god blessings

Closes #1648

(cherry picked from commit 80642e47ccf2c3d62833bf6f8a3d424a3965dcd3)

5 weeks agoQuiet down Irradiate (#12446)
wheals [Thu, 14 Jan 2021 08:22:07 +0000]
Quiet down Irradiate (#12446)

I'm guessing, based on loudness being set to 0, that it was never
expected to have the explosion noise. However, explode() reset the
loudness anyway, so setting it manually had no effect.

(cherry picked from commit 58ad9d9fa3b3adf3be215d9f702ce3ab16133a8c)

5 weeks agoFix monster tracers for Call Down Damnation
Edgar A. Bering IV [Sun, 10 Jan 2021 22:00:49 +0000]
Fix monster tracers for Call Down Damnation

The tracer behavior was inadvertently changed in 2f2a4d8ed992e13 which
refactored CALL_DOWN_DAMNATION into a zap. In doing so no longer failed
to set the explosion size for the tracer.

Closes #1678

(cherry picked from commit ebd156f8b49aa1620a09c39c4717c6e5c7f25ae4)

5 weeks agoUpdate monster disintegrate description
Kate [Sat, 9 Jan 2021 20:20:20 +0000]
Update monster disintegrate description

(cherry picked from commit 58928b186a48547f987ad6c2b43634eec52728d3)

5 weeks agoFix grammar in miscast descriptions
Kate [Sat, 9 Jan 2021 20:08:48 +0000]
Fix grammar in miscast descriptions

(cherry picked from commit f4412e357a7b02412424c229a90adb8d2039e423)

5 weeks agoNo Marshlight out-of-sight messages (Yermak)
Nicholas Feinberg [Sat, 23 Jan 2021 19:51:41 +0000]
No Marshlight out-of-sight messages (Yermak)

5 weeks agoFix death explosion messages
Nicholas Feinberg [Sat, 23 Jan 2021 16:04:37 +0000]
Fix death explosion messages

Broken by 3dd439832fe0f5fe295caad1a2fe3e479a757cda - we'd claim that
players were 'hit from afar by a bloated husk' instead of 'killed by
an exploding bloated husk'. Oops!

From that commit's final line:
> Overall, this code is very bad and probably buggy. I'm sorry.

5 weeks agoA bit of 288a49279187 that got lost in editing
advil [Wed, 20 Jan 2021 20:40:21 +0000]
A bit of 288a49279187 that got lost in editing

oops

(cherry picked from commit f312352147c677e3f2b416cf721061daf51a8349)

5 weeks agoReduce webtiles redraws per key input by 2
advil [Wed, 20 Jan 2021 17:38:37 +0000]
Reduce webtiles redraws per key input by 2

The previous behavior stems for a fairly old (729eb1357d24d1d5) decision
to send a redraw on each input mode change. Since every keypress swaps
between MOUSE_MODE_NORMAL and MOUSE_MODE_COMMAND, holding down a key
could trigger a lot of unnecessary redraws, and for example with no ammo
could max out the process's cpu usage (at least on a `make profile`
build).  I'm not actually sure why a webtiles redraw (which mainly send
the map and the player) is needed on any case of changing input mode,
but for now I'll be conservative -- and this is the case that shows up
in profiling.

As it happens, there's still at least one webtiles redraw per key input,
in getch_ck. But, the profiling with just this one doesn't seem like a
problem by itself. It's possible that redraw() itself has some issues
that could be addressed -- sending both the player and the map equally
eat up a lot of cpu with repeated calls.

(cherry picked from commit 288a49279187591ca2b1c6c12e22d05b34561cea)

6 weeks agoDon't show Fridge accuracy (lici)
Nicholas Feinberg [Sun, 17 Jan 2021 00:08:25 +0000]
Don't show Fridge accuracy (lici)

Since it always hits!

6 weeks agoDon't remain curled while delayed (12443)
Edgar A. Bering IV [Fri, 15 Jan 2021 05:43:18 +0000]
Don't remain curled while delayed (12443)

(cherry picked from commit 39ad13b14638f858b332731bf719232de05893ba)

6 weeks agoRestore Zyme sickness
Edgar A. Bering IV [Thu, 14 Jan 2021 12:17:14 +0000]
Restore Zyme sickness

Incorrectly changed an undead state check when rot changes were made
in 4cbea82fa3. US_ALIVE is tragically false.

Closes #1677

(cherry picked from commit 0c344bb9d350318e1eebc68921712c47a6d6a558)

6 weeks agoFix a teleport closet (MakMorn)
Edgar A. Bering IV [Thu, 14 Jan 2021 18:37:32 +0000]
Fix a teleport closet (MakMorn)

(cherry picked from commit 4f573a835dfffb551c01fce58e49720c0562efcc)

6 weeks agoFix a teleport closet
Edgar A. Bering IV [Thu, 14 Jan 2021 11:57:41 +0000]
Fix a teleport closet

Closes #1681

(cherry picked from commit 768c70b9d499928eb4870c3c3605e05885254854)

7 weeks agoFix webtiles rendering of ctrl keys
advil [Thu, 14 Jan 2021 01:36:46 +0000]
Fix webtiles rendering of ctrl keys

I honestly have no idea how these were displaying in console, but they
were, so I assumed they would work in webtiles as well. But something
low-level that I haven't found must have been doing the actual rendering
in a way that didn't convert them to readable strings in webtiles. This
is a quick patch to render them correctly in the macro menus.

(cherry picked from commit caaa221d37ee91821376a998913a661f23fcf15a)

7 weeks agoRemove some console blinkiness in map view
advil [Wed, 13 Jan 2021 01:01:11 +0000]
Remove some console blinkiness in map view

As far as I can tell, this update_screen call is guaranteed to force an
update on a blank screen, and since it is triggered on every refresh in
map view, it is making map view extra blinky (especially over ssh). I
can't find any negative consequences of just removing it.

(cherry picked from commit d04b7445b5ccb98312695ad1f807f9a1b0c4e95f)

7 weeks agoFix more net trap bugs
Nicholas Feinberg [Tue, 12 Jan 2021 16:23:43 +0000]
Fix more net trap bugs

Don't allow players to collect infinite nets by either (a) being in
dragon/tree form or (b) just being already in a net when another net
drops.

7 weeks agoFix a console hud issue at high turncounts (gressup)
advil [Mon, 11 Jan 2021 22:21:47 +0000]
Fix a console hud issue at high turncounts (gressup)

This code used a constant number of spaces to clear the rest of the
turncount line, but didn't factor in the fact that cprintf wraps; at
high turncounts (6+ digits) on long autoexplore/autotravel spans (>10.0
auts) it could therefore overwrite 1-2 letters of the weapon display.
Recent changes reduce how often the weapon redraws, so this has probably
become more visible lately. Despite that, this is a vintage bug,
originating from ce229f1793ccd.

(cherry picked from commit 9f9dfd16e91301c19d33987c1538bf72f1828fe1)

7 weeks agoMore insubstantial wisp removal
gammafunk [Sun, 10 Jan 2021 16:01:37 +0000]
More insubstantial wisp removal

Remove descriptions and quotes in various languages.

(cherry picked from commit da163c7f711705022e4436c983c59d6535945aac)

7 weeks agoUpdate keybind.txt for 0.26 changes
advil [Sun, 10 Jan 2021 03:39:14 +0000]
Update keybind.txt for 0.26 changes

...missed this.

(cherry picked from commit 3544c24705775b8190a3f4ba4b5238f708a63bea)