Skip to content

Commit 075493a

Browse files
jsm174freezy
authored andcommitted
games: Add CFTBL (Creature From The Black Lagoon)
1 parent 8191be6 commit 075493a

File tree

2 files changed

+199
-0
lines changed

2 files changed

+199
-0
lines changed

VisualPinball.Engine.PinMAME.Unity/Editor/PinMameGamelogicEngineInspector.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ private void OnEnable()
5050
_gle = (PinMameGamelogicEngine) target;
5151
_games = new PinMameGame[] {
5252
new AttackFromMars(),
53+
new CreatureFromTheBlackLagoon(),
5354
new MedievalMadness(),
5455
new Terminator2(),
5556
new FlashGordon(),
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
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

Comments
 (0)