public override void Paint() { //If there's an error don't show anything else, in any class that needs to change values each frame and other drae functions if (Registers.gameState != GameState.Error) { GAME_ENGINE.SetBackgroundColor(0, 0, 0); GAME_ENGINE.SetColor(0, 0, 0); if (destroyedCities == 6) { Registers.gameState = GameState.Stopped; } if (Registers.gameState == GameState.Paused) { //Draw pause menu //DISABLED as it hasn't been completed /*int h = 0; * for (int ij = 0; ij < ImageData.PauseMenu.Length; ij++) * { * if (ImageData.PauseMenu[ij] == 0x00) * { * GAME_ENGINE.SetColor(255, 255, 255); * //GAME_ENGINE.FillRectangle(rec_landscape); * } * else * { * try * { * //Draw pixel based on color data in array * GAME_ENGINE.SetColor(ImageData.PauseMenu[ij], ImageData.PauseMenu[ij + 1], ImageData.PauseMenu[ij + 2]); * GAME_ENGINE.FillRectangle(rec_pausemenu); * } * catch (Exception e) * { * //This should NOT trigger, unless you f*cked something up * Console.WriteLine(string.Format("Okay, you f*cked something up {0}", e)); * error_reason = new Exception($" {e}, Something ran into some problems which shouldn't happen"); * Registers.gameState = GameState.Error; * } * } * rec_pausemenu.X += 8; * h++; * if (h >= 40) * { * Pausemenu_line++; * rec_pausemenu.Y += PausemenuScale; * rec_pausemenu.X = Registers.ScreenWidth * 0.5f - PausemenuScale; * h = 0; * } * //Console.WriteLine(string.Format("i: {0}, h: {1}, draw X: {2}", i, h, rec_pausemenu.X)); * //Skip over other color data (G & B of RGB) * ij += 2; * }*/ } GAME_ENGINE.SetScale(8.5f, 8); GAME_ENGINE.DrawBitmap(landscape_bit, new Vector2f((float)(Registers.ScreenWidth * 0.5 - landscape_bit.GetWidth() * 4 - 0.025 * Registers.ScreenWidth), (float)(Registers.ScreenHeight * 0.5 - landscape_bit.GetHeight() * 4 + 0.46 * Registers.ScreenHeight))); GAME_ENGINE.SetScale(1, 1); GAME_ENGINE.SetColor(255, 255, 255); if (destroyedCities == 6) { Registers.gameState = GameState.Stopped; loseFont.SetHorizontalAlignment(Font.Alignment.Center); loseFontMedium.SetHorizontalAlignment(Font.Alignment.Center); GAME_ENGINE.SetColor(190, 0, 0); GAME_ENGINE.DrawString(loseFont, "You lose", rec_lose); GAME_ENGINE.DrawString(loseFontMedium, "Press Esc to exit", rec_exitText); GAME_ENGINE.SetColor(0, 0, 0); } rec_landscape.X = LandscapeX; rec_landscape.Y = LandscapeY; rec_pausemenu.X = Registers.ScreenWidth * 0.5f - PausemenuScale; rec_pausemenu.Y = Registers.ScreenHeight * 0.5f - PausemenuScale; rec_crosshair.X = Registers.CrosshairX; rec_crosshair.Y = Registers.CrosshairY; GAME_ENGINE.DrawEllipse(rec_crosshair, 2); return; } GAME_ENGINE.SetBackgroundColor(200, 0, 30); GAME_ENGINE.SetColor(255, 255, 255); GAME_ENGINE.DrawString(errorFontM, "An Error has occured", rec_errorM); if (error_reason == null) { error_reason = new Exception("Error Screen triggered"); } string err = error_reason.ToString(); //GAME_ENGINE.DrawString(errorFont, string.Format("{0}", Regex.Replace(err, err_pattern, "")), rec_error); GAME_ENGINE.DrawString(errorFont, string.Format("{0}", err), rec_error); GAME_ENGINE.SetColor(0, 0, 0); }