public override void render(SpriteBatch sb)
        {
            switch (state)
            {
            case LoadingState.LevelRunning:
                BackGroundAudio.changeVolume(1.0f);
                renderGameStuff(sb);
                break;

            case LoadingState.LevelPaused:
                BackGroundAudio.changeVolume(0.4f);
                renderGameStuff(sb);
                renderPauseOverlay(sb);
                break;

            case LoadingState.LevelLoading:
                renderLoadScreen(sb);
                break;

            default:
                break;
            }
        }
        private void loadLevel()
        {
            for (int i = 0; i < GameCampaign.CampaignIntroductionValues[GameCampaign.PlayerLevelProgress].Length; i++)
            {
                GameCampaign.AvailableEntityTypes.Add(GameCampaign.CampaignIntroductionValues[GameCampaign.PlayerLevelProgress][i]);
            }

            nodeMap = generateFourDungeons();
            //nodeMap = DungeonGenerator.generateEntityZoo();
            map = new TileMap(this, nodeMap, GlobalGameConstants.TileSize);

            string tileSetName = "deathStar";

            if (GameCampaign.PlayerFloorHeight == 0)
            {
                tileSetName = "hightech";
            }
            if (GameCampaign.PlayerFloorHeight == 1)
            {
                tileSetName = "factory";
            }
            if (GameCampaign.PlayerFloorHeight == 2)
            {
                tileSetName = "prisoncell";
            }

            map.TileSkin[0] = TextureLib.getLoadedTexture(tileSetName + "/0.png");
            map.TileSkin[1] = TextureLib.getLoadedTexture(tileSetName + "/1.png");
            map.TileSkin[2] = TextureLib.getLoadedTexture(tileSetName + "/2.png");
            map.TileSkin[3] = TextureLib.getLoadedTexture(tileSetName + "/3.png");

            map.ElevatorRoomSkin = TextureLib.getLoadedTexture("elevator/0.png");

            Thread.Sleep(250);

            endFlagReached = false;

            gui       = new InGameGUI(this);
            keyModule = new LevelKeyModule();

            particleSet = new ParticleSet();

            Thread.Sleep(250);

            entityList   = new List <Entity>();
            acidSpitters = new List <MutantAcidSpitter>();

            coinPool      = new Coin[coinPoolSize];
            freeCoinIndex = 0;
            for (int i = 0; i < coinPoolSize; i++)
            {
                coinPool[i] = new Coin(this, new Vector2(-100, -100));
                entityList.Add(coinPool[i]);
            }

            Thread.Sleep(250);

            populateRooms(nodeMap, currentSeed);

            Thread.Sleep(250);

            for (int i = 0; i < entityList.Count; i++)
            {
                if (entityList[i] is Player && ((Player)entityList[i]).Index == InputDevice2.PPG_Player.Player_1)
                {
                    cameraFocus = entityList[i];
                }
            }

            fadeOutTime = 0.0f;

            elapsedLevelTime  = 0.0f;
            elapsedCoinAmount = 0;

            player1Dead     = false;
            end_flag_placed = false;

            BackGroundAudio.playSong("RPG Game", true);
            BackGroundAudio.changeVolume(1.0f);

            state = LoadingState.LevelRunning;
        }