(svn r20545) -Codechange: make sure an OrderBackup gets cleared when the depot it belongs to gets removed, the depot window gets closed or when another vehicle gets sold in a depot

This commit is contained in:
rubidium
2010-08-18 18:52:16 +00:00
parent e242294530
commit 019878118d
6 changed files with 42 additions and 25 deletions

View File

@@ -261,6 +261,7 @@ struct DepotWindow : Window {
~DepotWindow()
{
DeleteWindowById(WC_BUILD_VEHICLE, this->window_number);
OrderBackup::Reset(this->window_number);
}
/**
@@ -978,12 +979,9 @@ struct DepotWindow : Window {
bool is_engine = (v->type != VEH_TRAIN || Train::From(v)->IsFrontEngine());
if (is_engine) {
OrderBackup::Reset();
new OrderBackup(v);
}
if (is_engine) OrderBackup::Backup(v);
if (!DoCommandP(v->tile, v->index | sell_cmd << 16, 0, GetCmdSellVeh(v->type)) && is_engine) OrderBackup::Reset();
if (!DoCommandP(v->tile, v->index | sell_cmd << 16, 0, GetCmdSellVeh(v->type)) && is_engine) OrderBackup::Reset(this->window_number);
break;
}