summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/cloud.h
diff options
context:
space:
mode:
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