summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/cloud.h
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-13 12:33:41 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-11-13 12:33:41 +0000
commitf19ffb0cf2b7db6897674d73191525cb54831723 (patch)
treeeb83c1180bd1f6137e4566b45d5d414def477e7d /crawl-ref/source/cloud.h
parent2ce8ccfa9ec7125c1519f2b9efbe1fe25aa5ad48 (diff)
downloadcrawl-ref-f19ffb0cf2b7db6897674d73191525cb54831723.tar.gz
crawl-ref-f19ffb0cf2b7db6897674d73191525cb54831723.zip
The number of traps randomly generated on a level, and which types of
traps are randomly selected, can now easily be controlled on a branch by branch basis (and for Pan and the Abyss), similar to how monster level and rarity is controlled (via function pointers in the Branch data structure). The same can be done for fog machines (though this feature isn't being used as of yet). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2846 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/cloud.h')
-rw-r--r--crawl-ref/source/cloud.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/crawl-ref/source/cloud.h b/crawl-ref/source/cloud.h
index 157aa1932c..0cee66ca0d 100644
--- a/crawl-ref/source/cloud.h
+++ b/crawl-ref/source/cloud.h
@@ -13,6 +13,7 @@
#define CLOUD_H
#include "externs.h"
+#include "travel.h"
enum fog_machine_type
{
@@ -22,6 +23,14 @@ enum fog_machine_type
NUM_FOG_MACHINE_TYPES
};
+struct fog_machine_data
+{
+ fog_machine_type fm_type;
+ cloud_type cl_type;
+ int size;
+ int power;
+};
+
cloud_type random_smoke_type();
void delete_cloud( int cloud );
@@ -40,4 +49,22 @@ int steam_cloud_damage(const cloud_struct &cloud);
void place_fog_machine(fog_machine_type fm_type, cloud_type cl_type,
int x, int y, int size, int power);
+void place_fog_machine(fog_machine_data data, int x, int y);
+
+bool valid_fog_machine_data(fog_machine_data data);
+
+int num_fogs_for_place(int level_number = -1,
+ const level_id &place = level_id::current());
+fog_machine_data random_fog_for_place(int level_number = -1,
+ const level_id &place = level_id::current());
+
+int fogs_pan_number(int level_number = -1);
+fog_machine_data fogs_pan_type(int level_number = -1);
+
+int fogs_abyss_number(int level_number = -1);
+fog_machine_data fogs_abyss_type(int level_number = -1);
+
+int fogs_lab_number(int level_number = -1);
+fog_machine_data fogs_lab_type(int level_number = -1);
+
#endif