Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ---------------------------------------------------------------------------
- ; Subroutine Sonic_HomingAttack
- ; ---------------------------------------------------------------------------
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Sonic_HomingAttack:
- btst #2,$22(a0) ; Соник совершил прыжок?
- beq.w Sonic_HA_Rts ; перейти, если нет
- tpress B+C,(SonicControl|Held) ; нажата кнопка B/C?
- beq.w Sonic_HA_Rts ; перейти, если нет
- lea ($FFFFD7C0).w,a1 ; начало данных объектов
- Sonic_HA_ChkList:
- lea $40(a1),a1 ; перейти к следующему объекту
- cmpa.l #$FFFFF000,a1 ; мы проверели все объекты?
- beq.s Sonic_HA_Rts ; перейти, если да
- cmpi.b #$26,(a1) ; это монитор?
- beq.s Sonic_HA_ChkDistanseY ; если да, проверить растояние между Соником и определённым объектом
- bra.s Sonic_HA_ChkList ; если нет, проверять следующий объект
- ; ===========================================================================
- ToPlus:
- tst.w d0
- bpl.s @NoNegd0
- neg.w d0
- @NoNegd0 tst.w d1
- bpl.s @NoNegd1
- neg.w d1
- @NoNegd1 rts
- ; ===========================================================================
- Sonic_HA_ChkDistanseY:
- move.w 8(a1),d0 ; переместить X-координату объекта $200
- move.w $C(a1),d1 ; переместить Y-координату объекта $200
- sub.w 8(a0),d0 ; вычесть X-координату объекта на X-координату Соника $215-$200=$15
- sub.w $C(a0),d1 ; вычесть Y-координату объекта на Y-координату Соника $220-$200=$20
- bsr.s ToPlus
- move.b #$FF,d2
- cmp.w d2,d1 ; Соник зашёл в границу обьекта по вертикали снизу? $FF<$20?
- bmi.s Sonic_HA_ChkDistanseX ; перейти, если да нет
- rts
- ; ===========================================================================
- Sonic_HA_ChkDistanseX:
- cmp.w d2,d0 ; Соник зашёл в границу обьекта по горизонтали справа? $FF<$15?
- bmi.s Sonic_HA_ObjDetected ; перейти, если да нет
- rts
- ; ===========================================================================
- Sonic_HA_ObjDetected:
- jmp *
- Sonic_HA_Rts:
- rts
- ; End of subroutine Sonic_HomingAttack
Add Comment
Please, Sign In to add comment