summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-chimera.h
diff options
context:
space:
mode:
authorPete Hurst <pete@streamuniverse.tv>2013-06-23 02:41:07 +0100
committerPete Hurst <pete@streamuniverse.tv>2013-06-23 02:43:30 +0100
commit799380530f2bc5cf3a036422bf7727e1fd9d7d29 (patch)
treef9a937eb7fb0697c3d9b1689fec912e2c418a6e6 /crawl-ref/source/mon-chimera.h
parent151d926e33d1d003cfc23956df55f5a7dcf60976 (diff)
downloadcrawl-ref-799380530f2bc5cf3a036422bf7727e1fd9d7d29.tar.gz
crawl-ref-799380530f2bc5cf3a036422bf7727e1fd9d7d29.zip
Allow random chimera to be created with MONS syntax
This enables a MONS spec to just be "chimera" and three depth- appropriate monsters will be used. This can produce bizarre results but might be useful. It should also allows things like "place:Zot:5 chimera vs place:Pan chimera" in Arena. The filters could be refined further to allow random chimera to not be completely ridiculous.
Diffstat (limited to 'crawl-ref/source/mon-chimera.h')
-rw-r--r--crawl-ref/source/mon-chimera.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/crawl-ref/source/mon-chimera.h b/crawl-ref/source/mon-chimera.h
index b46f75fb93..45cd93daab 100644
--- a/crawl-ref/source/mon-chimera.h
+++ b/crawl-ref/source/mon-chimera.h
@@ -6,7 +6,16 @@
#ifndef MONCHIMERA_H
#define MONCHIMERA_H
-void make_chimera(monster* mon, monster_type part1, monster_type part2, monster_type part3);
+#include "debug.h"
+
+#define ASSERTPART(partnum) \
+ ASSERTM(is_valid_chimera_part(parts[partnum]), \
+ "Invalid chimera part %d: %s", \
+ partnum, mons_class_name(parts[partnum]))
+
+void define_chimera(monster* mon, monster_type parts[]);
+bool define_chimera_for_place(monster *mon, level_id place, monster_type chimera_type, coord_def pos);
+
monster_type get_chimera_part(const monster* mon, int partnum);
monster_type get_chimera_part(const monster_info* mi, int partnum);
monster_type random_chimera_part(const monster* mon);