(svn r6468) -Codechange r6464: now use error() when failing refit in autoreplace to ensure that such a failure will not break a game
authorbjarni
Sat, 16 Sep 2006 22:09:26 +0000
changeset 4613 8b561558309f
parent 4612 12b0b94205f5
child 4614 82d41ead0e22
(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)
lang/english.txt
vehicle.c
--- 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
--- 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);
 			}
 		}