Files
@ r23439:19bd53812e56
Branch filter:
Location: cpp/openttd-patchpack/source/src/town_type.h - annotation
r23439:19bd53812e56
5.2 KiB
text/x-c
Fix e4cc06f67: [AzurePipelines] rebase only for PRs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | r8213:466402e95092 r8213:466402e95092 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r12768:980ae0491352 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r11012:e1373ff6cc04 r11012:e1373ff6cc04 r14872:dfad0b6fd384 r14872:dfad0b6fd384 r14872:dfad0b6fd384 r14872:dfad0b6fd384 r14873:15b9b1a863e0 r14873:15b9b1a863e0 r8213:466402e95092 r15027:bb71fdfcc554 r8213:466402e95092 r15173:a59afd6301a6 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8814:8b2b17bb64fc r8814:8b2b17bb64fc r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r10208:ef8fcc3dc4ca r8814:8b2b17bb64fc r10208:ef8fcc3dc4ca r23140:4e420922ab96 r8814:8b2b17bb64fc r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r8213:466402e95092 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r11874:0c1573de8851 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r11000:d03bad32156f r11000:d03bad32156f r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8213:466402e95092 r8796:7940548db691 r8796:7940548db691 r8213:466402e95092 r8213:466402e95092 r15027:bb71fdfcc554 r12016:12cc374b77e8 r12016:12cc374b77e8 r8213:466402e95092 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r13746:3eeb0ceed378 r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r23403:d1046b8440da r17569:79cc833a8f35 r9913:5ef437117969 r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r18387:14892a15ab1a r8213:466402e95092 | /* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file town_type.h Types related to towns. */
#ifndef TOWN_TYPE_H
#define TOWN_TYPE_H
#include "core/enum_type.hpp"
typedef uint16 TownID;
struct Town;
/** Supported initial town sizes */
enum TownSize {
TSZ_SMALL, ///< Small town.
TSZ_MEDIUM, ///< Medium town.
TSZ_LARGE, ///< Large town.
TSZ_RANDOM, ///< Random size, bigger than small, smaller than large.
TSZ_END, ///< Number of available town sizes.
};
template <> struct EnumPropsT<TownSize> : MakeEnumPropsT<TownSize, byte, TSZ_SMALL, TSZ_END, TSZ_END, 2> {};
enum Ratings {
/* These refer to the maximums, so Appalling is -1000 to -400
* MAXIMUM RATINGS BOUNDARIES */
RATING_MINIMUM = -1000,
RATING_APPALLING = -400,
RATING_VERYPOOR = -200,
RATING_POOR = 0,
RATING_MEDIOCRE = 200,
RATING_GOOD = 400,
RATING_VERYGOOD = 600,
RATING_EXCELLENT = 800,
RATING_OUTSTANDING = 1000, ///< OUTSTANDING
RATING_MAXIMUM = RATING_OUTSTANDING,
RATING_INITIAL = 500, ///< initial rating
/* RATINGS AFFECTING NUMBERS */
RATING_TREE_DOWN_STEP = -35,
RATING_TREE_MINIMUM = RATING_MINIMUM,
RATING_TREE_UP_STEP = 7,
RATING_TREE_MAXIMUM = 220,
RATING_GROWTH_UP_STEP = 5, ///< when a town grows, all companies have rating increased a bit ...
RATING_GROWTH_MAXIMUM = RATING_MEDIOCRE, ///< ... up to RATING_MEDIOCRE
RATING_STATION_UP_STEP = 12, ///< when a town grows, company gains reputation for all well serviced stations ...
RATING_STATION_DOWN_STEP = -15, ///< ... but loses for badly serviced stations
RATING_TUNNEL_BRIDGE_DOWN_STEP = -250, ///< penalty for removing town owned tunnel or bridge
RATING_TUNNEL_BRIDGE_MINIMUM = 0, ///< minimum rating after removing tunnel or bridge
RATING_TUNNEL_BRIDGE_NEEDED_PERMISSIVE = 144, ///< rating needed, "Permissive" difficulty settings
RATING_TUNNEL_BRIDGE_NEEDED_NEUTRAL = 208, ///< "Neutral"
RATING_TUNNEL_BRIDGE_NEEDED_HOSTILE = 400, ///< "Hostile"
RATING_ROAD_DOWN_STEP_INNER = -50, ///< removing a roadpiece in the middle
RATING_ROAD_DOWN_STEP_EDGE = -18, ///< removing a roadpiece at the edge
RATING_ROAD_MINIMUM = -100, ///< minimum rating after removing town owned road
RATING_ROAD_NEEDED_PERMISSIVE = 16, ///< rating needed, "Permissive" difficulty settings
RATING_ROAD_NEEDED_NEUTRAL = 64, ///< "Neutral"
RATING_ROAD_NEEDED_HOSTILE = 112, ///< "Hostile"
RATING_HOUSE_MINIMUM = RATING_MINIMUM,
RATING_BRIBE_UP_STEP = 200,
RATING_BRIBE_MAXIMUM = 800,
RATING_BRIBE_DOWN_TO = -50 // XXX SHOULD BE SOMETHING LOWER?
};
/**
* Town Layouts
*/
enum TownLayout {
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
TL_RANDOM, ///< Random town layout
NUM_TLS, ///< Number of town layouts
};
template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_BEGIN, NUM_TLS, NUM_TLS, 3> {};
/** It needs to be 8bits, because we save and load it as such */
typedef SimpleTinyEnumT<TownLayout, byte> TownLayoutByte; // typedefing-enumification of TownLayout
/** Town founding setting values */
enum TownFounding {
TF_BEGIN = 0, ///< Used for iterations and limit testing
TF_FORBIDDEN = 0, ///< Forbidden
TF_ALLOWED, ///< Allowed
TF_CUSTOM_LAYOUT, ///< Allowed, with custom town layout
TF_END, ///< Used for iterations and limit testing
};
/** It needs to be 8bits, because we save and load it as such */
typedef SimpleTinyEnumT<TownFounding, byte> TownFoundingByte;
/** Town cargo generation modes */
enum TownCargoGenMode : byte {
TCGM_BEGIN = 0,
TCGM_ORIGINAL = 0, ///< Original algorithm (quadratic cargo by population)
TCGM_BITCOUNT, ///< Bit-counted algorithm (normal distribution from individual house population)
TCGM_END,
};
static const uint MAX_LENGTH_TOWN_NAME_CHARS = 32; ///< The maximum length of a town name in characters including '\0'
/** Store the maximum and actually transported cargo amount for the current and the last month. */
template <typename Tstorage>
struct TransportedCargoStat {
Tstorage old_max; ///< Maximum amount last month
Tstorage new_max; ///< Maximum amount this month
Tstorage old_act; ///< Actually transported last month
Tstorage new_act; ///< Actually transported this month
TransportedCargoStat() : old_max(0), new_max(0), old_act(0), new_act(0) {}
/** Update stats for a new month. */
void NewMonth()
{
this->old_max = this->new_max; this->new_max = 0;
this->old_act = this->new_act; this->new_act = 0;
}
};
#endif /* TOWN_TYPE_H */
|