(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)
This commit is contained in:
bjarni
2006-09-16 22:09:26 +00:00
parent 03d3d5677f
commit e4d044871b
2 changed files with 2 additions and 10 deletions

View File

@@ -1779,14 +1779,8 @@ static int32 ReplaceVehicle(Vehicle **w, byte flags, int32 total_cost)
/* 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);
}
}