Advertisement
Nightseeker

ESPN Baseball Tonight code fragment

Mar 13th, 2020
1,885
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *****************************************************************************
  2. *                                                                           *
  3. *              Project: Sony ESPN Baseball                                  *
  4. *                                                                           *
  5. *               Module: AI.S                                                *
  6. *                                                                           *
  7. * Module Creation Date: March 1993                                          *
  8. *                                                                           *
  9. *               Author: Russell Shanks                                      *
  10. *                                                                           *
  11. *   Development System: Sierra Systems                                      *
  12. *                                                                           *
  13. *****************************************************************************
  14.  
  15.  
  16.     include MACROS.I
  17.     Include EQUATES.I
  18.     include sound.inc
  19.  
  20. *----------------------------------------------------------------------------
  21.  
  22.  
  23. *****************************************************************************
  24. * PPGE
  25. *****************************************************************************
  26.     include ppge_var.inc
  27.  
  28. *----------------------------------------------------------------------------
  29. *
  30.     section tables
  31.  
  32.     xdef    radar_ytable
  33.     xdef    radar_xtable
  34.  
  35. InitialLogicTable         ;entity descending order
  36.     dc.l    HaloLogic
  37.     dc.l    FieldXLogic,LookEntityLogic,LookEntityLogic
  38.     dc.l    LookEntityLogic,LookEntityLogic,InitialThirdLogic
  39.     dc.l    InitialSecondLogic,InitialFirstRunLogic
  40.     dc.l    InitialBatterLogic,InitialFielderLogic
  41.     dc.l    InitialFielderLogic,InitialFielderLogic
  42.     dc.l    InitialFielderLogic,InitialFielderLogic
  43.     dc.l    InitialFielderLogic,InitialFielderLogic
  44.     dc.l    InitialCatcherLogic,InitialPitcherLogic
  45.  
  46. FielderSelectTable
  47.     dc.w    FBaseman_ptr,Fbaseman_ptr,Sbaseman_ptr,Pitcher_ptr
  48.     dc.w    ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
  49.     dc.w    Fbaseman_ptr,Sbaseman_ptr,Sbaseman_ptr,ShortStop_ptr
  50.     dc.w    ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
  51.     dc.w    RFielder_ptr,RFielder_ptr,RFielder_ptr,CFielder_ptr
  52.     dc.w    LFielder_ptr,LFielder_ptr,LFielder_ptr
  53.  
  54.  
  55. FielderRF_tbl
  56.     dc.w    8,6,7,7,8,8,7,7
  57.  
  58. FielderThrowIS_tbl
  59.     dc.w    3,3,4,4,3,3,4,4     ;only 3 and 4's good here
  60.  
  61.     dc.b  13,13,13,13,13,13,13,13
  62.     dc.b  13,13,13,13,13,13,13,13
  63.     dc.b  13,13,13,13,13,13,13,13
  64.     dc.b  13,13,13,13,13,13,13,13
  65.     dc.b  13,13,13,13,13,13,13,13
  66.     dc.b  13,13,13,13,13,13,13,13
  67.     dc.b  13,13,13,13,13,13,13,13
  68. *       dc.b  14,15,16,17,18,19,20,21
  69.     dc.b  13,13,13,13,13,13,13,13
  70. ballvscale_table
  71. *       dc.b  22,23,24,26,27,28,29,31
  72.   dc.b  13,13,14,14,15,16,17,18
  73. *       dc.b  32,33,34,36,37,38,39,41
  74.   dc.b  20,21,22,23,25,26,27,29
  75. *       dc.b  42,43,44,45,47,48,49,50
  76.   dc.b  30,31,32,33,35,36,37,38
  77. *       dc.b  52,53,54,55,57,58,59,60
  78.   dc.b  40,41,42,43,45,46,47,48
  79. *       dc.b  62,63,64,65,67,68,69,70
  80.   dc.b  50,51,52,53,54,55,56,57
  81. *       dc.b  71,73,74,75,76,78,79,80
  82.   dc.b  61,63,65,68,71,74,76,78
  83.     dc.b  81,83,84,85,86,88,89,90
  84.     dc.b  91,93,94,95,96,97,99,100
  85.     dc.b  101,102,104,105,106,107,109,110
  86.     dc.b  111,112,114,115,116,117,119,120
  87.     dc.b  121,122,123,125,126,127,128,130
  88.     dc.b  131,132,133,135,136,137,138,140
  89.     dc.b  141,142,143,145,146,147,148,150
  90.     dc.b  151,152,153,154,156,157,158,159
  91.     dc.b  161,162,163,164,166,167,168,169
  92.     dc.b  171,172,173,174,176,177,178,179
  93.     dc.b  180,182,183,184,185,187,188,189
  94.     dc.b  190,192,193,194,195,197,198,199
  95.     dc.b  200,202,203,204,205,206,208,209
  96.     dc.b  210,211,213,214,215,216,218,219
  97.     dc.b  220,221,223,224,225,226,228,229
  98.     dc.b  230,231,232,234,235,236,237,239
  99.     dc.b  240,241,242,244,245,246,247,249
  100.     dc.b  250,251,252,254,255,255
  101.  
  102.  
  103. *       dc.b  67,68,69,70,71,72,73,74
  104.    dc.b  31,33,35,37,39,41,43,47
  105. runnervscale_table
  106. *       dc.b  75,76,77,78,79,80,81,82
  107.    dc.b  49,51,53,57,59,61,63,65
  108. *       dc.b  83,84,85,86,87,88,89,90
  109.    dc.b  67,69,71,73,75,77,79,81
  110. *       dc.b  91,92,93,94,95,96,97,98
  111.    dc.b  83,85,87,89,91,93,95,96
  112. *       dc.b   99,100,100,100,100,100,100,100
  113.    dc.b   97,97,98,98,99,99,100,100
  114.     dc.b  100,100,100,100,100,100,100,100
  115.     dc.b  100,100,100,100,100,100,100,100
  116.     dc.b  100,100,100,100,100,100,100,100
  117.     dc.b  100,100,100,100,100,100,100,100
  118.     dc.b  101,102,104,105,106,107,109,110
  119.     dc.b  111,112,114,115,116,117,119,120
  120.     dc.b  121,122,123,125,126,127,128,130
  121.     dc.b  131,132,133,135,136,137,138,140
  122.     dc.b  141,142,143,145,146,147,148,150
  123.     dc.b  151,152,153,154,156,157,158,159
  124.     dc.b  161,162,163,164,166,167,168,169
  125.     dc.b  171,172,173,174,176,177,178,179
  126.     dc.b  180,182,183,184,185,187,188,189
  127.     dc.b  190,192,193,194,195,197,198,199
  128.     dc.b  200,202,203,204,205,206,208,209
  129.     dc.b  210,211,213,214,215,216,218,219
  130.     dc.b  220,221,223,224,225,226,228,229
  131.     dc.b  230,231,232,234,235,236,237,239
  132.     dc.b  240,241,242,244,245,246,247,249
  133.     dc.b  250,251,252,254,255,255
  134.  
  135.  
  136.  
  137. *       dc.b  100,100,100,100,100,100,100,100
  138. *runnervscale_table
  139. *       dc.b  100,100,100,100,100,100,100,100
  140. *       dc.b  100,100,100,100,100,100,100,100
  141. *       dc.b  100,100,100,100,100,100,100,100
  142. *       dc.b  100,100,100,100,100,100,100,100
  143. *       dc.b  100,100,100,100,100,100,100,100
  144. *       dc.b  100,100,100,100,100,100,100,100
  145. *       dc.b  100,100,100,100,100,100,100,100
  146. *       dc.b  100,100,100,100,100,100,100,100
  147. *       dc.b  101,102,104,105,106,107,109,110
  148. *       dc.b  111,112,114,115,116,117,119,120
  149. *       dc.b  121,122,123,125,126,127,128,130
  150. *       dc.b  131,132,133,135,136,137,138,140
  151. *       dc.b  141,142,143,145,146,147,148,150
  152. *       dc.b  151,152,153,154,156,157,158,159
  153. *       dc.b  161,162,163,164,166,167,168,169
  154. *       dc.b  171,172,173,174,176,177,178,179
  155. *       dc.b  180,182,183,184,185,187,188,189
  156. *       dc.b  190,192,193,194,195,197,198,199
  157. *       dc.b  200,202,203,204,205,206,208,209
  158. *       dc.b  210,211,213,214,215,216,218,219
  159. *       dc.b  220,221,223,224,225,226,228,229
  160. *       dc.b  230,231,232,234,235,236,237,239
  161. *       dc.b  240,241,242,244,245,246,247,249
  162. *       dc.b  250,251,252,254,255,255
  163.  
  164.  
  165.  
  166. *       dc.w    #0,#430,#518,#573,#615,#647
  167.     dc.w    #430,#430,#430,#430,#518,#573,#615,#647
  168. walltable
  169.     dc.w    #686,#717,#742,#766,#792,#816,#838,#862  ;16
  170.     dc.w    #878,#893,#913,#924,#925,#925,#925,#925  ;24
  171.     dc.w    #925,#925,#925,#925,#925,#925,#925,#925  ;32
  172.     dc.w    #926,#927,#928,#929,#930,#930,#930,#926  ;40
  173.     dc.w    #922,#918,#914,#910,#906,#902,#898,#894  ;48
  174.     dc.w    #890,#886,#882,#878,#874,#870,#866,#862  ;56
  175.     dc.w    #858,#854,#850,#846,#842,#838,#834,#830  ;64
  176.     dc.w    #826,#822,#818,#814,#810,#806,#802,#798  ;72
  177.     dc.w    #794,#790,#786,#782,#768,#764,#760,#756  ;80
  178.     dc.w    #752,#748,#744,#738,#734,#730,#726,#722  ;88
  179.     dc.w    #718,#714,#710,#706,#704,#700,#696,#692  ;96
  180.     dc.w    #688,#684,#680,#676,#672,#668,#664,#660  ;104
  181.     dc.w    #656,#652,#648,#644,#640,#634,#630,#626  ;112
  182. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;40
  183. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;48
  184. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;56
  185. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;64
  186. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;72
  187. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;80
  188. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;88
  189. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;96
  190. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;104
  191. *       dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;112
  192.  
  193.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;120
  194.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;128
  195.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;136
  196.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;144
  197.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;152
  198.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;160
  199.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;168
  200.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;176
  201.     dc.w    #961,#961,#961,#961,#961,#961,#961,#961  ;184
  202.  
  203.     dc.b  8,8,8,8,8,8,8,8
  204. To1AndHome
  205. *       dc.b  8,8,8,8,8,8,8,8       ;0-7
  206.     dc.b  9,9,9,9,9,9,9,8       ;15
  207.     dc.b  8,8,8,8,8,7,7,7       ;23
  208.     dc.b  7,7,7,6,6,6,6,6       ;31
  209.     dc.b  6,5,5,5,5,5,5,4       ;39
  210.     dc.b  4,4,4,4,4,3,3,3       ;47
  211.     dc.b  3,3,3,3,2,2,2,2       ;55
  212.     dc.b  2,2,1,1,1,1,1,1       ;63
  213.     dc.b  1,1,1,1,1,1,1,1       ;71
  214.     dc.b  1,1,1,1,1,1,1,1
  215.     dc.b  1,1,1,1,1,1,1,1
  216.     dc.b  1,1,1,1,1,1,1,1
  217.     dc.b  1,1
  218.  
  219.     dc.b  1,1,1,1,1,1,1,1
  220.     dc.b  1,1,1,1,1,1,1,1
  221.     dc.b  1,1,1,1,1,1,1,1
  222.  
  223.     dc.b  4,4,4,4,4,4,4,4,4,4
  224. To2And3
  225.     dc.b  4,4,4,4,4,4,4,4,4,4
  226.     dc.b  3,3,3,3,3,3,3,3,3,3
  227.     dc.b  2,2,2,2,2,2,2,2,2,2
  228.     dc.b  1,1,1,1,1,1,1,1,1,1
  229.     dc.b  0,0,0,0,0,0,0,0,0,0
  230.  
  231. *       dc.b  0,0,0,0,0,0,0,0
  232. *       dc.b  0,0,0,0,0,0,0,0,0
  233. *       dc.b  0,0,0,0,0,0,0,0,0
  234.  
  235. FielderScaleTable
  236.     dc.b  0,0,0,0,0,0,0,1         ;8
  237.     dc.b  1,1,1,1,1,1,2,2         ;16
  238.     dc.b  2,2,2,2,2,3,3,3         ;32
  239. *       dc.b  3,3,3,3,4,4,4,4         ;40
  240. *       dc.b  4,4,4,5,5,5,5,5         ;48
  241.     dc.b  3,4,4,4,4,5,5,5         ;40
  242.     dc.b  5,5,5,5,5,5,5,5         ;48
  243.     dc.b  5,6,6,6,6,6,6,6         ;56
  244.     dc.b  6,6,6,6,6,6,6,6         ;64
  245.     dc.b  6,6,6,6,6,6,6,6         ;72
  246.     dc.b  6,6,6,6,6,6,6,6         ;
  247.     dc.b  6,6,6,6,6,6,6,6         ;
  248.     dc.b  6,6,6,6,6,6,6,6         ;
  249.     dc.b  6,6,6,6,6,6,6,6         ;
  250.     dc.b  6,6,6,6,6,6,6,6         ;
  251.     dc.b  6,6,6,6,6,6,6,6         ;
  252.     dc.b  6,6,6,6,6,6,6,6         ;
  253.     dc.b  6,6,6,6,6,6,6,6         ;
  254.     dc.b  6,6,6,6,6,6,6,6         ;
  255.     dc.b  6,6,6,6,6,6,6,6         ;
  256.     dc.b  6,6,6,6,6,6,6,6         ;
  257.     dc.b  6,6,6,6,6,6,6,6         ;
  258.     dc.b  6,6,6,6,6,6,6,6         ;
  259.     dc.b  6,6,6,6,6,6,6,6         ;184
  260.  
  261.  
  262. Pdirectiontable
  263.     dc.b    #0,#128,#0,#128,#192,#160,#224,#224
  264.     dc.b    #64,#96,#32,#64,#64,#64,#64,#64
  265.  
  266.     dc.b  0,0,0,0,0,0,0,0
  267.     dc.b  0,0,0,0,0,0,0,0
  268.     dc.b  0,0,0,0,0,0,0,0
  269.     dc.b  0,0,0,0,0,0,0,0
  270.     dc.b  0,0,0,0,0,0,0,0
  271.     dc.b  0,0,0,0,0,0,0,0
  272.     dc.b  0,0,0,0,0,0,0,0
  273.     dc.b  1,2,3,4,5,6,7,8               ; -8 - -1
  274. radar_ytable
  275.     dc.b  9,10,11,12,13,14,15,16             ; 0-7
  276.     dc.b  17,18,19,20,21,21,22,23             ; 8-15
  277.     dc.b  23,24,25,25,26,27,27,28             ; 16-23
  278.     dc.b  29,29,30,30,31,31,32,32             ; 24-31
  279.     dc.b  33,33,34,34,34,35,35,35             ; 32-39
  280.     dc.b  36,36,36,37,37,37,38,38             ; 40-47
  281.  
  282.     dc.b  38,39,39,40,40,41,41,42             ; 48-55
  283.     dc.b  42,43,43,44,44,45,45,46             ; 56-63   Pitcher's mound y=61
  284.  
  285.     dc.b  46,46,47,47,47,47,48,48             ; 64-71
  286.     dc.b  48,48,48,49,49,49,49,49
  287.     dc.b  49,50,50,50,50,50,50,51
  288.     dc.b  51,51,51,51,51,52,52,52
  289.     dc.b  52,52,52,53,53,53,53,53
  290.     dc.b  53,54,54,54,54,54,54,55
  291.     dc.b  55,55,55,55,55,56,56,56
  292.     dc.b  56,56,56,57,57,57,57,57
  293.     dc.b  57,58,58,58,58,58,58,59
  294.     dc.b  59,59,59,59,60,60,60,60
  295.  
  296.     dc.b  60,60,61,61,61,61,61,61
  297.     dc.b  62,62,62,62,62,62,63,63
  298.     dc.b  63,63,63,63,64,64,64,64
  299.     dc.b  64,64,65,65,65,65,65,65
  300.     dc.b  66,66,66,66,66,66,67,67
  301.     dc.b  67,67,67,67,68,68,68,68
  302.  
  303. Radar_xtable
  304.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
  305.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
  306.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
  307.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
  308.     dc.b    #0,#0,#0,#0,#0,#0,#0,#0
  309.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
  310.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
  311.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
  312.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
  313.     dc.b    #1,#1,#1,#1,#1,#1,#1,#1
  314.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
  315.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
  316.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
  317.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
  318.     dc.b    #2,#2,#2,#2,#2,#2,#2,#2
  319.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
  320.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
  321.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
  322.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
  323.     dc.b    #3,#3,#3,#3,#3,#3,#3,#3
  324.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
  325.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
  326.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
  327.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
  328.     dc.b    #4,#4,#4,#4,#4,#4,#4,#4
  329.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
  330.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
  331.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
  332.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
  333.     dc.b    #5,#5,#5,#5,#5,#5,#5,#5
  334.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
  335.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
  336.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
  337.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
  338.     dc.b    #6,#6,#6,#6,#6,#6,#6,#6
  339.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
  340.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
  341.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
  342.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
  343.     dc.b    #7,#7,#7,#7,#7,#7,#7,#7
  344.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
  345.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
  346.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
  347.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
  348.     dc.b    #8,#8,#8,#8,#8,#8,#8,#8
  349.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
  350.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
  351.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
  352.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
  353.     dc.b    #9,#9,#9,#9,#9,#9,#9,#9
  354.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
  355.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
  356.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
  357.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
  358.     dc.b    #10,#10,#10,#10,#10,#10,#10,#10
  359.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
  360.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
  361.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
  362.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
  363.     dc.b    #11,#11,#11,#11,#11,#11,#11,#11
  364.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
  365.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
  366.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
  367.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
  368.     dc.b    #12,#12,#12,#12,#12,#12,#12,#12
  369.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
  370.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
  371.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
  372.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
  373.     dc.b    #13,#13,#13,#13,#13,#13,#13,#13
  374.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
  375.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
  376.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
  377.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
  378.     dc.b    #14,#14,#14,#14,#14,#14,#14,#14
  379.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
  380.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
  381.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
  382.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
  383.     dc.b    #15,#15,#15,#15,#15,#15,#15,#15
  384.     dc.b    #16,#16,#16,#16,#16,#16,#16,#16
  385.     dc.b    #16,#16,#16,#16,#16,#16,#16,#17
  386.     dc.b    #17,#17,#17,#17,#17,#17,#17,#17
  387.     dc.b    #17,#17,#17,#17,#17,#18,#18,#18
  388.     dc.b    #18,#18,#18,#18,#18,#18,#18,#18
  389.     dc.b    #18,#18,#18,#19,#19,#19,#19,#19
  390.     dc.b    #19,#19,#19,#19,#19,#19,#19,#19
  391.     dc.b    #19,#20,#20,#20,#20,#20,#20,#20
  392.     dc.b    #20,#20,#20,#20,#20,#20,#20,#20
  393.     dc.b    #21,#21,#21,#21,#21,#21,#21,#21
  394.     dc.b    #21,#21,#21,#21,#21,#21,#22,#22
  395.     dc.b    #22,#22,#22,#22,#22,#22,#22,#22
  396.     dc.b    #22,#22,#22,#22,#23,#23,#23,#23
  397.     dc.b    #23,#23,#23,#23,#23,#23,#23,#23
  398.     dc.b    #23,#23,#24,#24,#24,#24,#24,#24
  399.     dc.b    #24,#24,#24,#24,#24,#24,#24,#24
  400.     dc.b    #24,#25,#25,#25,#25,#25,#25,#25
  401.     dc.b    #25,#25,#25,#25,#25,#25,#25,#26
  402.     dc.b    #26,#26,#26,#26,#26,#26,#26,#26
  403.     dc.b    #26,#26,#26,#26,#26,#27,#27,#27
  404.     dc.b    #27,#27,#27,#27,#27,#27,#27,#27
  405.     dc.b    #27,#27,#27,#28,#28,#28,#28,#28
  406.     dc.b    #28,#28,#28,#28,#28,#28,#28,#28
  407.     dc.b    #28,#29,#29,#29,#29,#29,#29,#29
  408.     dc.b    #29,#29,#29,#29,#29,#29,#29,#29
  409.     dc.b    #30,#30,#30,#30,#30,#30,#30,#30
  410.     dc.b    #30,#30,#30,#30,#30,#30,#31,#31
  411.     dc.b    #31,#31,#31,#31,#31,#31,#31,#31
  412.     dc.b    #31,#31,#31,#31,#32,#32,#32,#32
  413.     dc.b    #32,#32,#32,#32,#32,#32,#32,#32
  414.     dc.b    #32,#32,#33,#33,#33,#33,#33,#33
  415.     dc.b    #33,#33,#33,#33,#33,#33,#33,#33
  416.     dc.b    #33,#34,#34,#34,#34,#34,#34,#34
  417.     dc.b    #34,#34,#34,#34,#34,#34,#34,#35
  418.     dc.b    #35,#35,#35,#35,#35,#35,#35,#35
  419.     dc.b    #35,#35,#35,#35,#35,#36,#36,#36
  420.     dc.b    #36,#36,#36,#36,#36,#36,#36,#36
  421.     dc.b    #36,#36,#36,#37,#37,#37,#37,#37
  422.     dc.b    #37,#37,#37,#37,#37,#37,#37,#37
  423.     dc.b    #37,#38,#38,#38,#38,#38,#38,#38
  424.     dc.b    #38,#38,#38,#38,#38,#38,#38,#38
  425.     dc.b    #39,#39,#39,#39,#39,#39,#39,#39
  426.     dc.b    #39,#39,#39,#39,#39,#39,#40,#40
  427.     dc.b    #40,#40,#40,#40,#40,#40,#40,#40
  428.     dc.b    #40,#40,#40,#40,#41,#41,#41,#41
  429.     dc.b    #41,#41,#41,#41,#41,#41,#41,#41
  430.     dc.b    #41,#41,#42,#42,#42,#42,#42,#42
  431.     dc.b    #42,#42,#42,#42,#42,#42,#42,#42
  432.  
  433.  
  434. CPitchType_tbl
  435.     dc.w    0,0,0
  436.     dc.w    #Joy_U,#Joy_U,#Joy_U
  437.     dc.w    #Joy_D,#Joy_D,#Joy_D
  438.     dc.w    #Joy_L,#Joy_L,#Joy_L
  439.     dc.w    #Joy_R,#Joy_R,#Joy_R
  440.  
  441. ; 0 down middle, 1 high, 2 low, 3 left, 4 right
  442.  
  443.     xdef PlayerPos_EntityNum_tbl
  444.  
  445. PlayerPos_EntityNum_tbl
  446.     dc.w    #Pitcher_ptr,#Pitcher_ptr   ; s/r pitcher
  447.     dc.w    #FBaseman_ptr
  448.     dc.w    #SBaseman_ptr
  449.     dc.w    #TBaseman_ptr
  450.     dc.w    #ShortStop_ptr
  451.     dc.w    #LFielder_ptr
  452.     dc.w    #RFielder_ptr
  453.     dc.w    #CFielder_ptr
  454.     dc.w    #Catcher_ptr
  455.     dc.w    #Batter_ptr
  456.  
  457.  
  458. AFFlipTable
  459.     dc.w    FBaseman_ptr,TBaseman_ptr
  460.     dc.w    SBaseman_ptr,ShortStop_ptr
  461.     dc.w    RFielder_ptr,LFielder_ptr
  462.  
  463.     section .text
  464.  
  465. BatRangeTable
  466.     dc.w    BatLowHitRange,BatMidHitRange
  467.     dc.w    BatHighHitRange,BatMidHitRange
  468.  
  469.  
  470.     xdef    AI
  471.     xdef    NullLogic
  472.     xdef    BatSwing_000
  473.     xdef    Pitch_000
  474.     xdef    Bounds_RL
  475.     xdef    HaloLogic
  476.     xdef    FieldXLogic
  477.     xdef    LookEntityLogic
  478.     xdef    InitialBallLogic
  479.     xdef    BallShadowLogic
  480.     xdef    InitialCatcherLogic
  481.     xdef    InitialPitcherLogic
  482.     xdef    InitialBatterLogic
  483.     xdef    InitialCameraLogic
  484.     xdef    FractionalMultiply
  485.     xdef    InitialFielderLogic
  486.     xdef    InitialRunnerLogic
  487.     xdef    InitialFirstRunLogic
  488.     xdef    InitialSecondLogic
  489.     xdef    InitialThirdLogic
  490.  
  491. ***********************************************************************
  492. Cosine          MACRO
  493.  
  494.         movem.l \1/A0,-(sp)
  495.         lea.l   Cosine_Table,A0
  496.  
  497.         lsl.w   #1,\1
  498.         move.w  (A0,\1.w),\3
  499.         muls.w  \2,\3
  500.  
  501.         movem.l  (sp)+,\1/A0
  502.  
  503.         ENDM
  504.  
  505. Sine            MACRO
  506.  
  507.         movem.l \1/A0,-(sp)
  508.         lea.l   Sine_Table,A0
  509.  
  510.         lsl.w   #1,\1
  511.         move.w  (A0,\1.w),\3
  512.         muls.w  \2,\3
  513.  
  514.         movem.l  (sp)+,\1/A0
  515.  
  516.         ENDM
  517.  
  518. Atan            MACRO
  519.  
  520.         movem.l \1/\2/A0,-(sp)
  521.         lea.l   ArcTAN_Table,A0
  522.         lsr.l   #8,\1
  523.     IFEQ    ArcTan_Bytes-1
  524.         lsr.l   #1,\1
  525.     ELSEC
  526.         lsr.l   #1,\1
  527.     ENDC
  528.         add.l   #$8000,\2
  529.         clr.w   \2
  530.         swap    \2
  531.  
  532.         tst.l   \2
  533.         bne     .do_div\@
  534.  
  535.         move.w  #0,\3
  536.         bra     .atx\@
  537. .do_div\@
  538.         divu.w  \2,\1
  539.  
  540.         cmp.w   #$80,\1
  541.         blt     .adj\@
  542.  
  543.         move.w  #$20,\3
  544.         jmp     .atx\@
  545. .adj\@
  546.         sub.w   #1,\1
  547.         bpl     .do_shift\@
  548.         clr.w   \1
  549. .do_shift\@
  550.     IFEQ    ArcTan_Bytes-1
  551.         move.w  \1,\2
  552.         and.w   #$7E,\1
  553.  
  554.         move.w  (A0,\1.w),\3
  555.         btst    #0,\2
  556.         bne     .got_atan\@
  557.  
  558.         lsr.w   #8,\3
  559. .got_atan\@
  560.         and.w   #$00FF,\3
  561.     ELSEC
  562.         lsl.w   #1,\1
  563.         move.w  (A0,\1.w),\3
  564.     ENDC
  565. .atx\@
  566.         movem.l  (sp)+,\1/\2/A0
  567.  
  568.         ENDM
  569.  
  570. AI
  571.         movem.l D0-D7/A0-A6,-(sp)
  572.     move.l  sp,StackDebugPtr
  573.         move.w  Num_Entities,D7
  574. NORL
  575.     cmp.l   StackDebugPtr,sp
  576.     bne     NORL
  577.         lea.l   VTentity,A0
  578.         sub.l   #1,D7
  579.         bmi     _AI_done
  580.         move.l  D7,D0
  581.         asl.l   #Index_Shift,D0
  582.  
  583. *               cmp.w   #0,VTFon(A0,D0.w)       ;is this entity to be processed?
  584. *                beq     NORL                    ;if not then get the next one
  585.  
  586.         cmp.w   #2,RunnerExists
  587.         ble     .c1
  588.         cmp.w   #Batter_ptr,d0
  589.         ble     .c1
  590.         tst.w   VTFrend(a0,d0.w)
  591.         bne     .c1
  592.         move.w  d7,d6
  593.         and.w   #1,d6
  594.         move.w  VBlank_cnt,d5
  595.         and.w   #1,d5
  596.         eor.w   d5,d6
  597.         bne     NORL
  598. .c1
  599.         move.l  VTseq_step(A0,D0.w),D1  ;does this entity have AI?
  600.         beq     NORL                    ;if not then get the next one
  601.         move.l  D1,A1
  602.         jmp     (A1)                    ;otherwise do AI
  603. _AI_done
  604.         movem.l (sp)+,D0-D7/A0-A6
  605.         rts
  606.  
  607. *****************************************************************************
  608.  
  609. NullLogic       jmp     NORL
  610.  
  611. InfOutfline     equ     SBase_Y-$50000
  612. BILine1y        equ     #$34    ;20
  613. BILine2y        equ     #$c
  614.  
  615. Grab_Radius     equ     $20000
  616.  
  617.  
  618. BallSpeed       equ     $-200000
  619. Pball_x         equ     406
  620. Pball_y         equ     -21
  621.  
  622. BatHitFrame     equ     15           ;18
  623. CheckSwingFrame equ     15           ;18
  624.  
  625. RBatBoxMin      equ     $ffcc
  626. RBatBoxMax      equ     $ffe0  ;$ffe5
  627. LBatBoxMin      equ     $20    ;$1b
  628. LBatBoxMax      equ     $34
  629.  
  630. PitcherMaxL     equ     $fffc
  631. PitcherMaxR     equ     $4
  632.  
  633. BatHitToRunStrip equ    $0
  634.  
  635. SlowPitchSpeed  equ     $08
  636. SlowPitchSpeedz equ     $2
  637. MediumPitchSpeed equ    $09
  638. MediumPitchSpeedz equ   $2
  639. FastPitchSpeed  equ     $0b  ;a
  640. FastPitchSpeedz equ     $1
  641.  
  642. StraightPitch   equ     $0
  643. RightCurvePitch equ     $1
  644. LeftCurvePitch  equ     $2
  645. UpCurvePitch    equ     $4
  646. DownCurvePitch  equ     $8
  647. GroundFriction  equ     $00000b00      ;500
  648.  
  649. BatLowHit       equ     $0
  650. BatMidHit       equ     $2
  651. BatHighHit      equ     $4
  652. Bunt            equ     $6
  653.  
  654.  
  655. BatYRangeLow    equ     $95   ;$082
  656. BatYRangeMid    equ     $a0   ;$095
  657. BatYRangeHigh   equ     $0ac
  658.  
  659. *BallRangeHigh  equ     $0b2     ;off bottom of screen
  660. BallRangeHigh   equ     $0c0     ;off bottom of screen
  661.  
  662. BallMaxX        equ     $0400    ;off right of screen
  663. BallMinX        equ     $fc00    ;off left of screen
  664.  
  665. HitBoxY         equ     $095
  666. HitBoxTop       equ     $0b0     ;90
  667. HitBoxBottom    equ     $030
  668. HitBoxLeft      equ     $fff3
  669. HitBoxRight     equ     $b
  670.  
  671. Fielder_Reach   equ     $d0
  672. FielderRunSpeed equ     $5800  ;10000
  673.  
  674. Strike          equ     $0001
  675. Ball            equ     $ffff
  676. HT_Home_Run     equ     #1
  677. HT_Outf         equ     #2
  678. HT_Ord          equ     #0
  679. HT_Foul         equ     #3
  680. HT_Bunt         equ     #4
  681. HT_IFPop        equ     #5
  682.  
  683. BatLowHitRange  equ     124  ;#$48
  684. BatMidHitRange  equ     153  ;#$90
  685. BatHighHitRange equ     156  ;#$cb  
  686.  
  687. MaxZHeight      equ     #$400000
  688.  
  689.  
  690.  
  691. ballvscale_lo   equ     -7
  692. ballvscale_high equ     BallRangeHigh
  693.  
  694. *****************************************************************************
  695. WaitOnAnimation
  696.     tst.w   VTFrdir(a0,d0.w)    ;if animation not running don't wait
  697.     beq     setnextseq
  698.     tst.w   VTFrend(a0,d0.w)
  699.     beq     .done
  700. setnextseq
  701.     move.l  VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
  702.     clr.w   VTFrdir(a0,d0.w)
  703. .done   jmp     NORL
  704.  
  705. *****************************************************************************
  706. WaitOnCatchAnimation
  707.     jsr     checktags
  708.     tst.w   VTFrdir(a0,d0.w)    ;if animation not running don't wait
  709.     beq     .setnextseq
  710.     tst.w   VTFrend(a0,d0.w)
  711.     beq     .done
  712. .setnextseq
  713.     move.l  VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
  714.     clr.w   VTFrdir(a0,d0.w)
  715. .done   jmp     NORL
  716.  
  717.  
  718. **************************************************************
  719.     xdef HRDerbyLogic
  720.  
  721. HRDerbyLogic
  722.     tst.w   DerbyDone
  723.     bne     .waitstart
  724.  
  725.     move.w  Fcontrollers,d1     ;allow S to exit hrderby
  726.     or.w    BControllers,d1
  727.     btst    #Joy_S,d1
  728.     beq     .r1
  729.     lsr.w   #8,d1
  730.     btst    #Joy_S,d1
  731.     beq .waitstart
  732. .r1
  733.     lea.l   DerbyBatterNum,a1
  734.     add.l   BteamAdj,a1
  735.     move.w  (a1),PlayerAtBat
  736.   tst.w PlayerAtBat   ;QUICK PATCH : FIND BUG IN DOSUBS!
  737.   bge   .bp1
  738.   clr.w PlayerAtBat
  739. .bp1
  740.     tst.w   DerbyEvent
  741.     beq     .done
  742.     jsr     DisplayDerbyInfo
  743.  
  744.     cmp.w   #15,DerbyPitchNum
  745.     blt     .done
  746.  
  747.     tst.w   NumGamers
  748.     beq .dr
  749.     tst.w   DerbyPlayer
  750.     bne .dr
  751.     jsr Clear_ScrollA
  752. .dr
  753.     jsr DisplayDerbyRanking
  754.  
  755.     cmp.w   #1,NumGamers    ;derby over if 1 player mode
  756.     blt     .derbydone
  757.     tst.w   DerbyPlayer     ;or if player 2 is done
  758.     beq     .c1
  759. .derbydone
  760.     move.w  #1,DerbyDone
  761.     clr.w   VTFrdir(a0,d0.w)
  762.     clr.w   FComputer
  763.     bra     .done
  764. .c1
  765.     move.w  #1,NeedNewBatter
  766.     eor.l   #2,FTeamAdj
  767.     eor.l   #2,BTeamAdj
  768.     move.w  BTeamNum,d1
  769.     move.w  FTeamNum,BTeamNum
  770.     move.w  d1,FTeamNum
  771.     clr.w   DerbyPitchNum
  772.     clr.w   DerbyScore
  773.     eor.w   #1,DerbyPlayer
  774.     jsr     SwitchPlayerPal
  775. .done
  776.     jmp     NORL
  777. .waitstart
  778.     clr.w   VTfrdir(a0,d0.w)
  779.     move.w  Fcontrollers,d1
  780.     or.w    BControllers,d1
  781.     btst    #Joy_S,d1
  782.     beq     .checkc
  783.     lsr.w   #8,d1
  784.     btst    #Joy_S,d1
  785.     bne     .checkc
  786.     clr.w   FComputer       ;Reset Controllers
  787.     clr.l   FTeamAdj
  788.     move.l  #2,BTeamAdj
  789.     clr.w   killradarentities
  790.     clr.w   runsht
  791.     clr.w   runsvt
  792.     move    #0,FadeDirection        ;Fade Down Field
  793.     move    #2,FadeSpeed
  794.     clr.w   PracticeMode
  795.     StopSound       #S_DIGITALCROWD
  796.    jsr _Initgems
  797.     JSR     StartFadeDown
  798.     jsr     WaitForFadeUp
  799.     move.l  #VCTRL,A4               *; Macros use these registers
  800.     move.w  #$9000+000000,(A4)   ;R16= | 0 | 0 |VS1|VS0| 0 | 0 |HS1|HS0| Scroll Size (00=32,01=64,10=XX,11=128)
  801.     jmp     WarmEntry   ;DoGame
  802. .checkc
  803.     btst    #Joy_C,d1
  804.     beq     .done
  805.     lsr.w   #8,d1
  806.     btst    #Joy_C,d1
  807.     bne     .done
  808. *   jsr Clear_ScrollA
  809.     clr.w   DerbyDone
  810.     clr.w   DerbyPitchNum
  811.   move.w #14,derbypitchnum
  812.     clr.w   DerbyScore
  813.     move.w  #1,DerbyEvent
  814.     move.w  #1,NeedNewBatter
  815.     move.w  #1,FComputer
  816.     tst.w   NumGamers
  817.     bne .c1
  818.     clr.w   DerbyPlayer
  819.     jmp NORL
  820.  
  821. **************************************************************
  822.     xdef PracticeModeLogic
  823.  
  824. PracticeModeLogic
  825.     move.w  Fcontrollers,d1
  826.     or.w    BControllers,d1
  827.     btst    #Joy_S,d1
  828.     beq     .c1
  829.     lsr.w   #8,d1
  830.     btst    #Joy_S,d1
  831.     bne     .c1
  832.     bset    #Joy_S,d1
  833.     move.w  d1,BControllers
  834.     move.w  d1,FControllers
  835.     jsr     DisplayPractMsg
  836.     add.w   #1,temp4
  837.     cmp.w   #2,temp4
  838.     blt     .c1
  839.     jmp     DoGame
  840. .c1
  841.     move.w  Fcontrollers,d1
  842.     or.w    BControllers,d1
  843.     btst    #Joy_C,d1
  844.     beq     .done
  845.     lsr.w   #8,d1
  846.     btst    #Joy_C,d1
  847.     bne     .done
  848.  
  849.     move.w  #1,temp4
  850.     clr.w   d1                ;set debounce next round
  851.     bset    #Joy_C,d1
  852.     move.w  d1,BControllers
  853.     move.w  d1,FControllers
  854.  
  855.     eor.l   #2,FTeamAdj
  856.     eor.l   #2,BTeamAdj
  857.     move.w  Fcomputer,d1
  858.     move.w  Bcomputer,Fcomputer
  859.     move.w  d1,Bcomputer
  860.     jsr     DisplayPractMsg
  861. .done
  862.     jmp     NORL
  863.  
  864. HeavyCameraLogic
  865.     movem.l a2,-(sp)
  866.  
  867.     lea.l   Vtentity+FieldX_ptr,a1
  868.     tst.w   VTfon(a1)
  869.     bne     _YNotReset
  870.  
  871. *  lea.l        Vtentity+ball_ent_ptr,a2
  872. *  move.l       VTsped(a2),d2
  873. *  asl.l        #4,d2
  874. *  move.w       VTdir(a2),d1
  875. *  jsr  GetEndPoint
  876. *  add.l        VTy(a2),d2
  877. *  move.l       d2,d1           ;leading y coordinate
  878.  
  879.     move.l  VTy(a0,d0.w),d1
  880.     cmp.w   #BallHit_ps,Playstage
  881.     beq .r0
  882.     move.w  Active_Fielder,d3    ;if ball thrown
  883.     move.l  VTy(a0,d3.w),d1      ;follow active fielder
  884.  
  885. *   move.l  VTy(a0,d0.w),d1
  886. .r0 sub.l   Oldy,d1
  887.     bge     _DY_Positive
  888.     asr.l   #3,d1
  889.     cmp.l   #-8*$10000,d1
  890.     bge     _NDyok
  891.     move.l  #-8*$10000,d1
  892. _NDyok
  893.     move.l  d1,PCamDy
  894.     bra     _CamDyDone
  895.  
  896. _DY_Positive
  897.     asr.l   #3,d1
  898.     cmp.l   #8*$10000,d1
  899.     ble     _PDyok
  900.     move.l  #8*$10000,d1
  901. _PDyok
  902.     move.l  d1,PCamDy
  903.  
  904. _CamDyDone
  905.     move.l  Oldy,d1
  906.     add.l   PCamDy,d1
  907.     move.l  d1,VTy(a0,d0.w)
  908.     bra     _nowx
  909.  
  910. _YNotReset
  911.     move.l  VTy(a0,d0.w),d1
  912.     cmp.w   #BallHit_ps,Playstage
  913.     beq .r1
  914.     move.w  Active_Fielder,d3
  915.     move.l  VTy(a0,d3.w),d1
  916. .r1
  917.     move.l  d1,d2
  918.     and.l   #$ffff0000,d2
  919.     move.l  Oldy,d3
  920.     and.l   #$ffff0000,d3
  921.     cmp.l   d2,d3
  922.     beq     _nowx
  923.     sub.l   Oldy,d1
  924.     asr.l   #4,d1
  925.     bpl     _YDY_Positive
  926.     cmp.l   NCamDY,d1
  927.     bge     _NsetNCamDy
  928.  
  929.     move.l  NCamDy,d1
  930.     cmp.l   #-8*$10000,d1
  931.     ble     _YNDyok
  932.     sub.l   #$4000,d1
  933. _NSetNCamDY
  934.     move.l  d1,NCamDy
  935. _YNDyok
  936.     move.l  d1,PCamDy
  937.     bra     _YCamDyDone
  938.  
  939. _YDY_Positive
  940.     cmp.l   NCamDY,d1
  941.     ble     _PSetNCamDY
  942.  
  943.     move.l  NCamDy,d1
  944.     cmp.l   #8*$10000,d1
  945.     bge     _YPDyok
  946.     add.l   #$4000,d1
  947.  
  948. _PSetNCamDY
  949.     move.l  d1,NCamDY
  950.  
  951. _YPDyok
  952.     move.l  d1,PCamDy
  953.  
  954. _YCamDyDone
  955.     move.l  Oldy,d1
  956.     add.l   PCamDy,d1
  957.     move.l  d1,VTy(a0,d0.w)
  958. _nowx
  959.     tst.w   VTFon(a1)
  960.     bne     _XNotReset
  961.  
  962. *  lea.l        Vtentity+ball_ent_ptr,a2
  963. *   move.l      VTsped(a2),d2
  964. *   asl.l       #4,d2
  965. *   move.w      VTdir(a2),d1
  966. *   jsr GetEndPoint
  967. *   add.l       VTx(a2),d1 ;leading x Coordinate
  968.  
  969.     move.l  Vtx(a0,d0.w),d1
  970.     cmp.w   #BallHit_ps,Playstage
  971.     beq .r2
  972.     move.w  Active_Fielder,d3
  973.     move.l  VTx(a0,d3.w),d1
  974. .r2
  975. *   move.l  Vtx(a0,d0.w),d1
  976.     sub.l   Oldx,d1
  977.     bge     _DX_Positive
  978.     asr.l   #3,d1
  979.     cmp.l   #-16*$10000,d1    ;16
  980.     bge     _NDxok
  981.     move.l  #-16*$10000,d1    ;16
  982. _NDxok
  983.     move.l  d1,PCamDx
  984.     bra     _CamDxDone
  985.  
  986. _DX_Positive
  987.     asr.l   #3,d1
  988.     cmp.l   #16*$10000,d1    ;16
  989.     ble     _PDxok
  990.     move.l  #16*$10000,d1    ;16
  991. _PDxok
  992.     move.l  d1,PCamDx
  993.  
  994. _CamDxDone
  995.     move.l  Oldx,d1
  996.     add.l   PCamDx,d1
  997.     move.l  d1,VTx(a0,d0.w)
  998.     bra     .done
  999.  
  1000. _XNotReset
  1001.  
  1002.     move.l  VTx(a0,d0.w),d1
  1003.  
  1004.     cmp.w   #BallHit_ps,Playstage
  1005.     beq .r3
  1006.     move.w  Active_Fielder,d3
  1007.     move.l  VTx(a0,d3.w),d1
  1008. .r3
  1009.     move.l  d1,d2
  1010.     and.l   #$ffff0000,d2
  1011.     move.l  Oldx,d3
  1012.     and.l   #$ffff0000,d3
  1013.     cmp.l   d2,d3
  1014.     beq     .done
  1015.     sub.l   Oldx,d1
  1016.     asr.l   #4,d1
  1017.     bge     _XDX_Positive
  1018.     cmp.l   NCamDX,d1
  1019.     bge     _NsetNCamDx
  1020.  
  1021.     move.l  NCamDx,d1
  1022.     cmp.l   #-16*$10000,d1      ;16
  1023.     ble     _XNDxok
  1024.     sub.l   #$4000,d1
  1025. _NSetNCamDX
  1026.     move.l  d1,NCamDx
  1027. _XNDxok
  1028.     move.l  d1,PCamDx
  1029.     bra     _XCamDxDone
  1030.  
  1031. _XDX_Positive
  1032.     cmp.l   NCamDX,d1
  1033.     ble     _PSetNCamDX
  1034.  
  1035.     move.l  NCamDx,d1
  1036.     cmp.l   #16*$10000,d1   ;16
  1037.     bge     _XPDxok
  1038.     add.l   #$4000,d1
  1039.  
  1040. _PSetNCamDX
  1041.     move.l  d1,NCamDX
  1042.  
  1043. _XPDxok
  1044.     move.l  d1,PCamDx
  1045.  
  1046. _XCamDxDone
  1047.     move.l  Oldx,d1
  1048.     add.l   PCamDx,d1
  1049.     move.l  d1,VTx(a0,d0.w)
  1050.  
  1051. .done
  1052.     movem.l (sp)+,a2
  1053.     rts
  1054.  
  1055.  
  1056. InitialCameraLogic
  1057.     tst.w   PanBack
  1058.     bne     _ResetCamera
  1059.  
  1060.     tst.w   InPitcherIF
  1061.     bne     .done
  1062.     tst.w   Catcherreturn
  1063.     bne     .done
  1064.  
  1065.     bra _movewithball
  1066. .done
  1067.     jmp     NORL
  1068.  
  1069. _movewithball
  1070.     tst.w   BallLocation
  1071.     beq     .chbs
  1072.     lea.l   VTentity,a1
  1073.     moveq.l #0,d1
  1074.     move.w  Balllocation,d1
  1075.     asl.w   #8,d1
  1076.     add.l   d1,a1
  1077.     bra     .smove
  1078. .chbs
  1079.     lea.l   VTEntity+BallShadow_Ent_ptr,a1
  1080.     cmp.w   #HT_Home_Run,Hittype
  1081.     bne     .smove
  1082.  
  1083.     lea.l   VTentity+Ball_ent_ptr,a1    ;follow ball
  1084.     bra     .smove
  1085.  
  1086. .smove
  1087. *  lea.l VTentity+Batter_ptr,a1
  1088.     move.w  #0,d0
  1089.     lea.l   VTentity,a0
  1090.  
  1091.     move.w  #1,d4
  1092.     move.w  VTx(a1),VTx(a0)
  1093.     move.w  VTy(a1),VTy(a0)
  1094.  
  1095.     lea.l   VTentity+FieldX_ptr,a1
  1096.     tst.w   VTfon(a1)
  1097.     beq     .hcl
  1098.     move.w  VTx(a1),VTx(a0)
  1099.     move.w  VTy(A1),VTy(a0)
  1100.  
  1101. .hcl    jsr     HeavyCameraLogic
  1102.     jsr     ScrollXY
  1103. .done
  1104.     lea.l   Vtentity,a0
  1105.     move.w  #0,d0
  1106.     move.l  VTy(a0,d0.w),Oldy
  1107.     move.l  VTx(a0,d0.w),Oldx
  1108.     jmp     NORL
  1109.  
  1110.  
  1111. _ResetCamera
  1112.     lea.l   VTentity+ballshadow_ent_ptr,a1
  1113.     move.w  #3,VTx(a1)
  1114.     move.w  #110,VTy(a1)
  1115.     move.w  #CamULC_X,d0
  1116.     move.w  #CamULC_Y,d1
  1117.     jsr     StepPanCamera1
  1118.     cmp.w   #CamULC_X,Map_ULC_X
  1119.     bne     .done
  1120.     cmp.w   #CamULC_Y,Map_ULC_Y
  1121.     bne     .done
  1122.     clr.w   PanBack
  1123.     lea.l   Vtentity,a0
  1124.     move.w  #CamCenterX,Vtx(a0)
  1125.     move.w  #CamCentery,Vty(a0)
  1126.     move.w  #CamCenterX,oldx
  1127.     move.w  #CamCenterY,oldy
  1128. .done   jmp NORL
  1129.  
  1130. setcamxy
  1131.     movem.l d1/a0-a1,-(sp)
  1132.     lea.l   Vtentity,a0
  1133.     lea.l   VTentity+Ball_ent_ptr,a1
  1134.     move.w  VTx(a1),d1
  1135.     add.w   Map_Center_X,D1
  1136.     sub.w   #128,d1
  1137.     move.w  d1,VTx(a0)
  1138.     move.l  VTy(a1),d1
  1139.     sub.w   #16,d1
  1140.     add.w   Map_Center_Y,D1
  1141.     sub.w   #110,d1
  1142.     move.w  d1,VTy(a0)
  1143.     movem.l (sp)+,d1/a0-a1
  1144.     rts
  1145. *_ResetCamera
  1146. *       clr.w   PanBack
  1147. *       lea.l   Field_Map,A0
  1148.  
  1149. *       move.w  #CamULC_X,D0
  1150. *       move.w  #CamULC_Y,D1
  1151. *       jsr     load_field
  1152. *       jmp     NORL
  1153.  
  1154.  
  1155.  
  1156. StepPanCamera1
  1157. *       D0 = target x position
  1158. *       D1 = target y position
  1159. *
  1160. *       Note: No bounds checking, scroll routines will not
  1161. *       scroll off screen, but camx,camy will get screwed up
  1162.  
  1163.     move.w  d1,d6
  1164.     sub.w   Map_ULC_Y,d6    ; Targy - MapULCY = distanceY
  1165.     beq     .panx
  1166.     bgt     .pand           ; if positive pan down
  1167.     neg.w   d6              ; distanceY = abs(distanceY)
  1168.     move.w      PanSpeed,d5
  1169.     sub.w       #8,d5
  1170.     cmp.w       d5,d6
  1171. *       cmp.w   PanSpeed,d6           ; move max 8 pixels this step
  1172.     ble     .sfu1
  1173.     move.w  PanSpeed,d6
  1174.     sub.w       #8,d6
  1175. .sfu1
  1176.     jsr     scroll_field_up
  1177.     bra     .panx
  1178. .pand
  1179.     move.w      PanSpeed,d5
  1180.     sub.w       #8,d5
  1181.     cmp.w       d5,d6
  1182. *       cmp.w   PanSpeed,d6
  1183.     ble     .sfd1
  1184.     move.w  PanSpeed,d6
  1185.     sub.w       #8,d6
  1186. .sfd1   jsr     scroll_field_down
  1187.  
  1188. .panx
  1189.     move.w  d0,d6        ;get ball x
  1190.     sub.w   Map_ULC_X,d6
  1191.     beq     .done
  1192.     bge     .panr
  1193.     neg.w   d6
  1194.     cmp.w   PanSpeed,d6
  1195.     ble     .sfl1
  1196.     move.w  PanSpeed,d6
  1197. .sfl1
  1198.     jsr     scroll_field_left
  1199.     bra     .done
  1200. .panr
  1201.     cmp.w   PanSpeed,d6
  1202.     ble     .sfr1
  1203.     move.w  PanSpeed,d6
  1204. .sfr1
  1205.     jsr     scroll_field_right
  1206.  
  1207. .done   rts
  1208.  
  1209.  
  1210.  
  1211. ScrollXY
  1212.     movem.l d6/a1,-(sp)
  1213.     lea.l   vtentity,a1
  1214.     move.w  VTy(a1),d6
  1215.     sub.w   #16,d6
  1216.     add.w   Map_Center_Y,D6
  1217.     sub.w   #110,d6
  1218.     sub.w   Map_ULC_Y,d6    ; Targy - MapULCY = distanceY
  1219.     beq     .panx
  1220.     bgt     .pand           ; if positive pan down
  1221.     neg.w   d6              ; distanceY = abs(distanceY)
  1222.     move.w  PanSpeed,d5
  1223.     sub.w   #8,d5
  1224.     cmp.w   d5,d6
  1225.     ble     .sfu1
  1226.     move.w  PanSpeed,d6
  1227.     sub.w   #8,d6
  1228. .sfu1
  1229.     jsr     scroll_field_up
  1230.     bra     .panx
  1231. .pand
  1232.     move.w  PanSpeed,d5
  1233.     sub.w   #8,d5
  1234.     cmp.w   d5,d6
  1235.     ble     .sfd1
  1236.     move.w  PanSpeed,d6
  1237.     sub.w   #8,d6
  1238. .sfd1   jsr     scroll_field_down
  1239.  
  1240. .panx
  1241.     tst.w   HScrol
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement