summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-11 10:49:36 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-04-11 10:49:36 +0000
commit294794073634d4aa598858ba8f577b95f606356d (patch)
tree7e27e63b134741eba35c7b125f7ffe1f4ff23ff4
parent6f24f856327baae51e8f95ccbbd485bca3d81104 (diff)
downloadcrawl-ref-294794073634d4aa598858ba8f577b95f606356d.tar.gz
crawl-ref-294794073634d4aa598858ba8f577b95f606356d.zip
* Allow viewing known items from "Use on what item?" scroll prompt.
* Default use_fake_cursor to true on Unix, else false. * Tweak some descriptions. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9594 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/options_guide.txt1
-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
12 files changed, 57 insertions, 29 deletions
diff --git a/crawl-ref/docs/options_guide.txt b/crawl-ref/docs/options_guide.txt
index caabd13789..76c423eb6c 100644
--- a/crawl-ref/docs/options_guide.txt
+++ b/crawl-ref/docs/options_guide.txt
@@ -2010,6 +2010,7 @@ use_fake_cursor = true
targeting screens instead of relying on the term to draw the
cursor. Use this if your term cannot show a cursor over
darkgrey/black squares.
+ On non-Unix builds this option defaults to false.
7- Inline Lua.
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 );