Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *****************************************************************************
- * *
- * Project: Sony ESPN Baseball *
- * *
- * Module: AI.S *
- * *
- * Module Creation Date: March 1993 *
- * *
- * Author: Russell Shanks *
- * *
- * Development System: Sierra Systems *
- * *
- *****************************************************************************
- include MACROS.I
- Include EQUATES.I
- include sound.inc
- *----------------------------------------------------------------------------
- *****************************************************************************
- * PPGE
- *****************************************************************************
- include ppge_var.inc
- *----------------------------------------------------------------------------
- *
- section tables
- xdef radar_ytable
- xdef radar_xtable
- InitialLogicTable ;entity descending order
- dc.l HaloLogic
- dc.l FieldXLogic,LookEntityLogic,LookEntityLogic
- dc.l LookEntityLogic,LookEntityLogic,InitialThirdLogic
- dc.l InitialSecondLogic,InitialFirstRunLogic
- dc.l InitialBatterLogic,InitialFielderLogic
- dc.l InitialFielderLogic,InitialFielderLogic
- dc.l InitialFielderLogic,InitialFielderLogic
- dc.l InitialFielderLogic,InitialFielderLogic
- dc.l InitialCatcherLogic,InitialPitcherLogic
- FielderSelectTable
- dc.w FBaseman_ptr,Fbaseman_ptr,Sbaseman_ptr,Pitcher_ptr
- dc.w ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
- dc.w Fbaseman_ptr,Sbaseman_ptr,Sbaseman_ptr,ShortStop_ptr
- dc.w ShortStop_ptr,Tbaseman_ptr,Tbaseman_ptr
- dc.w RFielder_ptr,RFielder_ptr,RFielder_ptr,CFielder_ptr
- dc.w LFielder_ptr,LFielder_ptr,LFielder_ptr
- FielderRF_tbl
- dc.w 8,6,7,7,8,8,7,7
- FielderThrowIS_tbl
- dc.w 3,3,4,4,3,3,4,4 ;only 3 and 4's good here
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- dc.b 13,13,13,13,13,13,13,13
- * dc.b 14,15,16,17,18,19,20,21
- dc.b 13,13,13,13,13,13,13,13
- ballvscale_table
- * dc.b 22,23,24,26,27,28,29,31
- dc.b 13,13,14,14,15,16,17,18
- * dc.b 32,33,34,36,37,38,39,41
- dc.b 20,21,22,23,25,26,27,29
- * dc.b 42,43,44,45,47,48,49,50
- dc.b 30,31,32,33,35,36,37,38
- * dc.b 52,53,54,55,57,58,59,60
- dc.b 40,41,42,43,45,46,47,48
- * dc.b 62,63,64,65,67,68,69,70
- dc.b 50,51,52,53,54,55,56,57
- * dc.b 71,73,74,75,76,78,79,80
- dc.b 61,63,65,68,71,74,76,78
- dc.b 81,83,84,85,86,88,89,90
- dc.b 91,93,94,95,96,97,99,100
- dc.b 101,102,104,105,106,107,109,110
- dc.b 111,112,114,115,116,117,119,120
- dc.b 121,122,123,125,126,127,128,130
- dc.b 131,132,133,135,136,137,138,140
- dc.b 141,142,143,145,146,147,148,150
- dc.b 151,152,153,154,156,157,158,159
- dc.b 161,162,163,164,166,167,168,169
- dc.b 171,172,173,174,176,177,178,179
- dc.b 180,182,183,184,185,187,188,189
- dc.b 190,192,193,194,195,197,198,199
- dc.b 200,202,203,204,205,206,208,209
- dc.b 210,211,213,214,215,216,218,219
- dc.b 220,221,223,224,225,226,228,229
- dc.b 230,231,232,234,235,236,237,239
- dc.b 240,241,242,244,245,246,247,249
- dc.b 250,251,252,254,255,255
- * dc.b 67,68,69,70,71,72,73,74
- dc.b 31,33,35,37,39,41,43,47
- runnervscale_table
- * dc.b 75,76,77,78,79,80,81,82
- dc.b 49,51,53,57,59,61,63,65
- * dc.b 83,84,85,86,87,88,89,90
- dc.b 67,69,71,73,75,77,79,81
- * dc.b 91,92,93,94,95,96,97,98
- dc.b 83,85,87,89,91,93,95,96
- * dc.b 99,100,100,100,100,100,100,100
- dc.b 97,97,98,98,99,99,100,100
- dc.b 100,100,100,100,100,100,100,100
- dc.b 100,100,100,100,100,100,100,100
- dc.b 100,100,100,100,100,100,100,100
- dc.b 100,100,100,100,100,100,100,100
- dc.b 101,102,104,105,106,107,109,110
- dc.b 111,112,114,115,116,117,119,120
- dc.b 121,122,123,125,126,127,128,130
- dc.b 131,132,133,135,136,137,138,140
- dc.b 141,142,143,145,146,147,148,150
- dc.b 151,152,153,154,156,157,158,159
- dc.b 161,162,163,164,166,167,168,169
- dc.b 171,172,173,174,176,177,178,179
- dc.b 180,182,183,184,185,187,188,189
- dc.b 190,192,193,194,195,197,198,199
- dc.b 200,202,203,204,205,206,208,209
- dc.b 210,211,213,214,215,216,218,219
- dc.b 220,221,223,224,225,226,228,229
- dc.b 230,231,232,234,235,236,237,239
- dc.b 240,241,242,244,245,246,247,249
- dc.b 250,251,252,254,255,255
- * dc.b 100,100,100,100,100,100,100,100
- *runnervscale_table
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 100,100,100,100,100,100,100,100
- * dc.b 101,102,104,105,106,107,109,110
- * dc.b 111,112,114,115,116,117,119,120
- * dc.b 121,122,123,125,126,127,128,130
- * dc.b 131,132,133,135,136,137,138,140
- * dc.b 141,142,143,145,146,147,148,150
- * dc.b 151,152,153,154,156,157,158,159
- * dc.b 161,162,163,164,166,167,168,169
- * dc.b 171,172,173,174,176,177,178,179
- * dc.b 180,182,183,184,185,187,188,189
- * dc.b 190,192,193,194,195,197,198,199
- * dc.b 200,202,203,204,205,206,208,209
- * dc.b 210,211,213,214,215,216,218,219
- * dc.b 220,221,223,224,225,226,228,229
- * dc.b 230,231,232,234,235,236,237,239
- * dc.b 240,241,242,244,245,246,247,249
- * dc.b 250,251,252,254,255,255
- * dc.w #0,#430,#518,#573,#615,#647
- dc.w #430,#430,#430,#430,#518,#573,#615,#647
- walltable
- dc.w #686,#717,#742,#766,#792,#816,#838,#862 ;16
- dc.w #878,#893,#913,#924,#925,#925,#925,#925 ;24
- dc.w #925,#925,#925,#925,#925,#925,#925,#925 ;32
- dc.w #926,#927,#928,#929,#930,#930,#930,#926 ;40
- dc.w #922,#918,#914,#910,#906,#902,#898,#894 ;48
- dc.w #890,#886,#882,#878,#874,#870,#866,#862 ;56
- dc.w #858,#854,#850,#846,#842,#838,#834,#830 ;64
- dc.w #826,#822,#818,#814,#810,#806,#802,#798 ;72
- dc.w #794,#790,#786,#782,#768,#764,#760,#756 ;80
- dc.w #752,#748,#744,#738,#734,#730,#726,#722 ;88
- dc.w #718,#714,#710,#706,#704,#700,#696,#692 ;96
- dc.w #688,#684,#680,#676,#672,#668,#664,#660 ;104
- dc.w #656,#652,#648,#644,#640,#634,#630,#626 ;112
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;40
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;48
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;56
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;64
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;72
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;80
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;88
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;96
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;104
- * dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;112
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;120
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;128
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;136
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;144
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;152
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;160
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;168
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;176
- dc.w #961,#961,#961,#961,#961,#961,#961,#961 ;184
- dc.b 8,8,8,8,8,8,8,8
- To1AndHome
- * dc.b 8,8,8,8,8,8,8,8 ;0-7
- dc.b 9,9,9,9,9,9,9,8 ;15
- dc.b 8,8,8,8,8,7,7,7 ;23
- dc.b 7,7,7,6,6,6,6,6 ;31
- dc.b 6,5,5,5,5,5,5,4 ;39
- dc.b 4,4,4,4,4,3,3,3 ;47
- dc.b 3,3,3,3,2,2,2,2 ;55
- dc.b 2,2,1,1,1,1,1,1 ;63
- dc.b 1,1,1,1,1,1,1,1 ;71
- dc.b 1,1,1,1,1,1,1,1
- dc.b 1,1,1,1,1,1,1,1
- dc.b 1,1,1,1,1,1,1,1
- dc.b 1,1
- dc.b 1,1,1,1,1,1,1,1
- dc.b 1,1,1,1,1,1,1,1
- dc.b 1,1,1,1,1,1,1,1
- dc.b 4,4,4,4,4,4,4,4,4,4
- To2And3
- dc.b 4,4,4,4,4,4,4,4,4,4
- dc.b 3,3,3,3,3,3,3,3,3,3
- dc.b 2,2,2,2,2,2,2,2,2,2
- dc.b 1,1,1,1,1,1,1,1,1,1
- dc.b 0,0,0,0,0,0,0,0,0,0
- * dc.b 0,0,0,0,0,0,0,0
- * dc.b 0,0,0,0,0,0,0,0,0
- * dc.b 0,0,0,0,0,0,0,0,0
- FielderScaleTable
- dc.b 0,0,0,0,0,0,0,1 ;8
- dc.b 1,1,1,1,1,1,2,2 ;16
- dc.b 2,2,2,2,2,3,3,3 ;32
- * dc.b 3,3,3,3,4,4,4,4 ;40
- * dc.b 4,4,4,5,5,5,5,5 ;48
- dc.b 3,4,4,4,4,5,5,5 ;40
- dc.b 5,5,5,5,5,5,5,5 ;48
- dc.b 5,6,6,6,6,6,6,6 ;56
- dc.b 6,6,6,6,6,6,6,6 ;64
- dc.b 6,6,6,6,6,6,6,6 ;72
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;
- dc.b 6,6,6,6,6,6,6,6 ;184
- Pdirectiontable
- dc.b #0,#128,#0,#128,#192,#160,#224,#224
- dc.b #64,#96,#32,#64,#64,#64,#64,#64
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 0,0,0,0,0,0,0,0
- dc.b 1,2,3,4,5,6,7,8 ; -8 - -1
- radar_ytable
- dc.b 9,10,11,12,13,14,15,16 ; 0-7
- dc.b 17,18,19,20,21,21,22,23 ; 8-15
- dc.b 23,24,25,25,26,27,27,28 ; 16-23
- dc.b 29,29,30,30,31,31,32,32 ; 24-31
- dc.b 33,33,34,34,34,35,35,35 ; 32-39
- dc.b 36,36,36,37,37,37,38,38 ; 40-47
- dc.b 38,39,39,40,40,41,41,42 ; 48-55
- dc.b 42,43,43,44,44,45,45,46 ; 56-63 Pitcher's mound y=61
- dc.b 46,46,47,47,47,47,48,48 ; 64-71
- dc.b 48,48,48,49,49,49,49,49
- dc.b 49,50,50,50,50,50,50,51
- dc.b 51,51,51,51,51,52,52,52
- dc.b 52,52,52,53,53,53,53,53
- dc.b 53,54,54,54,54,54,54,55
- dc.b 55,55,55,55,55,56,56,56
- dc.b 56,56,56,57,57,57,57,57
- dc.b 57,58,58,58,58,58,58,59
- dc.b 59,59,59,59,60,60,60,60
- dc.b 60,60,61,61,61,61,61,61
- dc.b 62,62,62,62,62,62,63,63
- dc.b 63,63,63,63,64,64,64,64
- dc.b 64,64,65,65,65,65,65,65
- dc.b 66,66,66,66,66,66,67,67
- dc.b 67,67,67,67,68,68,68,68
- Radar_xtable
- dc.b #0,#0,#0,#0,#0,#0,#0,#0
- dc.b #0,#0,#0,#0,#0,#0,#0,#0
- dc.b #0,#0,#0,#0,#0,#0,#0,#0
- dc.b #0,#0,#0,#0,#0,#0,#0,#0
- dc.b #0,#0,#0,#0,#0,#0,#0,#0
- dc.b #1,#1,#1,#1,#1,#1,#1,#1
- dc.b #1,#1,#1,#1,#1,#1,#1,#1
- dc.b #1,#1,#1,#1,#1,#1,#1,#1
- dc.b #1,#1,#1,#1,#1,#1,#1,#1
- dc.b #1,#1,#1,#1,#1,#1,#1,#1
- dc.b #2,#2,#2,#2,#2,#2,#2,#2
- dc.b #2,#2,#2,#2,#2,#2,#2,#2
- dc.b #2,#2,#2,#2,#2,#2,#2,#2
- dc.b #2,#2,#2,#2,#2,#2,#2,#2
- dc.b #2,#2,#2,#2,#2,#2,#2,#2
- dc.b #3,#3,#3,#3,#3,#3,#3,#3
- dc.b #3,#3,#3,#3,#3,#3,#3,#3
- dc.b #3,#3,#3,#3,#3,#3,#3,#3
- dc.b #3,#3,#3,#3,#3,#3,#3,#3
- dc.b #3,#3,#3,#3,#3,#3,#3,#3
- dc.b #4,#4,#4,#4,#4,#4,#4,#4
- dc.b #4,#4,#4,#4,#4,#4,#4,#4
- dc.b #4,#4,#4,#4,#4,#4,#4,#4
- dc.b #4,#4,#4,#4,#4,#4,#4,#4
- dc.b #4,#4,#4,#4,#4,#4,#4,#4
- dc.b #5,#5,#5,#5,#5,#5,#5,#5
- dc.b #5,#5,#5,#5,#5,#5,#5,#5
- dc.b #5,#5,#5,#5,#5,#5,#5,#5
- dc.b #5,#5,#5,#5,#5,#5,#5,#5
- dc.b #5,#5,#5,#5,#5,#5,#5,#5
- dc.b #6,#6,#6,#6,#6,#6,#6,#6
- dc.b #6,#6,#6,#6,#6,#6,#6,#6
- dc.b #6,#6,#6,#6,#6,#6,#6,#6
- dc.b #6,#6,#6,#6,#6,#6,#6,#6
- dc.b #6,#6,#6,#6,#6,#6,#6,#6
- dc.b #7,#7,#7,#7,#7,#7,#7,#7
- dc.b #7,#7,#7,#7,#7,#7,#7,#7
- dc.b #7,#7,#7,#7,#7,#7,#7,#7
- dc.b #7,#7,#7,#7,#7,#7,#7,#7
- dc.b #7,#7,#7,#7,#7,#7,#7,#7
- dc.b #8,#8,#8,#8,#8,#8,#8,#8
- dc.b #8,#8,#8,#8,#8,#8,#8,#8
- dc.b #8,#8,#8,#8,#8,#8,#8,#8
- dc.b #8,#8,#8,#8,#8,#8,#8,#8
- dc.b #8,#8,#8,#8,#8,#8,#8,#8
- dc.b #9,#9,#9,#9,#9,#9,#9,#9
- dc.b #9,#9,#9,#9,#9,#9,#9,#9
- dc.b #9,#9,#9,#9,#9,#9,#9,#9
- dc.b #9,#9,#9,#9,#9,#9,#9,#9
- dc.b #9,#9,#9,#9,#9,#9,#9,#9
- dc.b #10,#10,#10,#10,#10,#10,#10,#10
- dc.b #10,#10,#10,#10,#10,#10,#10,#10
- dc.b #10,#10,#10,#10,#10,#10,#10,#10
- dc.b #10,#10,#10,#10,#10,#10,#10,#10
- dc.b #10,#10,#10,#10,#10,#10,#10,#10
- dc.b #11,#11,#11,#11,#11,#11,#11,#11
- dc.b #11,#11,#11,#11,#11,#11,#11,#11
- dc.b #11,#11,#11,#11,#11,#11,#11,#11
- dc.b #11,#11,#11,#11,#11,#11,#11,#11
- dc.b #11,#11,#11,#11,#11,#11,#11,#11
- dc.b #12,#12,#12,#12,#12,#12,#12,#12
- dc.b #12,#12,#12,#12,#12,#12,#12,#12
- dc.b #12,#12,#12,#12,#12,#12,#12,#12
- dc.b #12,#12,#12,#12,#12,#12,#12,#12
- dc.b #12,#12,#12,#12,#12,#12,#12,#12
- dc.b #13,#13,#13,#13,#13,#13,#13,#13
- dc.b #13,#13,#13,#13,#13,#13,#13,#13
- dc.b #13,#13,#13,#13,#13,#13,#13,#13
- dc.b #13,#13,#13,#13,#13,#13,#13,#13
- dc.b #13,#13,#13,#13,#13,#13,#13,#13
- dc.b #14,#14,#14,#14,#14,#14,#14,#14
- dc.b #14,#14,#14,#14,#14,#14,#14,#14
- dc.b #14,#14,#14,#14,#14,#14,#14,#14
- dc.b #14,#14,#14,#14,#14,#14,#14,#14
- dc.b #14,#14,#14,#14,#14,#14,#14,#14
- dc.b #15,#15,#15,#15,#15,#15,#15,#15
- dc.b #15,#15,#15,#15,#15,#15,#15,#15
- dc.b #15,#15,#15,#15,#15,#15,#15,#15
- dc.b #15,#15,#15,#15,#15,#15,#15,#15
- dc.b #15,#15,#15,#15,#15,#15,#15,#15
- dc.b #16,#16,#16,#16,#16,#16,#16,#16
- dc.b #16,#16,#16,#16,#16,#16,#16,#17
- dc.b #17,#17,#17,#17,#17,#17,#17,#17
- dc.b #17,#17,#17,#17,#17,#18,#18,#18
- dc.b #18,#18,#18,#18,#18,#18,#18,#18
- dc.b #18,#18,#18,#19,#19,#19,#19,#19
- dc.b #19,#19,#19,#19,#19,#19,#19,#19
- dc.b #19,#20,#20,#20,#20,#20,#20,#20
- dc.b #20,#20,#20,#20,#20,#20,#20,#20
- dc.b #21,#21,#21,#21,#21,#21,#21,#21
- dc.b #21,#21,#21,#21,#21,#21,#22,#22
- dc.b #22,#22,#22,#22,#22,#22,#22,#22
- dc.b #22,#22,#22,#22,#23,#23,#23,#23
- dc.b #23,#23,#23,#23,#23,#23,#23,#23
- dc.b #23,#23,#24,#24,#24,#24,#24,#24
- dc.b #24,#24,#24,#24,#24,#24,#24,#24
- dc.b #24,#25,#25,#25,#25,#25,#25,#25
- dc.b #25,#25,#25,#25,#25,#25,#25,#26
- dc.b #26,#26,#26,#26,#26,#26,#26,#26
- dc.b #26,#26,#26,#26,#26,#27,#27,#27
- dc.b #27,#27,#27,#27,#27,#27,#27,#27
- dc.b #27,#27,#27,#28,#28,#28,#28,#28
- dc.b #28,#28,#28,#28,#28,#28,#28,#28
- dc.b #28,#29,#29,#29,#29,#29,#29,#29
- dc.b #29,#29,#29,#29,#29,#29,#29,#29
- dc.b #30,#30,#30,#30,#30,#30,#30,#30
- dc.b #30,#30,#30,#30,#30,#30,#31,#31
- dc.b #31,#31,#31,#31,#31,#31,#31,#31
- dc.b #31,#31,#31,#31,#32,#32,#32,#32
- dc.b #32,#32,#32,#32,#32,#32,#32,#32
- dc.b #32,#32,#33,#33,#33,#33,#33,#33
- dc.b #33,#33,#33,#33,#33,#33,#33,#33
- dc.b #33,#34,#34,#34,#34,#34,#34,#34
- dc.b #34,#34,#34,#34,#34,#34,#34,#35
- dc.b #35,#35,#35,#35,#35,#35,#35,#35
- dc.b #35,#35,#35,#35,#35,#36,#36,#36
- dc.b #36,#36,#36,#36,#36,#36,#36,#36
- dc.b #36,#36,#36,#37,#37,#37,#37,#37
- dc.b #37,#37,#37,#37,#37,#37,#37,#37
- dc.b #37,#38,#38,#38,#38,#38,#38,#38
- dc.b #38,#38,#38,#38,#38,#38,#38,#38
- dc.b #39,#39,#39,#39,#39,#39,#39,#39
- dc.b #39,#39,#39,#39,#39,#39,#40,#40
- dc.b #40,#40,#40,#40,#40,#40,#40,#40
- dc.b #40,#40,#40,#40,#41,#41,#41,#41
- dc.b #41,#41,#41,#41,#41,#41,#41,#41
- dc.b #41,#41,#42,#42,#42,#42,#42,#42
- dc.b #42,#42,#42,#42,#42,#42,#42,#42
- CPitchType_tbl
- dc.w 0,0,0
- dc.w #Joy_U,#Joy_U,#Joy_U
- dc.w #Joy_D,#Joy_D,#Joy_D
- dc.w #Joy_L,#Joy_L,#Joy_L
- dc.w #Joy_R,#Joy_R,#Joy_R
- ; 0 down middle, 1 high, 2 low, 3 left, 4 right
- xdef PlayerPos_EntityNum_tbl
- PlayerPos_EntityNum_tbl
- dc.w #Pitcher_ptr,#Pitcher_ptr ; s/r pitcher
- dc.w #FBaseman_ptr
- dc.w #SBaseman_ptr
- dc.w #TBaseman_ptr
- dc.w #ShortStop_ptr
- dc.w #LFielder_ptr
- dc.w #RFielder_ptr
- dc.w #CFielder_ptr
- dc.w #Catcher_ptr
- dc.w #Batter_ptr
- AFFlipTable
- dc.w FBaseman_ptr,TBaseman_ptr
- dc.w SBaseman_ptr,ShortStop_ptr
- dc.w RFielder_ptr,LFielder_ptr
- section .text
- BatRangeTable
- dc.w BatLowHitRange,BatMidHitRange
- dc.w BatHighHitRange,BatMidHitRange
- xdef AI
- xdef NullLogic
- xdef BatSwing_000
- xdef Pitch_000
- xdef Bounds_RL
- xdef HaloLogic
- xdef FieldXLogic
- xdef LookEntityLogic
- xdef InitialBallLogic
- xdef BallShadowLogic
- xdef InitialCatcherLogic
- xdef InitialPitcherLogic
- xdef InitialBatterLogic
- xdef InitialCameraLogic
- xdef FractionalMultiply
- xdef InitialFielderLogic
- xdef InitialRunnerLogic
- xdef InitialFirstRunLogic
- xdef InitialSecondLogic
- xdef InitialThirdLogic
- ***********************************************************************
- Cosine MACRO
- movem.l \1/A0,-(sp)
- lea.l Cosine_Table,A0
- lsl.w #1,\1
- move.w (A0,\1.w),\3
- muls.w \2,\3
- movem.l (sp)+,\1/A0
- ENDM
- Sine MACRO
- movem.l \1/A0,-(sp)
- lea.l Sine_Table,A0
- lsl.w #1,\1
- move.w (A0,\1.w),\3
- muls.w \2,\3
- movem.l (sp)+,\1/A0
- ENDM
- Atan MACRO
- movem.l \1/\2/A0,-(sp)
- lea.l ArcTAN_Table,A0
- lsr.l #8,\1
- IFEQ ArcTan_Bytes-1
- lsr.l #1,\1
- ELSEC
- lsr.l #1,\1
- ENDC
- add.l #$8000,\2
- clr.w \2
- swap \2
- tst.l \2
- bne .do_div\@
- move.w #0,\3
- bra .atx\@
- .do_div\@
- divu.w \2,\1
- cmp.w #$80,\1
- blt .adj\@
- move.w #$20,\3
- jmp .atx\@
- .adj\@
- sub.w #1,\1
- bpl .do_shift\@
- clr.w \1
- .do_shift\@
- IFEQ ArcTan_Bytes-1
- move.w \1,\2
- and.w #$7E,\1
- move.w (A0,\1.w),\3
- btst #0,\2
- bne .got_atan\@
- lsr.w #8,\3
- .got_atan\@
- and.w #$00FF,\3
- ELSEC
- lsl.w #1,\1
- move.w (A0,\1.w),\3
- ENDC
- .atx\@
- movem.l (sp)+,\1/\2/A0
- ENDM
- AI
- movem.l D0-D7/A0-A6,-(sp)
- move.l sp,StackDebugPtr
- move.w Num_Entities,D7
- NORL
- cmp.l StackDebugPtr,sp
- bne NORL
- lea.l VTentity,A0
- sub.l #1,D7
- bmi _AI_done
- move.l D7,D0
- asl.l #Index_Shift,D0
- * cmp.w #0,VTFon(A0,D0.w) ;is this entity to be processed?
- * beq NORL ;if not then get the next one
- cmp.w #2,RunnerExists
- ble .c1
- cmp.w #Batter_ptr,d0
- ble .c1
- tst.w VTFrend(a0,d0.w)
- bne .c1
- move.w d7,d6
- and.w #1,d6
- move.w VBlank_cnt,d5
- and.w #1,d5
- eor.w d5,d6
- bne NORL
- .c1
- move.l VTseq_step(A0,D0.w),D1 ;does this entity have AI?
- beq NORL ;if not then get the next one
- move.l D1,A1
- jmp (A1) ;otherwise do AI
- _AI_done
- movem.l (sp)+,D0-D7/A0-A6
- rts
- *****************************************************************************
- NullLogic jmp NORL
- InfOutfline equ SBase_Y-$50000
- BILine1y equ #$34 ;20
- BILine2y equ #$c
- Grab_Radius equ $20000
- BallSpeed equ $-200000
- Pball_x equ 406
- Pball_y equ -21
- BatHitFrame equ 15 ;18
- CheckSwingFrame equ 15 ;18
- RBatBoxMin equ $ffcc
- RBatBoxMax equ $ffe0 ;$ffe5
- LBatBoxMin equ $20 ;$1b
- LBatBoxMax equ $34
- PitcherMaxL equ $fffc
- PitcherMaxR equ $4
- BatHitToRunStrip equ $0
- SlowPitchSpeed equ $08
- SlowPitchSpeedz equ $2
- MediumPitchSpeed equ $09
- MediumPitchSpeedz equ $2
- FastPitchSpeed equ $0b ;a
- FastPitchSpeedz equ $1
- StraightPitch equ $0
- RightCurvePitch equ $1
- LeftCurvePitch equ $2
- UpCurvePitch equ $4
- DownCurvePitch equ $8
- GroundFriction equ $00000b00 ;500
- BatLowHit equ $0
- BatMidHit equ $2
- BatHighHit equ $4
- Bunt equ $6
- BatYRangeLow equ $95 ;$082
- BatYRangeMid equ $a0 ;$095
- BatYRangeHigh equ $0ac
- *BallRangeHigh equ $0b2 ;off bottom of screen
- BallRangeHigh equ $0c0 ;off bottom of screen
- BallMaxX equ $0400 ;off right of screen
- BallMinX equ $fc00 ;off left of screen
- HitBoxY equ $095
- HitBoxTop equ $0b0 ;90
- HitBoxBottom equ $030
- HitBoxLeft equ $fff3
- HitBoxRight equ $b
- Fielder_Reach equ $d0
- FielderRunSpeed equ $5800 ;10000
- Strike equ $0001
- Ball equ $ffff
- HT_Home_Run equ #1
- HT_Outf equ #2
- HT_Ord equ #0
- HT_Foul equ #3
- HT_Bunt equ #4
- HT_IFPop equ #5
- BatLowHitRange equ 124 ;#$48
- BatMidHitRange equ 153 ;#$90
- BatHighHitRange equ 156 ;#$cb
- MaxZHeight equ #$400000
- ballvscale_lo equ -7
- ballvscale_high equ BallRangeHigh
- *****************************************************************************
- WaitOnAnimation
- tst.w VTFrdir(a0,d0.w) ;if animation not running don't wait
- beq setnextseq
- tst.w VTFrend(a0,d0.w)
- beq .done
- setnextseq
- move.l VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
- clr.w VTFrdir(a0,d0.w)
- .done jmp NORL
- *****************************************************************************
- WaitOnCatchAnimation
- jsr checktags
- tst.w VTFrdir(a0,d0.w) ;if animation not running don't wait
- beq .setnextseq
- tst.w VTFrend(a0,d0.w)
- beq .done
- .setnextseq
- move.l VTNextSeq(a0,d0.w),VTSeq_step(a0,d0.w)
- clr.w VTFrdir(a0,d0.w)
- .done jmp NORL
- **************************************************************
- xdef HRDerbyLogic
- HRDerbyLogic
- tst.w DerbyDone
- bne .waitstart
- move.w Fcontrollers,d1 ;allow S to exit hrderby
- or.w BControllers,d1
- btst #Joy_S,d1
- beq .r1
- lsr.w #8,d1
- btst #Joy_S,d1
- beq .waitstart
- .r1
- lea.l DerbyBatterNum,a1
- add.l BteamAdj,a1
- move.w (a1),PlayerAtBat
- tst.w PlayerAtBat ;QUICK PATCH : FIND BUG IN DOSUBS!
- bge .bp1
- clr.w PlayerAtBat
- .bp1
- tst.w DerbyEvent
- beq .done
- jsr DisplayDerbyInfo
- cmp.w #15,DerbyPitchNum
- blt .done
- tst.w NumGamers
- beq .dr
- tst.w DerbyPlayer
- bne .dr
- jsr Clear_ScrollA
- .dr
- jsr DisplayDerbyRanking
- cmp.w #1,NumGamers ;derby over if 1 player mode
- blt .derbydone
- tst.w DerbyPlayer ;or if player 2 is done
- beq .c1
- .derbydone
- move.w #1,DerbyDone
- clr.w VTFrdir(a0,d0.w)
- clr.w FComputer
- bra .done
- .c1
- move.w #1,NeedNewBatter
- eor.l #2,FTeamAdj
- eor.l #2,BTeamAdj
- move.w BTeamNum,d1
- move.w FTeamNum,BTeamNum
- move.w d1,FTeamNum
- clr.w DerbyPitchNum
- clr.w DerbyScore
- eor.w #1,DerbyPlayer
- jsr SwitchPlayerPal
- .done
- jmp NORL
- .waitstart
- clr.w VTfrdir(a0,d0.w)
- move.w Fcontrollers,d1
- or.w BControllers,d1
- btst #Joy_S,d1
- beq .checkc
- lsr.w #8,d1
- btst #Joy_S,d1
- bne .checkc
- clr.w FComputer ;Reset Controllers
- clr.l FTeamAdj
- move.l #2,BTeamAdj
- clr.w killradarentities
- clr.w runsht
- clr.w runsvt
- move #0,FadeDirection ;Fade Down Field
- move #2,FadeSpeed
- clr.w PracticeMode
- StopSound #S_DIGITALCROWD
- jsr _Initgems
- JSR StartFadeDown
- jsr WaitForFadeUp
- move.l #VCTRL,A4 *; Macros use these registers
- move.w #$9000+000000,(A4) ;R16= | 0 | 0 |VS1|VS0| 0 | 0 |HS1|HS0| Scroll Size (00=32,01=64,10=XX,11=128)
- jmp WarmEntry ;DoGame
- .checkc
- btst #Joy_C,d1
- beq .done
- lsr.w #8,d1
- btst #Joy_C,d1
- bne .done
- * jsr Clear_ScrollA
- clr.w DerbyDone
- clr.w DerbyPitchNum
- move.w #14,derbypitchnum
- clr.w DerbyScore
- move.w #1,DerbyEvent
- move.w #1,NeedNewBatter
- move.w #1,FComputer
- tst.w NumGamers
- bne .c1
- clr.w DerbyPlayer
- jmp NORL
- **************************************************************
- xdef PracticeModeLogic
- PracticeModeLogic
- move.w Fcontrollers,d1
- or.w BControllers,d1
- btst #Joy_S,d1
- beq .c1
- lsr.w #8,d1
- btst #Joy_S,d1
- bne .c1
- bset #Joy_S,d1
- move.w d1,BControllers
- move.w d1,FControllers
- jsr DisplayPractMsg
- add.w #1,temp4
- cmp.w #2,temp4
- blt .c1
- jmp DoGame
- .c1
- move.w Fcontrollers,d1
- or.w BControllers,d1
- btst #Joy_C,d1
- beq .done
- lsr.w #8,d1
- btst #Joy_C,d1
- bne .done
- move.w #1,temp4
- clr.w d1 ;set debounce next round
- bset #Joy_C,d1
- move.w d1,BControllers
- move.w d1,FControllers
- eor.l #2,FTeamAdj
- eor.l #2,BTeamAdj
- move.w Fcomputer,d1
- move.w Bcomputer,Fcomputer
- move.w d1,Bcomputer
- jsr DisplayPractMsg
- .done
- jmp NORL
- HeavyCameraLogic
- movem.l a2,-(sp)
- lea.l Vtentity+FieldX_ptr,a1
- tst.w VTfon(a1)
- bne _YNotReset
- * lea.l Vtentity+ball_ent_ptr,a2
- * move.l VTsped(a2),d2
- * asl.l #4,d2
- * move.w VTdir(a2),d1
- * jsr GetEndPoint
- * add.l VTy(a2),d2
- * move.l d2,d1 ;leading y coordinate
- move.l VTy(a0,d0.w),d1
- cmp.w #BallHit_ps,Playstage
- beq .r0
- move.w Active_Fielder,d3 ;if ball thrown
- move.l VTy(a0,d3.w),d1 ;follow active fielder
- * move.l VTy(a0,d0.w),d1
- .r0 sub.l Oldy,d1
- bge _DY_Positive
- asr.l #3,d1
- cmp.l #-8*$10000,d1
- bge _NDyok
- move.l #-8*$10000,d1
- _NDyok
- move.l d1,PCamDy
- bra _CamDyDone
- _DY_Positive
- asr.l #3,d1
- cmp.l #8*$10000,d1
- ble _PDyok
- move.l #8*$10000,d1
- _PDyok
- move.l d1,PCamDy
- _CamDyDone
- move.l Oldy,d1
- add.l PCamDy,d1
- move.l d1,VTy(a0,d0.w)
- bra _nowx
- _YNotReset
- move.l VTy(a0,d0.w),d1
- cmp.w #BallHit_ps,Playstage
- beq .r1
- move.w Active_Fielder,d3
- move.l VTy(a0,d3.w),d1
- .r1
- move.l d1,d2
- and.l #$ffff0000,d2
- move.l Oldy,d3
- and.l #$ffff0000,d3
- cmp.l d2,d3
- beq _nowx
- sub.l Oldy,d1
- asr.l #4,d1
- bpl _YDY_Positive
- cmp.l NCamDY,d1
- bge _NsetNCamDy
- move.l NCamDy,d1
- cmp.l #-8*$10000,d1
- ble _YNDyok
- sub.l #$4000,d1
- _NSetNCamDY
- move.l d1,NCamDy
- _YNDyok
- move.l d1,PCamDy
- bra _YCamDyDone
- _YDY_Positive
- cmp.l NCamDY,d1
- ble _PSetNCamDY
- move.l NCamDy,d1
- cmp.l #8*$10000,d1
- bge _YPDyok
- add.l #$4000,d1
- _PSetNCamDY
- move.l d1,NCamDY
- _YPDyok
- move.l d1,PCamDy
- _YCamDyDone
- move.l Oldy,d1
- add.l PCamDy,d1
- move.l d1,VTy(a0,d0.w)
- _nowx
- tst.w VTFon(a1)
- bne _XNotReset
- * lea.l Vtentity+ball_ent_ptr,a2
- * move.l VTsped(a2),d2
- * asl.l #4,d2
- * move.w VTdir(a2),d1
- * jsr GetEndPoint
- * add.l VTx(a2),d1 ;leading x Coordinate
- move.l Vtx(a0,d0.w),d1
- cmp.w #BallHit_ps,Playstage
- beq .r2
- move.w Active_Fielder,d3
- move.l VTx(a0,d3.w),d1
- .r2
- * move.l Vtx(a0,d0.w),d1
- sub.l Oldx,d1
- bge _DX_Positive
- asr.l #3,d1
- cmp.l #-16*$10000,d1 ;16
- bge _NDxok
- move.l #-16*$10000,d1 ;16
- _NDxok
- move.l d1,PCamDx
- bra _CamDxDone
- _DX_Positive
- asr.l #3,d1
- cmp.l #16*$10000,d1 ;16
- ble _PDxok
- move.l #16*$10000,d1 ;16
- _PDxok
- move.l d1,PCamDx
- _CamDxDone
- move.l Oldx,d1
- add.l PCamDx,d1
- move.l d1,VTx(a0,d0.w)
- bra .done
- _XNotReset
- move.l VTx(a0,d0.w),d1
- cmp.w #BallHit_ps,Playstage
- beq .r3
- move.w Active_Fielder,d3
- move.l VTx(a0,d3.w),d1
- .r3
- move.l d1,d2
- and.l #$ffff0000,d2
- move.l Oldx,d3
- and.l #$ffff0000,d3
- cmp.l d2,d3
- beq .done
- sub.l Oldx,d1
- asr.l #4,d1
- bge _XDX_Positive
- cmp.l NCamDX,d1
- bge _NsetNCamDx
- move.l NCamDx,d1
- cmp.l #-16*$10000,d1 ;16
- ble _XNDxok
- sub.l #$4000,d1
- _NSetNCamDX
- move.l d1,NCamDx
- _XNDxok
- move.l d1,PCamDx
- bra _XCamDxDone
- _XDX_Positive
- cmp.l NCamDX,d1
- ble _PSetNCamDX
- move.l NCamDx,d1
- cmp.l #16*$10000,d1 ;16
- bge _XPDxok
- add.l #$4000,d1
- _PSetNCamDX
- move.l d1,NCamDX
- _XPDxok
- move.l d1,PCamDx
- _XCamDxDone
- move.l Oldx,d1
- add.l PCamDx,d1
- move.l d1,VTx(a0,d0.w)
- .done
- movem.l (sp)+,a2
- rts
- InitialCameraLogic
- tst.w PanBack
- bne _ResetCamera
- tst.w InPitcherIF
- bne .done
- tst.w Catcherreturn
- bne .done
- bra _movewithball
- .done
- jmp NORL
- _movewithball
- tst.w BallLocation
- beq .chbs
- lea.l VTentity,a1
- moveq.l #0,d1
- move.w Balllocation,d1
- asl.w #8,d1
- add.l d1,a1
- bra .smove
- .chbs
- lea.l VTEntity+BallShadow_Ent_ptr,a1
- cmp.w #HT_Home_Run,Hittype
- bne .smove
- lea.l VTentity+Ball_ent_ptr,a1 ;follow ball
- bra .smove
- .smove
- * lea.l VTentity+Batter_ptr,a1
- move.w #0,d0
- lea.l VTentity,a0
- move.w #1,d4
- move.w VTx(a1),VTx(a0)
- move.w VTy(a1),VTy(a0)
- lea.l VTentity+FieldX_ptr,a1
- tst.w VTfon(a1)
- beq .hcl
- move.w VTx(a1),VTx(a0)
- move.w VTy(A1),VTy(a0)
- .hcl jsr HeavyCameraLogic
- jsr ScrollXY
- .done
- lea.l Vtentity,a0
- move.w #0,d0
- move.l VTy(a0,d0.w),Oldy
- move.l VTx(a0,d0.w),Oldx
- jmp NORL
- _ResetCamera
- lea.l VTentity+ballshadow_ent_ptr,a1
- move.w #3,VTx(a1)
- move.w #110,VTy(a1)
- move.w #CamULC_X,d0
- move.w #CamULC_Y,d1
- jsr StepPanCamera1
- cmp.w #CamULC_X,Map_ULC_X
- bne .done
- cmp.w #CamULC_Y,Map_ULC_Y
- bne .done
- clr.w PanBack
- lea.l Vtentity,a0
- move.w #CamCenterX,Vtx(a0)
- move.w #CamCentery,Vty(a0)
- move.w #CamCenterX,oldx
- move.w #CamCenterY,oldy
- .done jmp NORL
- setcamxy
- movem.l d1/a0-a1,-(sp)
- lea.l Vtentity,a0
- lea.l VTentity+Ball_ent_ptr,a1
- move.w VTx(a1),d1
- add.w Map_Center_X,D1
- sub.w #128,d1
- move.w d1,VTx(a0)
- move.l VTy(a1),d1
- sub.w #16,d1
- add.w Map_Center_Y,D1
- sub.w #110,d1
- move.w d1,VTy(a0)
- movem.l (sp)+,d1/a0-a1
- rts
- *_ResetCamera
- * clr.w PanBack
- * lea.l Field_Map,A0
- * move.w #CamULC_X,D0
- * move.w #CamULC_Y,D1
- * jsr load_field
- * jmp NORL
- StepPanCamera1
- * D0 = target x position
- * D1 = target y position
- *
- * Note: No bounds checking, scroll routines will not
- * scroll off screen, but camx,camy will get screwed up
- move.w d1,d6
- sub.w Map_ULC_Y,d6 ; Targy - MapULCY = distanceY
- beq .panx
- bgt .pand ; if positive pan down
- neg.w d6 ; distanceY = abs(distanceY)
- move.w PanSpeed,d5
- sub.w #8,d5
- cmp.w d5,d6
- * cmp.w PanSpeed,d6 ; move max 8 pixels this step
- ble .sfu1
- move.w PanSpeed,d6
- sub.w #8,d6
- .sfu1
- jsr scroll_field_up
- bra .panx
- .pand
- move.w PanSpeed,d5
- sub.w #8,d5
- cmp.w d5,d6
- * cmp.w PanSpeed,d6
- ble .sfd1
- move.w PanSpeed,d6
- sub.w #8,d6
- .sfd1 jsr scroll_field_down
- .panx
- move.w d0,d6 ;get ball x
- sub.w Map_ULC_X,d6
- beq .done
- bge .panr
- neg.w d6
- cmp.w PanSpeed,d6
- ble .sfl1
- move.w PanSpeed,d6
- .sfl1
- jsr scroll_field_left
- bra .done
- .panr
- cmp.w PanSpeed,d6
- ble .sfr1
- move.w PanSpeed,d6
- .sfr1
- jsr scroll_field_right
- .done rts
- ScrollXY
- movem.l d6/a1,-(sp)
- lea.l vtentity,a1
- move.w VTy(a1),d6
- sub.w #16,d6
- add.w Map_Center_Y,D6
- sub.w #110,d6
- sub.w Map_ULC_Y,d6 ; Targy - MapULCY = distanceY
- beq .panx
- bgt .pand ; if positive pan down
- neg.w d6 ; distanceY = abs(distanceY)
- move.w PanSpeed,d5
- sub.w #8,d5
- cmp.w d5,d6
- ble .sfu1
- move.w PanSpeed,d6
- sub.w #8,d6
- .sfu1
- jsr scroll_field_up
- bra .panx
- .pand
- move.w PanSpeed,d5
- sub.w #8,d5
- cmp.w d5,d6
- ble .sfd1
- move.w PanSpeed,d6
- sub.w #8,d6
- .sfd1 jsr scroll_field_down
- .panx
- tst.w HScrol
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement