Arngrim

Triple Strike updated DOF script

Oct 31st, 2016
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.31 KB | None | 0 0
  1. ' Triple Strike (Williams 1975)
  2. ' - VPX Conversion
  3.  
  4. Option Explicit
  5. Randomize
  6.  
  7. ' Load the controller.vbs file for DOF
  8. On Error Resume Next
  9. ExecuteGlobal GetTextFile("controller.vbs")
  10. If Err Then MsgBox "Unable to open Controller.vbs."
  11. On Error Goto 0
  12.  
  13. ExecuteGlobal GetTextFile("core.vbs")
  14. If Err Then MsgBox "Unable to open core.vbs."
  15. On Error Goto 0
  16.  
  17. ' Constants
  18. ' BackGlass ROM IDs
  19. Const BIP=32
  20. Const TILT_ID=33
  21. Const MATCH_ID=34
  22. Const GAMEOVER_ID=35
  23. Const SAMESHOOTER=36
  24. Const HISCORE=50
  25.  
  26. ' Variables
  27. Dim ballspeed 'name of the ball when regarding speedx and speedy
  28. Dim mhole
  29. Dim score
  30. Dim ball
  31. Dim Points
  32. Dim T, obj
  33. Dim Loops, EndLoop
  34. Dim BonusCount, BonusCountMax, Total, BonusScore, Pinbonus(10),a,b
  35. Dim hold1, hold2, hold3
  36. Dim credit, credit2
  37. Dim highscore, postitscore
  38. Dim postitval
  39. Dim tilted
  40. Dim tilt : tilt=false
  41. Dim tilts
  42. Dim gameon
  43. Dim knockered
  44. Dim match
  45. Dim position
  46. Dim PosY
  47. Dim speedx
  48. Dim speedy
  49. Dim finalspeed
  50. Dim ballinplay
  51. Dim Bump1
  52. Dim targeta
  53. Dim targetb
  54. Dim targetc
  55. Dim targetd
  56. Dim addball
  57. Dim cGameName, B2SName
  58. Dim DesktopMode: DesktopMode = Table1.ShowDT
  59.  
  60. cGameName = "triplestrike" 'assumes: romname entry in directouputconfig*.ini
  61. B2SName = "triplestrike" 'assumes: B2STableSettings.xml has startup error messages set to 0
  62. ballinplay=false
  63.  
  64.  
  65. Sub Table1_Init()
  66. LoadEM
  67. loadStoredDataTimer.Enabled=True
  68. gameon=False
  69. addball=0
  70. ballinplay=false
  71.  
  72. If Table1.ShowDT = false then
  73. 'Cabinet Mode
  74. for each object in backdropstuff : object.visible = 0 : next
  75. Else
  76. 'Desktop Mode
  77. for each object in backdropstuff : object.visible = 1 : next
  78. End If
  79.  
  80. Set mHole = New cvpmMagnet 'Upper Hole (Using low powered Magnet to simulate drop in
  81. With mHole 'playfield surface around the saucer)/Thanks JPSalas!
  82. .InitMagnet Umagnet, 2.85
  83. .GrabCenter = 0
  84. .MagnetOn = 1
  85. .CreateEvents "mHole"
  86. End With
  87.  
  88. targeta = false
  89. targetb = false
  90. targetc = false
  91. targetd = false
  92.  
  93. Reset
  94. For each obj in AllLights 'Turn all the lights off at table initialisation
  95. obj.State=0
  96. Next
  97. Loops=0 'Used to loop sounds
  98.  
  99. 'Init Bumper rings
  100. ringa.IsDropped=1:ringb.IsDropped=1:ringc.IsDropped=1
  101.  
  102. postitval=0
  103. Tilts = 0
  104.  
  105. SetBackGlass 45, 1 ' Start BG light animation
  106. End Sub
  107.  
  108.  
  109. Sub Table1_Exit
  110. savehs
  111. If B2SOn Then Controller.Stop
  112. End Sub
  113.  
  114. Sub savehs
  115. 'Highscore = 0: Postitscore = 0 ' FOR TESTING: Resets the saved value
  116. SaveValue "TripleStrike", "Option1", HighScore
  117. SaveValue "TripleStrike", "Option2", PostItScore
  118. SaveValue "TripleStrike", "Option3", credit
  119. SaveValue "TripleStrike", "Option4", Balls
  120. SaveValue "TripleStrike", "Option5", liberal
  121. SaveValue "TripleStrike", "Option6", replays
  122. End Sub
  123.  
  124. ' Uses the VPReg.stg file in the User directory
  125. Sub LoadHighScore
  126. HighScore=LoadValue("TripleStrike", "Option1")
  127. If HighScore="" Then
  128. HighScore=0:PostItScore=0
  129. SaveValue "TripleStrike", "Option1", HighScore
  130. SaveValue "TripleStrike", "Option2", PostItScore
  131. Else
  132. PostItScore=LoadValue("TripleStrike", "Option2")
  133. End If
  134. credit=LoadValue("TripleStrike", "Option3")
  135. If credit="" Then
  136. credit=2
  137. SaveValue "TripleStrike", "Option3", credit
  138. End If
  139. Balls=LoadValue("TripleStrike", "Option4")
  140. If Balls="" Then
  141. Balls=5
  142. SaveValue "TripleStrike", "Option4", balls
  143. End If
  144. liberal=LoadValue("TripleStrike", "Option5")
  145. If liberal="" Then
  146. liberal=0
  147. SaveValue "TripleStrike", "Option5", liberal
  148. End If
  149. replays=LoadValue("TripleStrike", "Option6")
  150. If replays="" Then
  151. replays=2
  152. SaveValue "TripleStrike", "Option6", replays
  153. End If
  154. backglassTimer.interval = 500
  155. backglassTimer.enabled = True
  156. End Sub
  157.  
  158. ' Loads the saved values, sets the backglass credits and initializes the Option Menu
  159. Sub loadStoredDataTimer_Timer()
  160. loadStoredDataTimer.Enabled=False
  161. loadStoredDataTimer.Interval=1000
  162. LoadHighScore
  163. SetCredits
  164. OptionMenu_Init
  165. End Sub
  166.  
  167.  
  168. ' BackGlass Handlers
  169. Sub backglassTimer_Timer()
  170. backglassTimer.Enabled=False
  171. backglassTimer.interval = 5000
  172. If B2SOn Then
  173. Controller.B2SSetScorePlayer1 0
  174. Controller.B2SSetScorePlayer1 HighScore
  175. SetBackGlass HISCORE, 1
  176. End If
  177. EMReel1.resettozero
  178. EMReel1.addvalue(highscore)
  179. hiscorereel.setvalue(1)
  180. End Sub
  181.  
  182.  
  183. Sub SetBackGlass(id, value)
  184. If B2SOn Then
  185. Controller.B2SSetData id, value
  186. End If
  187. End Sub
  188.  
  189. Sub SetCredits()
  190. Dim credit10, credit1
  191. If B2SOn Then
  192. credit10 = int(credit/10)
  193. credit1 = int(credit - credit10*10)
  194. Controller.B2SSetCredits 28, credit10
  195. Controller.B2SSetCredits 29, credit1
  196. End If
  197. CreditReel.SetValue(credit)
  198. If credit > 0 then
  199. creditlight.state=1:DOF 120, DOFOn
  200. Else
  201. creditlight.state=0:DOF 120, DOFOff
  202. End If
  203. End Sub
  204.  
  205.  
  206. Sub UpdateFlipperLogo_Timer
  207. LFLogo.RotY = LeftFlipper.CurrentAngle
  208. RFlogo.RotY = RightFlipper.CurrentAngle
  209. 'LFLogoUP.RotY = LeftFlipper1.CurrentAngle
  210. End Sub
  211.  
  212.  
  213. Sub TiltCheck
  214. If Tilted = FALSE then
  215. If Tilts = 0 then
  216. Tilts = Tilts + int(rnd*200)
  217. TiltTimer.Enabled = TRUE
  218. Else
  219. Tilts = Tilts + int(rnd*200)
  220. End If
  221. If Tilts >= 300 and Tilted = FALSE then
  222. Tilted = TRUE
  223. PlaySound "tilt"
  224. SetBackGlass TILT_ID, 1
  225. tiltreel.setvalue(1)
  226. ' turn off bumpers
  227. bumper1.force=0
  228. target153.disabled=true
  229. target169.disabled=true
  230. gameover()
  231. End If
  232. End If
  233. End Sub
  234.  
  235.  
  236. Sub TiltTimer_Timer()
  237. If Tilts > 0 then
  238. Tilts = Tilts - 1
  239. Else
  240. TiltTimer.Enabled = FALSE
  241. End If
  242. End Sub
  243.  
  244.  
  245. Sub Reset() 'Called at table initialisation and game start
  246. If B2SOn Then
  247. Controller.B2SSetScoreRolloverPlayer1 0
  248. Controller.B2SSetScorePlayer1 0
  249. End If
  250.  
  251. Randomize
  252. match= int(10*rnd)*10
  253. matchtext.text = match
  254.  
  255. Score = 0
  256. ball = 0
  257.  
  258. knockered=0
  259. tilted = false
  260.  
  261. scoretext.text = formatnumber(score,0,-1,0,-1)
  262. balltext.text = formatnumber(ball,0,-1,0,-1)
  263.  
  264. For each obj in AllLights 'Set all lights off
  265. obj.State=0
  266. Next
  267. For each obj in PinLights 'Set all pin lights on
  268. obj.State=1
  269. Next
  270. For each obj in DTargLights 'Set all Drop Target Lights On
  271. obj.State=1
  272. Next
  273. For each obj in DTargs 'Raise all Drop Targets
  274. obj.IsDropped=false
  275. Next
  276.  
  277. bumper1.force = 8
  278. target153.disabled=false
  279. target169.disabled=false
  280.  
  281. ' StepB2SData 0, 5, 0,2 , 50, ""
  282. SetBackGlass TILT_ID, 0
  283. SetBackGlass GAMEOVER_ID, 1
  284. SetBackGlass BIP, 0
  285. SetBackGlass SAMESHOOTER, 0
  286. SetBackGlass MATCH_ID, 0
  287.  
  288. emreel1.resettozero
  289. tiltreel.resettozero
  290. gameoverreel.setvalue(1)
  291. hiscorereel.setvalue(1)
  292. sameplayerreel.resettozero
  293. ball1reel.resettozero
  294. ball2reel.resettozero
  295. ball3reel.resettozero
  296. ball4reel.resettozero
  297. ball5reel.resettozero
  298. postitreel.setvalue(0)
  299.  
  300. emreel100.setvalue(0)
  301. emreel110.setvalue(0)
  302. emreel120.setvalue(0)
  303. emreel130.setvalue(0)
  304. emreel140.setvalue(0)
  305. emreel150.setvalue(0)
  306. emreel160.setvalue(0)
  307. emreel170.setvalue(0)
  308. emreel180.setvalue(0)
  309. emreel190.setvalue(0)
  310.  
  311. End Sub
  312.  
  313.  
  314. Sub StartGame()
  315. Reset
  316. ball = Balls 'Option Menu Link - Number of Balls
  317. balltext.text = formatnumber(ball,0,-1,0,-1)
  318. ballkickertimer2.enabled=true
  319. credit = credit -1
  320. creditreel.addvalue(-1)
  321. SetCredits
  322.  
  323. SetBackGlass GAMEOVER_ID, 0
  324. SetBackGlass BIP, ball
  325. SetBackGlass SAMESHOOTER, 0
  326. SetBackGlass MATCH_ID, 0
  327. SetBackGlass HISCORE, 0
  328.  
  329. SetBackGlass 45, 0
  330. SetBackGlass 41, 0:SetBackGlass 42, 0:SetBackGlass 43, 0:SetBackGlass 44, 0
  331.  
  332. emreel1.resettozero
  333. gameoverreel.resettozero
  334. hiscorereel.resettozero
  335. sameplayerreel.resettozero
  336. Select Case ball
  337. Case 5:
  338. ball1reel.resettozero
  339. ball2reel.resettozero
  340. ball3reel.resettozero
  341. ball4reel.resettozero
  342. ball5reel.setValue(1)
  343. Case 4:
  344. ball1reel.resettozero
  345. ball2reel.resettozero
  346. ball3reel.resettozero
  347. ball4reel.setValue(1)
  348. ball5reel.resettozero
  349. Case 3:
  350. ball1reel.resettozero
  351. ball2reel.resettozero
  352. ball3reel.setValue(1)
  353. ball4reel.resettozero
  354. ball5reel.resettozero
  355. Case 2:
  356. ball1reel.resettozero
  357. ball2reel.setValue(1)
  358. ball3reel.resettozero
  359. ball4reel.resettozero
  360. ball5reel.resettozero
  361. Case 1:
  362. ball1reel.setValue(1)
  363. ball2reel.resettozero
  364. ball3reel.resettozero
  365. ball4reel.resettozero
  366. ball5reel.resettozero
  367. End Select
  368. ' ball3reel.setvalue(1)
  369.  
  370. Playsound "startup3"
  371. PlaySound "lightreset" ' Sound for light reset
  372. End Sub
  373.  
  374. ' General function to add score, updates the score reel
  375. Sub AddScore(points)
  376. Score=Score+points
  377. scoretext.text = formatnumber(score,0,-1,0,-1)
  378. If B2SOn Then Controller.B2SSetScorePlayer1 Score
  379. EMReel1.addvalue(points)
  380. 'Option Menu Link - Replay Scores
  381. For i= 1 to 4
  382. If score => replayscore(i) and knockered<i Then
  383. knockered=knockered+1
  384. Replay_Award
  385. End If
  386. Next
  387. End Sub
  388.  
  389.  
  390. Sub Replay_Award
  391. PlaySound SoundFXDOF("fpknocker", 108, DOFPulse, DOFKnocker)
  392. If liberal=1 or knockered=1 Then
  393. addball=addball+1:extraballlight.state=lightstateon
  394. If ball<5 Then ball = ball+1
  395. SetBackGlass SAMESHOOTER, 1
  396. End If
  397. If knockered<>1 Then
  398. credit = credit + 1:creditreel.addvalue(1):SetCredits
  399. End If
  400. End Sub
  401.  
  402. 'Used by Match
  403. Sub Add_credit
  404. PlaySound SoundFXDOF("fpknocker", 108, DOFPulse, DOFKnocker)
  405. credit = credit + 1:creditreel.addvalue(1):SetCredits
  406. End Sub
  407.  
  408.  
  409. Sub bumper1_hit() 'Top bumper
  410. If Tilted = true then exit sub
  411. PlaySound SoundFXDOF("bell100",142,DOFPulse,DOFChimes)
  412. PlaySound SoundFXDOF("bumper1", 101, DOFPulse, DOFContactors)
  413. AddScore 100
  414. Bump1=1:ringTimer.enabled=1
  415. End Sub
  416.  
  417. ' Bumper animation
  418. Sub ringTimer_Timer()
  419. Select Case bump1
  420. Case 1:Ringa.IsDropped = 0:bump1 = 2
  421. Case 2:ringb.IsDropped = 0:ringa.IsDropped = 1:bump1 = 3
  422. Case 3:ringc.IsDropped = 0:ringb.IsDropped = 1:bump1 = 4
  423. Case 4:ringc.IsDropped = 1: ringTimer.Enabled = 0
  424. End Select
  425. End Sub
  426.  
  427. ' Left Slingshot
  428. Sub Target169_slingshot()
  429. If Tilted = true then exit sub
  430. PlaySound SoundFXDOF("bell10",141,DOFPulse,DOFChimes)
  431. PlaySound SoundFXDOF("slingshotl", 105, DOFPulse, DOFContactors)
  432. AddScore 10
  433. End Sub
  434.  
  435. ' Right Slingshot
  436. Sub Target153_slingshot()
  437. If Tilted = true then exit sub
  438. PlaySound SoundFXDOF("bell10",141,DOFPulse,DOFChimes)
  439. PlaySound SoundFXDOF("slingshotl", 102, DOFPulse, DOFContactors)
  440. AddScore 10
  441. End Sub
  442.  
  443. Sub PointShots_Hit(T)
  444. If Tilted = true then exit sub
  445. PlaySound SoundFXDOF("bell10",141,DOFPulse,DOFChimes)
  446. AddScore 10
  447. End Sub
  448.  
  449. 'Ball @ Plunger
  450. Sub trigger11_hit()
  451. If addball>0 then
  452. extraballlight.state=lightstateon
  453. SetBackGlass SAMESHOOTER, 1
  454. sameplayerreel.setvalue(1)
  455. End If
  456. DOF 119, DOFOn
  457. DOF 122, DOFPulse
  458. End sub
  459.  
  460. Sub trigger11_unhit()
  461. Playsound "plunger-full-t2"
  462. End sub
  463.  
  464. Sub trigger14_hit()
  465. DOF 119, DOFOff
  466. End sub
  467.  
  468. Sub BallRollSounds_hit(T) 'ball rolling sounds
  469. PlaySound "ballrolling"
  470. End Sub
  471.  
  472.  
  473. ' Rail hit sounds
  474. Sub wall159_hit
  475. speedx=ballspeed.velx: speedy=ballspeed.vely
  476. finalspeed=SQR(ballspeed.velx * ballspeed.velx + ballspeed.vely * ballspeed.vely)
  477. if finalspeed > 2 then PlaySound "metalhit"
  478. end sub
  479.  
  480. Sub wall133_hit
  481. speedx=ballspeed.velx: speedy=ballspeed.vely
  482. finalspeed=SQR(ballspeed.velx * ballspeed.velx + ballspeed.vely * ballspeed.vely)
  483. if finalspeed > 2 then PlaySound "metalhit"
  484. end sub
  485.  
  486.  
  487. ' gate sounds
  488. Sub gate2_hit:PlaySound "gate":end sub
  489. Sub gate3_hit:PlaySound "gate":end sub
  490.  
  491. ' rubber sounds
  492. Sub WallHit(finalspeedcheck)
  493. speedx=ballspeed.velx: speedy=ballspeed.vely
  494. finalspeed=SQR(ballspeed.velx * ballspeed.velx + ballspeed.vely * ballspeed.vely)
  495. if finalspeed > finalspeedcheck then PlaySound "rubber" else PlaySound "rubberS":end if
  496. End Sub
  497.  
  498. Sub wall140_hit:WallHit(11):End Sub
  499. Sub wall1_hit:WallHit(11):End Sub
  500. Sub wall2_hit:WallHit(11):End Sub
  501. Sub wall5_hit:WallHit(11):End Sub
  502. Sub wall146_hit:WallHit(12):End Sub
  503. Sub wall39_hit:WallHit(12):End Sub
  504. Sub wall51_hit:WallHit(12):End Sub
  505. Sub wall45_hit:WallHit(10):End Sub
  506. Sub wall59_hit:WallHit(10):End Sub
  507. Sub wall168_hit:WallHit(12):End Sub
  508. Sub wall169_hit:WallHit(12):End Sub
  509. Sub wall176_hit:WallHit(12):End Sub
  510. Sub wall172_hit:WallHit(12):End Sub
  511. Sub wall177_hit:WallHit(12):End Sub
  512. Sub wall175_hit:WallHit(12):End Sub
  513. Sub wall170_hit:WallHit(12):End Sub
  514. Sub wall174_hit:WallHit(12):End Sub
  515. Sub wall178_hit:WallHit(12):End Sub
  516. Sub wall179_hit:WallHit(12):End Sub
  517. Sub wall100_hit:WallHit(12):End Sub
  518. Sub wall157_hit:WallHit(12):End Sub
  519. Sub wall180_hit:WallHit(12):End Sub
  520. Sub wall181_hit:WallHit(12):End Sub
  521.  
  522. ' triggers and lights for pins
  523. ' Turn off the light of the pin that was hit
  524. ' Adds 10 points regardless if light is on or off.
  525. Sub PinTriggers_Hit(T)
  526. If Tilted = true then exit sub
  527. PlaySound SoundFXDOF("bell10",141,DOFPulse,DOFChimes)
  528. PinLights(T).state=0
  529. If liberal=2 Then ' Option Menu Link
  530. Pin_Opposite = OppositeMap(T) ' T comes in as the pin number - 1
  531. PinLights(Pin_Opposite).state=0 ' PinLights requires pin number - 1
  532. End If
  533. checkpins
  534. AddScore 10
  535. End Sub
  536.  
  537. ' Check to see if all the pins are down,
  538. ' if they are then reset lights & add bonus light
  539. Sub checkpins()
  540. For each obj in PinLights
  541. If obj.state=1 then Exit Sub
  542. Next
  543. For each obj in PinLights
  544. obj.state=1
  545. Next
  546.  
  547. PlaySound "lightreset"
  548. DOF 123, DOFPulse
  549. If lightbonus1.state=1 then
  550. If lightbonus2.state=1 then
  551. lightbonus3.state=1
  552. PlaySound "bonus-advance"
  553. Else
  554. lightbonus2.state=1
  555. PlaySound "bonus-advance"
  556. End If
  557. Else
  558. lightbonus1.state=1
  559. PlaySound "bonus-advance"
  560. End If
  561. End Sub
  562.  
  563.  
  564. Sub DTargA_hit():DOF 115, DOFPulse:SetBackGlass 41, 1:targeta = true:End Sub
  565. Sub DTargB_hit():DOF 116, DOFPulse:SetBackGlass 42, 1:targetb = true:End Sub
  566. Sub DTargC_hit():DOF 117, DOFPulse:SetBackGlass 43, 1:targetc = true:End Sub
  567. Sub DTargD_hit():DOF 118, DOFPulse:SetBackGlass 44, 1:targetd = true:End Sub
  568.  
  569.  
  570. Sub DTargs_hit(T) 'drop targets hit
  571. PlaySound SoundFX("targetdrop",DOFDropTargets)
  572. DTargs(T).isdropped=true
  573. DTargLights(T).state=lightstateoff
  574. checkextraball
  575. checkabcd
  576. checktargets
  577. If Tilted = false then
  578. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  579. AddScore 1000
  580. End If
  581. End Sub
  582.  
  583.  
  584. Sub checkextraball() ' check extra ball
  585. For each obj in DTargLights
  586. If obj.state=1 Then Exit Sub
  587. Next
  588. If leftlight.state=lightstateon then
  589. DOF 108, DOFPulse:addball = addball + 1
  590. If ball<5 Then ball = ball+1
  591. extraballlight.state=lightstateon
  592. SetBackGlass SAMESHOOTER, 1
  593. sameplayerreel.setvalue(1)
  594. End If
  595. End Sub
  596.  
  597. Sub checkabcd() ' Check abcd lights
  598. For each obj in DTargLights
  599. If obj.state=1 Then Exit Sub
  600. Next
  601. For each obj in DTargLights
  602. obj.state=1
  603. Next
  604. starlight1.state=lightstateon
  605. starlight2.state=lightstateon
  606. starlight3.state=lightstateon
  607. tenxlight.state=lightstateon
  608. leftlight.state=lightstateon
  609. rightlight.state=lightstateon
  610. end sub
  611.  
  612.  
  613. Sub checktargets() ' check targets
  614. For each obj in DTargs
  615. If obj.IsDropped=False Then Exit Sub
  616. Next
  617. dtargettimer.enabled=true
  618. end sub
  619.  
  620.  
  621. ' Added timer for abcd target reset
  622. Sub dtargettimer_timer
  623. For each obj in DTargs 'Raise all Drop Targets
  624. obj.IsDropped=false
  625. Next
  626. SetBackGlass 41, 0:SetBackGlass 42, 0:SetBackGlass 43, 0:SetBackGlass 44, 0
  627. PlaySound SoundFX("dropreset", DOFDropTargets)
  628. if targeta = true then DOF 115, DOFPulse
  629. if targetb = true then DOF 116, DOFPulse
  630. if targetc = true then DOF 117, DOFPulse
  631. if targetd = true then DOF 118, DOFPulse
  632. targeta = false
  633. targetb = false
  634. targetc = false
  635. targetd = false
  636. dtargettimer.enabled=false
  637. End Sub
  638.  
  639. Sub kicker1_hit()'Kicker at the top of the playfield
  640. dim speedx
  641. dim speedy
  642. dim finalspeed
  643. speedx=ballspeed.velx: speedy=ballspeed.vely
  644. finalspeed=SQR(ballspeed.velx * ballspeed.velx + ballspeed.vely * ballspeed.vely)
  645. If Tilted = true then
  646. kicker1.timerenabled=true
  647. exit sub
  648. end if
  649. if finalspeed > 11 then
  650. Kicker1.kick 0,0
  651. ballspeed.vely=speedy ' If the ball is going faster than '10',
  652. ballspeed.velx=speedx ' then continue on its path and bump it up in the air speed 9, and hit glass
  653. ballspeed.velz=10
  654. playsound "collide6"
  655. end if
  656. if finalspeed > 8 then
  657. Kicker1.kick 0,0
  658. ballspeed.vely=speedy ' If the ball is going faster than '8', then continue on its path and bump
  659. ballspeed.velx=speedx ' it up in the air speed 4
  660. ballspeed.velz=5
  661. else
  662. kicker1.timerenabled=true
  663. if tenxlight.state=lightstateoff then
  664. LoopSound
  665. end if
  666. if tenxlight.state=lightstateon then
  667. AddBonus1Kb 5 ' OK I know it's not a bonus, but it uses the exact same code
  668. checktoplights ' HAD to make a new addbonus sub because it conflicted with ball release.
  669. toplight1.state=lightstateon
  670. end if
  671. end if
  672. End Sub
  673.  
  674.  
  675. Sub checktoplights()
  676. if toplight4.state=lightstateon then
  677. toplight5.state=lightstateon
  678. speciallight.state=lightstateon
  679. end if
  680. if toplight3.state=lightstateon then toplight4.state=lightstateon
  681. if toplight2.state=lightstateon then
  682. toplight3.state=lightstateon
  683. bonuslight.state=lightstateon
  684. end if
  685. if toplight2.state=lightstateon and ball=1 then
  686. DOF 108, DOFPulse:addball = addball + 1
  687. If ball<5 Then ball = ball+1
  688. extraballlight.state=lightstateon
  689. SetBackGlass SAMESHOOTER, 1
  690. sameplayerreel.setvalue(1)
  691. end if
  692. if toplight1.state=lightstateon then toplight2.state=lightstateon
  693. End Sub
  694.  
  695. Sub LoopSound() 'Used to loop the bell sound 5 times when the ball lands in the kicker
  696. Loops=0
  697. LoopSoundTimer.Interval=400
  698. LoopSoundTimer.Enabled=true
  699. End Sub
  700.  
  701. Sub LoopSoundTimer_Timer() 'Used to loop the bell sound 5 times when the ball lands in the kicker
  702. PlaySound SoundFXDOF("bell100",142,DOFPulse,DOFChimes)
  703. Playsound "bonus-scan"
  704.  
  705. LoopSoundTimer.Interval=80
  706. If loops=4 then LoopSoundTimer.Enabled=false
  707. 'if loops=0 then AddScore (500):Score=Score+500:scoretext.text = formatnumber(score,0,-1,0,-1): end if
  708. 'Gave a pause to EM reel for 500 points in top kicker
  709. Loops=Loops+1
  710. AddScore (100)
  711. End Sub
  712.  
  713.  
  714. ' knocker timer for delayed knocker on coin-in also delayed credit reel animation
  715. Sub knockertimer_timer
  716. PlaySound SoundFXDOF("knocker-t1", 108, DOFPulse, DOFKnocker)
  717. credit = credit + 1:creditreel.addvalue(1):SetCredits
  718. knockertimer.enabled=false
  719. End Sub
  720.  
  721.  
  722. Sub kicker1_timer
  723. kicker1.kick 189+INT(RND*9),16+INT(RND*4)
  724. Playsound SoundFXDOF("eject",107,DOFPulse,DOFContactors)
  725. kicker1.timerenabled=false
  726. End Sub
  727.  
  728.  
  729. Sub StarTriggers_Hit(T)
  730. if tilted = true then exit sub ' Star triggers
  731. DOF 130 + T, DOFPulse
  732. If StarLights(T).State=0 then
  733. AddScore 100
  734. PlaySound SoundFXDOF("bell100",142,DOFPulse,DOFChimes)
  735. Else
  736. AddScore 1000
  737. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  738. End If
  739. End Sub
  740.  
  741.  
  742. ' lane triggers
  743. sub lefttrigger1_hit()
  744. DOF 111, DOFPulse
  745. if tilted = true then exit sub
  746. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  747. if speciallight.state=0 then
  748. AddScore 1000
  749. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  750. end if
  751. if speciallight.state=1 then
  752. AddScore 10000
  753. end if
  754. end sub
  755.  
  756. sub lefttrigger2_hit()
  757. DOF 112, DOFPulse
  758. if tilted = true then exit sub
  759. if leftlight.state=1 then
  760. AddScore 1000
  761. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  762. end if
  763. if leftlight.state=0 then
  764. AddScore 100
  765. PlaySound SoundFXDOF("bell100",142,DOFPulse,DOFChimes)
  766. end if
  767. end sub
  768.  
  769. sub righttrigger1_hit():DOF 113, DOFPulse
  770. if tilted = true then exit sub
  771. if leftlight.state=1 then
  772. AddScore 1000
  773. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  774. end if
  775. if leftlight.state=0 then
  776. AddScore 100
  777. PlaySound SoundFXDOF("bell100",142,DOFPulse,DOFChimes)
  778. end if
  779. end sub
  780.  
  781. sub righttrigger2_hit():DOF 114, DOFPulse
  782. if tilted = true then exit sub
  783. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  784. AddScore 1000
  785. end sub
  786.  
  787.  
  788. ' Keys
  789. Sub Table1_KeyDown(ByVal keycode)
  790. If keycode = PlungerKey Then Plunger.PullBack: End If
  791.  
  792. If keycode = AddcreditKey Then PlaySound "CoinIn": knockertimer.enabled=true: End If
  793.  
  794. ' Option Menu Link - Flipper Control
  795. If gameon=false Then
  796. OptionMenuKeyDownCheck(keycode)
  797. Else
  798.  
  799. If keycode = LeftFlipperKey Then
  800. If GameOn = TRUE then
  801. If Tilted = FALSE Then
  802. LeftFlipper.RotateToEnd
  803. PlaySound SoundFXDOF("Flipperup2", 103, DOFOn, DOFFlippers)
  804. playSound "Flipperbuzz2"
  805. end if
  806. end if
  807. end if
  808.  
  809. If keycode = RightFlipperKey Then
  810. If GameOn = TRUE then
  811. If Tilted = FALSE then
  812. RightFlipper.RotateToEnd
  813. PlaySound SoundFXDOF("Flipperup2", 104, DOFOn, DOFFlippers)
  814. playSound "Flipperbuzz1"
  815. End If
  816. end if
  817. end if
  818.  
  819. If keycode = LeftTiltKey and tilted = false and ballinplay=true Then 'and ballspeed.x >500 ????
  820. if ballspeed.y <500 then
  821. nudge 90,.45
  822. tiltcheck
  823. else
  824. Nudge 90, 1
  825. tiltcheck
  826. End If
  827. end if
  828. If keycode = RightTiltKey and tilted = false and ballinplay=true Then
  829. if ballspeed.y <500 then
  830. Nudge 270, .45
  831. tiltcheck
  832. else
  833. Nudge 270, 1
  834. tiltcheck
  835. End If
  836. If keycode = CenterTiltKey and tilted = false Then
  837. Nudge 0, 1.08
  838. tiltcheck
  839. End If
  840. End If
  841. End If
  842. End Sub
  843.  
  844.  
  845. Sub Table1_KeyUp(ByVal keycode)
  846. If keycode = PlungerKey Then Plunger.Fire
  847.  
  848. If keycode = StartGameKey and gameon=false and ball <= 0 and credit >0 Then
  849. gameon=true
  850. StartGame
  851. End If
  852.  
  853. If keycode = LeftFlipperKey Then
  854.  
  855. ' Option Menu Link - Timer Turn Off
  856. OperatorMenuTimer.Enabled = false
  857.  
  858. If GameOn = TRUE then
  859. If Tilted = FALSE then
  860. LeftFlipper.RotateToStart
  861. PlaySound SoundFXDOF("Flipperup2", 103, DOFOff, DOFFlippers)
  862. stopSound "Flipperbuzz2"
  863. end if
  864. end if
  865. end if
  866. If keycode = RightFlipperKey Then
  867. If GameOn = TRUE then
  868. If Tilted = FALSE then
  869. RightFlipper.RotateToStart
  870. PlaySound SoundFXDOF("Flipperup2", 104, DOFOff, DOFFlippers)
  871. stopSound "Flipperbuzz1"
  872. end if
  873. end if
  874. end if
  875.  
  876. End Sub
  877.  
  878.  
  879. Sub matchplay
  880. if match = 0 then match = 100
  881. SetBackGlass MATCH_ID, match
  882. Select Case match
  883. Case 100: emreel100.setvalue(1)
  884. Case 10: emreel110.setvalue(1)
  885. Case 20: emreel120.setvalue(1)
  886. Case 30: emreel130.setvalue(1)
  887. Case 40: emreel140.setvalue(1)
  888. Case 50: emreel150.setvalue(1)
  889. Case 60: emreel160.setvalue(1)
  890. Case 70: emreel170.setvalue(1)
  891. Case 80: emreel180.setvalue(1)
  892. Case 90: emreel190.setvalue(1)
  893. End Select
  894. if match = 100 and int(right(score,2))= 0 then
  895. Add_credit
  896. Else
  897. if match = int(right(score,2)) then Add_credit
  898. End If
  899. End sub
  900.  
  901. Sub Drain_Hit()
  902. DOF 121, DOFPulse
  903. Tilts = 0
  904. if tilted = true then
  905. ball = 0
  906. gameover()
  907. SetBackGlass GAMEOVER_ID, 1
  908. gameoverreel.setvalue(1)
  909. else
  910. singlepinbonus
  911. checkstrikelights
  912. end if
  913. ballinplay=false
  914. Drain.DestroyBall
  915. PlaySound "drain-t1"
  916. if addball>0 then addball=addball-1
  917. ball = ball - 1
  918. balltext.text = formatnumber(ball,0,-1,0,-1)
  919. End Sub
  920.  
  921.  
  922. Sub gameover()
  923. gameon=false
  924. LeftFlipper.RotateToStart
  925. RightFlipper.RotateToStart
  926. stopSound "Flipperbuzz2" ' in case flippers are up when the game ends
  927. stopSound "Flipperbuzz1"
  928. SetBackGlass BIP, 0
  929. ball1reel.resettozero
  930. ball2reel.resettozero
  931. ball3reel.resettozero
  932. ball4reel.resettozero
  933. ball5reel.resettozero
  934. If tilted=false then
  935. matchplay
  936. end if
  937. SetBackGlass 41, 0:SetBackGlass 42, 0:SetBackGlass 43, 0:SetBackGlass 44, 0
  938. SetBackGlass 45, 1
  939. End sub
  940.  
  941.  
  942. 'BONUS SYSTEM
  943. 'Added a singlepin bonus system to come before the bonus system
  944. sub singlepinbonus
  945. a=0
  946. For each obj in PinLights
  947. a=a+1
  948. If obj.State=0 Then:PinBonus(a)=1:Else PinBonus(a)=0:End If
  949. next
  950. a=0
  951. b=10
  952. pinBonusTimer.Enabled=True
  953. end sub
  954.  
  955. Sub pinbonusTimer_Timer()
  956. a=a+1
  957. PlaySound"motorstep"
  958. Playsound "bonus-scan"
  959. If Pinbonus(a)=1 Then PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes):AddScore 1000
  960. If a=10 Then
  961. pinbonusTimer.Enabled=False
  962. a=0
  963. Bonuspausetimer.enabled=true
  964. End If
  965. End Sub
  966.  
  967. sub Bonuspausetimer_timer() ' Adds a pause between single pin bonus and strike bonus
  968. bonus()
  969. Bonuspausetimer.enabled=false
  970. end sub
  971.  
  972. sub bonus()
  973. BonusScore=0
  974. if lightbonus1.state=0 then afterBonusTimer.Enabled=true 'for kicking out the ball when no strikes are lit
  975. If lightbonus3.state=1 then 'Check bonus lights & add 10K, 20K or 30K bonus as appropriate
  976. BonusScore=BonusScore+30
  977. Else
  978. if lightbonus2.state=1 then
  979. BonusScore=BonusScore+20
  980. Else
  981. if lightbonus1.state=1 then BonusScore=BonusScore+10
  982. End If
  983. End If
  984. AddBonus1K BonusScore 'Run add bonus routine (plays sounds & updates score reel)
  985. end sub
  986.  
  987.  
  988. Sub afterbonustimer_timer
  989. bonusholdcheck
  990. playsound "lightreset"
  991.  
  992. toplight1.state=0 'If not game over then reset lights
  993. toplight2.state=0
  994. toplight3.state=0
  995. toplight4.state=0
  996. toplight5.state=0
  997. starlight1.state=0
  998. starlight2.state=0
  999. starlight3.state=0
  1000. leftlight.state=0
  1001. rightlight.state=0
  1002. bonuslight.state=0
  1003. speciallight.state=0
  1004. tenxlight.state=0
  1005. If addball=0 Then
  1006. SetBackGlass SAMESHOOTER, 0
  1007. sameplayerreel.resettozero
  1008. End If
  1009. If Ball <= 0 then
  1010. gameover()
  1011. stopsound "flipperbuzz2"
  1012. SetBackGlass GAMEOVER_ID, 1
  1013. gameoverreel.setvalue(1)
  1014. Topscore
  1015. End If
  1016. If Ball > 0 then ballkickertimer.enabled=true
  1017. afterbonustimer.enabled=false
  1018. End Sub
  1019.  
  1020.  
  1021. sub topscore
  1022. if clng (score) > clng (highscore) then
  1023. highscore=score:postitscore=postitval
  1024. savehs
  1025. textbox1.text=highscore
  1026. End if
  1027. backglassTimer.Interval=5000
  1028. backglassTimer.Enabled=True
  1029. end sub
  1030.  
  1031.  
  1032. Sub bonusholdcheck() 'Only reset pin lights if bonus hold is not lit
  1033. If bonuslight.state=0 and Ball > 0 then 'only if bonus light is off, pinlights and strikes turn off
  1034. For each obj in PinLights
  1035. obj.state=1
  1036. Next
  1037. PlaySound "lightreset" ' lightreset sound, comes before ball eject
  1038. lightbonus1.state=0
  1039. lightbonus2.state=0
  1040. lightbonus3.state=0
  1041. End If
  1042. ' This checks the value of the hold light and turns the strike light back on if holds bonus was on
  1043. If bonuslight.state=1 then
  1044. if hold1=1 then lightbonus1.state=1
  1045. if hold2=1 then lightbonus2.state=1
  1046. if hold3=1 then lightbonus3.state=1
  1047. end if
  1048. hold1=0
  1049. hold2=0
  1050. hold3=0
  1051. End Sub
  1052.  
  1053.  
  1054. Sub ballkickertimer2_timer
  1055. if ball =>1 then
  1056. set ballspeed=kicker2.createball
  1057. ballinplay=true ' longer starup for first ball
  1058. kicker2.kick 30,17
  1059. ballkickertimer2.enabled=false
  1060. PlaySound SoundFXDOF("loader-ballroll", 109, DOFPulse, DOFContactors)
  1061. End If
  1062. end sub
  1063.  
  1064.  
  1065. sub ballkickertimer_timer
  1066. if ball =>1 then
  1067. set ballspeed=kicker2.createball
  1068. ballinplay=true' named ballspeed for speed equations later
  1069. kicker2.kick 30,17
  1070. Playsound "eject"
  1071. PlaySound SoundFXDOF("loader-ballroll", 109, DOFPulse, DOFContactors)
  1072. End If
  1073. SetBackGlass BIP, ball
  1074. Select Case ball
  1075. Case 5:
  1076. ball1reel.resettozero
  1077. ball2reel.resettozero
  1078. ball3reel.resettozero
  1079. ball4reel.resettozero
  1080. ball5reel.setValue(1)
  1081. Case 4:
  1082. ball1reel.resettozero
  1083. ball2reel.resettozero
  1084. ball3reel.resettozero
  1085. ball4reel.setValue(1)
  1086. ball5reel.resettozero
  1087. Case 3:
  1088. ball1reel.resettozero
  1089. ball2reel.resettozero
  1090. ball3reel.setValue(1)
  1091. ball4reel.resettozero
  1092. ball5reel.resettozero
  1093. Case 2:
  1094. ball1reel.resettozero
  1095. ball2reel.setValue(1)
  1096. ball3reel.resettozero
  1097. ball4reel.resettozero
  1098. ball5reel.resettozero
  1099. Case 1:
  1100. ball1reel.setValue(1)
  1101. ball2reel.resettozero
  1102. ball3reel.resettozero
  1103. ball4reel.resettozero
  1104. ball5reel.resettozero
  1105. End Select
  1106. ballkickertimer.enabled=false
  1107. end sub
  1108.  
  1109.  
  1110. Sub AddBonus1Kb(Total) 'Add 1000's in bonus, play sound & update score reel
  1111. BonusCount=0
  1112. BonusCountMax=Total
  1113. 'if total=0 then BonusTimer.Enabled=true
  1114. If Total=0 then exit sub 'afterbonustimer.enabled=true : ' added this to spit out ball
  1115. BonusTimerb.Interval=400 'Slow start to bonus timer
  1116. BonusTimerb.Enabled=true
  1117. End Sub
  1118.  
  1119.  
  1120. Sub AddBonus1K(Total) 'Add 1000's in bonus, play sound & update score reel
  1121. BonusCount=0
  1122. BonusCountMax=Total
  1123. 'if total=0 then BonusTimer.Enabled=true
  1124. If Total=0 then exit sub 'afterbonustimer.enabled=true : ' added this to spit out ball
  1125. BonusTimer.Interval=400 'Slow start to bonus timer
  1126. BonusTimer.Enabled=true
  1127. End Sub
  1128.  
  1129. ' This checks to see if the strike lights are on and adds a value for the bonus hold check
  1130. Sub checkstrikelights
  1131. hold1=0
  1132. hold2=0
  1133. hold3=0
  1134. if lightbonus1.state=1 then hold1=1
  1135. if lightbonus2.state=1 then hold2=1
  1136. if lightbonus3.state=1 then hold3=1
  1137. End Sub
  1138.  
  1139. Sub BonusTimerb_timer()
  1140. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  1141. Playsound "bonus-scan"
  1142. AddScore 1000
  1143. BonusCount=BonusCount+1
  1144.  
  1145. 'add a space in between 5 counts
  1146. if bonuscount mod 5 =0 then
  1147. bonustimerb.interval=220
  1148. else bonustimerb.interval=80
  1149. end if
  1150. If BonusCount=BonusCountMax then BonusTimerb.Enabled=false 'end the timer when all the bonus is counted
  1151. End Sub
  1152.  
  1153.  
  1154. Sub BonusTimer_timer()
  1155. PlaySound SoundFXDOF("bell1000",143,DOFPulse,DOFChimes)
  1156. Playsound "motorstep"
  1157. Playsound "bonus-scan"
  1158. AddScore 1000
  1159. BonusCount=BonusCount+1
  1160.  
  1161. 'add a space in between 5 counts
  1162. if bonuscount mod 5 =0 then
  1163. bonustimer.interval=180
  1164. else
  1165. bonustimer.interval=80
  1166. end if
  1167.  
  1168. if bonuscount =10 and lightbonus1.state=1 and lightbonus2.state=0 and lightbonus3.state=0 then lightbonus1.state=0
  1169. if bonuscount =10 and lightbonus1.state=1 and lightbonus2.state=1 and lightbonus3.state=0 then lightbonus2.state=0
  1170. if bonuscount =10 and lightbonus1.state=1 and lightbonus2.state=1 and lightbonus3.state=1 then lightbonus3.state=0
  1171.  
  1172. if bonuscount =20 and lightbonus1.state=1 and lightbonus2.state=0 then lightbonus1.state=0
  1173. if bonuscount =20 and lightbonus1.state=1 and lightbonus2.state=1 then lightbonus2.state=0
  1174.  
  1175. if bonuscount =30 and lightbonus1.state=1 then lightbonus1.state=0
  1176.  
  1177. If BonusCount=BonusCountMax then BonusTimer.Enabled=false 'end the timer when all the bonus is counted
  1178. If BonusCount=BonusCountMax then afterbonustimer.enabled=true ' Timer to shutoff bonus lights and spit out ball
  1179. End Sub
  1180.  
  1181.  
  1182. Sub Timer2_Timer()
  1183. If credit<>credit2 Then
  1184. credit2=credit
  1185. SetCredits
  1186. End If
  1187. End Sub
  1188.  
  1189.  
  1190. '************************************************************************************
  1191. 'START Option Menu Support
  1192. Dim operatormenu, options, game_state
  1193. Dim balls
  1194. Dim replays, liberal, liblight, object
  1195. Dim replayscore(4), i
  1196. Dim Pin_Opposite
  1197. Dim OppositeMap(10)
  1198.  
  1199.  
  1200. Sub OptionMenu_Init
  1201. 'Check for legal option parameter values
  1202. if balls="" or (balls<>3 and balls<>5) then balls=5 ' Legal Values 3 or 5
  1203. if replays="" or replays<1 or replays>2 then replays=2 ' Legal Values 1 or 2
  1204. if liberal="" or liberal<0 or liberal>2 then liberal=0 ' Legal Values 0 or 1 or 2
  1205.  
  1206. 'Replay Score Thresholds
  1207. SetReplayScores
  1208. SetOppositeMap
  1209.  
  1210. RepCard.image = "ReplayCard"&replays
  1211. OptionBalls.image="OptionsBalls"&balls
  1212. OptionReplays.image="OptionsReplays"&replays
  1213. OptionLiberal.image="OptionsLiberal"&liberal
  1214. if balls=3 then
  1215. InstCard.image="InstCard3balls"
  1216. else
  1217. InstCard.image="InstCard5balls"
  1218. end if
  1219. game_state=gameon 'Link to State of Play - Menu Not Active During Gameplay
  1220. End Sub
  1221.  
  1222.  
  1223. Sub OptionMenuKeyDownCheck(keycode)
  1224. game_state=gameon 'Link to State of Play - Menu Not Active During Gameplay
  1225. If keycode=LeftFlipperKey and game_state = false and OperatorMenu=0 then
  1226. OperatorMenuTimer.Enabled = true
  1227. end if
  1228.  
  1229. If keycode=LeftFlipperKey and game_state = false and OperatorMenu=1 then
  1230. Options=Options+1
  1231. If Options=5 then Options=1
  1232. Select Case (Options)
  1233. Case 1:
  1234. Option1.visible=true
  1235. Option4.visible=False
  1236. Case 2:
  1237. Option2.visible=true
  1238. Option1.visible=False
  1239. Case 3:
  1240. Option3.visible=true
  1241. Option2.visible=False
  1242. Case 4:
  1243. Option4.visible=true
  1244. Option3.visible=False
  1245. End Select
  1246. end if
  1247. If keycode=RightFlipperKey and game_state = false and OperatorMenu=1 then
  1248. Select Case (Options)
  1249. Case 1:
  1250. if balls=3 then
  1251. balls=5
  1252. InstCard.image="InstCard5balls"
  1253. else
  1254. balls=3
  1255. InstCard.image="InstCard3balls"
  1256. end if
  1257. OptionBalls.image = "OptionsBalls"&balls
  1258. Case 2:
  1259. Liberal = Liberal + 1
  1260. If Liberal>2 Then Liberal = 0
  1261. OptionLiberal.image= "OptionsLiberal"&Liberal
  1262. Case 3:
  1263. replays=replays+1
  1264. if replays>2 then
  1265. replays=1
  1266. end if
  1267. SetReplayScores
  1268. OptionReplays.image = "OptionsReplays"&replays
  1269. repcard.image = "ReplayCard"&replays
  1270. Case 4:
  1271. OperatorMenu=0
  1272. savehs ' Save Configured Options
  1273. HideOptions
  1274. End Select
  1275. End If
  1276. end Sub
  1277.  
  1278.  
  1279. Sub OperatorMenuTimer_Timer
  1280. OperatorMenu=1
  1281. Displayoptions
  1282. Options=1
  1283. End Sub
  1284.  
  1285. Sub DisplayOptions
  1286. OptionsBack.visible = true
  1287. Option1.visible = True
  1288. OptionBalls.visible = True
  1289. OptionReplays.visible = True
  1290. OptionLiberal.visible = True
  1291. End Sub
  1292.  
  1293. Sub HideOptions
  1294. for each object In OptionMenu
  1295. object.visible = false
  1296. next
  1297. End Sub
  1298.  
  1299. Sub SetReplayScores
  1300. If replays=2 Then
  1301. replayscore(1) = 80000:replayscore(2) = 126000:replayscore(3) = 157000:replayscore(4) = 200000
  1302. Else
  1303. replayscore(1) = 60000:replayscore(2) = 106000:replayscore(3) = 127000:replayscore(4) = 148000
  1304. End If
  1305. End Sub
  1306.  
  1307. Sub SetOppositeMap
  1308. OppositeMap(0) = 0
  1309. OppositeMap(1) = 2
  1310. OppositeMap(2) = 1
  1311. OppositeMap(3) = 5
  1312. OppositeMap(4) = 4
  1313. OppositeMap(5) = 3
  1314. OppositeMap(6) = 9
  1315. OppositeMap(7) = 8
  1316. OppositeMap(8) = 7
  1317. OppositeMap(9) = 6
  1318. End Sub
  1319.  
  1320.  
  1321. 'END Option Menu Support
  1322. '************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment