summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/xom.h
diff options
context:
space:
mode:
authorDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-10-11 18:11:30 -0500
committerDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-10-11 18:11:30 -0500
commitfa1f442ef7999d3e84dadd3e9c0823ceb937dab2 (patch)
treebe37134ec84bd981e34130a7cc31fe46862339a0 /crawl-ref/source/xom.h
parent6c8b8a556e0e92e993a82ab1c15ba40cfd180151 (diff)
downloadcrawl-ref-fa1f442ef7999d3e84dadd3e9c0823ceb937dab2.tar.gz
crawl-ref-fa1f442ef7999d3e84dadd3e9c0823ceb937dab2.zip
Apply jpeg's patches in [2876380] (automate Xom testing) and [2876688]
(new Xom effects), tweaked to fit into current trunk.
Diffstat (limited to 'crawl-ref/source/xom.h')
-rw-r--r--crawl-ref/source/xom.h56
1 files changed, 55 insertions, 1 deletions
diff --git a/crawl-ref/source/xom.h b/crawl-ref/source/xom.h
index ab0e13d66a..047f5196b5 100644
--- a/crawl-ref/source/xom.h
+++ b/crawl-ref/source/xom.h
@@ -18,6 +18,56 @@ enum xom_message_type
NUM_XOM_MESSAGE_TYPES
};
+enum xom_event_type
+{
+ XOM_DID_NOTHING = 0,
+
+ // good acts
+ XOM_GOOD_POTION,
+ XOM_GOOD_SPELL_TENSION,
+ XOM_GOOD_SPELL_CALM,
+ XOM_GOOD_MAPPING,
+ XOM_GOOD_CONFUSION, // 5
+ XOM_GOOD_SINGLE_ALLY,
+ XOM_GOOD_ANIMATE_MON_WPN,
+ XOM_GOOD_ANNOYANCE_GIFT,
+ XOM_GOOD_RANDOM_ITEM,
+ XOM_GOOD_ACQUIREMENT, // 10
+ XOM_GOOD_ALLIES,
+ XOM_GOOD_POLYMORPH,
+ XOM_GOOD_SWAP_MONSTERS,
+ XOM_GOOD_TELEPORT,
+ XOM_GOOD_VITRIFY, // 15
+ XOM_GOOD_MUTATION,
+ XOM_GOOD_MAJOR_ALLY,
+ XOM_GOOD_LIGHTNING,
+ XOM_GOOD_SCENERY,
+ XOM_LAST_GOOD_ACT = XOM_GOOD_SCENERY, // 19
+
+ // bad acts
+ XOM_BAD_MISCAST_PSEUDO, // 20
+ XOM_BAD_MISCAST_MINOR,
+ XOM_BAD_MISCAST_MAJOR,
+ XOM_BAD_MISCAST_NASTY,
+ XOM_BAD_STATLOSS,
+ XOM_BAD_TELEPORT, // 25
+ XOM_BAD_SWAP_WEAPONS,
+ XOM_BAD_CHAOS_UPGRADE,
+ XOM_BAD_MUTATION,
+ XOM_BAD_POLYMORPH,
+ XOM_BAD_STAIRS, // 30
+ XOM_BAD_CONFUSION,
+ XOM_BAD_DRAINING,
+ XOM_BAD_TORMENT,
+ XOM_BAD_ANIMATE_WPN,
+ XOM_BAD_SUMMON_DEMONS, // 35
+ XOM_BAD_BANISHMENT,
+ XOM_LAST_BAD_ACT = XOM_BAD_BANISHMENT, // 36
+
+ XOM_PLAYER_DEAD = 100, // player already dead (shouldn't happen)
+ NUM_XOM_EVENTS
+};
+
void xom_tick();
void xom_is_stimulated(int maxinterestingness,
xom_message_type message_type = XM_NORMAL,
@@ -25,7 +75,7 @@ void xom_is_stimulated(int maxinterestingness,
void xom_is_stimulated(int maxinterestingness, const std::string& message,
bool force_message = false);
bool xom_is_nice(int tension = -1);
-void xom_acts(bool niceness, int sever, int tension = -1);
+int xom_acts(bool niceness, int sever, int tension = -1, bool debug = false);
const char *describe_xom_favour(bool upper = false);
inline void xom_acts(int sever, int tension = -1)
@@ -36,4 +86,8 @@ inline void xom_acts(int sever, int tension = -1)
void xom_check_lost_item(const item_def& item);
void xom_check_destroyed_item(const item_def& item, int cause = -1);
void xom_death_message(const kill_method_type killed_by);
+#ifdef WIZARD
+void debug_xom_effects();
+#endif
+
#endif