/* * File: terrain.h * Summary: Terrain related functions. * Written by: Linley Henzell * * Modified for Crawl Reference by $Author$ on $Date$ */ #ifndef TERRAIN_H #define TERRAIN_H #include "enum.h" struct coord_def; // last updated 12may2000 {dlb} /* *********************************************************************** * called from: acr * *********************************************************************** */ bool fall_into_a_pool( const coord_def& entry, 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_solid(int x, int y); bool grid_is_solid(const coord_def &c); bool grid_is_rock(dungeon_feature_type grid); bool grid_is_permarock(dungeon_feature_type grid); bool grid_is_stone_stair(dungeon_feature_type grid); bool grid_is_escape_hatch(dungeon_feature_type grid); bool grid_is_trap(dungeon_feature_type grid, bool undiscovered_too = false); 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 ); void find_connected_identical(coord_def d, dungeon_feature_type ft, std::set& out); void find_connected_range(coord_def d, dungeon_feature_type ft_min, dungeon_feature_type ft_max, std::set& out); void get_door_description(int door_size, const char** adjective, const char** noun); dungeon_feature_type grid_secret_door_appearance(const coord_def &where); dungeon_feature_type grid_appearance(const coord_def &gc); dungeon_feature_type grid_appearance(feature_grid &gr, const coord_def &gc); unsigned int show_appearance(const coord_def &ep); 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); bool is_critical_feature(dungeon_feature_type feat); void init_feat_desc_cache(); dungeon_feature_type feat_by_desc(std::string desc); #endif