(svn r9549) -Codechange: Add definition of callbacks and callback masks for both industries and industry tiles
This commit is contained in:
		@@ -1,10 +1,11 @@
 | 
				
			|||||||
/* $Id$ */
 | 
					/* $Id$ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @file newgrf_callbacks.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef NEWGRF_CALLBACKS_H
 | 
					#ifndef NEWGRF_CALLBACKS_H
 | 
				
			||||||
#define NEWGRF_CALLBACKS_H
 | 
					#define NEWGRF_CALLBACKS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** @file newgrf_callbacks.h
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * List of implemented NewGRF callbacks.
 | 
					 * List of implemented NewGRF callbacks.
 | 
				
			||||||
@@ -73,6 +74,9 @@ enum CallbackID {
 | 
				
			|||||||
	 * determine if a house should be destroyed. */
 | 
						 * determine if a house should be destroyed. */
 | 
				
			||||||
	CBID_HOUSE_DESTRUCTION          = 0x21,
 | 
						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
 | 
						/* This callback is called from vehicle purchase lists. It returns a value to be
 | 
				
			||||||
	 * used as a custom string ID in the 0xD000 range. */
 | 
						 * used as a custom string ID in the 0xD000 range. */
 | 
				
			||||||
	CBID_VEHICLE_ADDITIONAL_TEXT    = 0x23,
 | 
						CBID_VEHICLE_ADDITIONAL_TEXT    = 0x23,
 | 
				
			||||||
@@ -80,10 +84,31 @@ enum CallbackID {
 | 
				
			|||||||
	/* Called when building a station to customize the tile layout */
 | 
						/* Called when building a station to customize the tile layout */
 | 
				
			||||||
	CBID_STATION_TILE_LAYOUT        = 0x24,
 | 
						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
 | 
						/* Called (if appropriate bit in callback mask is set) to determine which
 | 
				
			||||||
	 * cargoes a town building should accept. */
 | 
						 * cargoes a town building should accept. */
 | 
				
			||||||
	CBID_HOUSE_ACCEPT_CARGO         = 0x2A, // not yet implemented
 | 
						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
 | 
						/* Called to determine if a specific colour map should be used for a vehicle
 | 
				
			||||||
	 * instead of the default livery */
 | 
						 * instead of the default livery */
 | 
				
			||||||
	CBID_VEHICLE_COLOUR_MAPPING     = 0x2D,
 | 
						CBID_VEHICLE_COLOUR_MAPPING     = 0x2D,
 | 
				
			||||||
@@ -92,6 +117,12 @@ enum CallbackID {
 | 
				
			|||||||
	 * cargo a town building produces. */
 | 
						 * cargo a town building produces. */
 | 
				
			||||||
	CBID_HOUSE_PRODUCE_CARGO        = 0x2E, // not yet implemented
 | 
						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
 | 
						/* Called when the player (or AI) tries to start or stop a vehicle. Mainly
 | 
				
			||||||
	 * used for preventing a vehicle from leaving the depot. */
 | 
						 * used for preventing a vehicle from leaving the depot. */
 | 
				
			||||||
	CBID_VEHICLE_START_STOP_CHECK   = 0x31,
 | 
						CBID_VEHICLE_START_STOP_CHECK   = 0x31,
 | 
				
			||||||
@@ -99,9 +130,30 @@ enum CallbackID {
 | 
				
			|||||||
	/* Called to play a special sound effect */
 | 
						/* Called to play a special sound effect */
 | 
				
			||||||
	CBID_VEHICLE_SOUND_EFFECT       = 0x33,
 | 
						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 */
 | 
						/* Called to calculate the income of delivered cargo */
 | 
				
			||||||
	CBID_CARGO_PROFIT_CALC          = 0x39,
 | 
						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
 | 
						/* Called (if appropriate bit in callback mask set) to determine whether a
 | 
				
			||||||
	 * town building can be destroyed. */
 | 
						 * town building can be destroyed. */
 | 
				
			||||||
	CBID_HOUSE_DENY_DESTRUCTION     = 0x143,
 | 
						CBID_HOUSE_DENY_DESTRUCTION     = 0x143,
 | 
				
			||||||
@@ -158,6 +210,36 @@ enum CargoCallbackMask {
 | 
				
			|||||||
	CBM_CARGO_STATION_RATING_CALC = 1,
 | 
						CBM_CARGO_STATION_RATING_CALC = 1,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 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.
 | 
					 * Result of a failed callback.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user