Foren: バグ報告 (Thread #22619)

HVStructure.cs (2009-05-04 13:39 by riorio #43579)

【FreeTrainのバージョン】Avβ-0.6.2
【OS】 Windows XP(SP3)
【.Net Frameworkのバージョン】3.5
【バグの内容】プレイヤーが建設した半ボクセル建築が、街の自動発展に際してコンピュータに破壊され通常物件が建てられてしまう。

半ボクセル建築のpluginのDLLソースであるHVStructure.csの188行目でisOwned関数が常にfalseを返すようになっていますが、trueを返すようにすれば所有物と判断されて破壊から防がれるそうです。

この改善をしたDLLを下記にて配布していますが、FreeTrainEX Av本体でも改善していただけると助かります。
http://www.hiyohiyo.info/~riorio/freetrain/plugin-HVbugfix.html

Reply to #43579×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: HVStructure.cs (2009-05-06 23:18 by wize2006jp #43610)

こちらで調査した結果です。
半ボクセル建築物を調査した結果、1ボクセルに2つの建物が同居しているデータ構造となっている。
通常、1ボクセルは1人の所有者によって所有されている状態であるが、半ボクセル建築物の場合は、最大2件の建物が同居するため、所有者も最大2人となる。
元々、所有者は1人という考えで開発されているため、所有者に関しては1人分しか保持することができない。
そのため、既存の所有者変数には持てないため、別に保持するための変数を設ける必要がある。
また、そうなった場合はコンピュータ側が対象のボクセルに建築できるかどうかを判定するために所有者を確認しているが、その問い合わせは1ボクセル単位である。
従って、現在のインターフェイスでは1ボクセルに同居する2つの建物の所有者を確認することはできない。
暫定案としては、1ボクセル中に建設されている半ボクセル建築物のどちらかの所有者がプレイヤーである場合は、所有権あり、どちらもプレイヤーの所有物でない場合は所有権なしとして判定させる。
但し、この方法をとる場合は現在のセーブデータ上では所有者がないため、全てプレイヤーの所有物か、もしくは全てプレイヤーの所有物外とするしかない。
また、コンピュータがプレイヤーが所有する半ボクセル建築物のあるボクセルには建築できなくなる。

上記の調査結果より、現在の修正方法では
1.全ての半ボクセル建築物の所有者はプレイヤーの所有物となる。
2.コンピュータがプレイヤーが所有する半ボクセル建築物のあるボクセルには建築できなくなる。
の2点で問題があると思います。
上記の問題点をどうするか検討する必要があります。
Reply to #43579

Reply to #43610×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: HVStructure.cs (2009-05-07 09:27 by riorio #43625)

詳細な調査おつかれさまです。

前提として、
 ・コンピュータが半ボクセル建築を行い半ボクセル物件を所有することをアリとするか否か
があるのではないかと思いました。

現状、コンピュータは半ボクセル建築を行わず、半ボクセル物件を所有することも基本的にありません。
この現状を維持するという前提でかまわなければ、コンピュータは半ボクセル建築を行わないのであるから、半ボクセルをプレイヤーが所有しているボクセルにコンピュータが建築できないこと(2.)は問題とはならないはずです。
同時に1.の半ボクセル建築の所有者がプレイヤーとなってしまうことについても問題ではないでしょう。

将来的に、コンピュータが半ボクセル物件を建てることを可能とする根本的機能向上をおこなうことになったときに、ボクセルのデータ構造から全面的に見直すということは考慮して、現時点では先送りでいいんじゃないかと思うのですが。
Reply to #43610

Reply to #43625×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: HVStructure.cs (2009-05-09 01:04 by wize2006jp #43675)

元々の修正のままとしました。
このバグはベータ0.7で解決しました。
Reply to #43625

Reply to #43675×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden