diff --git simworld.cc simworld.cc index 13ad33734..17f932b7e 100644 --- simworld.cc +++ simworld.cc @@ -5155,7 +5155,17 @@ static recursive_mutex_maker_t height_mutex_maker(height_mutex); void karte_t::plans_finish_rd( sint16 x_min, sint16 x_max, sint16 y_min, sint16 y_max ) { - sint8 min_h = min_height, max_h = max_height; +#ifdef MULTI_THREAD + pthread_mutex_lock(&height_mutex); +#endif + + sint8 min_h = min_height; + sint8 max_h = max_height; + +#ifdef MULTI_THREAD + pthread_mutex_unlock(&height_mutex); +#endif + for( int y = y_min; y < y_max; y++ ) { for( int x = x_min; x < x_max; x++ ) { planquadrat_t *plan = access_nocheck(x,y); @@ -5182,6 +5192,7 @@ void karte_t::plans_finish_rd( sint16 x_min, sint16 x_max, sint16 y_min, sint16 } } } + // update heights #ifdef MULTI_THREAD pthread_mutex_lock( &height_mutex );