イベントの実装の続きを行います。イベント中のマップの切り替え時に戦闘BGMが継続するようにします。
| 0CF1A7 |
JSL $C7786D |
SR: $07786D 引数:1#$CDE63C |
BGM設定 |
| 0CF1AE |
RTL |
return |
|
- SR: $0A4B08 メルキド宿屋進入時初期化処理
| 略 |
|
|
|
| 0A4B1E |
JSL $C7786D |
SR: $07786D 引数:1#$CDE4E6 |
|
| 略 |
|
|
|
- SR: $0DE4E6 メルキド宿屋BGM設定(新SR)
| 0DE4E6 |
JSL $CCF193 |
SR: $0CF193 |
メルキドにモンスター襲撃中か |
| 0DE4EA |
BCC #$0E |
if(c==off) goto $0DE4FA |
|
| 0DE4EC |
LDA #$001A |
A=#$001A |
|
| 0DE4EF |
CMP $99AF |
A==$99AF? |
|
| 0DE4F2 |
BEQ #$04 |
if(z==on) goto $0DE4F8 |
|
| 0DE4F4 |
JSL $CCF744 |
SR: $0CF744 |
現在のBGMをフェードアウトして戦闘BGM再生 |
| 0DE4F8 |
BRA #$1D |
goto $0DE517 |
|
| 0DE4FA |
JSL $CC7A53 |
SR: $0C7A53 |
|
| 0DE4FE |
BCS #$02 |
if(c==on) goto $0DE502 |
|
| 0DE500 |
BRA #$15 |
goto $0DE517 |
|
| 0DE502 |
JSL $CDA1B1 |
SR: $0DA1B1 |
|
| 0DE506 |
BRA #$0F |
goto $0DE517 |
|
| 0DE508 |
LDA #$000F |
A=#$000F |
|
| 0DE50B |
JSL $C72F5E |
SR: $072F5E |
現在BGMとAが一致するか調べる |
| 0DE50F |
BCC #$02 |
if(c==off) goto $0DE513 |
|
| 0DE511 |
BRA #$04 |
goto $0DE517 |
|
| 0DE513 |
JSL $CDA1B1 |
SR: $0DA1B1 |
|
| 0DE517 |
RTL |
return |
|
- SR: $0DE63C メルキドBGM設定(新SR)
| 0DE63C |
JSL $CCF193 |
SR: $0CF193 |
メルキドにモンスター襲撃中か |
| 0DE640 |
BCC #$0E |
if(c==off) goto $0DE650 |
|
| 0DE642 |
LDA #$001A |
A=#$001A |
|
| 0DE645 |
CMP $99AF |
A==$99AF? |
|
| 0DE648 |
BEQ #$04 |
if(z==on) goto $0DE64E |
|
| 0DE64A |
JSL $CCF744 |
SR: $0CF744 |
現在のBGMをフェードアウトして戦闘BGM再生 |
| 0DE64E |
BRA #$0F |
goto $0DE65F |
|
| 0DE650 |
LDA #$000F |
A=#$000F |
|
| 0DE653 |
JSL $C72F5E |
SR: $072F5E |
現在BGMとAが一致するか調べる |
| 0DE657 |
BCC #$02 |
if(c==off) goto $0DE65B |
|
| 0DE659 |
BRA #$04 |
goto $0DE65F |
|
| 0DE65B |
JSL $CDA1B1 |
SR: $0DA1B1 |
|
| 0DE65F |
RTL |
return |
|
- SR: $0CF744 現在のBGMをフェードアウトして戦闘BGM再生(新SR)
| 0CF744 |
JSL $CDA15A |
SR: $0DA15A |
現在のBGMフェードアウト? |
| 0CF748 |
LDA #$001A |
A=#$001A |
|
| 0CF74B |
JSL $C72FB2 |
SR: $072FB2 |
BGM再生 |
| 0CF74F |
RTL |
return |
|
この実装を行った後に、「連戦中は戦闘BGMをノンストップで流す」ように変更したので(戦闘が終わった後にまたすぐ戦闘BGMが頭から流れると違和感ありまくりなので)、「現在BGMをフェードアウトして戦闘BGM再生」のあたりはあまり意味がないかもしれません。今回はここまでにします。
コメント