ようやく次回からターンが開始します。前置きが長過ぎる。
| 0263A2 |
PHP |
Push P Flag |
|
| 0263A3 |
PHB |
Push DB |
|
| 0263A4 |
REP #$30 |
m=off(A/M:16b) x=off(X/Y:16b) |
|
| 0263A6 |
PEA #$7E7E |
Push #$7E7E |
|
| 0263A9 |
PLB |
Pull DB |
|
| 0263AA |
PLB |
Pull DB |
|
| 0263AB |
LDX #$0000 |
X=#$0000 |
|
| 0263AE |
TXY |
Y=X |
|
| 0263AF |
JSR $63C0 |
SR: $0263C0 |
行動順序補正等 |
| 0263B2 |
INY |
Y++ |
|
| 0263B3 |
INY |
Y++ |
|
| 0263B4 |
INX |
X++ |
|
| 0263B5 |
CPX #$0018 |
X>=#$0018? |
最大キャラクター数分ループ |
| 0263B8 |
BCC #$F5 |
if(c==off) goto $0263AF |
|
| 0263BA |
JSR $5DAC |
SR: $025DAC |
ターン中の行動順序設定 |
| 0263BD |
PLB |
Pull DB |
|
| 0263BE |
PLP |
Pull P Flag |
|
| 0263BF |
RTL |
return |
|
| 0263C0 |
LDA #$0000 |
A=#$0000 |
|
| 0263C3 |
STA $2484,Y |
$2484+Y=A |
|
| 0263C6 |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2050 引数:2#$0002 |
生死判定? |
| 0263CE |
BEQ #$65 |
if(z==on) goto $026435 |
|
| 0263D0 |
STX $2428 |
$2428=X |
|
| 0263D3 |
JSL $C2BE8A |
SR: $02BE8A 引数:1#$1C |
生死判定? |
| 0263D8 |
BCS #$5B |
if(c==on) goto $026435 |
|
| 0263DA |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2034 引数:2#$01FF |
戦闘行動ID取得 |
| 0263E2 |
STA $242A |
$242A=A |
|
| 0263E5 |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2035 引数:2#$00FE |
ターゲット情報取得 |
| 0263ED |
STA $2430 |
$2430=A |
|
| 0263F0 |
JSR $6436 |
SR: $026436 |
アストロン詠唱ならターンの最初にする |
| 0263F3 |
JSL $C2CA5B |
SR: $02CA5B 引数:1#$2045 |
ターン中の素早さ取得 |
| 0263F9 |
CLC |
c=off |
|
| 0263FA |
ADC $00 |
A+=(DP($00)+c) |
|
| 0263FC |
INC |
A++ |
|
| 0263FD |
STA $2484,Y |
$2484+Y=A |
|
| 026400 |
JSR $6446 |
SR: $026446 |
般若の面装備してなければ防御を有効にする |
| 026403 |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2036 引数:2#$01FF |
戦闘行動ID取得 |
| 02640B |
STA $242A |
$242A=A |
|
| 02640E |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2037 引数:2#$00FE |
ターゲット情報取得 |
| 026416 |
STA $2430 |
$2430=A |
|
| 026419 |
JSR $6446 |
SR: $026446 |
|
| 02641C |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2038 引数:2#$01FF |
戦闘行動ID取得 |
| 026424 |
STA $242A |
$242A=A |
|
| 026427 |
JSL $C2CAD9 |
SR: $02CAD9 引数:1#$2039 引数:2#$00FE |
ターゲット情報取得 |
| 02642F |
STA $2430 |
$2430=A |
|
| 026432 |
JSR $6446 |
SR: $026446 |
般若の面装備してなければ防御を有効にする |
| 026435 |
RTS |
return |
|
| 025DAC |
LDX #$0016 |
X=#$0016 |
|
| 025DAF |
LDA #$FFFF |
A=#$FFFF |
初期化処理 |
| 025DB2 |
STA $23B8,X |
$23B8+X=A |
|
| 025DB5 |
DEX |
X– |
|
| 025DB6 |
DEX |
X– |
|
| 025DB7 |
BPL #$F9 |
if(n==off) goto $025DB2 |
|
| 025DB9 |
LDY #$0000 |
Y=#$0000 |
|
| 025DBC |
LDA #$FFFF |
A=#$FFFF |
|
| 025DBF |
STA $00 |
DP($00)=A |
|
| 025DC1 |
INC |
A++ |
|
| 025DC2 |
TAX |
X=A |
|
| 025DC3 |
CMP $2484,X |
A>=$2484+X? |
|
| 025DC6 |
BCS #$05 |
if(c==on) goto $025DCD |
|
| 025DC8 |
LDA $2484,X |
A=$2484+X |
|
| 025DCB |
STX $00 |
DP($00)=X |
|
| 025DCD |
INX |
X++ |
|
| 025DCE |
INX |
X++ |
|
| 025DCF |
CPX #$0030 |
X>=#$0030? |
|
| 025DD2 |
BCC #$EF |
if(c==off) goto $025DC3 |
|
| 025DD4 |
LDX $00 |
X=DP($00) |
|
| 025DD6 |
CPX #$FFFF |
X==#$FFFF? |
|
| 025DD9 |
BEQ #$12 |
if(z==on) goto $025DED |
|
| 025DDB |
STZ $2484,X |
$2484+X=#$00 |
|
| 025DDE |
TXA |
A=X |
|
| 025DDF |
LSR |
A>>1 |
|
| 025DE0 |
SEP #$20 |
m=on(A/M:8b) |
|
| 025DE2 |
STA $23B8,Y |
$23B8+Y=A |
|
| 025DE5 |
REP #$20 |
m=off(A/M:16b) |
|
| 025DE7 |
INY |
Y++ |
|
| 025DE8 |
CPY #$0018 |
Y>=#$0018? |
|
| 025DEB |
BCC #$CF |
if(c==off) goto $025DBC |
|
| 025DED |
RTS |
return |
|
大雑把に言うと補正後ターン中の素早さの早い順から行動順を並べ替えているだけ、だったはず。
コメント