Advertisement
Guest User

Untitled

a guest
Feb 15th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. ; ---------------------------------------------------------------------------
  2. ; Subroutine to check for starting to charge a spindash
  3. ; ---------------------------------------------------------------------------
  4.  
  5. ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
  6.  
  7. ; AmyLoc_1AC3E:
  8. Amy_Hammer:
  9. tst.b Hammer_flag(a0) ;already branched?
  10. bne.s Amy_UpdateSpindash ;if yes, branch
  11. move.b (Ctrl_1_Press_Logical).w,d0 ; read controller
  12. andi.b #button_B_mask|button_C_mask,d0 ; is button B or C pressed
  13. beq.w Areturn_1AC8C ; if not branch
  14. move.b #AniIDAmyAni_Spindash,anim(a0) ; set anim to hammer
  15. move.w #SndID_SpindashRev,d0 ; set sound to spindash rev
  16. jsr (PlaySound).l ; play it
  17. addq.l #4,sp ; add 4 to sp
  18. move.b #1,Hammer_flag(a0) ; puts a 1 in this flag
  19. move.w #0,Hammer_counter(a0) ; puts a 0 in this flag
  20. move.b #$0,inertia(a0) ; clear inertia
  21. move.b #$0,x_vel(a0) ; set x velocity to 0
  22. +
  23.  
  24. bsr.w Amy_LevelBound
  25. jsr AnglePos
  26.  
  27. Areturn_1AC8C:
  28. rts
  29. ; End of subroutine Amy_CheckSpindash
  30.  
  31.  
  32. ; ---------------------------------------------------------------------------
  33. ; Subrouting to update an already-charging spindash
  34. ; ---------------------------------------------------------------------------
  35.  
  36. ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
  37.  
  38. ; Aloc_1AC8E:
  39. Amy_UpdateSpindash:
  40. move.b (Ctrl_1_Held_Logical).w,d0 ; read controller
  41.  
  42. bne.w Amy_ChargingSpindash ; if not branch
  43. move.b #0,Hammer_flag(a0) ; puts a 0 in this flag
  44. moveq #0,d0 ; move 0 to d0
  45. move.b Hammer_counter(a0),d0 ; move Hammer counter to d0
  46. add.w d0,d0
  47.  
  48. +
  49.  
  50. move.b #0,(Sonic_Dust+anim).w ; set 0 in sonic_dust
  51. bra.s Obj4D_Spindash_ResetScr ; branch 0bj4D_Spindash_ResetScr
  52. cmpi.b #$5,$1C ; is anim idle
  53. bne.s AmyReturn_1AC8C ; if not branch
  54. cmpi.b #$0,$1C ; is anim walking
  55. bne.s AmyReturn_1AC8C ; if not branch
  56. rts ; return to subroutine
  57. ; ===========================================================================
  58. ; Aloc_1AD30:
  59. Amy_ChargingSpindash: ; If still charging the dash...
  60. tst.w Hammer_counter(a0) ; still charging?
  61. beq.s + ;if yes branch
  62. move.w Hammer_counter(a0),d0 ; move hammer counter to d0
  63. lsr.w #5,d0
  64. sub.w d0,Hammer_counter(a0)
  65. bcc.s +
  66. move.w #0,Hammer_counter(a0)
  67. +
  68. ; move.b (Ctrl_1_Press_Logical).w,d0
  69.  
  70. beq.w Obj4D_Spindash_ResetScr
  71. ; jsr (PlaySound).l
  72. ; addi.w #$200,Hammer_counter(a0)
  73. ; cmpi.w #$800,Hammer_counter(a0)
  74. ; blo.s Obj4D_Spindash_ResetScr
  75. ; move.w #$800,Hammer_counter(a0)
  76.  
  77. ; Aloc_1AD78:
  78. Obj4D_Spindash_ResetScr:
  79. addq.l #4,sp
  80.  
  81. Aloc_1AD8C:
  82. bsr.w Amy_LevelBound
  83. jsr AnglePos
  84. rts
  85. ; End of subroutine Amy_UpdateSpindash
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement