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

マップの追加ができるようになったのでB1Fと同じようにして最下層までマップを追加し、問題なく行き来できることを確認します(マップ作成+設定は結構時間がかかったんですが、書くことはないので省略)。今回はギミックとして「同フロア内の封魔石を破壊したら呪文が使えるようになる」としているので、その部分が他と異なる部分です。

  • SR: $0DE976 NPC1_TalkSR_058C(B2Fの封魔石のNPC)(新SR)
0DE976 JSL $CDEBDB SR: $0DEBDB イベント戦闘(vs封魔石-青)
0DE97A JSL $C1E32E SR: $01E32E 引数:1#$003F BGM再生
0DE980 LDA #$0019 A=#$0019
0DE983 JSL $C74B8C SR: $074B8C 行動対象キャラクター指定
0DE987 JSL $C75930 SR: $075930 キャラクター消滅
0DE98B LDA #$0010 A=#$0010
0DE98E TSB $35B2 A or $35B2 オリハルコンの洞窟B2Fの封魔石Bを破壊した
0DE991 JSL $CDEC31 SR: $0DEC31 オリハルコンの洞窟B2F呪文封印解除処理
0DE995 RTL return
  • SR: $0DEC31 オリハルコンの洞窟B2F呪文封印解除処理(新SR)
0DEC31 LDA #$0020 A=#$0020
0DEC34 JSL $C74B39 SR: $074B39 処理にインターバルを置く
0DEC38 JSL $CDEB7F SR: $0DEB7F オリハルコンの洞窟B2Fの呪文封印を解いたか
0DEC3C BCC #$0C if(c==off) goto $0DEC4A
0DEC3E JSL $C7771E SR: $07771E 呪文有効環境設定
0DEC42 JSL $C737BE SR: $0737BE 引数:1#$103F メッセージ表示
0DEC48 BRA #$06 goto $0DEC50
0DEC4A JSL $C737BE SR: $0737BE 引数:1#$103E メッセージ表示
0DEC50 JSL $CDACD2 SR: $0DACD2 キー入力でメッセージウィンドウを閉じる
0DEC54 JSL $CDD65C SR: $0DD65C PC表示?
0DEC58 RTL return
  • SR: $0DEB7F オリハルコンの洞窟B2Fの呪文封印を解いたか(該当c=on)(新SR)
0DEB7F LDA $35B2 A=$35B2
0DEB82 AND #$0010 A&=#$0010 オリハルコンの洞窟B2Fの封魔石Aを破壊した
0DEB85 BEQ #$0A if(z==on) goto $0DEB91
0DEB87 LDA $35B2 A=$35B2
0DEB8A AND #$0020 A&=#$0020 オリハルコンの洞窟B2Fの封魔石Bを破壊した
0DEB8D BEQ #$02 if(z==on) goto $0DEB91
0DEB8F SEC c=on
0DEB90 RTL return
0DEB91 CLC c=off
0DEB92 RTL return

封魔石を倒すたびに「フロア内の封魔石を全部倒しているか」の判定を行い、倒していれば呪文が使えるようにする、というだけです。この処理を全フロアについて実装します。