亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲免费在线视频| 亚洲午夜免费视频| 一区二区视频在线| 黑人巨大精品欧美黑白配亚洲| 成人黄色电影在线 | 成人高清伦理免费影院在线观看| 欧美色视频在线| 国产精品进线69影院| 青青草97国产精品免费观看无弹窗版 | 蜜臀久久99精品久久久久宅男| 91视频免费播放| 国产夜色精品一区二区av| 蜜臀av一级做a爰片久久| 欧美性猛交一区二区三区精品| 亚洲国产精品av| 国产一区二区免费在线| 日韩免费一区二区| 日韩二区三区四区| 欧美精品久久99久久在免费线| 一区二区在线免费观看| 成人av第一页| 国产精品无遮挡| 粉嫩一区二区三区在线看| 精品国产制服丝袜高跟| 免费成人美女在线观看.| 91精品欧美福利在线观看| 夜夜爽夜夜爽精品视频| 一本色道亚洲精品aⅴ| 最新欧美精品一区二区三区| 高清免费成人av| 国产调教视频一区| 国产成人自拍网| 国产欧美日本一区二区三区| 国产成人午夜视频| 国产拍揄自揄精品视频麻豆| 国产大陆亚洲精品国产| 欧美激情中文不卡| 99国产精品久| 一区二区三区免费看视频| 一本一道久久a久久精品| 亚洲精品免费电影| 在线一区二区三区四区五区 | 欧美在线影院一区二区| 午夜视频在线观看一区二区三区| 欧美三日本三级三级在线播放| 亚洲国产日韩综合久久精品| 欧美日韩精品久久久| 日本亚洲电影天堂| 国产色综合一区| av电影在线观看不卡| 亚洲综合在线免费观看| 91麻豆精品国产91久久久使用方法 | 久久久国产午夜精品| 国产a精品视频| 亚洲男人天堂av网| 欧美放荡的少妇| 国产一区二三区| 综合欧美亚洲日本| 欧美人体做爰大胆视频| 久久草av在线| 亚洲欧洲一区二区三区| 欧美日韩在线播放三区| 紧缚奴在线一区二区三区| 一区精品在线播放| 欧美肥妇bbw| 国产sm精品调教视频网站| 亚洲一区二区三区爽爽爽爽爽| 欧美电影免费观看高清完整版在| 成人精品免费网站| 日韩精品久久久久久| 久久久久久久精| 欧美老肥妇做.爰bbww| 国产a区久久久| 亚洲免费看黄网站| 欧美精品一区男女天堂| 色网综合在线观看| 国产一区视频网站| 午夜精品久久一牛影视| 国产精品每日更新| 亚洲丝袜美腿综合| 精品国产一区二区在线观看| 色天天综合色天天久久| 国产一区二区三区免费观看| 亚洲一区二区三区四区中文字幕| 国产日韩精品久久久| 337p亚洲精品色噜噜狠狠| av在线不卡观看免费观看| 国产原创一区二区| 亚洲成av人片一区二区三区| 欧美国产日韩亚洲一区| 91精品福利在线一区二区三区| av亚洲精华国产精华精| 国产在线精品免费av| 天堂av在线一区| 亚洲男同性恋视频| 国产精品久久三区| 久久综合久久久久88| 欧美老肥妇做.爰bbww视频| 99久久国产综合精品女不卡| 国产精品一区一区| 久久99精品久久久久| 视频一区视频二区中文| 亚洲影院理伦片| 亚洲综合一区二区三区| 亚洲欧洲无码一区二区三区| 久久天天做天天爱综合色| 日韩一卡二卡三卡国产欧美| 欧美乱妇15p| 欧美日本一区二区在线观看| 欧美视频在线不卡| 色香蕉成人二区免费| 色偷偷成人一区二区三区91 | 欧美美女一区二区在线观看| 色综合久久天天综合网| 91成人在线观看喷潮| 色婷婷激情一区二区三区| 色婷婷综合久久久久中文一区二区 | 91片在线免费观看| 91丨国产丨九色丨pron| 99r精品视频| 一本一道波多野结衣一区二区 | 亚洲欧美激情在线| 亚洲欧美激情小说另类| 尤物在线观看一区| 亚洲一二三区在线观看| 亚洲国产中文字幕| 午夜精品一区二区三区免费视频| 亚洲线精品一区二区三区| 亚洲成人动漫在线免费观看| 图片区小说区区亚洲影院| 日日欢夜夜爽一区| 久久99国产精品免费| 国产激情精品久久久第一区二区| 国产精品亚洲一区二区三区妖精| 国产剧情在线观看一区二区 | 国产一区二区三区黄视频| 国产福利一区在线观看| 97se亚洲国产综合自在线观| 欧美视频日韩视频| 日韩欧美一区二区久久婷婷| 久久久无码精品亚洲日韩按摩| 欧美国产在线观看| 亚洲午夜视频在线观看| 狠狠狠色丁香婷婷综合久久五月| 国产91精品一区二区麻豆网站| 色综合中文综合网| 99精品视频在线播放观看| 色94色欧美sute亚洲13| 欧美一区二区大片| 中文字幕av一区 二区| 亚洲一线二线三线视频| 精品亚洲成av人在线观看| 91在线观看高清| 日韩女优电影在线观看| 亚洲人成伊人成综合网小说| 日本aⅴ精品一区二区三区 | 国产做a爰片久久毛片| 日本精品裸体写真集在线观看| 91精品国产色综合久久| 国产精品看片你懂得| 免费成人小视频| 在线亚洲欧美专区二区| 久久精品亚洲国产奇米99| 亚洲最新在线观看| 高清视频一区二区| 日韩欧美在线一区二区三区| 亚洲欧洲日韩av| 韩国视频一区二区| 欧美日韩一级视频| 中文字幕av一区二区三区免费看| 日韩—二三区免费观看av| 色噜噜狠狠色综合中国| 中文字幕av在线一区二区三区| 美女视频黄 久久| 欧美三日本三级三级在线播放| 中文幕一区二区三区久久蜜桃| 麻豆国产精品视频| 欧美日韩一区久久| 中文字幕亚洲一区二区va在线| 久久er精品视频| 在线综合+亚洲+欧美中文字幕| 一区二区三区在线视频播放| 高清视频一区二区| 国产日韩欧美精品电影三级在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线亚洲欧美专区二区| 一区二区三区国产精华| 99精品视频在线播放观看| 国产精品萝li| 成人午夜精品在线| 国产日韩欧美激情| 国产高清精品网站| 亚洲国产精品黑人久久久| 国产河南妇女毛片精品久久久| 日韩色在线观看| 麻豆国产91在线播放| 精品日韩99亚洲| 国模一区二区三区白浆 | 欧美老肥妇做.爰bbww| 亚洲超丰满肉感bbw|