summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/terrain.h
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-15 23:33:50 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-15 23:33:50 +0000
commitfa763ba1bc7285247a5b1438d59633383a80cf6c (patch)
treef4b632fea66f43dc6c1415fdaa4feead0b6ff90d /crawl-ref/source/terrain.h
parent4d88632cb99d368956dec86732f7d275ffb941e8 (diff)
downloadcrawl-ref-fa763ba1bc7285247a5b1438d59633383a80cf6c.tar.gz
crawl-ref-fa763ba1bc7285247a5b1438d59633383a80cf6c.zip
Split off portions of externs.h and enum.h into other files. The
crawl_environment, player and monsters classes have been left in externs.h, which necessitates that all of the enums references by those classes stay in enums.h, since you can't forward declare an enum. However, it's a start. Also, portions of misc.{cc,h} have been split off into traps.{cc,h}, place.{cc,h} and terrain.{cc,h} git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2095 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/terrain.h')
-rw-r--r--crawl-ref/source/terrain.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/crawl-ref/source/terrain.h b/crawl-ref/source/terrain.h
new file mode 100644
index 0000000000..d4acdb743c
--- /dev/null
+++ b/crawl-ref/source/terrain.h
@@ -0,0 +1,57 @@
+/*
+ * File: terrain.h
+ * Summary: Terrain related functions.
+ * Written by: Linley Henzell
+ *
+ * Modified for Crawl Reference by $Author: j-p-e-g $ on $Date: 2007-09-03 06:41:30 -0700 (Mon, 03 Sep 2007) $
+ *
+ * Change History (most recent first):
+ *
+ * <1> 9/11/07 MPC Split from misc.h
+ */
+
+#ifndef TERRAIN_H
+#define TERRAIN_H
+
+#include "enum.h"
+
+class coord_def;
+
+// last updated 12may2000 {dlb}
+/* ***********************************************************************
+ * called from: acr
+ * *********************************************************************** */
+bool fall_into_a_pool( int entry_x, int entry_y, bool allow_shift,
+ unsigned char terrain );
+
+
+bool grid_is_wall(dungeon_feature_type grid);
+bool grid_is_opaque(dungeon_feature_type grid);
+bool grid_is_solid(dungeon_feature_type grid);
+bool grid_is_stone_stair(dungeon_feature_type grid);
+bool grid_is_rock_stair(dungeon_feature_type grid);
+bool grid_is_solid(int x, int y);
+bool grid_is_solid(const coord_def &c);
+bool grid_is_trap(dungeon_feature_type grid);
+command_type grid_stair_direction(dungeon_feature_type grid);
+bool grid_sealable_portal(dungeon_feature_type grid);
+bool grid_is_portal(dungeon_feature_type grid);
+
+bool grid_is_water(dungeon_feature_type grid);
+bool grid_is_watery(dungeon_feature_type grid);
+god_type grid_altar_god( dungeon_feature_type grid );
+dungeon_feature_type altar_for_god( god_type god );
+bool grid_is_branch_stairs( dungeon_feature_type grid );
+int grid_secret_door_appearance( int gx, int gy );
+bool grid_destroys_items( dungeon_feature_type grid );
+
+const char *grid_item_destruction_message( dungeon_feature_type grid );
+
+// Terrain changed under 'pos', perform necessary effects.
+void dungeon_terrain_changed(const coord_def &pos,
+ dungeon_feature_type feat = DNGN_UNSEEN,
+ bool affect_player = true,
+ bool preserve_features = false,
+ bool preserve_items = false);
+
+#endif