changeset 3007:a7ed369c9a72 draft

(svn r3587) - NewGRF: Rename Callback IDs to include their "class"
author peter1138 <peter1138@openttd.org>
date Sat, 11 Feb 2006 09:17:16 +0000
parents 10f0441416e3
children 307d2d20b3e9
files newgrf_callbacks.h train_cmd.c
diffstat 2 files changed, 31 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/newgrf_callbacks.h
+++ b/newgrf_callbacks.h
@@ -6,33 +6,44 @@
 /** @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 {
 	// 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_WAGON_POWER = 0x10,
+	CBID_TRAIN_WAGON_POWER          = 0x10,
 
 	// Vehicle length, returns the amount of 1/8's the vehicle is shorter
 	// 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
 	// 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)
-enum CallbackMask {
-	CBM_WAGON_POWER = 0,
-	CBM_VEH_LENGTH = 1,
-	CBM_REFIT_CAP = 3,
-	CBM_ARTIC_ENGINE = 4,
+/**
+ * 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
 };
 
+/**
+ * Result of a failed callback.
+ */
 enum {
 	CALLBACK_FAILED = 0xFFFF
 };
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -122,7 +122,7 @@
 			CLRBIT(u->u.rail.flags, VRF_POWEREDWAGON);
 			if ((rvi_v->pow_wag_power != 0) && (rvi_u->flags & RVI_WAGON) && UsesWagonOverride(u)) {
 				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)
 						u->u.rail.cached_vis_effect = callback;
@@ -143,8 +143,8 @@
 
 		// check the vehicle length (callback)
 		veh_len = CALLBACK_FAILED;
-		if (HASBIT(rvi_u->callbackmask, CBM_VEH_LENGTH))
-			veh_len = GetCallBackResult(CBID_VEH_LENGTH,  u->engine_type, u);
+		if (HASBIT(rvi_u->callbackmask, CBM_VEHICLE_LENGTH))
+			veh_len = GetCallBackResult(CBID_TRAIN_VEHICLE_LENGTH,  u->engine_type, u);
 		if (veh_len == CALLBACK_FAILED)
 			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
@@ -435,7 +435,7 @@
 	if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return 0;
 
 	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;
 	}
 
@@ -456,7 +456,7 @@
 		return;
 
 	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)
 			return;
 
@@ -1692,11 +1692,11 @@
 			const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
 			uint16 amount = CALLBACK_FAILED;
 
-			if (HASBIT(rvi->callbackmask, CBM_REFIT_CAP)) {
+			if (HASBIT(rvi->callbackmask, CBM_REFIT_CAPACITY)) {
 				/* Check the 'refit capacity' callback */
 				CargoID temp_cid = v->cargo_type;
 				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;
 			}