Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '*********************************************************************
- '* GRONI PINBALL PRESENTS ********************************************
- '*********************************************************************
- '* A VISUAL PINBALL X RELEASE ****************************************
- '*********************************************************************
- '* THE WALKING DEAD - PRO EDITION ************************************
- '*********************************************************************
- '* A PINBALL MACHINE BY STERN 2014 ***********************************
- '*********************************************************************
- '*********************************************************************
- '* LAYERS ************************************************************
- '*********************************************************************
- '* LAYER 1 = STANDARD VP OBJECTS *************************************
- '* LAYER 2 = 3D OBJECTS **********************************************
- '* LAYER 3 = INSERT LIGHTS *******************************************
- '* LAYER 4 = FLASHER LIGHTS ******************************************
- '* LAYER 5 = GI ******************************************************
- '*********************************************************************
- Option Explicit
- Randomize
- DefaultOptions = 1*optExpr+1*optHitch+1*optWood+1*optBarn+1*optRamp+1*optFlip+1*optCard+1*optWell+1*optRubb+1*optFish+1*optTank+1*optBlade+1*optSanc+1*optTower
- '*********************************************************************
- '* DOF CONTROLLER INIT ***********************************************
- '*********************************************************************
- On Error Resume Next
- ExecuteGlobal GetTextFile("controller.vbs")
- If Err Then MsgBox "You need the controller.vbs in order to run this table, available in the vp10 package"
- On Error Goto 0
- '*********************************************************************
- '* VARIABLES *********************************************************
- '*********************************************************************
- Dim Ballspeed, bsTrough, plungerIM, PlNewPos, PlOldPos, PCount, BIP, WWSWHIT, Drops, PrisonMagnet
- Dim sw9Dir, sw9Pos, sw10Dir, sw10Pos, sw11Dir, sw11Pos, Dropbank
- Dim OptReset, DefaultOptions, Express, Hitch, Wood, Barn, Ramp, Flip, Card, Well, Rubb, Fish, Tank, Blade, Sanc, Tower
- '*********************************************************************
- '* STARTUP SETTINGS **************************************************
- '*********************************************************************
- RightSlingRubber_C.visible=0:RightSlingRubber_B.visible=0:RightSlingRubber_A.visible=0
- LeftSlingRubber_C.visible=0:LeftSlingRubber_B.visible=0:LeftSlingRubber_A.visible=0
- LDCOL.isdropped=1:RDCOL.isdropped=1
- '*********************************************************************
- '* VPM INIT **********************************************************
- '*********************************************************************
- Const BallSize = 53
- LoadVPM "01560000", "SAM.VBS", 3.10
- Const UseSolenoids = 1
- Const UseLamps = 0
- Const UseSync = 0
- Const HandleMech = 0
- Const SCoin = "fx_Coin"
- Set GiCallback2 = GetRef("UpdateGI")
- InitializeOptions
- 'Set GiCallback2 = GetRef("UpdateGI")
- '*********************************************************************
- '* GAME NAME *********************************************************
- '*********************************************************************
- Const cGameName = "twd_156"
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- '* TABLE INIT ********************************************************
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- Sub TWD_Init
- vpmInit Me
- With Controller
- .GameName = cGameName
- If Err Then MsgBox "Can't start Game " & cGameName & vbNewLine & Err.Description:Exit Sub
- .SplashInfoLine = "The Walking Dead - Pro Edition" & vbNewLine & "VPX Table by GRONI PINBALL V.1.0"
- .Games(cGameName).Settings.Value("rol") = 0
- .HandleKeyboard = 0
- .ShowTitle = 0
- .ShowDMDOnly = 1
- .ShowFrame = 0
- .HandleMechanics = 0
- .Hidden = 0
- On Error Resume Next
- .Run GetPlayerHWnd
- If Err Then MsgBox Err.Description
- On Error Goto 0
- End With
- '*********************************************************************
- '* PINMAME TIMER *****************************************************
- '*********************************************************************
- PinMAMETimer.Interval = PinMAMEInterval
- PinMAMETimer.Enabled = 1
- '*********************************************************************
- '* BALL TROUGH *******************************************************
- '*********************************************************************
- Set bsTrough = New cvpmBallStack
- With bsTrough
- .InitSw 0, 21, 20, 19, 18, 0, 0, 0
- .InitKick BallRelease, 90, 7
- .InitEntrySnd "", ""
- .InitExitSnd SoundFX("Stern_BallRelease",DOFContactors), SoundFX("Stern_BallRelease",DOFContactors)
- .Balls = 4
- End With
- '*********************************************************************
- '* PLUNGER ***********************************************************
- '*********************************************************************
- Const IMPowerSetting = 62
- Const IMTime = 0.6
- Set plungerIM = New cvpmImpulseP
- With plungerIM
- .InitImpulseP swplunger, IMPowerSetting, IMTime
- .Switch 23
- .Random 1.5
- .InitExitSnd SoundFX("Stern_Plung",DOFContactors), "Stern_PlungEmpty"
- .CreateEvents "plungerIM"
- End With
- '*********************************************************************
- '* DROP TARGETS ******************************************************
- '*********************************************************************
- Set Dropbank = new cvpmDropTarget
- With Dropbank
- .Initdrop Array(sw9, sw10, sw11), Array(9, 10, 11)
- .InitSnd SoundFX("Stern_Targetdrop",DOFDropTargets), SoundFX("Stern_Targetreset",DOFContactors)
- End With
- '*********************************************************************
- '* MAGNET ************************************************************
- '*********************************************************************
- Set PrisonMagnet = New cvpmMagnet
- With PrisonMagnet
- .InitMagnet PMagnet, 22
- .GrabCenter = 1
- .CreateEvents "PrisonMagnet"
- End With
- '*********************************************************************
- '* TILT *************************************************************
- '*********************************************************************
- vpmNudge.TiltSwitch = -7
- vpmNudge.Sensitivity = 5.35
- vpmNudge.TiltObj = Array(TopBumper,RightBumper,LeftBumper,LeftSlingshot,RightSlingshot)
- '*********************************************************************
- '* UPDATE GI *********************************************************
- '*********************************************************************
- UpdateGI 0, 1:UpdateGI 1, 1:UpdateGI 2, 1
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- '* END OF TABLE INIT *************************************************
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- End Sub
- '*********************************************************************
- '* KEYS **************************************************************
- '*********************************************************************
- Sub TWD_KeyDown(ByVal Keycode)
- If keycode = PlungerKey Then Plunger.PullBack:End If
- If keycode = CenterTiltKey Then Nudge 0, 5
- If vpmKeyDown(keycode) Then Exit Sub
- If keycode = LeftFlipperKey Then
- LeftFlipper.RotateToEnd
- PlaySound SoundFX("Stern_FlipperUpLeft",DOFFlippers)
- End If
- If keycode = RightFlipperKey Then
- RightFlipper.RotateToEnd
- PlaySound SoundFX("Stern_FlipperUpRight",DOFFlippers)
- End If
- If keycode = LeftTiltKey Then
- Nudge 90, 2
- End If
- If keycode = RightTiltKey Then
- Nudge 270, 2
- End If
- If keycode = CenterTiltKey Then
- Nudge 0, 2
- End If
- End Sub
- Sub TWD_KeyUp(ByVal Keycode)
- If keycode = PlungerKey Then Plunger.Fire:If BIP=1 then Playsound "Stern_Plung" else If BIP=0 then Playsound "Stern_PlungEmpty":End If
- If vpmKeyUp(keycode) Then Exit Sub
- If keycode = LeftFlipperKey Then
- LeftFlipper.RotateToStart
- PlaySound SoundFX("Stern_FlipperDownLeft",DOFFlippers)
- End If
- If keycode = RightFlipperKey Then
- RightFlipper.RotateToStart
- PlaySound SoundFX("Stern_FlipperDownRight",DOFFlippers)
- End If
- End Sub
- '*********************************************************************
- '* CONTROLLER PAUSE **************************************************
- '*********************************************************************
- Sub TWD_Paused:Controller.Pause = 1:End Sub
- Sub TWD_unPaused:Controller.Pause = 0:End Sub
- '*********************************************************************
- '* DRAIN HIT *********************************************************
- '*********************************************************************
- Sub Drain_Hit:Playsound "Stern_Drain":bsTrough.AddBall Me:End Sub
- Sub Drain1_Hit:Playsound "Stern_Drain":bsTrough.AddBall Me:End Sub
- Sub Drain2_Hit:Playsound "Stern_Drain":bsTrough.AddBall Me:End Sub
- '*********************************************************************
- '* POP BUMPERS *******************************************************
- '*********************************************************************
- Sub LeftBumper_Hit:vpmTimer.PulseSw 30:PlaySound SoundFX("Stern_Bumper2",DOFContactors):End Sub
- Sub TopBumper_Hit:vpmTimer.PulseSw 32:PlaySound SoundFx("Stern_Bumper1",DOFContactors):End Sub
- Sub RightBumper_Hit:vpmTimer.PulseSw 31:PlaySound SoundFX("Stern_Bumper3",DOFContactors):End Sub
- '*********************************************************************
- '* SLINGSHOTS ********************************************************
- '*********************************************************************
- Dim LSlingStep
- Sub LeftSlingShot_Slingshot
- LeftSlingRubber.visible=0
- LeftSlingRubber_A.visible=1
- PlaySound SoundFX("Stern_LeftSlingshot",DOFContactors)
- vpmTimer.PulseSw 26
- LSlingStep = 0
- Me.TimerEnabled = 1
- End Sub
- Sub LeftSlingShot_Timer
- Select Case LSlingStep
- Case 2:LeftSlingRubber_A.visible = 0:LeftSlingRubber_B.visible = 1
- Case 3:LeftSlingRubber_B.visible = 0:LeftSlingRubber_C.visible = 1
- Case 4:LeftSlingRubber_C.visible = 0:LeftSlingRubber_B.visible = 1
- Case 5:LeftSlingRubber_B.visible = 0:LeftSlingRubber_A.visible = 1
- Case 6:LeftSlingRubber_A.visible = 0:LeftSlingRubber.visible = 1:Me.TimerEnabled = 0
- End Select
- LSlingStep = LSlingStep + 1
- End Sub
- Dim RSlingStep
- Sub RightSlingShot_Slingshot
- RightSlingRubber.visible=0
- RightSlingRubber_A.visible=1
- PlaySound SoundFX("Stern_RightSlingshot",DOFContactors)
- vpmTimer.PulseSw 27
- RSlingStep = 0
- Me.TimerEnabled = 1
- End Sub
- Sub RightSlingShot_Timer
- Select Case RSlingStep
- Case 2:RightSlingRubber_A.visible = 0:RightSlingRubber_B.visible = 1
- Case 3:RightSlingRubber_B.visible = 0:RightSlingRubber_C.visible = 1
- Case 4:RightSlingRubber_C.visible = 0:RightSlingRubber_B.visible = 1
- Case 5:RightSlingRubber_B.visible = 0:RightSlingRubber_A.visible = 1
- Case 6:RightSlingRubber_A.visible = 0:RightSlingRubber.visible = 1:Me.TimerEnabled = 0
- End Select
- RSlingStep = RSlingStep + 1
- End Sub
- '*********************************************************************
- '* DROP TARGETS ******************************************************
- '*********************************************************************
- Sub Dropbankreset (enabled)
- If enabled then
- Playsound SoundFX("Stern_Targetreset",DOFContactors)
- sw9Dir = 1
- SW9.TimerEnabled = 1
- sw10Dir = 1
- SW10.TimerEnabled = 1
- sw11Dir = 1
- SW11.TimerEnabled = 1
- Dropbank.DropSol_On
- End If
- End Sub
- Sub sw9_Hit:Dropbank.Hit 1:sw9Dir = 0:SW9.TimerEnabled = 1:End Sub
- Sub sw10_Hit:Dropbank.Hit 2:sw10Dir = 0:SW10.TimerEnabled = 1:End Sub
- Sub sw11_Hit:Dropbank.Hit 3:sw11Dir = 0:SW11.TimerEnabled = 1:End Sub
- '* WILL TARGET *******************************************
- Sub sw9_Timer()
- Select Case sw9Pos
- Case 0: sw9P.z=0
- If sw9Dir = 1 then
- sw9.TimerEnabled = 0
- Else
- End if
- Case 1: sw9P.z=0
- Case 2: sw9P.z=0
- Case 2: sw9P.z=-20
- Case 3: sw9P.z=-40
- Case 4: sw9P.z=-50
- Case 5: sw9P.z=-55
- If sw9Dir = 1 then
- Else
- sw9.TimerEnabled = 0
- End if
- End Select
- If sw9Dir = 1 then
- If sw9pos>0 then sw9pos=sw9pos-1
- Else
- If sw9pos<5 then sw9pos=sw9pos+1
- End if
- End Sub
- '* YOU TARGET *******************************************
- Sub sw10_Timer()
- Select Case sw10Pos
- Case 0: sw10P.z=0
- If sw10Dir = 1 then
- sw10.TimerEnabled = 0
- Else
- End if
- Case 1: sw10P.z=0
- Case 2: sw10P.z=0
- Case 2: sw10P.z=-20
- Case 3: sw10P.z=-40
- Case 4: sw10P.z=-50
- Case 5: sw10P.z=-55
- If sw10Dir = 1 then
- Else
- sw10.TimerEnabled = 0
- End if
- End Select
- If sw10Dir = 1 then
- If sw10pos>0 then sw10pos=sw10pos-1
- Else
- If sw10pos<5 then sw10pos=sw10pos+1
- End if
- End Sub
- '* SURVIVE TARGET *******************************************
- Sub sw11_Timer()
- Select Case sw11Pos
- Case 0: sw11P.z=0
- If sw11Dir = 1 then
- sw11.TimerEnabled = 0
- Else
- End if
- Case 1: sw11P.z=0
- Case 2: sw11P.z=0
- Case 2: sw11P.z=-20
- Case 3: sw11P.z=-40
- Case 4: sw11P.z=-50
- Case 5: sw11P.z=-55
- If sw11Dir = 1 then
- Else
- sw11.TimerEnabled = 0
- End if
- End Select
- If sw11Dir = 1 then
- If sw11pos>0 then sw11pos=sw11pos-1
- Else
- If sw11pos<5 then sw11pos=sw11pos+1
- End if
- End Sub
- '*********************************************************************
- '* SOLENOIDS *********************************************************
- '*********************************************************************
- SolCallback(1) = "solTrough"
- SolCallback(2) = "solAutofire"
- SolCallback(3) = "PrisonDoorsPower"
- SolCallback(4) = "PrisonDoorsHold"
- SolCallback(7) = "SolPrisonMagnet"
- SolCallback(8) = "SolShaker"
- 'SolCallback(9) = "SolLeftPop" 'left pop bumper
- 'SolCallback(10) = "SolRightPop" 'right pop bumper
- 'SolCallback(11) = "SolTopPop" 'top pop bumper
- SolCallback(12) = "Dropbankreset"
- 'SolCallback(15) = "SolLFlipper"
- 'SolCallback(16) = "SolRFlipper"
- SolCallback(17) = "setlamp 117,"
- SolCallback(18) = "setlamp 118,"
- SolCallback(19) = "setlamp 119,"
- 'SolCallback(21) = "HordeFlash" 'horde flasher
- SolCallback(22) = "setlamp 122,"
- SolCallback(23) = "setlamp 123,"
- 'SolCallback(24) = "vpmSolSound SoundFX(""knocker""),"
- SolCallback(25) = "setlamp 125,"
- SolCallback(26) = "setlamp 126,"
- SolCallback(27) = "setlamp 127,"
- SolCallback(28) = "setlamp 128,"
- SolCallback(29) = "setlamp 129,"
- 'SolCallback(32) = "CenterLane" 'center lane flasher
- Sub solTrough(Enabled)
- If Enabled Then
- bsTrough.ExitSol_On
- vpmTimer.PulseSw 22
- End If
- End Sub
- Sub solAutofire(Enabled)
- If Enabled Then
- PlungerIM.AutoFire
- End If
- End Sub
- Sub SolShaker(Enabled)
- If enabled Then
- PlaySound SoundFX("Stern_Shaker",DOFShaker)
- End If
- End Sub
- '*********************************************************************
- '*********************************************************************
- '* SWITCHES **********************************************************
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- '* ROLLOVER SWITCHES *************************************************
- '*********************************************************************
- Sub SW12_Hit:Controller.Switch(12) = 1:PlaySound "":End Sub
- Sub SW12_UnHit:Controller.Switch(12) = 0:End Sub
- Sub SW13_Hit:Controller.Switch(13) = 1:PlaySound "":End Sub
- Sub SW13_UnHit:Controller.Switch(13) = 0:End Sub
- Sub SW23_Hit:Controller.Switch(23) = 1:PlaySound "":End Sub
- Sub SW23_UnHit:Controller.Switch(23) = 0:End Sub
- Sub SW24_Hit:Controller.Switch(24) = 1:PlaySound "":End Sub
- Sub SW24_UnHit:Controller.Switch(24) = 0:End Sub
- Sub SW25_Hit:Controller.Switch(25) = 1:PlaySound "":End Sub
- Sub SW25_UnHit:Controller.Switch(25) = 0:End Sub
- Sub SW28_Hit:Controller.Switch(28) = 1:PlaySound "":End Sub
- Sub SW28_UnHit:Controller.Switch(28) = 0:End Sub
- Sub SW29_Hit:Controller.Switch(29) = 1:PlaySound "":End Sub
- Sub SW29_UnHit:Controller.Switch(29) = 0:End Sub
- Sub SW33_Hit:Controller.Switch(33) = 1:PlaySound "":End Sub
- Sub SW33_UnHit:Controller.Switch(33) = 0:End Sub
- Sub SW36_Hit:Controller.Switch(36) = 1:PlaySound "":End Sub
- Sub SW36_UnHit:Controller.Switch(36) = 0:End Sub
- Sub SW37_Hit:Controller.Switch(37) = 1:PlaySound "":End Sub
- Sub SW37_UnHit:Controller.Switch(37) = 0:End Sub
- Sub SW39_Hit:Controller.Switch(39) = 1:PlaySound "":End Sub
- Sub SW39_UnHit:Controller.Switch(39) = 0:End Sub
- Sub SW41_Hit:Controller.Switch(41) = 1:PlaySound "":End Sub
- Sub SW41_UnHit:Controller.Switch(41) = 0:End Sub
- Sub SW47_Hit:Controller.Switch(47) = 1:PlaySound "":End Sub
- Sub SW47_UnHit:Controller.Switch(47) = 0:End Sub
- '* PRISON OPTO *********************************************
- Sub SW46_Hit:Controller.Switch(46) = 1:PlaySound "":End Sub
- Sub SW46_UnHit:Controller.Switch(46) = 0:End Sub
- '*********************************************************************
- '* TARGET SWITCHES ***************************************************
- '*********************************************************************
- Sub SW3_Hit:vpmTimer.PulseSw 3:SW3P.X=457.8755:SW3P.Y=511.375:Me.TimerEnabled = 1:PlaySound SoundFX("Stern_Posthit",DOFContactors):End Sub
- Sub SW3_Timer:SW3P.X=457.875:SW3P.Y=515.875:Me.TimerEnabled = 0:End Sub
- Sub SW4_Hit:vpmTimer.PulseSw 4:PlaySound SoundFX("Stern_PrisonDoorHit",DOFContactors):End Sub
- Sub SW38_Hit:vpmTimer.PulseSw 38:SW38P.X=860.6875:SW38P.Y=333.9375:Me.TimerEnabled = 1:PlaySound SoundFX("Stern_Posthit",DOFContactors):End Sub
- Sub SW38_Timer:SW38P.X=853.6875:SW38P.Y=334.1875:Me.TimerEnabled = 0:End Sub
- Sub SW44_Hit:vpmTimer.PulseSw 44:SW44P.X=372.4375:SW44P.Y=674.5625:Me.TimerEnabled = 1:PlaySound SoundFX("Stern_Posthit",DOFContactors):End Sub
- Sub SW44_Timer:SW44P.X=372.4375:SW44P.Y=679.0625:Me.TimerEnabled = 0:End Sub
- Sub SW45_Hit:vpmTimer.PulseSw 45:SW45P.X=549.9375:SW45P.Y=673.8125:Me.TimerEnabled = 1:PlaySound SoundFX("Stern_Posthit",DOFContactors):End Sub
- Sub SW45_Timer:SW45P.X=549.9375:SW45P.Y=678.5625:Me.TimerEnabled = 0:End Sub
- '*********************************************************************
- '* RAMP SWITCHES *****************************************************
- '*********************************************************************
- Sub SW42_Hit:Controller.Switch(42) = 1:PlaySound "":End Sub
- Sub SW42_UnHit:Controller.Switch(42) = 0:End Sub
- Sub SW43_Hit:Controller.Switch(43) = 1:PlaySound "":End Sub
- Sub SW43_UnHit:Controller.Switch(43) = 0:End Sub
- Sub SW34_Hit:Controller.Switch(34) = 1:PlaySound "":End Sub
- Sub SW34_UnHit:Controller.Switch(34) = 0:End Sub
- Sub SW35_Hit:Controller.Switch(35) = 1:PlaySound "":End Sub
- Sub SW35_UnHit:Controller.Switch(35) = 0:End Sub
- '*********************************************************************
- '* WELL WALKER MOVEMENT **********************************************
- '*********************************************************************
- WWSWHIT=0
- Sub WWSW_Init:Controller.Switch (2) = 1:End Sub
- Sub WWSW_Hit()
- Ballspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If Ballspeed >5 then Playsound "Stern_Walkerhit":WWHit 1:WWSWHIT=1:Controller.Switch (2) = 0
- If Ballspeed <5 then Playsound "Stern_Metalhit":WWLowHit 1
- End Sub
- Dim WWPos,WWLowpos
- Sub WWHit (enabled)
- if enabled then
- WWTimer.Enabled=1
- End If
- End Sub
- Sub WWLowHit (enabled)
- if enabled then
- WWLowTimer.Enabled=1
- End If
- End Sub
- Sub WWTimer_Timer()
- Select Case WWPos
- Case 0: WellWalker.RotX=92
- Case 1: WellWalker.RotX=94
- Case 2: WellWalker.RotX=96
- Case 3: WellWalker.RotX=98
- Case 4: WellWalker.RotX=100
- Case 5: WellWalker.RotX=102
- Case 6: WellWalker.RotX=104
- Case 7: WellWalker.RotX=106
- Case 8: WellWalker.RotX=108
- Case 9: WellWalker.RotX=110
- Case 10: WellWalker.RotX=112
- Case 11: WellWalker.RotX=114
- Case 12: WellWalker.RotX=116
- Case 13: WellWalker.RotX=118
- Case 14: WellWalker.RotX=120
- Case 15: WellWalker.RotX=120
- Case 16: WellWalker.RotX=118
- Case 17: WellWalker.RotX=116
- Case 18: WellWalker.RotX=114
- Case 19: WellWalker.RotX=112
- Case 20: WellWalker.RotX=110
- Case 21: WellWalker.RotX=108
- Case 22: WellWalker.RotX=106
- Case 23: WellWalker.RotX=104
- Case 24: WellWalker.RotX=102
- Case 25: WellWalker.RotX=100
- Case 26: WellWalker.RotX=98
- Case 27: WellWalker.RotX=96
- Case 28: WellWalker.RotX=94
- Case 29: WellWalker.RotX=92
- Case 30: WellWalker.RotX=90
- Case 31: WellWalker.RotX=92
- Case 32: WellWalker.RotX=94
- Case 33: WellWalker.RotX=96
- Case 34: WellWalker.RotX=94
- Case 35: WellWalker.RotX=92
- Case 36: WellWalker.RotX=90
- Case 37: WellWalker.RotX=90:WWTimer.Enabled=0:WWPos=0:WWSWHIT=0:Controller.Switch (2) = 1
- End Select
- If WWPos=>0 then WWPos=WWPos+1
- End Sub
- Sub WWLowTimer_Timer()
- Select Case WWLowpos
- Case 0: WellWalker.RotX=91
- Case 1: WellWalker.RotX=92
- Case 2: WellWalker.RotX=93
- Case 3: WellWalker.RotX=92
- Case 4: WellWalker.RotX=91
- Case 5: WellWalker.RotX=90:WWLowTimer.Enabled=0:WWLowpos=0
- End Select
- If WWLowpos=>0 then WWLowpos=WWLowpos+1
- End Sub
- '*********************************************************************
- '* PRISON MOVEMENT ***************************************************
- '*********************************************************************
- Dim PRISPos, PrisOpen
- Sub PrisonDoorsPower(Enabled)
- If Enabled Then
- PRISONTIMER.Enabled=1
- PlaySound SoundFX("Stern_PrisonDoorOpen",DOFContactors)
- End If
- End Sub
- Sub PRISONTIMER_Timer()
- Select Case PRISPos
- Case 0: PD_LEFT.RotY=5:PD_RIGHT.RotY=-5
- Case 1: PD_LEFT.RotY=10:PD_RIGHT.RotY=-10
- Case 2: PD_LEFT.RotY=15:PD_RIGHT.RotY=-15
- Case 3: PD_LEFT.RotY=20:PD_RIGHT.RotY=-20
- Case 4: PD_LEFT.RotY=25:PD_RIGHT.RotY=-25
- Case 5: PD_LEFT.RotY=30:PD_RIGHT.RotY=-30
- Case 6: PD_LEFT.RotY=35:PD_RIGHT.RotY=-35
- Case 7: PD_LEFT.RotY=40:PD_RIGHT.RotY=-40
- Case 8: PD_LEFT.RotY=45:PD_RIGHT.RotY=-45
- Case 9: PD_LEFT.RotY=50:PD_RIGHT.RotY=-50
- Case 10: PD_LEFT.RotY=55:PD_RIGHT.RotY=-55
- Case 11: PD_LEFT.RotY=60:PD_RIGHT.RotY=-60
- Case 12: PD_LEFT.RotY=65:PD_RIGHT.RotY=-65
- Case 13: PD_LEFT.RotY=70:PD_RIGHT.RotY=-70
- Case 14: PD_LEFT.RotY=75:PD_RIGHT.RotY=-75
- Case 15: PD_LEFT.RotY=80:PD_RIGHT.RotY=-80
- Case 16: PD_LEFT.RotY=85:PD_RIGHT.RotY=-85
- Case 17: PD_LEFT.RotY=90:PD_RIGHT.RotY=-90
- Case 18: PD_LEFT.RotY=95:PD_RIGHT.RotY=-95
- Case 19: PD_LEFT.RotY=100:PD_RIGHT.RotY=-95
- Case 20: PD_LEFT.RotY=102:PD_RIGHT.RotY=-95
- Case 21: PD_LEFT.RotY=102:PD_RIGHT.RotY=-95:PRISONTIMER.Enabled=0:PRISPos=0:Prisopen=1:SW4.isdropped=1:LDCOL.isdropped=0:RDCOL.isdropped=0
- End Select
- If PRISPos=>0 then PRISPos=PRISPos+1
- End Sub
- Dim PRIS2Pos, PrisClose
- Sub PrisonDoorsHold(Enabled)
- If Enabled Then
- PRISONTIMER.Enabled=1
- Else
- PRISONTIMER2.Enabled=1
- PlaySound SoundFX("Stern_PrisonDoorOpen",DOFContactors)
- End If
- End Sub
- Sub PRISONTIMER2_Timer()
- Select Case PRIS2Pos
- Case 0: PD_LEFT.RotY=100:PD_RIGHT.RotY=-90
- Case 1: PD_LEFT.RotY=95:PD_RIGHT.RotY=-85
- Case 2: PD_LEFT.RotY=90:PD_RIGHT.RotY=-80
- Case 3: PD_LEFT.RotY=85:PD_RIGHT.RotY=-75
- Case 4: PD_LEFT.RotY=80:PD_RIGHT.RotY=-70
- Case 5: PD_LEFT.RotY=75:PD_RIGHT.RotY=-65
- Case 6: PD_LEFT.RotY=70:PD_RIGHT.RotY=-60
- Case 7: PD_LEFT.RotY=65:PD_RIGHT.RotY=-55
- Case 8: PD_LEFT.RotY=60:PD_RIGHT.RotY=-50
- Case 9: PD_LEFT.RotY=55:PD_RIGHT.RotY=-45
- Case 10: PD_LEFT.RotY=50:PD_RIGHT.RotY=-40
- Case 11: PD_LEFT.RotY=45:PD_RIGHT.RotY=-35
- Case 12: PD_LEFT.RotY=40:PD_RIGHT.RotY=-30
- Case 13: PD_LEFT.RotY=35:PD_RIGHT.RotY=-25
- Case 14: PD_LEFT.RotY=30:PD_RIGHT.RotY=-20
- Case 15: PD_LEFT.RotY=25:PD_RIGHT.RotY=-15
- Case 16: PD_LEFT.RotY=20:PD_RIGHT.RotY=-10
- Case 17: PD_LEFT.RotY=15:PD_RIGHT.RotY=-5
- Case 18: PD_LEFT.RotY=10:PD_RIGHT.RotY=-0
- Case 19: PD_LEFT.RotY=5:PD_RIGHT.RotY=-0
- Case 20: PD_LEFT.RotY=0:PD_RIGHT.RotY=-0
- Case 21: PD_LEFT.RotY=0:PD_RIGHT.RotY=-0:PRISONTIMER2.Enabled=0:PRIS2Pos=0:Prisclose=1:SW4.isdropped=0:LDCOL.isdropped=1:RDCOL.isdropped=1
- End Select
- If PRIS2Pos=>0 then PRIS2Pos=PRIS2Pos+1
- End Sub
- '*********************************************************************
- '* PRISON MAGNET *****************************************************
- '*********************************************************************
- Sub SolPrisonMagnet(enabled)
- If enabled Then
- PrisonMagnet.MagnetOn = True
- Else
- ReleasePMagnet
- End If
- End Sub
- Sub ReleasePMagnet
- Dim dir, speed, ball
- For Each ball In PrisonMagnet.Balls
- With ball
- dir = Rnd * 6.28
- speed = 5 + Rnd * 5
- .VelX = speed * Sin(dir)
- .VelY = speed * Cos(dir)
- End With
- Next
- PrisonMagnet.MagnetOn = False
- End Sub
- '*********************************************************************
- '* UPDATE GI ILLUMINATION ********************************************
- '*********************************************************************
- Sub UpdateGI(no, step)
- Dim gistep, ii, a
- gistep = step / 8
- Select Case no
- Case 0
- For each ii in GI
- ii.IntensityScale = gistep
- Next
- Case 1
- For each ii in GI
- ii.IntensityScale = gistep
- Next
- Case 2
- For each ii in GI
- ii.IntensityScale = gistep
- Next
- End Select
- End Sub
- '*********************************************************************
- '* JP FADING LIGHT SYSTEM ********************************************
- '*********************************************************************
- Dim LampState(200), FadingLevel(200)
- Dim FlashSpeedUp(200), FlashSpeedDown(200), FlashMin(200), FlashMax(200), FlashLevel(200)
- InitLamps() ' turn off the lights and flashers and reset them to the default parameters
- LampTimer.Interval = 10 'lamp fading speed
- LampTimer.Enabled = 1
- ' Lamp & Flasher Timers
- Sub LampTimer_Timer()
- Dim chgLamp, num, chg, ii
- chgLamp = Controller.ChangedLamps
- If Not IsEmpty(chgLamp) Then
- For ii = 0 To UBound(chgLamp)
- LampState(chgLamp(ii, 0) ) = chgLamp(ii, 1) 'keep the real state in an array
- FadingLevel(chgLamp(ii, 0) ) = chgLamp(ii, 1) + 4 'actual fading step
- Next
- End If
- UpdateLamps
- End Sub
- '*********************************************************************
- '* INSERT LIGHTS *****************************************************
- '*********************************************************************
- Sub UpdateLamps
- NFadeL 3, l3
- NFadeL 4, l4
- NFadeL 5, l5
- NFadeL 6, l6
- NFadeL 7, l7
- NFadeL 8, l8
- NFadeL 9, l9
- NFadeL 10, l10
- NFadeL 11, l11
- NFadeL 12, l12
- NFadeL 13, l13
- NFadeL 14, l14
- NFadeL 15, l15
- NFadeL 16, l16
- NFadeL 17, l17
- NFadeL 18, l18
- NFadeL 19, l19
- NFadeL 20, l20
- NFadeL 21, l21
- NFadeL 22, l22
- NFadeL 23, l23
- NFadeL 24, l24
- NFadeL 25, l25
- NFadeL 26, l26
- NFadeL 27, l27
- NFadeL 28, l28
- NFadeL 29, l29
- NFadeL 30, l30
- NFadeL 31, l31
- NFadeL 32, l32
- NFadeL 33, l33
- NFadeL 34, l34
- NFadeL 35, l35
- NFadeL 36, l36
- NFadeL 37, l37
- NFadeL 38, l38
- NFadeL 39, l39
- NFadeLma 40, l40a
- 'NFadeLmb 40, l40b
- 'NFadeLmc 40, l40c
- NFadeLm 40, l40
- NFadeL 41, l41
- NFadeL 42, l42
- NFadeL 43, l43
- NFadeL 44, l44
- NFadeL 45, l45
- NFadeL 46, l46
- NFadeL 47, l47
- NFadeL 48, l48
- NFadeL 49, l49
- NFadeL 50, l50
- NFadeL 51, l51
- NFadeL 52, l52
- NFadeL 53, l53
- NFadeL 54, l54
- NFadeL 55, l55
- NFadeL 56, l56
- NFadeL 57, l57
- NFadeL 58, l58
- NFadeL 59, l59
- NFadeLm 60, l60b
- NFadeLmm 60, l60b
- NFadeL 60, l60
- NFadeLm 61, l61b
- NFadeLmm 61, l61b
- NFadeL 61, l61
- NFadeLm 62, l62b
- NFadeLmm 62, l62b
- NFadeL 62, l62
- NFadeL 63, l63
- NFadeL 64, l64
- NFadeL 65, l65
- NFadeL 66, l66
- NFadeL 67, l67
- NFadeL 68, l68
- NFadeL 69, l69
- NFadeLma 70, l70a
- NFadeLma 71, l71a
- NFadeLma 117, l73a
- NFadeLmb 117, l73b
- NFadeL 117, l73
- NFadeLma 118, l74a
- NFadeLmb 118, l74b
- NFadeL 118, l74
- NFadeLma 122, l75a
- NFadeLmb 122, l75b
- NFadeL 122, l75
- NFadeL 72, l72
- NFadeL 76, l76
- NFadeL 77, l77
- NFadeLma 78, l78a
- NFadeL 79, l79
- NFadeL 80, l80
- '*********************************************************************
- '* FLASHER ***********************************************************
- '*********************************************************************
- NFadeLm 119, F19
- NFadeL 119, F19b
- NFadeL 123, f23
- NFadeLm 125, F25b
- NFadeL 125, F25
- NFadeLm 126, F26
- NFadeLmm 126, F26b
- NFadeLma 126, f26c
- NFadeLmm 127, F27
- NFadeLm 127, F27b
- NFadeLm 128, F28
- NFadeLmc 128, F28c
- NFadeLm 129, F29
- 'NFadeLm 118, F18
- 'NFadeLm 119, F19
- 'NFadeL 120, f20
- 'NFadeLm 121, F21a
- 'NFadeL 121, F21
- 'NFadeLm 123, f23
- 'NFadeLm 125, F25
- 'NFadeLm 126, F26
- 'NFadeLm 127, F27
- 'NFadeL 128, f28
- 'NFadeLm 130, f30b
- 'NFadeL 130, f30a
- '*********************************************************************
- '* OBJECT LIGHTS *****************************************************
- '*********************************************************************
- FadeObj 70, XBOW, "2_OBJ_Crossbow-Fishtank_3", "2_OBJ_Crossbow-Fishtank_2", "2_OBJ_Crossbow-Fishtank_1", "2_OBJ_Crossbow-Fishtank"
- FadeObj 71, FISHTANK, "2_OBJ_Crossbow-Fishtank_3", "2_OBJ_Crossbow-Fishtank_2", "2_OBJ_Crossbow-Fishtank_1", "2_OBJ_Crossbow-Fishtank"
- FadeObj 78, L78p, "2_BicycleGirl_3", "2_BicycleGirl_2", "2_BicycleGirl_1", "2_BicycleGirl"
- FadeObj 40, MOD_Woodbury, "mods3", "mods2", "mods1", "mods"
- FadeObj 126, MOD_Hitchhiker, "mods3", "mods2", "mods1", "mods"
- FadeObj 127, F27P, "2_OBJ_Prison_3", "2_OBJ_Prison_2", "2_OBJ_Prison_1", "2_OBJ_Prison"
- FadeObjm 128, F28P, "FlasherRed_3", "FlasherRed_2", "FlasherRed_1", "FlasherRed"
- FadeObj 128, MOD_ExpressMart, "mods3", "mods2", "mods1", "mods"
- FadeObj 129, F29P, "FlasherRed_3", "FlasherRed_2", "FlasherRed_1", "FlasherRed"
- 'FadeObj 118, F18P, "Saucer_3", "Saucer_2", "Saucer_1", "Saucer"
- 'FadeObj 119, F19P, "Saucer_3", "Saucer_2", "Saucer_1", "Saucer"
- 'FadeObj 125, F25P, "Saucer_3", "Saucer_2", "Saucer_1", "Saucer"
- 'FadeObj 126, F26P, "Saucer_3", "Saucer_2", "Saucer_1", "Saucer"
- 'FadeObj 127, F27P, "Saucer_3", "Saucer_2", "Saucer_1", "Saucer"
- End Sub
- '*********************************************************************
- '* LAMP SUBS *********************************************************
- '*********************************************************************
- Sub InitLamps()
- Dim x
- For x = 0 to 200
- LampState(x) = 0 ' current light state, independent of the fading level. 0 is off and 1 is on
- FadingLevel(x) = 4 ' used to track the fading state
- FlashSpeedUp(x) = 0.2 ' faster speed when turning on the flasher
- FlashSpeedDown(x) = 0.1 ' slower speed when turning off the flasher
- FlashMax(x) = 1 ' the maximum value when on, usually 1
- FlashMin(x) = 0 ' the minimum value when off, usually 0
- FlashLevel(x) = 0 ' the intensity of the flashers, usually from 0 to 1
- Next
- End Sub
- Sub AllLampsOff
- Dim x
- For x = 0 to 200
- SetLamp x, 0
- Next
- End Sub
- Sub SetLamp(nr, value)
- If value <> LampState(nr) Then
- LampState(nr) = abs(value)
- FadingLevel(nr) = abs(value) + 4
- End If
- End Sub
- '*********************************************************************
- '* VPX STANDARD LIGHTS ***********************************************
- '*********************************************************************
- Sub NFadeL(nr, object)
- Select Case FadingLevel(nr)
- Case 4:object.state = 0:FadingLevel(nr) = 0
- Case 5:object.state = 1:FadingLevel(nr) = 1
- End Select
- End Sub
- Sub NFadeLm(nr, object) ' used for multiple lights
- Select Case FadingLevel(nr)
- Case 4:object.state = 0
- Case 5:object.state = 1
- End Select
- End Sub
- Sub NFadeLmm(nr, object) ' used for multiple lights
- Select Case FadingLevel(nr)
- Case 4:object.state = 0
- Case 5:object.state = 1
- End Select
- End Sub
- Sub NFadeLma(nr, object) ' used for multiple lights
- Select Case FadingLevel(nr)
- Case 4:object.state = 0
- Case 5:object.state = 1
- End Select
- End Sub
- Sub NFadeLmb(nr, object) ' used for multiple lights
- Select Case FadingLevel(nr)
- Case 4:object.state = 0
- Case 5:object.state = 1
- End Select
- End Sub
- Sub NFadeLmc(nr, object) ' used for multiple lights
- Select Case FadingLevel(nr)
- Case 4:object.state = 0
- Case 5:object.state = 1
- End Select
- End Sub
- '*********************************************************************
- '* VPX RAMP & PRIMITIVE LIGHTS ***************************************
- '*********************************************************************
- Sub FadeObj(nr, object, a, b, c, d)
- Select Case FadingLevel(nr)
- Case 4:object.image = b:FadingLevel(nr) = 6 'fading to off...
- Case 5:object.image = a:FadingLevel(nr) = 1 'ON
- Case 6, 7, 8:FadingLevel(nr) = FadingLevel(nr) + 1 'wait
- Case 9:object.image = c:FadingLevel(nr) = FadingLevel(nr) + 1 'fading...
- Case 10, 11, 12:FadingLevel(nr) = FadingLevel(nr) + 1 'wait
- Case 13:object.image = d:FadingLevel(nr) = 0 'Off
- End Select
- End Sub
- Sub FadeObjm(nr, object, a, b, c, d)
- Select Case FadingLevel(nr)
- Case 4:object.image = b
- Case 5:object.image = a
- Case 9:object.image = c
- Case 13:object.image = d
- End Select
- End Sub
- Sub NFadeObj(nr, object, a, b)
- Select Case FadingLevel(nr)
- Case 4:object.image = b:FadingLevel(nr) = 0 'off
- Case 5:object.image = a:FadingLevel(nr) = 1 'on
- End Select
- End Sub
- Sub NFadeObjm(nr, object, a, b)
- Select Case FadingLevel(nr)
- Case 4:object.image = b
- Case 5:object.image = a
- End Select
- End Sub
- '*********************************************************************
- '* VPX FLASHER OBJECTS ***********************************************
- '*********************************************************************
- Sub SetFlash(nr, stat)
- FadingLevel(nr) = ABS(stat)
- End Sub
- Sub Flash(nr, object)
- Select Case FadingLevel(nr)
- Case 4 'off
- FlashLevel(nr) = FlashLevel(nr) - FlashSpeedDown(nr)
- If FlashLevel(nr) < FlashMin(nr) Then
- FlashLevel(nr) = FlashMin(nr)
- FadingLevel(nr) = 0 'completely off
- End if
- Object.IntensityScale = FlashLevel(nr)
- Case 5 ' on
- FlashLevel(nr) = FlashLevel(nr) + FlashSpeedUp(nr)
- If FlashLevel(nr) > FlashMax(nr) Then
- FlashLevel(nr) = FlashMax(nr)
- FadingLevel(nr) = 1 'completely on
- End if
- Object.IntensityScale = FlashLevel(nr)
- End Select
- End Sub
- Sub Flashm(nr, object) 'multiple flashers, it just sets the flashlevel
- Object.IntensityScale = FlashLevel(nr)
- End Sub
- '*********************************************************************
- '* VPX REELS & TEXT *************************************************
- '*********************************************************************
- Sub FadeR(nr, object)
- Select Case FadingLevel(nr)
- Case 4:object.SetValue 1:FadingLevel(nr) = 6 'fading to off...
- Case 5:object.SetValue 0:FadingLevel(nr) = 1 'ON
- Case 6, 7, 8:FadingLevel(nr) = FadingLevel(nr) + 1 'wait
- Case 9:object.SetValue 2:FadingLevel(nr) = FadingLevel(nr) + 1 'fading...
- Case 10, 11, 12:FadingLevel(nr) = FadingLevel(nr) + 1 'wait
- Case 13:object.SetValue 3:FadingLevel(nr) = 0 'Off
- End Select
- End Sub
- Sub FadeRm(nr, object)
- Select Case FadingLevel(nr)
- Case 4:object.SetValue 1
- Case 5:object.SetValue 0
- Case 9:object.SetValue 2
- Case 3:object.SetValue 3
- End Select
- End Sub
- Sub NFadeT(nr, object, message)
- Select Case FadingLevel(nr)
- Case 4:object.Text = "":FadingLevel(nr) = 0
- Case 5:object.Text = message:FadingLevel(nr) = 1
- End Select
- End Sub
- Sub NFadeTm(nr, object, b)
- Select Case FadingLevel(nr)
- Case 4:object.Text = ""
- Case 5:object.Text = message
- End Select
- End Sub
- '*********************************************************************
- '* FLIPPER MODEL SYNC ************************************************
- '*********************************************************************
- Sub RightFlipperTimer_Timer:RightFlipperP.Rotz = RightFlipper.CurrentAngle:RightFlipperRubberP.Rotz = RightFlipper.CurrentAngle:End Sub
- Sub LeftFlipperTimer_Timer:LeftFlipperP.Rotz = LeftFlipper.CurrentAngle -180:LeftFlipperRubberP.Rotz = LeftFlipper.CurrentAngle -180:End Sub
- Sub Rdrophit_hit()
- vpmTimer.AddTimer 90, "RDrop.enabled = 1 '"
- End sub
- Sub RDrop_Hit()
- ActiveBall.VelZ = -2
- ActiveBall.VelY = 0
- ActiveBall.VelX = 0
- PlaySound "Stern_Balldrop1"
- RDrop.enabled = 0
- End Sub
- '*********************************************************************
- '* OBJECT SOUND EFFECTS **********************************************
- '*********************************************************************
- Sub Post1_Hit():Playsound "Stern_Posthit":End Sub
- Sub Post2_Hit():Playsound "Stern_Posthit":End Sub
- Sub Post3_Hit():Playsound "Stern_Posthit":End Sub
- Sub Post4_Hit():Playsound "RubberHit":End Sub
- Sub Post5_Hit():Playsound "RubberHit":End Sub
- Sub RightSlingRubber_Collide(parm):
- Ballspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If Ballspeed >5 then Playsound "RubberHit" End If:End Sub
- Sub LeftSlingRubber_Hit():Playsound "RubberHit":End Sub
- Sub LeftFlipper_Collide(parm):
- Ballspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If Ballspeed >5 then Playsound "RubberHit2" Else Playsound "RubberHitLow":End If:End Sub
- Sub RightFlipper_Collide(parm):
- Ballspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If Ballspeed >5 then Playsound "RubberHit2" Else Playsound "RubberHitLow":End If:End Sub
- '*********************************************************************
- '* BALL SOUND FUNCTIONS **********************************************
- '*********************************************************************
- Function Vol(ball) ' Calculates the Volume of the sound based on the ball speed
- Vol = Csng(BallVel(ball) ^2 / 2000)
- End Function
- Function Pan(ball) ' Calculates the pan for a ball based on the X position on the table. "TWD" is the name of the table
- Dim tmp
- tmp = ball.x * 2 / TWD.width-1
- If tmp > 0 Then
- Pan = Csng(tmp ^10)
- Else
- Pan = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function Pitch(ball) ' Calculates the pitch of the sound based on the ball speed
- Pitch = BallVel(ball) * 20
- End Function
- Function BallVel(ball) 'Calculates the ball speed
- BallVel = INT(SQR((ball.VelX ^2) + (ball.VelY ^2) ) )
- End Function
- '*********************************************************************
- '* JP VPX ROLLING SOUNDS *********************************************
- '*********************************************************************
- Const tnob = 5 ' total number of balls in this table is 4, but always use a higher number here because of the timing
- ReDim rolling(tnob)
- InitRolling
- Sub InitRolling
- Dim i
- For i = 0 to tnob
- rolling(i) = False
- Next
- End Sub
- Sub RollingUpdate()
- Dim BOT, b
- BOT = GetBalls
- ' stop the sound of deleted balls
- For b = UBound(BOT) + 1 to tnob
- rolling(b) = False
- StopSound("fx_ballrolling" & b)
- Next
- ' exit the sub if no balls on the table
- If UBound(BOT) = -1 Then Exit Sub
- ' play the rolling sound for each ball
- ' in this table we ignore the captive ball, it´s the 0
- For b = 0 to UBound(BOT)
- If BallVel(BOT(b) ) > 1 AND BOT(b).z < 30 Then
- rolling(b) = True
- PlaySound("fx_ballrolling" & b), -1, Vol(BOT(b) ), Pan(BOT(b) ), 0, Pitch(BOT(b) ), 1, 0
- Else
- If rolling(b) = True Then
- StopSound("fx_ballrolling" & b)
- rolling(b) = False
- End If
- End If
- Next
- End Sub
- '*********************************************************************
- '* BALL COLLISION SOUNDS *********************************************
- '*********************************************************************
- Sub OnBallBallCollision(ball1, ball2, velocity)
- PlaySound("fx_collide"), 0, Csng(velocity) ^2 / 2000, Pan(ball1), 0, Pitch(ball1), 0, 0
- End Sub
- '*********************************************************************
- '* REALTIME UPDATES **************************************************
- '*********************************************************************
- Set MotorCallback = GetRef("RealTimeUpdates")
- Sub RealTimeUpdates
- RollingUpdate
- End Sub
- '*********************************************************************
- '* MOD MENU **********************************************************
- '*********************************************************************
- '* REGISTERED LOCATIONS **********************************************
- Const optOpenAtStart = 1
- Const optExpr = 32
- Const optHitch = 64
- Const optWood = 128
- Const optBarn = 256
- Const optRamp = 512
- Const optFlip = 1024
- Const optCard = 2048
- Const optWell = 4096
- Const optRubb = 8192
- Const optFish = 16384
- Const optTank = 32768
- Const optBlade = 65536
- Const optSanc = 131072
- Const optTower = 262144
- '* MENU INIT *********************************************************
- Dim TableOptions, TableOptions2, TableName
- Private vpmShowDips1, vpmDips1, vpmDips2
- Sub InitializeOptions
- TableName="TWDP_VPX"
- Set vpmShowDips1 = vpmShowDips
- Set vpmShowDips = GetRef("TableShowDips")
- TableOptions = LoadValue(TableName,"Options")
- If TableOptions = "" Or optReset Then
- TableOptions = DefaultOptions
- TableShowOptions
- ElseIf (TableOptions And optOpenAtStart) Then
- TableOptions = TableOptions - optOpenAtStart
- TableShowOptions
- Else
- TableSetOptions
- End If
- End Sub
- Private Sub TableShowDips
- TableShowOptions
- End Sub
- Private Sub TableShowOptions
- Dim oldOptions : oldOptions = TableOptions
- Set vpmDips1 = New cvpmDips
- With vpmDips1
- .AddForm 1000, 1000, "THE WALKING DEAD - PAULOS MEZEL-MODS MENU"
- .AddLabel 0,10,250,30,"Choose your Mods you want to install on the Table."
- .AddLabel 0,25,250,30,"Please restart the Table for changes to take effect!"
- .AddFrameExtra 0,50,155,"Express Mart Mod",optExpr, Array("Install", 0, "Disabled", 32)
- .AddFrameExtra 0,100,155,"Hitchhiker Mod",optHitch, Array("Install", 0, "Disabled", 64)
- .AddFrameExtra 0,150,155,"Woodbury Mod",optWood, Array("Install", 0, "Disabled", 128)
- .AddFrameExtra 0,200,155,"Barn Mod", optBarn, Array("Install", 0, "Disabled", 256)
- .AddFrameExtra 0,250,155,"Well Walker Mod", optWell, Array("Install", 0, "Disabled", 4096)
- .AddFrameExtra 175,50,155,"Fish Tank Mod",optTank, Array("Install", 0, "Disabled", 32768)
- .AddFrameExtra 175,100,155,"Fish Tank Lights Only Mod",optFish, Array("Install", 0, "Disabled", 16384)
- .AddFrameExtra 175,150,155,"Pinblades Mod",optBlade, Array("Install", 0, "Disabled", 65536)
- .AddFrameExtra 175,200,155,"Bloody Ramp Decals Mod",optRamp, Array("Install", 0, "Disabled", 512)
- .AddFrameExtra 175,250,155,"Bloody Flippers Mod",optFlip, Array("Install", 0, "Disabled", 1024)
- .AddFrameExtra 350,50,155,"Prisontower Mod", optTower, Array("Install", 0, "Disabled", 262144)
- .AddFrameExtra 350,100,155,"No Sanctuary Mod", optSanc, Array("Install", 0, "Disabled", 131072)
- .AddFrameExtra 350,150,155,"Instruction and Coincard Mod", optCard, Array("Install", 0, "Stern Stock", 2048)
- .AddFrameExtra 350,200,155,"Flipper Rubber Color", optRubb, Array("Black", 0, "Red", 8192)
- .AddChkExtra 100,320,135, Array("Enable Menu Next Start", optOpenAtStart)
- End With
- TableOptions = vpmDips1.ViewDipsExtra(TableOptions)
- SaveValue TableName,"Options",TableOptions
- TableSetOptions
- End Sub
- '* MENU ENTRYS *******************************************************
- Sub TableSetOptions 'defines required settings before table is run
- Express = (TableOptions And optExpr)
- Hitch = (TableOptions And optHitch)
- Wood = (TableOptions And optWood)
- Barn = (TableOptions And optBarn)
- Ramp = (TableOptions And optRamp)
- Flip = (TableOptions And optFlip)
- Card = (TableOptions And optCard)
- Well = (TableOptions And optWell)
- Rubb = (TableOptions And optRubb)
- Fish = (TableOptions And optFish)
- Tank = (TableOptions And optTank)
- Blade = (TableOptions And optBlade)
- Sanc = (TableOptions And optSanc)
- Tower = (TableOptions And optTower)
- SaveValue TableName,"Options",TableOptions
- End Sub
- '* EXPRESS MART MOD **************************************************
- If Express = 32 Then
- MOD_ExpressMart.Visible = 0
- F28c.visible = 0
- End If
- If Express = 0 Then
- MOD_ExpressMart.Visible = 1
- F28c.visible = 1
- End If
- '* HITCHHIKER MOD ****************************************************
- If Hitch = 64 Then
- MOD_Hitchhiker.Visible = 0
- f26c.visible = 0
- End If
- If Hitch = 0 Then
- MOD_Hitchhiker.Visible = 1
- f26c.visible = 1
- End If
- '* WOODBURY MOD ******************************************************
- If wood = 128 Then
- MOD_Woodbury.Visible = 0
- l40a.visible = 0
- End If
- If wood = 0 Then
- MOD_Woodbury.Visible = 1
- l40a.visible = 1
- End If
- '* BARN MOD **********************************************************
- If Barn = 256 Then
- MOD_Barn.Visible = 0
- Barnfire1.visible = 0
- Barnfire2.visible = 0
- Barnfire3.visible = 0
- End If
- If Barn = 0 Then
- MOD_Barn.Visible = 1
- Barnfire1.visible = 1
- Barnfire2.visible = 1
- Barnfire3.visible = 1
- End If
- '* BLOODY FLIPPERS MOD **********************************************
- If Flip = 1024 Then
- RightFlipperP.image = "1_OBJ_FlipperYellow"
- LeftFlipperP.image = "1_OBJ_FlipperYellow"
- End If
- If Flip = 0 Then
- RightFlipperP.image = "3_MOD_BloodyFlipper"
- LeftFlipperP.image = "3_MOD_BloodyFlipper"
- End If
- '* INSTRUCTION AND COINCARD MOD **************************************
- If Card = 2048 Then
- InstCard.image = "1_OBJ_Cards"
- CoinCard.image = "1_OBJ_Cards"
- End If
- If Card = 0 Then
- InstCard.image = "3_MOD_Cards"
- CoinCard.image = "3_MOD_Cards"
- End If
- '* WELL WALKER MOD ***************************************************
- If Well = 4096 Then
- WellWalker.image = "2_OBJ_Wellwalker"
- Wellbase.image = "2_OBJ_Wellwalker"
- Wellbase.material = "Metal0.8"
- End If
- If Well = 0 Then
- WellWalker.image = "3_MOD_WellwalkerBelt"
- Wellbase.image = "3_MOD_WellwalkerBelt"
- Wellbase.material = "Glossy Target"
- End If
- '* FLIPPER RUBBER COLOR **********************************************
- If Rubb = 8192 Then
- LeftFlipperRubberP.image = "1_OBJ_FlipperRubber_Red"
- RightFlipperRubberP.image = "1_OBJ_FlipperRubber_Red"
- End If
- If Rubb = 0 Then
- LeftFlipperRubberP.image = "1_OBJ_FlipperRubber_Black"
- RightFlipperRubberP.image = "1_OBJ_FlipperRubber_Black"
- End If
- '* FISHTANK LIGHTS MOD ***********************************************
- If fish = 16384 Then
- l73b.visible=0
- l74b.visible=0
- l75b.visible=0
- End If
- If fish = 0 Then
- l73b.visible=1
- l74b.visible=1
- l75b.visible=1
- End If
- '* FISHTANK MOD ******************************************************
- If Tank = 32768 Then
- MOD_Fishtank.visible = 0
- MOD_Fishtank_Glass.Visible=0
- MOD_Fishtank_Body.Visible=0
- l73.visible=0
- l74.visible=0
- l75.visible=0
- l73a.visible=0
- l74a.visible=0
- l75a.visible=0
- f23.visible=0
- End If
- If Tank = 0 Then
- MOD_Fishtank.visible = 1
- MOD_Fishtank_Glass.Visible=1
- MOD_Fishtank_Body.Visible=1
- l73.visible=1
- l74.visible=1
- l75.visible=1
- l73a.visible=1
- l74a.visible=1
- l75a.visible=1
- f23.visible=1
- fish=16384
- End If
- '* PINBLADES MOD ****************************************************
- If Blade = 65536 Then
- MOD_Pinblade_Left.visible = 0
- MOD_Pinblade_Right.Visible=0
- End If
- If Blade = 0 Then
- MOD_Pinblade_Left.visible = 1
- MOD_Pinblade_Right.Visible=1
- End If
- '* SANCTUARY MOD ****************************************************
- If Sanc = 131072 Then
- MOD_Sanctuary.visible = 0
- End If
- If Sanc = 0 Then
- MOD_Sanctuary.visible = 1
- End If
- '* PRISONTOWER MOD ***************************************************
- If Tower = 262144 Then
- Mod_Tower.visible = 0
- End If
- If Tower = 0 Then
- Mod_Tower.visible = 1
- End If
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
- '* END OF TABLE SCRIPT ***********************************************
- '*********************************************************************
- '*********************************************************************
- '*********************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement