INTRSECT.S 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. *
  2. * INTRSECT.S PAC-FRUIT AND PAC-MONSTER INTERSECT ROUTINES
  3. *
  4. * PFINTR PAC-FRUIT INTERSECT ROUTINE
  5. * IN:
  6. * USES:
  7. PFINTR
  8. LDA FENABLE ;MAKE SURE FRUIT ON
  9. BEQ PFIEND
  10. LDA FSCORE ;MAKE SURE FRUIT NOT SCORE
  11. BNE PFIEND
  12. LDA PHPOS
  13. SEC
  14. SBC FHPOS
  15. STA TEMP0
  16. BPL PFINTR1
  17. LDA #0
  18. SEC
  19. SBC TEMP0
  20. STA TEMP0 ; TEMP0 = ABS(PHPOS-FHPOS)
  21. PFINTR1 CMP #$06
  22. BCS PFIEND
  23. LDA PVPOS
  24. SEC
  25. SBC FVPOS
  26. STA TEMP1
  27. BPL PFINTR2
  28. LDA #0
  29. SEC
  30. SBC TEMP1
  31. STA TEMP1 ; TEMP1 = ABS(PVPOS-FVPOS)
  32. PFINTR2 LDY TEMP0
  33. CMP INTRSECT,Y
  34. BCS PFIEND
  35. LDY FFRUIT
  36. LDA FRTSCORH,Y
  37. STA TEMP11
  38. LDA FRTSCORL,Y
  39. STA TEMP12
  40. JSR ADDTOTAL
  41. JMP EATFRT
  42. PFIEND RTS
  43. * PMINTR PAC-MONSTER INTERSECT ROUTINE
  44. * IN:
  45. * USES:
  46. PMINTR
  47. LDX #3
  48. PMILOOP
  49. LDA PHPOS
  50. SEC
  51. SBC M0HPOS,X
  52. STA TEMP0
  53. BPL PMINTR1
  54. LDA #0
  55. SEC
  56. SBC TEMP0
  57. STA TEMP0 ; TEMP0 = ABS(PHPOS-MHPOS)
  58. PMINTR1 CMP #$06
  59. BCS PMIEND
  60. LDA PVPOS
  61. SEC
  62. SBC M0VPOS,X
  63. STA TEMP1
  64. BPL PMINTR2
  65. LDA #0
  66. SEC
  67. SBC TEMP1
  68. STA TEMP1 ; TEMP1 = ABS(PVPOS-MVPOS)
  69. PMINTR2 LDY TEMP0
  70. CMP INTRSECT,Y
  71. BCS PMIEND
  72. LDA M0STATE,X
  73. BNE PMIEND
  74. LDA M0BLUE,X
  75. BNE PMINTR3
  76. JSR KILLPAC
  77. JMP DECLIVES
  78. PMINTR3
  79. CMP #$08
  80. BNE PMIEND
  81. JSR MONDEATH
  82. JSR TURNEYES
  83. LDY GREEDCNT
  84. LDA MONSCORH,Y
  85. STA TEMP11
  86. LDA MONSCORL,Y
  87. STA TEMP12
  88. JSR ADDTOTAL
  89. INC GREEDCNT
  90. PMIEND DEX
  91. BPL PMILOOP
  92. RTS
  93. *
  94. * MONDEATH -MONSTER DEATH CODE
  95. * IN X IS MONSTER NUMBER
  96. MONDEATH
  97. JSR SCORSTMP
  98. JSR ERASEPAC
  99. JSR CLEARTUN
  100. LDA #$11
  101. JSR DOTUNE
  102. LDA RTLOCAL
  103. STA RTSAVE
  104. LDA RTLOCAL+1
  105. STA RTSAVE+1
  106. CLC
  107. ADC #1
  108. STA SCORWAIT
  109. LDA #60
  110. STA SCORTIME
  111. DEATHLP
  112. JSR SEEBNORM
  113. LDA RTLOCAL+1
  114. CMP SCORWAIT
  115. BMI DEATHLP
  116. JSR TIGHT
  117. LDA RTLOCAL+1
  118. CLC
  119. ADC #1
  120. STA SCORWAIT
  121. DEATHEND
  122. DEC SCORTIME
  123. BPL DEATHLP
  124. LDA RTSAVE+1
  125. STA RTLOCAL+1
  126. LDA RTSAVE
  127. STA RTLOCAL
  128. STX TEMP16
  129. JSR WRITEPAC
  130. LDX TEMP16
  131. RTS
  132. INTRSECT DB $05,$04,$03,$02,$01,$00
  133. MONSCORH DB $00,$00,$00,$01
  134. MONSCORL DB $20,$40,$80,$60
  135. FRTSCORH DB $00,$00,$00,$00,$00,$01,$02,$05
  136. FRTSCORL DB $05,$10,$20,$50,$70,$00,$00,$00