読者です 読者をやめる 読者になる 読者になる

shingoushori's dialy

音信号処理を専ら研究していた元博士後期課程の学生によるメモ

Simutransで, "日本の役場セット"の問題を無理やり直す

<欲望>
筆者は, 鉄道経営シミュレーションが好きである.
Simutrans(http://japanese.simutrans.com)は, 素晴らしい.

"日本の役場セット" ( アドオン/建物2 - Simutrans日本語化・解説 ) は, 
なかなかニヤける.
しかし, 一番大きい庁舎(building.05_CITY.pak)に変わった後に, 一段階小さい庁舎(building.04_CITY.pak)に建て戻しされるという悲しい問題がある.

筆者の使っているバージョンは古く(pak64 112.3), 気がついたら新しいバージョンでは治っていそうだ. ただし, 新しいバージョンでは筆者の使っているバージョンのデータが開けず, もっと悲しい...

そこで, 古いバージョン(pak64 112.3)を延命すべく, 無理やりにでも弄れるようになりたいと思っておるわけです...

 

<原因の所見>

一番大きい庁舎(building.05_CITY.pak)と一段階小さい庁舎(building.04_CITY.pak)とで, 
建て替え判定に用いられていると思われる人口の数字が逆転している.
前者が34464人, 後者が50000人だと思う.

 

<無理やり直し手法>

バイナリエディタで, 該当箇所を書き換える.

pakを作り直せればよいのですが, 筆者はmacがメインであったりなんなりでそれが難しかったのです...
バイナリエディタには 0xED ( http://www.suavetech.com/0xed/0xed.html ) を使いました.

該当箇所は, 0すたーとの16進数で 00053 ~ 00057 byte までの 4 byte だと思われます.
ここの数字が先述の 34464 (A0 86 00 00), 50000 (50 C3 00 00) だったわけです.

そして, この数字を弄ることで, 無事問題を回避することに成功しました.

 

<発展>

さらに発展した使い方として, ここの数字を 0 (00 00 00 00) にしたものを用意し, 適宜置き換えるというのを考えました.

元々の問題を逆手に取り ... 建て替え判定をバカにしてしまうことで, 建て替えを手動で制御できます.