# HG changeset patch # User peter1138 # Date 1136231709 0 # Node ID a2f26f7361e3ab9522d6f3c05997c017b9270b63 # Parent d9602bf174f873c3dd9ca718e15e59d644c2d12a (svn r3359) - Autoreplace GUI: When starting or stopping a replacement, redraw the replace window after the command has completed, rather than after calling the command. diff -r d9602bf174f8 -r a2f26f7361e3 players.c --- a/players.c Fri Dec 30 22:09:01 2005 +0000 +++ b/players.c Mon Jan 02 19:55:09 2006 +0000 @@ -710,6 +710,7 @@ case 3: { EngineID old_engine_type = GB(p2, 0, 16); EngineID new_engine_type = GB(p2, 16, 16); + int32 cost; if (new_engine_type != INVALID_ENGINE) { /* First we make sure that it's a valid type the user requested @@ -729,10 +730,14 @@ if (!HASBIT(GetEngine(new_engine_type)->player_avail, _current_player)) return CMD_ERROR; - return AddEngineReplacement(p, old_engine_type, new_engine_type, flags); + cost = AddEngineReplacement(p, old_engine_type, new_engine_type, flags); } else { - return RemoveEngineReplacement(p, old_engine_type, flags); + cost = RemoveEngineReplacement(p, old_engine_type, flags); } + + if (IsLocalPlayer()) InvalidateWindow(WC_REPLACE_VEHICLE, GetEngine(old_engine_type)->type); + + return cost; } case 4: diff -r d9602bf174f8 -r a2f26f7361e3 vehicle_gui.c --- a/vehicle_gui.c Fri Dec 30 22:09:01 2005 +0000 +++ b/vehicle_gui.c Mon Jan 02 19:55:09 2006 +0000 @@ -940,14 +940,12 @@ EngineID veh_from = WP(w, replaceveh_d).sel_engine[0]; EngineID veh_to = WP(w, replaceveh_d).sel_engine[1]; DoCommandP(0, 3, veh_from + (veh_to << 16), NULL, CMD_REPLACE_VEHICLE); - SetWindowDirty(w); break; } case 6: { /* Stop replacing */ EngineID veh_from = WP(w, replaceveh_d).sel_engine[0]; DoCommandP(0, 3, veh_from + (INVALID_ENGINE << 16), NULL, CMD_REPLACE_VEHICLE); - SetWindowDirty(w); break; }