前回は講釈をたれただけで終わってしまったので実装に取り掛かることにします。気をつける点は「はんにゃのめんを装備している場合は混乱ステータスは解除しない」くらいです。DQバイナリ改造Wikiに各種ステータス異常のビットの情報が公開されているので、いてつく波動の実装を見ながら実装していきます。
- SR: $02D474 シャナク
02D474 | LDX $23E8 | X=$23E8 | |
---|---|---|---|
02D477 | STX $2428 | $2428=X | |
02D47A | LDA #$0000 | A=#$0000 | |
02D47D | JSL $C2CB70 | SR: $02CB70 引数:1#$2047 引数:2#$00FF | |
02D485 | JSL $C2CB70 | SR: $02CB70 引数:1#$2051 引数:2#$0002 | |
02D48D | JSL $C2CB70 | SR: $02CB70 引数:1#$2051 引数:2#$0004 | |
02D495 | JSL $C2CB2B | SR: $02CB2B 引数:1#$2050 引数:2#$0002 | |
02D49D | BEQ #$0C | if(z==on) goto $02D4AB | |
02D49F | LDA #$0078 | A=#$0078 | |
02D4A2 | STA $242C | $242C=A | |
02D4A5 | JSL $C2B87A | SR: $02B87A | |
02D4A9 | BVS #$08 | if(v==on) goto $02D4B3 | |
02D4AB | JSL $C2CB70 | SR: $02CB70 引数:1#$2050 引数:2#$0010 | |
02D4B3 | JSL $C1A867 | SR: $01A867 引数:1#$017A | |
02D4B9 | LDX $23E8 | X=$23E8 | |
02D4BC | JSL $C2CAD9 | SR: $02CAD9 引数:1#$203C 引数:2#$00FF | |
02D4C4 | CMP #$0005 | A>=#$0005? | |
02D4C7 | BCC #$04 | if(c==off) goto $02D4CD | |
02D4C9 | JSL $C2B977 | SR: $02B977 | |
02D4CD | JSL $C1E32E | SR: $01E32E 引数:1#$00C4 | |
02D4D3 | SEC | c=on | |
02D4D4 | RTL | return |
$02D47D-$02D494では、行動対象者($7E23E8)のそれぞれ、ねむり、マホトーン、マヌーサの状態フラグをOFFにしています。次に敵味方の状態を調べて敵であればすぐさま混乱回復処理($02D4AB)に処理を飛ばし、味方であれば、はんにゃのめん(#$78)の装備状態をチェックし、装備していなければ混乱回復処理($02D4AB)に処理を飛ばし、メッセージ「○○のステータスいじょうが かいふくした!」を表示します。最後に味方であればウィンドウの再描画処理を行ってSEを鳴らして終わりです。
あとは呪文表示位置や習得可能職業などをいじって終わりです。それから、全員マホトーン状態になった場合にどうしようもないのでぎんのロザリオにもシャナクの効果をもたせることにします(こちらは設定変更だけで対応できます)。消耗品として設定しなおし、とりあえずランシールのきえさりそうを売っている道具屋で300Gで売るようにしました。
コメント