Пример #1
0
        /**
         * SV_CheckForSavegame.
         */
        public static void SV_CheckForSavegame()
        {
            string name;

            int i;

            if (SV_MAIN.sv_noreload.value != 0)
            {
                return;
            }

            if (Cvar.VariableValue("deathmatch") != 0)
            {
                return;
            }

            name = FS.Gamedir() + "/save/current/" + SV_INIT.sv.name + ".sav";

            if (!File.Exists(name))
            {
                return;
            }

            SV_WORLD.SV_ClearWorld();

            // get configstrings and areaportals
            SV_CCMDS.SV_ReadLevelFile();

            if (!SV_INIT.sv.loadgame)
            {
                // coming back to a level after being in a different
                // level, so run it for ten seconds

                // rlava2 was sending too many lightstyles, and overflowing the
                // reliable data. temporarily changing the server state to loading
                // prevents these from being passed down.
                int previousState;                     // PGM

                previousState    = SV_INIT.sv.state;   // PGM
                SV_INIT.sv.state = Defines.ss_loading; // PGM

                for (i = 0; i < 100; i++)
                {
                    GameBase.G_RunFrame();
                }

                SV_INIT.sv.state = previousState;                 // PGM
            }
        }