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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? q_shwin.c

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? C
字號(hào):
/*
Copyright (C) 1997-2001 Id Software, Inc.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

#include "../qcommon/qcommon.h"
#include "winquake.h"
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <direct.h>
#include <io.h>
#include <conio.h>

//===============================================================================

int		hunkcount;


byte	*membase;
int		hunkmaxsize;
int		cursize;

#define	VIRTUAL_ALLOC

void *Hunk_Begin (int maxsize)
{
	// reserve a huge chunk of memory, but don't commit any yet
	cursize = 0;
	hunkmaxsize = maxsize;
#ifdef VIRTUAL_ALLOC
	membase = VirtualAlloc (NULL, maxsize, MEM_RESERVE, PAGE_NOACCESS);
#else
	membase = malloc (maxsize);
	memset (membase, 0, maxsize);
#endif
	if (!membase)
		Sys_Error ("VirtualAlloc reserve failed");
	return (void *)membase;
}

void *Hunk_Alloc (int size)
{
	void	*buf;

	// round to cacheline
	size = (size+31)&~31;

#ifdef VIRTUAL_ALLOC
	// commit pages as needed
//	buf = VirtualAlloc (membase+cursize, size, MEM_COMMIT, PAGE_READWRITE);
	buf = VirtualAlloc (membase, cursize+size, MEM_COMMIT, PAGE_READWRITE);
	if (!buf)
	{
		FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &buf, 0, NULL);
		Sys_Error ("VirtualAlloc commit failed.\n%s", buf);
	}
#endif
	cursize += size;
	if (cursize > hunkmaxsize)
		Sys_Error ("Hunk_Alloc overflow");

	return (void *)(membase+cursize-size);
}

int Hunk_End (void)
{

	// free the remaining unused virtual memory
#if 0
	void	*buf;

	// write protect it
	buf = VirtualAlloc (membase, cursize, MEM_COMMIT, PAGE_READONLY);
	if (!buf)
		Sys_Error ("VirtualAlloc commit failed");
#endif

	hunkcount++;
//Com_Printf ("hunkcount: %i\n", hunkcount);
	return cursize;
}

void Hunk_Free (void *base)
{
	if ( base )
#ifdef VIRTUAL_ALLOC
		VirtualFree (base, 0, MEM_RELEASE);
#else
		free (base);
#endif

	hunkcount--;
}

//===============================================================================


/*
================
Sys_Milliseconds
================
*/
int	curtime;
int Sys_Milliseconds (void)
{
	static int		base;
	static qboolean	initialized = false;

	if (!initialized)
	{	// let base retain 16 bits of effectively random data
		base = timeGetTime() & 0xffff0000;
		initialized = true;
	}
	curtime = timeGetTime() - base;

	return curtime;
}

void Sys_Mkdir (char *path)
{
	_mkdir (path);
}

//============================================

char	findbase[MAX_OSPATH];
char	findpath[MAX_OSPATH];
int		findhandle;

static qboolean CompareAttributes( unsigned found, unsigned musthave, unsigned canthave )
{
	if ( ( found & _A_RDONLY ) && ( canthave & SFF_RDONLY ) )
		return false;
	if ( ( found & _A_HIDDEN ) && ( canthave & SFF_HIDDEN ) )
		return false;
	if ( ( found & _A_SYSTEM ) && ( canthave & SFF_SYSTEM ) )
		return false;
	if ( ( found & _A_SUBDIR ) && ( canthave & SFF_SUBDIR ) )
		return false;
	if ( ( found & _A_ARCH ) && ( canthave & SFF_ARCH ) )
		return false;

	if ( ( musthave & SFF_RDONLY ) && !( found & _A_RDONLY ) )
		return false;
	if ( ( musthave & SFF_HIDDEN ) && !( found & _A_HIDDEN ) )
		return false;
	if ( ( musthave & SFF_SYSTEM ) && !( found & _A_SYSTEM ) )
		return false;
	if ( ( musthave & SFF_SUBDIR ) && !( found & _A_SUBDIR ) )
		return false;
	if ( ( musthave & SFF_ARCH ) && !( found & _A_ARCH ) )
		return false;

	return true;
}

char *Sys_FindFirst (char *path, unsigned musthave, unsigned canthave )
{
	struct _finddata_t findinfo;

	if (findhandle)
		Sys_Error ("Sys_BeginFind without close");
	findhandle = 0;

	COM_FilePath (path, findbase);
	findhandle = _findfirst (path, &findinfo);
	if (findhandle == -1)
		return NULL;
	if ( !CompareAttributes( findinfo.attrib, musthave, canthave ) )
		return NULL;
	Com_sprintf (findpath, sizeof(findpath), "%s/%s", findbase, findinfo.name);
	return findpath;
}

char *Sys_FindNext ( unsigned musthave, unsigned canthave )
{
	struct _finddata_t findinfo;

	if (findhandle == -1)
		return NULL;
	if (_findnext (findhandle, &findinfo) == -1)
		return NULL;
	if ( !CompareAttributes( findinfo.attrib, musthave, canthave ) )
		return NULL;

	Com_sprintf (findpath, sizeof(findpath), "%s/%s", findbase, findinfo.name);
	return findpath;
}

void Sys_FindClose (void)
{
	if (findhandle != -1)
		_findclose (findhandle);
	findhandle = 0;
}


//============================================

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品免费在线观看| www.av精品| 精品三级在线观看| 国产在线播精品第三| 久久综合国产精品| 国产精品一二一区| 国产精品色哟哟| 色婷婷av一区二区三区gif| 亚洲欧美一区二区不卡| 欧洲一区二区三区免费视频| 午夜精品久久久久久久99水蜜桃 | 国产精品一区二区在线播放| 日本一区二区视频在线观看| zzijzzij亚洲日本少妇熟睡| 亚洲精品成人悠悠色影视| 欧美日韩一区 二区 三区 久久精品| 午夜精品福利一区二区蜜股av| 日韩欧美你懂的| 国产不卡免费视频| 亚洲男人的天堂av| 日韩欧美色综合网站| 国产福利精品导航| 亚洲午夜精品17c| 26uuu亚洲综合色| 欧美在线观看一二区| 另类成人小视频在线| 中文字幕av一区二区三区| 欧美伊人精品成人久久综合97 | 日韩电影在线免费看| ww久久中文字幕| 在线免费视频一区二区| 麻豆91免费看| 亚洲精品成a人| 精品久久一区二区三区| 91在线视频官网| 美女视频黄频大全不卡视频在线播放| 欧美国产日韩精品免费观看| 欧美日韩精品高清| 国产激情一区二区三区四区| 一区二区三区高清在线| 2022国产精品视频| 欧美体内she精高潮| 国产精品亚洲午夜一区二区三区 | 色综合久久久久久久| 毛片一区二区三区| 一区二区三区自拍| 国产亚洲视频系列| 91精品国产免费久久综合| av中文字幕一区| 久久精品国产亚洲高清剧情介绍| 一区二区三区毛片| 欧美国产一区在线| 精品少妇一区二区三区在线播放 | 91麻豆国产福利在线观看| 麻豆免费看一区二区三区| 亚洲精品日产精品乱码不卡| 久久免费视频一区| 7777精品伊人久久久大香线蕉| 91蜜桃婷婷狠狠久久综合9色| 国内精品伊人久久久久影院对白| 亚洲一区二区精品视频| 国产精品国产三级国产普通话99 | 欧美日韩三级视频| aaa国产一区| 成人深夜在线观看| 成人小视频免费在线观看| 国产麻豆一精品一av一免费 | 蜜臀久久久99精品久久久久久| 亚洲一区视频在线| 亚洲精品视频在线看| 中文字幕不卡一区| 日本一区二区电影| 国产日韩欧美精品电影三级在线| 欧美精品一区二区三区高清aⅴ| 欧美性一级生活| 在线免费观看日韩欧美| 欧洲精品中文字幕| 欧美日韩国产中文| 欧美久久免费观看| 欧美色电影在线| 欧美日韩精品一二三区| 欧美日韩精品福利| 91精品国产色综合久久不卡电影| 欧美色精品在线视频| 7777女厕盗摄久久久| 欧美一区二区三区喷汁尤物| 69精品人人人人| 欧美成人三级电影在线| 亚洲精品在线网站| 日本一区二区不卡视频| 国产精品国产三级国产aⅴ无密码| 国产精品国产自产拍在线| 亚洲黄色小视频| 日韩国产欧美在线观看| 久久国产麻豆精品| 国产精品911| 91麻豆福利精品推荐| 欧美三级一区二区| 欧美成人官网二区| 欧美极品aⅴ影院| 欧美mv日韩mv国产网站| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲激情第一区| 免费人成在线不卡| 国产成人免费在线视频| 91麻豆国产福利在线观看| 91 com成人网| 国产欧美视频一区二区| 亚洲精品免费在线播放| 视频在线观看一区| 大陆成人av片| 91在线丨porny丨国产| 欧美久久高跟鞋激| 精品国产乱码久久久久久影片| 欧美激情综合五月色丁香 | 一区二区三区精品在线| 亚洲激情自拍视频| 久草中文综合在线| 91在线精品一区二区三区| 色婷婷激情综合| 精品嫩草影院久久| 亚洲免费看黄网站| 九九**精品视频免费播放| 本田岬高潮一区二区三区| 欧美日韩亚洲综合一区二区三区| 欧美一区二区三区电影| 亚洲欧美一区二区三区极速播放| 久久不见久久见中文字幕免费| 91麻豆免费视频| 久久精品人人爽人人爽| 亚洲专区一二三| 成人国产精品免费观看视频| 欧美精品丝袜中出| 亚洲免费色视频| 国产精品一级在线| 欧美一级xxx| 一区二区成人在线观看| 国产盗摄精品一区二区三区在线| 欧美日韩1234| 一区二区视频在线看| 成人教育av在线| 亚洲精品一线二线三线无人区| 亚洲一区二区三区视频在线播放| 粉嫩av一区二区三区粉嫩| 日韩三级视频中文字幕| 亚洲第一二三四区| 色综合久久久久综合| 国产欧美日韩一区二区三区在线观看| 视频一区二区国产| 欧美熟乱第一页| 亚洲黄色小说网站| 91女厕偷拍女厕偷拍高清| 国产亚洲精品7777| 精品一区二区三区久久| 欧美喷水一区二区| 亚洲一区免费在线观看| 91美女在线观看| 国产精品理论片在线观看| 国产福利一区二区三区视频在线| 日韩一区二区三区四区| 日韩精品一级中文字幕精品视频免费观看 | 欧美亚洲动漫另类| 一区二区成人在线| 在线观看国产精品网站| 亚洲免费观看高清完整版在线观看 | 国产mv日韩mv欧美| 国产无人区一区二区三区| 久久精品理论片| 日韩欧美一区二区三区在线| 日韩精品一卡二卡三卡四卡无卡| 欧美日韩一区二区三区高清| 亚洲精选视频在线| 色欧美片视频在线观看| 亚洲乱码中文字幕综合| 色视频欧美一区二区三区| 亚洲精品va在线观看| 欧洲av一区二区嗯嗯嗯啊| 亚洲夂夂婷婷色拍ww47| 欧美色倩网站大全免费| 爽好多水快深点欧美视频| 欧美一级日韩不卡播放免费| 精品无人码麻豆乱码1区2区 | 欧美老女人在线| 免费一级欧美片在线观看| 日韩视频中午一区| 国产精品中文欧美| 久久久av毛片精品| 91免费观看在线| 亚洲国产精品久久不卡毛片| 欧美精品 国产精品| 蜜臀精品久久久久久蜜臀| 精品国产乱码久久久久久老虎| 理论片日本一区| 欧美精彩视频一区二区三区| 成人av在线看| 一二三区精品视频| 精品国产123| 91丨九色丨黑人外教| 水野朝阳av一区二区三区| 久久色.com|