(svn r3587) - NewGRF: Rename Callback IDs to include their "class"
This commit is contained in:
		@@ -6,33 +6,44 @@
 | 
				
			|||||||
/** @file newgrf_callbacks.h
 | 
					/** @file newgrf_callbacks.h
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// This enum lists the implemented callbacks
 | 
					/**
 | 
				
			||||||
// Use as argument for the GetCallBackResult function (see comments there)
 | 
					 * List of implemented NewGRF callbacks.
 | 
				
			||||||
 | 
					 * Names are formatted as CBID_<CLASS>_<CALLBACK>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
enum CallbackID {
 | 
					enum CallbackID {
 | 
				
			||||||
	// Powered wagons, if the result is lower as 0x40 then the wagon is powered
 | 
						// Powered wagons, if the result is lower as 0x40 then the wagon is powered
 | 
				
			||||||
	// TODO: interpret the rest of the result, aka "visual effects"
 | 
						// TODO: interpret the rest of the result, aka "visual effects"
 | 
				
			||||||
	CBID_WAGON_POWER = 0x10,
 | 
						CBID_TRAIN_WAGON_POWER          = 0x10,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Vehicle length, returns the amount of 1/8's the vehicle is shorter
 | 
						// Vehicle length, returns the amount of 1/8's the vehicle is shorter
 | 
				
			||||||
	// only for train vehicles
 | 
						// only for train vehicles
 | 
				
			||||||
	CBID_VEH_LENGTH = 0x11,
 | 
						CBID_TRAIN_VEHICLE_LENGTH       = 0x11,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Refit capacity, the passed vehicle needs to have its ->cargo_type set to
 | 
						// Refit capacity, the passed vehicle needs to have its ->cargo_type set to
 | 
				
			||||||
	// the cargo we are refitting to, returns the new cargo capacity
 | 
						// the cargo we are refitting to, returns the new cargo capacity
 | 
				
			||||||
	CBID_REFIT_CAP = 0x15,
 | 
						CBID_VEHICLE_REFIT_CAPACITY     = 0x15,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CBID_ARTIC_ENGINE = 0x16,
 | 
						CBID_TRAIN_ARTIC_ENGINE         = 0x16,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// bit positions for rvi->callbackmask, indicates which callbacks are used by an engine
 | 
					/**
 | 
				
			||||||
// (some callbacks are always used, and dont appear here)
 | 
					 * Callback masks for vehicles, indicates which callbacks are used by a vehicle.
 | 
				
			||||||
enum CallbackMask {
 | 
					 * Some callbacks are always used and don't have a mask.
 | 
				
			||||||
	CBM_WAGON_POWER = 0,
 | 
					 */
 | 
				
			||||||
	CBM_VEH_LENGTH = 1,
 | 
					enum VehicleCallbackMask {
 | 
				
			||||||
	CBM_REFIT_CAP = 3,
 | 
						CBM_WAGON_POWER    = 0, ///< Powered wagons (trains only)
 | 
				
			||||||
	CBM_ARTIC_ENGINE = 4,
 | 
						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
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Result of a failed callback.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
enum {
 | 
					enum {
 | 
				
			||||||
	CALLBACK_FAILED = 0xFFFF
 | 
						CALLBACK_FAILED = 0xFFFF
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								train_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								train_cmd.c
									
									
									
									
									
								
							@@ -122,7 +122,7 @@ void TrainConsistChanged(Vehicle* v)
 | 
				
			|||||||
			CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
 | 
								CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
 | 
				
			||||||
			if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
 | 
								if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
 | 
				
			||||||
				if (HASBIT(rvi_u->callbackmask, CBM_WAGON_POWER)) {
 | 
									if (HASBIT(rvi_u->callbackmask, CBM_WAGON_POWER)) {
 | 
				
			||||||
					uint16 callback = GetCallBackResult(CBID_WAGON_POWER,  u->engine_type, u);
 | 
										uint16 callback = GetCallBackResult(CBID_TRAIN_WAGON_POWER,  u->engine_type, u);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					if (callback != CALLBACK_FAILED)
 | 
										if (callback != CALLBACK_FAILED)
 | 
				
			||||||
						u->u.rail.cached_vis_effect = callback;
 | 
											u->u.rail.cached_vis_effect = callback;
 | 
				
			||||||
@@ -143,8 +143,8 @@ void TrainConsistChanged(Vehicle* v)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		// check the vehicle length (callback)
 | 
							// check the vehicle length (callback)
 | 
				
			||||||
		veh_len = CALLBACK_FAILED;
 | 
							veh_len = CALLBACK_FAILED;
 | 
				
			||||||
		if (HASBIT(rvi_u->callbackmask, CBM_VEH_LENGTH))
 | 
							if (HASBIT(rvi_u->callbackmask, CBM_VEHICLE_LENGTH))
 | 
				
			||||||
			veh_len = GetCallBackResult(CBID_VEH_LENGTH,  u->engine_type, u);
 | 
								veh_len = GetCallBackResult(CBID_TRAIN_VEHICLE_LENGTH,  u->engine_type, u);
 | 
				
			||||||
		if (veh_len == CALLBACK_FAILED)
 | 
							if (veh_len == CALLBACK_FAILED)
 | 
				
			||||||
			veh_len = rvi_u->shorten_factor;
 | 
								veh_len = rvi_u->shorten_factor;
 | 
				
			||||||
		veh_len = clamp(veh_len, 0, u->next == NULL ? 7 : 5); // the clamp on vehicles not the last in chain is stricter, as too short wagons can break the 'follow next vehicle' code
 | 
							veh_len = clamp(veh_len, 0, u->next == NULL ? 7 : 5); // the clamp on vehicles not the last in chain is stricter, as too short wagons can break the 'follow next vehicle' code
 | 
				
			||||||
@@ -435,7 +435,7 @@ static uint CountArticulatedParts(const RailVehicleInfo *rvi, EngineID engine_ty
 | 
				
			|||||||
	if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return 0;
 | 
						if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 1; i < 10; i++) {
 | 
						for (i = 1; i < 10; i++) {
 | 
				
			||||||
		callback = GetCallBackResult(CBID_ARTIC_ENGINE + (i << 8), engine_type, NULL);
 | 
							callback = GetCallBackResult(CBID_TRAIN_ARTIC_ENGINE + (i << 8), engine_type, NULL);
 | 
				
			||||||
		if (callback == CALLBACK_FAILED || callback == 0xFF) break;
 | 
							if (callback == CALLBACK_FAILED || callback == 0xFF) break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -456,7 +456,7 @@ static void AddArticulatedParts(const RailVehicleInfo *rvi, Vehicle **vl)
 | 
				
			|||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 1; i < 10; i++) {
 | 
						for (i = 1; i < 10; i++) {
 | 
				
			||||||
		callback = GetCallBackResult(CBID_ARTIC_ENGINE + (i << 8), v->engine_type, NULL);
 | 
							callback = GetCallBackResult(CBID_TRAIN_ARTIC_ENGINE + (i << 8), v->engine_type, NULL);
 | 
				
			||||||
		if (callback == CALLBACK_FAILED || callback == 0xFF)
 | 
							if (callback == CALLBACK_FAILED || callback == 0xFF)
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1692,11 +1692,11 @@ int32 CmdRefitRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 | 
				
			|||||||
			const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 | 
								const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 | 
				
			||||||
			uint16 amount = CALLBACK_FAILED;
 | 
								uint16 amount = CALLBACK_FAILED;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (HASBIT(rvi->callbackmask, CBM_REFIT_CAP)) {
 | 
								if (HASBIT(rvi->callbackmask, CBM_REFIT_CAPACITY)) {
 | 
				
			||||||
				/* Check the 'refit capacity' callback */
 | 
									/* Check the 'refit capacity' callback */
 | 
				
			||||||
				CargoID temp_cid = v->cargo_type;
 | 
									CargoID temp_cid = v->cargo_type;
 | 
				
			||||||
				v->cargo_type = new_cid;
 | 
									v->cargo_type = new_cid;
 | 
				
			||||||
				amount = GetCallBackResult(CBID_REFIT_CAP, v->engine_type, v);
 | 
									amount = GetCallBackResult(CBID_VEHICLE_REFIT_CAPACITY, v->engine_type, v);
 | 
				
			||||||
				v->cargo_type = temp_cid;
 | 
									v->cargo_type = temp_cid;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user