private void DrawBackgroundAnimation(Intermission im) { if (DoomApplication.Instance.IWad == "doom2" || DoomApplication.Instance.IWad == "freedoom2" || DoomApplication.Instance.IWad == "plutonia" || DoomApplication.Instance.IWad == "tnt") { return; } if (im.Info.Episode > 2) { return; } for (var i = 0; i < im.Animations.Length; i++) { var a = im.Animations[i]; if (a.PatchNumber >= 0) { this.DrawPatch(a.Patches[a.PatchNumber], a.LocationX, a.LocationY); } } }
private void DrawStats(Intermission intermission) { DrawBackground(intermission); var im = intermission; // line height var lh = (3 * patches.Numbers[0].Height) / 2; // draw animated background //WI_drawAnimatedBack(); WI_drawLF(im); DrawPatch(patches.Kills, SP_STATSX, SP_STATSY); WI_drawPercent(320 - SP_STATSX, SP_STATSY, im.cnt_kills[0]); DrawPatch(patches.Items, SP_STATSX, SP_STATSY + lh); WI_drawPercent(320 - SP_STATSX, SP_STATSY + lh, im.cnt_items[0]); DrawPatch(patches.SP_Secret, SP_STATSX, SP_STATSY + 2 * lh); WI_drawPercent(320 - SP_STATSX, SP_STATSY + 2 * lh, im.cnt_secret[0]); DrawPatch(patches.Time, SP_TIMEX, SP_TIMEY); WI_drawTime(320 / 2 - SP_TIMEX, SP_TIMEY, im.cnt_time); if (im.Wbs.Epsd < 3) { //V_DrawPatch(SCREENWIDTH / 2 + SP_TIMEX, SP_TIMEY, FB, par); //WI_drawTime(SCREENWIDTH - SP_TIMEX, SP_TIMEY, cnt_par); } }
private void DrawEnteringLevelName(Intermission im) { var wbs = im.Info; int y = titleY; string levelName; if (im.Options.GameMode != GameMode.Commercial) { var e = im.Options.Episode - 1; levelName = doomLevels[e][wbs.NextLevel]; } else { levelName = doom2Levels[wbs.NextLevel]; } // Draw "Entering". DrawPatch( "WIENTER", (320 - GetWidth("WIENTER")) / 2, y); // Draw level name. y += (5 * GetHeight(levelName)) / 4; DrawPatch( levelName, (320 - GetWidth(levelName)) / 2, y); }
public void Render(Intermission im) { switch (im.State) { case IntermissionState.StatCount: if (im.Options.Deathmatch != 0) { this.DrawDeathmatchStats(im); } else if (im.Options.NetGame) { this.DrawNetGameStats(im); } else { this.DrawSinglePlayerStats(im); } break; case IntermissionState.ShowNextLoc: this.DrawShowNextLoc(im); break; case IntermissionState.NoState: this.DrawNoState(im); break; } }
private void DrawFinishedLevelName(Intermission intermission) { var wbs = intermission.Info; var y = IntermissionRenderer.titleY; string levelName; if (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt") { var e = intermission.Options.Episode - 1; levelName = IntermissionRenderer.doomLevels[e][wbs.LastLevel]; } else { levelName = IntermissionRenderer.doom2Levels[wbs.LastLevel]; } // Draw level name. this.DrawPatch(levelName, (320 - this.GetWidth(levelName)) / 2, y); // Draw "Finished!". y += (5 * this.GetHeight(levelName)) / 4; this.DrawPatch("WIF", (320 - this.GetWidth("WIF")) / 2, y); }
private void DrawFinishedLevelName(Intermission intermission) { var wbs = intermission.Info; var y = titleY; string levelName; if (intermission.Options.GameMode != GameMode.Commercial) { var e = intermission.Options.Episode - 1; levelName = doomLevels[e][wbs.LastLevel]; } else { levelName = doom2Levels[wbs.LastLevel]; } // Draw level name. DrawPatch( levelName, (320 - GetWidth(levelName)) / 2, y); // Draw "Finished!". y += (5 * GetHeight(levelName)) / 4; DrawPatch( "WIF", (320 - GetWidth("WIF")) / 2, y); }
public void Render(Intermission intermission) { var im = intermission; switch (im.state) { case IntermissionState.StatCount: if (im.Options.Deathmatch != 0) { // WI_drawDeathmatchStats(); } else if (im.Options.NetGame) { // WI_drawNetgameStats(); } else { DrawStats(im); } break; case IntermissionState.ShowNextLoc: WI_drawShowNextLoc(im); break; case IntermissionState.NoState: WI_drawNoState(im); break; } }
private void DrawEnteringLevelName(Intermission im) { var wbs = im.Info; int y = IntermissionRenderer.titleY; string levelName; if (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt") { var e = im.Options.Episode - 1; levelName = IntermissionRenderer.doomLevels[e][wbs.NextLevel]; } else { levelName = IntermissionRenderer.doom2Levels[wbs.NextLevel]; } // Draw "Entering". this.DrawPatch("WIENTER", (320 - this.GetWidth("WIENTER")) / 2, y); // Draw level name. y += (5 * this.GetHeight(levelName)) / 4; this.DrawPatch(levelName, (320 - this.GetWidth(levelName)) / 2, y); }
void Handle_ClickOnMenuScreen() { WorldState.currentLevel.ResetFinal(); Camera cameraObj = Camera.main; if (cameraObj == null) { Debug.Log("Unable to access main Camera"); return; } BuildMenu buildMenu = cameraObj.GetComponent <BuildMenu>(); if (buildMenu == null) { Debug.Log("Unable to access BuildMenu"); return; } Destroy(buildMenu.splashScreen_instance); Destroy(buildMenu.credits_instance); buildMenu.HideNavigationButtons(); Intermission intermission = cameraObj.GetComponent <Intermission>(); if (intermission == null) { Debug.Log("Unable to access Intermission"); return; } intermission.SendMessage("PerformBuildIntermission"); WorldState.gameState = WorldState.GameState.Intermission_FloraIn; }
//////////////////////////////////////////////////////////// // Actual game actions //////////////////////////////////////////////////////////// // It seems that these methods should not be called directly // from outside for some reason. // So if you want to start a new game or do load / save, use // the following public methods. // // - DeferedInitNew // - LoadGame // - SaveGame private void DoLoadLevel() { this.gameAction = GameAction.Nothing; this.gameState = GameState.Level; var players = this.options.Players; for (var i = 0; i < Player.MaxPlayerCount; i++) { if (players[i].InGame && players[i].PlayerState == PlayerState.Dead) { players[i].PlayerState = PlayerState.Reborn; } Array.Clear(players[i].Frags, 0, players[i].Frags.Length); } this.intermission = null; this.options.Sound.Reset(); this.world = new World(this.resource, this.options, this); this.options.UserInput.Reset(); }
private void DrawSinglePlayerStats(Intermission im) { this.DrawBackground(im); // Draw animated background. this.DrawBackgroundAnimation(im); // Draw level name. this.DrawFinishedLevelName(im); // Line height. var lineHeight = (3 * this.numbers[0].Height) / 2; this.DrawPatch( "WIOSTK", // KILLS IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY ); this.DrawPercent(320 - IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY, im.KillCount[0]); this.DrawPatch( "WIOSTI", // ITEMS IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY + lineHeight ); this.DrawPercent(320 - IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY + lineHeight, im.ItemCount[0]); this.DrawPatch( "WISCRT2", // SECRET IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY + 2 * lineHeight ); this.DrawPercent(320 - IntermissionRenderer.spStatsX, IntermissionRenderer.spStatsY + 2 * lineHeight, im.SecretCount[0]); this.DrawPatch( "WITIME", // TIME IntermissionRenderer.spTimeX, IntermissionRenderer.spTimeY ); this.DrawTime(320 / 2 - IntermissionRenderer.spTimeX, IntermissionRenderer.spTimeY, im.TimeCount); if (im.Info.Episode < 3) { this.DrawPatch( "WIPAR", // PAR 320 / 2 + IntermissionRenderer.spTimeX, IntermissionRenderer.spTimeY ); this.DrawTime(320 - IntermissionRenderer.spTimeX, IntermissionRenderer.spTimeY, im.ParCount); } }
private void DrawShowNextLoc(Intermission im) { this.DrawBackground(im); // Draw animated background. this.DrawBackgroundAnimation(im); if (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt") { if (im.Info.Episode > 2) { this.DrawEnteringLevelName(im); return; } var last = (im.Info.LastLevel == 8) ? im.Info.NextLevel - 1 : im.Info.LastLevel; // Draw a splat on taken cities. for (var i = 0; i <= last; i++) { var x = WorldMap.Locations[im.Info.Episode][i].X; var y = WorldMap.Locations[im.Info.Episode][i].Y; this.DrawPatch("WISPLAT", x, y); } // Splat the secret level? if (im.Info.DidSecret) { var x = WorldMap.Locations[im.Info.Episode][8].X; var y = WorldMap.Locations[im.Info.Episode][8].Y; this.DrawPatch("WISPLAT", x, y); } // Draw "you are here". if (im.ShowYouAreHere) { var x = WorldMap.Locations[im.Info.Episode][im.Info.NextLevel].X; var y = WorldMap.Locations[im.Info.Episode][im.Info.NextLevel].Y; this.DrawSuitablePatch(IntermissionRenderer.youAreHere, x, y); } } // Draw next level name. if ((DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt") || im.Info.NextLevel != 30) { this.DrawEnteringLevelName(im); } }
private void DrawShowNextLoc(Intermission im) { DrawBackground(im); // Draw animated background. DrawBackgroundAnimation(im); if (im.Options.GameMode != GameMode.Commercial) { if (im.Info.Episode > 2) { DrawEnteringLevelName(im); return; } var last = (im.Info.LastLevel == 8) ? im.Info.NextLevel - 1 : im.Info.LastLevel; // Draw a splat on taken cities. for (var i = 0; i <= last; i++) { var x = WorldMap.Locations[im.Info.Episode][i].X; var y = WorldMap.Locations[im.Info.Episode][i].Y; DrawPatch("WISPLAT", x, y); } // Splat the secret level? if (im.Info.DidSecret) { var x = WorldMap.Locations[im.Info.Episode][8].X; var y = WorldMap.Locations[im.Info.Episode][8].Y; DrawPatch("WISPLAT", x, y); } // Draw "you are here". if (im.ShowYouAreHere) { var x = WorldMap.Locations[im.Info.Episode][im.Info.NextLevel].X; var y = WorldMap.Locations[im.Info.Episode][im.Info.NextLevel].Y; DrawSuitablePatch(youAreHere, x, y); } } // Draw next level name. if ((im.Options.GameMode != GameMode.Commercial) || im.Info.NextLevel != 30) { DrawEnteringLevelName(im); } }
void Handle_ClickOnIntermissionScreen() { Counters.movementWarmupCounter = Consts.MOVEMENT_WARMUP; Camera cameraObj = Camera.main; if (cameraObj == null) { Debug.Log("Unable to access main Camera"); return; } Intermission intermission = cameraObj.GetComponent <Intermission>(); if (intermission == null) { Debug.Log("Unable to access Intermission"); return; } intermission.SendMessage("PerformDestroyIntermission"); if (WorldState.currentLevel.ReachedFinal()) { WorldState.currentLevel.Set(1); BuildMenu buildMenu = cameraObj.GetComponent <BuildMenu>(); if (buildMenu == null) { Debug.Log("Unable to access BuildMenu"); return; } buildMenu.Start(); WorldState.gameState = WorldState.GameState.SplashScreen; } else { WorldState.gameState = WorldState.GameState.Game; BuildLevel buildLevel = cameraObj.GetComponent <BuildLevel>(); if (buildLevel == null) { Debug.Log("Unable to access BuildLevel"); return; } buildLevel.PerformBuild(); WorldState.DisableGravity(); WorldState.build_virtual_level_representation(); WorldState.debug_print_virtual_level(); } }
public void IntermissionRenderTest(Intermission im) { intermission.Render(im); var screenData = screen.Data; var p = MemoryMarshal.Cast <byte, uint>(sfmlTextureData); for (var i = 0; i < p.Length; i++) { p[i] = colors[screenData[i]]; } sfmlTexture.Update(sfmlTextureData, (uint)screen.Height, (uint)screen.Width, 0, 0); sfmlWindow.Draw(sfmlSprite, sfmlStates); sfmlWindow.Display(); }
private void DrawBackground(Intermission intermission) { if (intermission.Options.GameMode == GameMode.Commercial) { DrawPatch(patches.Background, 0, 0); } else { var e = intermission.Options.Episode - 1; if (e < patches.MapPictures.Count) { DrawPatch(patches.MapPictures[e], 0, 0); } else { DrawPatch(patches.Background, 0, 0); } } }
private void DrawBackground(Intermission im) { if (im.Options.GameMode == GameMode.Commercial) { DrawPatch("INTERPIC", 0, 0); } else { var e = im.Options.Episode - 1; if (e < mapPictures.Length) { DrawPatch(mapPictures[e], 0, 0); } else { DrawPatch("INTERPIC", 0, 0); } } }
private void WI_drawShowNextLoc(Intermission im) { DrawBackground(im); // draw animated background //WI_drawAnimatedBack(); if (im.Options.GameMode != GameMode.Commercial) { if (im.Wbs.Epsd > 2) { //WI_drawEL(); return; } var last = (im.Wbs.Last == 8) ? im.Wbs.Next - 1 : im.Wbs.Last; // draw a splat on taken cities. for (var i = 0; i <= last; i++) { //WI_drawOnLnode(i, &splat); } // splat the secret level? if (im.Wbs.DidSecret) { //WI_drawOnLnode(8, &splat); } // draw flashing ptr //if (snl_pointeron) { //WI_drawOnLnode(wbs->next, yah); } } // draws which level you are entering.. if ((im.Options.GameMode != GameMode.Commercial) || im.Wbs.Next != 30) { WI_drawEL(im); } }
public void Render(Intermission im) { switch (im.State) { case IntermissionState.StatCount: this.DrawSinglePlayerStats(im); break; case IntermissionState.ShowNextLoc: this.DrawShowNextLoc(im); break; case IntermissionState.NoState: this.DrawNoState(im); break; } }
private void DrawBackgroundAnimation(Intermission im) { if (im.Options.GameMode == GameMode.Commercial) { return; } if (im.Info.Episode > 2) { return; } for (var i = 0; i < im.Animations.Length; i++) { var a = im.Animations[i]; if (a.PatchNumber >= 0) { DrawPatch(a.Patches[a.PatchNumber], a.LocationX, a.LocationY); } } }
//////////////////////////////////////////////////////////// // Actual game actions //////////////////////////////////////////////////////////// // It seems that these methods should not be called directly // from outside for some reason. // So if you want to start a new game or do load / save, use // the following public methods. // // - DeferedInitNew // - LoadGame // - SaveGame private void DoLoadLevel() { this.gameAction = GameAction.Nothing; this.gameState = GameState.Level; var player = this.options.Player; if (player.PlayerState == PlayerState.Dead) { player.PlayerState = PlayerState.Reborn; } this.intermission = null; this.options.Sound.Reset(); this.world = new World(this.resource, this.options, this); this.options.UserInput.Reset(); }
// Draws "Entering <LevelName>" private void WI_drawEL(Intermission im) { int y = WI_TITLEY; var e = 0; if (im.Options.GameMode != GameMode.Commercial) { e = im.Options.Episode - 1; } // draw "Entering" DrawPatch( patches.Entering, (320 - patches.Entering.Width) / 2, y); // draw level y += (5 * patches.LevelNames[e][im.Wbs.Next].Height) / 4; DrawPatch( patches.LevelNames[e][im.Wbs.Next], (320 - patches.LevelNames[e][im.Wbs.Next].Width) / 2, y); }
private void DrawBackground(Intermission im) { if (DoomApplication.Instance.IWad == "doom2" || DoomApplication.Instance.IWad == "freedoom2" || DoomApplication.Instance.IWad == "plutonia" || DoomApplication.Instance.IWad == "tnt") { this.DrawPatch("INTERPIC", 0, 0); } else { var e = im.Options.Episode - 1; if (e < IntermissionRenderer.mapPictures.Length) { this.DrawPatch(IntermissionRenderer.mapPictures[e], 0, 0); } else { this.DrawPatch("INTERPIC", 0, 0); } } }
// Draws "<Levelname> Finished!" private void WI_drawLF(Intermission intermission) { var wbs = intermission.Wbs; var y = WI_TITLEY; var e = 0; if (intermission.Options.GameMode != GameMode.Commercial) { e = intermission.Options.Episode - 1; } // draw <LevelName> DrawPatch( patches.LevelNames[e][wbs.Last], (320 - patches.LevelNames[e][wbs.Last].Width) / 2, y); // draw "Finished!" y += (5 * patches.LevelNames[e][wbs.Last].Height) / 4; DrawPatch( patches.Finished, (320 - patches.Finished.Width) / 2, y); }
private void DrawNoState(Intermission im) { this.DrawShowNextLoc(im); }
private void DrawDeathmatchStats(Intermission im) { this.DrawBackground(im); // Draw animated background. this.DrawBackgroundAnimation(im); // Draw level name. this.DrawFinishedLevelName(im); // Draw stat titles (top line). this.DrawPatch( "WIMSTT", // TOTAL IntermissionRenderer.dmTotalsX - this.GetWidth("WIMSTT") / 2, IntermissionRenderer.dmMatrixY - IntermissionRenderer.spacingY + 10 ); this.DrawPatch( "WIKILRS", // KILLERS IntermissionRenderer.dmKillersX, IntermissionRenderer.dmKillersY ); this.DrawPatch( "WIVCTMS", // VICTIMS IntermissionRenderer.dmVictimsX, IntermissionRenderer.dmVictimsY ); // Draw player boxes. var x = IntermissionRenderer.dmMatrixX + IntermissionRenderer.dmSpacingX; var y = IntermissionRenderer.dmMatrixY; for (var i = 0; i < Player.MaxPlayerCount; i++) { if (im.Options.Players[i].InGame) { this.DrawPatch( IntermissionRenderer.playerBoxes[i], x - this.GetWidth(IntermissionRenderer.playerBoxes[i]) / 2, IntermissionRenderer.dmMatrixY - IntermissionRenderer.spacingY ); this.DrawPatch( IntermissionRenderer.playerBoxes[i], IntermissionRenderer.dmMatrixX - this.GetWidth(IntermissionRenderer.playerBoxes[i]) / 2, y ); if (i == im.Options.ConsolePlayer) { this.DrawPatch( "STFDEAD0", // Player face (dead) x - this.GetWidth(IntermissionRenderer.playerBoxes[i]) / 2, IntermissionRenderer.dmMatrixY - IntermissionRenderer.spacingY ); this.DrawPatch( "STFST01", // Player face IntermissionRenderer.dmMatrixX - this.GetWidth(IntermissionRenderer.playerBoxes[i]) / 2, y ); } } else { // V_DrawPatch(x-SHORT(bp[i]->width)/2, // DM_MATRIXY - WI_SPACINGY, FB, bp[i]); // V_DrawPatch(DM_MATRIXX-SHORT(bp[i]->width)/2, // y, FB, bp[i]); } x += IntermissionRenderer.dmSpacingX; y += IntermissionRenderer.spacingY; } // Draw stats. y = IntermissionRenderer.dmMatrixY + 10; var w = this.numbers[0].Width; for (var i = 0; i < Player.MaxPlayerCount; i++) { x = IntermissionRenderer.dmMatrixX + IntermissionRenderer.dmSpacingX; if (im.Options.Players[i].InGame) { for (var j = 0; j < Player.MaxPlayerCount; j++) { if (im.Options.Players[j].InGame) { this.DrawNumber(x + w, y, im.DeathmatchFrags[i][j], 2); } x += IntermissionRenderer.dmSpacingX; } this.DrawNumber(IntermissionRenderer.dmTotalsX + w, y, im.DeathmatchTotals[i], 2); } y += IntermissionRenderer.spacingY; } }
private void DrawNetGameStats(Intermission im) { this.DrawBackground(im); // Draw animated background. this.DrawBackgroundAnimation(im); // Draw level name. this.DrawFinishedLevelName(im); var ngStatsX = 32 + this.GetWidth("STFST01") / 2; if (!im.DoFrags) { ngStatsX += 32; } // Draw stat titles (top line). this.DrawPatch( "WIOSTK", // KILLS ngStatsX + IntermissionRenderer.ngSpacingX - this.GetWidth("WIOSTK"), IntermissionRenderer.ngStatsY ); this.DrawPatch( "WIOSTI", // ITEMS ngStatsX + 2 * IntermissionRenderer.ngSpacingX - this.GetWidth("WIOSTI"), IntermissionRenderer.ngStatsY ); this.DrawPatch( "WIOSTS", // SCRT ngStatsX + 3 * IntermissionRenderer.ngSpacingX - this.GetWidth("WIOSTS"), IntermissionRenderer.ngStatsY ); if (im.DoFrags) { this.DrawPatch( "WIFRGS", // FRAGS ngStatsX + 4 * IntermissionRenderer.ngSpacingX - this.GetWidth("WIFRGS"), IntermissionRenderer.ngStatsY ); } // Draw stats. var y = IntermissionRenderer.ngStatsY + this.GetHeight("WIOSTK"); for (var i = 0; i < Player.MaxPlayerCount; i++) { if (!im.Options.Players[i].InGame) { continue; } var x = ngStatsX; this.DrawPatch(IntermissionRenderer.playerBoxes[i], x - this.GetWidth(IntermissionRenderer.playerBoxes[i]), y); if (i == im.Options.ConsolePlayer) { this.DrawPatch( "STFST01", // Player face x - this.GetWidth(IntermissionRenderer.playerBoxes[i]), y ); } x += IntermissionRenderer.ngSpacingX; this.DrawPercent(x - this.percent.Width, y + 10, im.KillCount[i]); x += IntermissionRenderer.ngSpacingX; this.DrawPercent(x - this.percent.Width, y + 10, im.ItemCount[i]); x += IntermissionRenderer.ngSpacingX; this.DrawPercent(x - this.percent.Width, y + 10, im.SecretCount[i]); x += IntermissionRenderer.ngSpacingX; if (im.DoFrags) { this.DrawNumber(x, y + 10, im.FragCount[i], -1); } y += IntermissionRenderer.spacingY; } }
private void DoCompleted() { this.gameAction = GameAction.Nothing; // Take away cards and stuff. this.options.Player.FinishLevel(); if (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt") { switch (this.options.Map) { case 8: this.gameAction = GameAction.Victory; return; case 9: this.options.Player.DidSecret = true; break; } } if ((this.options.Map == 8) && (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt")) { // Victory. this.gameAction = GameAction.Victory; return; } if ((this.options.Map == 9) && (DoomApplication.Instance.IWad != "doom2" && DoomApplication.Instance.IWad != "freedoom2" && DoomApplication.Instance.IWad != "plutonia" && DoomApplication.Instance.IWad != "tnt")) { // Exit secret level. this.options.Player.DidSecret = true; } var imInfo = this.options.IntermissionInfo; imInfo.DidSecret = this.options.Player.DidSecret; imInfo.Episode = this.options.Episode - 1; imInfo.LastLevel = this.options.Map - 1; // IntermissionInfo.Next is 0 biased, unlike GameOptions.Map. if (DoomApplication.Instance.IWad == "doom2" || DoomApplication.Instance.IWad == "freedoom2" || DoomApplication.Instance.IWad == "plutonia" || DoomApplication.Instance.IWad == "tnt") { if (this.world.SecretExit) { switch (this.options.Map) { case 15: imInfo.NextLevel = 30; break; case 31: imInfo.NextLevel = 31; break; } } else { switch (this.options.Map) { case 31: case 32: imInfo.NextLevel = 15; break; default: imInfo.NextLevel = this.options.Map; break; } } } else { if (this.world.SecretExit) { // Go to secret level. imInfo.NextLevel = 8; } else if (this.options.Map == 9) { // Returning from secret level. switch (this.options.Episode) { case 1: imInfo.NextLevel = 3; break; case 2: imInfo.NextLevel = 5; break; case 3: imInfo.NextLevel = 6; break; case 4: imInfo.NextLevel = 2; break; } } else { // Go to next level. imInfo.NextLevel = this.options.Map; } } imInfo.MaxKillCount = this.world.TotalKills; imInfo.MaxItemCount = this.world.TotalItems; imInfo.MaxSecretCount = this.world.TotalSecrets; if (DoomApplication.Instance.IWad == "doom2" || DoomApplication.Instance.IWad == "freedoom2" || DoomApplication.Instance.IWad == "plutonia" || DoomApplication.Instance.IWad == "tnt") { imInfo.ParTime = 35 * DoomInfo.ParTimes.Doom2[this.options.Map - 1]; } else { imInfo.ParTime = 35 * DoomInfo.ParTimes.Doom1[this.options.Episode - 1][this.options.Map - 1]; } var player = this.options.Player; imInfo.Player.KillCount = player.KillCount; imInfo.Player.ItemCount = player.ItemCount; imInfo.Player.SecretCount = player.SecretCount; imInfo.Player.Time = this.world.LevelTime; this.gameState = GameState.Intermission; this.intermission = new Intermission(this.options, imInfo); }
private void WI_drawNoState(Intermission im) { //snl_pointeron = true; WI_drawShowNextLoc(im); }