Feature: Support CB 0x10 for RVs and ships. diff -r 2e40a7d66e8a src/newgrf_callbacks.h --- a/src/newgrf_callbacks.h Wed Nov 17 20:41:03 2010 +0100 +++ b/src/newgrf_callbacks.h Wed Nov 17 20:42:29 2010 +0100 @@ -279,7 +279,7 @@ * Some callbacks are always used and don't have a mask. */ enum VehicleCallbackMask { - CBM_VEHICLE_VISUAL_EFFECT = 0, ///< Visual effects and wagon power (trains only) + CBM_VEHICLE_VISUAL_EFFECT = 0, ///< Visual effects and wagon power (trains, road vehicles and ships) CBM_VEHICLE_LENGTH = 1, ///< Vehicle length (trains and road vehicles) CBM_VEHICLE_LOAD_AMOUNT = 2, ///< Load amount CBM_VEHICLE_REFIT_CAPACITY = 3, ///< Cargo capacity after refit diff -r 2e40a7d66e8a src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp Wed Nov 17 20:41:03 2010 +0100 +++ b/src/roadveh_cmd.cpp Wed Nov 17 20:42:29 2010 +0100 @@ -188,6 +188,9 @@ u->rcache.cached_veh_length = GetRoadVehLength(u); v->rcache.cached_total_length += u->rcache.cached_veh_length; + /* Update visual effect */ + v->UpdateVisualEffect(); + /* Invalidate the vehicle colour map */ u->colourmap = PAL_NONE; } @@ -1477,6 +1480,8 @@ if (v->IsInDepot() && RoadVehLeaveDepot(v, true)) return true; + v->ShowVisualEffect(); + /* Check how far the vehicle needs to proceed */ int j = RoadVehAccelerate(v); diff -r 2e40a7d66e8a src/ship_cmd.cpp --- a/src/ship_cmd.cpp Wed Nov 17 20:41:03 2010 +0100 +++ b/src/ship_cmd.cpp Wed Nov 17 20:42:29 2010 +0100 @@ -156,6 +156,8 @@ void Ship::UpdateCache() { this->vcache.cached_max_speed = GetVehicleProperty(this, PROP_SHIP_SPEED, ShipVehInfo(this->engine_type)->max_speed); + + this->UpdateVisualEffect(); } Money Ship::GetRunningCost() const @@ -446,6 +448,8 @@ CheckShipLeaveDepot(v); + v->ShowVisualEffect(); + if (!ShipAccelerate(v)) return; GetNewVehiclePosResult gp = GetNewVehiclePos(v);