All pastes #349944 Raw Edit

pu7o

public text v1 · immutable
·published 2007-02-11 03:50 UTC
rendered paste body
check_tired:
	cmpi.w	#0x0000,(0xFFFFF646).w
	beq.s	locret_tired
	move.w	(0xFFFFF646).w,%d0
	subi.w	#0x10,%d0
	move.w	0xC(%a0),%d1
	cmp 	%d0,%d1
	bge.s	Tired_Swimming_Anim_Set
	move.b  #0x1F,0x1C(%a0)
	bra.w	locret_tired
Tired_Swimming_Anim_Set:
	move.b #0x21,0x1C(%a0)

locret_tired:
	rts
	
check_swimfly:
	cmpi.w	#0x0000,(0xFFFFF646).w
	beq.s	Fly2
	move.w	(0xFFFFF646).w,%d0
	subi.w	#0x10,%d0
	move.w	0xC(%a0),%d1
	cmp 	%d0,%d1
	bge.s	Swimming_Anim_Set
	move.b  #0x22,0x1C(%a0)
	bra.w	Fly2
Swimming_Anim_Set:
	move.b #0x20,0x1C(%a0)
	bra.w	Fly2

	
Tails_Fly:
		cmpi.b #2,(0xFFFFFE57).w
		bge.s	1f
		jmp	locret_134d2
1:
	cmpi.b    #0x01,Current_Character
	bne.s	exit_flying
	cmpi.b	  #0x20,0x1C(%a0)
	beq.s	check_swimfly
	cmpi.b	  #0x22,0x1C(%a0)
	beq.s	check_swimfly
Fly2:
	cmpi.b	  #0x1F,0x1C(%a0)
	beq.w	check_tired
	cmpi.b	  #0x21,0x1C(%a0)
	beq.w	check_tired
	cmpi.b    #0x40,(0xFFFFF605).w      | has A been pressed?
	beq.s	Tails_Fly_Continue
	cmpi.b	  #0x20,(0xFFFFF605).w	   | has C been pressed?
	beq.s	Tails_Fly_Continue
	cmpi.b    #0x10,(0xFFFFF605).w      | has B been pressed?
	bne.s	exit_flying	 | if not,stop
	jmp		Tails_Fly_Continue
exit_flying:
	rts
	

Tails_Fly_Continue:
	cmpi.b	#0x22,0x1C(%a0)
	beq.s	Continue_flying
	cmpi.b	#0x20,0x1C(%a0)
	beq.s	Continue_flying
	move.b	#1,(0xFFFFFFBE).w
	move.b	#0,(0xFFFFFFAD).w
	
	move.w	(0xFFFFF646).w,%d0
	subi.w	#0x10,%d0
	move.w	0xC(%a0),%d1
	cmp 	%d0,%d1
	bge.s	Swimming_Anim
	move.b  #0x22,0x1C(%a0)
	bra.w	Fly_Cont
Swimming_Anim:
	move.b  #0x22,0x1C(%a0)
	cmpi.w	#0x0000,(0xFFFFF646).w
	beq.s	Fly_Cont
	move.b #0x20,0x1C(%a0)
Fly_Cont:
	move.w	#-0x300,0x12(%a0)
	addi.w	#0x300,0x14(%a0)
	addq.l	#4,%sp
	rts
Continue_flying:
	cmpi.b #1,(0xFFFFFFAD).w
	beq.s exit_flying	
	addq.b #1,(0xFFFFFFBE).w
	cmpi.b #0xF,(0xFFFFFFBE).w
	beq.w too_tired
	move.w	#-0x300,0x12(%a0)
	addq.l	#4,%sp
	rts
too_tired:
	move.b	#1,(0xFFFFFFAD).w
	cmpi.w	#0x0000,(0xFFFFF646).w | Is this a waterless level?
	beq.s	tired_flying
	move.w	(0xFFFFF646).w,%d0
	subi.w	#0x10,%d0
	move.w	0xC(%a0),%d1
	cmp 	%d0,%d1
	bge.s	tired_swimming
	jmp		tired_flying
tired_swimming:
	move.b	#0x21,0x1C(%a0)
	jmp		tired_end
tired_flying:
	move.b	#0x1F,0x1C(%a0)
tired_end:
	rts
set_flying_speed:
	move.w	#0x300,%d5
	btst	#0,0x22(%a0) | looking left or right?
	beq.s	flying_routine_2
	neg.w	%d5 |reverse speed
flying_routine_2:
	move.w	%d5,0x10(%a0)
	rts