1 /*
2  * This file is part of OpenTTD.
3  * 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.
4  * 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.
5  * 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/>.
6  */
7 
8 /** @file object_type.h Types related to object tiles. */
9 
10 #ifndef OBJECT_TYPE_H
11 #define OBJECT_TYPE_H
12 
13 /** Types of objects. */
14 typedef uint16 ObjectType;
15 
16 static const ObjectType OBJECT_TRANSMITTER  =   0;    ///< The large antenna
17 static const ObjectType OBJECT_LIGHTHOUSE   =   1;    ///< The nice lighthouse
18 static const ObjectType OBJECT_STATUE       =   2;    ///< Statue in towns
19 static const ObjectType OBJECT_OWNED_LAND   =   3;    ///< Owned land 'flag'
20 static const ObjectType OBJECT_HQ           =   4;    ///< HeadQuarter of a player
21 
22 static const ObjectType NUM_OBJECTS_PER_GRF = 255;    ///< Number of supported objects per NewGRF; limited to 255 to allow extending Action3 with an extended byte later on.
23 
24 static const ObjectType NEW_OBJECT_OFFSET   =   5;    ///< Offset for new objects
25 static const ObjectType NUM_OBJECTS         = 64000;  ///< Number of supported objects overall
26 static const ObjectType INVALID_OBJECT_TYPE = 0xFFFF; ///< An invalid object
27 
28 /** Unique identifier for an object. */
29 typedef uint32 ObjectID;
30 
31 struct Object;
32 struct ObjectSpec;
33 
34 static const ObjectID INVALID_OBJECT = 0xFFFFFFFF; ///< An invalid object
35 
36 #endif /* OBJECT_TYPE_H */
37