DQ3 ストーリー変更(オリハルコンの洞窟4)

前回マップの追加とギミックのひとつの封魔石関連について説明したので、今回はもうひとつのギミックであるB2Fにある「じごくのかぎ(仮)」でしか開かない扉の設定を実装します。幸いにして、定義できる鍵の種別にずいぶんと余裕があったので比較的作業は楽でした(1バイトのフィールドにもかかわらずデータは0-6までしかありませんでした)。

  • データ: $080AE3 ドア開閉*1
ID ドア種別 X Y 不明2 不明3 鍵種別 フロア内管理番号
154 3 61 97 0 0 7 0

新たに鍵種別「7」を追加します。さらに、各ドア種別に対応した処理SR群に鍵種別「7」の場合の処理を追加します。

  • データ: $0896A6 ドア開閉関連処理SRアドレス群*2
ID ドアを開けられるかチェックするSR ドアの前でアイテムを使用したときのSR
07 CCFC72 CCFC84
  • SR: $0CFC72 ドア種別7を開けられるかチェックするSR(新SR)
0CFC72 LDA #$00EA A=#$00EA じごくのかぎのアイテムID
0CFC75 LDX #$0104 X=#$0104
0CFC78 JSL $C78238 SR: $078238 アイテム保持チェック(持っているc=on)
0CFC7C BCS #$05 if(c==on) goto $0CFC83
0CFC7E JSL $CCA587 SR: $0CA587 鍵のかかった扉を開けられなかったときの処理
0CFC82 CLC c=off
0CFC83 RTL return
  • SR: $0CFC84 ドアの前でアイテムを使用したときのSR(新SR)
0CFC84 LDA $C11B A=$C11B 使用したアイテムID取得?
0CFC87 CMP #$00EA A==#$00EA? アイテムIDがじごくのかぎか?
0CFC8A BEQ #$02 if(z==on) goto $0CFC8E
0CFC8C BRA #$03 goto $0CFC91
0CFC8E SEC c=on
0CFC8F BRA #$01 goto $0CFC92
0CFC91 CLC c=off
0CFC92 RTL return

もっと大変かと思っていたのですが割とさっくり実装できました。次回はボス戦を実装して追加ダンジョン編は終わりです。

*1:サイズ拡張のため場所を移動しています

*2:サイズ拡張のため場所を移動しています