投稿者 トピック: [r3195以降]新しい町を作るとすべての産業施設と接続される  (参照数 7006 回)

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381
問題点:
新しい町を作ると、マップ上のすべての産業施設の労働者居住地に加えられてしまう。
factory_worker_minimum_towns、factory_worker_maximum_towns、factory_worker_radiusが一切考慮されない。

修正案:
この修正では単に、労働者居住地に追加可能かどうかを判断しているだけです。
本当は追加不可能な場合でも、すでにある労働者居住地より近ければ、それと置き換えるべきなんでしょうが、そんな面倒くさいことはしていません。
単なるバグ修正だけです。

コード: [選択]
Index: simcity.cc
===================================================================
--- simcity.cc (リビジョン 3199)
+++ simcity.cc (作業コピー)
@@ -1123,7 +1123,10 @@
  slist_iterator_tpl<fabrik_t*> fab_iter(welt->get_fab_list());
  arbeiterziele.clear();
  while (fab_iter.next()) {
- add_factory_arbeiterziel(fab_iter.get_current());
+ fabrik_t* fab = fab_iter.get_current();
+ if( (fab->get_arbeiterziele().get_count() < welt->get_einstellungen()->get_factory_worker_minimum_towns()  ||  koord_distance( fab->get_pos(), this->get_pos() ) < welt->get_einstellungen()->get_factory_worker_radius())  &&  fab->get_arbeiterziele().get_count()<welt->get_einstellungen()->get_factory_worker_maximum_towns() ) {
+ add_factory_arbeiterziel(fab);
+ }
  }
  DBG_MESSAGE("stadt_t::verbinde_fabriken()", "is connected with %i factories (sum_weight=%i).", arbeiterziele.get_count(), arbeiterziele.get_sum_weight());
 }
Index: simworld.cc
===================================================================
--- simworld.cc (リビジョン 3199)
+++ simworld.cc (作業コピー)
@@ -4214,7 +4214,10 @@
  for (weighted_vector_tpl<stadt_t*>::const_iterator i = stadt.begin(), end = stadt.end(); i != end; ++i) {
  // old versions did not save factory connections
  if(file->get_version()<99014) {
+ sint32 temp = get_einstellungen()->get_factory_worker_minimum_towns();
+ get_einstellungen()->set_factory_worker_minimum_towns(0);
  (*i)->verbinde_fabriken();
+ get_einstellungen()->set_factory_worker_minimum_towns(temp);
  }
  display_progress(x++, get_groesse_y() + 256 + stadt.get_count());
  }


問題を発見したので修正。99.14未満のゲームを読み込むときに、factory_worker_minimum_townsをゼロにセットするように修正しました。
« 最終編集: 2010/05/04 20:45 by z9999+ »

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381