summaryrefslogtreecommitdiff
path: root/src/newgrf_callbacks.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
committerrubidium <rubidium@openttd.org>2007-01-02 19:19:48 +0000
commit013df98f79866a75f367853c9e436f3c5c79f645 (patch)
treead4a63860df2626b22f77e7dac712e958bea54cb /src/newgrf_callbacks.h
parent3d32fd3f4bfaceb8a48530fbc2f4bd5db2752596 (diff)
downloadopenttd-013df98f79866a75f367853c9e436f3c5c79f645.tar.xz
(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
Diffstat (limited to 'src/newgrf_callbacks.h')
-rw-r--r--src/newgrf_callbacks.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/newgrf_callbacks.h b/src/newgrf_callbacks.h
new file mode 100644
index 000000000..9d0a7a3da
--- /dev/null
+++ b/src/newgrf_callbacks.h
@@ -0,0 +1,89 @@
+/* $Id$ */
+
+#ifndef NEWGRF_CALLBACKS_H
+#define NEWGRF_CALLBACKS_H
+
+/** @file newgrf_callbacks.h
+ */
+
+/**
+ * List of implemented NewGRF callbacks.
+ * Names are formatted as CBID_<CLASS>_<CALLBACK>
+ */
+enum CallbackID {
+ // Powered wagons, if the result is lower as 0x40 then the wagon is powered
+ // TODO: interpret the rest of the result, aka "visual effects"
+ CBID_TRAIN_WAGON_POWER = 0x10,
+
+ // Vehicle length, returns the amount of 1/8's the vehicle is shorter
+ // only for train vehicles
+ CBID_TRAIN_VEHICLE_LENGTH = 0x11,
+
+ /* Called to determine the amount of cargo to load per unit of time when
+ * using gradual loading. */
+ CBID_VEHICLE_LOAD_AMOUNT = 0x12,
+
+ /* Called (if appropriate bit in callback mask is set) to determine if a
+ * newstation should be made available to build */
+ CBID_STATION_AVAILABILITY = 0x13,
+
+ /* Called (if appropriate bit in callback mask is set) when drawing a tile
+ * to choose a sprite layout to draw, instead of the standard 0-7 range */
+ CBID_STATION_SPRITE_LAYOUT = 0x14,
+
+ // Refit capacity, the passed vehicle needs to have its ->cargo_type set to
+ // the cargo we are refitting to, returns the new cargo capacity
+ CBID_VEHICLE_REFIT_CAPACITY = 0x15,
+
+ CBID_TRAIN_ARTIC_ENGINE = 0x16,
+
+ CBID_VEHICLE_CARGO_SUFFIX = 0x19,
+
+ CBID_TRAIN_ALLOW_WAGON_ATTACH = 0x1D,
+
+ /* This callback is called from vehicle purchase lists. It returns a value to be
+ * used as a custom string ID in the 0xD000 range. */
+ CBID_VEHICLE_ADDITIONAL_TEXT = 0x23,
+
+ /* Called when building a station to customize the tile layout */
+ CBID_STATION_TILE_LAYOUT = 0x24,
+
+ /* Called when the player (or AI) tries to start or stop a vehicle. Mainly
+ * used for preventing a vehicle from leaving the depot. */
+ CBID_VEHICLE_START_STOP_CHECK = 0x31,
+
+ /* Called to play a special sound effect */
+ CBID_VEHICLE_SOUND_EFFECT = 0x33,
+};
+
+/**
+ * Callback masks for vehicles, indicates which callbacks are used by a vehicle.
+ * Some callbacks are always used and don't have a mask.
+ */
+enum VehicleCallbackMask {
+ CBM_WAGON_POWER = 0, ///< Powered wagons (trains only)
+ CBM_VEHICLE_LENGTH = 1, ///< Vehicle length (trains only)
+ CBM_LOAD_AMOUNT = 2, ///< Load amount
+ CBM_REFIT_CAPACITY = 3, ///< Cargo capacity after refit
+ CBM_ARTIC_ENGINE = 4, ///< Add articulated engines (trains only)
+ CBM_CARGO_SUFFIX = 5, ///< Show suffix after cargo name
+ CBM_COLOUR_REMAP = 6, ///< Change colour mapping of vehicle
+ CBM_SOUND_EFFECT = 7, ///< Vehicle uses custom sound effects
+};
+
+/**
+ * Callback masks for stations.
+ */
+enum StationCallbackMask {
+ CBM_STATION_AVAIL = 0, ///< Availability of station in construction window
+ CBM_CUSTOM_LAYOUT = 1, ///< Use callback to select a tile layout to use
+};
+
+/**
+ * Result of a failed callback.
+ */
+enum {
+ CALLBACK_FAILED = 0xFFFF
+};
+
+#endif /* NEWGRF_CALLBACKS_H */