Obj01_ChkInvin:
tst.b ($FFFFFE2D).w ; does Sonic have invincibility?
beq.s Obj01_ChkShoes ; if not, branch
tst.w $32(a0) ; check time remaining for invinciblity
beq.s Obj01_ChkShoes ; if no time remains, branch
subq.w #1,$32(a0) ; subtract 1 from time
bne.s Obj01_ChkShoes
tst.b ($FFFFF7AA).w
move.b #0,($FFFFFE2D).w ; cancel invincibility
cmpi.w #$C,($FFFFFE14).w
move.b #0,($FFFFFE2D).w ; cancel invincibility
cmpi.b #1,($FFFFFE2E).w ; ботинки есть?
bne.s Obj01_PlayMusic2 ; если нету, вернуть музыку текущего уровня
Obj01_ChkShoes:
tst.b ($FFFFFE2E).w ; does Sonic have speed shoes?
beq.s Obj01_ExitChk ; if not, branch
tst.w $34(a0) ; check time remaining
beq.s Obj01_ExitChk
subq.w #1,$34(a0) ; subtract 1 from time
bne.s Obj01_ExitChk
move.w #$600,($FFFFF760).w ; restore Sonic's speed
move.w #$C,($FFFFF762).w ; restore Sonic's acceleration
move.w #$80,($FFFFF764).w ; restore Sonic's deceleration
move.b #0,($FFFFFE2E).w ; cancel speed shoes
cmpi.b #1,($FFFFFE2D).w ; непобедимость есть?
bne.s Obj01_PlayMusic2 ; если нету, заткнуть музыку
bra.s Obj01_ChkInvin ; если есть, продолжить проверки
Obj01_PlayMusic2:
moveq #0,d0
move.b ($FFFFFE10).w,d0
cmpi.w #$103,($FFFFFE10).w ; check if level is SBZ3
bne.s Obj01_PlayMusic
moveq #5,d0 ; play SBZ music
jmp Obj01_ChkInvin
Obj01_PlayMusic:
lea (MusicList2).l,a1
move.b (a1,d0.w),d0
jsr (PlaySound).l ; play normal music
Obj01_ExitChk:
rts
|