Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Randomize
- 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
- Const cGameName="raven",UseSolenoids=1,UseLamps=0,UseGI=0,SSolenoidOn="SolOn",SSolenoidOff="SolOff", SCoin="coin"
- LoadVPM "01120100","sys80.vbs",3.02
- Dim DesktopMode: DesktopMode = Table1.ShowDT
- If DesktopMode = True Then 'Show Desktop components
- Ramp16.visible=1
- Ramp15.visible=1
- Primitive13.visible=1
- Else
- Ramp16.visible=0
- Ramp15.visible=0
- Primitive13.visible=0
- End if
- '*************************************************************
- 'Solenoid Call backs
- '**********************************************************************************************************
- SolCallback(1)="TLB.SolDropUp" 'Drop Targets
- SolCallback(2)="TRB.SolDropUp" 'Drop Targets
- Solcallback(4) = "SetLamp 94,"
- SolCallback(5)="BLB.SolDropUp" 'Drop Targets
- SolCallback(6)="BRB.SolDropUp" 'Drop Targets
- Solcallback(7) = "SetLamp 97,"
- SolCallback(8)="vpmSolSound SoundFX(""Knocker"",DOFKnocker),"
- SolCallback(9)="bsTrough.SolOut"
- SolCallback(sLRFlipper) = "SolRFlipper"
- SolCallback(sLLFlipper) = "SolLFlipper"
- Sub SolLFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFX("fx_Flipperup",DOFContactors):LeftFlipper.RotateToEnd
- Else
- PlaySound SoundFX("fx_Flipperdown",DOFContactors):LeftFlipper.RotateToStart
- End If
- End Sub
- Sub SolRFlipper(Enabled)
- If Enabled Then
- PlaySound SoundFX("fx_Flipperup",DOFContactors):RightFlipper.RotateToEnd
- Else
- PlaySound SoundFX("fx_Flipperdown",DOFContactors):RightFlipper.RotateToStart
- End If
- End Sub
- '**********************************************************************************************************
- 'Solenoid Controlled toys
- '**********************************************************************************************************
- 'Playfield GI
- Sub PFGI(Enabled)
- If Enabled Then
- dim xx
- For each xx in GI:xx.State = 0: Next
- PlaySound "fx_relay"
- Timer1.Enabled = 0 'Aux Board 1
- Else
- For each xx in GI:xx.State = 1: Next
- PlaySound "fx_relay"
- Timer1.Enabled = 1 'Aux Board 1
- End If
- End Sub
- '**********************************************************************************************************
- 'Initiate Table
- '**********************************************************************************************************
- Dim bsTrough, TLB, BLB, TRB, BRB
- Sub Table1_Init
- vpmInit Me
- On Error Resume Next
- With Controller
- .GameName = cGameName
- If Err Then MsgBox "Can't start Game" & cGameName & vbNewLine & Err.Description : Exit Sub
- .SplashInfoLine = "Raven Gottlieb"&chr(13)&"You Suck"
- .HandleMechanics=0
- .HandleKeyboard=0
- .ShowDMDOnly=1
- .ShowFrame=0
- .ShowTitle=0
- .hidden = 1
- On Error Resume Next
- .Run GetPlayerHWnd
- If Err Then MsgBox Err.Description
- On Error Goto 0
- End With
- On Error Goto 0
- PinMAMETimer.Interval=PinMAMEInterval
- PinMAMETimer.Enabled=1
- vpmNudge.TiltSwitch=57
- vpmNudge.Sensitivity=5
- vpmNudge.TiltObj=Array(Bumper1,Bumper2,Bumper3,Bumper4,LeftSlingshot,RightSlingshot)
- Set bsTrough=New cvpmBallstack
- bsTrough.InitSw 0,67,0,0,0,0,0,0
- bsTrough.InitKick BallRelease,120,3
- bsTrough.InitExitSnd SoundFX("ballrelease",DOFContactors), SoundFX("Solenoid",DOFContactors)
- bsTrough.Balls=1
- Set TLB=New cvpmDropTarget
- TLB.InitDrop sw44,44
- TLB.InitSnd SoundFX("DTDrop",DOFContactors),SoundFX("DTReset",DOFContactors)
- Set TRB=New cvpmDropTarget
- TRB.InitDrop sw54,54
- TRB.InitSnd SoundFX("DTDrop",DOFContactors),SoundFX("DTReset",DOFContactors)
- Set BLB=New cvpmDropTarget
- BLB.InitDrop sw64,64
- BLB.InitSnd SoundFX("DTDrop",DOFContactors),SoundFX("DTReset",DOFContactors)
- Set BRB=New cvpmDropTarget
- BRB.InitDrop sw74,74
- BRB.InitSnd SoundFX("DTDrop",DOFContactors),SoundFX("DTReset",DOFContactors)
- End Sub
- '**********************************************************************************************************
- 'Plunger code
- '**********************************************************************************************************
- Sub Table1_KeyDown(ByVal KeyCode)
- If keycode = PlungerKey Then Plunger.Pullback:playsound"plungerpull"
- if keycode=leftflipperkey then controller.switch(6)=1
- if keycode=rightflipperkey then
- Controller.Switch(16)=1
- controller.switch(75)=1
- End If
- If KeyDownHandler(keycode) Then Exit Sub
- End Sub
- Sub Table1_KeyUp(ByVal KeyCode)
- If keycode = PlungerKey Then Plunger.Fire:PlaySound"plunger"
- if keycode=leftflipperkey then controller.switch(6)=0
- if keycode=rightflipperkey then
- Controller.Switch(16)=0
- controller.switch(75)=0
- End If
- If KeyUpHandler(keycode) Then Exit Sub
- End Sub
- '**********************************************************************************************************
- ' Drain hole and kickers
- Sub Drain_Hit:bsTrough.addball me : playsound"drain" : End Sub
- 'Drop Targets
- Sub sw44_Dropped:TLB.Hit 1:End Sub
- Sub sw54_Dropped:TRB.Hit 1:End Sub
- Sub sw64_Dropped:BLB.Hit 1:End Sub
- Sub sw74_Dropped:BRB.Hit 1:End Sub
- 'Stand Up Targets
- Sub sw40_hit:vpmTimer.pulseSw 40 : End Sub
- Sub sw50_hit:vpmTimer.pulseSw 50 : End Sub
- Sub sw60_hit:vpmTimer.pulseSw 60 : End Sub
- Sub sw70_hit:vpmTimer.pulseSw 70 : End Sub
- Sub sw41_Hit:VpmTimer.PulseSw 41 : End Sub
- Sub sw51_Hit:VpmTimer.PulseSw 51 : End Sub
- Sub sw61_Hit:VpmTimer.PulseSw 61 : End Sub
- Sub sw42_Hit:VpmTimer.PulseSw 42 : End Sub
- Sub sw52_Hit:VpmTimer.PulseSw 52 : End Sub
- Sub sw62_Hit:VpmTimer.PulseSw 62 : End Sub
- 'Scoring Rubber
- Sub sw45a_hit:vpmTimer.pulseSw 45 : playsound"flip_hit_3" : End Sub
- Sub sw45b_hit:vpmTimer.pulseSw 45 : playsound"flip_hit_3" : End Sub
- 'Bumpers
- Sub Bumper1_Hit : vpmTimer.PulseSw(46) : playsound SoundFX("fx_bumper1",DOFContactors): End Sub
- Sub Bumper2_Hit : vpmTimer.PulseSw(46) : playsound SoundFX("fx_bumper1",DOFContactors): End Sub
- Sub Bumper3_Hit : vpmTimer.PulseSw(46) : playsound SoundFX("fx_bumper1",DOFContactors): End Sub
- Sub Bumper4_Hit : vpmTimer.PulseSw(46) : playsound SoundFX("fx_bumper1",DOFContactors): End Sub
- 'Wire Triggers
- Sub SW43_Hit:Controller.Switch(43)=1 : playsound"rollover" : End Sub
- Sub SW43_unHit:Controller.Switch(43)=0:End Sub
- Sub SW53_Hit:Controller.Switch(53)=1 : playsound"rollover" : End Sub
- Sub SW53_unHit:Controller.Switch(53)=0:End Sub
- Sub sw55a_Hit:Controller.Switch(55)=1 : playsound"rollover" : End Sub
- Sub sw55a_unHit:Controller.Switch(55)=0:End Sub
- Sub sw55b_Hit:Controller.Switch(55)=1 : playsound"rollover" : End Sub
- Sub sw55b_UnHit:Controller.Switch(55)=0:End Sub
- Sub SW63_Hit:Controller.Switch(63)=1 : playsound"rollover" : End Sub
- Sub SW63_unHit:Controller.Switch(63)=0:End Sub
- Sub sw65a_Hit:Controller.Switch(65)=1 : playsound"rollover" : End Sub
- Sub sw65a_unHit:Controller.Switch(65)=0:End Sub
- Sub sw65b_Hit:Controller.Switch(65)=1 : playsound"rollover" : End Sub
- Sub sw65b_UnHit:Controller.Switch(65)=0:End Sub
- Sub sw71_Hit:Controller.Switch(71)=1 : playsound"rollover" : End Sub
- Sub sw71_unHit:Controller.switch(71)=0:End Sub
- Sub sw72_Hit:Controller.Switch(72)=1 : playsound"rollover" : End Sub
- Sub sw72_unHit:Controller.switch(72)=0:End Sub
- 'Gate Trigger
- Sub sw73_hit:vpmTimer.pulseSw 73 : End Sub
- 'Star Triggers
- Sub sw73a_Hit:Controller.Switch(73)=1 : playsound"rollover" : End Sub
- Sub sw73a_unHit:Controller.Switch(73)=0:End Sub
- 'Generic Sounds
- Sub Trigger1_Hit: playsound"fx_ballrampdrop" : End Sub
- Sub Trigger2_Hit: playsound"fx_ballrampdrop" : End Sub
- '***************************************************
- '***************************************************
- ' Blade animation based on spinner
- '***************************************************
- '***************************************************
- Sub sw76_Spin()
- vpmTimer.PulseSw 76
- playsound"fx_spinner"
- End Sub
- Const bladeStepMax = 40
- Const bladeRevsMax = 300
- Dim bladeRevs
- Randomize
- PrimBlades.Roty = rnd() * 360
- Sub spinnervelocity_hit()
- Dim vtemp
- vtemp = (int)(abs(activeball.vely))
- If vtemp > 8 Then
- bladeRevs = bladeRevsMax
- bladetimer.interval = 20
- bladetimer.enabled = 1
- End If
- End Sub
- Sub MotorChooper(Enabled)
- If Enabled Then 'Blade On when Light 2 is on
- bladeTimer.Enabled = 1
- Else
- bladeTimer.Enabled = 0
- End if
- End Sub
- Sub bladetimer_timer
- PrimBlades.Roty = (PrimBlades.Roty - bladeStepMax *(bladeRevs/bladeRevsMax)) MOD 360
- bladeRevs = bladeRevs - 1
- if bladeRevs = 0 Then bladeTimer.Enabled = 0
- End Sub
- '***************************************************
- '***************************************************
- ' ramp animation
- '***************************************************
- '***************************************************
- Ramp_Init
- Sub Ramp_Init
- Ramp_Move 0
- End Sub
- Sub Ramp_Move (Enabled)
- If Enabled = 1 Then 'Up
- Botramp.Collidable = False
- PlaySound SoundFX("flapopen",DOFContactors)
- AuxRampLamps = 0
- rampDir = 1
- Else 'Down
- Botramp.Collidable = True
- PlaySound SoundFX("flapclose",DOFContactors)
- AuxRampLamps = 1
- rampDir = -1
- End If
- Timer2.Enabled = 0 'Aux Board 2
- rampMoveTimer.Enabled = 1
- End Sub
- Const rampMoveMax = 16
- Dim rampDir
- rampMoveTimer.Interval = 10
- Sub rampMoveTimer_Timer
- Dim tempa
- tempa = ramp.objrotx + 1 * rampDir
- if tempa > rampMoveMax then
- tempa = rampMoveMax
- rampMoveTimer.Enabled = 0
- elseif tempa < 0 then
- tempa = 0
- rampMoveTimer.Enabled = 0
- end if
- ramp.objrotx = tempa: arm.objrotx = -tempa*1.25
- End Sub
- '***************************************************
- ' Aux Board Logic
- '***************************************************
- Dim AuxRampLamps1, AuxLampCount1
- Sub Timer1_Timer
- AuxLampCount1 = (AuxLampCount1 + 1) Mod 10
- Select Case AuxLampCount1
- Case 0:
- SetLamp 101, 1: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 1:
- SetLamp 101, 0: SetLamp 102,1:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 2:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,1:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 3:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 1: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 4:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,1:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 5:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 1: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 6:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,1:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,0
- Case 7:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 1: SetLamp 109,0: SetLamp 110,0
- Case 8:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,1: SetLamp 110,0
- Case 9:
- SetLamp 101, 0: SetLamp 102,0:SetLamp 103,0:SetLamp 104, 0: SetLamp 105,0:SetLamp 106, 0: SetLamp 107,0:SetLamp 108, 0: SetLamp 109,0: SetLamp 110,1
- End Select
- End Sub
- Dim AuxRampLamps, AuxLampCount
- Sub Timer2_Timer
- AuxLampCount = (AuxLampCount + 1) Mod 11
- Select Case AuxLampCount
- Case 0:
- SetLamp 111, 1: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 1:
- SetLamp 111, 0: SetLamp 112, 1: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 3:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 1 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 4:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 1 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 5:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 1 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 6:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 1 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 7:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 1 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 0
- Case 8:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 1 : SetLamp 119, 0 : SetLamp 120, 0
- Case 9:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 1 : SetLamp 120, 0
- Case 10:
- SetLamp 111, 0: SetLamp 112, 0: SetLamp 113, 0 : SetLamp 114, 0 : SetLamp 115, 0 : SetLamp 116, 0 : SetLamp 117, 0 : SetLamp 118, 0 : SetLamp 119, 0 : SetLamp 120, 1
- End Select
- End Sub
- '***************************************************
- ' JP's VP10 Fading Lamps & Flashers
- ' Based on PD's Fading Light System
- ' SetLamp 0 is Off
- ' SetLamp 1 is On
- ' fading for non opacity objects is 4 steps
- '***************************************************
- 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 = 5 '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
- 'Special Handling
- If chgLamp(ii,0) = 2 Then MotorChooper chgLamp(ii,1)
- If chgLamp(ii,0) = 4 Then PFGI chgLamp(ii,1)
- If (chgLamp(ii,0) = 12 And chgLamp(ii,1) = 1) Then TLB.Hit 1
- If (chgLamp(ii,0) = 13 And chgLamp(ii,1) = 1) Then TRB.Hit 1
- If (chgLamp(ii,0) = 14 And chgLamp(ii,1) = 1) Then BLB.Hit 1
- If (chgLamp(ii,0) = 15 And chgLamp(ii,1) = 1) Then BRB.Hit 1
- If chgLamp(ii,0) = 16 Then Ramp_Move chgLamp(ii,1)
- Next
- End If
- UpdateLamps
- End Sub
- Sub UpdateLamps
- 'NFadeL 0, l0 'Game Over Relay
- 'NFadeL 1, l1 'Tilt Relay
- 'NFadeL 2, Light2 'Chopper Motor Relay
- NFadeL 3, l3
- 'NFadeL 4, Light4 'GI Relay
- NFadeL 5, l5
- NFadeL 6, l6
- NFadeL 7, l7
- NFadeL 8, l8
- NFadeL 9, l9
- NFadeL 10, l10
- NFadeL 11, l11
- ' NFadeL 12, l12 'Drop Target hit when lit
- ' NFadeL 13, l13 'Drop Target hit when lit
- ' NFadeL 14, l14 'Drop Target hit when lit
- ' NFadeL 15, l15 'Drop Target hit when lit
- ' NFadeL 16, l16 'Drop Target hit when lit
- NFadeL 17, l17
- NFadeLm 18, l18a 'Custom light for Chopper
- 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
- NFadeL 40, l40
- NFadeL 41, l41
- NFadeL 42, l42
- NFadeL 43, l43
- NFadeL 44, l44
- NFadeL 45, l45
- NFadeL 46, l46
- NFadeL 47, l47
- NFadeL 51, l51
- 'Solenoid Controlled Flashers
- NFadeLm 94, f94
- NFadeL 97, f94a
- ' Aux lights
- NFadeL 101, AM1
- NFadeL 102, AM2
- NFadeL 103, AM3
- NFadeL 104, AM4
- NFadeL 105, AM5
- NFadeL 106, AM6
- NFadeL 107, AM7
- NFadeL 108, AM8
- NFadeL 109, AM9
- NFadeL 110, AM10
- NFadeL 111, AL1
- NFadeL 112, AL2
- NFadeL 113, AL3
- NFadeL 114, AL4
- NFadeL 115, AL5
- NFadeL 116, AL6
- NFadeL 117, AL7
- NFadeL 118, AL8
- NFadeL 119, AL9
- NFadeL 120, AL10
- End Sub
- ' div 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.4 ' faster speed when turning on the flasher
- FlashSpeedDown(x) = 0.2 ' 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
- ' Lights: used for VP10 standard lights, the fading is handled by VP itself
- 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
- 'Lights, Ramps & Primitives used as 4 step fading lights
- 'a,b,c,d are the images used from on to off
- 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
- ' Flasher objects
- 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
- '**********************************************************************************************************
- 'Digital Display
- '**********************************************************************************************************
- Dim Digits(40)
- Digits(0)=Array(a00, a05, a0c, a0d, a08, a01, a06, a0f, a02, a03, a04, a07, a0b, a0a, a09, a0e)
- Digits(1)=Array(a10, a15, a1c, a1d, a18, a11, a16, a1f, a12, a13, a14, a17, a1b, a1a, a19, a1e)
- Digits(2)=Array(a20, a25, a2c, a2d, a28, a21, a26, a2f, a22, a23, a24, a27, a2b, a2a, a29, a2e)
- Digits(3)=Array(a30, a35, a3c, a3d, a38, a31, a36, a3f, a32, a33, a34, a37, a3b, a3a, a39, a3e)
- Digits(4)=Array(a40, a45, a4c, a4d, a48, a41, a46, a4f, a42, a43, a44, a47, a4b, a4a, a49, a4e)
- Digits(5)=Array(a50, a55, a5c, a5d, a58, a51, a56, a5f, a52, a53, a54, a57, a5b, a5a, a59, a5e)
- Digits(6)=Array(a60, a65, a6c, a6d, a68, a61, a66, a6f, a62, a63, a64, a67, a6b, a6a, a69, a6e)
- Digits(7)=Array(a70, a75, a7c, a7d, a78, a71, a76, a7f, a72, a73, a74, a77, a7b, a7a, a79, a7e)
- Digits(8)=Array(a80, a85, a8c, a8d, a88, a81, a86, a8f, a82, a83, a84, a87, a8b, a8a, a89, a8e)
- Digits(9)=Array(a90, a95, a9c, a9d, a98, a91, a96, a9f, a92, a93, a94, a97, a9b, a9a, a99, a9e)
- Digits(10)=Array(aa0, aa5, aac, aad, aa8, aa1, aa6, aaf, aa2, aa3, aa4, aa7, aab, aaa, aa9, aae)
- Digits(11)=Array(ab0, ab5, abc, abd, ab8, ab1, ab6, abf, ab2, ab3, ab4, ab7, abb, aba, ab9, abe)
- Digits(12)=Array(ac0, ac5, acc, acd, ac8, ac1, ac6, acf, ac2, ac3, ac4, ac7, acb, aca, ac9, ace)
- Digits(13)=Array(ad0, ad5, adc, add, ad8, ad1, ad6, adf, ad2, ad3, ad4, ad7, adb, ada, ad9, ade)
- Digits(14)=Array(ae0, ae5, aec, aed, ae8, ae1, ae6, aef, ae2, ae3, ae4, ae7, aeb, aea, ae9, aee)
- Digits(15)=Array(af0, af5, afc, afd, af8, af1, af6, aff, af2, af3, af4, af7, afb, afa, af9, afe)
- Digits(16)=Array(b00, b05, b0c, b0d, b08, b01, b06, b0f, b02, b03, b04, b07, b0b, b0a, b09, b0e)
- Digits(17)=Array(b10, b15, b1c, b1d, b18, b11, b16, b1f, b12, b13, b14, b17, b1b, b1a, b19, b1e)
- Digits(18)=Array(b20, b25, b2c, b2d, b28, b21, b26, b2f, b22, b23, b24, b27, b2b, b2a, b29, b2e)
- Digits(19)=Array(b30, b35, b3c, b3d, b38, b31, b36, b3f, b32, b33, b34, b37, b3b, b3a, b39, b3e)
- Digits(20)=Array(b40, b45, b4c, b4d, b48, b41, b46, b4f, b42, b43, b44, b47, b4b, b4a, b49, b4e)
- Digits(21)=Array(b50, b55, b5c, b5d, b58, b51, b56, b5f, b52, b53, b54, b57, b5b, b5a, b59, b5e)
- Digits(22)=Array(b60, b65, b6c, b6d, b68, b61, b66, b6f, b62, b63, b64, b67, b6b, b6a, b69, b6e)
- Digits(23)=Array(b70, b75, b7c, b7d, b78, b71, b76, b7f, b72, b73, b74, b77, b7b, b7a, b79, b7e)
- Digits(24)=Array(b80, b85, b8c, b8d, b88, b81, b86, b8f, b82, b83, b84, b87, b8b, b8a, b89, b8e)
- Digits(25)=Array(b90, b95, b9c, b9d, b98, b91, b96, b9f, b92, b93, b94, b97, b9b, b9a, b99, b9e)
- Digits(26)=Array(ba0, ba5, bac, bad, ba8, ba1, ba6, baf, ba2, ba3, ba4, ba7, bab, baa, ba9, bae)
- Digits(27)=Array(bb0, bb5, bbc, bbd, bb8, bb1, bb6, bbf, bb2, bb3, bb4, bb7, bbb, bba, bb9, bbe)
- Digits(28)=Array(bc0, bc5, bcc, bcd, bc8, bc1, bc6, bcf, bc2, bc3, bc4, bc7, bcb, bca, bc9, bce)
- Digits(29)=Array(bd0, bd5, bdc, bdd, bd8, bd1, bd6, bdf, bd2, bd3, bd4, bd7, bdb, bda, bd9, bde)
- Digits(30)=Array(be0, be5, bec, bed, be8, be1, be6, bef, be2, be3, be4, be7, beb, bea, be9, bee)
- Digits(31)=Array(bf0, bf5, bfc, bfd, bf8, bf1, bf6, bff, bf2, bf3, bf4, bf7, bfb, bfa, bf9, bfe)
- Digits(32)=Array(ac18, ac16, acc1, acd1, ac19, ac17, ac15, acf1, ac11, ac13, ac12, ac14, acb1, aca1, ac10, ace1)
- Digits(33)=Array(ad18, ad16, adc1, add1, ad19, ad17, ad15, adf1, ad11, ad13, ad12, ad14, adb1, ada1, ad10, ade1)
- Digits(34)=Array(ae18, ae16, aec1, aed1, ae19, ae17, ae15, aef1, ae11, ae13, ae12, ae14, aeb1, aea1, ae10, aee1)
- Digits(35)=Array(af18, af16, afc1, afd1, af19, af17, af15, aff1, af11, af13, af12, af14, afb1, afa1, af10, afe1)
- Digits(36)=Array(b9, b7, b0c1, b0d1, b100, b8, b6, b0f1, b2, b4, b3, b5, b0b1, b0a1, b1,b0e1)
- Digits(37)=Array(b109, b107, b1c1, b1d1, b110, b108, b106, b1f1, b102, b104, b103, b105, b1b1, b1a1, b101,b1e1)
- Digits(38)=Array(b119, b117, b2c1, b2d1, b120, b118, b116, b2f1, b112, b114, b113, b115, b2b1, b2a1, b111, b2e1)
- Digits(39)=Array(b129, b127, b3c1, b3d1, b130, b128, b126, b3f1, b122, b3b1, b123, b125, b3b1, b3a1, b121, b3e1)
- Sub DisplayTimer_Timer
- Dim ChgLED, ii, jj, num, chg, stat, obj, b, x
- ChgLED=Controller.ChangedLEDs(&Hffffffff, &Hffffffff)
- If Not IsEmpty(ChgLED)Then
- If DesktopMode = True Then
- For ii=0 To UBound(chgLED)
- num=chgLED(ii, 0) : chg=chgLED(ii, 1) : stat=chgLED(ii, 2)
- if (num < 40) then
- For Each obj In Digits(num)
- If chg And 1 Then obj.State=stat And 1
- chg=chg\2 : stat=stat\2
- Next
- Else
- end if
- Next
- end if
- End If
- End Sub
- '**********************************************************************************************************
- '**********************************************************************************************************
- 'Gottlieb Raven
- 'added by Inkochnito
- Sub editDips
- Dim vpmDips : Set vpmDips = New cvpmDips
- With vpmDips
- .AddForm 700,400,"Raven - DIP switches"
- .AddFrame 2,4,190,"Maximum credits",49152,Array("8 credits",0,"10 credits",32768,"15 credits",&H00004000,"20 credits",49152)'dip 15&16
- .AddFrame 2,80,190,"Coin chute 1 and 2 control",&H00002000,Array("seperate",0,"same",&H00002000)'dip 14
- .AddFrame 2,126,190,"Playfield special",&H00200000,Array("replay",0,"extra ball",&H00200000)'dip 22
- .AddFrame 2,172,190,"High games to date control",&H00000020,Array("no effect",0,"reset high games 2-5 on power off",&H00000020)'dip 6
- .AddFrame 2,218,190,"Enable Snipers on completing",&H40000000,Array("all 6 bottom targets",0,"either 3 left or 3 right bottom targets",&H40000000)'dip 31
- .AddFrame 2,264,190,"Sniper special control",&H80000000,Array("special on all 4 Snipers hit",0,"Special on any 3 Sinpers hit",&H80000000)'dip 32
- .AddFrame 205,4,190,"High game to date awards",&H00C00000,Array("not displayed and no award",0,"displayed and no award",&H00800000,"displayed and 2 replays",&H00400000,"displayed and 3 replays",&H00C00000)'dip 23&24
- .AddFrame 205,80,190,"Balls per game",&H01000000,Array("5 balls",0,"3 balls",&H01000000)'dip 25
- .AddFrame 205,126,190,"Replay limit",&H04000000,Array("no limit",0,"one per game",&H04000000)'dip 27
- .AddFrame 205,172,190,"Novelty",&H08000000,Array("normal",0,"extra ball and replay scores points",&H08000000)'dip 28
- .AddFrame 205,218,190,"Game mode",&H10000000,Array("replay",0,"extra ball",&H10000000)'dip 29
- .AddFrame 205,264,190,"3rd coin chute credits control",&H20000000,Array("no effect",0,"add 9",&H20000000)'dip 30
- .AddChk 2,316,120,Array("Match feature",&H02000000)'dip 26
- .AddChk 205,316,120,Array("Attract sound",&H00000040)'dip 7
- .AddLabel 50,335,300,20,"After hitting OK, press F3 to reset game with new settings."
- .ViewDips
- End With
- End Sub
- Set vpmShowDips = GetRef("editDips")
- '**********************************************************************************************************
- '**********************************************************************************************************
- ' Start of VPX functions
- '**********************************************************************************************************
- '**********************************************************************************************************
- '**********Sling Shot Animations
- ' Rstep and Lstep are the variables that increment the animation
- '****************
- Dim RStep, Lstep
- Sub RightSlingShot_Slingshot
- VpmTimer.PulseSw 45
- PlaySound SoundFX("right_slingshot",DOFContactors), 0, 1, 0.05, 0.05
- RSling.Visible = 0
- RSling1.Visible = 1
- sling1.TransZ = -20
- RStep = 0
- RightSlingShot.TimerEnabled = 1
- End Sub
- Sub RightSlingShot_Timer
- Select Case RStep
- Case 3:RSLing1.Visible = 0:RSLing2.Visible = 1:sling1.TransZ = -10
- Case 4:RSLing2.Visible = 0:RSLing.Visible = 1:sling1.TransZ = 0:RightSlingShot.TimerEnabled = 0:
- End Select
- RStep = RStep + 1
- End Sub
- Sub LeftSlingShot_Slingshot
- VpmTimer.PulseSw 45
- PlaySound SoundFX("left_slingshot",DOFContactors),0,1,-0.05,0.05
- LSling.Visible = 0
- LSling1.Visible = 1
- sling2.TransZ = -20
- LStep = 0
- LeftSlingShot.TimerEnabled = 1
- End Sub
- Sub LeftSlingShot_Timer
- Select Case LStep
- Case 3:LSLing1.Visible = 0:LSLing2.Visible = 1:sling2.TransZ = -10
- Case 4:LSLing2.Visible = 0:LSLing.Visible = 1:sling2.TransZ = 0:LeftSlingShot.TimerEnabled = 0:
- End Select
- LStep = LStep + 1
- End Sub
- '*********************************************************************
- ' Positional Sound Playback Functions
- '*********************************************************************
- ' Play a sound, depending on the X,Y position of the table element (especially cool for surround speaker setups, otherwise stereo panning only)
- ' parameters (defaults): loopcount (1), volume (1), randompitch (0), pitch (0), useexisting (0), restart (1))
- ' Note that this will not work (currently) for walls/slingshots as these do not feature a simple, single X,Y position
- Sub PlayXYSound(soundname, tableobj, loopcount, volume, randompitch, pitch, useexisting, restart)
- PlaySound soundname, loopcount, volume, AudioPan(tableobj), randompitch, pitch, useexisting, restart, AudioFade(tableobj)
- End Sub
- ' Similar subroutines that are less complicated to use (e.g. simply use standard parameters for the PlaySound call)
- Sub PlaySoundAt(soundname, tableobj)
- PlaySound soundname, 1, 1, AudioPan(tableobj), 0,0,0, 1, AudioFade(tableobj)
- End Sub
- Sub PlaySoundAtBall(soundname)
- PlaySoundAt soundname, ActiveBall
- End Sub
- '*********************************************************************
- ' Supporting Ball & Sound Functions
- '*********************************************************************
- Function AudioFade(tableobj) ' Fades between front and back of the table (for surround systems or 2x2 speakers, etc), depending on the Y position on the table. "table1" is the name of the table
- Dim tmp
- tmp = tableobj.y * 2 / table1.height-1
- If tmp > 0 Then
- AudioFade = Csng(tmp ^10)
- Else
- AudioFade = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function AudioPan(tableobj) ' Calculates the pan for a tableobj based on the X position on the table. "table1" is the name of the table
- Dim tmp
- tmp = tableobj.x * 2 / table1.width-1
- If tmp > 0 Then
- AudioPan = Csng(tmp ^10)
- Else
- AudioPan = Csng(-((- tmp) ^10) )
- End If
- End Function
- Function Vol(ball) ' Calculates the Volume of the sound based on the ball speed
- Vol = Csng(BallVel(ball) ^2 / 2000)
- 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's VP10 Rolling Sounds
- '*****************************************
- Const tnob = 5 ' total number of balls
- ReDim rolling(tnob)
- InitRolling
- Sub InitRolling
- Dim i
- For i = 0 to tnob
- rolling(i) = False
- Next
- End Sub
- Sub RollingTimer_Timer()
- 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
- 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)), AudioPan(BOT(b)), 0, Pitch(BOT(b)), 1, 0, AudioFade(BOT(b))
- Else
- If rolling(b) = True Then
- StopSound("fx_ballrolling" & b)
- rolling(b) = False
- End If
- End If
- Next
- End Sub
- '**********************
- ' Ball Collision Sound
- '**********************
- Sub OnBallBallCollision(ball1, ball2, velocity)
- PlaySound("fx_collide"), 0, Csng(velocity) ^2 / 2000, AudioPan(ball1), 0, Pitch(ball1), 0, 0, AudioFade(ball1)
- End Sub
- '*****************************************
- ' ninuzzu's FLIPPER SHADOWS
- '*****************************************
- sub FlipperTimer_Timer()
- FlipperLSh.RotZ = LeftFlipper.currentangle
- FlipperRSh.RotZ = RightFlipper.currentangle
- LFLogo.roty = LeftFlipper.currentangle + 0
- RFLogo.roty = RightFlipper.currentangle + 0
- End Sub
- '*****************************************
- ' ninuzzu's BALL SHADOW
- '*****************************************
- Dim BallShadow
- BallShadow = Array (BallShadow1,BallShadow2,BallShadow3,BallShadow4,BallShadow5)
- Sub BallShadowUpdate_timer()
- Dim BOT, b
- BOT = GetBalls
- ' hide shadow of deleted balls
- If UBound(BOT)<(tnob-1) Then
- For b = (UBound(BOT) + 1) to (tnob-1)
- BallShadow(b).visible = 0
- Next
- End If
- ' exit the Sub if no balls on the table
- If UBound(BOT) = -1 Then Exit Sub
- ' render the shadow for each ball
- For b = 0 to UBound(BOT)
- If BOT(b).X < Table1.Width/2 Then
- BallShadow(b).X = ((BOT(b).X) - (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) + 6
- Else
- BallShadow(b).X = ((BOT(b).X) + (Ballsize/6) + ((BOT(b).X - (Table1.Width/2))/7)) - 6
- End If
- ballShadow(b).Y = BOT(b).Y + 12
- If BOT(b).Z > 20 Then
- BallShadow(b).visible = 1
- Else
- BallShadow(b).visible = 0
- End If
- Next
- End Sub
- '************************************
- ' What you need to add to your table
- '************************************
- ' a timer called RollingTimer. With a fast interval, like 10
- ' one collision sound, in this script is called fx_collide
- ' as many sound files as max number of balls, with names ending with 0, 1, 2, 3, etc
- ' for ex. as used in this script: fx_ballrolling0, fx_ballrolling1, fx_ballrolling2, fx_ballrolling3, etc
- '******************************************
- ' Explanation of the rolling sound routine
- '******************************************
- ' sounds are played based on the ball speed and position
- ' the routine checks first for deleted balls and stops the rolling sound.
- ' The For loop goes through all the balls on the table and checks for the ball speed and
- ' if the ball is on the table (height lower than 30) then then it plays the sound
- ' otherwise the sound is stopped, like when the ball has stopped or is on a ramp or flying.
- ' The sound is played using the VOL, AUDIOPAN, AUDIOFADE and PITCH functions, so the volume and pitch of the sound
- ' will change according to the ball speed, and the AUDIOPAN & AUDIOFADE functions will change the stereo position
- ' according to the position of the ball on the table.
- '**************************************
- ' Explanation of the collision routine
- '**************************************
- ' The collision is built in VP.
- ' You only need to add a Sub OnBallBallCollision(ball1, ball2, velocity) and when two balls collide they
- ' will call this routine. What you add in the sub is up to you. As an example is a simple Playsound with volume and paning
- ' depending of the speed of the collision.
- Sub Pins_Hit (idx)
- PlaySound "pinhit_low", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall)
- End Sub
- Sub Targets_Hit (idx)
- PlaySound "target", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 0, 0, AudioFade(ActiveBall)
- End Sub
- Sub Metals_Thin_Hit (idx)
- PlaySound "metalhit_thin", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Metals_Medium_Hit (idx)
- PlaySound "metalhit_medium", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Metals2_Hit (idx)
- PlaySound "metalhit2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Gates_Hit (idx)
- PlaySound "gate4", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Sub
- Sub Spinner_Spin
- PlaySound "fx_spinner", 0, .25, AudioPan(Spinner), 0.25, 0, 0, 1, AudioFade(Spinner)
- End Sub
- Sub Rubbers_Hit(idx)
- dim finalspeed
- finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If finalspeed > 20 then
- PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End if
- If finalspeed >= 6 AND finalspeed <= 20 then
- RandomSoundRubber()
- End If
- End Sub
- Sub Posts_Hit(idx)
- dim finalspeed
- finalspeed=SQR(activeball.velx * activeball.velx + activeball.vely * activeball.vely)
- If finalspeed > 16 then
- PlaySound "fx_rubber2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End if
- If finalspeed >= 6 AND finalspeed <= 16 then
- RandomSoundRubber()
- End If
- End Sub
- Sub RandomSoundRubber()
- Select Case Int(Rnd*3)+1
- Case 1 : PlaySound "rubber_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 2 : PlaySound "rubber_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 3 : PlaySound "rubber_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Select
- End Sub
- Sub LeftFlipper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub RightFlipper_Collide(parm)
- RandomSoundFlipper()
- End Sub
- Sub RandomSoundFlipper()
- Select Case Int(Rnd*3)+1
- Case 1 : PlaySound "flip_hit_1", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 2 : PlaySound "flip_hit_2", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- Case 3 : PlaySound "flip_hit_3", 0, Vol(ActiveBall), AudioPan(ActiveBall), 0, Pitch(ActiveBall), 1, 0, AudioFade(ActiveBall)
- End Select
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement