|
| 1 | +// Visual Pinball Engine |
| 2 | +// Copyright (C) 2021 freezy and VPE Team |
| 3 | +// |
| 4 | +// This program is free software: you can redistribute it and/or modify |
| 5 | +// it under the terms of the GNU General Public License as published by |
| 6 | +// the Free Software Foundation, either version 3 of the License, or |
| 7 | +// (at your option) any later version. |
| 8 | +// |
| 9 | +// This program is distributed in the hope that it will be useful, |
| 10 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 | +// GNU General Public License for more details. |
| 13 | +// |
| 14 | +// You should have received a copy of the GNU General Public License |
| 15 | +// along with this program. If not, see <https://www.gnu.org/licenses/>. |
| 16 | + |
| 17 | +using System; |
| 18 | +using VisualPinball.Engine.Common; |
| 19 | +using VisualPinball.Engine.Game.Engines; |
| 20 | +using VisualPinball.Engine.PinMAME.MPUs; |
| 21 | +using VisualPinball.Engine.VPT.Trough; |
| 22 | + |
| 23 | +namespace VisualPinball.Engine.PinMAME.Games |
| 24 | +{ |
| 25 | + [Serializable] |
| 26 | + public class CreatureFromTheBlackLagoon : Wpc |
| 27 | + { |
| 28 | + public override string Name { get; } = "Creature From The Black Lagoon"; |
| 29 | + public override string Id { get; } = "cftbl"; |
| 30 | + public override int Year { get; } = 1992; |
| 31 | + public override string Manufacturer { get; } = "Bally"; |
| 32 | + public override int IpdbId { get; } = 588; |
| 33 | + public override PinMameRom[] Roms { get; } = { |
| 34 | + new PinMameRom("cftbl_l4", "L-4"), |
| 35 | + new PinMameRom("cftbl_p3", "P-3", "Prototype, SP-1"), |
| 36 | + new PinMameRom("cftbl_l2", "L-2"), |
| 37 | + new PinMameRom("cftbl_d2", "D-2", "LED Ghost Fix"), |
| 38 | + new PinMameRom("cftbl_l3", "L-3"), |
| 39 | + new PinMameRom("cftbl_d3", "D-3", "LED Ghost Fix"), |
| 40 | + new PinMameRom("cftbl_d4", "D-4", "LED Ghost Fix"), |
| 41 | + new PinMameRom("cftbl_l4c", "L-4C", "Competition + LED Ghost MOD"), |
| 42 | + }; |
| 43 | + |
| 44 | + protected override GamelogicEngineSwitch[] Switches { get; } = { |
| 45 | + new GamelogicEngineSwitch("13") { Description = "Start Button", InputActionHint = InputConstants.ActionStartGame }, |
| 46 | + new GamelogicEngineSwitch("14") { Description = "Plumb Bolt Tilt" }, |
| 47 | + new GamelogicEngineSwitch("15") { Description = "Top Left Rollover" }, |
| 48 | + new GamelogicEngineSwitch("16") { Description = "Left Subway" }, |
| 49 | + new GamelogicEngineSwitch("17") { Description = "Center Subway" }, |
| 50 | + new GamelogicEngineSwitch("18") { Description = "Center Shot" }, |
| 51 | + |
| 52 | + new GamelogicEngineSwitch("21") { Description = "Slam Tilt", InputActionHint = InputConstants.ActionSlamTilt }, |
| 53 | + new GamelogicEngineSwitch("22") { Description = "Coin Door Closed", NormallyClosed = true, InputActionHint = InputConstants.ActionCoinDoorOpenClose }, |
| 54 | + new GamelogicEngineSwitch("24") { Description = "Always Closed", ConstantHint = SwitchConstantHint.AlwaysClosed}, |
| 55 | + new GamelogicEngineSwitch("25") { Description = "(P)-A-I-D"}, |
| 56 | + new GamelogicEngineSwitch("26") { Description = "P-(A)-I-D" }, |
| 57 | + new GamelogicEngineSwitch("27") { Description = "P-A-(I)-D" }, |
| 58 | + new GamelogicEngineSwitch("28") { Description = "P-A-I-(D)" }, |
| 59 | + |
| 60 | + new GamelogicEngineSwitch("33") { Description = "Bottom Jet" }, |
| 61 | + new GamelogicEngineSwitch("34") { Description = "Right Popper" }, |
| 62 | + new GamelogicEngineSwitch("35") { Description = "Right Ramp Enter" }, |
| 63 | + new GamelogicEngineSwitch("36") { Description = "Left Ramp Enter" }, |
| 64 | + new GamelogicEngineSwitch("37") { Description = "Lower Right Popper" }, |
| 65 | + new GamelogicEngineSwitch("38") { Description = "Ramp Up/Down" }, |
| 66 | + |
| 67 | + new GamelogicEngineSwitch("41") { Description = "Cola" }, |
| 68 | + new GamelogicEngineSwitch("42") { Description = "Hot Dog" }, |
| 69 | + new GamelogicEngineSwitch("43") { Description = "Popcorn" }, |
| 70 | + new GamelogicEngineSwitch("44") { Description = "Ice Cream" }, |
| 71 | + new GamelogicEngineSwitch("45") { Description = "Left Jet" }, |
| 72 | + new GamelogicEngineSwitch("46") { Description = "Right Jet" }, |
| 73 | + new GamelogicEngineSwitch("47") { Description = "Left Slingshot" }, |
| 74 | + new GamelogicEngineSwitch("48") { Description = "Right Slingshot" }, |
| 75 | + |
| 76 | + new GamelogicEngineSwitch("51") { Description = "Left Out Lane" }, |
| 77 | + new GamelogicEngineSwitch("52") { Description = "Left Return Lane" }, |
| 78 | + new GamelogicEngineSwitch("53") { Description = "Start Combo" }, |
| 79 | + new GamelogicEngineSwitch("54") { Description = "Right Out Lane" }, |
| 80 | + new GamelogicEngineSwitch("55") { Description = "Outhole", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = Trough.EntrySwitchId }, |
| 81 | + new GamelogicEngineSwitch("56") { Description = "Right Trough", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = "1" }, |
| 82 | + new GamelogicEngineSwitch("57") { Description = "Center Trough", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = "2" }, |
| 83 | + new GamelogicEngineSwitch("58") { Description = "Left Trough", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = "3" }, |
| 84 | + |
| 85 | + new GamelogicEngineSwitch("61") { Description = "Right Ramp Exit" }, |
| 86 | + new GamelogicEngineSwitch("62") { Description = "Left Ramp Exit" }, |
| 87 | + new GamelogicEngineSwitch("63") { Description = "Center Lane Exit" }, |
| 88 | + new GamelogicEngineSwitch("64") { Description = "Upper Ramp" }, |
| 89 | + new GamelogicEngineSwitch("65") { Description = "Bowl" }, |
| 90 | + new GamelogicEngineSwitch("66") { Description = "Shooter" }, |
| 91 | + }; |
| 92 | + |
| 93 | + public override GamelogicEngineLamp[] AvailableLamps { get; } = { |
| 94 | + new GamelogicEngineLamp("11") { Description = "(P)-A-I-D" }, |
| 95 | + new GamelogicEngineLamp("12") { Description = "P-(A)-I-D" }, |
| 96 | + new GamelogicEngineLamp("13") { Description = "P-A-(I)-D" }, |
| 97 | + new GamelogicEngineLamp("14") { Description = "P-A-I-(D)" }, |
| 98 | + new GamelogicEngineLamp("15") { Description = "Left Jet" }, |
| 99 | + new GamelogicEngineLamp("16") { Description = "Right Jet" }, |
| 100 | + new GamelogicEngineLamp("17") { Description = "Bottom Jet" }, |
| 101 | + new GamelogicEngineLamp("18") { Description = "Admit One" }, |
| 102 | + |
| 103 | + new GamelogicEngineLamp("21") { Description = "(K)-I-S-S" }, |
| 104 | + new GamelogicEngineLamp("22") { Description = "K-(I)-S-S" }, |
| 105 | + new GamelogicEngineLamp("23") { Description = "K-I-(S)-S" }, |
| 106 | + new GamelogicEngineLamp("24") { Description = "K-I-S-(S)" }, |
| 107 | + new GamelogicEngineLamp("25") { Description = "10 Million" }, |
| 108 | + new GamelogicEngineLamp("26") { Description = "20 Million" }, |
| 109 | + new GamelogicEngineLamp("27") { Description = "30 Million" }, |
| 110 | + new GamelogicEngineLamp("28") { Description = "Specials" }, |
| 111 | + |
| 112 | + new GamelogicEngineLamp("31") { Description = "Start Mega Menu" }, |
| 113 | + new GamelogicEngineLamp("32") { Description = "Playground Award" }, |
| 114 | + new GamelogicEngineLamp("33") { Description = "Lite Big Millions" }, |
| 115 | + new GamelogicEngineLamp("34") { Description = "Slide" }, |
| 116 | + new GamelogicEngineLamp("35") { Description = "Right Search" }, |
| 117 | + new GamelogicEngineLamp("36") { Description = "Right Video" }, |
| 118 | + new GamelogicEngineLamp("37") { Description = "Right Start Movie" }, |
| 119 | + new GamelogicEngineLamp("38") { Description = "Mega Menu" }, |
| 120 | + |
| 121 | + new GamelogicEngineLamp("41") { Description = "Lips" }, |
| 122 | + new GamelogicEngineLamp("42") { Description = "Left Search" }, |
| 123 | + new GamelogicEngineLamp("43") { Description = "Left Video" }, |
| 124 | + new GamelogicEngineLamp("44") { Description = "Left Start Movie" }, |
| 125 | + new GamelogicEngineLamp("45") { Description = "Combo Award" }, |
| 126 | + new GamelogicEngineLamp("46") { Description = "Parking O.K." }, |
| 127 | + new GamelogicEngineLamp("47") { Description = "Move Your Car" }, |
| 128 | + new GamelogicEngineLamp("48") { Description = "Extra Ball" }, |
| 129 | + |
| 130 | + new GamelogicEngineLamp("51") { Description = "Snack Bar" }, |
| 131 | + new GamelogicEngineLamp("52") { Description = "Center Search" }, |
| 132 | + new GamelogicEngineLamp("53") { Description = "Cola" }, |
| 133 | + new GamelogicEngineLamp("54") { Description = "Hot Dog" }, |
| 134 | + new GamelogicEngineLamp("55") { Description = "Super Jackpot" }, |
| 135 | + new GamelogicEngineLamp("56") { Description = "Jackpot" }, |
| 136 | + new GamelogicEngineLamp("57") { Description = "Rescue" }, |
| 137 | + new GamelogicEngineLamp("58") { Description = "Multiball Restart" }, |
| 138 | + |
| 139 | + new GamelogicEngineLamp("61") { Description = "Free Pass" }, |
| 140 | + new GamelogicEngineLamp("62") { Description = "Build Combo" }, |
| 141 | + new GamelogicEngineLamp("63") { Description = "Unlimited Millions" }, |
| 142 | + new GamelogicEngineLamp("64") { Description = "Creature Feature" }, |
| 143 | + new GamelogicEngineLamp("65") { Description = "Extra Ball Countdown" }, |
| 144 | + new GamelogicEngineLamp("66") { Description = "Big Millions" }, |
| 145 | + new GamelogicEngineLamp("67") { Description = "Movie Madness" }, |
| 146 | + new GamelogicEngineLamp("68") { Description = "Snack Attack" }, |
| 147 | + |
| 148 | + new GamelogicEngineLamp("71") { Description = "C" }, |
| 149 | + new GamelogicEngineLamp("72") { Description = "R" }, |
| 150 | + new GamelogicEngineLamp("73") { Description = "E" }, |
| 151 | + new GamelogicEngineLamp("74") { Description = "A" }, |
| 152 | + new GamelogicEngineLamp("75") { Description = "T" }, |
| 153 | + new GamelogicEngineLamp("76") { Description = "U" }, |
| 154 | + new GamelogicEngineLamp("77") { Description = "R" }, |
| 155 | + new GamelogicEngineLamp("78") { Description = "E" }, |
| 156 | + |
| 157 | + new GamelogicEngineLamp("81") { Description = "(F)-I-L-M" }, |
| 158 | + new GamelogicEngineLamp("82") { Description = "F-(I)-L-M" }, |
| 159 | + new GamelogicEngineLamp("83") { Description = "F-I-(L)-M" }, |
| 160 | + new GamelogicEngineLamp("84") { Description = "F-I-L-(M)" }, |
| 161 | + new GamelogicEngineLamp("85") { Description = "Start Combo" }, |
| 162 | + new GamelogicEngineLamp("86") { Description = "Popcorn" }, |
| 163 | + new GamelogicEngineLamp("87") { Description = "Ice Cream" }, |
| 164 | + new GamelogicEngineLamp("88") { Description = "Start Button" } |
| 165 | + }; |
| 166 | + |
| 167 | + protected override GamelogicEngineCoil[] GameCoils { get; } = { |
| 168 | + new GamelogicEngineCoil("01", 1) { Description = "Top Right Popper" }, |
| 169 | + new GamelogicEngineCoil("02", 2) { Description = "Left Subway Enter Flasher", IsLamp = true }, |
| 170 | + new GamelogicEngineCoil("03", 3) { Description = "Lower Right Popper" }, |
| 171 | + new GamelogicEngineCoil("04", 4) { Description = "Trough Eject", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = Trough.EjectCoilId }, |
| 172 | + new GamelogicEngineCoil("05", 5) { Description = "Right Slingshot" }, |
| 173 | + new GamelogicEngineCoil("06", 6) { Description = "Left Slingshot" }, |
| 174 | + new GamelogicEngineCoil("07", 7) { Description = "Knocker" }, |
| 175 | + new GamelogicEngineCoil("08", 8) { Description = "Bottom Right Flasher", IsLamp = true }, |
| 176 | + new GamelogicEngineCoil("09", 9) { Description = "Back Flashers", IsLamp = true }, |
| 177 | + new GamelogicEngineCoil("10") { Description = "Bowl Flasher", IsLamp = true }, |
| 178 | + new GamelogicEngineCoil("11") { Description = "Creature Flasher", IsLamp = true }, |
| 179 | + new GamelogicEngineCoil("12") { Description = "Outhole", DeviceHint = "^Trough\\s*\\d?", DeviceItemHint = Trough.EntryCoilId }, |
| 180 | + new GamelogicEngineCoil("13") { Description = "Left Jet" }, |
| 181 | + new GamelogicEngineCoil("14") { Description = "Right Jet" }, |
| 182 | + new GamelogicEngineCoil("15") { Description = "Bottom Jet" }, |
| 183 | + new GamelogicEngineCoil("16") { Description = "Right Popper Flasher", IsLamp = true }, |
| 184 | + new GamelogicEngineCoil("17") { Description = "Bottom Left Flasher", IsLamp = true }, |
| 185 | + new GamelogicEngineCoil("18") { Description = "Right Ramp Flasher", IsLamp = true }, |
| 186 | + new GamelogicEngineCoil("19") { Description = "Left Ramp Flasher", IsLamp = true }, |
| 187 | + new GamelogicEngineCoil("20") { Description = "Sequential GI #1", IsLamp = true }, |
| 188 | + new GamelogicEngineCoil("21") { Description = "Hologram Push Motor (playfield)" }, |
| 189 | + new GamelogicEngineCoil("22") { Description = "Center Hole Flasher", IsLamp = true }, |
| 190 | + new GamelogicEngineCoil("23") { Description = "Up/Down Ramp (up)" }, |
| 191 | + new GamelogicEngineCoil("24") { Description = "Sequential GI #2", IsLamp = true }, |
| 192 | + new GamelogicEngineCoil("25") { Description = "Start Move Flashers", IsLamp = true }, |
| 193 | + new GamelogicEngineCoil("26") { Description = "Up/Down Ramp (down)" }, |
| 194 | + new GamelogicEngineCoil("27") { Description = "Creature Motor (mirror)" }, |
| 195 | + new GamelogicEngineCoil("28") { Description = "Hologram Lamp (cabinet)", IsLamp = true }, |
| 196 | + }; |
| 197 | + } |
| 198 | +} |
0 commit comments