Files
@ r12072:bcf36828afcb
Branch filter:
Location: cpp/openttd-patchpack/source/src/ai/api/ai_types.hpp - annotation
r12072:bcf36828afcb
7.3 KiB
text/x-c++hdr
(svn r16486) -Codechange [FS#2939]: Added widget numbers to the airport toolbar (based on work by erikjanp)
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 | r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r11868:a3792ac49630 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11385:2203b80e9ea8 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r11169:8ceeaab16ab6 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 r10696:8dfe83e30d01 | /* $Id$ */
/** @file ai_types.hpp Defines all the types of the game, like IDs of various objects.
*
* IDs are used to identify certain objects. They are only unique within the object type, so for example a vehicle may have VehicleID 2009,
* while a station has StationID 2009 at the same time. Also IDs are assigned arbitrary, you cannot assume them to be consecutive.
* Also note, that some IDs are static and never change, while others are allocated dynamically and might be
* reused for other objects once they are released. So be careful, which IDs you store for which purpose and whether they stay valid all the time.
*
* <table>
* <tr><th>type </th><th> object </th>
* <th> acquired </th>
* <th> released </th>
* <th> reused </th></tr>
* <tr><td>#BridgeID </td><td> bridge type </td>
* <td> introduction \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no \ref newgrf_changes "(1)" </td></tr>
* <tr><td>#CargoID </td><td> cargo type </td>
* <td> game start \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no \ref newgrf_changes "(1)" </td></tr>
* <tr><td>#EngineID </td><td> engine type </td>
* <td> introduction, preview \ref dynamic_engines "(2)" </td>
* <td> engines retires \ref dynamic_engines "(2)" </td>
* <td> no \ref dynamic_engines "(2)" </td></tr>
* <tr><td>#GroupID </td><td> vehicle group </td>
* <td> creation </td>
* <td> deletion </td>
* <td> yes </td></tr>
* <tr><td>#IndustyID </td><td> industry </td>
* <td> construction </td>
* <td> closure </td>
* <td> yes </td></tr>
* <tr><td>#IndustyType</td><td> industry type </td>
* <td> game start \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no </td></tr>
* <tr><td>#SignID </td><td> sign </td>
* <td> construction </td>
* <td> deletion </td>
* <td> yes </td></tr>
* <tr><td>#StationID </td><td> station </td>
* <td> construction </td>
* <td> expiration of 'grey' station sign after deletion </td>
* <td> yes </td></tr>
* <tr><td>#SubsidyID </td><td> subsidy </td>
* <td> offer announcement </td>
* <td> (offer) expiration </td>
* <td> yes </td></tr>
* <tr><td>#TileIndex </td><td> tile on map </td>
* <td> game start </td>
* <td> never </td>
* <td> no </td></tr>
* <tr><td>#TownID </td><td> town </td>
* <td> game start </td>
* <td> never </td>
* <td> no </td></tr>
* <tr><td>#VehicleID </td><td> vehicle </td>
* <td> construction, autorenew, autoreplace </td>
* <td> destruction, autorenew, autoreplace </td>
* <td> yes </td></tr>
* <tr><td>#WaypointID </td><td> waypoint </td>
* <td> construction </td>
* <td> destruction </td>
* <td> yes </td></tr>
* </table>
*
* @remarks
* \li \anchor newgrf_changes (1) in-game changes of newgrfs may reassign/invalidate IDs (will also cause other trouble though).
* \li \anchor dynamic_engines (2) engine IDs are reassigned/invalidated on changing 'allow multiple newgrf engine sets' (only allowed as long as no vehicles are built).
*/
#ifndef AI_TYPES_HPP
#define AI_TYPES_HPP
#include "../../core/overflowsafe_type.hpp"
#include "../../company_type.h"
#include "../../script/fake_squirrel_types.hpp"
/* Define all types here, so we don't have to include the whole _type.h maze */
typedef uint BridgeType; //!< Internal name, not of any use for you.
typedef byte CargoID; //!< The ID of a cargo.
class CommandCost; //!< The cost of a command.
typedef uint16 EngineID; //!< The ID of an engine.
typedef uint16 GroupID; //!< The ID of a group.
typedef uint16 IndustryID; //!< The ID of an industry.
typedef uint8 IndustryType; //!< The ID of an industry-type.
typedef OverflowSafeInt64 Money; //!< Money, stored in a 32bit/64bit safe way. For AIs money is always in pounds.
typedef uint16 SignID; //!< The ID of a sign.
typedef uint16 StationID; //!< The ID of a station.
typedef uint16 StringID; //!< The ID of a string.
typedef uint32 TileIndex; //!< The ID of a tile (just named differently).
typedef uint16 TownID; //!< The ID of a town.
typedef uint16 VehicleID; //!< The ID of a vehicle.
typedef uint16 WaypointID; //!< The ID of a waypoint.
/* Types we defined ourself, as the OpenTTD core doesn't have them (yet) */
typedef uint AIErrorType; //!< The types of errors inside the NoAI framework.
typedef BridgeType BridgeID; //!< The ID of a bridge.
typedef uint16 SubsidyID; //!< The ID of a subsidy.
#endif /* AI_TYPES_HPP */
|