private void InnerStruct(Device device, EventManager em, PPDGameUtility gameutility, int[] keychange, PPDEffectManager ppdem, CMarkImagePaths imagepathes, PPDFramework.Resource.ResourceManager resourceManager) { this.device = device; this.gameutility = gameutility; this.em = em; this.keychange = keychange; this.ppdem = ppdem; this.imagepathes = imagepathes; this.resourceManager = resourceManager; cd = new ConnectionDrawer(device, 4); evals = new float[] { PPDSetting.Setting.CoolArea, PPDSetting.Setting.GoodArea, PPDSetting.Setting.SafeArea, PPDSetting.Setting.SadArea }; adjustgaptime = PPDSetting.Setting.AdjustGapTime; CreateResource(); }
public override void Load() { if (!Param.ContainsKey("PPDGameUtility")) { throw new PPDException(PPDExceptionType.SkinIsNotCorrectlyImplemented); } ppdgameutility = Param["PPDGameUtility"] as PPDGameUtility; currentLatency = ppdgameutility.SongInformation.Latency; if (Param.ContainsKey("ExitOnReturn")) { exitonreturn = true; } if (Param.ContainsKey("StartTime")) { ppdgameutility.IsDebug = true; startTime = (float)Param["StartTime"] - 3; mmStartTime = (float)Param["StartTime"]; } else if (Param.ContainsKey("StartTimeEx")) { ppdgameutility.IsDebug = true; startTime = (float)Param["StartTimeEx"]; mmStartTime = (float)Param["StartTimeEx"]; } else { startTime = ppdgameutility.SongInformation.StartTime; mmStartTime = startTime; } black = new PictureObject("img\\default\\black.png", 0, 0, false, ResourceManager, Device); black.Alpha = 0; black.Hidden = true; string moviefile = ppdgameutility.SongInformation.MoviePath; #if x64 if (Path.GetExtension(moviefile) == ".mp4") { PlatformGap = 0.03f; } #endif if (moviefile != "") { m = GameHost.GetMovie(moviefile); try { if (m.Initialize() == -1) { throw new PPDException(PPDExceptionType.CannotOpenMovie); } readmoviesetting(); initialized = true; } catch (Exception e) { MessageBox.Show(e.Message); initialized = false; ReturnToMenu(); return; } } else { MessageBox.Show("No moviefile"); black.Hidden = false; if (exitonreturn) { Application.Exit(); } else { ReturnToMenu(); return; } } keychange = new int[(int)ButtonType.Start]; for (int i = 0; i < keychange.Length; i++) { keychange[i] = i; } if (ppdgameutility.Random) { randomchange(); } readprofile(); hm = new HoldManager(Device, ResourceManager); hm.ScoreGained += new HoldManager.GainScoreEventHandler(hm_ScoreGained); ppdem = new PPDEffectManager(Device, ResourceManager); km = new KasiManager(ppdgameutility); km.KasiChanged += new KasiManager.KasiChangeEventHandler(km_KasiChanged); cgi = GameHost.GetCGameInterface(); cgi.PPDGameUtility = ppdgameutility; cgi.ResourceManager = ResourceManager; cgi.Load(); sm = new SoundManager(Sound as ExSound, ppdgameutility); if (ppdgameutility.SongInformation.IsOld) { em = new EventManager(ppdgameutility); mm = new MarkManager(Device, em, ppdgameutility, keychange, ppdem, GameHost.GetMarkImagePath(), ResourceManager); } else { string path = Path.Combine(ppdgameutility.SongInformation.DirectoryPath, DifficultyUtility.ConvertDifficulty(ppdgameutility.Difficulty) + ".ppd"); PackReader reader = new PackReader(path); PPDPackStreamReader ppdpsr = reader.Read("evd"); em = new EventManager(ppdgameutility, ppdpsr); ppdpsr.Close(); ppdpsr = reader.Read("ppd"); mm = new MarkManager(Device, em, ppdgameutility, keychange, ppdem, GameHost.GetMarkImagePath(), ppdpsr, ResourceManager); ppdpsr.Close(); reader.Close(); } grm = new GameResultManager(); gr = GameHost.GetGameResult(); gr.PPDGameUtility = ppdgameutility; gr.ResourceManager = ResourceManager; gr.TweetManager = this; gr.Load(); pd = GameHost.GetPauseMenu(); pd.PPDGameUtility = ppdgameutility; pd.ResourceManager = ResourceManager; pd.Load(); pd.Resumed += new EventHandler(pd_Resumed); pd.Retryed += new EventHandler(pd_Retryed); pd.Returned += new EventHandler(pd_Returned); pd.LatencyChanged += new ChangeLatencyEventHandler(pd_LatencyChanged); gr.Retryed += new EventHandler(this.Retry); gr.Returned += new EventHandler(this.Return); mm.ChangeCombo += new MarkManager.ChangeComboHandler(mm_ChangeCombo); mm.PlaySound += new MarkManager.SpecialSoundHandler(this.SpecialPlaySound); mm.StopSound += new MarkManager.SpecialSoundHandler(this.SpecialStopSound); mm.EvaluateCount += new MarkManager.EvaluateCountHandler(this.EvaluateCount); mm.PressingButton += new MarkManager.PressingButtonHandler(mm_PressingButton); em.ChangeMovieVolume += new EventManager.VolumeHandler(ChangeMovieVolume); //seek mm.Seek(mmStartTime); em.Seek(startTime > 0 ? startTime : 0); sm.Seek(startTime); km.Seek(startTime); if (m != null && m.Initialized) { m.Play(); m.Pause(); m.Seek(startTime); } if (startTime < 0) { waitingmoviestart = true; lasttime = Win32API.timeGetTime(); } else { if (m != null && m.Initialized) { m.Play(); } } this.AddChild(black); }
public MarkManager(Device device, EventManager em, PPDGameUtility gameutility, int[] keychange, PPDEffectManager ppdem, CMarkImagePaths imagepathes, Stream stream, PPDFramework.Resource.ResourceManager resourceManager) { InnerStruct(device, em, gameutility, keychange, ppdem, imagepathes, resourceManager); readppddata(stream); CheckGroups(); readppddata(gameutility.SongInformation.StartTime); }