src/newgrf_generic.h
author rubidium
Thu, 19 Jun 2008 11:45:52 +0000
changeset 11023 583f32658248
parent 10429 1b99254f9607
permissions -rw-r--r--
(svn r13579) -Fix [FS#2088]: process the order coming after a conditional order, otherwise the vehicle would already leaving the station before it knows where the next destination is, making it leave in the wrong way. However, after processing as many conditional orders as there are in the order list it will stop processing them in order to not create an infinite loop.
9040
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     1
/* $Id$ */
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     2
10429
1b99254f9607 (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: 9040
diff changeset
     3
/** @file newgrf_generic.h Functions related to generic callbacks. */
1b99254f9607 (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: 9040
diff changeset
     4
9040
7d9d63315d91 (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
7d9d63315d91 (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
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     7
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
     8
enum AIConstructionEvent {
7d9d63315d91 (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
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (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,
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    18
7d9d63315d91 (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
7d9d63315d91 (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
7d9d63315d91 (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
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    22
7d9d63315d91 (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
7d9d63315d91 (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
7d9d63315d91 (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
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    26
7d9d63315d91 (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
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    28
7d9d63315d91 (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
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    30
};
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    31
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    32
void ResetGenericCallbacks();
7d9d63315d91 (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);
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    34
7d9d63315d91 (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);
7d9d63315d91 (svn r12122) -Codechange: Add framework for generic feature callbacks, along with some parts for AI use.
peter1138
parents:
diff changeset
    36
7d9d63315d91 (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 */