diff --git a/simtool.cc b/simtool.cc index 6a3ac0953..6b82cdbd2 100644 --- a/simtool.cc +++ b/simtool.cc @@ -4272,6 +4272,10 @@ DBG_MESSAGE("tool_station_aux()", "building %s on square %d,%d for waytype %x", } } } + // invert layout if shift pressed + if ( is_shift_pressed() ) { + layout ^= 8; + } // avoid orientation on 8 tiled buildings layout &= (desc->get_all_layouts()-1); } @@ -4285,11 +4289,11 @@ DBG_MESSAGE("tool_station_aux()", "building %s on square %d,%d for waytype %x", if( old_halt.is_bound() ) { gebaeude_t* gb = bd->find(); const building_desc_t *old_desc = gb->get_tile()->get_desc(); - if( old_desc == desc ) { + if( old_desc == desc && !is_ctrl_pressed() && !is_shift_pressed() ) { // already has the same station return NULL; } - if( old_desc->get_capacity() >= desc->get_capacity() && !is_ctrl_pressed() ) { + if( old_desc->get_capacity() >= desc->get_capacity() && !is_ctrl_pressed() && !is_shift_pressed() ) { return "Upgrade must have\na higher level"; } old_cost = old_desc->get_price(welt)*old_desc->get_x()*old_desc->get_y();