public void setRefLevel(SpectrumEnums.Levels level) { refLevel = level; Spectrum.lastLevelInGame = level; }
/* * Saves current level to save file * TODO check, that we only save if currentLevel is higher than lastsavedLevel (load) */ private void Save() { using (Stream stream = storageContainer.CreateFile(filename)) { saveGameData.lastSavedLevel = currentLevel; loadedLevel = currentLevel; XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData)); serializer.Serialize(stream, saveGameData); saveFileExists = true; } }
public void loadLevel(SpectrumEnums.Levels level) { currentLevel = level; Spectrum.lastPlayedLevel = level; models.Add(new SkySphere(skySphereModel, game, ((Spectrum)Game).camera, this)); ((Spectrum)game).getCurrentActFromCurrentLevel(); levelCreator.loadLevel(currentLevel); mapResolution = levelCreator.getCurrentMapResolution(); ((Spectrum)game).getCurrentActFromCurrentLevel(); ((Spectrum)game).soundManager.playMusic(); Vector3 startPosition = levelCreator.getStartPosition(); Vector3 startDirection = Vector3.Zero; Vector3 startUp = Vector3.Zero; enemies = levelCreator.getEnemies(); countLevelInk(); Vector3 dim = levelCreator.getCurrentMapResolution(); OctTree octree = new OctTree(-2, -2, -2, (dim.Z * 2) + 2, (dim.Y * 2) + 2, (dim.X * 2) + 2); foreach(BasicCube cube in worldMap) { octree.Insert(cube); } foreach (Googoo enemy in enemies) { enemy.setAStar(worldMap, mapResolution); enemy.setOctTree(octree); enemy.InitializePathfinding(); } player = new Bubble(bubbleModel, game, ((Spectrum)Game).camera, octree, startPosition, startDirection, startUp, worldMap, screenManager); player.setLives(levelCreator.getLivesInLevel()); models.Add(player); }
/* * Loads current level from save file */ private void Load() { if (storageContainer.FileExists(filename)) { Stream stream = storageContainer.OpenFile(filename, FileMode.Open); XmlSerializer serializer = new XmlSerializer(typeof(SaveGameData)); SaveGameData saveData = (SaveGameData)serializer.Deserialize(stream); stream.Close(); loadedLevel = saveData.lastSavedLevel; lastPlayedLevel = loadedLevel; saveFileExists = true; } else { saveFileExists = false; } }
/* * Delete existing save file */ private void DeleteExisting() { if (storageContainer.FileExists(filename)) { storageContainer.DeleteFile(filename); saveFileExists = false; loadedLevel = SpectrumEnums.Levels.LevelP_0; } }
/* * Main Update method * handles all important updates such as * mouse state, screenManger update, saving/loading/deleting */ protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } //Master key, unlock all level! if (Keyboard.GetState().IsKeyDown(Keys.M)) { currentLevel = SpectrumEnums.Levels.LevelE_0; } currentMouseState = Mouse.GetState(); GameStateDependingUpdates(); time = float.Parse(gameTime.ElapsedGameTime.TotalMilliseconds.ToString()) / 1000; modelManager.buttonHandler.Update(gameTime); if (lastClickedPositon != null) { particleEngineBubbles.emitterLocation = lastClickedPositon; particleEngineBubbles.UpdateBubbles(); particleEngineBigBubbles.emitterLocation = new Vector2(680, 180); particleEngineBigBubbles.UpdateBigBubbles(); } UpdateCursor(); previousMouseState = currentMouseState; if (currentPP == SpectrumEnums.PostProcessing.Mud) { mudParticleEngine.Update(); } UpdateSavingLoadingOrDeleting(saveLoadOrDelete); gameAnalytics.Update(); base.Update(gameTime); }
/* * Updates particle Engines and and gamestates. */ protected void GameStateDependingUpdates() { currentKeyState = Keyboard.GetState(); switch (currentGameState) { case SpectrumEnums.GameState.Start: lastPlayedLevel = loadedLevel; currentLevel = loadedLevel; getCurrentActFromCurrentLevel(); if (currentKeyState.GetPressedKeys().Length > 0 || currentMouseState.LeftButton == ButtonState.Pressed || currentMouseState.MiddleButton == ButtonState.Pressed || currentMouseState.RightButton == ButtonState.Pressed) { Spectrum.currentGameState = SpectrumEnums.GameState.MainMenu; } break; case SpectrumEnums.GameState.MainMenu: particleEngineBigBubbles.drawParticles = true; getCurrentActFromCurrentLevel(); break; case SpectrumEnums.GameState.LevelSelection: particleEngineBigBubbles.drawParticles = false; particleEngineBigBubbles.PopAllBubbles(); break; case SpectrumEnums.GameState.SettingsMenu: particleEngineBigBubbles.drawParticles = false; particleEngineBigBubbles.PopAllBubbles(); break; case SpectrumEnums.GameState.InGame: particleEngineBigBubbles.drawParticles = false; particleEngineBigBubbles.PopAllBubbles(); break; case SpectrumEnums.GameState.GameOver: if (currentKeyState.GetPressedKeys().Length > 0) { Spectrum.currentGameState = SpectrumEnums.GameState.MainMenu; } break; } }
/* * Starts deleting process */ public void deleteSaveFile() { if (savingState == SpectrumEnums.SavingState.NotSaving) { savingState = SpectrumEnums.SavingState.ReadyToOpenStorageContainer; saveLoadOrDelete = SpectrumEnums.SaveLoadOrDelete.delete; currentLevel = SpectrumEnums.Levels.LevelP_0; lastPlayedLevel = currentLevel; } }