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