OpenTTD Source 20250612-master-gb012d9e3dc
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
17struct SpriteGroup;
18
43
44static const IndustryType IT_AI_UNKNOWN = 0xFE;
45static const IndustryType IT_AI_TOWN = 0xFF;
46
48void AddGenericCallback(GrfSpecFeature feature, const GRFFile *file, const SpriteGroup *group);
49
50std::pair<const GRFFile *, uint16_t> GetAiPurchaseCallbackResult(GrfSpecFeature feature, CargoType cargo_type, uint8_t default_selection, IndustryType src_industry, IndustryType dst_industry, uint8_t distance, AIConstructionEvent event, uint8_t count, uint8_t station_size);
52
55{
56 /* Only run callback if enabled. */
57 if (!HasGrfMiscBit(GrfMiscBit::AmbientSoundCallback)) return;
58
60}
61
62#endif /* NEWGRF_GENERIC_H */
uint8_t CargoType
Cargo slots to indicate a cargo type within a game.
Definition cargo_type.h:23
Types related to the industry.
Base for the NewGRF implementation.
bool HasGrfMiscBit(GrfMiscBit bit)
Check for grf miscellaneous bits.
Definition newgrf.h:210
GrfSpecFeature
Definition newgrf.h:69
std::pair< const GRFFile *, uint16_t > GetAiPurchaseCallbackResult(GrfSpecFeature feature, CargoType cargo_type, uint8_t default_selection, IndustryType src_industry, IndustryType dst_industry, uint8_t distance, AIConstructionEvent event, uint8_t count, uint8_t station_size)
'Execute' an AI purchase selection callback
void AmbientSoundEffectCallback(TileIndex tile)
'Execute' the ambient sound effect callback.
void AmbientSoundEffect(TileIndex tile)
Play an ambient sound effect for an empty tile.
void AddGenericCallback(GrfSpecFeature feature, const GRFFile *file, const SpriteGroup *group)
Add a generic feature callback sprite group to the appropriate feature list.
static const IndustryType IT_AI_UNKNOWN
The AI has no specific industry in mind.
void ResetGenericCallbacks()
Reset all generic feature callback sprite groups.
AIConstructionEvent
AI events for asking the NewGRF for information.
@ AICE_STATION_GET_STATION_ID
Get a station ID to build.
@ AICE_TRAIN_GET_RAIL_WAGON
Check if we should build an engine.
@ AICE_ROAD_CHECK_ENGINE
Check if we should build an engine.
@ AICE_TRAIN_CHECK_ELRAIL_ENGINE
Check if we should build an engine.
@ AICE_TRAIN_GET_RAILTYPE
Check if we should build a railtype.
@ AICE_SHIP_GET_FIRST_ENGINE
Unused, we check all.
@ AICE_TRAIN_CHECK_MONORAIL_ENGINE
Check if we should build an engine.
@ AICE_SHIP_GET_NUMBER_ENGINES
Unused, we check all.
@ AICE_TRAIN_GET_MONORAIL_WAGON
Check if we should build an engine.
@ AICE_ROAD_GET_FIRST_ENGINE
Unused, we check all.
@ AICE_TRAIN_CHECK_MAGLEV_ENGINE
Check if we should build an engine.
@ AICE_ROAD_GET_NUMBER_ENGINES
Unused, we check all.
@ AICE_AIRCRAFT_CHECK_ENGINE
Check if we should build an engine.
@ AICE_TRAIN_GET_ELRAIL_WAGON
Check if we should build an engine.
@ AICE_TRAIN_CHECK_RAIL_ENGINE
Check if we should build an engine.
@ AICE_TRAIN_GET_MAGLEV_WAGON
Check if we should build an engine.
@ AICE_SHIP_CHECK_ENGINE
Check if we should build an engine.
static const IndustryType IT_AI_TOWN
The AI actually wants to transport to/from a town, not an industry.
Dynamic data of a loaded NewGRF.
Definition newgrf.h:115
Types related to tiles.