public FamicomDeck(IFamicomExpansion ExpSlot, LightgunDelegate PPUCallback) { Player3 = ExpSlot; Definition = ControllerDefinitionMerger.GetMerged( new[] { Player1.GetDefinition(), Player2.GetDefinition(), Player3.GetDefinition() }, out var cdum); Definition.BoolButtons.Add("P2 Microphone"); Player1U = cdum[0]; Player2U = cdum[1]; Player3U = cdum[2]; // hack if (Player3 is Zapper) { (Player3 as Zapper).PPUCallback = PPUCallback; } }
public IControllerDeck Instantiate(Func <int, int, bool> PPUCallback) { if (Famicom) { IFamicomExpansion exp = (IFamicomExpansion)Activator.CreateInstance(FamicomExpansions[FamicomExpPort]); IControllerDeck ret = new FamicomDeck(exp, PPUCallback); return(ret); } else { INesPort left = (INesPort)Activator.CreateInstance(NesPortDevices[NesLeftPort]); INesPort right = (INesPort)Activator.CreateInstance(NesPortDevices[NesRightPort]); IControllerDeck ret = new NesDeck(left, right, PPUCallback); return(ret); } }
public FamicomDeck(IFamicomExpansion expSlot, LightgunDelegate ppuCallback) { _player3 = expSlot; _definition = ControllerDefinitionMerger.GetMerged( new[] { _player1.GetDefinition(), _player2.GetDefinition(), _player3.GetDefinition() }, out var cdum); _definition.BoolButtons.Add("P2 Microphone"); _player1U = cdum[0]; _player2U = cdum[1]; _player3U = cdum[2]; // hack if (_player3 is Zapper zapper) { zapper.PPUCallback = ppuCallback; } }
public FamicomDeck(IFamicomExpansion ExpSlot, Func <int, int, bool> PPUCallback) { Player3 = ExpSlot; List <ControlDefUnMerger> cdum; Definition = ControllerDefMerger.GetMerged( new[] { Player1.GetDefinition(), Player2.GetDefinition(), Player3.GetDefinition() }, out cdum); Definition.BoolButtons.Add("P2 Microphone"); Player1U = cdum[0]; Player2U = cdum[1]; Player3U = cdum[2]; // hack if (Player3 is Zapper) { (Player3 as Zapper).PPUCallback = PPUCallback; } }