Public feed
#531707
Tails_FlyingSwimming: ; CODE XREF: ROM:000147BCj
bsr.w Tails_Move_FlySwim
bsr.w Tails_InputAcceleration_Freespace
bsr.w Tails_Check_Screen_Boundaries
jsr MoveSprite2
bsr.w sub_11E8C
movem.l a4-a6,-(sp)
bsr.w sub_153C2
movem.l (sp)+,a4-a6
tst.w ($FFFFFF08).w ; test player - change this to the correct byte
bne.s locret_14820 ; if attached player is not Sonic (and therefore, must be Tails/Knuckles) then return
lea ($FFFFF73E).w,a2
lea ($FFFFB000).w,a1
move.w ($FFFFF604).w,d0
bsr.w Tails_Carry_Sonic
locret_14820: ; CODE XREF: ROM:0001480Ej
rts
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
Tails_Move_FlySwim: ; CODE XREF: ROM:Tails_FlyingSwimmingp
move.b ($FFFFFE05).w,d0
andi.b #1,d0
beq.s loc_14836
tst.b $1C(a0)
beq.s loc_14836
subq.b #1,$1C(a0)
loc_14836: ; CODE XREF: Tails_Move_FlySwim+8j
; Tails_Move_FlySwim+Ej
cmpi.b #1,$20(a0)
beq.s loc_14860
cmpi.w #$FF00,$12(a0)
blt.s loc_14858
subi.w #$20,$12(a0) ; ' '
addq.b #1,$20(a0)
cmpi.b #$20,$20(a0) ; ' '
bne.s loc_1485E
loc_14858: ; CODE XREF: Tails_Move_FlySwim+22j
move.b #1,$20(a0)
loc_1485E: ; CODE XREF: Tails_Move_FlySwim+34j
bra.s loc_14892
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
loc_14860: ; CODE XREF: Tails_Move_FlySwim+1Aj
move.b ($FFFFF66B).w,d0
andi.b #$70,d0 ; 'p'
beq.s loc_1488C
cmpi.w #$FF00,$12(a0)
blt.s loc_1488C
tst.b $1C(a0)
beq.s loc_1488C
btst #6,$22(a0)
beq.s loc_14886
tst.b ($FFFFF73E).w
bne.s loc_1488C
loc_14886: ; CODE XREF: Tails_Move_FlySwim+5Cj
move.b #2,$20(a0)
loc_1488C: ; CODE XREF: Tails_Move_FlySwim+46j
; Tails_Move_FlySwim+4Ej ...
addi.w #8,$12(a0)
loc_14892: ; CODE XREF: Tails_Move_FlySwim:loc_1485Ej
move.w ($FFFFEE18).w,d0
addi.w #$10,d0
cmp.w $C(a0),d0
blt.s Tails_Set_Flying_Animation
tst.w $12(a0)
bpl.s Tails_Set_Flying_Animation
move.w #0,$12(a0)
; End of function Tails_Move_FlySwim
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
Tails_Set_Flying_Animation: ; CODE XREF: ROM:00013BF2p
; ROM:00013C34p ...
btst #6,$22(a0)
bne.s loc_14914
moveq #$20,d0 ; ' '
tst.w ($FFFFFFE8).w
bne.s loc_148F4
tst.w $12(a0)
bpl.s loc_148C4
moveq #$21,d0 ; '!'
loc_148C4: ; CODE XREF: Tails_Set_Flying_Animation+14j
tst.b ($FFFFF73E).w
beq.s loc_148CC
addq.b #2,d0
loc_148CC: ; CODE XREF: Tails_Set_Flying_Animation+1Cj
tst.b $1C(a0)
bne.s loc_148F4
moveq #$24,d0 ; '$'
move.b d0,$20(a0)
tst.b 4(a0)
bpl.s locret_148F2
move.b ($FFFFFE05).w,d0
addq.b #8,d0
andi.b #$F,d0
bne.s locret_148F2
moveq #$FFFFFFBB,d0
jsr (PlaySound_Special).l
locret_148F2: ; CODE XREF: Tails_Set_Flying_Animation+30j
; Tails_Set_Flying_Animation+3Cj
rts
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
loc_148F4: ; CODE XREF: Tails_Set_Flying_Animation+Ej
; Tails_Set_Flying_Animation+24j
move.b d0,$20(a0)
tst.b 4(a0)
bpl.s locret_14912
move.b ($FFFFFE05).w,d0
addq.b #8,d0
andi.b #$F,d0
bne.s locret_14912
moveq #$FFFFFFBA,d0
jsr (PlaySound_Special).l
locret_14912: ; CODE XREF: Tails_Set_Flying_Animation+50j
; Tails_Set_Flying_Animation+5Cj
rts
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
loc_14914: ; CODE XREF: Tails_Set_Flying_Animation+6j
moveq #$25,d0 ; '%'
tst.w $12(a0)
bpl.s loc_1491E
moveq #$26,d0 ; '&'
loc_1491E: ; CODE XREF: Tails_Set_Flying_Animation+6Ej
tst.b ($FFFFF73E).w
beq.s loc_14926
moveq #$27,d0 ; '''
loc_14926: ; CODE XREF: Tails_Set_Flying_Animation+76j
tst.b $1C(a0)
bne.s loc_1492E
moveq #$28,d0 ; '('
loc_1492E: ; CODE XREF: Tails_Set_Flying_Animation+7Ej
move.b d0,$20(a0)
rts
; End of function Tails_Set_Flying_Animation