All pastes #575484 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-19 01:55 UTC
rendered paste body
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