// Rect test; public override void OnLoad(EventArgs e) { Game.stopMedia = false; base.OnLoad(e); // AviManager am = new AviManager("vid1.avi", true); // VideoStream vs = am.GetVideoStream(); // test = new Rect(new Rectangle(0, 0, 300, 300), FrameGrabber.GetFrameFromVideo("vid1.avi", .2)); //vs.GetFrameOpen(); //vs.GetBitmap() // Console.WriteLine(vs.StreamInfo.dwLength); // vs.GetFrameClose(); Animation preload = new Animation(new Rectangle(0, 0, 0, 0), 100, "holdBurst", 3, true, true); // ircl = new Client.irc.IrcClient("lol"); logo = new Rect(new Rectangle(Config.ResWidth / 2 - (710 / 2), 20, 710, 519), "skin\\Pulse-LogoText.png"); startText = new Label(game, new Rectangle(new Point(0, 0), new Size(0, 0)), "pulse alpha version " + Config.Version); SizeF temp = startText.TextTexture.getStringSize(); Button optionsButton = new Button(game, new Rectangle((Config.ResWidth / 2) - 150, 768 / 2 + 240, 300, 60), "Options", delegate(int data) { // new Thread(new ThreadStart(openOptions)).Start(); new Options().ShowDialog(); }, true, true, Color.LawnGreen); Button exitButton = new Button(game, new Rectangle((Config.ResWidth / 2) - 150, 768 / 2 + 305, 300, 60), "Exit", delegate(int data) { game.Exit(); }, true, true, Color.Cyan); Button playButton = new Button(game, new Rectangle(Config.ResWidth / 2 - 150, 768 / 2 + 110, 300, 60), "Play", delegate(int data) { play(true); }, true, true, Color.Red); Button editButton = new Button(game, new Rectangle(Config.ResWidth / 2 - 150, 768 / 2 + 175, 300, 60), "Edit", delegate(int data) { play(false); }, true, true, Color.Blue); avatarbutton = new Button(game, new Rectangle(Utils.getMX(700), 0, 300, 100), "\tLogin", delegate(int data) { new Pulse.UI.LoginDialog().ShowDialog(); // downloadAvatar(); }); UIComponents.Add(avatarbutton); startText.TextTexture.Location = new Point(Config.ResWidth / 2 - ((int)temp.Width / 2), 0); startText.TextTexture.TextureSize = new Size((int)temp.Width, (int)temp.Height); bg = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); bg.Colour = new OpenTK.Graphics.Color4(0.4f, 0.4f, 0.4f, 1.0f); bg.useTexture("skin\\Pulse-LogoText.png"); bg2 = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); bg2.Colour = new OpenTK.Graphics.Color4(0.4f, 0.4f, 0.4f, 1.0f); bg2.useTexture("skin\\Pulse-LogoText.png"); bg2.Alpha = 0.3f; bg3 = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); bg3.Colour = new OpenTK.Graphics.Color4(1.0f, 1.0f, 1.0f, 1.0f); bg3.useTexture("skin\\Pulse-MenuBG.png"); bg4 = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); bg4.Colour = new OpenTK.Graphics.Color4(1.0f, 1.0f, 1.0f, 1.0f); bg4.useTexture("skin\\Pulse-MenuOverlay.png"); website = new Button(game, new Rectangle(0, 768 - 53, 360, 53), "", delegate(int data) { if (!Game.pbox.expanded) { System.Diagnostics.Process.Start("http://p.ulse.net"); } }, Skin.skindict["websiteText"]); setMarquee(); UIComponents.Add(startText); UIComponents.Add(optionsButton); UIComponents.Add(playButton); UIComponents.Add(editButton); //UIComponents.Add(nowp); UIComponents.Add(exitButton); // pbox = new PTextBox(game, new Rectangle(0, 768-300, Utils.getMX(1024), 290), "", ircl); //UIComponents.Add(pbox); //UIComponents.Add(skipForwardButton); //UIComponents.Add(togglePauseButton); Game.conn.recvPacket += new Action<short, Client.RecievePacket>(conn_recvPacket); //downloadAvatar(); }
public override void OnLoad(EventArgs e) { base.OnLoad(e); panel.Colour = new OpenTK.Graphics.Color4(0.3f, 0.3f, 0.3f, 0.0f); dim.Colour = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.0f); fsw.EnableRaisingEvents = true; fsw.IncludeSubdirectories = true; fsw.Created += new FileSystemEventHandler(fsw_Created); fsw.Changed += new FileSystemEventHandler(fsw_Created); fsw.Deleted += new FileSystemEventHandler(fsw_Deleted); fsw.Error += new ErrorEventHandler(fsw_Error); fsw.InternalBufferSize = 61440; //lets handle large changes ;D SongLibrary.cacheSongInfo(); game.KeyPress += new EventHandler<OpenTK.KeyPressEventArgs>(game_KeyPress); bgoverlay.Colour = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.5f); searchLabel = new Label(game, new Point(0, 700), ""); searchLabel.TextTexture.Shadow = true; searchInfoL = new Label(game, new Point(0, 700), "type to begin search.."); //searchInfoL.TextTexture.Shadow = true; searchInfoL.TextTexture.Colour = Color.White; onlineToggle = new ToggleButton(game, new Rectangle(Utils.getMX(780), 130, 50, 40), "O", delegate(int data) { Config.LocalScores = !Config.LocalScores; updateScoreLabels(0); }); prevPage = new Button(game, new Rectangle(Utils.getMX(835), 130, 50, 40), "<<", delegate(int data) { if(displayScores != null && scoreDisplayPage > 0) { scoreDisplayPage--; updateScoreLabels(scoreDisplayPage); } }); nextPage = new Button(game, new Rectangle(Utils.getMX(890), 130, 50, 40), ">>", delegate(int data) { if (displayScores != null && displayScores.Count > 0) //if count was 0 maxpage would be -1 { int maxpage = displayScores.Count / 8; if (displayScores.Count % 8 > 0) //if there's a remainder that means theres some extra scores to display so need new page { maxpage++; } maxpage--; //remember, scoredisplaypage is 0 based! if (scoreDisplayPage < maxpage) { scoreDisplayPage++; updateScoreLabels(scoreDisplayPage); /*if (scoreDisplayPage == maxpage) //finish later, faulty to have in a place like this { nextPage.Visible = false; nextPage.Enabled = false; }*/ } } }); if (!Config.LocalScores) { ((ToggleButton)onlineToggle).toggle(); } UIComponents.Add(prevPage); UIComponents.Add(nextPage); UIComponents.Add(onlineToggle); calibrateButton = new Button(game, new Rectangle(70, 768 - 170, 200, 50), "Calibrate offset", delegate(int data) { int tIndex = 0; for (int x = 0; x < currentSong.Charts.Count; x++) { if (currentSong.Charts[x].Name.Equals(diffs.BaseText.Line)) { tIndex = x; } } IngameScreen temp = (IngameScreen)game.screens["ingameScreen"]; try { uint flags = 0; flags = flags | (uint)(nfB.Selected ? 1 : 0); flags = flags | (uint)(autoB.Selected ? 2 : 0); flags = flags | (uint)(mirB.Selected ? 4 : 0); flags = flags | (uint)(hdB.Selected ? 8 : 0); temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex, new Mods() { Speed = dtB.Selected ? 1.5 : 1.0, Flags = flags, Scroll = Config.PlaySpeed }, null, IngameScreen.PlayType.PLAY); Music.stop(); Game.setScreen(game.screens["ingameScreen"]); temp.Calibrate = true; game.Title = "Pulse | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]"; } catch (Exception ex) { ErrorLog.log(ex); } }); calibrateButton.Visible = false; calibrateButton.Enabled = false; // int backpos = Config.ResWidth - 244;//Config.WideScreen? (int)((780d/1024d) * game.Width) : 780; backLabel = new Button(game, new Rectangle(Utils.getMX(780), 10, 220, 50), "Back", delegate(int data) { Game.setScreen(game.screens["menuScreen"]); }); help = new Button(game, new Rectangle(Utils.getMX(780), 130, 220, 50), "Help", delegate(int data) { new EditorHelp().ShowDialog(); Game.resetStates(); }); UIComponents.Add(help); newSongb = new Button(game, new Rectangle(Utils.getMX(780), 70, 220, 50), "New Song", delegate(int data) { new NewSong().ShowDialog(); Game.resetStates(); }); // UIComponents.Add(searchLabel); UIComponents.Add(backLabel); UIComponents.Add(newSongb); #region obsolete /*difficultyTexts[0] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0)); difficultyTexts[0].Update("3key"); difficultyTexts[0].Shadow = true; difficultyTexts[1] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0)); difficultyTexts[1].Update("4key"); difficultyTexts[1].Shadow = true; difficultyTexts[2] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0)); difficultyTexts[2].Update("6key"); difficultyTexts[2].Shadow = true; difficultyTexts[3] = new Text(Config.ClientSize, new Size(300, 33), new Point(0, 0)); difficultyTexts[3].Update("7key"); difficultyTexts[3].Shadow = true;*/ #endregion refresh(); index = 0; for (int x = 0; x < songNameList.Count; x++) { if (songNameList[x].Info.SongName.Equals(Game.M.CurrentSong.SongName) && songNameList[x].Info.Dir.Equals(Game.M.CurrentSong.Dir)) { index = x; } } changeSong(); selectionTexture = new Rect(new Rectangle(2, 250, 548, 28)); sel2 = new Rect(new Rectangle(0, 249, 552, 30)); searchBox = new Rect(new Rectangle(0, 700, Config.ResWidth, 30)); searchBox.Colour = new OpenTK.Graphics.Color4(0.27f, 0.509f, 0.705f, .8f); cover = new Rect(new Rectangle(Config.ResWidth - 300, 0, 300, 768)); cover.Colour = new OpenTK.Graphics.Color4(1f, 1f, 1f, .7f); scorebg = new Rect(new Rectangle((int)(Config.ResWidth - 324), 180, 295, 600), Skin.skindict["scoreback"]); sel2.Colour = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 1.0f); selectionTexture.Colour = new OpenTK.Graphics.Color4(0.25f, 0.0f, 1.0f, 1.0f); background = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); currentSong = SongLibrary.loadSong(songNameList[index].Info); string bgString = ""; if (currentSong.FileVersion == 0) { bgString = currentSong.BgName; } else { bgString = currentSong.Charts[0].BgName; } background.useTexture("songs\\" + currentSong.Dir + "\\" + bgString); music = AudioManager.loadFromFile("songs\\" + currentSong.Dir + "\\" + currentSong.FileName); Music.Volume = 0.0f; targetVolume = Config.Volume / 100.0f; changed = true; Music.PositionAsMilli = (long)Game.M.Music.PositionAsMilli; Music.play(false, true); if (play) { game.Title = "Pulse | Play Selection"; newSongb.Enabled = false; newSongb.Visible = false; help.Enabled = false; help.Visible = false; } else { game.Title = "Pulse | Edit Selection"; newSongb.Enabled = true; newSongb.Visible = true; } updateDiffs(); updateScoreLabels(0); // changeSong(); // index = 0; for (int x = 0; x < songNameList.Count; x++) { // if (songNameList[x].textData.Location.Y != 246 + ((x - index) * 33) && !songNameList[x].textData.Moving) // { songNameList[x].select.Bounds = new Rectangle(0, 246 + ((x - index) * 90), songNameList[x].select.Bounds.Width, songNameList[x].select.Bounds.Height); // Console.WriteLine(songNameList[x].textData.Position. // } //Console.WriteLine("why"); List<string> t = new List<String>(); t.Add(" "); diffs = new DropDownBox(game, t, new Rectangle(70, 120, 150, 35)); diffs.selected += new Action<int>(diffs_selected); string tempS = ""; if (play) { tempS = "Play"; } else { tempS = "Edit"; } playButton = new Button(game, new Rectangle(290 + 220, 768 - 170, 200, 50), tempS, delegate(int data) { if (pickDiff) { int tIndex = 0; for (int x = 0; x < currentSong.Charts.Count; x++) { if (currentSong.Charts[x].Name.Equals(diffs.BaseText.Line)) { tIndex = x; } } /*if (Config.AutoPlay && play) { ReplayScreen temp = (ReplayScreen)game.screens["replayScreen"]; try { temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex); Game.M.setSong(songNameList[index].Info); Game.M.play(); Music.stop(); Game.setScreen(game.screens["replayScreen"]); game.Title = "Pulse | Watch replay | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]"; } catch { } } else */if (play) { IngameScreen temp = (IngameScreen)game.screens["ingameScreen"]; try { IngameScreen.PlayType te = IngameScreen.PlayType.PLAY; if (autoB.Selected) te = IngameScreen.PlayType.AUTO; uint flags = 0; flags = flags | (uint)(nfB.Selected ? 1 : 0); flags = flags | (uint)(autoB.Selected ? 2 : 0); flags = flags | (uint)(mirB.Selected ? 4 : 0); flags = flags | (uint)(hdB.Selected ? 8 : 0); temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex, new Mods() { Speed = dtB.Selected ? 1.5 : 1.0, Flags = flags, Scroll = Config.PlaySpeed }, null, te); Game.M.setSong(ref songNameList[index].Info); Game.M.play(); Music.stop(); temp.Calibrate = false; Game.setScreen(game.screens["ingameScreen"]); game.Title = "Pulse | " + currentSong.Artist + " - " + currentSong.SongName + " [" + currentSong.Charts[tIndex].Name + "]"; scoreDisplayText.Clear(); scoreDisplayPage = 1; } catch (Exception ex) { ErrorLog.log(ex); } } else if (!play) { EditorScreen temp = (EditorScreen)game.screens["editScreen"]; try { temp.loadSong(SongLibrary.loadSong(songNameList[index].Info), tIndex); Game.M.setSong(ref songNameList[index].Info); Game.M.play(); Music.stop(); Game.setScreen(game.screens["editScreen"]); } catch (KeyNotFoundException) { } game.Title = "Pulse|Editor|" + currentSong.Artist + "-" + currentSong.SongName + "[" + currentSong.Charts[tIndex].Name + "]"; } } }); autoB = new ToggleButton(game, new Rectangle(874 - 480, 120, 100, 40), "Auto", delegate(int data) { Config.AutoPlay = autoB.Selected; }); dtB = new ToggleButton(game, new Rectangle(874 - 370, 120, 100, 40), "DT", delegate(int data) { Config.Dt = dtB.Selected; if (Config.Dt) { Config.Ht = false; if (htB.Selected) { htB.toggle(); } } }); htB = new ToggleButton(game, new Rectangle(874 - 260, 120, 100, 40), "HT", delegate(int data) { Config.Ht = htB.Selected; if (Config.Ht) { Config.Dt = false; if (dtB.Selected) { dtB.toggle(); } } }); mirB = new ToggleButton(game, new Rectangle(874 - 480, 170, 100, 40), "Mirror", delegate(int data) { Config.Mirror = mirB.Selected; }); hdB = new ToggleButton(game, new Rectangle(874 - 370, 170, 100, 40), "HD", delegate(int data) { Config.Hidden = hdB.Selected; }); nfB = new ToggleButton(game, new Rectangle(874 - 260, 170, 100, 40), "No fail", delegate(int data) { Config.NoFail = nfB.Selected; }); closeSel = new Button(game, new Rectangle(290, 768 - 170, 200, 50), "Close", delegate(int data) { notPickDiffs(); }); rateLabel = new Label(game, new Point(874 - 460, 370), "Scroll speed: " + Config.PlaySpeed); rateDrag = new Dragbar(game, new Point(874-460, 400), 300, false, delegate(int d) { double temp = rateDrag.getPercentScrolled(); int x = (int)(temp / 10); Config.PlaySpeed = ((float)x / 2) + 0.5f; rateLabel.Text = "Scroll speed: " + Config.PlaySpeed; }); rateDrag.setPos(rateDrag.Bounds.X + (int)(Config.PlaySpeed * 20) + rateDrag.Bounds.Width / 10); game.Mouse.Move += new EventHandler<MouseMoveEventArgs>(Mouse_Move); }
private void initUI() { if (skip != null) { UIComponents.Remove(skip); } skip = new Button(game, new Rectangle(400, 350, 200, 50), "Skip", delegate(int data) { running = true; unpause(); music.PositionAsMilli = (long)startOffset - 2000; currentOffset = music.PositionAsMilli; skip.Visible = false; skip.Enabled = false; }); UIComponents.Add(skip); if (startOffset < 2000) { skip.Visible = false; skip.Enabled = false; } else { skip.Visible = true; skip.Enabled = true; } bg = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); if (currentSong.FileVersion == 0) { bg.useTexture("songs\\" + currentSong.Dir + "\\" + currentSong.BgName); music = AudioManager.loadFromFile("songs\\" + currentSong.Dir + "\\" + currentSong.FileName); } else { bg.useTexture("songs\\" + currentSong.Dir + "\\" + chart.BgName); music = AudioManager.loadFromFile("songs\\" + currentSong.Dir + "\\" + currentSong.FileName); //fix in future to load per chart } forceScores = false; failed = false; scores = false; running = false; paused = false; UIComponents.Clear(); score = new Score(); score.Flags = (int)mods.Flags; scoreFadeTime = 0; pulse = false; Config.Editing = false; Skin.PlayFrame = new Frame(Skin.FrameLoc, chart.Keys); frame = Skin.PlayFrame; setNoteOffsets(Skin.FrameLoc); tlContainer = new Rect(new Rectangle(Config.ResWidth - 605, 0, 605, 150), Skin.skindict["tlContainer"]); hpBar = new Rect(new Rectangle((int)frame.Location.X + (int)frame.Width, 0, 10, (int)frame.HitHeight)); adjustHp(0); overlay = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); overlay.Colour = new Color4(0.0f, 0.0f, 0.0f, 0.0f); glow = new Rect(new Rectangle((int)frame.Location.X, (int)frame.HitHeight - 43, (int)frame.Width, 40), Skin.skindict["keyLight"]); glow.Colour = Skin.PulseColour; for (int x = 0; x < lights.Length; x++) { presses[x] = new Rect(new Rectangle(frame.Location.X + frame.LaneLoc[x] + 5 + (1 * x), frame.Location.Y + 600, frame.LaneWidth[x] + 1, 50), Skin.skindict["press" + (x + 1)]); presses[x].fade(0.0f, 0.075); lights[x] = new Rect(new Rectangle(((frame.Location.X) + frame.LaneLoc[x]) + (1 * x) + 5 + 25, (int)frame.HitHeight - 53, 0, frame.LaneWidth[x]), Skin.skindict["keyLight"]); glows[x] = new Rect(new Rectangle(((frame.Location.X) + frame.LaneLoc[x]) + (1 * x) + 5, (int)frame.HitHeight - 203, frame.LaneWidth[x], 200), Skin.skindict["keyLight"]); glows[x].Colour = new Color4(1.0f, 1.0f, 1.0f, 0.5f); lights[x].Colour = Skin.LightColours[x]; lights[x].fade(0.0f, 0.075); glows[x].fade(0.0f, 0.075); } songtitle = new Label(game, new Point(Config.ResWidth - 490, 10), currentSong.SongName + " - " + chart.Name); songartist = new Label(game, new Point(Config.ResWidth - 485, 60), currentSong.Artist); songtitle.TextTexture.TextFont = new Font("Myriad Pro", 35); songtitle.TextTexture.Shadow = false; songartist.TextTexture.Shadow = false; UIComponents.Add(songartist); UIComponents.Add(songtitle); if (calibrate) { offsetLabel = new Label(game, new Point(450, 85), "Average mistime: "); UIComponents.Add(offsetLabel); offsetLabel.Visible = true; offsetLabel.Enabled = true; offsets.Clear(); } scoreLabel = new GraphicalText(score.TotalScore.ToString("D9"), Skin.ScoreLocation); scoreLabel.scale(new Size(30, 30), 0.1); comboText = new GraphicalText("0x", (new Point(frame.Location.X + (int)frame.Width / 2 - (int)(GraphicalText.measureString("0x", frame.LaneWidth[0])) / 2, frame.Location.Y + 200))); comboText.Visible = false; accuracyLabel = new GraphicalText("00.00%", Skin.AccLocation); pauseScreen = new PauseScreen(game, "pause", this); pauseScreen.OnLoad(null); countDown = new Label(game, new Point((int)frame.Location.X + (int)frame.Width + 20, (int)frame.HitHeight - 20), "00:00"); countDown.TextTexture.TextFont = new Font("Myriad pro", 30); UIComponents.Add(countDown); scoreLabel.scale(new Size(Skin.ScoreSize.Width, Skin.ScoreSize.Height), 0.0); accuracyLabel.scale(new Size(Skin.AccSize.Width, Skin.AccSize.Height), 0.0); if (skip != null) { UIComponents.Add(skip); } bufferOverlay = new Rect(new Rectangle(0, 0, Config.ResWidth, 768)); bufferOverlay.Colour = new Color4(0, 0, 0, 0.5f); bufferingLabel = new Label(game, new Point(Config.ResWidth / 2 - 100, 768 / 2 - 20), "Buffering..."); specFailedLabel = new Label(game, new Point(Config.ResWidth / 2 - 100, 768 / 2 - 20), "User failed"); userList = new Text(new Size(700, 100), new Point((int)frame.Width + 50, 70)); oldSpecs = ""; }