(svn r3292) - Autoreplace: Disallow replacing to an engine type that already has a replacement set up; this stops loops being set up.

This commit is contained in:
peter1138 2005-12-13 12:31:48 +00:00
parent 04f39ef749
commit 560a4a9c4a
1 changed files with 2 additions and 0 deletions

View File

@ -831,10 +831,12 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
// Disable the "Start Replacing" button if:
// Either list is empty
// or Both lists have the same vehicle selected
// or The selected replacement engine has a replacement (to prevent loops)
// or The right list (new replacement) has the existing replacement vehicle selected
if (selected_id[0] == INVALID_ENGINE ||
selected_id[1] == INVALID_ENGINE ||
selected_id[0] == selected_id[1] ||
EngineReplacement(p, selected_id[1]) != INVALID_ENGINE ||
EngineReplacement(p, selected_id[0]) == selected_id[1]) {
SETBIT(w->disabled_state, 4);
} else {