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

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

?? g_chase.c

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? C
字號:
/*
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 "g_local.h"

void UpdateChaseCam(edict_t *ent)
{
	vec3_t o, ownerv, goal;
	edict_t *targ;
	vec3_t forward, right;
	trace_t trace;
	int i;
	vec3_t oldgoal;
	vec3_t angles;

	// is our chase target gone?
	if (!ent->client->chase_target->inuse
		|| ent->client->chase_target->client->resp.spectator) {
		edict_t *old = ent->client->chase_target;
		ChaseNext(ent);
		if (ent->client->chase_target == old) {
			ent->client->chase_target = NULL;
			ent->client->ps.pmove.pm_flags &= ~PMF_NO_PREDICTION;
			return;
		}
	}

	targ = ent->client->chase_target;

	VectorCopy(targ->s.origin, ownerv);
	VectorCopy(ent->s.origin, oldgoal);

	ownerv[2] += targ->viewheight;

	VectorCopy(targ->client->v_angle, angles);
	if (angles[PITCH] > 56)
		angles[PITCH] = 56;
	AngleVectors (angles, forward, right, NULL);
	VectorNormalize(forward);
	VectorMA(ownerv, -30, forward, o);

	if (o[2] < targ->s.origin[2] + 20)
		o[2] = targ->s.origin[2] + 20;

	// jump animation lifts
	if (!targ->groundentity)
		o[2] += 16;

	trace = gi.trace(ownerv, vec3_origin, vec3_origin, o, targ, MASK_SOLID);

	VectorCopy(trace.endpos, goal);

	VectorMA(goal, 2, forward, goal);

	// pad for floors and ceilings
	VectorCopy(goal, o);
	o[2] += 6;
	trace = gi.trace(goal, vec3_origin, vec3_origin, o, targ, MASK_SOLID);
	if (trace.fraction < 1) {
		VectorCopy(trace.endpos, goal);
		goal[2] -= 6;
	}

	VectorCopy(goal, o);
	o[2] -= 6;
	trace = gi.trace(goal, vec3_origin, vec3_origin, o, targ, MASK_SOLID);
	if (trace.fraction < 1) {
		VectorCopy(trace.endpos, goal);
		goal[2] += 6;
	}

	if (targ->deadflag)
		ent->client->ps.pmove.pm_type = PM_DEAD;
	else
		ent->client->ps.pmove.pm_type = PM_FREEZE;

	VectorCopy(goal, ent->s.origin);
	for (i=0 ; i<3 ; i++)
		ent->client->ps.pmove.delta_angles[i] = ANGLE2SHORT(targ->client->v_angle[i] - ent->client->resp.cmd_angles[i]);

	if (targ->deadflag) {
		ent->client->ps.viewangles[ROLL] = 40;
		ent->client->ps.viewangles[PITCH] = -15;
		ent->client->ps.viewangles[YAW] = targ->client->killer_yaw;
	} else {
		VectorCopy(targ->client->v_angle, ent->client->ps.viewangles);
		VectorCopy(targ->client->v_angle, ent->client->v_angle);
	}

	ent->viewheight = 0;
	ent->client->ps.pmove.pm_flags |= PMF_NO_PREDICTION;
	gi.linkentity(ent);
}

void ChaseNext(edict_t *ent)
{
	int i;
	edict_t *e;

	if (!ent->client->chase_target)
		return;

	i = ent->client->chase_target - g_edicts;
	do {
		i++;
		if (i > maxclients->value)
			i = 1;
		e = g_edicts + i;
		if (!e->inuse)
			continue;
		if (!e->client->resp.spectator)
			break;
	} while (e != ent->client->chase_target);

	ent->client->chase_target = e;
	ent->client->update_chase = true;
}

void ChasePrev(edict_t *ent)
{
	int i;
	edict_t *e;

	if (!ent->client->chase_target)
		return;

	i = ent->client->chase_target - g_edicts;
	do {
		i--;
		if (i < 1)
			i = maxclients->value;
		e = g_edicts + i;
		if (!e->inuse)
			continue;
		if (!e->client->resp.spectator)
			break;
	} while (e != ent->client->chase_target);

	ent->client->chase_target = e;
	ent->client->update_chase = true;
}

void GetChaseTarget(edict_t *ent)
{
	int i;
	edict_t *other;

	for (i = 1; i <= maxclients->value; i++) {
		other = g_edicts + i;
		if (other->inuse && !other->client->resp.spectator) {
			ent->client->chase_target = other;
			ent->client->update_chase = true;
			UpdateChaseCam(ent);
			return;
		}
	}
	gi.centerprintf(ent, "No other players to chase.");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本最新不卡在线| 国产精品短视频| 91成人在线免费观看| 国产成人免费网站| 国产精品一区二区无线| 久久99精品国产91久久来源| 美女视频免费一区| 精品一区二区在线观看| 久久99在线观看| 激情伊人五月天久久综合| 激情图区综合网| 国内精品免费**视频| 国产成人自拍在线| 99久久国产综合精品色伊| 91久久精品一区二区二区| 在线免费观看日本欧美| 欧美日韩国产综合一区二区三区 | 国产精品久久久久久妇女6080| 久久综合色天天久久综合图片| 国产亚洲欧美日韩在线一区| 久久久国产精品不卡| 日韩毛片在线免费观看| 一区二区三区在线看| 日本中文在线一区| 国产一区二区三区免费在线观看| 成人av网址在线观看| 在线观看视频欧美| 91麻豆精品国产自产在线| 精品福利一二区| 国产精品看片你懂得| 亚洲主播在线观看| 紧缚捆绑精品一区二区| eeuss鲁片一区二区三区在线观看| 在线观看视频一区二区| 欧美va天堂va视频va在线| 久久亚洲影视婷婷| 亚洲六月丁香色婷婷综合久久 | 欧美日韩高清一区二区三区| 精品人在线二区三区| 亚洲男人电影天堂| 美国毛片一区二区| 色综合久久综合网欧美综合网| 在线播放亚洲一区| 国产精品免费免费| 日韩av电影一区| 国产91丝袜在线观看| 3atv在线一区二区三区| 《视频一区视频二区| 黄一区二区三区| 91高清视频免费看| 欧美国产一区在线| 久久精品国产免费看久久精品| 成人国产精品免费观看动漫| 91精品国产欧美一区二区18| 亚洲欧美另类图片小说| 国产精品一区二区视频| 日韩一区二区三区观看| 亚洲一区在线播放| 99视频超级精品| 久久久久综合网| 蜜臀久久99精品久久久久久9| 欧美性色黄大片| 亚洲欧洲色图综合| 国产一区在线不卡| 精品对白一区国产伦| 午夜精品福利一区二区蜜股av| 91一区在线观看| 国产精品久久久久久久浪潮网站 | 亚洲欧美偷拍三级| 99久免费精品视频在线观看| 久久久亚洲精品一区二区三区| 日韩高清电影一区| 69堂亚洲精品首页| 日本在线不卡视频| 91精品综合久久久久久| 亚洲成在人线在线播放| 欧美精品九九99久久| 亚洲国产视频在线| 欧美日韩一区二区三区四区五区| 亚洲精品日日夜夜| 欧美日韩综合在线| 亚洲国产中文字幕| 这里是久久伊人| 午夜久久电影网| 日韩欧美国产精品一区| 国产一二精品视频| 国产精品欧美久久久久一区二区| 成人性色生活片免费看爆迷你毛片| 欧美国产精品中文字幕| 91毛片在线观看| 亚洲成av人在线观看| 69久久夜色精品国产69蝌蚪网| 麻豆国产精品777777在线| 精品久久久久一区| 成人黄动漫网站免费app| 亚洲色图视频网站| 欧美喷潮久久久xxxxx| 激情亚洲综合在线| 国产精品视频看| 欧美日韩一区二区三区免费看 | 欧美精品一区二区久久婷婷| 高清国产午夜精品久久久久久| 亚洲色图欧美偷拍| 欧美视频中文一区二区三区在线观看| 日韩成人伦理电影在线观看| 久久夜色精品国产欧美乱极品| 成人小视频在线| 午夜欧美视频在线观看 | 成人国产视频在线观看| 一区二区三区四区不卡视频| 日韩欧美一级二级| av电影在线不卡| 天天影视网天天综合色在线播放| 亚洲精品在线三区| 色激情天天射综合网| 国产九九视频一区二区三区| 亚洲摸摸操操av| 久久久精品2019中文字幕之3| 在线视频欧美区| 国产毛片精品视频| 亚洲一区二区在线免费看| 久久精品视频在线看| 欧美日本一区二区| 不卡区在线中文字幕| 美女精品一区二区| 亚洲精品精品亚洲| 久久天堂av综合合色蜜桃网| 在线观看日韩高清av| 国产成人av一区二区三区在线观看| 一个色妞综合视频在线观看| 国产亚洲欧美中文| 欧美电影免费观看高清完整版| 日本精品视频一区二区三区| 国产成人激情av| 精品一区二区三区视频在线观看| 亚洲国产视频直播| 亚洲免费观看高清完整版在线 | 欧美大片日本大片免费观看| 欧美在线观看你懂的| 91亚洲精品一区二区乱码| 韩国精品在线观看| 精品一区二区在线看| 蜜臀久久99精品久久久久宅男 | 国产精品乱人伦一区二区| 日韩一区二区在线免费观看| 欧美日韩高清一区二区三区| 欧美视频在线不卡| 欧美亚日韩国产aⅴ精品中极品| 91片在线免费观看| 成人三级在线视频| 成人午夜在线播放| www.亚洲在线| 99久久国产综合色|国产精品| 成人av先锋影音| 成人黄页毛片网站| 91亚洲精品一区二区乱码| 91玉足脚交白嫩脚丫在线播放| 91色视频在线| 一本色道久久综合狠狠躁的推荐| av在线免费不卡| 日本精品一区二区三区高清| 欧美视频在线一区二区三区| 7777女厕盗摄久久久| 欧美第一区第二区| 国产日产精品1区| 亚洲欧洲性图库| 亚洲成av人片在线观看无码| 日本视频一区二区三区| 国产一区二区视频在线| 国产精品亚洲а∨天堂免在线| 成人动漫一区二区三区| 色悠悠亚洲一区二区| 欧美一区二区在线观看| 精品国产乱子伦一区| 国产精品久久久久永久免费观看 | 蜜臀av一区二区在线免费观看 | 欧美精品在欧美一区二区少妇| 日韩一区二区三区视频在线| 26uuu国产电影一区二区| 国产三级精品三级| 亚洲裸体在线观看| 日韩精品免费专区| 国产精品一二三区在线| 99re这里只有精品首页| 91麻豆精品国产综合久久久久久| 久久嫩草精品久久久精品一| 亚洲欧美日韩精品久久久久| 日日夜夜精品视频免费| 国内精品视频666| 在线看日本不卡| 精品久久久久久久久久久久久久久 | 丝袜亚洲精品中文字幕一区| 国产专区欧美精品| 欧美专区日韩专区| 久久久国产一区二区三区四区小说 | 亚洲午夜在线电影| 国产激情偷乱视频一区二区三区| 91黄色免费看| 亚洲国产精华液网站w| 日韩国产精品91|