OpenTTD Source: src/newgrf_generic.h Source File

OpenTTD Source 1.11.0-RC1

newgrf_generic.h
Go to the documentation of this file.
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
10 #ifndef NEWGRF_GENERIC_H
11 #define NEWGRF_GENERIC_H
12
13 #include "industry_type.h"
14 #include "newgrf.h"
15 #include "tile_type.h"
16
17 struct SpriteGroup;
18
20 enum AIConstructionEvent {
21 AICE_TRAIN_CHECK_RAIL_ENGINE = 0x00,
22 AICE_TRAIN_CHECK_ELRAIL_ENGINE = 0x01,
23 AICE_TRAIN_CHECK_MONORAIL_ENGINE = 0x02,
24 AICE_TRAIN_CHECK_MAGLEV_ENGINE = 0x03,
25 AICE_TRAIN_GET_RAIL_WAGON = 0x08,
26 AICE_TRAIN_GET_ELRAIL_WAGON = 0x09,
27 AICE_TRAIN_GET_MONORAIL_WAGON = 0x0A,
28 AICE_TRAIN_GET_MAGLEV_WAGON = 0x0B,
29 AICE_TRAIN_GET_RAILTYPE = 0x0F,
30
31 AICE_ROAD_CHECK_ENGINE = 0x00,
32 AICE_ROAD_GET_FIRST_ENGINE = 0x01,
33 AICE_ROAD_GET_NUMBER_ENGINES = 0x02,
34
35 AICE_SHIP_CHECK_ENGINE = 0x00,
36 AICE_SHIP_GET_FIRST_ENGINE = 0x01,
37 AICE_SHIP_GET_NUMBER_ENGINES = 0x02,
38
39 AICE_AIRCRAFT_CHECK_ENGINE = 0x00,
40
41 AICE_STATION_GET_STATION_ID = 0x00,
42 };
43
44 static const IndustryType IT_AI_UNKNOWN = 0xFE;
45 static const IndustryType IT_AI_TOWN = 0xFF;
46
47 void ResetGenericCallbacks();
48 void AddGenericCallback(uint8 feature, const GRFFile *file, const SpriteGroup *group);
49
50 uint16 GetAiPurchaseCallbackResult(uint8 feature, CargoID cargo_type, uint8 default_selection, IndustryType src_industry, IndustryType dst_industry, uint8 distance, AIConstructionEvent event, uint8 count, uint8 station_size, const GRFFile **file);
51
53 static inline void AmbientSoundEffect(TileIndex tile)
54 {
55 /* Only run callback if enabled. */
56 if (!HasGrfMiscBit(GMB_AMBIENT_SOUND_CALLBACK)) return;
57
58 extern void AmbientSoundEffectCallback(TileIndex tile);
59 AmbientSoundEffectCallback(tile);
60 }
61
62 #endif /* NEWGRF_GENERIC_H */
TileIndex
uint32 TileIndex
The index/ID of a Tile.
Definition: tile_type.h:78
AmbientSoundEffect
static void AmbientSoundEffect(TileIndex tile)
Play an ambient sound effect for an empty tile.
Definition: newgrf_generic.h:53
IT_AI_UNKNOWN
static const IndustryType IT_AI_UNKNOWN
The AI has no specific industry in mind.
Definition: newgrf_generic.h:44
AICE_TRAIN_GET_RAIL_WAGON
@ AICE_TRAIN_GET_RAIL_WAGON
Check if we should build an engine.
Definition: newgrf_generic.h:25
AICE_SHIP_CHECK_ENGINE
@ AICE_SHIP_CHECK_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:35
AddGenericCallback
void AddGenericCallback(uint8 feature, const GRFFile *file, const SpriteGroup *group)
Add a generic feature callback sprite group to the appropriate feature list.
Definition: newgrf_generic.cpp:111
AICE_STATION_GET_STATION_ID
@ AICE_STATION_GET_STATION_ID
Get a station ID to build.
Definition: newgrf_generic.h:41
GetAiPurchaseCallbackResult
uint16 GetAiPurchaseCallbackResult(uint8 feature, CargoID cargo_type, uint8 default_selection, IndustryType src_industry, IndustryType dst_industry, uint8 distance, AIConstructionEvent event, uint8 count, uint8 station_size, const GRFFile **file)
'Execute' an AI purchase selection callback
Definition: newgrf_generic.cpp:217
AICE_SHIP_GET_FIRST_ENGINE
@ AICE_SHIP_GET_FIRST_ENGINE
Unused, we check all.
Definition: newgrf_generic.h:36
HasGrfMiscBit
static bool HasGrfMiscBit(GrfMiscBit bit)
Check for grf miscellaneous bits.
Definition: newgrf.h:186
AICE_TRAIN_GET_MAGLEV_WAGON
@ AICE_TRAIN_GET_MAGLEV_WAGON
Check if we should build an engine.
Definition: newgrf_generic.h:28
AIConstructionEvent
AIConstructionEvent
AI events for asking the NewGRF for information.
Definition: newgrf_generic.h:20
AICE_TRAIN_CHECK_MONORAIL_ENGINE
@ AICE_TRAIN_CHECK_MONORAIL_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:23
AICE_TRAIN_GET_MONORAIL_WAGON
@ AICE_TRAIN_GET_MONORAIL_WAGON
Check if we should build an engine.
Definition: newgrf_generic.h:27
AICE_TRAIN_CHECK_MAGLEV_ENGINE
@ AICE_TRAIN_CHECK_MAGLEV_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:24
AICE_ROAD_CHECK_ENGINE
@ AICE_ROAD_CHECK_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:31
industry_type.h
AICE_TRAIN_GET_RAILTYPE
@ AICE_TRAIN_GET_RAILTYPE
Check if we should build a railtype.
Definition: newgrf_generic.h:29
AICE_TRAIN_CHECK_ELRAIL_ENGINE
@ AICE_TRAIN_CHECK_ELRAIL_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:22
AICE_TRAIN_GET_ELRAIL_WAGON
@ AICE_TRAIN_GET_ELRAIL_WAGON
Check if we should build an engine.
Definition: newgrf_generic.h:26
ResetGenericCallbacks
void ResetGenericCallbacks()
Reset all generic feature callback sprite groups.
Definition: newgrf_generic.cpp:97
AICE_TRAIN_CHECK_RAIL_ENGINE
@ AICE_TRAIN_CHECK_RAIL_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:21
AmbientSoundEffectCallback
void AmbientSoundEffectCallback(TileIndex tile)
'Execute' the ambient sound effect callback.
Definition: newgrf_generic.cpp:253
tile_type.h
newgrf.h
IT_AI_TOWN
static const IndustryType IT_AI_TOWN
The AI actually wants to transport to/from a town, not an industry.
Definition: newgrf_generic.h:45
CargoID
byte CargoID
Cargo slots to indicate a cargo type within a game.
Definition: cargo_type.h:20
AICE_ROAD_GET_NUMBER_ENGINES
@ AICE_ROAD_GET_NUMBER_ENGINES
Unused, we check all.
Definition: newgrf_generic.h:33
AICE_SHIP_GET_NUMBER_ENGINES
@ AICE_SHIP_GET_NUMBER_ENGINES
Unused, we check all.
Definition: newgrf_generic.h:37
SpriteGroup
Definition: newgrf_spritegroup.h:57
AICE_AIRCRAFT_CHECK_ENGINE
@ AICE_AIRCRAFT_CHECK_ENGINE
Check if we should build an engine.
Definition: newgrf_generic.h:39
GRFFile
Dynamic data of a loaded NewGRF.
Definition: newgrf.h:105
AICE_ROAD_GET_FIRST_ENGINE
@ AICE_ROAD_GET_FIRST_ENGINE
Unused, we check all.
Definition: newgrf_generic.h:32