public N64SyncSettings Clone() { return(new N64SyncSettings { Core = Core, Rsp = Rsp, VideoPlugin = VideoPlugin, DisableExpansionSlot = DisableExpansionSlot, RicePlugin = RicePlugin.Clone(), GlidePlugin = GlidePlugin.Clone(), Glide64mk2Plugin = Glide64mk2Plugin.Clone(), GLideN64Plugin = GLideN64Plugin.Clone(), AngrylionPlugin = AngrylionPlugin.Clone(), Controllers = System.Array.ConvertAll(Controllers, a => a.Clone()) }); }
// get mupenapi internal object public VideoPluginSettings GetVPS(GameInfo game, int videoSizeX, int videoSizeY) { var ret = new VideoPluginSettings(VideoPlugin, videoSizeX, videoSizeY); IPluginSettings ips = null; switch (VideoPlugin) { // clone so per game hacks don't overwrite our settings object case PluginType.Glide: ips = GlidePlugin.Clone(); break; case PluginType.GlideMk2: ips = Glide64mk2Plugin.Clone(); break; case PluginType.Rice: ips = RicePlugin.Clone(); break; case PluginType.GLideN64: ips = GLideN64Plugin.Clone(); break; case PluginType.Angrylion: ips = AngrylionPlugin.Clone(); break; } ips.FillPerGameHacks(game); ret.Parameters = ips.GetPluginSettings(); return(ret); }