summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/item_use.h
Commit message (Collapse)AuthorAgeFilesLines
* Amulet of stasis, first cut.Darshan Shaligram2010-01-111-0/+5
| | | | | | | | | | | | | | | Amulets of stasis blocks: - Teleport self - Blink in all forms - Slowing - Hasting - Paralysis - Petrify - Berserker rage The amulet auto-ids the first time it triggers. The amulet does not affect existing conditions (such as an existing Haste spell or an existing post-berserk Slow).
* Give move/copy_item_to_grid responsibility for hazardous terrainStefan O'Rear2009-12-291-2/+1
| | | | We now have much less duplication of logic, yay.
* headers: fix inconsistent struct/class forward declarationsSteven Noonan2009-12-291-1/+1
| | | | | | | Some classes were erroneously referred to as 'struct' in forward declarations, and vice versa. Signed-off-by: Steven Noonan <steven@uplinklabs.net>
* Different launchers make different amount of noiseMatthew Cline2009-11-071-0/+2
|
* Remove "called from:" comments.Vsevolod Kozlov2009-11-031-68/+1
| | | | | | These were of questionable use and freshness. Signed-off-by: Robert Vollmert <rvollmert@gmx.net>
* Drop obsolete CVS last-committed headers ($Author$).Adam Borowski2009-10-061-2/+0
|
* Allow unrandart launchers to modify the beam of the missile they fire.zelgadis2009-07-211-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10363 c06c8d41-db1a-0410-9941-cceddc491573
* Fix 2822832: temporary brands not being removed when thrown with LRET_FUMBLEDj-p-e-g2009-07-201-2/+3
| | | | | | | | | | | | | | plus: thrown weapon permabrand being removed when DUR_WEAPON_BRAND is active plus: double messaging of "You are now empty-handed." Fix 2810517: Added a pre-ability requirements check that handles Lugonu's enter/exit abyss, berserking, recite, breath attacks and some more. If the requirements aren't met, the check fails before the success check, thus no turn is wasted. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10360 c06c8d41-db1a-0410-9941-cceddc491573
* * Moved most hard-coded non-standard unrandart behaviour to art-func.h,zelgadis2009-06-271-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | specifically code for equipping, unequpping, an equipped unrandart doing something every time world_reacts() is called (special wield effects), melee hit effects, and evoking. Left hardcoded outside of art-func.h: * Sword of Cerebov temproarily downgrading the defender's fire resistance. * Staff of Olgreb boosting poison spells, as if it were a staff of poison. * Vampire's Tooth always getting maximal vampiric drain. * Mace of Variablity's initial pluses being chosen at creation time. * Since what used to be special wield effects is now handled very differently, noisy weapons and the lantern of shadows effects are handled with player attributes rather than SPWLD_NOISES and SPWLD_SHADOW. * Unrandarts can now have an elemental colour for their colour (currently only used for the Mace of Variability). * Unrandarts' value modification, being special, and being evil are now handled in art-data.txt rather than being hardcoded. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10055 c06c8d41-db1a-0410-9941-cceddc491573
* Since fixed artefacts are going to be folded into unrandarts, and unrandartszelgadis2009-06-081-2/+2
| | | | | | | | | | | have already become almost identical to randarts, change "randart" to "artefact" everywhere except for things that deal exclusively with randarts. Artefact related files will be renamed later. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9921 c06c8d41-db1a-0410-9941-cceddc491573
* * Tweak Xom's ideas about what makes a funny or boring death.j-p-e-g2009-04-221-2/+2
| | | | | | | | | * Add another option (*sigh*) covering whether W=T and P=R. (Defaults to false.) * Various spacing and comment fixes. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9675 c06c8d41-db1a-0410-9941-cceddc491573
* Fix 2603266: Additional '(' needed for cycling ammo after emptying thej-p-e-g2009-02-221-0/+1
| | | | | | | | | | previously quivered stack. FR 2594741: Make ')' cycle quiver backwards. The previous behaviour has been moved to '}'. The equipped inventory listing ']' now also includes the quivered item(s). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9164 c06c8d41-db1a-0410-9941-cceddc491573
* * Fix 2477235: Use inscription check when switching back from butcheringj-p-e-g2009-01-141-1/+2
| | | | | | | | | | | tool in case it was autoinscribed {!w}. * Make TSO reclaim holy wrath weapons an Elyvilon worshipper is attempting to destroy (flavour only). (FR 2497133) * Disallow Dissolution outside of the Slime Pits. * Explain 'e' as "Drain corpses" for Vampires in the command help. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8450 c06c8d41-db1a-0410-9941-cceddc491573
* Implented some ranged brands from FR #2006917 and #1891231: shadow andzelgadis2009-01-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | penetration (not phasing) for launchers and shadow, penetration, dispersal, exploding, steel and silver for ammo. Never randomly generated. If a launcher of venom is used to launch flame or ice ammo then the resulting bolt will be poisoned, just like poisoned ammo launched from a launcer of flame or frost. Put missile beam setup code that's common to monsters and the player in setup_missile_beam(). Removed mons_thrown_object_destroyed(), thrown_object_destroyed() is now used for both monsters and the player. The bolt struct has several new callback fields that can be set to alter the beam's behaviour; currently only used by the brands implemented in this commit, but they should be general enough to be used by anything. The bolt struct has the new field "special_explosion" which can be used to cause an explosion with flavour and/or damage dice different than the rest of the beam. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8449 c06c8d41-db1a-0410-9941-cceddc491573
* Added BEAM_CHAOS and changed chaos launchers/ammo to use that. Currently onlyzelgadis2008-12-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | chooses a different, random beam flavour (which undoudtedly needs to have their relative weights changed after playtesting) for each square it passes through, but in the future it might do things like bounce off walls at weird angles or animate weapons left laying on the ground. Added CLOUD_CHAOS, though it doesn't do anything yet. Monsters which are marked summoned or otherwise given ENCH_ABJ can also be marked with the type of summoning that happened, which is stored in the until-now-unused ENCH_SUMMON. This is useful for figuring out if a monster has ENCH_ABJ but isn't really summoned (like fire vortices created by Fire Storm or dancing weapons created by Tukima's Dance) so that they won't be affected by abjuration. It's also currently used to do a different "dissapears in a puff of smoke" messages for summoned monsters based on the summoning type, so that monsters summoned by Shadow Creature "dissolve into shadows" and don't leave behind any clouds, and temporary god gift monsters from good gods "dissolve into sparkling lights". In the future it might be used to do temporarily animated corpses, which turn back into a corpse when killed or when the animation runs out. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7778 c06c8d41-db1a-0410-9941-cceddc491573
* Add some chaos attacks/weapons. Missiles and launchers of chaos fire a bolt ofzelgadis2008-12-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | a random type (including enchantments, which isn't so good since they don't have a visible beam). Might want to add BEAM_CHAOS and make it a beam of that. Weapons of chaos either does a random brand effect (fire, poison, etc) or a random chaos effect (which includes cloning the attack victim). The AF_CHAOS monster attack flavour either does a random monster flavour or chaos effect (same chaos effects as for weapons). The relative frequency of all the different effects/brands/flavours no doubt needs adjustment. All of this is currently only available via Xom. 10% of all common-type demons sent in by Xom will be chaos spawn (the only kind that use AF_CHAOS, and never randomly generated otherwise). All item gifts from Xom which are generated with a brand will have their brand switched to chaos (this should probably be made to happen less than 100% of the time). And finally one of Xom's bad acts is to upgrade a non-branded weapon of a nearby hostile monster to a chaos brand (this might need to be made less (or more) common). Oh, and if a randart has a brand which would be identified if it were merely an ego weapon, it now identifies the RAP_BRAND property of the randart. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7704 c06c8d41-db1a-0410-9941-cceddc491573
* Add minor cosmetic fixes.dolorous2008-11-171-8/+7
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7458 c06c8d41-db1a-0410-9941-cceddc491573
* Implement FR 1894211: All transformations will now cause your equipmentj-p-e-g2008-10-261-1/+4
| | | | | | | | | | | | | | | | | | to meld into your body than rather than being removed, so that when untransforming you don't have to put everything on again. * Wielded stuff cannot be melded, and does not yet use the autoswap function. * As before, the low-level transformation spells refuse to work with cursed equipment. * The messages are unnecessarily spammy if you change forms while already transformed (first everything is re-equipped, then unequipped again). Conversely, on simply untransforming the lack of messages might be confusing. * Might be buggy, feedback welcome! git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7300 c06c8d41-db1a-0410-9941-cceddc491573
* 2088461: identify Holy Wrath brand on failed wield.haranp2008-09-211-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6965 c06c8d41-db1a-0410-9941-cceddc491573
* Remove pre-Stone Soup change history from source files, and push it allj-p-e-g2008-09-141-5/+0
| | | | | | | | | | into a file crawlhistory.txt in docs/obsolete. I used a perl script to do this under the assumption that all these change logs used the same system following the keyword "Change History". git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6930 c06c8d41-db1a-0410-9941-cceddc491573
* Massive change from using x and y to using coord_defs(). Not quite tested,haranp2008-07-221-1/+2
| | | | | | | | most likely broken in some places and might break tiles. Will fix in the near future. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6636 c06c8d41-db1a-0410-9941-cceddc491573
* Fix 2018757: Bat form not deactivating jewellery effectsj-p-e-g2008-07-151-1/+1
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6564 c06c8d41-db1a-0410-9941-cceddc491573
* Large tiles-related changes. Platform-specific rendering removed and ↵ennewalker2008-07-151-4/+6
| | | | | | replaced with SDL/OpenGL. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6550 c06c8d41-db1a-0410-9941-cceddc491573
* Add a new command for firing without quivering on 'F'.j-p-e-g2008-06-271-2/+3
| | | | | | | Use puff of fire/ice tiles for ammo of flame/ice being fired. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6169 c06c8d41-db1a-0410-9941-cceddc491573
* Modify Portal Projectile to use the quiver interface, so you can nowj-p-e-g2008-06-081-1/+2
| | | | | | | | choose your projectiles and are no longer prompted when "firing through" friendlies. (FR 1816789) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5615 c06c8d41-db1a-0410-9941-cceddc491573
* Consolidate all cases where corpses are turned into skeletons, asj-p-e-g2008-05-311-1/+1
| | | | | | | | | | | | | | | | | | suggested by dolorous in BR 1977925, and turn coloured draconian corpses into plain draconian skeletons. Same when the game attempts to create coloured draconian skeletons or simulacrums. Added autoinscription to the single inscription command ('{') - this is necessary for items with long descriptions that can't autoinscribed otherwise. Added a small hack to make death cobs (%) appear correctly in the monster list. The rest is cleanup, I believe. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5376 c06c8d41-db1a-0410-9941-cceddc491573
* Make sure that when TSO makes your wielded weapon an artefact, any stat dolorous2008-04-161-1/+2
| | | | | | | | drains it gets don't kill you. This is somewhat of a hack, but there doesn't seem to be a better way right now. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4278 c06c8d41-db1a-0410-9941-cceddc491573
* + allocate and initializepauldubois2008-04-111-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | + _fire_prompt_for_item returns -1, not ENDOFPACK + remove _fire_get_noitem_reason() + remove get_current_fire_item() + fix get_next_fire_item + remove _get_fire_order() + remove _fire_item_matches() + verify: no use of ENDOFPACK, use -1 + on_item_fired - implement: tags stuff + bug: wielding sling with stones = empty quiver - bug: wield sling, no quiver, pick up stones: should quiver + bug: wield sling, pick up stones: update # stones + bug: wield sling, stones quivered, drop stones: should update - feature: explicitly dropping all of ammo stack should remove it from quiver - move get_next_fire_item into quiver.cc? - remove: fire_quiver_best - remove: you.quiver - rename: you.quiver_change -> you.redraw_quiver - test no item because of fire_order_begin, =f, etc - find better place for on_weapon_changed - polish Qv: display, the command change - PROBLEM: cast_portal_projectile uses empty quiver slot? (test this) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4191 c06c8d41-db1a-0410-9941-cceddc491573
* - Allow 'inscribed' in fire_order. Previously it was a special case andpauldubois2008-03-241-1/+2
| | | | | | | | | | | | always sorted to the end. Now it's controllable. Default is still to the end, but not for any real reason. Updated docs and init.txt. - Replace reduncant inscription docs from crawl_options.txt with a pointer to crawl_manual.txt. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3854 c06c8d41-db1a-0410-9941-cceddc491573
* Add a weapon enchantment blessing that will enchant a monster's weapon dolorous2008-03-231-2/+1
| | | | | | | | | | | | | | | by two points (either this or armor enchantment blessing can occur, with 5% rarity). Whether to-hit or to-damage is chosen is random. Split handling of weapon enchantment into enchant_weapon() for the generic item routines, and handle_enchant_weapon() for the player-specific routines. Furthermore, make enchant_weapon() and enchant_armour() more similar in terms of structure. Also, in bless_follower(), store the blessing description and monster name in std::strings instead of const char*'s. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3839 c06c8d41-db1a-0410-9941-cceddc491573
* Add a blessing to improve AC by enchanting armor or shields by one or dolorous2008-03-221-0/+1
| | | | | | | | | | | two points, or at least uncursing them (5% chance, to discourage killings for armor; the probability of healing has been dropped to 90%). In the process, split out and generalize the code to enchant armor to not be so player-specific; now, handle_enchant_armour() contains the player-specific portion, and enchant_armour() contains the rest. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3798 c06c8d41-db1a-0410-9941-cceddc491573
* [Bug 1907221] Add "Modified for Crawl Reference" statement and author to aj-p-e-g2008-03-081-1/+1
| | | | | | | | huge number of files. Also correct file name comments. No coding changes. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3539 c06c8d41-db1a-0410-9941-cceddc491573
* First half of FR 1901459pauldubois2008-03-041-2/+2
| | | | | | | | | | | | | - Fire interface cycles through all items in fire order... - ...and it cycles through items with +f inscription (will add docs if we like it, remove +f if not) - Fix '(' in fire interface; it cycled the wrong way. - Did not fix: "Awkwardly throwing (Ctrl-N, Ctrl-P, i: etc)" takes up too much room. This comes up when using +f git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3521 c06c8d41-db1a-0410-9941-cceddc491573
* [FR 1903593] Change identification process of j-p-e-g2008-03-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | ?recharging, ?enchant armour and ?identify. If you read one of these scrolls and the type isn't known yet you are prompted with "Modify which item?" (better message needed!) and get to choose from the entire inventory. If the chosen item can be usefully "modified" by the scroll (unID'd item for identify, wand for recharging, enchantable armour for EA) the usual effect takes place and the scroll is identified. (Reading other scrolls of the same type will then only offer a more sensible selection of items.) Otherwise, nothing happens. Further, recharging and enchant armour now allow direct choice of the item in question, and it doesn't even have to be wielded or worn. I think this change actually makes the id game more interesting and also improves the interface. Gameplay might dictate that we reintroduce the "armour needs to be worn" rule, but that remains to be seen until after some more playtesting. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3514 c06c8d41-db1a-0410-9941-cceddc491573
* FR 1900612pauldubois2008-02-291-7/+1
| | | | | | | | | | | | | | | | Patch 1901093 Merge 't' functionality into 'f'. Firing interface allows selection of inventory item by hitting 'i'. Items selected through the inventory interface will not be quivered. Firing interface prints "Firing", "Throwing", "Awkwardly throwing" depending on the item selected. In-game documentation and manual updated. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3482 c06c8d41-db1a-0410-9941-cceddc491573
* Tiles: allow direct selection of corpse to be butchered from floorj-p-e-g2008-01-211-2/+2
| | | | | | | or to drink blood from for vampires git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3313 c06c8d41-db1a-0410-9941-cceddc491573
* Overhaul quiver storage to hold up to six item slots of j-p-e-g2008-01-161-0/+1
| | | | | | | | | | preferred ammo for bow, crossbow, hand crossbow, blowgun, sling, and non-launchers. Breaks saves. (Was Bug 1872821.) Also fix 1858916: update EV when paralysis is over git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3285 c06c8d41-db1a-0410-9941-cceddc491573
* Tile changes. *waves to Enne*j-p-e-g2008-01-121-1/+1
| | | | | | | | | | | | | | | | Fix assertion error when unwielding items. FR 1838216: Make R-click on map *really* show grid information. FR 1838219: Add more diverse action verbs for items in inventory ("eat", "unwield" etc. rather than plain "use") and allow memorizing by L-clicking on books. Bug 1858432: Show 0 charge icon for empty but unID'd wands. Also: Don't regard enslavement on friendlies as attack attempt. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3264 c06c8d41-db1a-0410-9941-cceddc491573
* Tiles!ennewalker2008-01-051-5/+12
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3194 c06c8d41-db1a-0410-9941-cceddc491573
* Implement the returning brand for ammunition. This mostly uses the same dolorous2007-12-081-0/+2
| | | | | | | | | code as weapons of returning, but such ammunition has the same chance of being randomly destroyed when thrown as non-returning ammunition. Note that the brand is not actually generated anywhere yet. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3024 c06c8d41-db1a-0410-9941-cceddc491573
* Add still more whitespace and comment fixes.dolorous2007-12-071-2/+2
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3016 c06c8d41-db1a-0410-9941-cceddc491573
* Clean-up of options in init.txt and crawl_options.txt j-p-e-g2007-11-201-11/+12
| | | | | | | | | | | | | | | | | | | | courtesy of maiermirk (1829976, 1831190). This includes a lot of spacing changes, updates of some examples and moving around some options into more sensible groupings. Highlights: * add returning weapons to fire_order list and allow fire_order to use += on new lines (This should solve the second part of 1829475.) * heap_brand now defaults to "reverse" * detected_item_colour defaults to green Also s/artifact/artefact. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2874 c06c8d41-db1a-0410-9941-cceddc491573
* Implementing FR 1829063: warning when putting on/removing itemsj-p-e-g2007-11-111-0/+2
| | | | | | | with a stat property that will be fatal. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2839 c06c8d41-db1a-0410-9941-cceddc491573
* Nagas no longer get racial weapons [1811726].haranp2007-10-311-1/+7
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2708 c06c8d41-db1a-0410-9941-cceddc491573
* Remember and describe randart properties which have been learned viazelgadis2007-10-101-1/+1
| | | | | | | | wearing the randart. Breaks savefile compatibility for saved games containing any randarts. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2403 c06c8d41-db1a-0410-9941-cceddc491573
* Split off portions of externs.h and enum.h into other files. Thezelgadis2007-09-151-0/+17
| | | | | | | | | | | | | crawl_environment, player and monsters classes have been left in externs.h, which necessitates that all of the enums references by those classes stay in enums.h, since you can't forward declare an enum. However, it's a start. Also, portions of misc.{cc,h} have been split off into traps.{cc,h}, place.{cc,h} and terrain.{cc,h} git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2095 c06c8d41-db1a-0410-9941-cceddc491573
* Fixed acquirement giving unwearable armour (Iaido).dshaligram2007-08-041-0/+2
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1961 c06c8d41-db1a-0410-9941-cceddc491573
* [1746014] Added an implicit quiver when firing missiles:dshaligram2007-07-131-2/+4
| | | | | | | | | | | | | | - ^P/^N change the selected missile, but only within a fire_order slot. i.e., if you're wielding a launcher and have "launcher" first in your fire order, ^N and ^P will cycle only through suitable launcher ammo. - If you use ^P or ^N to change the default missiles offered, that choice gets saved as your quiver (unless you cancel targeting). - Fire always offers the quivered item first, if appropriate (so if you have darts quivered and try to shoot from a bow, the darts will not be offered). Breaks save compatibility (quiver is saved). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1854 c06c8d41-db1a-0410-9941-cceddc491573
* [1739347] Fixed acquirement giving unwieldable weapons.dshaligram2007-07-091-1/+2
| | | | git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1814 c06c8d41-db1a-0410-9941-cceddc491573
* Implemented Blade card.haranp2007-07-041-0/+2
| | | | | | | Damnation will no longer work in Abyss/Pan/Lab. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1747 c06c8d41-db1a-0410-9941-cceddc491573