DQ3 盗賊の登録機能分離3
前回のエントリで大体の実装は終わったので残りの「盗賊を登録した時にその場で仲間にするか」を実装します。4人パーティの場合はその場で誰かを外さないといけないといけないわけですが、これはルイーダの酒場の「仲間離脱処理」を呼ぶことで対応します(当然台詞もそのままだと女口調なので切り替える必要あり)。
登録所変更一覧
前回のエントリで大体の実装は終わったので残りの「盗賊を登録した時にその場で仲間にするか」を実装します。4人パーティの場合はその場で誰かを外さないといけないといけないわけですが、これはルイーダの酒場の「仲間離脱処理」を呼ぶことで対応します(当然台詞もそのままだと女口調なので切り替える必要あり)。
今回から実装に入ります。
03DAEB | PHP | Push P Flag | |
---|---|---|---|
03DAEC | REP #$30 | m=off(A/M:16b) x=off(X/Y:16b) | |
03DAEE | PHA | Push A | |
03DAEF | PHX | Push X | |
03DAF0 | PHY | Push Y | |
03DAF1 | PHB | Push DB | |
03DAF2 | PEA #$7E7E | Push #$7E7E | |
03DAF5 | PLB | Pull DB | |
03DAF6 | PLB | Pull DB | |
03DAF7 | JSL $CAFDE2 | SR: $0AFDE2 | 登録所台詞1(登録しますか) |
略 |
SFC版での目玉追加要素でもあった新職業「盗賊」ですが、序盤はFCらしさを味わってもらおうと思ったのでそれっぽい場所に盗賊の登録所だけを移動することにしました。アリアハンとは完全に切り離して盗賊はここでしか外せないことも考えたんですがいちいちシャンパーニに来ないと盗賊を外せないというのも面倒なので、「名簿はアリアハンと共有」という若干苦しい設定になりました(具体的にはどうやってやるんだろう?)。前準備としてマップエディタでポチポチと新設のフロアを作って移動できるようにしておきます。この辺は別に目新しいこともないので省略します。
盗賊の登録機能をシャンパーニの塔B1F(新設)に移すにあたって、やるべきことは以下のことになります。
1については処理の場所がわかれば難しいことではありません。2,3は方針として「SRを新設する」のと「既存のSRで分岐する」がありますが、基本的に異なるのはセリフ部分なのと、登録所や仲間離脱処理自体が巨大(200バイト以上)なのもあってコピーではなく既存の処理の中で行うことにしました。盗賊の登録所処理を表すフラグとして$7E35B6の3ビット目を使用します。