Mercurial > hg > openttd
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; }