Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

テレポートレベル巻物で下の階へ移動してから階段を登ると巻物を読んだ場所に出ることがある #192

Closed
taotao54321 opened this issue Feb 18, 2021 · 2 comments · Fixed by #275
Assignees
Labels
bug Something isn't working

Comments

@taotao54321
Copy link
Contributor

taotao54321 commented Feb 18, 2021

OSDNフォーラム より:

荒野からダンジョンに入り適当な場所でテレポートレベルの巻物を使用し、下の階に移動する。
その後階段をのぼってテレポートレベルを使用した階層まで戻ると、階段の上ではなくテレポートレベルの巻物を使用した場所に出現する。
v2.x系列でも同様の処理だったかは確認していませんが、階段をのぼったのに違う場所に出るのは変なので報告します。

原因となるコードは特定できていないが、再現は確認できた。セーブデータを添付しておく(起動直後に < で階段を登ると平地に出る)。
自動セーブはoffになっているが、テレポートレベルの巻物を読むまではonにしていた。
1000.dbg.zip

@taotao54321 taotao54321 changed the title テレポートレベル巻物で下の階へ移動してから階段を登ると巻物を読んだ場所に出る テレポートレベル巻物で下の階へ移動してから階段を登ると巻物を読んだ場所に出ることがある Feb 18, 2021
@iks3
Copy link
Contributor

iks3 commented Feb 18, 2021

階層保存の際に最後の位置を保存して、そこを復帰時の移動場所(階の結合点)にしていることが原因のようです。
ある階(Aとする)の階段がない場所から下の階テレポート・レベルし、下の階(Bとする)から階Aに戻ると、最後にいた階段のない場所に復帰します。
ここで階段生成の呪文で降り階段を生成して降りると、階Bに復帰できます。

ですので、階層移動で保存された階に移動した場合、足元が階段ではない場合はなんらかの処理をして足元を適切な階段にする必要がありそうです。

@habu1010
Copy link
Member

とりあえず、Discordで私とiksさんで話し合った妥当そうな解決案を記しておきます。

  • テレポレベル時に、移動方向の階段(坑道除く)を探して、保存階への繋がりがないものがあればそこをそのフロアの最後の位置として保存する
  • 移動方向の階段の中に保存階への繋がりが無いものがなかった場合は、移動先の階でつながりを作らない(可能であれば)。または、保存階に復帰した場合足元が階段でなければ新規階を生成する。

@sikabane-works sikabane-works added the bug Something isn't working label Feb 18, 2021
@habu1010 habu1010 self-assigned this Feb 23, 2021
habu1010 added a commit to habu1010/hengband that referenced this issue Feb 23, 2021
レベルテレポートで移動した時に移動元フロアの階段から適当なものを
選んで移動先のフロアにつなげる処理が呼ばれていないため、移動元
フロアの最後に居た位置に戻ってしまうのが原因。
そもそも上述の処理が呼ばれていない原因となっている、フロアIDを
新規に取得する処理が不要だと思われる(後に再度取得されている)
ので、その部分の処理を削除して階段をつなげる処理が必ず
行われるようにする。
habu1010 added a commit that referenced this issue Feb 23, 2021
[fix] テレポートレベル巻物で下の階へ移動してから階段を登ると巻物を読んだ場所に出ることがある #192
sikabane-works added a commit to sikabane-works/hengband that referenced this issue Apr 5, 2021
…-field

[Fix] 闘技場のフロア生成がマップサイズ修正に伴いおかしくなっていたので生成. / Fix generation of batting…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment