(svn r15340) -Fix [FS#2121]: changing town road layout in-game caused ugly road networks

-Fix: use a flag instead of TL_NO_ROADS to forbid towns to build roads. The flag is ignored during world generation, so there won't be 'ghost' towns anymore
-Feature: town layout is now stored per town, so it is possible to (manually) set different layout for each town
This commit is contained in:
smatz
2009-02-04 20:17:25 +00:00
parent 646a5449ef
commit 3a8d57816a
13 changed files with 85 additions and 118 deletions

View File

@@ -65,8 +65,8 @@ enum {
* Town Layouts
*/
enum TownLayout {
TL_NO_ROADS = 0, ///< Build no more roads, but still build houses
TL_ORIGINAL, ///< Original algorithm (min. 1 distance between roads)
TL_BEGIN = 0,
TL_ORIGINAL = 0, ///< Original algorithm (min. 1 distance between roads)
TL_BETTER_ROADS, ///< Extended original algorithm (min. 2 distance between roads)
TL_2X2_GRID, ///< Geometric 2x2 grid algorithm
TL_3X3_GRID, ///< Geometric 3x3 grid algorithm
@@ -78,7 +78,7 @@ enum TownLayout {
/* It needs to be 8bits, because we save and load it as such */
/** Define basic enum properties */
template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_NO_ROADS, NUM_TLS, NUM_TLS> {};
template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_BEGIN, NUM_TLS, NUM_TLS> {};
typedef TinyEnumT<TownLayout> TownLayoutByte; //typedefing-enumification of TownLayout
enum {