Freeciv-3.1: /fast/freeciv/nightly/S3_1/common/terrain.h File Reference

Freeciv-3.1

Loading...
Searching...
No Matches
Data Structures | Macros | Enumerations | Functions
terrain.h File Reference
`#include "bitvector.h"`
`#include "shared.h"`
`#include "fc_types.h"`
`#include "name_translation.h"`
`#include "unittype.h"`
`#include "specenum_gen.h"`

Go to the source code of this file.

## Data Structures

struct | resource_type
struct | terrain

## Macros

#define | RESOURCE_NULL_IDENTIFIER '\0'
#define | RESOURCE_NONE_IDENTIFIER ' '
#define | T_NONE (NULL) /* A special flag meaning no terrain type. */
#define | T_UNKNOWN (NULL) /* An unknown terrain. */
#define | T_FIRST 0
#define | MAX_NUM_TERRAINS (96)
#define | MAX_RESOURCE_TYPES (MAX_NUM_TERRAINS / 2)
#define | SPECENUM_NAME terrain_class
#define | SPECENUM_VALUE0 TC_LAND
#define | SPECENUM_VALUE0NAME N_("Land")
#define | SPECENUM_VALUE1 TC_OCEAN
#define | SPECENUM_VALUE1NAME N_("Oceanic")
#define | SPECENUM_COUNT TC_COUNT
#define | SPECENUM_NAME terrain_alteration
#define | SPECENUM_VALUE0 TA_CAN_IRRIGATE
#define | SPECENUM_VALUE0NAME N_("CanIrrigate")
#define | SPECENUM_VALUE1 TA_CAN_MINE
#define | SPECENUM_VALUE1NAME N_("CanMine")
#define | SPECENUM_VALUE2 TA_CAN_ROAD
#define | SPECENUM_VALUE2NAME N_("CanRoad")
#define | SPECENUM_COUNT TA_COUNT
#define | SPECENUM_NAME terrain_flag_id
#define | SPECENUM_VALUE0 TER_NO_BARBS
#define | SPECENUM_VALUE0NAME N_("NoBarbs")
#define | SPECENUM_VALUE1 TER_NO_CITIES
#define | SPECENUM_VALUE1NAME N_("NoCities")
#define | SPECENUM_VALUE2 TER_STARTER
#define | SPECENUM_VALUE2NAME N_("Starter")
#define | SPECENUM_VALUE3 TER_CAN_HAVE_RIVER
#define | SPECENUM_VALUE3NAME N_("CanHaveRiver")
#define | SPECENUM_VALUE4 TER_UNSAFE_COAST
#define | SPECENUM_VALUE4NAME N_("UnsafeCoast")
#define | SPECENUM_VALUE5 TER_FRESHWATER
#define | SPECENUM_VALUE5NAME N_("FreshWater")
#define | SPECENUM_VALUE6 TER_NOT_GENERATED
#define | SPECENUM_VALUE6NAME N_("NotGenerated")
#define | SPECENUM_VALUE7 TER_NO_ZOC
#define | SPECENUM_VALUE7NAME N_("NoZoc")
#define | SPECENUM_VALUE8 TER_FROZEN
#define | SPECENUM_VALUE8NAME N_("Frozen")
#define | SPECENUM_VALUE9 TER_USER_1
#define | SPECENUM_VALUE10 TER_USER_2
#define | SPECENUM_VALUE11 TER_USER_3
#define | SPECENUM_VALUE12 TER_USER_4
#define | SPECENUM_VALUE13 TER_USER_5
#define | SPECENUM_VALUE14 TER_USER_6
#define | SPECENUM_VALUE15 TER_USER_7
#define | SPECENUM_VALUE16 TER_USER_8
#define | SPECENUM_VALUE17 TER_USER_9
#define | SPECENUM_VALUE18 TER_USER_LAST
#define | SPECENUM_NAMEOVERRIDE
#define | SPECENUM_BITVECTOR bv_terrain_flags
#define | MAX_NUM_USER_TER_FLAGS (TER_USER_LAST - TER_USER_1 + 1)
#define | SPECENUM_NAME mapgen_terrain_property
#define | SPECENUM_VALUE0 MG_MOUNTAINOUS
#define | SPECENUM_VALUE0NAME "mountainous"
#define | SPECENUM_VALUE1 MG_GREEN
#define | SPECENUM_VALUE1NAME "green"
#define | SPECENUM_VALUE2 MG_FOLIAGE
#define | SPECENUM_VALUE2NAME "foliage"
#define | SPECENUM_VALUE3 MG_TROPICAL
#define | SPECENUM_VALUE3NAME "tropical"
#define | SPECENUM_VALUE4 MG_TEMPERATE
#define | SPECENUM_VALUE4NAME "temperate"
#define | SPECENUM_VALUE5 MG_COLD
#define | SPECENUM_VALUE5NAME "cold"
#define | SPECENUM_VALUE6 MG_FROZEN
#define | SPECENUM_VALUE6NAME "frozen"
#define | SPECENUM_VALUE7 MG_WET
#define | SPECENUM_VALUE7NAME "wet"
#define | SPECENUM_VALUE8 MG_DRY
#define | SPECENUM_VALUE8NAME "dry"
#define | SPECENUM_VALUE9 MG_OCEAN_DEPTH
#define | SPECENUM_VALUE9NAME "ocean_depth"
#define | SPECENUM_COUNT MG_COUNT
#define | TERRAIN_UNKNOWN_IDENTIFIER 'u'
#define | TERRAIN_OCEAN_DEPTH_MINIMUM (1)
#define | TERRAIN_OCEAN_DEPTH_MAXIMUM (100)
#define | terrain_has_flag(terr, flag) BV_ISSET((terr)->flags, flag)
#define | is_ocean(pterrain)
#define | is_ocean_tile(ptile) is_ocean(tile_terrain(ptile))
#define | terrain_type_iterate(_p)
#define | terrain_type_iterate_end
#define | terrain_re_active_iterate(_p)
#define | terrain_re_active_iterate_end

## Enumerations

enum | special_river_move { RMV_NORMAL = 0 , RMV_FAST_STRICT = 1 , RMV_FAST_RELAXED = 2 , RMV_FAST_ALWAYS = 3 }

## Functions

Terrain_type_id | terrain_count (void)
Terrain_type_id | terrain_index (const struct terrain *pterrain)
Terrain_type_id | terrain_number (const struct terrain *pterrain)
struct terrain * | terrain_by_number (const Terrain_type_id type)
struct terrain * | terrain_by_identifier (const char identifier)
struct terrain * | terrain_by_rule_name (const char *name)
struct terrain * | terrain_by_translated_name (const char *name)
struct terrain * | rand_terrain_by_flag (enum terrain_flag_id flag)
char | terrain_identifier (const struct terrain *pterrain)
const char * | terrain_rule_name (const struct terrain *pterrain)
const char * | terrain_name_translation (const struct terrain *pterrain)
bool | is_terrain_flag_card_near (const struct civ_map *nmap, const struct tile *ptile, enum terrain_flag_id flag)
bool | is_terrain_flag_near_tile (const struct civ_map *nmap, const struct tile *ptile, enum terrain_flag_id flag)
int | count_terrain_flag_near_tile (const struct civ_map *nmap, const struct tile *ptile, bool cardinal_only, bool percentage, enum terrain_flag_id flag)
void | user_terrain_flags_init (void)
void | user_terrain_flags_free (void)
void | set_user_terrain_flag_name (enum terrain_flag_id id, const char *name, const char *helptxt)
const char * | terrain_flag_helptxt (enum terrain_flag_id id)
bool | terrain_has_resource (const struct terrain *pterrain, const struct extra_type *presource)
bool | is_terrain_card_near (const struct civ_map *nmap, const struct tile *ptile, const struct terrain *pterrain, bool check_self)
bool | is_terrain_near_tile (const struct civ_map *nmap, const struct tile *ptile, const struct terrain *pterrain, bool check_self)
int | count_terrain_property_near_tile (const struct civ_map *nmap, const struct tile *ptile, bool cardinal_only, bool percentage, enum mapgen_terrain_property prop)
bool | is_resource_card_near (const struct civ_map *nmap, const struct tile *ptile, const struct extra_type *pres, bool check_self)
bool | is_resource_near_tile (const struct civ_map *nmap, const struct tile *ptile, const struct extra_type *pres, bool check_self)
struct resource_type * | resource_type_init (struct extra_type *pextra)
void | resource_types_free (void)
struct extra_type * | resource_extra_get (const struct resource_type *presource)
const char * | get_infrastructure_text (bv_extras extras)
struct extra_type * | get_preferred_pillage (bv_extras extras)
int | terrain_extra_build_time (const struct terrain *pterrain, enum unit_activity activity, const struct extra_type *tgt)
int | terrain_extra_removal_time (const struct terrain *pterrain, enum unit_activity activity, const struct extra_type *tgt)
const char * | terrain_class_name_translation (enum terrain_class tclass)
enum terrain_class | terrain_type_terrain_class (const struct terrain *pterrain)
bool | is_terrain_class_card_near (const struct civ_map *nmap, const struct tile *ptile, enum terrain_class tclass)
bool | is_terrain_class_near_tile (const struct civ_map *nmap, const struct tile *ptile, enum terrain_class tclass)
int | count_terrain_class_near_tile (const struct civ_map *nmap, const struct tile *ptile, bool cardinal_only, bool percentage, enum terrain_class tclass)
bool | terrain_can_support_alteration (const struct terrain *pterrain, enum terrain_alteration talter)
void | terrains_init (void)
void | terrains_free (void)
struct terrain * | terrain_array_first (void)
const struct terrain * | terrain_array_last (void)

## Macro Definition Documentation

## ◆ is_ocean

#define is_ocean | ( |  | pterrain | ) |

Value:
((pterrain) != T_UNKNOWN \
&& terrain_type_terrain_class(pterrain) == TC_OCEAN)
T_UNKNOWN
#define T_UNKNOWN
Definition terrain.h:57
terrain_type_terrain_class
enum terrain_class terrain_type_terrain_class(const struct terrain *pterrain)
Definition terrain.c:570

Definition at line 287 of file terrain.h.

## ◆ is_ocean_tile

#define is_ocean_tile | ( |  | ptile | ) | is_ocean(tile_terrain(ptile))

Definition at line 289 of file terrain.h.

## ◆ MAX_NUM_TERRAINS

#define MAX_NUM_TERRAINS (96)

Definition at line 64 of file terrain.h.

## ◆ MAX_NUM_USER_TER_FLAGS

#define MAX_NUM_USER_TER_FLAGS (TER_USER_LAST - TER_USER_1 + 1)

Definition at line 146 of file terrain.h.

## ◆ MAX_RESOURCE_TYPES

#define MAX_RESOURCE_TYPES (MAX_NUM_TERRAINS / 2)

Definition at line 67 of file terrain.h.

## ◆ RESOURCE_NONE_IDENTIFIER

#define RESOURCE_NONE_IDENTIFIER ' '

Definition at line 47 of file terrain.h.

## ◆ RESOURCE_NULL_IDENTIFIER

#define RESOURCE_NULL_IDENTIFIER '\0'

Definition at line 46 of file terrain.h.

## ◆ SPECENUM_BITVECTOR

#define SPECENUM_BITVECTOR bv_terrain_flags

Definition at line 143 of file terrain.h.

## ◆ SPECENUM_COUNT [1/3]

#define SPECENUM_COUNT TC_COUNT

Definition at line 77 of file terrain.h.

## ◆ SPECENUM_COUNT [2/3]

#define SPECENUM_COUNT TA_COUNT

Definition at line 77 of file terrain.h.

## ◆ SPECENUM_COUNT [3/3]

#define SPECENUM_COUNT MG_COUNT

Definition at line 77 of file terrain.h.

## ◆ SPECENUM_NAME [1/4]

#define SPECENUM_NAME terrain_class

Definition at line 70 of file terrain.h.

## ◆ SPECENUM_NAME [2/4]

#define SPECENUM_NAME terrain_alteration

Definition at line 70 of file terrain.h.

## ◆ SPECENUM_NAME [3/4]

#define SPECENUM_NAME terrain_flag_id

Definition at line 70 of file terrain.h.

## ◆ SPECENUM_NAME [4/4]

#define SPECENUM_NAME mapgen_terrain_property

Definition at line 70 of file terrain.h.

## ◆ SPECENUM_NAMEOVERRIDE

#define SPECENUM_NAMEOVERRIDE

Definition at line 142 of file terrain.h.

## ◆ SPECENUM_VALUE0 [1/4]

#define SPECENUM_VALUE0 TC_LAND

Definition at line 71 of file terrain.h.

## ◆ SPECENUM_VALUE0 [2/4]

#define SPECENUM_VALUE0 TA_CAN_IRRIGATE

Definition at line 71 of file terrain.h.

## ◆ SPECENUM_VALUE0 [3/4]

#define SPECENUM_VALUE0 TER_NO_BARBS

Definition at line 71 of file terrain.h.

## ◆ SPECENUM_VALUE0 [4/4]

#define SPECENUM_VALUE0 MG_MOUNTAINOUS

Definition at line 71 of file terrain.h.

## ◆ SPECENUM_VALUE0NAME [1/4]

#define SPECENUM_VALUE0NAME N_("Land")

Definition at line 73 of file terrain.h.

## ◆ SPECENUM_VALUE0NAME [2/4]

#define SPECENUM_VALUE0NAME N_("CanIrrigate")

Definition at line 73 of file terrain.h.

## ◆ SPECENUM_VALUE0NAME [3/4]

#define SPECENUM_VALUE0NAME N_("NoBarbs")

Definition at line 73 of file terrain.h.

## ◆ SPECENUM_VALUE0NAME [4/4]

#define SPECENUM_VALUE0NAME "mountainous"

Definition at line 73 of file terrain.h.

## ◆ SPECENUM_VALUE1 [1/4]

#define SPECENUM_VALUE1 TC_OCEAN

Definition at line 74 of file terrain.h.

## ◆ SPECENUM_VALUE1 [2/4]

#define SPECENUM_VALUE1 TA_CAN_MINE

Definition at line 74 of file terrain.h.

## ◆ SPECENUM_VALUE1 [3/4]

#define SPECENUM_VALUE1 TER_NO_CITIES

Definition at line 74 of file terrain.h.

## ◆ SPECENUM_VALUE1 [4/4]

#define SPECENUM_VALUE1 MG_GREEN

Definition at line 74 of file terrain.h.

## ◆ SPECENUM_VALUE10

#define SPECENUM_VALUE10 TER_USER_2

Definition at line 133 of file terrain.h.

## ◆ SPECENUM_VALUE11

#define SPECENUM_VALUE11 TER_USER_3

Definition at line 134 of file terrain.h.

## ◆ SPECENUM_VALUE12

#define SPECENUM_VALUE12 TER_USER_4

Definition at line 135 of file terrain.h.

## ◆ SPECENUM_VALUE13

#define SPECENUM_VALUE13 TER_USER_5

Definition at line 136 of file terrain.h.

## ◆ SPECENUM_VALUE14

#define SPECENUM_VALUE14 TER_USER_6

Definition at line 137 of file terrain.h.

## ◆ SPECENUM_VALUE15

#define SPECENUM_VALUE15 TER_USER_7

Definition at line 138 of file terrain.h.

## ◆ SPECENUM_VALUE16

#define SPECENUM_VALUE16 TER_USER_8

Definition at line 139 of file terrain.h.

## ◆ SPECENUM_VALUE17

#define SPECENUM_VALUE17 TER_USER_9

Definition at line 140 of file terrain.h.

## ◆ SPECENUM_VALUE18

#define SPECENUM_VALUE18 TER_USER_LAST

Definition at line 141 of file terrain.h.

## ◆ SPECENUM_VALUE1NAME [1/4]

#define SPECENUM_VALUE1NAME N_("Oceanic")

Definition at line 76 of file terrain.h.

## ◆ SPECENUM_VALUE1NAME [2/4]

#define SPECENUM_VALUE1NAME N_("CanMine")

Definition at line 76 of file terrain.h.

## ◆ SPECENUM_VALUE1NAME [3/4]

#define SPECENUM_VALUE1NAME N_("NoCities")

Definition at line 76 of file terrain.h.

## ◆ SPECENUM_VALUE1NAME [4/4]

#define SPECENUM_VALUE1NAME "green"

Definition at line 76 of file terrain.h.

## ◆ SPECENUM_VALUE2 [1/3]

#define SPECENUM_VALUE2 TA_CAN_ROAD

Definition at line 96 of file terrain.h.

## ◆ SPECENUM_VALUE2 [2/3]

#define SPECENUM_VALUE2 TER_STARTER

Definition at line 96 of file terrain.h.

## ◆ SPECENUM_VALUE2 [3/3]

#define SPECENUM_VALUE2 MG_FOLIAGE

Definition at line 96 of file terrain.h.

## ◆ SPECENUM_VALUE2NAME [1/3]

#define SPECENUM_VALUE2NAME N_("CanRoad")

Definition at line 97 of file terrain.h.

## ◆ SPECENUM_VALUE2NAME [2/3]

#define SPECENUM_VALUE2NAME N_("Starter")

Definition at line 97 of file terrain.h.

## ◆ SPECENUM_VALUE2NAME [3/3]

#define SPECENUM_VALUE2NAME "foliage"

Definition at line 97 of file terrain.h.

## ◆ SPECENUM_VALUE3 [1/2]

#define SPECENUM_VALUE3 TER_CAN_HAVE_RIVER

Definition at line 115 of file terrain.h.

## ◆ SPECENUM_VALUE3 [2/2]

#define SPECENUM_VALUE3 MG_TROPICAL

Definition at line 115 of file terrain.h.

## ◆ SPECENUM_VALUE3NAME [1/2]

#define SPECENUM_VALUE3NAME N_("CanHaveRiver")

Definition at line 116 of file terrain.h.

## ◆ SPECENUM_VALUE3NAME [2/2]

#define SPECENUM_VALUE3NAME "tropical"

Definition at line 116 of file terrain.h.

## ◆ SPECENUM_VALUE4 [1/2]

#define SPECENUM_VALUE4 TER_UNSAFE_COAST

Definition at line 118 of file terrain.h.

## ◆ SPECENUM_VALUE4 [2/2]

#define SPECENUM_VALUE4 MG_TEMPERATE

Definition at line 118 of file terrain.h.

## ◆ SPECENUM_VALUE4NAME [1/2]

#define SPECENUM_VALUE4NAME N_("UnsafeCoast")

Definition at line 119 of file terrain.h.

## ◆ SPECENUM_VALUE4NAME [2/2]

#define SPECENUM_VALUE4NAME "temperate"

Definition at line 119 of file terrain.h.

## ◆ SPECENUM_VALUE5 [1/2]

#define SPECENUM_VALUE5 TER_FRESHWATER

Definition at line 121 of file terrain.h.

## ◆ SPECENUM_VALUE5 [2/2]

#define SPECENUM_VALUE5 MG_COLD

Definition at line 121 of file terrain.h.

## ◆ SPECENUM_VALUE5NAME [1/2]

#define SPECENUM_VALUE5NAME N_("FreshWater")

Definition at line 122 of file terrain.h.

## ◆ SPECENUM_VALUE5NAME [2/2]

#define SPECENUM_VALUE5NAME "cold"

Definition at line 122 of file terrain.h.

## ◆ SPECENUM_VALUE6 [1/2]

#define SPECENUM_VALUE6 TER_NOT_GENERATED

Definition at line 124 of file terrain.h.

## ◆ SPECENUM_VALUE6 [2/2]

#define SPECENUM_VALUE6 MG_FROZEN

Definition at line 124 of file terrain.h.

## ◆ SPECENUM_VALUE6NAME [1/2]

#define SPECENUM_VALUE6NAME N_("NotGenerated")

Definition at line 125 of file terrain.h.

## ◆ SPECENUM_VALUE6NAME [2/2]

#define SPECENUM_VALUE6NAME "frozen"

Definition at line 125 of file terrain.h.

## ◆ SPECENUM_VALUE7 [1/2]

#define SPECENUM_VALUE7 TER_NO_ZOC

Definition at line 127 of file terrain.h.

## ◆ SPECENUM_VALUE7 [2/2]

#define SPECENUM_VALUE7 MG_WET

Definition at line 127 of file terrain.h.

## ◆ SPECENUM_VALUE7NAME [1/2]

#define SPECENUM_VALUE7NAME N_("NoZoc")

Definition at line 128 of file terrain.h.

## ◆ SPECENUM_VALUE7NAME [2/2]

#define SPECENUM_VALUE7NAME "wet"

Definition at line 128 of file terrain.h.

## ◆ SPECENUM_VALUE8 [1/2]

#define SPECENUM_VALUE8 TER_FROZEN

Definition at line 130 of file terrain.h.

## ◆ SPECENUM_VALUE8 [2/2]

#define SPECENUM_VALUE8 MG_DRY

Definition at line 130 of file terrain.h.

## ◆ SPECENUM_VALUE8NAME [1/2]

#define SPECENUM_VALUE8NAME N_("Frozen")

Definition at line 131 of file terrain.h.

## ◆ SPECENUM_VALUE8NAME [2/2]

#define SPECENUM_VALUE8NAME "dry"

Definition at line 131 of file terrain.h.

## ◆ SPECENUM_VALUE9 [1/2]

#define SPECENUM_VALUE9 TER_USER_1

Definition at line 132 of file terrain.h.

## ◆ SPECENUM_VALUE9 [2/2]

#define SPECENUM_VALUE9 MG_OCEAN_DEPTH

Definition at line 132 of file terrain.h.

## ◆ SPECENUM_VALUE9NAME

#define SPECENUM_VALUE9NAME "ocean_depth"

Definition at line 168 of file terrain.h.

## ◆ T_FIRST

#define T_FIRST 0

Definition at line 60 of file terrain.h.

## ◆ T_NONE

#define T_NONE (NULL) /* A special flag meaning no terrain type. */

Definition at line 56 of file terrain.h.

## ◆ T_UNKNOWN

#define T_UNKNOWN (NULL) /* An unknown terrain. */

Definition at line 57 of file terrain.h.

## ◆ terrain_has_flag

#define terrain_has_flag | ( |  | terr,
|  |  | flag
| ) |  | BV_ISSET((terr)->flags, flag)

Definition at line 269 of file terrain.h.

## ◆ TERRAIN_OCEAN_DEPTH_MAXIMUM

#define TERRAIN_OCEAN_DEPTH_MAXIMUM (100)

Definition at line 241 of file terrain.h.

## ◆ TERRAIN_OCEAN_DEPTH_MINIMUM

#define TERRAIN_OCEAN_DEPTH_MINIMUM (1)

Definition at line 240 of file terrain.h.

## ◆ terrain_re_active_iterate

#define terrain_re_active_iterate | ( |  | _p | ) |

Value:
terrain_type_iterate(_p) { \
if (!_p->ruledit_disabled) {
terrain_type_iterate
#define terrain_type_iterate(_p)
Definition terrain.h:358

Definition at line 369 of file terrain.h.

## ◆ terrain_re_active_iterate_end

#define terrain_re_active_iterate_end

Value:
} \
} terrain_type_iterate_end;
terrain_type_iterate_end
#define terrain_type_iterate_end
Definition terrain.h:364

Definition at line 373 of file terrain.h.

## ◆ terrain_type_iterate

#define terrain_type_iterate | ( |  | _p | ) |

Value:
{ \
struct terrain *_p = terrain_array_first(); \
if (NULL != _p) { \
for (; _p <= terrain_array_last(); _p++) {
terrain
Definition terrain.h:176
terrain_array_first
struct terrain * terrain_array_first(void)
Definition terrain.c:84
terrain_array_last
const struct terrain * terrain_array_last(void)
Definition terrain.c:95

Definition at line 358 of file terrain.h.

## ◆ terrain_type_iterate_end

#define terrain_type_iterate_end

Value:
} \
} \
}

Definition at line 364 of file terrain.h.

## ◆ TERRAIN_UNKNOWN_IDENTIFIER

#define TERRAIN_UNKNOWN_IDENTIFIER 'u'

Definition at line 188 of file terrain.h.

## Enumeration Type Documentation

## ◆ special_river_move

enum special_river_move

Enumerator
RMV_NORMAL |
RMV_FAST_STRICT |
RMV_FAST_RELAXED |
RMV_FAST_ALWAYS |

Definition at line 34 of file terrain.h.

## Function Documentation

## ◆ count_terrain_class_near_tile()

int count_terrain_class_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | bool | cardinal_only,
|  | bool | percentage,
|  | enum terrain_class | tclass
| ) |  |

Return the number of adjacent tiles that have given terrain class (not including ptile itself).

Definition at line 621 of file terrain.c.

Referenced by can_channel_land(), can_reclaim_ocean(), create_tmap(), island_river_mouth_suitability(), island_river_suitability(), make_fracture_relief(), make_river(), make_rivers(), and river_test_adjacent_ocean().

## ◆ count_terrain_flag_near_tile()

int count_terrain_flag_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | bool | cardinal_only,
|  | bool | percentage,
|  | enum terrain_flag_id | flag
| ) |  |

Return the number of adjacent tiles that have terrain with the given flag (not including ptile itself).

Definition at line 466 of file terrain.c.

Referenced by can_freeze_terrain(), and can_thaw_terrain().

## ◆ count_terrain_property_near_tile()

int count_terrain_property_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | bool | cardinal_only,
|  | bool | percentage,
|  | enum mapgen_terrain_property | prop
| ) |  |

Return the number of adjacent tiles that have the given terrain property.

Definition at line 357 of file terrain.c.

Referenced by make_rivers().

## ◆ get_infrastructure_text()

const char * get_infrastructure_text | ( | bv_extras | extras | ) |

Return a (static) string with extra(s) name(s): eg: "Mine" eg: "Road/Farmland" This only includes "infrastructure", i.e., man-made extras.

Definition at line 496 of file terrain.c.

Referenced by get_unit_info_label_text2(), popup_info_text(), and popup_terrain_info().

## ◆ get_preferred_pillage()

struct extra_type * get_preferred_pillage | ( | bv_extras | extras | ) |

Returns the highest-priority (best) extra to be pillaged from the terrain set. May return NULL if nothing is available.

Definition at line 538 of file terrain.c.

Referenced by is_action_possible(), popup_pillage_dialog(), request_unit_pillage(), and unit_assign_specific_activity_target().

## ◆ is_resource_card_near()

bool is_resource_card_near | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | const struct extra_type * | pres,
|  | bool | check_self
| ) |  |

Returns TRUE iff any cardinally adjacent tile contains the given resource.

Definition at line 383 of file terrain.c.

## ◆ is_resource_near_tile()

bool is_resource_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | const struct extra_type * | pres,
|  | bool | check_self
| ) |  |

Returns TRUE iff any adjacent tile contains the given resource.

Definition at line 404 of file terrain.c.

## ◆ is_terrain_card_near()

bool is_terrain_card_near | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | const struct terrain * | pterrain,
|  | bool | check_self
| ) |  |

Returns TRUE iff any cardinally adjacent tile contains the given terrain.

Definition at line 315 of file terrain.c.

Referenced by is_terrain_req_active().

## ◆ is_terrain_class_card_near()

bool is_terrain_class_card_near | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | enum terrain_class | tclass
| ) |  |

Is there terrain of the given class cardinally near tile? (Does not check ptile itself.)

Definition at line 579 of file terrain.c.

Referenced by fill_island(), and is_terrainclass_req_active().

## ◆ is_terrain_class_near_tile()

bool is_terrain_class_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | enum terrain_class | tclass
| ) |  |

Is there terrain of the given class near tile? (Does not check ptile itself.)

Definition at line 600 of file terrain.c.

Referenced by building_advisor(), city_select_coastal_callback(), city_select_coastal_callback(), contemplate_new_city(), dai_effect_value(), find_best_city_placement(), find_closest_city(), find_something_to_kill(), is_terrain_ecologically_wet(), is_terrainclass_req_active(), naval_bonus(), and city_widget::select_coastal().

## ◆ is_terrain_flag_card_near()

bool is_terrain_flag_card_near | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | enum terrain_flag_id | flag
| ) |  |

Returns TRUE iff any cardinally adjacent tile contains terrain with the given flag (does not check ptile itself).

Definition at line 426 of file terrain.c.

Referenced by is_terrainflag_req_active().

## ◆ is_terrain_flag_near_tile()

bool is_terrain_flag_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | enum terrain_flag_id | flag
| ) |  |

Returns TRUE iff any adjacent tile contains terrain with the given flag (does not check ptile itself).

Definition at line 446 of file terrain.c.

Referenced by is_terrainflag_req_active().

## ◆ is_terrain_near_tile()

bool is_terrain_near_tile | ( | const struct civ_map * | nmap,
|  | const struct tile * | ptile,
|  | const struct terrain * | pterrain,
|  | bool | check_self
| ) |  |

Returns TRUE iff any adjacent tile contains the given terrain.

Definition at line 336 of file terrain.c.

Referenced by evaluate_city_name_priority(), fill_island(), and is_terrain_req_active().

## ◆ rand_terrain_by_flag()

struct terrain * rand_terrain_by_flag | ( | enum terrain_flag_id | flag | ) |

Return terrain having the flag. If several terrains have the flag, random one is returned.

Definition at line 205 of file terrain.c.

## ◆ resource_extra_get()

struct extra_type * resource_extra_get | ( | const struct resource_type * | presource | ) |

Return extra that resource is.

Definition at line 284 of file terrain.c.

## ◆ resource_type_init()

struct resource_type * resource_type_init | ( | struct extra_type * | pextra | ) |

Initialize resource_type structure.

Definition at line 260 of file terrain.c.

Referenced by handle_ruleset_resource(), and load_terrain_names().

## ◆ resource_types_free()

void resource_types_free | ( | void |  | ) |

Free the memory associated with resource types

Definition at line 276 of file terrain.c.

Referenced by extras_free().

## ◆ set_user_terrain_flag_name()

void set_user_terrain_flag_name | ( | enum terrain_flag_id | id,
|  | const char * | name,
|  | const char * | helptxt
| ) |  |

Sets user defined name for terrain flag.

Definition at line 776 of file terrain.c.

Referenced by handle_ruleset_terrain_flag(), load_terrain_names(), and rscompat_names().

## ◆ terrain_array_first()

struct terrain * terrain_array_first | ( | void |  | ) |

Return the first item of terrains.

Definition at line 84 of file terrain.c.

## ◆ terrain_array_last()

const struct terrain * terrain_array_last | ( | void |  | ) |

Return the last item of terrains.

Definition at line 95 of file terrain.c.

## ◆ terrain_by_identifier()

struct terrain * terrain_by_identifier | ( | const char | identifier | ) |

Return the terrain type matching the identifier, or T_UNKNOWN if none matches.

Definition at line 157 of file terrain.c.

## ◆ terrain_by_number()

struct terrain * terrain_by_number | ( | const Terrain_type_id | type | ) |

Return the terrain for the given terrain index.

Definition at line 144 of file terrain.c.

Referenced by tab_terrains::add_now(), api_find_terrain(), editor_tool_get_value_name(), get_tool_value_pixbuf(), handle_edit_tile_terrain(), handle_ruleset_terrain(), handle_tile_info(), load_ruleset_terrain(), mapimg_colortest(), help_widget::terrain_max_values(), universal_by_number(), and universal_value_initial().

## ◆ terrain_by_rule_name()

struct terrain * terrain_by_rule_name | ( | const char * | name | ) |

Return the terrain type matching the name, or T_UNKNOWN if none matches.

Definition at line 174 of file terrain.c.

Referenced by api_find_terrain_by_name(), tab_terrains::initialize_new_terrain(), load_city_name_list(), lookup_terrain(), tab_terrains::select_terrain(), sg_load_savefile(), sg_load_savefile(), fc_client::slot_selection_changed(), and universal_value_from_str().

## ◆ terrain_by_translated_name()

struct terrain * terrain_by_translated_name | ( | const char * | name | ) |

Return the terrain type matching the name, or T_UNKNOWN if none matches.

Definition at line 190 of file terrain.c.

Referenced by help_update_terrain(), help_dialog::make_tree(), and help_widget::set_topic_terrain().

## ◆ terrain_can_support_alteration()

bool terrain_can_support_alteration | ( | const struct terrain * | pterrain,
|  | enum terrain_alteration | alter
| ) |  |

Can terrain support given infrastructure?

Definition at line 661 of file terrain.c.

Referenced by is_terrainalter_req_active(), and terrain_type_found().

## ◆ terrain_class_name_translation()

const char * terrain_class_name_translation | ( | enum terrain_class | tclass | ) |

Return the (translated) name of the given terrain class. You don't have to free the return pointer.

Definition at line 649 of file terrain.c.

Referenced by req_text_insert(), and universal_name_translation().

## ◆ terrain_count()

Terrain_type_id terrain_count | ( | void |  | ) |

Return the number of terrains.

Definition at line 106 of file terrain.c.

Referenced by fill_tile_edit_packet(), handle_ruleset_control(), mapimg_colortest(), pick_terrain_by_flag(), print_mapgen_map(), receive_packet_ruleset_control_100(), receive_packet_ruleset_control_101(), send_ruleset_terrain(), send_tile_info(), and help_widget::terrain_max_values().

## ◆ terrain_extra_build_time()

int terrain_extra_build_time | ( | const struct terrain * | pterrain,
|  | enum unit_activity | activity,
|  | const struct extra_type * | tgt
| ) |  |

Time to complete the extra building activity on the given terrain.

Definition at line 682 of file terrain.c.

Referenced by adv_settlers_road_bonus(), check_recursive_road_connect(), helptext_extra(), helptext_extra_for_terrain_str(), manual_command(), and tile_activity_time().

## ◆ terrain_extra_removal_time()

int terrain_extra_removal_time | ( | const struct terrain * | pterrain,
|  | enum unit_activity | activity,
|  | const struct extra_type * | tgt
| ) |  |

Time to complete the extra removal activity on the given terrain.

Definition at line 718 of file terrain.c.

Referenced by tile_activity_time().

## ◆ terrain_flag_helptxt()

const char * terrain_flag_helptxt | ( | enum terrain_flag_id | id | ) |

Return the (untranslated) helptxt of the user terrain flag.

Definition at line 817 of file terrain.c.

Referenced by helptext_terrain(), save_terrain_ruleset(), and send_ruleset_terrain().

## ◆ terrain_has_resource()

bool terrain_has_resource | ( | const struct terrain * | pterrain,
|  | const struct extra_type * | presource
| ) |  |

Check for resource in terrain resources list.

Definition at line 243 of file terrain.c.

Referenced by edit_tile_extra_handling(), is_native_tile_to_extra(), sg_load_map_tiles_extras(), sg_load_map_tiles_resources(), sg_load_player_vision(), tile_set_resource(), and tile_set_terrain().

## ◆ terrain_identifier()

char terrain_identifier | ( | const struct terrain * | pterrain | ) |

Return the terrain identifier.

Definition at line 114 of file terrain.c.

Referenced by compat_load_020600(), and sg_save_savefile().

## ◆ terrain_index()

Terrain_type_id terrain_index | ( | const struct terrain * | pterrain | ) |

Return the terrain index.

Currently same as terrain_number(), paired with terrain_count() indicates use as an array index.

Definition at line 126 of file terrain.c.

Referenced by fill_basic_terrain_layer_sprite_array(), fill_terrain_sprite_blending(), fill_terrain_sprite_layer(), load_ruleset_terrain(), load_terrain_names(), lookup_terrain(), nation_city_set_terrain_preference(), nation_city_terrain_preference(), pick_terrain_by_flag(), print_mapgen_map(), tab_terrains::refresh(), and tileset_setup_tile_type().

## ◆ terrain_name_translation()

const char * terrain_name_translation | ( | const struct terrain * | pterrain | ) |

Return the (translated) name of the terrain. You don't have to free the return pointer.

Definition at line 226 of file terrain.c.

Referenced by api_methods_terrain_name_translation(), boot_help_texts(), do_paradrop(), editbar_reload_tileset(), editor_tool_get_value_name(), explain_why_no_action_enabled(), help_update_terrain(), helptext_extra(), illegal_action_msg(), insert_generated_text(), manual_command(), objbind_get_value_from_object(), real_menus_update(), remove_city(), req_text_insert(), help_widget::set_topic_terrain(), terrain_by_translated_name(), tile_get_info_text(), universal_name_translation(), and worklist_item_postpone_req_vec().

## ◆ terrain_number()

Terrain_type_id terrain_number | ( | const struct terrain * | pterrain | ) |

Return the terrain index.

Definition at line 135 of file terrain.c.

Referenced by editbar_reload_tileset(), editor_grab_tool(), fill_tile_edit_packet(), paste_tile(), send_ruleset_terrain(), send_tile_info(), tile_set_terrain(), and universal_number().

## ◆ terrain_rule_name()

const char * terrain_rule_name | ( | const struct terrain * | pterrain | ) |

Return the (untranslated) rule name of the terrain. You don't have to free the return pointer.

Definition at line 235 of file terrain.c.

Referenced by api_methods_terrain_rule_name(), boot_help_texts(), compat_load_020600(), tab_terrains::delete_now(), tab_terrains::edit_effects(), edit_terrain::edit_terrain(), fill_island(), handle_ruleset_terrain(), insert_generated_text(), is_terrain_needed(), is_utype_needed(), manual_command(), tab_terrains::name_given(), print_mapgen_map(), tab_terrains::refresh(), regenerate_lakes(), sanity_check_ruleset_data(), save_nation(), save_terrain_ref(), sg_load_players(), sg_load_players(), sg_load_sanitycheck(), sg_load_sanitycheck(), sg_load_savefile(), sg_load_savefile(), sg_save_savefile(), smooth_water_depth(), terrain_by_rule_name(), tile_set_terrain(), tileset_setup_tile_type(), universal_kind_values(), universal_rule_name(), and tab_terrains::update_terrain_info().

## ◆ terrain_type_terrain_class()

enum terrain_class terrain_type_terrain_class | ( | const struct terrain * | pterrain | ) |

What terrain class terrain type belongs to.

Definition at line 570 of file terrain.c.

Referenced by api_methods_terrain_class_name(), assign_continent_flood(), assign_continent_numbers(), count_terrain_class_near_tile(), fill_road_sprite_array(), fill_sprite_array(), helptext_terrain(), is_terrain_class_card_near(), is_terrain_class_near_tile(), is_terrainclass_req_active(), most_adjacent_ocean_type(), pick_ocean(), real_distance_to_land(), recalculate_lake_surrounders(), regenerate_lakes(), smooth_water_depth(), and terrain_type_found().

## ◆ terrains_free()

void terrains_free | ( | void |  | ) |

Free memory which is associated with terrain types.

Definition at line 59 of file terrain.c.

Referenced by game_ruleset_free().

## ◆ terrains_init()

void terrains_init | ( | void |  | ) |

Initialize terrain and resource structures.

Definition at line 42 of file terrain.c.

Referenced by game_ruleset_init().

## ◆ user_terrain_flags_free()

void user_terrain_flags_free | ( | void |  | ) |

Frees the memory associated with all user terrain flags

Definition at line 764 of file terrain.c.

Referenced by game_ruleset_free().

## ◆ user_terrain_flags_init()

void user_terrain_flags_init | ( | void |  | ) |

Initialize user terrain type flags.

Definition at line 752 of file terrain.c.

Referenced by game_ruleset_init().