Advertisement
Guest User

wpc.vps 10.5 typo fix

a guest
Jan 27th, 2018
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Last Updated in VBS v3.563 (Typo fix, IJ switch fix & cleanup)
  2.  
  3. Option Explicit
  4. LoadCore
  5. Private Sub LoadCore
  6.     On Error Resume Next
  7.     If VPBuildVersion < 0 Or Err Then
  8.         Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") : Err.Clear
  9.         ExecuteGlobal fso.OpenTextFile("core.vbs", 1).ReadAll    : If Err Then MsgBox "Can't open ""core.vbs""" : Exit Sub
  10.         ExecuteGlobal fso.OpenTextFile("VPMKeys.vbs", 1).ReadAll : If Err Then MsgBox "Can't open ""vpmkeys.vbs""" : Exit Sub
  11.     Else
  12.         ExecuteGlobal GetTextFile("core.vbs")    : If Err Then MsgBox "Can't open ""core.vbs"""    : Exit Sub
  13.         ExecuteGlobal GetTextFile("VPMKeys.vbs") : If Err Then MsgBox "Can't open ""vpmkeys.vbs""" : Exit Sub
  14.     End If
  15. End Sub
  16.  
  17. '-------------------------
  18. ' WPC Data
  19. '-------------------------
  20. ' Flipper Solenoid 
  21. Const GameOnSolenoid = 31
  22. '-----WPC flipper solenoid notes-----
  23. '***These games will work perfectly:***
  24. 'WPC alphanumerics, T2, Gilligan's Island, Hurricane, Party Zone (pre-Addams Family DMD games)
  25.  
  26. '***These games use rom-controlled flippers, but still have a usable flipper solenoid:***
  27. 'WPC Fliptronics & WPC Security (Addam's Family through Jack Bot / WHO dunnit)
  28. '- (YMMV. Beware stuck balls under upper flippers. )
  29. '- Some of these games may have solenoid jitter with solmodcallbacks enabled. If flippers die randomly, set the vpmFlips.InitDelay option.
  30. '- STAGED FLIPPER NOTE: Some games (Red & Ted, probably others) use swapped around upper flipper solenoid numbers, some table script modification may be necessary!
  31.  
  32. '***These games will not work at all:***
  33. 'WPC-95 Machines (Congo / Attack From Mars onwards)
  34.  
  35. ' Cabinet switches
  36. Const swCoin1  = 1
  37. Const swCoin2  = 2
  38. Const swCoin3  = 3
  39. Const swCoin4  = 4
  40. Const swCancel = 5
  41. Const swDown   = 6
  42. Const swUp     = 7
  43. Const swEnter  = 8
  44.  
  45. ' Forgot these in earlier vbs files
  46. Private swStartButtonX,swCoinDoorX,swSlamTiltX
  47. On Error Resume Next
  48. If swStartButton = 13 Or Err Then swStartButtonX = 13 Else swStartButtonX = swStartButton
  49. If swCoinDoor    = 22 Or Err Then swCoinDoorX    = 22 Else swCoinDoorX    = swCoinDoor
  50. If swSlamTilt    = 21 Or Err Then swSlamTiltX    = 21 Else swSlamTiltX    = swSlamTilt
  51. On Error Goto 0
  52.  
  53. Const swLRFlip = 112
  54. Const swLLFlip = 114
  55. Const swURFlip = 116
  56. Const swULFlip = 118
  57.  
  58. ' Help window
  59. vpmSystemHelp = "Williams WPC keys:" & vbNewLine &_
  60.   vpmKeyName(keyInsertCoin1)  & vbTab & "Insert Coin #1" & vbNewLine &_
  61.   vpmKeyName(keyInsertCoin2)  & vbTab & "Insert Coin #2" & vbNewLine &_
  62.   vpmKeyName(keyInsertCoin3)  & vbTab & "Insert Coin #3" & vbNewLine &_
  63.   vpmKeyName(keyInsertCoin4)  & vbTab & "Insert Coin #4" & vbNewLine &_
  64.   vpmKeyName(keyCancel) & vbTab & "Escape (Coin Door)" & vbNewLine &_
  65.   vpmKeyName(keyDown)  & vbTab & "Down (Coin Door)" & vbNewLine &_
  66.   vpmKeyName(keyUp)  & vbTab & "Up (Coin Door)" & vbNewLine &_
  67.   vpmKeyName(keyEnter)  & vbTab & "Enter (Coin Door)" & vbNewLine &_
  68.   vpmKeyName(keySlamDoorHit) & vbTab & "Slam Tilt" & vbNewLine &_
  69.   vpmKeyName(keyCoinDoor) & vbTab & "Open/Close Coin Door"
  70.  
  71. ' Dips Switch / Options Menu
  72. Private Sub wpcShowDips
  73.     If Not IsObject(vpmDips) Then ' First time
  74.         Set vpmDips = New cvpmDips
  75.     With vpmDips
  76.         .AddForm 100, 240, "DIP Switches"
  77.         .AddFrame 0,190, 80, "Misc", 0, Array("W20",&H04,"W19",&H08)
  78.         .AddFrame 0, 0, 80, "Country", &Hf0,_
  79.             Array("USA", &H00, "USA", &Hf0, "European", &Hd0,_
  80.                   "Export", &Ha0, "Export Alt", &H80, "France", &Hb0,_
  81.                   "France 1", &H10, "France 2", &H30, "France 3", &H90,_
  82.                   "Germany", &H20, "Spain",     &He0, "UK", &Hc0)
  83.     End With
  84.     End If
  85.     vpmDips.ViewDips
  86. End Sub
  87. Set vpmShowDips = GetRef("wpcShowDips")
  88. Private vpmDips
  89.  
  90. ' Keyboard handlers
  91. Function vpmKeyDown(ByVal keycode)
  92.     Dim swCopy
  93.     On Error Resume Next
  94.     vpmKeyDown = True ' assume we handle the key
  95.     With Controller
  96.         Select Case keycode
  97.             Case LeftFlipperKey  
  98.                 .Switch(swLLFlip) = True : vpmKeyDown = False :  vpmFlips.FlipL True : If keycode = keyStagedFlipperL then vpmFlips.FlipUL True
  99.                   If cSingleLFlip Or Err Then .Switch(swULFlip) = True
  100.             Case RightFlipperKey
  101.                 .Switch(swLRFlip) = True : vpmKeyDown = False :  vpmFlips.FlipR True : If keycode = keyStagedFlipperR then vpmFlips.FlipUR True
  102.                  If cSingleRFlip Or Err Then .Switch(swURFlip) = True
  103.             Case keyStagedFlipperL vpmFlips.FlipUL True : If cSingleLFlip Or Err Then .Switch(swULFlip) = True
  104.             Case keyStagedFlipperR vpmFlips.FlipUR True : If cSingleRFlip Or Err Then .Switch(swURFlip) = True
  105.             Case keyInsertCoin1  vpmTimer.AddTimer 750,"vpmTimer.PulseSw swCoin1'" : Playsound SCoin
  106.             Case keyInsertCoin2  vpmTimer.AddTimer 750,"vpmTimer.PulseSw swCoin2'" : Playsound SCoin
  107.             Case keyInsertCoin3  vpmTimer.AddTimer 750,"vpmTimer.PulseSw swCoin3'" : Playsound SCoin
  108.             Case keyInsertCoin4  vpmTimer.AddTimer 750,"vpmTimer.PulseSw swCoin4'" : Playsound SCoin
  109.             Case StartGameKey    swCopy = swStartButtonX : .Switch(swCopy) = True
  110.             Case keyCancel       swCopy = swCancel :       .Switch(swCopy) = True
  111.             Case keyDown         swCopy = swDown :         .Switch(swCopy) = True
  112.             Case keyUp           swCopy = swUp :           .Switch(swCopy) = True
  113.             Case keyEnter        swCopy = swEnter :        .Switch(swCopy) = True
  114.             Case keySlamDoorHit  swCopy = swSlamTiltX :    .Switch(swCopy) = True
  115.             Case keyCoinDoor     swCopy = swCoinDoorX :    If toggleKeyCoinDoor Then .Switch(swCopy) = Not .Switch(swCopy) Else .Switch(swCopy) = Not inverseKeyCoinDoor
  116.             Case keyBangBack     vpmNudge.DoNudge   0,6
  117.             Case LeftTiltKey     vpmNudge.DoNudge  75,2
  118.             Case RightTiltKey    vpmNudge.DoNudge 285,2
  119.             Case CenterTiltKey   vpmNudge.DoNudge   0,2
  120.             Case keyVPMVolume    vpmVol
  121.             Case Else            vpmKeyDown = False
  122.         End Select
  123.     End With
  124.     On Error Goto 0
  125. End Function
  126.  
  127. Function vpmKeyUp(ByVal keycode)
  128.     Dim swCopy
  129.     On Error Resume Next
  130.     vpmKeyUp = True ' assume we handle the key
  131.     With Controller
  132.         Select Case keycode
  133.             Case LeftFlipperKey  .Switch(swLLFlip) = False : vpmKeyUp = False :  vpmFlips.FlipL False : If keycode = keyStagedFlipperL then vpmFlips.FlipUL False
  134.                  If cSingleLFlip Or Err Then .Switch(swULFlip) = False
  135.             Case RightFlipperKey .Switch(swLRFlip) = False : vpmKeyUp = False :  vpmFlips.FlipR False : If keycode = keyStagedFlipperR then vpmFlips.FlipUR False
  136.                  If cSingleRFlip Or Err Then .Switch(swURFlip) = False
  137.             Case keyStagedFlipperL vpmFlips.FlipUL False : If cSingleLFlip Or Err Then .Switch(swULFlip) = False
  138.             Case keyStagedFlipperR vpmFlips.FlipUR False : If cSingleRFlip Or Err Then .Switch(swURFlip) = False
  139.             Case keyCancel       swCopy = swCancel :       .Switch(swCopy) = False
  140.             Case keyDown         swCopy = swDown :         .Switch(swCopy) = False
  141.             Case keyUp           swCopy = swUp :           .Switch(swCopy) = False
  142.             Case keyEnter        swCopy = swEnter :        .Switch(swCopy) = False
  143.             Case keySlamDoorHit  swCopy = swSlamTiltX :    .Switch(swCopy) = False
  144.             Case StartGameKey    swCopy = swStartButtonX : .Switch(swCopy) = False
  145.             Case keyCoinDoor     swCopy = swCoinDoorX :    If toggleKeyCoinDoor = False Then .Switch(swCopy) = inverseKeyCoinDoor
  146.             Case keyShowOpts     .Pause = True : .ShowOptsDialog GetPlayerHWnd : .Pause = False
  147.             Case keyShowKeys     .Pause = True : vpmShowHelp : .Pause = False
  148.             Case keyShowDips     If IsObject(vpmShowDips) Then .Pause = True : vpmShowDips : .Pause = False
  149.             Case keyAddBall      .Pause = True : vpmAddBall  : .Pause = False
  150.             Case keyReset        .Stop : BeginModal : .Run : vpmTimer.Reset : EndModal
  151.             Case keyFrame        .LockDisplay = Not .LockDisplay
  152.             Case keyDoubleSize   .DoubleSize  = Not .DoubleSize
  153.             Case Else            vpmKeyUp = False
  154.         End Select
  155.     End With
  156.     On Error Goto 0
  157. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement