亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? d_main.c

?? 游戲類程序源代碼---WinDoom 3D源程序.zip
?? C
?? 第 1 頁 / 共 4 頁
字號:
	 // DQ end addition
	 // original
    //int i;
    //__int64 *d;

	 // DQ start addition
	 Buffer = RenderBuffer->Buffer;
	 YLookup = RenderBuffer->YLookup;
	 for (y = 0; y < SCREENHEIGHT; y++)
	 {
		 pdwDest = (DWORD *)(Buffer + YLookup[y]);
		 memset(pdwDest, 0, SCREENWIDTH/sizeof(DWORD));
	 }
	 // DQ end addition
	 // original
    //d = (__int64 *)RenderBuffer/*DQ screens[0]*/;
    //for (i = 0; i < ((SCREENWIDTH*SCREENHEIGHT)/8); i++)
    //   d[i] = 0;

    V_DrawPatch (((SCREENWIDTH-320)/2),
		 ((SCREENHEIGHT-200)/2), RenderBuffer/*DQ 0*/, W_CacheLumpName(pagename, PU_CACHE));
}


//
// D_AdvanceDemo
// Called after each demo or intro demosequence finishes
//
void D_AdvanceDemo (void)
{
    advancedemo = true;
}


//
// This cycles through the demo sequences.
// FIXME - version dependend demo numbers?
//
 void D_DoAdvanceDemo (void)
   {
    players[consoleplayer].playerstate = PST_LIVE;  // not reborn
    advancedemo = false;
    usergame = false;               // no save / end game here
    paused = false;
    gameaction = ga_nothing;

    if ( gamemode == retail )
        demosequence = (demosequence+1)%7;
    else
        demosequence = (demosequence+1)%6;
    
    //sprintf(MsgText, "Changing screen to %d...\n", demosequence);
    //WriteDebug(MsgText);

    switch (demosequence)
       {
        case 0:
             if ( gamemode == commercial )
                 pagetic = 35 * 11;
             else
                 pagetic = 170;
             gamestate = GS_DEMOSCREEN;
             pagename = "TITLEPIC";
             if ( gamemode == commercial )
                 S_StartMusic(mus_dm2ttl);
             else
                 S_StartMusic (mus_intro);
             break;
        case 1:
             G_DeferedPlayDemo ("demo1");
             break;
        case 2:
             pagetic = 200;
             gamestate = GS_DEMOSCREEN;
             pagename = "CREDIT";
             break;
        case 3:
             G_DeferedPlayDemo ("demo2");
             break;
        case 4:
             gamestate = GS_DEMOSCREEN;
             if ( gamemode == commercial)
                {
                 pagetic = 35 * 11;
                 pagename = "TITLEPIC";
                 S_StartMusic(mus_dm2ttl);
                }
             else
                {
                 pagetic = 200;
                 if ( gamemode == retail )
                     pagename = "CREDIT";
                 else
                     pagename = "HELP2";
                }
             break;
        case 5:
             G_DeferedPlayDemo ("demo3");
             break;
        // THE DEFINITIVE DOOM Special Edition demo
        case 6:
             G_DeferedPlayDemo ("demo4");
             break;
       }
   }



//
// D_StartTitle
//
void D_StartTitle (void)
{
    gameaction = ga_nothing;
    demosequence = -1;
    D_AdvanceDemo ();
}




//      print title for every printed line
char            title[128];



//
// D_AddFile
//
void D_AddFile (char *file)
{
    int     numwadfiles;
    char    *newfile;
	
    for (numwadfiles = 0 ; wadfiles[numwadfiles] ; numwadfiles++)
	;

    newfile = malloc (strlen(file)+1);
    strcpy (newfile, file);
	
    wadfiles[numwadfiles] = newfile;
}

#define R_OK 4
//
// IdentifyVersion
// Checks availability of IWAD files by name,
// to determine whether registered/commercial features
// should be executed (notably loading PWAD's).
//
void IdentifyVersion (void)
{

    char*	doom1wad;
    char*	doomwad;
    char*	doomuwad;
    char*	doom2wad;

    char*	doom2fwad;
    char*	plutoniawad;
    char*	tntwad;

//#ifdef NORMALUNIX
//    char *home;
    char *doomwaddir;
    doomwaddir = getenv("DOOMWADDIR");
    if (!doomwaddir)
	    doomwaddir = ".";

    // Commercial.
    doom2wad = malloc(strlen(doomwaddir)+1+9+1);
    sprintf(doom2wad, "%s/doom2.wad", doomwaddir);

    // Retail.   // Bug here too...
    doomuwad = malloc(strlen(doomwaddir)+1+9+1);
    sprintf(doomuwad, "%s/doomu.wad", doomwaddir);
    
    // Registered.
    doomwad = malloc(strlen(doomwaddir)+1+8+1);
    sprintf(doomwad, "%s/doom.wad", doomwaddir);
    
    // Shareware.
    doom1wad = malloc(strlen(doomwaddir)+1+9+1);
    sprintf(doom1wad, "%s/doom1.wad", doomwaddir);

     // Bug, dear Shawn.
    // Insufficient malloc, caused spurious realloc errors.
    plutoniawad = malloc(strlen(doomwaddir)+1+/*9*/12+1);
    sprintf(plutoniawad, "%s/plutonia.wad", doomwaddir);

    tntwad = malloc(strlen(doomwaddir)+1+9+1);
    sprintf(tntwad, "%s/tnt.wad", doomwaddir);

    // French stuff.
    doom2fwad = malloc(strlen(doomwaddir)+1+10+1);
    sprintf(doom2fwad, "%s/doom2f.wad", doomwaddir);


/*  Don't HAVE home directory on a single user OS...
    home = getenv("HOME");
    if (!home)
      I_Error("Please set $HOME to your home directory");

    sprintf(basedefault, "%s/.doomrc", home);

#endif
*/

    if (M_CheckParm ("-shdev"))
    {
	gamemode = shareware;
	devparm = true;
	D_AddFile (DEVDATA"doom1.wad");
	D_AddFile (DEVMAPS"data_se/texture1.lmp");
	D_AddFile (DEVMAPS"data_se/pnames.lmp");
	strcpy (basedefault,DEVDATA"default.cfg");
	return;
    }

    if (M_CheckParm ("-regdev"))
    {
	gamemode = registered;
	devparm = true;
	D_AddFile (DEVDATA"doom.wad");
	D_AddFile (DEVMAPS"data_se/texture1.lmp");
	D_AddFile (DEVMAPS"data_se/texture2.lmp");
	D_AddFile (DEVMAPS"data_se/pnames.lmp");
	strcpy (basedefault,DEVDATA"default.cfg");
	return;
    }

    if (M_CheckParm ("-comdev"))
    {
	gamemode = commercial;
	devparm = true;
/*
	if(plutonia)
	    D_AddFile (DEVDATA"plutonia.wad");
	else if(tnt)
	    D_AddFile (DEVDATA"tnt.wad");
	else*/
	    D_AddFile (DEVDATA"doom2.wad");
	    
	D_AddFile (DEVMAPS"cdata/texture1.lmp");
	D_AddFile (DEVMAPS"cdata/pnames.lmp");
	strcpy (basedefault,DEVDATA"default.cfg");
	return;
    }

    if ( !access (doom2fwad,R_OK) )
    {
	gamemode = commercial;
	// C'est ridicule!
	// Let's handle languages in config files, okay?
	language = french;
	//printf("French version\n");
    WriteDebug("French version?\n");
	D_AddFile (doom2fwad);
	return;
    }

    if ( !access (doom2wad,R_OK) )
    {
	gamemode = commercial;
	D_AddFile (doom2wad);
	return;
    }

    if ( !access (plutoniawad, R_OK ) )
    {
      gamemode = commercial;
      plutonia = TRUE;
      tnt = FALSE;
      D_AddFile (plutoniawad);
      return;
    }

    if ( !access ( tntwad, R_OK ) )
    {
      gamemode = commercial;
      tnt = TRUE;
      plutonia = FALSE;
      D_AddFile (tntwad);
      return;
    }

    if ( !access (doomuwad,R_OK) )
       {
        gamemode = retail;
        D_AddFile (doomuwad);
        return;
       }

    if ( !access (doomwad,R_OK) )
       {
        gamemode = registered;
        D_AddFile (doomwad);
        return;
       }

    if ( !access (doom1wad,R_OK) )
    {
      gamemode = shareware;
      D_AddFile (doom1wad);
      return;
    }

    //printf("Game mode indeterminate.\n");
    WriteDebug("Game mode indeterminate.\n");
    gamemode = indetermined;

    // We don't abort. Let's see what the PWAD contains.
    //exit(1);
    //I_Error ("Game mode indeterminate\n");
}

//
// Find a Response File
//
void FindResponseFile (void)
{
    int             i;
#define MAXARGVS        100
	
    for (i = 1;i < myargc;i++)
	if (myargv[i][0] == '@')
	{
	    FILE *          handle;
	    int             size;
	    int             k;
	    int             index;
	    int             indexinfile;
	    char    *infile;
	    char    *file;
	    char    *moreargs[20];
	    char    *firstargv;
			
	    // READ THE RESPONSE FILE INTO MEMORY
	    handle = fopen (&myargv[i][1],"rb");
	    if (!handle)
	    {
		printf ("\nNo such response file!");
		exit(1);
	    }
	    printf("Found response file %s!\n",&myargv[i][1]);
	    fseek (handle,0,SEEK_END);
	    size = ftell(handle);
	    fseek (handle,0,SEEK_SET);
	    file = malloc (size);
	    fread (file,size,1,handle);
	    fclose (handle);
			
	    // KEEP ALL CMDLINE ARGS FOLLOWING @RESPONSEFILE ARG
	    for (index = 0,k = i+1; k < myargc; k++)
		moreargs[index++] = myargv[k];
			
	    firstargv = myargv[0];
	    myargv = malloc(sizeof(char *)*MAXARGVS);
	    memset(myargv,0,sizeof(char *)*MAXARGVS);
	    myargv[0] = firstargv;
			
	    infile = file;
	    indexinfile = k = 0;
	    indexinfile++;  // SKIP PAST ARGV[0] (KEEP IT)
	    do
	    {
		myargv[indexinfile++] = infile+k;
		while(k < size &&
		      ((*(infile+k)>= ' '+1) && (*(infile+k)<='z')))
		    k++;
		*(infile+k) = 0;
		while(k < size &&
		      ((*(infile+k)<= ' ') || (*(infile+k)>'z')))
		    k++;
	    } while(k < size);
			
	    for (k = 0;k < index;k++)
		myargv[indexinfile++] = moreargs[k];
	    myargc = indexinfile;
	
	    // DISPLAY ARGS
	    printf("%d command-line args:\n",myargc);
	    for (k=1;k<myargc;k++)
		printf("%s\n",myargv[k]);

	    break;
	}
}


//
// D_DoomMain
//
void D_DoomMain (void)
{
    int             p;
    char                    file[256];

    //FindResponseFile();

    IdentifyVersion();

    setbuf(stdout, NULL);
    modifiedgame = false;

    nomonsters = M_CheckParm ("-nomonsters");
    respawnparm = M_CheckParm ("-respawn");
    fastparm = M_CheckParm ("-fast");
    devparm = M_CheckParm ("-devparm");
    if (M_CheckParm ("-altdeath"))
	deathmatch = 2;
    else if (M_CheckParm ("-deathmatch"))
	deathmatch = 1;

    if (devparm)
//	printf(D_DEVSTR);
    WriteDebug(D_DEVSTR);
    
    if (M_CheckParm("-cdrom"))
    {
	printf(D_CDROM);
	//mkdir("c:\\doomdata",0); // What's the ",0" for? Oh yeah, permissions...
	mkdir("c:\\doomdata");
	strcpy (basedefault,"c:/doomdata/default.cfg");
    }	
    
    // turbo option
    if ( (p=M_CheckParm ("-turbo")) )
    {
	int     scale = 200;
	extern int forwardmove[2];
	extern int sidemove[2];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产髙清在线看国产毛片| 99国产精品国产精品久久| 成人动漫在线一区| 久久综合资源网| 国内久久婷婷综合| 日韩视频免费观看高清完整版 | 色偷偷88欧美精品久久久| 久久久精品黄色| 国产精品亚洲视频| 国产欧美日韩在线| 国产成人一区在线| 久久蜜桃av一区二区天堂| 国产在线精品免费| 欧美一级片在线| 青青青爽久久午夜综合久久午夜| 欧美日韩国产综合一区二区| 91福利国产精品| 亚洲电影中文字幕在线观看| 精品88久久久久88久久久| 99久久免费视频.com| 亚洲一区二区三区自拍| 欧美一二三四在线| 成人黄色在线看| 视频一区免费在线观看| 国产婷婷一区二区| 欧美中文一区二区三区| 寂寞少妇一区二区三区| 日韩毛片在线免费观看| 日韩视频一区二区在线观看| av在线不卡网| 免费日韩伦理电影| 亚洲欧美激情小说另类| 欧美成人aa大片| 91麻豆福利精品推荐| 蜜臀av一区二区在线免费观看 | 欧美国产一区二区| 欧美日韩在线精品一区二区三区激情| 国内不卡的二区三区中文字幕 | 国产不卡免费视频| 亚洲福利一区二区三区| 中文字幕精品综合| 欧美一区二区视频网站| 色综合天天综合在线视频| 国产一区二区三区国产| 亚洲图片欧美视频| 亚洲国产精品ⅴa在线观看| 欧美疯狂做受xxxx富婆| www.亚洲精品| 狠狠色伊人亚洲综合成人| 亚洲影院免费观看| 中文字幕欧美日本乱码一线二线 | 精品久久久久久久一区二区蜜臀| 成人一区在线观看| 久久精品国产99| 亚洲一区在线观看免费观看电影高清| 国产日韩欧美在线一区| 3d动漫精品啪啪一区二区竹菊| 9l国产精品久久久久麻豆| 国内久久精品视频| 裸体健美xxxx欧美裸体表演| 亚洲小说欧美激情另类| 日韩一区欧美小说| 国产日本亚洲高清| www国产成人免费观看视频 深夜成人网| 精品视频在线视频| 91久久久免费一区二区| 不卡一区二区三区四区| 国产69精品久久777的优势| 国产一区二区久久| 激情文学综合丁香| 久久er精品视频| 久久精品国产精品亚洲精品| 日韩黄色一级片| 午夜av区久久| 五月激情综合婷婷| 石原莉奈在线亚洲三区| 爽好久久久欧美精品| 亚洲成人久久影院| 亚洲大片精品永久免费| 亚洲综合精品久久| 亚洲电影一级黄| 日韩精品国产精品| 久久精品国产网站| 韩国精品主播一区二区在线观看| 九九热在线视频观看这里只有精品| 日韩不卡一区二区| 久久www免费人成看片高清| 狠狠色狠狠色合久久伊人| 久久国产精品露脸对白| 国产精品乡下勾搭老头1| 成人中文字幕在线| 99精品热视频| 91欧美一区二区| 色悠久久久久综合欧美99| 欧美亚洲综合另类| 欧美日韩精品免费| 日韩欧美自拍偷拍| 国产午夜一区二区三区| 一区精品在线播放| 怡红院av一区二区三区| 日韩黄色小视频| 国产成人在线视频网址| 99精品视频在线观看| 欧美日韩在线三区| 久久综合色婷婷| 综合久久国产九一剧情麻豆| 午夜久久电影网| 国产一区 二区 三区一级| av电影在线观看一区| 欧美色图激情小说| 精品黑人一区二区三区久久| 国产精品毛片久久久久久| 亚洲资源在线观看| 精品午夜一区二区三区在线观看| 国产成人av电影在线| 91久久国产最好的精华液| 日韩一区二区三区视频在线 | 亚洲色图色小说| 日本欧美韩国一区三区| 韩国成人在线视频| 色噜噜久久综合| 日韩一区二区三区高清免费看看| 国产农村妇女毛片精品久久麻豆 | 亚洲人快播电影网| 美女在线视频一区| 色成人在线视频| 久久久久久久久久久久久久久99 | 色久综合一二码| 欧美xxxx在线观看| 一区二区三区在线播| 国产一区二区网址| 欧美精品免费视频| 亚洲日本va午夜在线影院| 麻豆成人久久精品二区三区红| 色综合久久中文综合久久牛| 欧美大片一区二区| 婷婷久久综合九色综合绿巨人| 成人亚洲精品久久久久软件| 91精品国产高清一区二区三区蜜臀| 中文字幕欧美日韩一区| 久久精品999| 精品视频一区三区九区| 中文字幕欧美激情一区| 精品中文av资源站在线观看| 欧美日韩综合一区| 亚洲欧美一区二区三区国产精品 | 26uuu精品一区二区在线观看| 亚洲一区二区在线播放相泽| av成人免费在线| 久久精品这里都是精品| 久久er精品视频| 日韩欧美高清dvd碟片| 亚洲成人av电影在线| 日本道免费精品一区二区三区| 国产精品伦理一区二区| 国产精品一区二区久久不卡| 日韩一区二区三区视频在线| 爽好久久久欧美精品| 欧美亚洲国产一区二区三区va| 亚洲日本在线视频观看| 99久久精品久久久久久清纯| 国产午夜精品理论片a级大结局| 毛片av一区二区三区| 欧美精品在线观看播放| 午夜一区二区三区视频| 色94色欧美sute亚洲线路一久| 一区精品在线播放| av高清久久久| 亚洲丝袜精品丝袜在线| 色综合天天综合网国产成人综合天| 中文乱码免费一区二区| 国产.精品.日韩.另类.中文.在线.播放| 2020国产成人综合网| 国产精选一区二区三区| 国产丝袜欧美中文另类| 成人精品一区二区三区中文字幕| 欧美国产精品一区二区三区| 成人教育av在线| 最新日韩av在线| 在线一区二区视频| 亚洲一区二区中文在线| 7777精品久久久大香线蕉| 免费在线观看不卡| 久久免费偷拍视频| 成人美女视频在线观看| 亚洲男人的天堂一区二区| 日本精品一区二区三区四区的功能| 亚洲日本乱码在线观看| 欧美视频一区在线观看| 奇米精品一区二区三区在线观看| 日韩免费看的电影| 国产91丝袜在线观看| 亚洲精品高清视频在线观看| 欧美日韩二区三区| 激情综合亚洲精品| 亚洲欧洲日产国码二区| 欧美日韩在线电影| 国产精品亚洲午夜一区二区三区| 亚洲视频免费在线观看| 91精品国产乱|