mirror of https://github.com/OpenTTD/OpenTTD
(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.
parent
5353d05865
commit
eeeebf9f6d
|
@ -710,6 +710,7 @@ int32 CmdReplaceVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||||
case 3: {
|
case 3: {
|
||||||
EngineID old_engine_type = GB(p2, 0, 16);
|
EngineID old_engine_type = GB(p2, 0, 16);
|
||||||
EngineID new_engine_type = GB(p2, 16, 16);
|
EngineID new_engine_type = GB(p2, 16, 16);
|
||||||
|
int32 cost;
|
||||||
|
|
||||||
if (new_engine_type != INVALID_ENGINE) {
|
if (new_engine_type != INVALID_ENGINE) {
|
||||||
/* First we make sure that it's a valid type the user requested
|
/* First we make sure that it's a valid type the user requested
|
||||||
|
@ -729,10 +730,14 @@ int32 CmdReplaceVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
|
||||||
if (!HASBIT(GetEngine(new_engine_type)->player_avail, _current_player))
|
if (!HASBIT(GetEngine(new_engine_type)->player_avail, _current_player))
|
||||||
return CMD_ERROR;
|
return CMD_ERROR;
|
||||||
|
|
||||||
return AddEngineReplacement(p, old_engine_type, new_engine_type, flags);
|
cost = AddEngineReplacement(p, old_engine_type, new_engine_type, flags);
|
||||||
} else {
|
} 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:
|
case 4:
|
||||||
|
|
|
@ -940,14 +940,12 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
|
||||||
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0];
|
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0];
|
||||||
EngineID veh_to = WP(w, replaceveh_d).sel_engine[1];
|
EngineID veh_to = WP(w, replaceveh_d).sel_engine[1];
|
||||||
DoCommandP(0, 3, veh_from + (veh_to << 16), NULL, CMD_REPLACE_VEHICLE);
|
DoCommandP(0, 3, veh_from + (veh_to << 16), NULL, CMD_REPLACE_VEHICLE);
|
||||||
SetWindowDirty(w);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 6: { /* Stop replacing */
|
case 6: { /* Stop replacing */
|
||||||
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0];
|
EngineID veh_from = WP(w, replaceveh_d).sel_engine[0];
|
||||||
DoCommandP(0, 3, veh_from + (INVALID_ENGINE << 16), NULL, CMD_REPLACE_VEHICLE);
|
DoCommandP(0, 3, veh_from + (INVALID_ENGINE << 16), NULL, CMD_REPLACE_VEHICLE);
|
||||||
SetWindowDirty(w);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue