public NesDeck(INesPort Left, INesPort Right, Func <int, int, bool> PPUCallback) { this.Left = Left; this.Right = Right; List <ControlDefUnMerger> cdum; Definition = ControllerDefMerger.GetMerged(new[] { Left.GetDefinition(), Right.GetDefinition() }, out cdum); LeftU = cdum[0]; RightU = cdum[1]; // apply hacks // if this list gets very long, then something should be changed // if it stays short, then no problem if (Left is FourScore) { (Left as FourScore).RightPort = false; } if (Right is FourScore) { (Right as FourScore).RightPort = true; } if (Left is IZapper) { (Left as IZapper).PPUCallback = PPUCallback; } if (Right is IZapper) { (Right as IZapper).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; } }