summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2016-09-17 09:58:14 +0200
committerBardur Arantsson <bardur@scientician.net>2016-09-17 09:58:14 +0200
commitabfb46d19acc0c979a8af93c5add1da11d26457f (patch)
tree9374d32be2c0355a8f50d26cf92eb073ff77ab65 /src
parentceb4551cfb0e3fd1bdf8bdb868e6758634486ecb (diff)
Add DRS_NONE for "learn nothing" for update_smart_learn()
Diffstat (limited to 'src')
-rw-r--r--src/defines.h1
-rw-r--r--src/monster2.cc27
2 files changed, 20 insertions, 8 deletions
diff --git a/src/defines.h b/src/defines.h
index 14d7fe25..b17403ef 100644
--- a/src/defines.h
+++ b/src/defines.h
@@ -2158,6 +2158,7 @@
/*
* Some things which induce learning
*/
+#define DRS_NONE 0
#define DRS_ACID 1
#define DRS_ELEC 2
#define DRS_FIRE 3
diff --git a/src/monster2.cc b/src/monster2.cc
index d363d4e1..74380a25 100644
--- a/src/monster2.cc
+++ b/src/monster2.cc
@@ -3661,22 +3661,33 @@ void message_pain(int m_idx, int dam)
*/
void update_smart_learn(int m_idx, int what)
{
- monster_type *m_ptr = &m_list[m_idx];
-
/* Not allowed to learn */
- if (!smart_learn) return;
+ if (!smart_learn)
+ {
+ return;
+ }
+
+ /* Fast path for DRS_NONE */
+ if (what == DRS_NONE)
+ {
+ return;
+ }
/* Get racial flags */
+ auto m_ptr = &m_list[m_idx];
auto const r_ptr = m_ptr->race();
/* Too stupid to learn anything */
- if (r_ptr->flags & RF_STUPID) return;
+ if (r_ptr->flags & RF_STUPID)
+ {
+ return;
+ }
/* Not intelligent, only learn sometimes */
- if (!(r_ptr->flags & RF_SMART) && magik(50)) return;
-
-
- /* XXX XXX XXX */
+ if (!(r_ptr->flags & RF_SMART) && magik(50))
+ {
+ return;
+ }
/* Analyze the knowledge */
switch (what)