Advertisement
Guest User

Untitled

a guest
Jun 26th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CameraCD    equ 1
  2.  
  3. Sonic_CameraCD:
  4.     if CameraCD=1
  5.         tst.b   $39(a0)
  6.         beq.s   @NotSpindash
  7.         move.w  #$70,d1
  8.         move.w  #$70,d0
  9.         btst    #0,$22(a0)
  10.         beq.s   @cont
  11.         bne.s   @cont2
  12.         rts
  13.        
  14. @NotSpindash
  15.         tst.w   $10(a0)
  16.         bmi.s   @Left
  17.         cmpi.w  #$70,($FFFFFFF5).w
  18.         ble     @Reset
  19.         move.w  $10(a0),d0
  20.         cmpi.w  #$180,d0
  21.         bcs.s   @Reset
  22.         divu.w  #$10,d0
  23.         cmpi.w  #$70,d0
  24.         bcs.s   @cont
  25.         move.w  #$70,d0
  26.        
  27. @cont
  28.         add.w   #$80,d0
  29.         cmp.w   ($FFFFFFF5).w,d0
  30.         beq.s   @Rts
  31.         blt.s   @Sub
  32.         bgt.s   @Add
  33.         rts
  34.  
  35. @Left
  36.         cmpi.w  #$90,($FFFFFFF5).w
  37.         bge.s   @Reset
  38.         cmpi.w  #$100,($FFFFF700).w     ; Если камера близко к старту уровня
  39.         bcs.s   @Reset                  ; Cбросить смещение, иначе жуть какой баг будет.
  40.         move.w  #$0,d1
  41.         sub.w   $10(a0),d1
  42.         ;move.w $10(a0),d1
  43.         ;neg.w  d1
  44.         cmpi.w  #$180,d1
  45.         bcs.s   @Reset
  46.         divu.w  #$10,d1
  47.         cmpi.w  #$70,d1
  48.         bcs.s   @cont2
  49.         move.w  #$70,d1
  50.  
  51. @cont2
  52.         move.w  #$80,d0
  53.         sub.w   d1,d0
  54.         cmp.w   ($FFFFFFF5).w,d0
  55.         beq.s   @Rts
  56.         blt.s   @Sub
  57.         bgt.s   @Add
  58.         rts
  59.        
  60. @Add
  61.         addq.w  #1,($FFFFFFF5).w
  62.         tst.b   $39(a0)
  63.         beq.s   @Rts
  64.         addq.w  #3,($FFFFFFF5).w
  65.         rts
  66.        
  67. @Sub
  68.         subq.w  #1,($FFFFFFF5).w
  69.         tst.b   $39(a0)
  70.         beq.s   @Rts
  71.         subq.w  #3,($FFFFFFF5).w
  72.         rts
  73.  
  74. @Reset
  75.         cmpi.w  #$80,($FFFFFFF5).w
  76.         beq.s   @Rts
  77.         bcc.s   @Reset2
  78.         addq.w  #6,($FFFFFFF5).w
  79.  
  80. @Reset2
  81.         subq.w  #3,($FFFFFFF5).w
  82.        
  83. @Rts
  84.         rts
  85.  
  86.     else
  87.         tst.w   $10(a0)
  88.         bmi.s   @Left
  89.        
  90. @Right
  91.         cmpi.w  #$300,$10(a0)
  92.         bcs.s   @Reset
  93.         cmpi.w  #$F0,($FFFFFFF5).w
  94.         bge.w   @Rts
  95.         addq.w  #2,($FFFFFFF5).w        ; Скрорость, с которой камера начнёт смещаться
  96.         bra.w   @Rts
  97.  
  98. @Left
  99.         cmpi.w  #$80,($FFFFF700).w      ; Если камера близко к старту уровня
  100.         bcs.s   @Reset                  ; Cбросить смещение, иначе жуть какой баг будет.
  101.         cmpi.w  #$FC00,$10(a0)
  102.         bcc.s   @Reset
  103.         cmpi.w  #$10,($FFFFFFF5).w
  104.         ble.w   @Rts
  105.         subq.w  #2,($FFFFFFF5).w
  106.         bra.w   @Rts
  107.  
  108. @Reset
  109.         cmpi.w  #$80,($FFFFFFF5).w
  110.         beq.s   @Rts
  111.         bcc.s   @Reset2
  112.         addq.w  #4,($FFFFFFF5).w
  113.  
  114. @Reset2
  115.         subq.w  #2,($FFFFFFF5).w
  116.  
  117. @Rts
  118.     endc
  119.         rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement