summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/acr.cc2
-rw-r--r--crawl-ref/source/dat/database/FAQ.txt8
-rw-r--r--crawl-ref/source/dat/descript/gods.txt2
-rw-r--r--crawl-ref/source/dat/descript/spells.txt4
-rw-r--r--crawl-ref/source/initfile.cc4
-rw-r--r--crawl-ref/source/invent.cc28
-rw-r--r--crawl-ref/source/invent.h3
-rw-r--r--crawl-ref/source/it_use2.cc17
-rw-r--r--crawl-ref/source/item_use.cc13
-rw-r--r--crawl-ref/source/itemname.cc2
-rw-r--r--crawl-ref/source/itemname.h2
11 files changed, 56 insertions, 29 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index d68d7a8742..261b328e44 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -1774,7 +1774,7 @@ void process_command( command_type cmd )
break;
case CMD_DISPLAY_KNOWN_OBJECTS:
- check_item_knowledge(false);
+ check_item_knowledge();
break;
case CMD_REPLAY_MESSAGES:
diff --git a/crawl-ref/source/dat/database/FAQ.txt b/crawl-ref/source/dat/database/FAQ.txt
index bdcbc48647..eff0143976 100644
--- a/crawl-ref/source/dat/database/FAQ.txt
+++ b/crawl-ref/source/dat/database/FAQ.txt
@@ -129,9 +129,11 @@ whether it's one or two-handed, the randart properties, the weapon brand,
and the monsters you're about to face. In general, switching from a weapon
type you are already highly skilled with to another one that you have no
skill in is a waste of time. The brands may greatly differ in damage output
-but you can get a good idea by bashing a few comparatively harmless monsters
-with each and comparing the results. Of the enchantments, damage is usually
-more important unless you hardly ever manage to hit with a weapon.
+but you can get a good idea by bashing a few comparatively harmless
+monsters with each and comparing the results.
+Of the enchantments, the second value (damage) is usually more important
+than the first (accuracy) unless you hardly ever manage to hit with a
+weapon.
%%%%
Q:religion
diff --git a/crawl-ref/source/dat/descript/gods.txt b/crawl-ref/source/dat/descript/gods.txt
index 799e189827..7c74832670 100644
--- a/crawl-ref/source/dat/descript/gods.txt
+++ b/crawl-ref/source/dat/descript/gods.txt
@@ -32,7 +32,7 @@ Yredelemnul the Dark is an evil God worshipped by those who seek powers over dea
%%%%
Xom
-Xom is a wild and unpredictable God of chaos, who seeks not worshippers but playthings with which to toy. Many choose to follow Xom in the hope of receiving fabulous rewards and mighty powers, but Xom is nothing if not capricious.
+Xom is a wild and unpredictable God of chaos, who seeks not worshippers but playthings with which to toy. Many choose to follow Xom in the hope of receiving fabulous rewards and mighty powers, but Xom is nothing if not capricious. Also, there is nothing a follower can do to influence Xom's mood.
%%%%
Vehumet
diff --git a/crawl-ref/source/dat/descript/spells.txt b/crawl-ref/source/dat/descript/spells.txt
index 5cc68a73b1..466bf10894 100644
--- a/crawl-ref/source/dat/descript/spells.txt
+++ b/crawl-ref/source/dat/descript/spells.txt
@@ -228,7 +228,7 @@ This spell heats a potion causing it to explode into a large cloud when thrown.
%%%%
Excruciating Wounds
-This spell temporarily infuses the weapon held by the caster with the essence of pain itself. It will not affect weapons which are otherwise subject to special enchantments.
+This spell temporarily infuses the weapon held by the caster with the essence of pain itself. It will not affect weapons which are otherwise subject to special enchantments. Note that unlike other brands, pain can not be made permanent by reading a scroll of vorpalise weapon.
%%%%
Extension
@@ -644,5 +644,5 @@ This spell throws a bolt of poison.
%%%%
Warp Weapon
-This spell temporarily binds a localized warp field to the invoker's weapon.
+This spell temporarily binds a localized warp field to the invoker's weapon. Note that unlike other brands, distortion can not be made permanent by reading a scroll of vorpalise weapon.
%%%%
diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc
index 18ecf0fce0..05b02fca2f 100644
--- a/crawl-ref/source/initfile.cc
+++ b/crawl-ref/source/initfile.cc
@@ -809,7 +809,11 @@ void game_options::reset_options()
// 10 was the cursor step default on Linux.
level_map_cursor_step = 7;
+#ifdef UNIX
use_fake_cursor = true;
+#else
+ use_fake_cursor = false;
+#endif
stash_tracking = STM_ALL;
diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc
index 0a4fa56f33..6abb296c73 100644
--- a/crawl-ref/source/invent.cc
+++ b/crawl-ref/source/invent.cc
@@ -859,7 +859,7 @@ unsigned char InvMenu::getkey() const
{
unsigned char mkey = lastch;
if (!isalnum(mkey) && mkey != '$' && mkey != '-' && mkey != '?'
- && mkey != '*' && mkey != ESCAPE)
+ && mkey != '*' && mkey != ESCAPE && mkey != '\\')
{
mkey = ' ';
}
@@ -1514,7 +1514,8 @@ int prompt_invent_item( const char *prompt,
const char other_valid_char,
int excluded_slot,
int *const count,
- operation_types oper )
+ operation_types oper,
+ bool allow_list_known )
{
if (!_any_items_to_select(type_expect) && type_expect == OSEL_THROWABLE
&& oper == OPER_FIRE && mtype == MT_INVLIST)
@@ -1589,6 +1590,13 @@ int prompt_invent_item( const char *prompt,
NULL,
&items );
+ if (allow_list_known && keyin == '\\')
+ {
+ if (check_item_knowledge(true))
+ keyin = '?';
+ else
+ mpr("You don't recognise anything yet!");
+ }
need_getch = false;
@@ -1625,12 +1633,22 @@ int prompt_invent_item( const char *prompt,
}
}
else if (keyin == ESCAPE
- || (Options.easy_quit_item_prompts
- && allow_easy_quit && keyin == ' '))
+ || (Options.easy_quit_item_prompts
+ && allow_easy_quit && keyin == ' '))
{
ret = PROMPT_ABORT;
break;
}
+ else if (allow_list_known && keyin == '\\')
+ {
+ if (check_item_knowledge(true))
+ {
+ keyin = '?';
+ need_getch = false;
+ }
+ else
+ mpr("You don't recognise anything yet!");
+ }
else if (isalpha( keyin ))
{
ret = letter_to_index( keyin );
@@ -1642,7 +1660,7 @@ int prompt_invent_item( const char *prompt,
}
else if (!isspace( keyin ))
{
- // we've got a character we don't understand...
+ // We've got a character we don't understand...
canned_msg( MSG_HUH );
}
else
diff --git a/crawl-ref/source/invent.h b/crawl-ref/source/invent.h
index 231535c467..c8fac012cf 100644
--- a/crawl-ref/source/invent.h
+++ b/crawl-ref/source/invent.h
@@ -182,7 +182,8 @@ int prompt_invent_item( const char *prompt,
const char other_valid_char = '\0',
int excluded_slot = -1,
int *const count = NULL,
- operation_types oper = OPER_ANY );
+ operation_types oper = OPER_ANY,
+ bool allow_list_known = false );
std::vector<SelItem> select_items(
const std::vector<const item_def*> &items,
diff --git a/crawl-ref/source/it_use2.cc b/crawl-ref/source/it_use2.cc
index f45fb531f4..5d63c851e1 100644
--- a/crawl-ref/source/it_use2.cc
+++ b/crawl-ref/source/it_use2.cc
@@ -48,6 +48,9 @@ bool potion_effect(potion_type pot_eff, int pow, bool drank_it, bool was_known)
&& you.hunger_state < HS_SATIATED
&& drank_it ? 2 : 1);
+ // Knowingly drinking bad potions is much less amusing.
+ const int xom_factor = factor * (drank_it && was_known ? 2 : 1);
+
switch (pot_eff)
{
case POT_HEALING:
@@ -117,7 +120,7 @@ bool potion_effect(potion_type pot_eff, int pow, bool drank_it, bool was_known)
{
// Full herbivores always become ill from blood.
disease_player(50 + random2(100));
- xom_is_stimulated(32);
+ xom_is_stimulated(32/xom_factor);
}
else
lessen_hunger(value, true);
@@ -214,24 +217,24 @@ bool potion_effect(potion_type pot_eff, int pow, bool drank_it, bool was_known)
poison_player( ((pot_eff == POT_POISON) ? 1 + random2avg(5, 2)
: 3 + random2avg(13, 2)) );
- xom_is_stimulated(128);
+ xom_is_stimulated(128 / xom_factor);
}
break;
case POT_SLOWING:
if (slow_player((10 + random2(pow)) / factor))
- xom_is_stimulated(64 / factor);
+ xom_is_stimulated(64 / xom_factor);
break;
case POT_PARALYSIS:
you.paralyse(NULL,
(2 + random2( 6 + you.duration[DUR_PARALYSIS] )) / factor);
- xom_is_stimulated(64 / factor);
+ xom_is_stimulated(64 / xom_factor);
break;
case POT_CONFUSION:
if (confuse_player((3 + random2(8)) / factor))
- xom_is_stimulated(128 / factor);
+ xom_is_stimulated(128 / xom_factor);
break;
case POT_INVISIBILITY:
@@ -274,14 +277,14 @@ bool potion_effect(potion_type pot_eff, int pow, bool drank_it, bool was_known)
if (lose_stat(STAT_RANDOM, (1 + random2avg(4, 2)) / factor, false,
"drinking a potion of degeneration"))
{
- xom_is_stimulated(64 / factor);
+ xom_is_stimulated(64 / xom_factor);
}
break;
// Don't generate randomly - should be rare and interesting.
case POT_DECAY:
if (rot_player((10 + random2(10)) / factor))
- xom_is_stimulated(64 / factor);
+ xom_is_stimulated(64 / xom_factor);
break;
case POT_WATER:
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index ac34457c8c..619598edc3 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -4282,14 +4282,14 @@ bool _drink_fountain()
static bool _vorpalise_weapon()
{
if (!you.weapon())
- return false;
+ return (false);
// Check if you're wielding a brandable weapon.
item_def& wpn = *you.weapon();
if (wpn.base_type != OBJ_WEAPONS || wpn.sub_type == WPN_BLOWGUN
|| is_artefact(wpn))
{
- return false;
+ return (false);
}
you.wield_change = true;
@@ -4301,12 +4301,12 @@ static bool _vorpalise_weapon()
mprf("%s emits a brilliant flash of light!",
wpn.name(DESC_CAP_YOUR).c_str());
set_item_ego_type(wpn, OBJ_WEAPONS, SPWPN_VORPAL);
- return true;
+ return (true);
}
// If there's a permanent brand, fail.
if (you.duration[DUR_WEAPON_BRAND] == 0)
- return false;
+ return (false);
// There's a temporary brand, attempt to make it permanent.
const std::string itname = wpn.name(DESC_CAP_YOUR);
@@ -4655,8 +4655,9 @@ static bool _scroll_modify_item(item_def scroll)
// Get the slot of the item the scroll is to be used on.
// Ban the scroll's own slot from the prompt to avoid the stupid situation
// where you use identify on itself.
- item_slot = prompt_invent_item("Use on which item?", MT_INVLIST,
- OSEL_ANY, true, true, false, 0, item_slot);
+ item_slot = prompt_invent_item("Use on which item? (\\ to view known items)",
+ MT_INVLIST, OSEL_ANY, true, true, false, 0,
+ item_slot, NULL, OPER_ANY, true);
if (prompt_failed(item_slot))
return (false);
diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc
index b118743137..2e4c449cd3 100644
--- a/crawl-ref/source/itemname.cc
+++ b/crawl-ref/source/itemname.cc
@@ -1903,7 +1903,6 @@ bool check_item_knowledge(bool quiet)
for (int i = 0; i < 5; i++)
- {
for (int j = 0; j < idx_to_maxtype[i]; j++)
{
if (type_ids[i][j] == ID_KNOWN_TYPE)
@@ -1919,7 +1918,6 @@ bool check_item_knowledge(bool quiet)
}
}
}
- }
if (items.empty())
{
diff --git a/crawl-ref/source/itemname.h b/crawl-ref/source/itemname.h
index 1e46bb866f..0f8012e021 100644
--- a/crawl-ref/source/itemname.h
+++ b/crawl-ref/source/itemname.h
@@ -78,7 +78,7 @@ int property( const item_def &item, int prop_type );
const char* racial_description_string(const item_def& item, bool terse = false);
-bool check_item_knowledge(bool quiet);
+bool check_item_knowledge(bool quiet = false);
std::string quant_name( const item_def &item, int quant,
description_level_type des, bool terse = false );