src/newgrf_callbacks.h
branchgamebalance
changeset 9908 0fa543611bbe
parent 9906 6f41b8713b65
child 9910 0b2aebc8283e
--- a/src/newgrf_callbacks.h	Thu Apr 19 14:48:10 2007 +0000
+++ b/src/newgrf_callbacks.h	Tue Jun 12 11:56:35 2007 +0000
@@ -1,10 +1,11 @@
 /* $Id$ */
 
+/** @file newgrf_callbacks.h
+ */
+
 #ifndef NEWGRF_CALLBACKS_H
 #define NEWGRF_CALLBACKS_H
 
-/** @file newgrf_callbacks.h
- */
 
 /**
  * List of implemented NewGRF callbacks.
@@ -73,6 +74,9 @@
 	 * determine if a house should be destroyed. */
 	CBID_HOUSE_DESTRUCTION          = 0x21,
 
+	/* Called to determine if the given industry type is available */
+	CBID_INDUSTRY_AVAILABLE         = 0x22, // not yet implemented
+
 	/* 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,
@@ -80,10 +84,31 @@
 	/* Called when building a station to customize the tile layout */
 	CBID_STATION_TILE_LAYOUT        = 0x24,
 
+	/* Called for periodically starting or stopping the animation. */
+	CBID_INDTILE_ANIM_START_STOP    = 0x25, // not yet implemented
+
+	/* Called to determine industry tile next animation frame. */
+	CBID_INDTILE_ANIM_NEXT_FRAME    = 0x26, // not yet implemented
+
+	/* Called to indicate how long the current animation frame should last. */
+	CBID_INDTILE_ANIMATION_SPEED    = 0x27, // not yet implemented
+
+	/* Called to determine if the given industry can be built on specific area */
+	CBID_INDUSTRY_LOCATION          = 0x28, // not yet implemented
+
+	/* Called on production changes, so it can be adjusted */
+	CBID_INDUSTRY_PRODUCTION_CHANGE = 0x29, // not yet implemented
+
 	/* Called (if appropriate bit in callback mask is set) to determine which
 	 * cargoes a town building should accept. */
 	CBID_HOUSE_ACCEPT_CARGO         = 0x2A, // not yet implemented
 
+	/* Called to query the cargo acceptance of the industry tile */
+	CBID_INDTILE_ACCEPT_CARGO       = 0x2B, // not yet implemented
+
+	/* Called to determine which cargoes an industry should accept. */
+	CBID_INDUSTRY_ACCEPT_CARGO      = 0x2C, // not yet implemented
+
 	/* Called to determine if a specific colour map should be used for a vehicle
 	 * instead of the default livery */
 	CBID_VEHICLE_COLOUR_MAPPING     = 0x2D,
@@ -92,6 +117,12 @@
 	 * cargo a town building produces. */
 	CBID_HOUSE_PRODUCE_CARGO        = 0x2E, // not yet implemented
 
+	/* Called to determine if the given industry tile can be built on specific tile */
+	CBID_INDTILE_SHAPE_CHECK        = 0x2F, // not yet implemented
+
+	/* Called to determine the type (if any) of foundation to draw for industry tile */
+	CBID_INDUSTRY_DRAW_FOUNDATIONS  = 0x30, // not yet implemented
+
 	/* 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,
@@ -99,9 +130,30 @@
 	/* Called to play a special sound effect */
 	CBID_VEHICLE_SOUND_EFFECT       = 0x33,
 
+	/* Called monthly on production changes, so it can be adjusted more frequently */
+	CBID_INDUSTRY_MONTHLYPROD_CHANGE= 0x35, // not yet implemented
+
+	/* Called to determine text to display after cargo name */
+	CBID_INDUSTRY_CARGO_SUFFIX      = 0x37, // not yet implemented
+
+	/* Called to determine more text in the fund industry window */
+	CBID_INDUSTRY_FUND_MORE_TEXT    = 0x38, // not yet implemented
+
 	/* Called to calculate the income of delivered cargo */
 	CBID_CARGO_PROFIT_CALC          = 0x39,
 
+	/* Called to determine more text in the industry window */
+	CBID_INDUSTRY_WINDOW_MORE_TEXT  = 0x3A, // not yet implemented
+
+	/* Called to determine industry special effects */
+	CBID_INDUSTRY_SPECIAL_EFFECT    = 0x3B, // not yet implemented
+
+	/* Called to determine if industry can alter the ground below industry tile */
+	CBID_INDUSTRY_AUTOSLOPE         = 0x3C, // not yet implemented
+
+	/* Called to determine if the industry can still accept or refuse  more cargo arrival */
+	CBID_INDUSTRY_REFUSE_CARGO      = 0x3D, // not yet implemented
+
 	/* Called (if appropriate bit in callback mask set) to determine whether a
 	 * town building can be destroyed. */
 	CBID_HOUSE_DENY_DESTRUCTION     = 0x143,
@@ -159,6 +211,36 @@
 };
 
 /**
+ * Callback masks for Industries
+ */
+enum IndustryCallbackMask {
+	CBM_IND_AVAILABLE                 = 0,  ///< industry availability callback
+	CBM_IND_PRODUCTION_CARGO_ARRIVAL  = 1,  ///< call production callback when cargo arrives at the industry
+	CBM_IND_PRODUCTION_256_TICKS      = 2,  ///< call production callback every 256 ticks
+	CBM_IND_LOCATION                  = 3,  ///< check industry construction on given area
+	CBM_IND_PRODUCTION_CHANGE         = 4,  ///< controls random production change
+	CBM_IND_MONTHLYPROD_CHANGE        = 5,  ///< controls monthly random production change
+	CBM_IND_CARGO_SUFFIX              = 6,  ///< cargo sub-type display
+	CBM_IND_FUND_MORE_TEXT            = 7,  ///< additional text in fund window
+	CBM_IND_WINDOW_MORE_TEXT          = 8,  ///< additional text in industry window
+	CBM_IND_SPECIAL_EFFECT            = 9,  ///< control special effects
+	CBM_IND_REFUSE_CARGO              = 10, ///< option out of accepting cargo
+};
+
+/**
+ * Callback masks for industry tiles
+ */
+enum IndustryTileCallbackMask {
+	CBM_INDT_ANIM_NEXT_FRAME          = 0,  ///< decides next animation frame
+	CBM_INDT_ANIM_SPEED               = 1,  ///< decides animation speed
+	CBM_INDT_ACCEPTANCE_CARGO         = 2,  ///< decides amount of cargo acceptance
+	CBM_INDT_ACCEPT_CARGO             = 3,  ///< decides accepted types
+	CBM_INDT_SHAPE_CHECK              = 4,  ///< decides slope suitability
+	CBM_INDT_DRAW_FOUNDATIONS         = 5,  ///< decides if default foundations need to be drawn
+	CBM_INDT_AUTOSLOPE                = 6,  ///< decides allowance of autosloping
+};
+
+/**
  * Result of a failed callback.
  */
 enum {