(svn r4198) - NewGRF: Rename GetCallBackResult() to GetVehicleCallback(), as other types will exist later, and use separate parameters instead of bitshifting.
authorpeter1138
Fri, 31 Mar 2006 10:14:25 +0000
changeset 3390 ae4b0872dc78
parent 3389 56f72f7838cc
child 3391 3c8a6643ed15
(svn r4198) - NewGRF: Rename GetCallBackResult() to GetVehicleCallback(), as other types will exist later, and use separate parameters instead of bitshifting.
newgrf_engine.c
newgrf_engine.h
train_cmd.c
--- a/newgrf_engine.c	Fri Mar 31 10:04:18 2006 +0000
+++ b/newgrf_engine.c	Fri Mar 31 10:14:25 2006 +0000
@@ -476,18 +476,19 @@
 }
 
 /**
- * Evaluates a newgrf callback
- * @param callback_info info about which callback to evaluate
- *  (bit 0-7)  = CallBack id of the callback to use, see CallBackId enum
- *  (bit 8-15) = Other info some callbacks need to have, callback specific, see CallBackId enum, not used yet
- * @param engine Engine type of the vehicle to evaluate the callback for
- * @param vehicle The vehicle to evaluate the callback for, NULL if it doesnt exist (yet)
+ * Evaluate a newgrf callback for vehicles
+ * @param callback The callback to evalute
+ * @param param1   First parameter of the callback
+ * @param param2   Second parameter of the callback
+ * @param engine   Engine type of the vehicle to evaluate the callback for
+ * @param vehicle  The vehicle to evaluate the callback for, or NULL if it doesnt exist yet
  * @return The value the callback returned, or CALLBACK_FAILED if it failed
  */
-uint16 GetCallBackResult(uint16 callback_info, EngineID engine, const Vehicle *v)
+uint16 GetVehicleCallback(byte callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v)
 {
 	const SpriteGroup *group;
 	CargoID cargo = GC_DEFAULT;
+	uint16 callback_info = callback | (param1 << 8); // XXX Temporary conversion between new and old format.
 
 	if (v != NULL)
 		cargo = _global_cargo_id[_opt.landscape][v->cargo_type];
--- a/newgrf_engine.h	Fri Mar 31 10:04:18 2006 +0000
+++ b/newgrf_engine.h	Fri Mar 31 10:14:25 2006 +0000
@@ -18,7 +18,7 @@
 void SetCustomEngineSprites(EngineID engine, byte cargo, struct SpriteGroup *group);
 // loaded is in percents, overriding_engine 0xffff is none
 int GetCustomEngineSprite(EngineID engine, const Vehicle* v, Direction direction);
-uint16 GetCallBackResult(uint16 callback_info, EngineID engine, const Vehicle *v);
+uint16 GetVehicleCallback(byte callback, uint32 param1, uint32 param2, EngineID engine, const Vehicle *v);
 bool UsesWagonOverride(const Vehicle *v);
 #define GetCustomVehicleSprite(v, direction) GetCustomEngineSprite(v->engine_type, v, direction)
 #define GetCustomVehicleIcon(et, direction) GetCustomEngineSprite(et, NULL, direction)
--- a/train_cmd.c	Fri Mar 31 10:04:18 2006 +0000
+++ b/train_cmd.c	Fri Mar 31 10:14:25 2006 +0000
@@ -164,7 +164,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_TRAIN_WAGON_POWER,  u->engine_type, u);
+					uint16 callback = GetVehicleCallback(CBID_TRAIN_WAGON_POWER, 0, 0, u->engine_type, u);
 
 					if (callback != CALLBACK_FAILED)
 						u->u.rail.cached_vis_effect = callback;
@@ -191,7 +191,7 @@
 		// check the vehicle length (callback)
 		veh_len = CALLBACK_FAILED;
 		if (HASBIT(rvi_u->callbackmask, CBM_VEHICLE_LENGTH))
-			veh_len = GetCallBackResult(CBID_TRAIN_VEHICLE_LENGTH,  u->engine_type, u);
+			veh_len = GetVehicleCallback(CBID_TRAIN_VEHICLE_LENGTH, 0, 0, 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
@@ -485,7 +485,7 @@
 	if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return 0;
 
 	for (i = 1; i < 10; i++) {
-		callback = GetCallBackResult(CBID_TRAIN_ARTIC_ENGINE + (i << 8), engine_type, NULL);
+		callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, engine_type, NULL);
 		if (callback == CALLBACK_FAILED || callback == 0xFF) break;
 	}
 
@@ -505,7 +505,7 @@
 	if (!HASBIT(rvi->callbackmask, CBM_ARTIC_ENGINE)) return;
 
 	for (i = 1; i < 10; i++) {
-		callback = GetCallBackResult(CBID_TRAIN_ARTIC_ENGINE + (i << 8), v->engine_type, NULL);
+		callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, v->engine_type, NULL);
 		if (callback == CALLBACK_FAILED || callback == 0xFF) return;
 
 		u->next = vl[i];
@@ -1737,7 +1737,7 @@
 				/* Check the 'refit capacity' callback */
 				CargoID temp_cid = v->cargo_type;
 				v->cargo_type = new_cid;
-				amount = GetCallBackResult(CBID_VEHICLE_REFIT_CAPACITY, v->engine_type, v);
+				amount = GetVehicleCallback(CBID_VEHICLE_REFIT_CAPACITY, 0, 0, v->engine_type, v);
 				v->cargo_type = temp_cid;
 			}