Ejemplo n.º 1
0
    static int Main(string[] args)
    {
        // select display device
        _DisplayDevice = DisplayDevice.Default;
        quakeparms_t parms = new quakeparms_t();

        parms.basedir = Application.StartupPath;
        string[] args2 = new string[args.Length + 1];
        args2[0] = String.Empty;
        args.CopyTo(args2, 1);
        game_engine.COM_InitArgv(args2);
        parms.argv = new string[game_engine.com_argv.Length];
        game_engine.com_argv.CopyTo(parms.argv, 0);

        if (game_engine.HasParam("-dedicated"))
        {
            throw new Exception("Dedicated server mode not supported!");
        }

        Size         size       = new Size(640, 480);
        GraphicsMode mode       = new GraphicsMode();
        bool         fullScreen = false;

        using (MainForm form = MainForm.CreateInstance(size, mode, fullScreen))
        {
            game_engine.Host_Init(parms);
            form.Run();
        }
        game_engine.Host_Shutdown();
        return(0); // all Ok
    }
Ejemplo n.º 2
0
    public static void Host_Init(quakeparms_t parms)
    {
        Con_DPrintf("Host.Init\n");

        host_parms = parms;

        Cache_Init(1024 * 1024 * 16); // debug
        Cbuf_Init();
        Cmd_Init();
        game_engine.V_Init();
        Chase_Init();
        InitVCR(parms);
        COM_Init(parms.basedir, parms.argv);
        Host_InitLocal();
        game_engine.W_LoadWadFile("gfx.wad");
        Key_Init();
        Con_Init();
        Menu.M_Init();
        PR_Init();
        Mod_Init();
        NET_Init();
        SV_Init();
        R_InitTextures();

        if (cls.state != cactive_t.ca_dedicated)
        {
            host_basepal = COM_LoadFile("gfx/palette.lmp");
            if (host_basepal == null)
            {
                Sys_Error("Couldn't load gfx/palette.lmp");
            }
            host_colormap = COM_LoadFile("gfx/colormap.lmp");
            if (host_colormap == null)
            {
                Sys_Error("Couldn't load gfx/colormap.lmp");
            }

            // on non win32, mouse comes before video for security reasons
            IN_Init();
            VID_Init(host_basepal);
            Draw_Init();
            SCR_Init();
            R_Init();
            S_Init();
            CDAudio_Init();
            Sbar_Init();
            CL_Init();
        }

        Cbuf_InsertText("exec quake.rc\n");

        host_initialized = true;

        Con_DPrintf("========Quake Initialized=========\n");
    }
Ejemplo n.º 3
0
    public static void InitVCR(quakeparms_t parms)
    {
        if (HasParam("-playback"))
        {
            if (com_argv.Length != 2)
            {
                Sys_Error("No other parameters allowed with -playback\n");
            }

            Stream file = Sys_FileOpenRead("quake.vcr");
            if (file == null)
            {
                Sys_Error("playback file not found\n");
            }

            _VcrReader = new BinaryReader(file, Encoding.ASCII);
            int signature = _VcrReader.ReadInt32();  //Sys_FileRead(vcrFile, &i, sizeof(int));
            if (signature != q_shared.VCR_SIGNATURE)
            {
                Sys_Error("Invalid signature in vcr file\n");
            }

            int      argc = _VcrReader.ReadInt32(); // Sys_FileRead(vcrFile, &com_argc, sizeof(int));
            string[] argv = new string[argc + 1];
            argv[0] = parms.argv[0];

            for (int i = 1; i < argv.Length; i++)
            {
                argv[i] = ReadString(_VcrReader);
            }
            com_argv   = argv;
            parms.argv = argv;
        }

        int n = COM_CheckParm("-record");

        if (n != 0)
        {
            Stream file = Sys_FileOpenWrite("quake.vcr"); // vcrFile = Sys_FileOpenWrite("quake.vcr");
            _VcrWriter = new BinaryWriter(file, Encoding.ASCII);

            _VcrWriter.Write(q_shared.VCR_SIGNATURE); //  Sys_FileWrite(vcrFile, &i, sizeof(int));
            _VcrWriter.Write(com_argv.Length - 1);
            for (int i = 1; i < com_argv.Length; i++)
            {
                if (i == n)
                {
                    WriteString(_VcrWriter, "-playback");
                    continue;
                }
                WriteString(_VcrWriter, Argv(i));
            }
        }
    }