; ----------------------------------------------------------------------------
; Object 8D - Tails' tails
; ----------------------------------------------------------------------------
; Sprite_1D200:
Obj8D:
moveq #0,d0
move.b routine(a0),d0
move.w Obj8D_States(pc,d0.w),d1
jmp Obj8D_States(pc,d1.w)
; ===========================================================================
; off_1D20E:
Obj8D_States:
dc.w Obj8D_Init-Obj8D_States
dc.w Obj8D_Main-Obj8D_States
; ===========================================================================
; loc_1D212
Obj8D_Init:
addq.b #2,routine(a0) ; => Obj8D_Main
move.l #Map_Tails,mappings(a0)
move.w #$7A0,art_tile(a0)
; bsr.w Adjust2PArtPointer
move.b #2,priority(a0)
move.b #$18,width_pixels(a0)
move.b #4,render_flags(a0)
; loc_1D23A:
Obj8D_Main:
; movea.w parent(a0),a2 ; a2=character
lea ($FFFFD000).l,a2 ; a2=character
move.b angle(a2),angle(a0)
move.b status(a2),status(a0)
move.w x_pos(a2),x_pos(a0)
move.w y_pos(a2),y_pos(a0)
andi.w #$7FFF,art_tile(a0)
tst.w art_tile(a2)
bpl.s loc_1D286
ori.w #$8000,art_tile(a0)
loc_1D286:
moveq #0,d0
move.b anim(a2),d0
btst #5,status(a2)
beq.s loc_1D287
moveq #4,d0
loc_1D287:
cmp.b objoff_30(a0),d0
beq.s loc_1D288
move.b d0,objoff_30(a0)
move.b Obj8DAniSelection(pc,d0.w),anim(a0)
loc_1D288:
lea (Obj8DAniData).l,a1
bsr.w Tails_Animate_Part2
bsr.w LoadTailsTailsDynPLC
jsr (DisplaySprite).l
rts
; ===========================================================================
; animation master script table for the tails
; chooses which animation script to run depending on what Tails is doing
; byte_1D29E:
Obj8DAniSelection:
dc.b 0,0 ; TailsAni_Walk,Run ->
dc.b 3 ; TailsAni_Roll -> Directional
dc.b 3 ; TailsAni_Roll2 -> Directional
dc.b 9 ; TailsAni_Push -> Pushing
dc.b 1 ; TailsAni_Wait -> Swish
dc.b 0 ; TailsAni_Balance -> Blank
dc.b 2 ; TailsAni_LookUp -> Flick
dc.b 1 ; TailsAni_Duck -> Swish
dc.b 0,0,0 ; TailsAni_Dummy1,2,3 ->
dc.b 0 ; TailsAni_HaulAss ->
dc.b 8 ; TailsAni_Stop -> Skidding
dc.b 0,0 ; TailsAni_Float,2 ->
dc.b 0 ; TailsAni_Spring ->
dc.b 0 ; TailsAni_Hang ->
dc.b 0,0 ; TailsAni_Blink,2 ->
dc.b $A ; TailsAni_Hang2 -> Hanging
dc.b 0 ; TailsAni_Bubble ->
dc.b 0,0,0,0 ; TailsAni_Death,2,3,4 ->
dc.b 0,0 ; TailsAni_Hurt,Slide ->
dc.b 0 ; TailsAni_Blank ->
dc.b 0,0 ; TailsAni_Dummy4,5 ->
dc.b 7 ; TailsAni_Spindash -> Spindash
dc.b 0 ; TailsAni_Fly ->
dc.b 0 ; TailsAni_FlyTired
dc.b 0 ; TailsAni_Swim
dc.b 0 ; TailsAni_Swim2
dc.b 0 ; TailsAni_SwimTired
even
; ---------------------------------------------------------------------------
; Animation script - Tails' tails
; ---------------------------------------------------------------------------
; off_1D2C0:
Obj8DAniData:
dc.w Obj8DAni_Blank-Obj8DAniData ; 0
dc.w Obj8DAni_Swish-Obj8DAniData ; 1
dc.w Obj8DAni_Flick-Obj8DAniData ; 2
dc.w Obj8DAni_Directional-Obj8DAniData ; 3
dc.w Obj8DAni_DownLeft-Obj8DAniData ; 4
dc.w Obj8DAni_Down-Obj8DAniData ; 5
dc.w Obj8DAni_DownRight-Obj8DAniData ; 6
dc.w Obj8DAni_Spindash-Obj8DAniData ; 7
dc.w Obj8DAni_Skidding-Obj8DAniData ; 8
dc.w Obj8DAni_Pushing-Obj8DAniData ; 9
dc.w Obj8DAni_Hanging-Obj8DAniData ;$A
Obj8DAni_Blank: dc.b $20, 0,$FF
Obj8DAni_Swish: dc.b 7, 9, $A, $B, $C, $D,$FF
Obj8DAni_Flick: dc.b 3, 9, $A, $B, $C, $D,$FD, 1
Obj8DAni_Directional: dc.b $FC,$49,$4A,$4B,$4C,$FF ; Tails is moving right
Obj8DAni_DownLeft: dc.b 3,$4D,$4E,$4F,$50,$FF ; Tails is moving up-right
Obj8DAni_Down: dc.b 3,$51,$52,$53,$54,$FF ; Tails is moving up
Obj8DAni_DownRight: dc.b 3,$55,$56,$57,$58,$FF ; Tails is moving up-left
Obj8DAni_Spindash: dc.b 2,$81,$82,$83,$84,$FF
Obj8DAni_Skidding: dc.b 2,$87,$88,$89,$8A,$FF
Obj8DAni_Pushing: dc.b 9,$87,$88,$89,$8A,$FF
Obj8DAni_Hanging: dc.b 9,$81,$82,$83,$84,$FF
even
; ===========================================================================
Я все правильно понял, только не понял, куда тыкать в sonic1.asm.