您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ EDICT_TO_PROG函数代码示例

51自学网 2021-06-01 20:31:32
  C++
这篇教程C++ EDICT_TO_PROG函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中EDICT_TO_PROG函数的典型用法代码示例。如果您正苦于以下问题:C++ EDICT_TO_PROG函数的具体用法?C++ EDICT_TO_PROG怎么用?C++ EDICT_TO_PROG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了EDICT_TO_PROG函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: SV_TouchLinks

/*====================SV_TouchLinks====================*/void SV_TouchLinks ( edict_t *ent, areanode_t *node ){	int			i, numtouch;	edict_t		*touchlist[MAX_EDICTS], *touch;	int			old_self, old_other;	numtouch = SV_AreaEdicts (ent->v.absmin, ent->v.absmax, touchlist, MAX_EDICTS, AREA_TRIGGERS);// touch linked edicts	for (i = 0; i < numtouch; i++)	{		touch = touchlist[i];		if (touch == ent)			continue;		if (!touch->v.touch || touch->v.solid != SOLID_TRIGGER)			continue;		old_self = pr_global_struct->self;		old_other = pr_global_struct->other;		pr_global_struct->self = EDICT_TO_PROG(touch);		pr_global_struct->other = EDICT_TO_PROG(ent);		pr_global_struct->time = sv.time;		PR_ExecuteProgram (touch->v.touch);		pr_global_struct->self = old_self;		pr_global_struct->other = old_other;	}}
开发者ID:luaman,项目名称:zq,代码行数:34,


示例2: SV_Physics

/*================SV_Physics================*/void SV_Physics (void){	int		i;	edict_t	*ent;// let the progs know that a new frame has started	pr_global_struct->self = ((int)EDICT_TO_PROG(sv.edicts));	pr_global_struct->other = ((int)EDICT_TO_PROG(sv.edicts));	pr_global_struct->time = sv.time;	PR_ExecuteProgram (pr_global_struct->StartFrame);//SV_CheckAllEnts ();//// treat each object in turn//	ent = sv.edicts;	for (i=0 ; i<sv.num_edicts ; i++, ent = NEXT_EDICT(ent))	{		if (ent->free)			continue;		if (pr_global_struct->force_retouch)		{			SV_LinkEdict (ent, true);	// force retouch even for stationary		}		if (i > 0 && i <= svs.maxclients)			SV_Physics_Client (ent, i);		else if (ent->v.movetype == MOVETYPE_PUSH)			SV_Physics_Pusher (ent);		else if (ent->v.movetype == MOVETYPE_FAKEPUSH)			SV_Physics_FakePusher (ent);		else if (ent->v.movetype == MOVETYPE_NONE)			SV_Physics_None (ent);#ifdef QUAKE2		else if (ent->v.movetype == MOVETYPE_FOLLOW)			SV_Physics_Follow (ent);#endif		else if (ent->v.movetype == MOVETYPE_NOCLIP)			SV_Physics_Noclip (ent);		else if (ent->v.movetype == MOVETYPE_STEP)			SV_Physics_Step (ent);		else if (ent->v.movetype == MOVETYPE_TOSS 		|| ent->v.movetype == MOVETYPE_BOUNCE#ifdef QUAKE2		|| ent->v.movetype == MOVETYPE_BOUNCEMISSILE#endif		|| ent->v.movetype == MOVETYPE_FLY		|| ent->v.movetype == MOVETYPE_FLYMISSILE)			SV_Physics_Toss (ent);		else			Sys_Error ("SV_Physics: bad movetype %i", (int)ent->v.movetype);				}		if (pr_global_struct->force_retouch)		pr_global_struct->force_retouch--;		sv.time += host_frametime;}
开发者ID:MaddTheSane,项目名称:TenebraeQuake,代码行数:66,


示例3: SV_PTrack_f

void SV_PTrack_f (void){	int		i;	edict_t *ent, *tent;		if (!host_client->spectator)		return;	if (Cmd_Argc() != 2)	{		// turn off tracking		host_client->spec_track = 0;		ent = EDICT_NUM(host_client - svs.clients + 1);		tent = EDICT_NUM(0);		ent->v.goalentity = EDICT_TO_PROG(tent);		return;	}		i = atoi(Cmd_Argv(1));	if (i < 0 || i >= MAX_CLIENTS || svs.clients[i].state != cs_spawned ||		svs.clients[i].spectator) {		SV_ClientPrintf (host_client, PRINT_HIGH, "Invalid client to track/n");		host_client->spec_track = 0;		ent = EDICT_NUM(host_client - svs.clients + 1);		tent = EDICT_NUM(0);		ent->v.goalentity = EDICT_TO_PROG(tent);		return;	}	host_client->spec_track = i + 1; // now tracking	ent = EDICT_NUM(host_client - svs.clients + 1);	tent = EDICT_NUM(i + 1);	ent->v.goalentity = EDICT_TO_PROG(tent);}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:34,


示例4: Sentry_FindTarget_Angel

int Sentry_FindTarget_Angel(  ){    gedict_t *client;    gedict_t *enemy = PROG_TO_EDICT( self->s.v.enemy );    if ( enemy != world )    {        if ( CheckTarget( enemy ) )        {            if ( g_globalvars.time > self->height )            {                Sentry_FoundTarget(  );                return 1;            } else                return 0;        }    }    for ( client = world; (client = trap_find( client, FOFS( s.v.classname ), "player" )); )    {        if ( CheckTarget( client ) )        {            self->s.v.enemy = EDICT_TO_PROG( client );            self->height = g_globalvars.time + 0.1 * ( int ) ( g_random(  ) * tfset_sgppl );            //     self.height = g_globalvars.time + 0.1 * Q_rint(sgppl);            if ( self->height == g_globalvars.time )            {                Sentry_FoundTarget(  );                return 1;            }            return 0;        }    }    self->s.v.enemy = EDICT_TO_PROG( world );    return 0;}
开发者ID:angeld29,项目名称:TF2003-qvm,代码行数:35,


示例5: Sentry_FindTarget

int Sentry_FindTarget(  ){    gedict_t *client;    float   r;    float   gotone;    float   loopc;    r = 0;    loopc = 0;    gotone = 0;    while ( loopc < 6 && !gotone )    {        client = checkclient(  );        gotone = CheckTarget( client );        loopc = loopc + 1;    }    if ( !gotone )        return 0;    self->s.v.enemy = EDICT_TO_PROG( client );    if ( strneq( PROG_TO_EDICT( self->s.v.enemy )->s.v.classname, "player" ) )    {        self->s.v.enemy = PROG_TO_EDICT( self->s.v.enemy )->s.v.enemy;        if ( strneq( PROG_TO_EDICT( self->s.v.enemy )->s.v.classname, "player" ) )        {            self->s.v.enemy = EDICT_TO_PROG( world );            return 0;        }    }    Sentry_FoundTarget(  );    return 1;}
开发者ID:angeld29,项目名称:TF2003-qvm,代码行数:31,


示例6: T_Dispenser

//=========================================================================// Dispenser Touch function. Allows players to get stuff from the Dispenser.void T_Dispenser(  ){    gedict_t *dist_checker;    if ( strneq( other->s.v.classname, "player" ) )	return;    if ( other->team_no && !TeamFortress_isTeamsAllied (other->team_no , self->team_no) )	CenterPrint( self->real_owner, "Enemies are using your dispenser!/n" );    // Ignore any engineer working on this dispenser	    if ( ( !other->building || other->building == world ) && other->building_wait < g_globalvars.time )    {        // Pop up the menu	other->current_menu = MENU_DISPENSER;	other->menu_count = MENU_REFRESH_RATE;	other->building = self;        // Start a Distance checker, which removes the menu if the player	// gets too far away from the Dispenser.	dist_checker = spawn(  );	dist_checker->s.v.classname = "timer";	dist_checker->s.v.owner = EDICT_TO_PROG( other );	dist_checker->s.v.enemy = EDICT_TO_PROG( self );	dist_checker->s.v.think = ( func_t ) CheckDistance;	dist_checker->s.v.nextthink = g_globalvars.time + 0.3;    }}
开发者ID:MrPnut,项目名称:QHome,代码行数:31,


示例7: SV_RunThink

/*=============SV_RunThinkRuns thinking code if time.  There is some play in the exact time the thinkfunction will be called, because it is called before any movement is donein a frame.  Not used for pushmove objects, because they must be exact.Returns false if the entity removed itself.=============*/qboolean SV_RunThink (edict_t *ent){	float	thinktime;	do	{		thinktime = ent->v.nextthink;		if (thinktime <= 0)			return true;		if (thinktime > sv.time + host_frametime)			return true;				if (thinktime < sv.time)			thinktime = sv.time;	// don't let things stay in the past.									// it is possible to start that way									// by a trigger with a local time.		ent->v.nextthink = 0;		pr_global_struct->time = thinktime;		pr_global_struct->self = EDICT_TO_PROG(ent);		pr_global_struct->other = EDICT_TO_PROG(sv.edicts);		PR_ExecuteProgram (ent->v.think);		if (ent->free)			return false;	} while (1);	return true;}
开发者ID:ACIIL,项目名称:Quake,代码行数:38,


示例8: SV_Physics_Pusher

/*================SV_Physics_Pusher================*/void SV_Physics_Pusher (edict_t *ent){	float	thinktime;	float	oldltime;	float	movetime;	oldltime = ent->v.ltime;		thinktime = ent->v.nextthink;	if (thinktime < ent->v.ltime + host_frametime)	{		movetime = thinktime - ent->v.ltime;		if (movetime < 0)			movetime = 0;	}	else		movetime = host_frametime;	if (movetime)	{		SV_PushMove (ent, movetime);	// advances ent->v.ltime if not blocked	}			if (thinktime > oldltime && thinktime <= ent->v.ltime)	{		ent->v.nextthink = 0;		pr_global_struct->time = sv.time;		pr_global_struct->self = EDICT_TO_PROG(ent);		pr_global_struct->other = EDICT_TO_PROG(sv.edicts);		PR_ExecuteProgram (ent->v.think);		if (ent->free)			return;	}}
开发者ID:tyabus,项目名称:quake-leak,代码行数:41,


示例9: LaunchLaser

void LaunchLaser( vec3_t org, vec3_t vec ){	if ( !strcmp( self->s.v.classname, "monster_enforcer" ) )		sound( self, CHAN_WEAPON, "enforcer/enfire.wav", 1, ATTN_NORM );	normalize( vec, vec );	newmis = spawn(  );	g_globalvars.newmis = EDICT_TO_PROG( newmis );	newmis->s.v.owner = EDICT_TO_PROG( self );	newmis->s.v.movetype = MOVETYPE_FLY;	newmis->s.v.solid = SOLID_BBOX;	newmis->s.v.effects = EF_DIMLIGHT;	setmodel( newmis, "progs/laser.mdl" );	setsize( newmis, 0, 0, 0, 0, 0, 0 );	setorigin( newmis, PASSVEC3( org ) );	//newmis->s.v.velocity = vec * 600;	VectorScale( vec, 600, newmis->s.v.velocity );	vectoangles( newmis->s.v.velocity, newmis->s.v.angles );	newmis->s.v.nextthink = g_globalvars.time + 5;	newmis->s.v.think = ( func_t ) SUB_Remove;	newmis->s.v.touch = ( func_t ) Laser_Touch;}
开发者ID:angeld29,项目名称:TF2003-qvm,代码行数:29,


示例10: SV_RemoveBot

void SV_RemoveBot (client_t *cl){	if (cl->state == cs_spawned)	{		if (!cl->spectator)		{			// call the prog function for removing a client			// this will set the body to a dead frame, among other things			pr_global_struct->self = EDICT_TO_PROG(cl->edict);			PR_ExecuteProgram (PR_GLOBAL(ClientDisconnect));		}		else if (SpectatorDisconnect)		{			// call the prog function for removing a client			// this will set the body to a dead frame, among other things			pr_global_struct->self = EDICT_TO_PROG(cl->edict);			PR_ExecuteProgram (SpectatorDisconnect);		}	}	Com_DPrintf ("Bot %s removed/n", cl->name.c_str());	cl->state = cs_free;		// we don't have zombie bots :)	cl->bot = false;	cl->old_frags = 0;	cl->name = "";//	cl->edict->inuse = false;	cl->edict->v.frags = 0;	cl->userinfo.clear();	SV_FreeDelayedPackets (cl);// send notification to all remaining clients	SV_FullClientUpdate (cl, &sv.reliable_datagram);}
开发者ID:luaman,项目名称:zq,代码行数:35,


示例11: set_move_trace

void set_move_trace(trace_t *trace){	if (is_progdefs111)	{		pr_global_struct_v111->trace_allsolid = trace->allsolid;		pr_global_struct_v111->trace_startsolid = trace->startsolid;		pr_global_struct_v111->trace_fraction = trace->fraction;		pr_global_struct_v111->trace_inwater = trace->inwater;		pr_global_struct_v111->trace_inopen = trace->inopen;		VectorCopy (trace->endpos, pr_global_struct_v111->trace_endpos);		VectorCopy (trace->plane.normal, pr_global_struct_v111->trace_plane_normal);		pr_global_struct_v111->trace_plane_dist =  trace->plane.dist;		if (trace->ent)			pr_global_struct_v111->trace_ent = EDICT_TO_PROG(trace->ent);		else			pr_global_struct_v111->trace_ent = EDICT_TO_PROG(sv.edicts);		return;	}	pr_global_struct->trace_allsolid = trace->allsolid;	pr_global_struct->trace_startsolid = trace->startsolid;	pr_global_struct->trace_fraction = trace->fraction;	pr_global_struct->trace_inwater = trace->inwater;	pr_global_struct->trace_inopen = trace->inopen;	VectorCopy (trace->endpos, pr_global_struct->trace_endpos);	VectorCopy (trace->plane.normal, pr_global_struct->trace_plane_normal);	pr_global_struct->trace_plane_dist =  trace->plane.dist;		if (trace->ent)		pr_global_struct->trace_ent = EDICT_TO_PROG(trace->ent);	else		pr_global_struct->trace_ent = EDICT_TO_PROG(sv.edicts);}
开发者ID:bazilio-ua,项目名称:fxhexen2,代码行数:33,


示例12: Bot_Spawn_And_Begin

// called every time when adding a bot or bringing the bot from previous mapvoid Bot_Spawn_And_Begin (client_t *cl){	int i;	edict_t	*ent = cl->edict;	// set colormap, name, entgravity and maxspeed	SetUpClientEdict (cl, ent);	cl->state = cs_spawned;	// copy spawn parms out of the client_t	for (i=0 ; i< NUM_SPAWN_PARMS ; i++)		(&PR_GLOBAL(parm1))[i] = cl->spawn_parms[i];	// call the spawn function	pr_global_struct->time = sv.time;	pr_global_struct->self = EDICT_TO_PROG(ent);	PR_ExecuteProgram (PR_GLOBAL(ClientConnect));	// actually spawn the player	pr_global_struct->time = sv.time;	pr_global_struct->self = EDICT_TO_PROG(ent);	PR_ExecuteProgram (PR_GLOBAL(PutClientInServer));	cl->sendinfo = true;}
开发者ID:luaman,项目名称:zq,代码行数:27,


示例13: SV_Impact

/*==================SV_ImpactTwo entities have touched, so run their touch functions==================*/void SV_Impact (edict_t *e1, edict_t *e2){	int		old_self, old_other;		old_self = pr_global_struct->self;	old_other = pr_global_struct->other;		pr_global_struct->time = sv.time;	if (e1->v.touch && e1->v.solid != SOLID_NOT)	{		pr_global_struct->self = ((int)EDICT_TO_PROG(e1));		pr_global_struct->other = ((int)EDICT_TO_PROG(e2));		PR_ExecuteProgram (e1->v.touch);	}		if (e2->v.touch && e2->v.solid != SOLID_NOT)	{		pr_global_struct->self = ((int)EDICT_TO_PROG(e2));		pr_global_struct->other = ((int)EDICT_TO_PROG(e1));		PR_ExecuteProgram (e2->v.touch);	}	pr_global_struct->self = old_self;	pr_global_struct->other = old_other;}
开发者ID:MaddTheSane,项目名称:TenebraeQuake,代码行数:32,


示例14: SV_Impact

/*==================SV_ImpactTwo entities have touched, so run their touch functions==================*/void SV_Impact (edict_t *e1, edict_t *e2){	int	old_self, old_other;		old_self = PR_GLOBAL(self);	old_other = PR_GLOBAL(other);		PR_GLOBAL(time) = sv.time;	if (e1->v.touch && e1->v.solid != SOLID_NOT)	{		PR_GLOBAL(self) = EDICT_TO_PROG(e1);		PR_GLOBAL(other) = EDICT_TO_PROG(e2);		PR_ExecuteProgram (e1->v.touch);	}		if (e2->v.touch && e2->v.solid != SOLID_NOT)	{		PR_GLOBAL(self) = EDICT_TO_PROG(e2);		PR_GLOBAL(other) = EDICT_TO_PROG(e1);		PR_ExecuteProgram (e2->v.touch);	}	PR_GLOBAL(self) = old_self;	PR_GLOBAL(other) = old_other;}
开发者ID:SpiritQuaddicted,项目名称:reQuiem,代码行数:32,


示例15: Engineer_UseSentryGun

//=========================================================================// Engineer has used a Spanner on the SentryGunvoid Engineer_UseSentryGun( gedict_t * gun ){    gedict_t *dist_checker;    G_sprint( self, 2, "Level %.0f Sentry Gun has %.0f health, %.0f shells",	      gun->s.v.weapon, gun->s.v.health, gun->s.v.ammo_shells );    if ( gun->s.v.weapon == 3 )    {	G_sprint( self, 2, ", %.0f rockets", gun->s.v.ammo_rockets );    }    if ( gun->has_sentry &&  tg_data.tg_enabled )	G_sprint( self, 2, ", static" );    G_sprint( self, 2, "/n" );    self->current_menu = MENU_ENGINEER_FIX_SENTRYGUN;    self->menu_count = MENU_REFRESH_RATE;    self->building = gun;    dist_checker = spawn(  );    dist_checker->s.v.classname = "timer";    dist_checker->s.v.owner = EDICT_TO_PROG( self );    dist_checker->s.v.enemy = EDICT_TO_PROG( gun );    dist_checker->s.v.think = ( func_t ) CheckDistance;    dist_checker->s.v.nextthink = g_globalvars.time + 0.3;}
开发者ID:MrPnut,项目名称:QHome,代码行数:27,


示例16: SV_ProgStartFrame

void SV_ProgStartFrame (void){// let the progs know that a new frame has started	pr_global_struct->self = EDICT_TO_PROG(sv.edicts);	pr_global_struct->other = EDICT_TO_PROG(sv.edicts);	pr_global_struct->time = sv.time;	PR_ExecuteProgram (pr_global_struct->StartFrame);}
开发者ID:ACIIL,项目名称:Quake,代码行数:8,


示例17: BuildChain

//// BuildChain - Builds the chain (linked list)//void BuildChain(){    self->s.v.goalentity = EDICT_TO_PROG( MakeLink() );    PROG_TO_EDICT( self->s.v.goalentity )->s.v.think = (func_t) UpdateChain;    PROG_TO_EDICT( self->s.v.goalentity )->s.v.nextthink = g_globalvars.time + 0.1;    PROG_TO_EDICT( self->s.v.goalentity )->s.v.owner = self->s.v.owner;    PROG_TO_EDICT( self->s.v.goalentity )->s.v.goalentity = EDICT_TO_PROG( MakeLink() );    PROG_TO_EDICT( PROG_TO_EDICT( self->s.v.goalentity )->s.v.goalentity)->s.v.goalentity = EDICT_TO_PROG( MakeLink() );}
开发者ID:JosephPecoraro,项目名称:ktx,代码行数:12,


示例18: SV_DropClient

/*=====================SV_DropClientCalled when the player is totally leaving the server, either willinglyor unwillingly.  This is NOT called if the entire server is quitingor crashing.=====================*/void SV_DropClient (client_t *drop){	// add the disconnect	MSG_WriteByte (&drop->netchan.message, svc_disconnect);	if (drop->state == cs_spawned)	{		if (!drop->spectator)		{			// call the prog function for removing a client			// this will set the body to a dead frame, among other things			pr_global_struct->self = EDICT_TO_PROG(drop->edict);			PR_ExecuteProgram (pr_global_struct->ClientDisconnect);		}		else if (SpectatorDisconnect)		{			// call the prog function for removing a client			// this will set the body to a dead frame, among other things			pr_global_struct->self = EDICT_TO_PROG(drop->edict);			PR_ExecuteProgram (SpectatorDisconnect);		}	}	else if (dmMode.integer == DM_SIEGE)	{		if (PR_GetString(drop->edict->v.puzzle_inv1)[0] != '/0')		{			// this guy has a puzzle piece, call this function anyway			// to make sure he leaves it behind			Con_Printf("Client in unspawned state had puzzle piece, forcing drop/n");			pr_global_struct->self = EDICT_TO_PROG(drop->edict);			PR_ExecuteProgram (pr_global_struct->ClientDisconnect);		}	}	if (drop->spectator)		Con_Printf ("Spectator %s removed/n",drop->name);	else		Con_Printf ("Client %s removed/n",drop->name);	if (drop->download)	{		fclose (drop->download);		drop->download = NULL;	}	drop->state = cs_zombie;		// become free in a few seconds	drop->connection_started = realtime;	// for zombie timeout	drop->old_frags = 0;	drop->edict->v.frags = 0;	drop->name[0] = 0;	memset (drop->userinfo, 0, sizeof(drop->userinfo));	// send notification to all remaining clients	SV_FullClientUpdate (drop, &sv.reliable_datagram);}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:65,


示例19: SV_Physics_Client

/*	Player character actions*/void SV_Physics_Client (edict_t	*ent, int num){	if(!svs.clients[num-1].active)		return;		// unconnected slot	// call standard client pre-think	pr_global_struct.self = EDICT_TO_PROG(ent);	Game->Game_Init(SERVER_PLAYERPRETHINK,ent,sv.time);	Game->Physics_CheckVelocity(ent);	// decide which move function to call	switch(ent->v.movetype)	{	case MOVETYPE_NONE:		if (!Server_RunThink(ent))			return;		break;	case MOVETYPE_WALK:		if(!Server_RunThink(ent))			return;		if(!Physics_CheckWater(ent) && !(ent->v.flags & FL_WATERJUMP))			Game->Physics_SetGravity(ent);		SV_CheckStuck (ent);		SV_WalkMove (ent);		break;	case MOVETYPE_TOSS:	case MOVETYPE_BOUNCE:	case MOVETYPE_FLYBOUNCE:		Physics_Toss(ent);		break;	case MOVETYPE_FLY:		if(!Server_RunThink(ent))			return;		SV_FlyMove(ent,host_frametime,NULL);		break;	case MOVETYPE_NOCLIP:		if(!Server_RunThink(ent))			return;		Math_VectorMA (ent->v.origin, host_frametime, ent->v.velocity, ent->v.origin);		break;	default:		Sys_Error ("SV_Physics_client: bad movetype %i", (int)ent->v.movetype);	}	// Call standard player post-think	SV_LinkEdict(ent,true);	pr_global_struct.self = EDICT_TO_PROG(ent);	Game->Game_Init(SERVER_CLIENTPOSTTHINK,ent,sv.time);}
开发者ID:Acidburn0zzz,项目名称:KatanaEngine,代码行数:58,


示例20: SV_RunThink

/*=============SV_RunThinkRuns thinking code if time.  There is some play in the exact time the thinkfunction will be called, because it is called before any movement is donein a frame.  Not used for pushmove objects, because they must be exact.Returns false if the entity removed itself.=============*/qboolean SV_RunThink (edict_t *ent){	float	thinktime;	int		oldcount;	thinktime = ent->v.nextthink;	if (thinktime <= 0 || thinktime > sv.time + host_frametime)		return true;			if (thinktime < sv.time)		thinktime = sv.time;	// don't let things stay in the past.								// it is possible to start that way								// by a trigger with a local time.	ent->v.nextthink = 0;	PR_GLOBAL(time) = thinktime;	PR_GLOBAL(self) = EDICT_TO_PROG(ent);	PR_GLOBAL(other) = EDICT_TO_PROG(sv.edicts);// JDH: the extra 1 added to total_monsters by monster_fish happens //      in swimmonster_start_go, during the first frame (sv.time = 1). //      But fix it only if total_monsters was increased when fish were //      spawned (ie. if sv.fish_counted is true)	if ((sv.time == 1.0) && sv_fishfix.value && sv.fish_counted && 		!strcmp(pr_strings + ent->v.classname, "monster_fish") &&		!strcmp(pr_functions[ent->v.think].s_name, "swimmonster_start_go"))	{		oldcount = PR_GLOBAL(total_monsters);			}	else oldcount = -1;		PR_ExecuteProgram (ent->v.think);		if (oldcount != -1)	{		if ((int)PR_GLOBAL(total_monsters) - oldcount == 1)		{			PR_GLOBAL(total_monsters) -= 1;			if (sv.fish_counted == 1)			{				Con_Print ("Detected fish-count bug in progs.dat; monster count has been adjusted/n");				sv.fish_counted++;			}		}	}	return !ent->free;}
开发者ID:SpiritQuaddicted,项目名称:reQuiem,代码行数:59,


示例21: set_move_trace

static void set_move_trace(trace_t *trace){	*sv_globals.trace_allsolid = trace->allsolid;	*sv_globals.trace_startsolid = trace->startsolid;	*sv_globals.trace_fraction = trace->fraction;	*sv_globals.trace_inwater = trace->inwater;	*sv_globals.trace_inopen = trace->inopen;	VectorCopy (trace->endpos, *sv_globals.trace_endpos);	VectorCopy (trace->plane.normal, *sv_globals.trace_plane_normal);	*sv_globals.trace_plane_dist =  trace->plane.dist;	if (trace->ent)		*sv_globals.trace_ent = EDICT_TO_PROG(trace->ent);	else		*sv_globals.trace_ent = EDICT_TO_PROG(sv.edicts);}
开发者ID:svn2github,项目名称:uhexen2,代码行数:15,


示例22: RegenFlag

void RegenFlag( gedict_t *flag ){	flag->s.v.movetype = MOVETYPE_TOSS;	flag->s.v.solid = SOLID_TRIGGER;	setmodel( flag, flag->mdl );	VectorCopy( flag->mangle, flag->s.v.angles );	flag->cnt = FLAG_RETURNED;	flag->cnt2 = 0.0;	flag->s.v.owner = EDICT_TO_PROG( world );	SetVector( flag->s.v.velocity, 0, 0, 0 );	sound( flag, CHAN_VOICE, "items/itembk2.wav", 1, ATTN_NORM);	flag->s.v.nextthink = g_globalvars.time + 0.2;	flag->s.v.groundentity = EDICT_TO_PROG( world );	flag->s.v.touch = (func_t) FlagTouch;}
开发者ID:JosephPecoraro,项目名称:ktx,代码行数:15,


示例23: SV_PostRunCmd

void SV_PostRunCmd(void){	// run post-think	if (!host_client->spectator) {		pr_global_struct->time = sv.time;		pr_global_struct->self = EDICT_TO_PROG(sv_player);		PR_ExecuteProgram (pr_global_struct->PlayerPostThink);		SV_RunNewmis ();	} else if (SpectatorThink) {		pr_global_struct->time = sv.time;		pr_global_struct->self = EDICT_TO_PROG(sv_player);		PR_ExecuteProgram (SpectatorThink);	}}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:15,


示例24: SV_Physics_Pusher

/*================SV_Physics_Pusher================*/void SV_Physics_Pusher (edict_t *ent){	float	thinktime;	float	oldltime;	float	movetime;	oldltime = ent->v.ltime;	#ifdef _DEBUG	if (!ent->v.classname && ent->v.think)		movetime = 0;#endif		thinktime = ent->v.nextthink;	if (thinktime < ent->v.ltime + host_frametime)	{		movetime = thinktime - ent->v.ltime;		if (movetime < 0)			movetime = 0;	}	else		movetime = host_frametime;	if (movetime)	{	#ifdef HEXEN2_SUPPORT		if (hexen2 && (ent->v.avelocity[0] || ent->v.avelocity[1] || ent->v.avelocity[2]))		{			SV_PushRotate (ent, movetime);		}		else	#endif		SV_PushMove (ent, movetime);	// advances ent->v.ltime if not blocked	}			if (thinktime > oldltime && thinktime <= ent->v.ltime)	{		ent->v.nextthink = 0;		PR_GLOBAL(time) = sv.time;		PR_GLOBAL(self) = EDICT_TO_PROG(ent);		PR_GLOBAL(other) = EDICT_TO_PROG(sv.edicts);		PR_ExecuteProgram (ent->v.think);		if (ent->free)			return;	}}
开发者ID:SpiritQuaddicted,项目名称:reQuiem,代码行数:54,


示例25: cpqw_user_cmd

static intcpqw_user_cmd (void){	int         argc, i;	progs_t    *pr = &sv_pr_state;	if (cpqw_funcs.ClientCommand) {		argc = Cmd_Argc ();		if (argc > 7)			argc = 7;		*sv_globals.time = sv.time;		*sv_globals.self = EDICT_TO_PROG (&sv_pr_state, sv_player);		PR_PushFrame (pr);		P_FLOAT (pr, 0) = argc;		for (i = 0; i < argc; i++)			P_STRING (pr, i + 1) = PR_SetTempString (pr, Cmd_Argv (i));		for (; i < 7; i++)			P_STRING (pr, i + 1) = 0;		PR_ExecuteProgram (pr, cpqw_funcs.ClientCommand);		PR_PopFrame (pr);		return (int) R_FLOAT (pr);	}	return 0;}
开发者ID:EIREXE,项目名称:Quakeforge-gcw0,代码行数:26,


示例26: fire_fly

void fire_fly(  ){	gedict_t *fireball;	fireball = spawn(  );	newmis = fireball;	g_globalvars.newmis = EDICT_TO_PROG( newmis );	fireball->s.v.solid = SOLID_TRIGGER;	fireball->s.v.movetype = MOVETYPE_TOSS;	SetVector( fireball->s.v.velocity,		   ( g_random(  ) * 100 ) - 50, ( g_random(  ) * 100 ) - 50, self->speed + ( g_random(  ) * 200 ) );	fireball->s.v.classname = "fireball";	setmodel( fireball, "progs/lavaball.mdl" );	setsize( fireball, 0, 0, 0, 0, 0, 0 );	setorigin( fireball, PASSVEC3( self->s.v.origin ) );	fireball->s.v.nextthink = g_globalvars.time + 5;	fireball->s.v.think = ( func_t ) SUB_Remove;	fireball->s.v.touch = ( func_t ) fire_touch;	self->s.v.nextthink = g_globalvars.time + ( g_random(  ) * 5 ) + 3;	self->s.v.think = ( func_t ) fire_fly;}
开发者ID:angeld29,项目名称:TF2003-qvm,代码行数:25,


示例27: Vote_ChangeMap_Init

void Vote_ChangeMap_Init(){	int f1;	gedict_t* voteguard;	f1 = CountPlayers();	if(f1 == 1) {		G_bprint(2, "%s changes map/n",self->s.v.netname);		current_vote = -1;		NextLevel();		return;	// in case we get back here	}		G_bprint(2, "%s votes for mapchange/n",self->s.v.netname);	if(f1/2 !=1)		G_bprint(2, "
C++ EDITOR_DEF函数代码示例
C++ EDGE_COUNT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。