DQ3 すごろくシステム変更3

無限回廊フロアの実装がおわったので、あとは割と普通のフロアの実装…とか思ってたんですが、自然洞窟なので自然っぽく見せるのがメンドクセー!なのでサックリ終わると思ってたんですが、モチベーションの低下も相まって作業速度は下がりそう。困ったものです。

今回はすごろく中のよろずや関連の変更を行います。アイテム売却によるコイン稼ぎを防ぐために1個売ったら即退出させるようにします。

  • SR: $03C77C 店屋共通処理
03C788-91NOP
03C792JSR $F78ASR: $03F78Aおおごえ呼び出し用ショップID変更
03C7E1JSR $FF15SR: $03FF15売りにきた処理(すごろく中c=on)
03C7E4BCS #$D8if(c==on) goto $03C7BEすごろく中なら下記処理をしないで退出処理にジャンプさせる
03C7E6JSR $FF1DSR: $03FF1D店屋メッセージ表示(他になにかあるかい?)
03C7E9-BNOP

(6/24修正)
AレジスタにショップIDが格納されているため、そのままだとSR: $03FF09でAレジスタに値が上書きされてしまうので、スタックに積んで戻すようにした。PLAはcフラグには影響しない(はず)。

  • SR: $03F78A おおごえ呼び出し用ショップID変更(新SR)
03F78APHAPush A
03F78BJSL $C3FF09SR: $03FF09すごろく中かどうか(該当c=on)
03F78FPLAPull A
03F790BCS #$0Dif(c==on) goto $03F79F
03F792PEA #$3538Push #$3538
03F795PEA #$003FPush #$003F
03F798PEA #$7E00Push #$7E00
03F79BJSL $C902E9SR: $0902E9RAM上情報変更
03F79FRTSreturn

ショップIDを見てよろず屋の範囲(#$2D~#$32)にあったらおおごえで呼び出すショップIDにセットしない、という実装からすごろく中ならセットしない、というように変えました。一応説明しておくと、おおごえで呼び出されるショップは直前に買い物をしたショップが呼び出される、という仕様になっているため、なにもしないとよろず屋に入った後大声でよろずやを呼び出せてしまい、コインではなくゴールドで買い物が出来てしまいます。これはリリース後にバグとして報告してもらったもので、全く考慮外でした。もう1つ余談ですが、このショップIDのサイズは6ビットなのでショップのレコード拡張は64までにしておいた方が無難のようです。

  • SR: $03FF15 売りにきた処理(すごろく中c=on)(新SR)
03FF15JSR $CCB1SR: $03CCB1売りにきた処理
03FF18JSL $C3FF09SR: $03FF09すごろく中かどうか(該当c=on)
03FF1CRTSreturn

  • SR: $03FF1D 店屋メッセージ表示(他になにかあるかい?)(新SR)
03FF1DLDA $C3CB4C,XA=$03CB4C+X
03FF21JSL $C1A95ASR: $01A95A
03FF25RTSreturn

ショップでの処理は行ったり来たりが多くうまく実装出来るか不安でしたがなんとか追加の処理をもぐりこませることができました。$03FF1Dは単にスペースを作るためだけに別の場所に実装を移しただけです。

コメント

タイトルとURLをコピーしました