Connect new plan lines to end of previous line when ctrl pressed

pull/336/head
Jonathan G Rennison 3 years ago
parent f53b295a58
commit 6a4d849cba

@ -162,6 +162,7 @@ struct Plan : PlanPool::PoolItem<&_plan_pool> {
Owner owner;
PlanLineVector lines;
PlanLine *temp_line;
TileIndex last_tile;
bool visible;
bool visible_by_all;
bool show_lines;
@ -178,6 +179,7 @@ struct Plan : PlanPool::PoolItem<&_plan_pool> {
this->show_lines = false;
this->colour = COLOUR_WHITE;
this->temp_line = new PlanLine();
this->last_tile = INVALID_TILE;
}
~Plan()
@ -236,6 +238,7 @@ struct Plan : PlanPool::PoolItem<&_plan_pool> {
free(buffer);
}
this->temp_line->MarkDirty();
this->last_tile = this->temp_line->tiles.back();
this->temp_line->Clear();
}
return ret;

@ -381,6 +381,10 @@ struct PlansWindow : Window {
const Point p = GetTileBelowCursor();
const TileIndex tile = TileVirtXY(p.x, p.y);
if (_current_plan && tile < MapSize()) {
if (_ctrl_pressed && _current_plan->temp_line->tiles.empty() && _current_plan->last_tile != INVALID_TILE) {
_current_plan->StoreTempTile(_current_plan->last_tile);
_current_plan->last_tile = INVALID_TILE;
}
_current_plan->StoreTempTile(tile);
_thd.selstart = _thd.selend;
}

Loading…
Cancel
Save