diff --git a/simtool.cc b/simtool.cc index acc4d7b05..e2e53db27 100644 --- a/simtool.cc +++ b/simtool.cc @@ -619,6 +619,7 @@ DBG_MESSAGE("tool_remover()", "removing tunnel from %d,%d,%d",gr->get_pos().x, // since buildings can have more than one tile, we must handle them together gebaeude_t* gb = gr->find(); if(gb != NULL && (type == obj_t::gebaeude || type == obj_t::undefined)) { + gb = gb->get_first_tile(); msg = gb->is_deletable(player); if(msg) { return false; @@ -1711,8 +1712,11 @@ const char *tool_buy_house_t::work( player_t *player, koord3d pos) // since buildings can have more than one tile, we must handle them together gebaeude_t* gb = gr->find(); + if( gb==NULL ){ + return ""; + } gb = gb->get_first_tile(); - if( gb== NULL || !gb->is_city_building() || !player_t::check_owner(gb->get_owner(),player) ) { + if( !gb->is_city_building() || !player_t::check_owner(gb->get_owner(),player) ) { return "Das Feld gehoert\neinem anderen Spieler\n"; } @@ -1721,6 +1725,7 @@ const char *tool_buy_house_t::work( player_t *player, koord3d pos) return ""; } + pos = gb->get_pos(); player_t *old_owner = gb->get_owner(); const building_tile_desc_t *tile = gb->get_tile(); const building_desc_t * bdsc = tile->get_desc();