1
0
Fork 0

(svn r23581) -Fix (r23518) [FS#4890]: Cloning of vehicles crashed.

release/1.2
frosch 2011-12-17 21:22:10 +00:00
parent d0e7b0fd9d
commit fba9c756c7
1 changed files with 11 additions and 3 deletions

View File

@ -207,7 +207,15 @@ CommandCost CmdSellVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
return ret; return ret;
} }
/** Helper to run the refit cost callback. */ /**
* Helper to run the refit cost callback.
* @param v The vehicle we are refitting, can be NULL.
* @param engine_type Which engine to refit
* @param new_cid Cargo type we are refitting to.
* @param new_subtype New cargo subtype.
* @param [out] auto_refit_allowed The refit is allowed as an auto-refit.
* @return Price for refitting
*/
static int GetRefitCostFactor(const Vehicle *v, EngineID engine_type, CargoID new_cid, byte new_subtype, bool *auto_refit_allowed) static int GetRefitCostFactor(const Vehicle *v, EngineID engine_type, CargoID new_cid, byte new_subtype, bool *auto_refit_allowed)
{ {
/* Prepare callback param with info about the new cargo type. */ /* Prepare callback param with info about the new cargo type. */
@ -228,7 +236,7 @@ static int GetRefitCostFactor(const Vehicle *v, EngineID engine_type, CargoID ne
} }
*auto_refit_allowed = e->info.refit_cost == 0; *auto_refit_allowed = e->info.refit_cost == 0;
return (v->cargo_type != new_cid) ? e->info.refit_cost : 0; return (v == NULL || v->cargo_type != new_cid) ? e->info.refit_cost : 0;
} }
/** /**
@ -237,8 +245,8 @@ static int GetRefitCostFactor(const Vehicle *v, EngineID engine_type, CargoID ne
* @param engine_type Which engine to refit * @param engine_type Which engine to refit
* @param new_cid Cargo type we are refitting to. * @param new_cid Cargo type we are refitting to.
* @param new_subtype New cargo subtype. * @param new_subtype New cargo subtype.
* @param [out] auto_refit_allowed The refit is allowed as an auto-refit.
* @return Price for refitting * @return Price for refitting
* @return[out] auto_refit_allowed The refit is allowed as an auto-refit.
*/ */
static CommandCost GetRefitCost(const Vehicle *v, EngineID engine_type, CargoID new_cid, byte new_subtype, bool *auto_refit_allowed) static CommandCost GetRefitCost(const Vehicle *v, EngineID engine_type, CargoID new_cid, byte new_subtype, bool *auto_refit_allowed)
{ {