Files
@ r8227:553c3397a81b
Branch filter:
Location: cpp/openttd-patchpack/source/src/openttd.h - annotation
r8227:553c3397a81b
5.6 KiB
text/x-c
(svn r11790) -Update: apparantly it's 2008 already ;). Patch by Anne Stellingwerf (FS#1613).
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r8138:f851b4cbdad1 r8114:866ed489ed98 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r6248:b940b09d7ab8 r6248:b940b09d7ab8 r6248:b940b09d7ab8 r6248:b940b09d7ab8 r6248:b940b09d7ab8 r6643:fa000ce7441e r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6950:1a54b1afb12a r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r7010:fd8e3ec6f727 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6643:fa000ce7441e r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r7763:878d494b5f57 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r7734:cbd2b66291f3 r5475:3f5cd13d1b63 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5587:034e5e185dc2 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5587:034e5e185dc2 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6591:56d27ba364f1 r6591:56d27ba364f1 r6591:56d27ba364f1 r6591:56d27ba364f1 r6591:56d27ba364f1 r6591:56d27ba364f1 r6427:94a91cd8da86 r6427:94a91cd8da86 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6357:de4229337c35 r6357:de4229337c35 r6357:de4229337c35 r6357:de4229337c35 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r7742:13aaf7ce450a r7742:13aaf7ce450a r6248:b940b09d7ab8 r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r7742:13aaf7ce450a r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r8121:d05602c69734 r5475:3f5cd13d1b63 | /* $Id$ */
/** @file openttd.h */
#ifndef OPENTTD_H
#define OPENTTD_H
#ifndef VARDEF
#define VARDEF extern
#endif
#include "core/enum_type.hpp"
#include "strings_type.h"
// Forward declarations of structs.
struct Depot;
struct Waypoint;
struct Station;
struct ViewPort;
struct NewsItem;
struct DrawPixelInfo;
struct Group;
typedef byte VehicleOrderID; ///< The index of an order within its current vehicle (not pool related)
typedef byte LandscapeID;
typedef uint16 EngineID;
typedef uint16 UnitID;
typedef EngineID *EngineList; ///< engine list type placeholder acceptable for C code (see helpers.cpp)
/* IDs used in Pools */
typedef uint16 StationID;
static const StationID INVALID_STATION = 0xFFFF;
typedef uint16 RoadStopID;
typedef uint16 DepotID;
typedef uint16 WaypointID;
typedef uint16 OrderID;
typedef uint16 SignID;
typedef uint16 GroupID;
typedef uint16 EngineRenewID;
typedef uint16 DestinationID;
/* DestinationID must be at least as large as every these below, because it can
* be any of them
*/
assert_compile(sizeof(DestinationID) == sizeof(DepotID));
assert_compile(sizeof(DestinationID) == sizeof(WaypointID));
assert_compile(sizeof(DestinationID) == sizeof(StationID));
typedef uint32 PlayerFace; ///< player face bits, info see in player_face.h
enum GameModes {
GM_MENU,
GM_NORMAL,
GM_EDITOR
};
enum SwitchModes {
SM_NONE = 0,
SM_NEWGAME = 1,
SM_EDITOR = 2,
SM_LOAD = 3,
SM_MENU = 4,
SM_SAVE = 5,
SM_GENRANDLAND = 6,
SM_LOAD_SCENARIO = 9,
SM_START_SCENARIO = 10,
SM_START_HEIGHTMAP = 11,
SM_LOAD_HEIGHTMAP = 12,
};
/* Modes for GenerateWorld */
enum GenerateWorldModes {
GW_NEWGAME = 0, /* Generate a map for a new game */
GW_EMPTY = 1, /* Generate an empty map (sea-level) */
GW_RANDOM = 2, /* Generate a random map for SE */
GW_HEIGHTMAP = 3, /* Generate a newgame from a heightmap */
};
/* Modes for InitializeGame, those are _bits_! */
enum InitializeGameModes {
IG_NONE = 0, /* Don't do anything special */
IG_DATE_RESET = 1, /* Reset the date when initializing a game */
};
enum Owner {
PLAYER_INACTIVE_CLIENT = 253,
PLAYER_NEW_COMPANY = 254,
PLAYER_SPECTATOR = 255,
OWNER_BEGIN = 0x00,
PLAYER_FIRST = 0x00,
MAX_PLAYERS = 8,
OWNER_TOWN = 0x0F, // a town owns the tile
OWNER_NONE = 0x10, // nobody owns the tile
OWNER_WATER = 0x11, // "water" owns the tile
OWNER_END = 0x12,
INVALID_OWNER = 0xFF,
INVALID_PLAYER = 0xFF,
/* Player identifiers All players below MAX_PLAYERS are playable
* players, above, they are special, computer controlled players */
};
typedef Owner PlayerID;
DECLARE_POSTFIX_INCREMENT(Owner);
/** Define basic enum properties */
template <> struct EnumPropsT<Owner> : MakeEnumPropsT<Owner, byte, OWNER_BEGIN, OWNER_END, INVALID_OWNER> {};
typedef TinyEnumT<Owner> OwnerByte;
typedef OwnerByte PlayerByte;
enum TransportType {
/* These constants are for now linked to the representation of bridges
* and tunnels, so they can be used by GetTileTrackStatus_TunnelBridge.
* In an ideal world, these constants would be used everywhere when
* accessing tunnels and bridges. For now, you should just not change
* the values for road and rail.
*/
TRANSPORT_BEGIN = 0,
TRANSPORT_RAIL = 0,
TRANSPORT_ROAD = 1,
TRANSPORT_WATER, // = 2
TRANSPORT_END,
INVALID_TRANSPORT = 0xff,
};
/** Define basic enum properties */
template <> struct EnumPropsT<TransportType> : MakeEnumPropsT<TransportType, byte, TRANSPORT_BEGIN, TRANSPORT_END, INVALID_TRANSPORT> {};
typedef TinyEnumT<TransportType> TransportTypeByte;
/* Display Options */
enum {
DO_SHOW_TOWN_NAMES = 0,
DO_SHOW_STATION_NAMES = 1,
DO_SHOW_SIGNS = 2,
DO_FULL_ANIMATION = 3,
DO_FULL_DETAIL = 5,
DO_WAYPOINTS = 6,
};
/* Landscape types */
enum {
LT_TEMPERATE = 0,
LT_ARCTIC = 1,
LT_TROPIC = 2,
LT_TOYLAND = 3,
NUM_LANDSCAPE = 4,
};
#define GAME_DIFFICULTY_NUM 18
/** Specific type for Game Difficulty to ease changing the type */
typedef uint16 GDType;
struct GameDifficulty {
GDType max_no_competitors;
GDType competitor_start_time;
GDType number_towns;
GDType number_industries;
GDType max_loan;
GDType initial_interest;
GDType vehicle_costs;
GDType competitor_speed;
GDType competitor_intelligence; // no longer in use
GDType vehicle_breakdowns;
GDType subsidy_multiplier;
GDType construction_cost;
GDType terrain_type;
GDType quantity_sea_lakes;
GDType economy;
GDType line_reverse_mode;
GDType disasters;
GDType town_council_tolerance; // minimum required town ratings to be allowed to demolish stuff
};
struct ViewportSign {
int32 left;
int32 top;
byte width_1, width_2;
};
enum {
SORT_ASCENDING = 0,
SORT_DESCENDING = 1,
SORT_BY_DATE = 0,
SORT_BY_NAME = 2
};
VARDEF byte _savegame_sort_order;
enum {
MAX_SCREEN_WIDTH = 2048,
MAX_SCREEN_HEIGHT = 1200,
};
/* In certain windows you navigate with the arrow keys. Do not scroll the
* gameview when here. Bitencoded variable that only allows scrolling if all
* elements are zero */
enum {
SCROLL_CON = 0,
SCROLL_EDIT = 1,
SCROLL_SAVE = 2,
SCROLL_CHAT = 4,
};
VARDEF byte _no_scroll;
/** To have a concurrently running thread interface with the main program, use
* the OTTD_SendThreadMessage() function. Actions to perform upon the message are handled
* in the ProcessSentMessage() function */
enum ThreadMsg {
MSG_OTTD_NO_MESSAGE,
MSG_OTTD_SAVETHREAD_DONE,
MSG_OTTD_SAVETHREAD_ERROR,
};
void OTTD_SendThreadMessage(ThreadMsg msg);
extern byte _game_mode;
extern bool _exit_game;
extern byte _pause_game;
#endif /* OPENTTD_H */
|