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

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

?? g_local.h

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*
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.

*/
// g_local.h -- local definitions for game module

#include "q_shared.h"

// define GAME_INCLUDE so that game.h does not define the
// short, server-visible gclient_t and edict_t structures,
// because we define the full size ones in this file
#define	GAME_INCLUDE
#include "game.h"

//ZOID
#include "p_menu.h"
//ZOID

// the "gameversion" client command will print this plus compile date
#define	GAMEVERSION	"baseq2"

// protocol bytes that can be directly added to messages
#define	svc_muzzleflash		1
#define	svc_muzzleflash2	2
#define	svc_temp_entity		3
#define	svc_layout			4
#define	svc_inventory		5

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

// view pitching times
#define DAMAGE_TIME		0.5
#define	FALL_TIME		0.3


// edict->spawnflags
// these are set with checkboxes on each entity in the map editor
#define	SPAWNFLAG_NOT_EASY			0x00000100
#define	SPAWNFLAG_NOT_MEDIUM		0x00000200
#define	SPAWNFLAG_NOT_HARD			0x00000400
#define	SPAWNFLAG_NOT_DEATHMATCH	0x00000800
#define	SPAWNFLAG_NOT_COOP			0x00001000

// edict->flags
#define	FL_FLY					0x00000001
#define	FL_SWIM					0x00000002	// implied immunity to drowining
#define FL_IMMUNE_LASER			0x00000004
#define	FL_INWATER				0x00000008
#define	FL_GODMODE				0x00000010
#define	FL_NOTARGET				0x00000020
#define FL_IMMUNE_SLIME			0x00000040
#define FL_IMMUNE_LAVA			0x00000080
#define	FL_PARTIALGROUND		0x00000100	// not all corners are valid
#define	FL_WATERJUMP			0x00000200	// player jumping out of water
#define	FL_TEAMSLAVE			0x00000400	// not the first on the team
#define FL_NO_KNOCKBACK			0x00000800
#define FL_POWER_ARMOR			0x00001000	// power armor (if any) is active
#define FL_RESPAWN				0x80000000	// used for item respawning


#define	FRAMETIME		0.1

// memory tags to allow dynamic memory to be cleaned up
#define	TAG_GAME	765		// clear when unloading the dll
#define	TAG_LEVEL	766		// clear when loading a new level


#define MELEE_DISTANCE	80

#define BODY_QUEUE_SIZE		8

typedef enum
{
	DAMAGE_NO,
	DAMAGE_YES,			// will take damage if hit
	DAMAGE_AIM			// auto targeting recognizes this
} damage_t;

typedef enum 
{
	WEAPON_READY, 
	WEAPON_ACTIVATING,
	WEAPON_DROPPING,
	WEAPON_FIRING
} weaponstate_t;

typedef enum
{
	AMMO_BULLETS,
	AMMO_SHELLS,
	AMMO_ROCKETS,
	AMMO_GRENADES,
	AMMO_CELLS,
	AMMO_SLUGS
} ammo_t;


//deadflag
#define DEAD_NO					0
#define DEAD_DYING				1
#define DEAD_DEAD				2
#define DEAD_RESPAWNABLE		3

//range
#define RANGE_MELEE				0
#define RANGE_NEAR				1
#define RANGE_MID				2
#define RANGE_FAR				3

//gib types
#define GIB_ORGANIC				0
#define GIB_METALLIC			1

//monster ai flags
#define AI_STAND_GROUND			0x00000001
#define AI_TEMP_STAND_GROUND	0x00000002
#define AI_SOUND_TARGET			0x00000004
#define AI_LOST_SIGHT			0x00000008
#define AI_PURSUIT_LAST_SEEN	0x00000010
#define AI_PURSUE_NEXT			0x00000020
#define AI_PURSUE_TEMP			0x00000040
#define AI_HOLD_FRAME			0x00000080
#define AI_GOOD_GUY				0x00000100
#define AI_BRUTAL				0x00000200
#define AI_NOSTEP				0x00000400
#define AI_DUCKED				0x00000800
#define AI_COMBAT_POINT			0x00001000
#define AI_MEDIC				0x00002000
#define AI_RESURRECTING			0x00004000

//monster attack state
#define AS_STRAIGHT				1
#define AS_SLIDING				2
#define	AS_MELEE				3
#define	AS_MISSILE				4

// armor types
#define ARMOR_NONE				0
#define ARMOR_JACKET			1
#define ARMOR_COMBAT			2
#define ARMOR_BODY				3
#define ARMOR_SHARD				4

// power armor types
#define POWER_ARMOR_NONE		0
#define POWER_ARMOR_SCREEN		1
#define POWER_ARMOR_SHIELD		2

// handedness values
#define RIGHT_HANDED			0
#define LEFT_HANDED				1
#define CENTER_HANDED			2


// game.serverflags values
#define SFL_CROSS_TRIGGER_1		0x00000001
#define SFL_CROSS_TRIGGER_2		0x00000002
#define SFL_CROSS_TRIGGER_3		0x00000004
#define SFL_CROSS_TRIGGER_4		0x00000008
#define SFL_CROSS_TRIGGER_5		0x00000010
#define SFL_CROSS_TRIGGER_6		0x00000020
#define SFL_CROSS_TRIGGER_7		0x00000040
#define SFL_CROSS_TRIGGER_8		0x00000080
#define SFL_CROSS_TRIGGER_MASK	0x000000ff


// noise types for PlayerNoise
#define PNOISE_SELF				0
#define PNOISE_WEAPON			1
#define PNOISE_IMPACT			2


// edict->movetype values
typedef enum
{
MOVETYPE_NONE,			// never moves
MOVETYPE_NOCLIP,		// origin and angles change with no interaction
MOVETYPE_PUSH,			// no clip to world, push on box contact
MOVETYPE_STOP,			// no clip to world, stops on box contact

MOVETYPE_WALK,			// gravity
MOVETYPE_STEP,			// gravity, special edge handling
MOVETYPE_FLY,
MOVETYPE_TOSS,			// gravity
MOVETYPE_FLYMISSILE,	// extra size to monsters
MOVETYPE_BOUNCE
} movetype_t;



typedef struct
{
	int		base_count;
	int		max_count;
	float	normal_protection;
	float	energy_protection;
	int		armor;
} gitem_armor_t;


// gitem_t->flags
#define	IT_WEAPON		1		// use makes active weapon
#define	IT_AMMO			2
#define IT_ARMOR		4
#define IT_STAY_COOP	8
#define IT_KEY			16
#define IT_POWERUP		32
//ZOID
#define IT_TECH			64
//ZOID

// gitem_t->weapmodel for weapons indicates model index
#define WEAP_BLASTER			1 
#define WEAP_SHOTGUN			2 
#define WEAP_SUPERSHOTGUN		3 
#define WEAP_MACHINEGUN			4 
#define WEAP_CHAINGUN			5 
#define WEAP_GRENADES			6 
#define WEAP_GRENADELAUNCHER	7 
#define WEAP_ROCKETLAUNCHER		8 
#define WEAP_HYPERBLASTER		9 
#define WEAP_RAILGUN			10
#define WEAP_BFG				11
#define WEAP_GRAPPLE			12

typedef struct gitem_s
{
	char		*classname;	// spawning name
	qboolean	(*pickup)(struct edict_s *ent, struct edict_s *other);
	void		(*use)(struct edict_s *ent, struct gitem_s *item);
	void		(*drop)(struct edict_s *ent, struct gitem_s *item);
	void		(*weaponthink)(struct edict_s *ent);
	char		*pickup_sound;
	char		*world_model;
	int			world_model_flags;
	char		*view_model;

	// client side info
	char		*icon;
	char		*pickup_name;	// for printing on pickup
	int			count_width;		// number of digits to display by icon

	int			quantity;		// for ammo how much, for weapons how much is used per shot
	char		*ammo;			// for weapons
	int			flags;			// IT_* flags

	int			weapmodel;		// weapon model index (for weapons)

	void		*info;
	int			tag;

	char		*precaches;		// string of all models, sounds, and images this item will use
} gitem_t;



//
// this structure is left intact through an entire game
// it should be initialized at dll load time, and read/written to
// the server.ssv file for savegames
//
typedef struct
{
	char		helpmessage1[512];
	char		helpmessage2[512];
	int			helpchanged;	// flash F1 icon if non 0, play sound
								// and increment only if 1, 2, or 3

	gclient_t	*clients;		// [maxclients]

	// can't store spawnpoint in level, because
	// it would get overwritten by the savegame restore
	char		spawnpoint[512];	// needed for coop respawns

	// store latched cvars here that we want to get at often
	int			maxclients;
	int			maxentities;

	// cross level triggers
	int			serverflags;

	// items
	int			num_items;

	qboolean	autosaved;
} game_locals_t;


//
// this structure is cleared as each map is entered
// it is read/written to the level.sav file for savegames
//
typedef struct
{
	int			framenum;
	float		time;

	char		level_name[MAX_QPATH];	// the descriptive name (Outer Base, etc)
	char		mapname[MAX_QPATH];		// the server name (base1, etc)
	char		nextmap[MAX_QPATH];		// go here when fraglimit is hit
	char		forcemap[MAX_QPATH];	// go here

	// intermission state
	float		intermissiontime;		// time the intermission was started
	char		*changemap;
	int			exitintermission;
	vec3_t		intermission_origin;
	vec3_t		intermission_angle;

	edict_t		*sight_client;	// changed once each frame for coop games

	edict_t		*sight_entity;
	int			sight_entity_framenum;
	edict_t		*sound_entity;
	int			sound_entity_framenum;
	edict_t		*sound2_entity;
	int			sound2_entity_framenum;

	int			pic_health;

	int			total_secrets;
	int			found_secrets;

	int			total_goals;
	int			found_goals;

	int			total_monsters;
	int			killed_monsters;

	edict_t		*current_entity;	// entity running from G_RunFrame
	int			body_que;			// dead bodies

	int			power_cubes;		// ugly necessity for coop
} level_locals_t;


// spawn_temp_t is only used to hold entity field values that
// can be set from the editor, but aren't actualy present
// in edict_t during gameplay
typedef struct
{
	// world vars
	char		*sky;
	float		skyrotate;
	vec3_t		skyaxis;
	char		*nextmap;

	int			lip;
	int			distance;
	int			height;
	char		*noise;
	float		pausetime;
	char		*item;
	char		*gravity;

	float		minyaw;
	float		maxyaw;
	float		minpitch;
	float		maxpitch;
} spawn_temp_t;


typedef struct
{
	// fixed data
	vec3_t		start_origin;
	vec3_t		start_angles;
	vec3_t		end_origin;
	vec3_t		end_angles;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日嗨av一区二区三区四区| 精品嫩草影院久久| 亚洲女女做受ⅹxx高潮| jlzzjlzz亚洲日本少妇| 综合久久给合久久狠狠狠97色| 99国产欧美久久久精品| 亚洲精品国产一区二区精华液 | 亚洲成人免费视频| 欧美挠脚心视频网站| 美女网站色91| 国产欧美va欧美不卡在线| 成人黄色免费短视频| 亚洲精品成人天堂一二三| 欧美丰满少妇xxxxx高潮对白 | 成人午夜在线视频| 亚洲欧美日韩国产手机在线| 欧美美女黄视频| 国产精品亚洲午夜一区二区三区| 最新日韩av在线| 欧美精品丝袜久久久中文字幕| 精品在线播放免费| 国产精品情趣视频| 欧美理论片在线| 国产成人在线免费观看| 一区二区在线电影| 精品久久人人做人人爱| 成人国产精品免费网站| 天天综合日日夜夜精品| 国产亚洲一本大道中文在线| 在线观看视频一区| 狠狠色狠狠色综合日日91app| 亚洲人吸女人奶水| 26uuu精品一区二区三区四区在线| www.欧美日韩国产在线| 久久99久久久久| 依依成人综合视频| 国产女人水真多18毛片18精品视频| 欧美午夜精品一区| 国产成人激情av| 日韩精品高清不卡| 亚洲欧洲精品成人久久奇米网| 欧美一区二区视频在线观看| 色综合久久综合网97色综合| 国产美女娇喘av呻吟久久| 午夜久久久久久电影| 1024国产精品| 日本一区二区三区在线不卡| 欧美一区二区观看视频| 91成人看片片| 91在线观看污| 国产91精品入口| 精品一区二区三区香蕉蜜桃| 亚洲bt欧美bt精品777| 中文字幕一区二区在线播放| 久久综合九色综合97_久久久| 51精品久久久久久久蜜臀| 色婷婷国产精品综合在线观看| 国产精品一区二区在线观看不卡 | 蜜臀va亚洲va欧美va天堂 | 不卡的电影网站| 国产一区二区三区不卡在线观看| 亚洲成a人v欧美综合天堂| 亚洲色图一区二区三区| 欧美国产日本视频| 亚洲精品在线免费播放| 日韩一区二区免费视频| 欧美精品123区| 欧美电影在哪看比较好| 欧美精品粉嫩高潮一区二区| 精品视频免费在线| 欧美综合在线视频| 在线免费观看日本一区| 在线观看国产日韩| 欧美最新大片在线看 | 极品少妇xxxx精品少妇偷拍| 日韩av午夜在线观看| 三级精品在线观看| 日韩国产精品久久久久久亚洲| 午夜精品久久久久久久| 天堂va蜜桃一区二区三区 | 正在播放亚洲一区| 欧美精品日韩精品| 日韩精品中文字幕一区| 精品国产99国产精品| 精品国产凹凸成av人网站| 2020日本不卡一区二区视频| 国产欧美一区二区在线观看| 日本一区二区三区在线不卡| 国产精品久久久久久久久久免费看 | 欧美日韩一区精品| 欧美日韩www| 日韩视频一区在线观看| 久久免费国产精品| 亚洲欧洲国产日韩| 一区二区三区在线免费| 日韩av午夜在线观看| 国产一区二区三区在线观看精品| 国产成人在线视频网站| 色哟哟在线观看一区二区三区| 欧美日韩国产另类一区| 精品欧美一区二区久久 | 91电影在线观看| 欧美夫妻性生活| 久久久久久9999| 一区二区三区丝袜| 男女男精品网站| 成人一级片网址| 欧美色图在线观看| www精品美女久久久tv| 亚洲少妇屁股交4| 久久精品国产第一区二区三区| 成人久久久精品乱码一区二区三区| 日本韩国欧美在线| 精品久久99ma| 亚洲精品日韩专区silk| 蜜臀av国产精品久久久久| 成人av先锋影音| 日韩欧美卡一卡二| 国产精品福利电影一区二区三区四区| 亚洲777理论| 成人国产精品免费网站| 日韩欧美国产一区二区三区| 最新国产精品久久精品| 久久99精品国产.久久久久| 色偷偷88欧美精品久久久| 欧美大黄免费观看| 亚洲一区二区三区国产| 懂色av一区二区在线播放| 欧美精品乱码久久久久久| 中文字幕中文字幕一区二区| 美女视频一区二区| 日本精品一级二级| 国产精品嫩草久久久久| 精品亚洲免费视频| 欧美区视频在线观看| 国产精品电影一区二区| 国内精品第一页| 91精品一区二区三区在线观看| 亚洲天堂成人在线观看| 国产一区二区精品久久99| 欧美久久一二区| 一区二区三区在线看| av电影在线观看一区| 国产亚洲欧美色| 久久国产视频网| 欧美精品久久久久久久多人混战| 亚洲激情自拍偷拍| a在线欧美一区| 欧美国产日韩一二三区| 国产精品亚洲视频| 337p日本欧洲亚洲大胆精品| 日日夜夜免费精品| 欧美三电影在线| 午夜久久久久久久久久一区二区| 在线精品视频一区二区三四| √…a在线天堂一区| 成人午夜伦理影院| 欧美韩国一区二区| 国产成人av网站| 国产欧美一区二区三区网站| 国产精品一区在线| 国产目拍亚洲精品99久久精品| 国产在线不卡一区| 精品88久久久久88久久久| 国内外成人在线视频| 精品国产麻豆免费人成网站| 精品一区二区免费在线观看| 日韩一区二区三区视频| 日韩av一区二区三区| 日韩欧美不卡在线观看视频| 久久99精品国产.久久久久| 亚洲精品在线一区二区| 国产激情精品久久久第一区二区 | 欧美影视一区二区三区| 亚洲在线免费播放| 欧美视频在线观看一区二区| 亚洲国产一区二区在线播放| 欧美综合天天夜夜久久| 亚洲电影视频在线| 制服.丝袜.亚洲.中文.综合| 精品一区二区在线视频| 亚洲国产精品ⅴa在线观看| www.亚洲国产| 亚洲第一福利一区| 欧美一二区视频| 国产成人一区在线| 中文字幕一区三区| 欧美日韩激情一区| 久久精品国产亚洲高清剧情介绍 | 国产中文字幕一区| 中文字幕国产精品一区二区| 色婷婷亚洲精品| 乱一区二区av| 欧美国产日韩亚洲一区| 色综合久久中文字幕综合网| 日韩av中文字幕一区二区三区| 国产亚洲欧美一区在线观看| 色94色欧美sute亚洲线路一ni| 日韩成人av影视| 中文字幕一区二区三区在线不卡 |