Sonic_Spindash: cmpi.b #1,($FFFFFFFF) bne @rts tst.b $39(a0) bne loc_10396 cmpi.b #8,$1C(a0) bne @rts move.b ($FFFFF603).w,d0 andi.b #$70,d0 beq @rts subi.w #1,($FFFFd008).w btst #0,$22(a0) beq @lookingleft addi.w #2,($FFFFd008).w @lookingleft: ; move.b #$F,$16(a0) move.b #9,$1C(a0) move.w #$D2,d0 jsr (PlaySound_Special).l move.b #2,($FFFFD1DC).w jsr Sonic_LevelBound jsr SpeedToPos jsr Sonic_AnglePos jsr Sonic_SlopeRepel addq.l #4,sp move.b #1,$39(a0) @rts: rts loc_10396: move.b ($FFFFF602).w,d0 btst #1,d0 bne loc_1Ad30 move.b #$E,$16(a0) move.b #7,$17(a0) move.b #2,$1C(a0) ; addq.w #5,$C(a0) move.b #0,$39(a0) moveq #0,d0 move.b $3A(a0),d0 add.w d0,d0 move.w Normal_Spindash_Speeds(pc,d0.w),$14(a0) tst.b Super_Sonic_flag beq loc_1ACd0 move.w Super_Spindash_Speeds(pc,d0.w),$14(a0) loc_1ACd0: move.w $14(a0),d0 subi.w #$800,d0 add.w d0,d0 andi.w #$1F00,d0 neg.w d0 subi.w #1,$8(a0) btst #0,$22(a0) beq loc_1ACF4 neg.w $14(a0) addi.w #2,$8(a0) loc_1ACF4: bset #2,$22(a0) move.b #0,($FFFFd11C).w move.w #$BC,d0 jsr (PlaySound).l jmp loc_1Ad78 Normal_Spindash_Speeds: dc.w $800 dc.w $880 dc.w $900 dc.w $980 dc.w $a00 dc.w $a80 dc.w $B00 dc.w $B80 dc.w $C00 Super_Spindash_Speeds: dc.w $B00 dc.w $B80 dc.w $C00 dc.w $C80 dc.w $D00 dc.w $D80 dc.w $E00 dc.w $E80 dc.w $F00 loc_1Ad30: ; If still charging the dash... tst.w $3A(a0) beq loc_1Ad48 move.w $3A(a0),d0 lsr.w #5,d0 sub.w d0,$3A(a0) bcc loc_1Ad48 move.w #0,$3A(a0) loc_1Ad48: move.b ($FFFFF603).w,d0 andi.b #$70,d0 ; "p" beq loc_1Ad78 move.w #$900,$1C(a0) move.w #$D2,d0 ; "‡" jsr (PlaySound).l addi.w #$200,$3A(a0) cmpi.w #$800,$3A(a0) bcs.s loc_1Ad78 move.w #$800,$3A(a0) loc_1Ad78: move.b #2,($FFFFD1DC).w jsr Sonic_LevelBound jsr SpeedToPos jsr Sonic_AnglePos jsr Sonic_SlopeRepel addq.l #4,sp cmpi.w #$60,($FFFFEEd8).w beq loc_1Ad8C bcc loc_1Ad88 addq.w #4,($FFFFEEd8).w loc_1Ad88: subq.w #2,($FFFFEEd8).w loc_1Ad8C: ; jsr loc_1a974 ; jsr loc_1E234 move.w #$60,($FFFFF73E).w; reset looking up/down rts loc_103d4: ; CODE XREF: Sonic_Spindash+6Cj bset #2,$22(a0) rts ; ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ loc_103DC: ; CODE XREF: Sonic_Spindash+3Cj move.b ($FFFFF603).w,d0 andi.b #$70,d0 ; "p" beq loc_103EA nop loc_103EA: ; CODE XREF: Sonic_Spindash+82j jsr Sonic_LevelBound jsr SpeedToPos jsr Sonic_AnglePos jsr Sonic_SlopeRepel addq.l #4,sp move.w #$60,($FFFFF73E).w; reset looking up/down ; jsr LoadSonicDynPLC rts ; End of function Sonic_Spindash