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

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

?? cl_ents.java

?? JAKE2用JAVA寫的queck2的3D游戲開發引擎
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
			state.pmove.pm_type = Defines.PM_FREEZE; // demo playback		//		// parse the rest of the player_state_t		//		if ((flags & Defines.PS_VIEWOFFSET) != 0) {			state.viewoffset[0] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.viewoffset[1] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.viewoffset[2] = MSG.ReadChar(Globals.net_message) * 0.25f;		}		if ((flags & Defines.PS_VIEWANGLES) != 0) {			state.viewangles[0] = MSG.ReadAngle16(Globals.net_message);			state.viewangles[1] = MSG.ReadAngle16(Globals.net_message);			state.viewangles[2] = MSG.ReadAngle16(Globals.net_message);		}		if ((flags & Defines.PS_KICKANGLES) != 0) {			state.kick_angles[0] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.kick_angles[1] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.kick_angles[2] = MSG.ReadChar(Globals.net_message) * 0.25f;		}		if ((flags & Defines.PS_WEAPONINDEX) != 0) {			state.gunindex = MSG.ReadByte(Globals.net_message);		}		if ((flags & Defines.PS_WEAPONFRAME) != 0) {			state.gunframe = MSG.ReadByte(Globals.net_message);			state.gunoffset[0] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.gunoffset[1] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.gunoffset[2] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.gunangles[0] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.gunangles[1] = MSG.ReadChar(Globals.net_message) * 0.25f;			state.gunangles[2] = MSG.ReadChar(Globals.net_message) * 0.25f;		}		if ((flags & Defines.PS_BLEND) != 0) {			state.blend[0] = MSG.ReadByte(Globals.net_message) / 255.0f;			state.blend[1] = MSG.ReadByte(Globals.net_message) / 255.0f;			state.blend[2] = MSG.ReadByte(Globals.net_message) / 255.0f;			state.blend[3] = MSG.ReadByte(Globals.net_message) / 255.0f;		}		if ((flags & Defines.PS_FOV) != 0)			state.fov = MSG.ReadByte(Globals.net_message);		if ((flags & Defines.PS_RDFLAGS) != 0)			state.rdflags = MSG.ReadByte(Globals.net_message);		// parse stats		statbits = MSG.ReadLong(Globals.net_message);		for (i = 0; i < Defines.MAX_STATS; i++)			if ((statbits & (1 << i)) != 0)				state.stats[i] = MSG.ReadShort(Globals.net_message);	}	/*	 * ================== CL_FireEntityEvents	 * 	 * ==================	 */	public static void FireEntityEvents(frame_t frame) {		entity_state_t s1;		int pnum, num;		for (pnum = 0; pnum < frame.num_entities; pnum++) {			num = (frame.parse_entities + pnum) & (Defines.MAX_PARSE_ENTITIES - 1);			s1 = Globals.cl_parse_entities[num];			if (s1.event != 0)				CL_fx.EntityEvent(s1);			// EF_TELEPORTER acts like an event, but is not cleared each frame			if ((s1.effects & Defines.EF_TELEPORTER) != 0)				CL_fx.TeleporterParticles(s1);		}	}	/*	 * ================ CL_ParseFrame ================	 */	public static void ParseFrame() {		int cmd;		int len;		frame_t old;		//memset( cl.frame, 0, sizeof(cl.frame));		Globals.cl.frame.reset();		Globals.cl.frame.serverframe = MSG.ReadLong(Globals.net_message);		Globals.cl.frame.deltaframe = MSG.ReadLong(Globals.net_message);		Globals.cl.frame.servertime = Globals.cl.frame.serverframe * 100;		// BIG HACK to let old demos continue to work		if (Globals.cls.serverProtocol != 26)			Globals.cl.surpressCount = MSG.ReadByte(Globals.net_message);		if (Globals.cl_shownet.value == 3)			Com.Printf("   frame:" + Globals.cl.frame.serverframe + "  delta:" + Globals.cl.frame.deltaframe + "\n");		// If the frame is delta compressed from data that we		// no longer have available, we must suck up the rest of		// the frame, but not use it, then ask for a non-compressed		// message		if (Globals.cl.frame.deltaframe <= 0) {			Globals.cl.frame.valid = true; // uncompressed frame			old = null;			Globals.cls.demowaiting = false; // we can start recording now		} else {			old = Globals.cl.frames[Globals.cl.frame.deltaframe & Defines.UPDATE_MASK];			if (!old.valid) { // should never happen				Com.Printf("Delta from invalid frame (not supposed to happen!).\n");			}			if (old.serverframe != Globals.cl.frame.deltaframe) { // The frame																  // that the																  // server did																  // the delta																  // from				// is too old, so we can't reconstruct it properly.				Com.Printf("Delta frame too old.\n");			} else if (Globals.cl.parse_entities - old.parse_entities > Defines.MAX_PARSE_ENTITIES - 128) {				Com.Printf("Delta parse_entities too old.\n");			} else				Globals.cl.frame.valid = true; // valid delta parse		}		// clamp time		if (Globals.cl.time > Globals.cl.frame.servertime)			Globals.cl.time = Globals.cl.frame.servertime;		else if (Globals.cl.time < Globals.cl.frame.servertime - 100)			Globals.cl.time = Globals.cl.frame.servertime - 100;		// read areabits		len = MSG.ReadByte(Globals.net_message);		MSG.ReadData(Globals.net_message, Globals.cl.frame.areabits, len);		// read playerinfo		cmd = MSG.ReadByte(Globals.net_message);		CL_parse.SHOWNET(CL_parse.svc_strings[cmd]);		if (cmd != Defines.svc_playerinfo)			Com.Error(Defines.ERR_DROP, "CL_ParseFrame: not playerinfo");		ParsePlayerstate(old, Globals.cl.frame);		// read packet entities		cmd = MSG.ReadByte(Globals.net_message);		CL_parse.SHOWNET(CL_parse.svc_strings[cmd]);		if (cmd != Defines.svc_packetentities)			Com.Error(Defines.ERR_DROP, "CL_ParseFrame: not packetentities");		ParsePacketEntities(old, Globals.cl.frame);		// save the frame off in the backup array for later delta comparisons		Globals.cl.frames[Globals.cl.frame.serverframe & Defines.UPDATE_MASK].set(Globals.cl.frame);		if (Globals.cl.frame.valid) {			// getting a valid frame message ends the connection process			if (Globals.cls.state != Defines.ca_active) {				Globals.cls.state = Defines.ca_active;				Globals.cl.force_refdef = true;				Globals.cl.predicted_origin[0] = Globals.cl.frame.playerstate.pmove.origin[0] * 0.125f;				Globals.cl.predicted_origin[1] = Globals.cl.frame.playerstate.pmove.origin[1] * 0.125f;				Globals.cl.predicted_origin[2] = Globals.cl.frame.playerstate.pmove.origin[2] * 0.125f;				Math3D.VectorCopy(Globals.cl.frame.playerstate.viewangles, Globals.cl.predicted_angles);				if (Globals.cls.disable_servercount != Globals.cl.servercount && Globals.cl.refresh_prepped)					SCR.EndLoadingPlaque(); // get rid of loading plaque			}			Globals.cl.sound_prepped = true; // can start mixing ambient sounds			// fire entity events			FireEntityEvents(Globals.cl.frame);			CL_pred.CheckPredictionError();		}	}	/*	 * ==========================================================================	 * 	 * INTERPOLATE BETWEEN FRAMES TO GET RENDERING PARMS	 * 	 * ==========================================================================	 */	// stack variable	private static final entity_t ent = new entity_t();	/*	 * =============== 	 * CL_AddPacketEntities	 * ===============	 */	static void AddPacketEntities(frame_t frame) {		entity_state_t s1;		float autorotate;		int i;		int pnum;		centity_t cent;		int autoanim;		clientinfo_t ci;		int effects, renderfx;		// bonus items rotate at a fixed rate		autorotate = Math3D.anglemod(Globals.cl.time / 10);		// brush models can auto animate their frames		autoanim = 2 * Globals.cl.time / 1000;		//memset( ent, 0, sizeof(ent));		ent.clear();		for (pnum = 0; pnum < frame.num_entities; pnum++) {			s1 = Globals.cl_parse_entities[(frame.parse_entities + pnum) & (Defines.MAX_PARSE_ENTITIES - 1)];			cent = Globals.cl_entities[s1.number];			effects = s1.effects;			renderfx = s1.renderfx;			// set frame			if ((effects & Defines.EF_ANIM01) != 0)				ent.frame = autoanim & 1;			else if ((effects & Defines.EF_ANIM23) != 0)				ent.frame = 2 + (autoanim & 1);			else if ((effects & Defines.EF_ANIM_ALL) != 0)				ent.frame = autoanim;			else if ((effects & Defines.EF_ANIM_ALLFAST) != 0)				ent.frame = Globals.cl.time / 100;			else				ent.frame = s1.frame;			// quad and pent can do different things on client			if ((effects & Defines.EF_PENT) != 0) {				effects &= ~Defines.EF_PENT;				effects |= Defines.EF_COLOR_SHELL;				renderfx |= Defines.RF_SHELL_RED;			}			if ((effects & Defines.EF_QUAD) != 0) {				effects &= ~Defines.EF_QUAD;				effects |= Defines.EF_COLOR_SHELL;				renderfx |= Defines.RF_SHELL_BLUE;			}			//	  ======			//	   PMM			if ((effects & Defines.EF_DOUBLE) != 0) {				effects &= ~Defines.EF_DOUBLE;				effects |= Defines.EF_COLOR_SHELL;				renderfx |= Defines.RF_SHELL_DOUBLE;			}			if ((effects & Defines.EF_HALF_DAMAGE) != 0) {				effects &= ~Defines.EF_HALF_DAMAGE;				effects |= Defines.EF_COLOR_SHELL;				renderfx |= Defines.RF_SHELL_HALF_DAM;			}			//	   pmm			//	  ======			ent.oldframe = cent.prev.frame;			ent.backlerp = 1.0f - Globals.cl.lerpfrac;			if ((renderfx & (Defines.RF_FRAMELERP | Defines.RF_BEAM)) != 0) {				// step origin discretely, because the frames				// do the animation properly				Math3D.VectorCopy(cent.current.origin, ent.origin);				Math3D.VectorCopy(cent.current.old_origin, ent.oldorigin);			} else { // interpolate origin				for (i = 0; i < 3; i++) {					ent.origin[i] = ent.oldorigin[i] = cent.prev.origin[i] + Globals.cl.lerpfrac							* (cent.current.origin[i] - cent.prev.origin[i]);				}			}			// create a new entity			// tweak the color of beams			if ((renderfx & Defines.RF_BEAM) != 0) { // the four beam colors are													 // encoded in 32 bits of													 // skinnum (hack)				ent.alpha = 0.30f;				ent.skinnum = (s1.skinnum >> ((Globals.rnd.nextInt(4)) * 8)) & 0xff;				Math.random();				ent.model = null;			} else {				// set skin				if (s1.modelindex == 255) { // use custom player skin					ent.skinnum = 0;					ci = Globals.cl.clientinfo[s1.skinnum & 0xff];					ent.skin = ci.skin;					ent.model = ci.model;					if (null == ent.skin || null == ent.model) {						ent.skin = Globals.cl.baseclientinfo.skin;						ent.model = Globals.cl.baseclientinfo.model;					}					//	  ============					//	  PGM					if ((renderfx & Defines.RF_USE_DISGUISE) != 0) {						if (ent.skin.name.startsWith("players/male")) {							ent.skin = Globals.re.RegisterSkin("players/male/disguise.pcx");							ent.model = Globals.re.RegisterModel("players/male/tris.md2");						} else if (ent.skin.name.startsWith("players/female")) {							ent.skin = Globals.re.RegisterSkin("players/female/disguise.pcx");							ent.model = Globals.re.RegisterModel("players/female/tris.md2");						} else if (ent.skin.name.startsWith("players/cyborg")) {							ent.skin = Globals.re.RegisterSkin("players/cyborg/disguise.pcx");							ent.model = Globals.re.RegisterModel("players/cyborg/tris.md2");						}					}					//	  PGM					//	  ============				} else {					ent.skinnum = s1.skinnum;					ent.skin = null;					ent.model = Globals.cl.model_draw[s1.modelindex];				}			}			// only used for black hole model right now, FIXME: do better			if (renderfx == Defines.RF_TRANSLUCENT)				ent.alpha = 0.70f;			// render effects (fullbright, translucent, etc)			if ((effects & Defines.EF_COLOR_SHELL) != 0)				ent.flags = 0; // renderfx go on color shell entity			else				ent.flags = renderfx;			// calculate angles			if ((effects & Defines.EF_ROTATE) != 0) { // some bonus items													  // auto-rotate				ent.angles[0] = 0;				ent.angles[1] = autorotate;				ent.angles[2] = 0;			}			// RAFAEL			else if ((effects & Defines.EF_SPINNINGLIGHTS) != 0) {				ent.angles[0] = 0;				ent.angles[1] = Math3D.anglemod(Globals.cl.time / 2) + s1.angles[1];				ent.angles[2] = 180;				{					float[] forward = { 0, 0, 0 };					float[] start = { 0, 0, 0 };					Math3D.AngleVectors(ent.angles, forward, null, null);					Math3D.VectorMA(ent.origin, 64, forward, start);					V.AddLight(start, 100, 1, 0, 0);				}			} else { // interpolate angles				float a1, a2;				for (i = 0; i < 3; i++) {					a1 = cent.current.angles[i];					a2 = cent.prev.angles[i];					ent.angles[i] = Math3D.LerpAngle(a2, a1, Globals.cl.lerpfrac);				}			}			if (s1.number == Globals.cl.playernum + 1) {				ent.flags |= Defines.RF_VIEWERMODEL; // only draw from mirrors				// FIXME: still pass to refresh				if ((effects & Defines.EF_FLAG1) != 0)					V.AddLight(ent.origin, 225, 1.0f, 0.1f, 0.1f);				else if ((effects & Defines.EF_FLAG2) != 0)					V.AddLight(ent.origin, 225, 0.1f, 0.1f, 1.0f);				else if ((effects & Defines.EF_TAGTRAIL) != 0) //PGM					V.AddLight(ent.origin, 225, 1.0f, 1.0f, 0.0f); //PGM				else if ((effects & Defines.EF_TRACKERTRAIL) != 0) //PGM					V.AddLight(ent.origin, 225, -1.0f, -1.0f, -1.0f); //PGM				continue;			}			// if set to invisible, skip			if (s1.modelindex == 0)				continue;			if ((effects & Defines.EF_BFG) != 0) {				ent.flags |= Defines.RF_TRANSLUCENT;				ent.alpha = 0.30f;			}			// RAFAEL			if ((effects & Defines.EF_PLASMA) != 0) {				ent.flags |= Defines.RF_TRANSLUCENT;				ent.alpha = 0.6f;			}			if ((effects & Defines.EF_SPHERETRANS) != 0) {				ent.flags |= Defines.RF_TRANSLUCENT;				// PMM - *sigh* yet more EF overloading				if ((effects & Defines.EF_TRACKERTRAIL) != 0)					ent.alpha = 0.6f;				else					ent.alpha = 0.3f;			}			//	  pmm			// add to refresh list			V.AddEntity(ent);			// color shells generate a seperate entity for the main model			if ((effects & Defines.EF_COLOR_SHELL) != 0) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产髙清在线看国产毛片| 国产乱理伦片在线观看夜一区| 97成人超碰视| 蜜臀av国产精品久久久久| 欧美午夜寂寞影院| 日本高清无吗v一区| 亚洲午夜影视影院在线观看| 色综合天天综合网天天狠天天| 亚洲视频在线一区观看| 99久久久久免费精品国产 | 色哟哟一区二区三区| 国产精品久久二区二区| 成人av中文字幕| 自拍偷拍亚洲综合| 91国偷自产一区二区三区观看| 亚洲第一精品在线| 国产高清成人在线| 国产精品国模大尺度视频| 91片黄在线观看| 亚洲午夜激情网页| 精品国精品自拍自在线| av一二三不卡影片| 午夜激情久久久| 精品免费日韩av| 成人精品一区二区三区中文字幕 | 一区二区三区资源| 69精品人人人人| 国产精品一区2区| 椎名由奈av一区二区三区| 欧美亚洲免费在线一区| 美女诱惑一区二区| 亚洲欧美另类图片小说| 欧美一区二区三区在| 国产精品性做久久久久久| 亚洲六月丁香色婷婷综合久久 | 一区二区中文字幕在线| 国产日韩欧美精品一区| 亚洲精品国产一区二区精华液| **性色生活片久久毛片| 欧美伊人精品成人久久综合97| 精品一区二区精品| 亚洲天堂精品在线观看| 欧美变态凌虐bdsm| 色94色欧美sute亚洲线路一久 | 国产成人小视频| 日韩精品福利网| 国产精品久久久久久久久图文区| 69堂国产成人免费视频| 91免费精品国自产拍在线不卡| 欧美日韩色一区| 一区二区欧美国产| 欧美一区二区三区免费观看视频| 奇米在线7777在线精品| 欧美在线看片a免费观看| 一区二区三区四区中文字幕| 国产成人超碰人人澡人人澡| 久久久美女毛片| 国产风韵犹存在线视精品| 一区二区在线电影| 国产成人免费在线观看| 亚洲欧美日韩中文字幕一区二区三区 | 99免费精品视频| 男人的j进女人的j一区| 一区二区三区高清不卡| 中文字幕免费不卡在线| 久久综合久久鬼色| 日韩精品中文字幕一区| 欧美aaa在线| 午夜精品久久久久久久99水蜜桃 | 日韩精品一区第一页| 美女脱光内衣内裤视频久久影院| 欧美日韩aaa| 成人免费一区二区三区视频| 国产电影精品久久禁18| 亚洲男同性视频| 欧美成人vr18sexvr| 国产成人精品影视| 亚洲综合在线五月| 久久男人中文字幕资源站| 五月综合激情婷婷六月色窝| 国产精品一区二区x88av| 国产精品久久久久aaaa樱花| 日本精品裸体写真集在线观看| 麻豆成人91精品二区三区| 精品久久五月天| 免费在线观看成人| 欧美精品一卡二卡| 亚洲一区视频在线| 91蜜桃免费观看视频| 欧美不卡在线视频| 久久69国产一区二区蜜臀| 国产精品另类一区| 日韩一级黄色大片| 日韩一级二级三级| 日本高清不卡一区| 色婷婷狠狠综合| 丰满亚洲少妇av| 国产高清视频一区| 国产69精品一区二区亚洲孕妇| 亚洲视频免费观看| 99精品在线免费| 色香色香欲天天天影视综合网| 美日韩一级片在线观看| 尤物在线观看一区| 亚洲精品综合在线| 亚洲成人黄色影院| 免费成人结看片| 国产精品一区在线观看乱码| 成人av在线资源| 欧美午夜寂寞影院| 欧美精品一区二区三区蜜桃| 2017欧美狠狠色| 自拍偷拍国产亚洲| 日本成人中文字幕| 国产成人亚洲精品狼色在线| 色综合天天综合| 欧美一卡二卡三卡| 欧美韩国日本一区| 亚洲一区二区三区不卡国产欧美| 日韩成人一级片| 成人午夜在线播放| 欧美日本一道本在线视频| 久久久.com| 亚洲一区在线视频| 国内一区二区视频| 一区二区三区在线观看国产| 日韩二区三区四区| 成人精品国产一区二区4080| 欧美欧美欧美欧美首页| 欧美激情一区二区三区不卡 | 亚洲影视资源网| 奇米777欧美一区二区| 成人免费视频视频在线观看免费| 欧美高清精品3d| 成人免费在线视频| 国产在线精品一区二区| 欧美日韩一区二区在线观看视频| 久久精品人人做| 石原莉奈在线亚洲二区| 不卡一区在线观看| 久久综合久久综合亚洲| 无码av中文一区二区三区桃花岛| 福利一区在线观看| 欧美一级艳片视频免费观看| 亚洲女与黑人做爰| 在线中文字幕不卡| 国产精品丝袜在线| av午夜精品一区二区三区| 26uuu色噜噜精品一区二区| 亚洲免费在线视频一区 二区| 久久蜜桃一区二区| 天天免费综合色| 一本色道综合亚洲| 国产农村妇女精品| 国产一区二区不卡在线| 欧美一区二区三区影视| 视频一区中文字幕| 欧美色精品天天在线观看视频| 亚洲欧美一区二区三区极速播放| 国产成人午夜99999| 久久亚洲精品国产精品紫薇| 免费成人av在线播放| 欧美一级xxx| 日韩黄色在线观看| 678五月天丁香亚洲综合网| 欧美精品在欧美一区二区少妇| 亚洲一区中文在线| 欧美日精品一区视频| 亚洲综合无码一区二区| 在线观看国产日韩| 一二三区精品视频| 欧美网站大全在线观看| 亚洲综合一区二区精品导航| 欧美唯美清纯偷拍| 三级在线观看一区二区 | 欧美色综合久久| 一区二区激情视频| 欧美性感一区二区三区| 亚洲国产精品自拍| 韩国一区二区在线观看| 精品国产免费久久| 成人亚洲精品久久久久软件| 国产精品网曝门| 91免费看`日韩一区二区| 亚洲国产精品久久艾草纯爱| 欧美老年两性高潮| 免费在线观看一区二区三区| 欧美精品一区二区三区一线天视频| 国产综合久久久久久鬼色| 国产日韩精品一区二区三区| www.66久久| 亚洲va国产va欧美va观看| 日韩一级成人av| 国产一区 二区| 99精品久久只有精品| 一区二区三区免费在线观看| 欧美精品视频www在线观看 | 亚洲国产视频一区| 欧美一区二区三区日韩| 国产成人综合在线播放|