summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/acr.cc7
-rw-r--r--crawl-ref/source/dat/database/FAQ.txt34
-rw-r--r--crawl-ref/source/dat/entry.des1
-rw-r--r--crawl-ref/source/delay.cc6
-rw-r--r--crawl-ref/source/delay.h3
-rw-r--r--crawl-ref/source/fight.cc6
-rw-r--r--crawl-ref/source/itemname.cc14
-rw-r--r--crawl-ref/source/player.cc28
-rw-r--r--crawl-ref/source/player.h3
-rw-r--r--crawl-ref/source/transfor.cc2
10 files changed, 65 insertions, 39 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 35d4856076..fd66426c56 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -4058,6 +4058,13 @@ static bool _initialise(void)
set_cursor_enabled(false);
+ if (Options.stash_tracking && !crawl_state.arena)
+ {
+ StashTrack.update_visible_stashes(
+ Options.stash_tracking == STM_ALL ? StashTracker::ST_AGGRESSIVE
+ : StashTracker::ST_PASSIVE);
+ }
+
// This just puts the view up for the first turn.
viewwindow(true, false);
diff --git a/crawl-ref/source/dat/database/FAQ.txt b/crawl-ref/source/dat/database/FAQ.txt
index dac7518c49..9e216e8045 100644
--- a/crawl-ref/source/dat/database/FAQ.txt
+++ b/crawl-ref/source/dat/database/FAQ.txt
@@ -28,10 +28,13 @@ A:goal
To survive and to win, obviously. For this you need to find the fabled
Orb of Zot deep down in the dungeon and bring it back to the surface.
-However, to enter the realm of Zot, you'll first need to collect three
-runes. If you're new to the game you really shouldn't worry about this,
-though. Just try to delve as deeply as possible and have fun exploring the
-many side branches in Crawl.
+To enter the realm of Zot, you'll first need to collect three runes to be
+found in various branches of the dungeon.
+
+However, if you're new to the game you really shouldn't worry about this.
+Just try to delve as deeply as possible and have fun exploring the many
+side branches in Crawl with various characters of different species,
+skill sets, and religion.
%%%%
Q:drop
@@ -39,10 +42,10 @@ How can I drop/pick up only part of a stack?
%%%%
A:drop
-Press 'd' (or ','), followed by a number (the amount), and finally the
+Press 'd' (or ','/'g'), followed by a number (the amount), and finally the
item's letter. For pickup, this is only possible when choosing items from
-a menu. Stacks that are selected only in part are marked with '#' rather
-than '+'.
+a menu, i.e. ',,' or 'gg'.
+Stacks that are selected only in part are marked with '#' rather than '+'.
%%%%
Q:downstairs
@@ -127,10 +130,10 @@ Which gods would you recommend to a beginning player?
%%%%
A:religion
-The easiest gods to play are probably Trog (for Berserkers), Sif Muna (for
-mages), Beogh (for orcs) and Xom (for general fun). When you reach the
-Temple for the first time be sure to read all gods' descriptions and take
-your time in deciding which way to go.
+The easiest gods to play are probably Trog (for pure fighters), Sif Muna
+(for spellcasters), Beogh (for orcs) and Xom (for general fun).
+When you reach the Temple for the first time be sure to read all gods'
+descriptions and take your time in deciding which way to go.
%%%%
Q:starving
@@ -254,7 +257,7 @@ No, you can't. All of the devteam members submitted a number of code
intensive patches and/or took over responsibility over an important side
project before joining. Once you've become indispensible to the team and we
start wondering how we ever got along without you, we _may_ ask you to join
-you, but don't hold your breath.
+us, but don't hold your breath.
Please submit your ideas to the Feature Requests tracker of Sourceforge. If
they catch the interest of at least one coder, chances are they'll make it
@@ -279,9 +282,10 @@ down to three reasons:
* We just don't think it's interesting enough to ever be implemented.
Please don't let this stop you from bringing up more suggestions. Already the
-next one might be one generating heavy interest and excitement. Do try to be
-specific in your suggestions. If you cannot even explain the basics of your
-idea, why should we bother to flesh it out, let alone code it?
+next one might generate heavy interest and excitement, and end up in the
+game. However, do try to be specific in your suggestions. If you cannot even
+explain the basics of your idea, why should we bother to flesh it out, let
+alone code it?
%%%%
Q:patch
diff --git a/crawl-ref/source/dat/entry.des b/crawl-ref/source/dat/entry.des
index 8e16e784fb..70c85b9cba 100644
--- a/crawl-ref/source/dat/entry.des
+++ b/crawl-ref/source/dat/entry.des
@@ -1074,6 +1074,7 @@ ENDMAP
##############################################################################
# By the pond
NAME: david_entry_009
+WEIGHT: 1000000
TAGS: entry no_monster_gen no_pool_fixup
ORIENT: float
SUBST: 0 = 0 .
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 482e61f524..9402577215 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -543,7 +543,8 @@ static bool _is_butcher_delay(int delay)
|| delay == DELAY_OFFER_CORPSE);
}
-void handle_interrupted_swap(bool swap_if_safe, bool force_unsafe)
+void handle_interrupted_swap(bool swap_if_safe, bool force_unsafe,
+ bool untransform)
{
if (!you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED]
|| !you_tran_can_wear(EQ_WEAPON) || you.cannot_act())
@@ -560,7 +561,8 @@ void handle_interrupted_swap(bool swap_if_safe, bool force_unsafe)
const bool prompt = Options.prompt_for_swap && !safe;
const delay_type delay = current_delay_action();
- const char* prompt_str = "Switch back from butchering tool?";
+ const char* prompt_str = transform ? "Switch back to main weapon?"
+ : "Switch back from butchering tool?";
// If we're going to prompt then update the window so the player can
// see what the monsters are.
diff --git a/crawl-ref/source/delay.h b/crawl-ref/source/delay.h
index 55cb7bd1d4..81a81b1f26 100644
--- a/crawl-ref/source/delay.h
+++ b/crawl-ref/source/delay.h
@@ -78,7 +78,8 @@ bool is_being_butchered(const item_def &item, bool just_first = true);
bool is_vampire_feeding( void );
void stop_butcher_delay();
void handle_interrupted_swap(bool swap_if_safe = false,
- bool force_unsafe = false);
+ bool force_unsafe = false,
+ bool transform = false);
void clear_macro_process_key_delay();
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 5fd1dd6311..fbeb88e680 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -219,7 +219,7 @@ int calc_heavy_armour_penalty( bool random_factor )
}
// Heavy armour modifiers for PARM_EVASION.
- if (you.equip[EQ_BODY_ARMOUR] != -1)
+ if (player_wearing_slot(EQ_BODY_ARMOUR))
{
const int ev_pen = property( you.inv[you.equip[EQ_BODY_ARMOUR]],
PARM_EVASION );
@@ -233,15 +233,15 @@ int calc_heavy_armour_penalty( bool random_factor )
// ??? what is the reasoning behind this ??? {dlb}
// My guess is that its supposed to encourage monk-style play -- bwr
- if (!ur_armed)
+ if (!ur_armed && heavy_armour)
{
if (random_factor)
{
heavy_armour *= (coinflip() ? 3 : 2);
}
- // (2+3)/2
else
{
+ // avg. value: (2+3)/2
heavy_armour *= 5;
heavy_armour /= 2;
}
diff --git a/crawl-ref/source/itemname.cc b/crawl-ref/source/itemname.cc
index a6b918dc37..7eacf12918 100644
--- a/crawl-ref/source/itemname.cc
+++ b/crawl-ref/source/itemname.cc
@@ -2545,6 +2545,7 @@ bool is_useless_item(const item_def &item, bool temp)
if (!item_type_known(item))
return (false);
+ // Potentially useful.
if (is_artefact(item))
return (false);
@@ -2560,12 +2561,17 @@ bool is_useless_item(const item_def &item, bool temp)
|| you.religion == GOD_TROG);
case RING_LIFE_PROTECTION:
+ return (player_prot_life(false, temp, false) == 3);
+
case RING_HUNGER:
- case RING_REGENERATION:
case RING_SUSTENANCE:
- return (you.is_undead
- && (you.species != SP_VAMPIRE
- || temp && you.hunger_state == HS_STARVING));
+ return (you.species == SP_MUMMY
+ || temp && you.species == SP_VAMPIRE
+ && you.hunger_state == HS_STARVING);
+
+ case RING_REGENERATION:
+ return (temp && you.species == SP_VAMPIRE
+ && you.hunger_state == HS_STARVING);
case RING_SEE_INVISIBLE:
return (player_mutation_level(MUT_ACUTE_VISION));
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index cb1a22ace2..1c181b0223 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -1812,7 +1812,7 @@ int player_energy()
// If temp is set to false, temporary sources of resistance won't be
// counted.
-int player_prot_life(bool calc_unid, bool temp)
+int player_prot_life(bool calc_unid, bool temp, bool items)
{
int pl = 0;
@@ -1863,17 +1863,20 @@ int player_prot_life(bool calc_unid, bool temp)
}
}
- if (wearing_amulet(AMU_WARDING, calc_unid))
- pl++;
+ if (items)
+ {
+ if (wearing_amulet(AMU_WARDING, calc_unid))
+ pl++;
- // rings
- pl += player_equip(EQ_RINGS, RING_LIFE_PROTECTION, calc_unid);
+ // rings
+ pl += player_equip(EQ_RINGS, RING_LIFE_PROTECTION, calc_unid);
- // armour (checks body armour only)
- pl += player_equip_ego_type(EQ_ALL_ARMOUR, SPARM_POSITIVE_ENERGY);
+ // armour (checks body armour only)
+ pl += player_equip_ego_type(EQ_ALL_ARMOUR, SPARM_POSITIVE_ENERGY);
- // randart wpns
- pl += scan_randarts(RAP_NEGATIVE_ENERGY, calc_unid);
+ // randart wpns
+ pl += scan_randarts(RAP_NEGATIVE_ENERGY, calc_unid);
+ }
// undead/demonic power
pl += player_mutation_level(MUT_NEGATIVE_ENERGY_RESISTANCE);
@@ -2284,11 +2287,12 @@ bool is_light_armour( const item_def &item )
bool player_light_armour(bool with_skill)
{
- const int arm = you.equip[EQ_BODY_ARMOUR];
-
- if (arm == -1)
+ if (!player_wearing_slot(EQ_BODY_ARMOUR))
return (true);
+ // We're wearing some kind of body armour and it's not melded.
+ const int arm = you.equip[EQ_BODY_ARMOUR];
+
if (with_skill
&& property(you.inv[arm], PARM_EVASION) + you.skills[SK_ARMOUR]/3 >= 0)
{
diff --git a/crawl-ref/source/player.h b/crawl-ref/source/player.h
index bbf4683c66..f038c70459 100644
--- a/crawl-ref/source/player.h
+++ b/crawl-ref/source/player.h
@@ -149,7 +149,8 @@ int player_magical_power( void );
/* ***********************************************************************
* called from: fight - misc - ouch - spells
* *********************************************************************** */
-int player_prot_life(bool calc_unid = true, bool temp = true);
+int player_prot_life(bool calc_unid = true, bool temp = true,
+ bool items = true);
/* ***********************************************************************
diff --git a/crawl-ref/source/transfor.cc b/crawl-ref/source/transfor.cc
index c245c27cbd..983fde0ccf 100644
--- a/crawl-ref/source/transfor.cc
+++ b/crawl-ref/source/transfor.cc
@@ -968,7 +968,7 @@ void untransform(void)
}
calc_hp();
- handle_interrupted_swap(true);
+ handle_interrupted_swap(true, false, true);
} // end untransform()
// XXX: This whole system is a mess as it still relies on special