← Back to team overview

widelands-dev team mailing list archive

Re: [Merge] lp:~widelands-dev/widelands/terrain_doc into lp:widelands

 


Diff comments:

> === modified file 'src/ai/ai_help_structs.h'
> --- src/ai/ai_help_structs.h	2015-02-05 12:11:20 +0000
> +++ src/ai/ai_help_structs.h	2015-02-16 13:12:39 +0000
> @@ -147,8 +147,8 @@
>  
>  	bool accept(const Map& /* map */, const FCoords& coord) const {
>  		return (world_.terrain_descr(coord.field->terrain_d()).get_is() &
> -		        TerrainDescription::WATER) ||
> -		       (world_.terrain_descr(coord.field->terrain_r()).get_is() & TerrainDescription::WATER);
> +				  TerrainDescription::Type::kWater) ||
> +				 (world_.terrain_descr(coord.field->terrain_r()).get_is() & TerrainDescription::Type::kWater);
>  	}
>  
>  private:
> 
> === modified file 'src/editor/tools/editor_increase_resources_tool.cc'
> --- src/editor/tools/editor_increase_resources_tool.cc	2014-12-01 21:47:22 +0000
> +++ src/editor/tools/editor_increase_resources_tool.cc	2015-02-16 13:12:39 +0000
> @@ -37,7 +37,7 @@
>  	if (!terrain.is_resource_valid(resource)) {
>  		return -1;
>  	}
> -	if (terrain.get_is() & Widelands::TerrainDescription::UNPASSABLE) {
> +	if (terrain.get_is() & Widelands::TerrainDescription::Type::kUnpassable) {
>  		return 8;
>  	}
>  	return 1;
> 
> === modified file 'src/editor/tools/editor_info_tool.cc'
> --- src/editor/tools/editor_info_tool.cc	2015-01-30 23:10:35 +0000
> +++ src/editor/tools/editor_info_tool.cc	2015-02-16 13:12:39 +0000
> @@ -104,22 +104,22 @@
>  	Widelands::TerrainDescription::Type terrain_is = ter.get_is();
>  	std::vector<std::string> terrain_is_strings;
>  
> -	if (terrain_is == Widelands::TerrainDescription::Type::GREEN) {
> +	if (terrain_is == Widelands::TerrainDescription::Type::kGreen) {
>  		terrain_is_strings.push_back(_("arable"));
>  	}
> -	if (terrain_is & Widelands::TerrainDescription::Type::DRY) {
> +	if (terrain_is & Widelands::TerrainDescription::Type::kDry) {
>  		terrain_is_strings.push_back(_("treeless"));
>  	}
> -	if (terrain_is & Widelands::TerrainDescription::Type::WATER) {
> +	if (terrain_is & Widelands::TerrainDescription::Type::kWater) {
>  		terrain_is_strings.push_back(_("aquatic"));
>  	}
> -	if (terrain_is & Widelands::TerrainDescription::Type::ACID) {
> +	if (terrain_is & Widelands::TerrainDescription::Type::kDead) {
>  		terrain_is_strings.push_back(_("dead"));
>  	}
> -	if (terrain_is & Widelands::TerrainDescription::Type::MOUNTAIN) {
> +	if (terrain_is & Widelands::TerrainDescription::Type::kMountain) {
>  		terrain_is_strings.push_back(_("mountainous"));
>  	}
> -	if (terrain_is & Widelands::TerrainDescription::Type::UNPASSABLE) {
> +	if (terrain_is & Widelands::TerrainDescription::Type::kUnpassable) {
>  		terrain_is_strings.push_back(_("unpassable"));
>  	}
>  	buf += "• " + (boost::format(_("Category: %s"))
> 
> === modified file 'src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc'
> --- src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc	2015-01-30 23:10:35 +0000
> +++ src/editor/ui_menus/editor_tool_set_terrain_options_menu.cc	2015-02-16 13:12:39 +0000
> @@ -43,13 +43,13 @@
>  using namespace Widelands;
>  
>  static const int32_t check[] = {
> -	TerrainDescription::GREEN,                                 //  "green"
> -	TerrainDescription::DRY,                                   //  "dry"
> -	TerrainDescription::DRY | TerrainDescription::MOUNTAIN,    //  "mountain"
> -	TerrainDescription::DRY | TerrainDescription::UNPASSABLE,  //  "unpassable"
> -	TerrainDescription::ACID | TerrainDescription::DRY |
> -		TerrainDescription::UNPASSABLE,  //  "dead" or "acid"
> -	TerrainDescription::UNPASSABLE | TerrainDescription::DRY | TerrainDescription::WATER,
> +	TerrainDescription::Type::kGreen,                                 //  "green"
> +	TerrainDescription::Type::kDry,                                   //  "dry"
> +	TerrainDescription::Type::kDry | TerrainDescription::Type::kMountain,    //  "mountain"
> +	TerrainDescription::Type::kDry | TerrainDescription::Type::kUnpassable,  //  "unpassable"
> +	TerrainDescription::Type::kDead | TerrainDescription::Type::kDry |
> +		TerrainDescription::Type::kUnpassable,  //  "dead"
> +	TerrainDescription::Type::kUnpassable | TerrainDescription::Type::kDry | TerrainDescription::Type::kWater,
>  	-1,  // end marker
>  };
>  
> @@ -82,7 +82,7 @@
>  		              BlendMode::UseAlpha, texture);
>  		Point pt(1, terrain_texture.height() - kSmallPicHeight - 1);
>  
> -		if (ter_is == TerrainDescription::GREEN) {
> +		if (ter_is == TerrainDescription::Type::kGreen) {
>  			blit(Rect(pt.x, pt.y, green->width(), green->height()),
>  			     *green,
>  			     Rect(0, 0, green->width(), green->height()),
> @@ -93,7 +93,7 @@
>  			/** TRANSLATORS: This is a terrain type tooltip in the editor */
>  			tooltips.push_back(_("arable"));
>  		} else {
> -			if (ter_is & TerrainDescription::WATER) {
> +			if (ter_is & TerrainDescription::Type::kWater) {
>  				blit(Rect(pt.x, pt.y, water->width(), water->height()),
>  				     *water,
>  				     Rect(0, 0, water->width(), water->height()),
> @@ -104,7 +104,7 @@
>  				/** TRANSLATORS: This is a terrain type tooltip in the editor */
>  				tooltips.push_back(_("aquatic"));
>  			}
> -			else if (ter_is & TerrainDescription::MOUNTAIN) {
> +			else if (ter_is & TerrainDescription::Type::kMountain) {
>  				blit(Rect(pt.x, pt.y, mountain->width(), mountain->height()),
>  				     *mountain,
>  				     Rect(0, 0, mountain->width(), mountain->height()),
> @@ -115,7 +115,7 @@
>  				/** TRANSLATORS: This is a terrain type tooltip in the editor */
>  				tooltips.push_back(_("mountainous"));
>  			}
> -			if (ter_is & TerrainDescription::ACID) {
> +			if (ter_is & TerrainDescription::Type::kDead) {
>  				blit(Rect(pt.x, pt.y, dead->width(), dead->height()),
>  				     *dead,
>  				     Rect(0, 0, dead->width(), dead->height()),
> @@ -126,7 +126,7 @@
>  				/** TRANSLATORS: This is a terrain type tooltip in the editor */
>  				tooltips.push_back(_("dead"));
>  			}
> -			if (ter_is & TerrainDescription::UNPASSABLE) {
> +			if (ter_is & TerrainDescription::Type::kUnpassable) {
>  				blit(Rect(pt.x, pt.y, unpassable->width(), unpassable->height()),
>  				     *unpassable,
>  				     Rect(0, 0, unpassable->width(), unpassable->height()),
> @@ -137,7 +137,7 @@
>  				/** TRANSLATORS: This is a terrain type tooltip in the editor */
>  				tooltips.push_back(_("unpassable"));
>  			}
> -			if (ter_is & TerrainDescription::DRY) {
> +			if (ter_is & TerrainDescription::Type::kDry) {
>  				blit(Rect(pt.x, pt.y, dry->width(), dry->height()),
>  				     *dry,
>  				     Rect(0, 0, dry->width(), dry->height()),
> 
> === modified file 'src/logic/map.cc'
> --- src/logic/map.cc	2015-02-12 07:55:25 +0000
> +++ src/logic/map.cc	2015-02-16 13:12:39 +0000
> @@ -215,7 +215,7 @@
>  				const TerrainDescription& terr = world.terrain_descr(f1.field->terrain_r());
>  				const int8_t resr = terr.get_default_resource();
>  				const int default_amount = terr.get_default_resource_amount();
> -				if ((terr.get_is() & TerrainDescription::UNPASSABLE) && default_amount > 0)
> +				if ((terr.get_is() & TerrainDescription::Type::kUnpassable) && default_amount > 0)
>  					m[resr] += 3;
>  				else
>  					++m[resr];
> @@ -225,7 +225,7 @@
>  				const TerrainDescription& terd = world.terrain_descr(f1.field->terrain_d());
>  				const int8_t resd = terd.get_default_resource();
>  				const int default_amount = terd.get_default_resource_amount();
> -				if ((terd.get_is() & TerrainDescription::UNPASSABLE) && default_amount > 0)
> +				if ((terd.get_is() & TerrainDescription::Type::kUnpassable) && default_amount > 0)
>  					m[resd] += 3;
>  				else
>  					++m[resd];
> @@ -238,7 +238,7 @@
>  				const TerrainDescription& terd = world.terrain_descr(f1.field->terrain_d());
>  				const int8_t resd = terd.get_default_resource();
>  				const int default_amount = terd.get_default_resource_amount();
> -				if ((terd.get_is() & TerrainDescription::UNPASSABLE) && default_amount > 0)
> +				if ((terd.get_is() & TerrainDescription::Type::kUnpassable) && default_amount > 0)
>  					m[resd] += 3;
>  				else
>  					++m[resd];
> @@ -251,7 +251,7 @@
>  				const TerrainDescription& terr = world.terrain_descr(f1.field->terrain_r());
>  				const int8_t resr = terr.get_default_resource();
>  				const int default_amount = terr.get_default_resource_amount();
> -				if ((terr.get_is() & TerrainDescription::UNPASSABLE) && default_amount > 0)
> +				if ((terr.get_is() & TerrainDescription::Type::kUnpassable) && default_amount > 0)
>  					m[resr] += 3;
>  				else
>  					++m[resr];
> @@ -1037,28 +1037,28 @@
>  	//  1b) Collect some information about the neighbours
>  	uint8_t cnt_unpassable = 0;
>  	uint8_t cnt_water = 0;
> -	uint8_t cnt_acid = 0;
> -
> -	if  (tr_d_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -	if  (tl_r_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -	if  (tl_d_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -	if   (l_r_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -	if   (f_d_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -	if   (f_r_terrain_is & TerrainDescription::UNPASSABLE) ++cnt_unpassable;
> -
> -	if  (tr_d_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -	if  (tl_r_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -	if  (tl_d_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -	if   (l_r_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -	if   (f_d_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -	if   (f_r_terrain_is & TerrainDescription::WATER)      ++cnt_water;
> -
> -	if  (tr_d_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> -	if  (tl_r_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> -	if  (tl_d_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> -	if   (l_r_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> -	if   (f_d_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> -	if   (f_r_terrain_is & TerrainDescription::ACID)       ++cnt_acid;
> +	uint8_t cnt_dead = 0;
> +
> +	if  (tr_d_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +	if  (tl_r_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +	if  (tl_d_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +	if   (l_r_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +	if   (f_d_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +	if   (f_r_terrain_is & TerrainDescription::Type::kUnpassable) ++cnt_unpassable;
> +
> +	if  (tr_d_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +	if  (tl_r_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +	if  (tl_d_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +	if   (l_r_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +	if   (f_d_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +	if   (f_r_terrain_is & TerrainDescription::Type::kWater)      ++cnt_water;
> +
> +	if  (tr_d_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
> +	if  (tl_r_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
> +	if  (tl_d_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
> +	if   (l_r_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
> +	if   (f_d_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
> +	if   (f_r_terrain_is & TerrainDescription::Type::kDead)       ++cnt_dead;
>  
>  
>  	//  2) Passability
> @@ -1075,7 +1075,7 @@
>  
>  	// 2c) [OVERRIDE] If any of the neighbouring triangles is really "bad" (such
>  	// as lava), we can neither walk nor swim to this node.
> -	if (cnt_acid)
> +	if (cnt_dead)
>  		caps &= ~(MOVECAPS_WALK | MOVECAPS_SWIM);
>  
>  	//  === everything below is used to check buildability ===
> @@ -1265,10 +1265,10 @@
>  	uint32_t cnt_mountain = 0;
>  	uint32_t cnt_dry = 0;
>  	for (uint32_t i = 0; i < 6; ++i) {
> -		if (terrains[i] & TerrainDescription::WATER)
> +		if (terrains[i] & TerrainDescription::Type::kWater)
>  			return BaseImmovable::NONE;
> -		if (terrains[i] & TerrainDescription::MOUNTAIN) ++cnt_mountain;
> -		if (terrains[i] & TerrainDescription::DRY) ++cnt_dry;
> +		if (terrains[i] & TerrainDescription::Type::kMountain) ++cnt_mountain;
> +		if (terrains[i] & TerrainDescription::Type::kDry) ++cnt_dry;
>  	}
>  
>  	if (cnt_mountain == 6) {
> 
> === modified file 'src/logic/worker.cc'
> --- src/logic/worker.cc	2015-01-15 15:33:52 +0000
> +++ src/logic/worker.cc	2015-02-16 13:12:39 +0000
> @@ -2708,11 +2708,11 @@
>  			bool is_center_mountain =
>  				(world.terrain_descr(owner_area.field->terrain_d()).get_is()
>  				 &
> -				 TerrainDescription::MOUNTAIN)
> +				 TerrainDescription::Type::kMountain)
>  				|
>  				(world.terrain_descr(owner_area.field->terrain_r()).get_is()
>  				 &
> -				 TerrainDescription::MOUNTAIN);
> +				 TerrainDescription::Type::kMountain);
>  			// Only run towards fields that are on a mountain (or not)
>  			// depending on position of center
>  			bool is_target_mountain;
> @@ -2725,11 +2725,11 @@
>  				is_target_mountain =
>  					(world.terrain_descr(target.field->terrain_d()).get_is()
>  					 &
> -					 TerrainDescription::MOUNTAIN)
> +					 TerrainDescription::Type::kMountain)
>  					|
>  					(world.terrain_descr(target.field->terrain_r()).get_is()
>  					 &
> -					 TerrainDescription::MOUNTAIN);
> +					 TerrainDescription::Type::kMountain);
>  				if (i == 0)
>  					i = list.size();
>  				--i;
> 
> === modified file 'src/logic/world/terrain_description.cc'
> --- src/logic/world/terrain_description.cc	2015-01-31 16:03:59 +0000
> +++ src/logic/world/terrain_description.cc	2015-02-16 13:12:39 +0000
> @@ -39,30 +39,28 @@
>  // Parse a terrain type from the giving string.
>  TerrainDescription::Type terrain_type_from_string(const std::string& type) {
>  	if (type == "green") {
> -		return TerrainDescription::GREEN;
> +		return TerrainDescription::Type::kGreen;
>  	}
>  	if (type == "dry") {
> -		return TerrainDescription::DRY;
> +		return TerrainDescription::Type::kDry;
>  	}
>  	if (type == "water") {
> -		return static_cast<TerrainDescription::Type>(
> -		   TerrainDescription::WATER | TerrainDescription::DRY | TerrainDescription::UNPASSABLE);
> +		return static_cast<TerrainDescription::Type>(TerrainDescription::Type::kWater |
> +																	TerrainDescription::Type::kDry |
> +																	TerrainDescription::Type::kUnpassable);
>  	}
> -	if (type == "acid") {
> -		return static_cast<TerrainDescription::Type>(
> -		   TerrainDescription::ACID | TerrainDescription::DRY | TerrainDescription::UNPASSABLE);
> +	if (type == "dead") {
> +		return static_cast<TerrainDescription::Type>(TerrainDescription::Type::kDead |
> +																	TerrainDescription::Type::kDry |
> +																	TerrainDescription::Type::kUnpassable);
>  	}
>  	if (type == "mountain") {
> -		return static_cast<TerrainDescription::Type>(TerrainDescription::DRY |
> -		                                             TerrainDescription::MOUNTAIN);
> -	}
> -	if (type == "dead") {
> -		return static_cast<TerrainDescription::Type>(
> -		   TerrainDescription::DRY | TerrainDescription::UNPASSABLE | TerrainDescription::ACID);
> +		return static_cast<TerrainDescription::Type>(TerrainDescription::Type::kDry |
> +																	TerrainDescription::Type::kMountain);
>  	}
>  	if (type == "unpassable") {
> -		return static_cast<TerrainDescription::Type>(TerrainDescription::DRY |
> -		                                             TerrainDescription::UNPASSABLE);
> +		return static_cast<TerrainDescription::Type>(TerrainDescription::Type::kDry |
> +																	TerrainDescription::Type::kUnpassable);
>  	}
>  	throw LuaError((boost::format("invalid terrain type '%s'") % type).str());
>  }
> 
> === modified file 'src/logic/world/terrain_description.h'
> --- src/logic/world/terrain_description.h	2014-11-28 05:40:53 +0000
> +++ src/logic/world/terrain_description.h	2015-02-16 13:12:39 +0000
> @@ -43,12 +43,12 @@
>  class TerrainDescription {
>  public:
>  	enum Type {
> -		GREEN = 0,
> -		DRY = 1,
> -		WATER =  2,
> -		ACID = 4,
> -		MOUNTAIN = 8,
> -		UNPASSABLE = 16,
> +		kGreen = 0,
> +		kDry = 1,
> +		kWater =  2,
> +		kDead = 4,
> +		kMountain = 8,
> +		kUnpassable = 16,
>  	};
>  
>  	TerrainDescription(const LuaTable& table, const World&);
> 
> === modified file 'world/terrains/init.lua'
> --- world/terrains/init.lua	2015-01-30 10:16:22 +0000
> +++ world/terrains/init.lua	2015-02-16 13:12:39 +0000
> @@ -38,6 +38,16 @@
>     -- Type of terrain. Describes if the terrain is walkable, swimmable, if
>     -- mines or buildings can be build on it, if flags can be build on it and so
>     -- on.
> +   --
> +   -- The following properties are available:
> +   -- "green": Allows building of normal buildings and roads
> +   -- "mountain": Allows building of mines and roads
> +   -- "dry": Allows building of roads only. Trees don't like this terrain.

No, trees are spreading using terrain affinity. There is a bug about removing the tree cycle though, so in the future they might not spread anymore. Terrain affinity for dry should be bad for all trees though, so this should not be an issue.

The second sentence is a good enough approximation of the reality, imho.

> +   -- "water": Nothing can be built here, but ships and aquatic animals can pass
> +   -- "dead": Nothing can be built here, and nothing can walk on it, and nothing will grow.
> +   -- "unpassable": Nothing can be built here, and nothing can walk on it
> +   --
> +   -- Note that "is" also has implications for trees' terrain affinity.

"is" has no implication on the trees terrain affinity, I checked just now.

>     is = "green",
>  
>     -- The list resources that can be found in this terrain.
> @@ -267,7 +277,7 @@
>     name = "lava",
>     descname = _ "Lava",
>     editor_category = "green",
> -   is = "acid",
> +   is = "dead",
>     valid_resources = {},
>     default_resource = "",
>     default_resource_amount = 0,
> @@ -482,7 +492,7 @@
>     name = "lava-stone1",
>     descname = _ "Lava Rocks",
>     editor_category = "wasteland",
> -   is = "acid",
> +   is = "dead",
>     valid_resources = {},
>     default_resource = "",
>     default_resource_amount = 0,
> @@ -498,7 +508,7 @@
>     name = "lava-stone2",
>     descname = _ "Lava Rocks",
>     editor_category = "wasteland",
> -   is = "acid",
> +   is = "dead",
>     valid_resources = {},
>     default_resource = "",
>     default_resource_amount = 0,
> 


-- 
https://code.launchpad.net/~widelands-dev/widelands/terrain_doc/+merge/249747
Your team Widelands Developers is subscribed to branch lp:~widelands-dev/widelands/terrain_doc.


References