# HG changeset patch # User bjarni # Date 1158444566 0 # Node ID 8b561558309fd148a1c55b6765f0e6a5fd4c1539 # Parent 12b0b94205f59ee4a96b3d38ede2abbf1aabd27a (svn r6468) -Codechange r6464: now use error() when failing refit in autoreplace to ensure that such a failure will not break a game We should only reach this error() if there is a bug, that would otherwise make the vehicles carry a different type of cargo without telling the user This also kills the warning added in r6464 (oops) diff -r 12b0b94205f5 -r 8b561558309f lang/english.txt --- a/lang/english.txt Sat Sep 16 21:07:38 2006 +0000 +++ b/lang/english.txt Sat Sep 16 22:09:26 2006 +0000 @@ -2906,8 +2906,6 @@ STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{SKIP}{SKIP}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTAL FEATURE {}Switch between engine and wagon replacement windows.{}Wagon replacement will only be done if the new wagon can be refitted into carrying the same type of cargo as the old one. This is checked for each wagon when the actual replacement takes place. STR_ENGINE_NOT_BUILDABLE :{WHITE}Engine is not buildable -STR_AUTOREPLACE_FAILED :{WHITE}BUG: Autoreplace refit failure -STR_AUTOREPLACE_REFIT_FAILURE :{WHITE}{STRING} replaced into {STRING} failed to refit to {STRING} STR_ENGINES :Engines STR_WAGONS :Wagons diff -r 12b0b94205f5 -r 8b561558309f vehicle.c --- a/vehicle.c Sat Sep 16 21:07:38 2006 +0000 +++ b/vehicle.c Sat Sep 16 22:09:26 2006 +0000 @@ -1779,14 +1779,8 @@ /* refit if needed */ if (replacement_cargo_type != CT_NO_REFIT) { if (CmdFailed(DoCommand(0, new_v->index, replacement_cargo_type, DC_EXEC, CMD_REFIT_VEH(new_v->type)))) { - /* We should not be here - * being here shows a failure indicates a bug in GetNewCargoTypeForReplace() or incorrect estimation costs */ - SetDParam(0, GetCustomEngineName(old_v->engine_type)); - SetDParam(1, GetCustomEngineName(new_v->engine_type)); - SetDParam(2, _cargoc.names_s[replacement_cargo_type]); - ShowInfo("Error: Autoreplace failed to refit (bug)"); - ShowErrorMessage(STR_AUTOREPLACE_REFIT_FAILURE, STR_AUTOREPLACE_FAILED, 0 ,0); - NOT_REACHED(); // stop debug builds at this error for easier debugging + /* Being here shows a failure, which most likely is in GetNewCargoTypeForReplace() or incorrect estimation costs */ + error("Autoreplace failed to refit. Replace engine %d to %d and refit to cargo %d", old_v->engine_type, new_v->engine_type, replacement_cargo_type); } }