src/newgrf_generic.h
author rubidium
Thu, 18 Dec 2008 12:23:08 +0000
changeset 10436 8d3a9fbe8f19
parent 9111 48ce04029fe4
permissions -rw-r--r--
(svn r14689) -Change: make configure die on commonly made user mistakes, like not having SDL development files or zlib headers installed; you can still compile a dedicated server or a binary without zlib, but you have to explicitly force it.
8544
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     1
/* $Id$ */
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     2
9111
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 8544
diff changeset
     3
/** @file newgrf_generic.h Functions related to generic callbacks. */
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 8544
diff changeset
     4
8544
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     5
#ifndef NEWGRF_GENERIC_H
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     6
#define NEWGRF_GENERIC_H
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     7
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     8
enum AIConstructionEvent {
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     9
	AICE_TRAIN_CHECK_RAIL_ENGINE     = 0x00, ///< Check if we should build an engine
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    10
	AICE_TRAIN_CHECK_ELRAIL_ENGINE   = 0x01,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    11
	AICE_TRAIN_CHECK_MONORAIL_ENGINE = 0x02,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    12
	AICE_TRAIN_CHECK_MAGLEV_ENGINE   = 0x03,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    13
	AICE_TRAIN_GET_RAIL_WAGON        = 0x08,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    14
	AICE_TRAIN_GET_ELRAIL_WAGON      = 0x09,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    15
	AICE_TRAIN_GET_MONORAIL_WAGON    = 0x0A,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    16
	AICE_TRAIN_GET_MAGLEV_WAGON      = 0x0B,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    17
	AICE_TRAIN_GET_RAILTYPE          = 0x0F,
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    18
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    19
	AICE_ROAD_CHECK_ENGINE           = 0x00, ///< Check if we should build an engine
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    20
	AICE_ROAD_GET_FIRST_ENGINE       = 0x01, ///< Unused, we check all
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    21
	AICE_ROAD_GET_NUMBER_ENGINES     = 0x02, ///< Unused, we check all
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    22
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    23
	AICE_SHIP_CHECK_ENGINE           = 0x00, ///< Check if we should build an engine
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    24
	AICE_SHIP_GET_FIRST_ENGINE       = 0x01, ///< Unused, we check all
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    25
	AICE_SHIP_GET_NUMBER_ENGINES     = 0x02, ///< Unused, we check all
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    26
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    27
	AICE_AIRCRAFT_CHECK_ENGINE       = 0x00, ///< Check if we should build an engine
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    28
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    29
	AICE_STATION_GET_STATION_ID      = 0x00, ///< Get a station ID to build
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    30
};
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    31
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    32
void ResetGenericCallbacks();
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    33
void AddGenericCallback(uint8 feature, const struct GRFFile *file, const struct SpriteGroup *group);
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    34
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    35
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 struct GRFFile **file);
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    36
47b99dc2da26 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    37
#endif /* NEWGRF_GENERIC_H */