コード例 #1
0
/*
===================
CG_AddLocalEntities

===================
*/
void CG_AddLocalEntities( void ) {
	localEntity_t	*le, *next;

	// walk the list backwards, so any new local entities generated
	// (trails, marks, etc) will be present this frame
	le = cg_activeLocalEntities.prev;
	for ( ; le != &cg_activeLocalEntities ; le = next ) {
		// grab next now, so if the local entity is freed we
		// still have it
		next = le->prev;

		if ( cg.time >= le->endTime ) {
			CG_FreeLocalEntity( le );
			continue;
		}
		switch ( le->leType ) {
		default:
			trap->Error( ERR_DROP, "Bad leType: %i", le->leType );
			break;

		case LE_MARK:
			break;

		case LE_SPRITE_EXPLOSION:
			CG_AddSpriteExplosion( le );
			break;

		case LE_EXPLOSION:
			CG_AddExplosion( le );
			break;

		case LE_FADE_SCALE_MODEL:
			CG_AddFadeScaleModel( le );
			break;

		case LE_FRAGMENT:			// gibs and brass
			CG_AddFragment( le );
			break;

		case LE_PUFF:
			CG_AddPuff( le );
			break;

		case LE_MOVE_SCALE_FADE:		// water bubbles
			CG_AddMoveScaleFade( le );
			break;

		case LE_FADE_RGB:				// teleporters, railtrails
			CG_AddFadeRGB( le );
			break;

		case LE_FALL_SCALE_FADE: // gib blood trails
			CG_AddFallScaleFade( le );
			break;

		case LE_SCALE_FADE:		// rocket trails
			CG_AddScaleFade( le );
			break;

		case LE_SCOREPLUM:
			CG_AddScorePlum( le );
			break;

		case LE_OLINE:
			CG_AddOLine( le );
			break;

		case LE_SHOWREFENTITY:
			CG_AddRefEntity( le );
			break;

		case LE_LINE:					// oriented lines for FX
			CG_AddLine( le );
			break;
		}
	}
}
コード例 #2
0
ファイル: cg_localents.c プロジェクト: mecwerks/spearmint-ios
/*
===================
CG_AddLocalEntities

===================
*/
void CG_AddLocalEntities( void ) {
	localEntity_t	*le, *next;
	qboolean forceOnlyMirror;

	// walk the list backwards, so any new local entities generated
	// (trails, marks, etc) will be present this frame
	le = cg_activeLocalEntities.prev;
	for ( ; le != &cg_activeLocalEntities ; le = next ) {
		// grab next now, so if the local entity is freed we
		// still have it
		next = le->prev;

		if ( cg.time >= le->endTime ) {
			CG_FreeLocalEntity( le );
			continue;
		}

		// Check if local entity should be rendered by this local client.
		if (le->localClients && !(le->localClients & (1<<cg.cur_localClientNum))) {
			continue;
		}

		forceOnlyMirror = (!(le->refEntity.renderfx & RF_ONLY_MIRROR) &&
				!cg.cur_lc->renderingThirdPerson &&
				cg.snap->pss[cg.cur_localClientNum].clientNum == le->firstPersonEntity);

		if ( forceOnlyMirror ) {
			le->refEntity.renderfx |= RF_ONLY_MIRROR;
		}

		switch ( le->leType ) {
		default:
			CG_Error( "Bad leType: %i", le->leType );
			break;

		case LE_MARK:
			break;

		case LE_SPRITE_EXPLOSION:
			CG_AddSpriteExplosion( le );
			break;

		case LE_EXPLOSION:
			CG_AddExplosion( le );
			break;

		case LE_FRAGMENT:			// gibs and brass
			CG_AddFragment( le );
			break;

		case LE_MOVE_SCALE_FADE:		// water bubbles
			CG_AddMoveScaleFade( le );
			break;

		case LE_FADE_RGB:				// teleporters, railtrails
			CG_AddFadeRGB( le );
			break;

		case LE_FALL_SCALE_FADE: // gib blood trails
			CG_AddFallScaleFade( le );
			break;

		case LE_SCALE_FADE:		// rocket trails
			CG_AddScaleFade( le );
			break;

		case LE_SCOREPLUM:
			CG_AddScorePlum( le );
			break;

#ifdef MISSIONPACK
		case LE_KAMIKAZE:
			CG_AddKamikaze( le );
			break;
		case LE_INVULIMPACT:
			CG_AddInvulnerabilityImpact( le );
			break;
		case LE_INVULJUICED:
			CG_AddInvulnerabilityJuiced( le );
			break;
		case LE_SHOWREFENTITY:
			CG_AddRefEntity( le );
			break;
#endif
		}

		if ( forceOnlyMirror ) {
			le->refEntity.renderfx &= ~RF_ONLY_MIRROR;
		}
	}
}
コード例 #3
0
ファイル: cg_localents.c プロジェクト: KuehnhammerTobias/ioqw
/*
=======================================================================================================================================
CG_AddLocalEntities
=======================================================================================================================================
*/
void CG_AddLocalEntities(void) {
	localEntity_t *le, *next;
	int oldPhysicsTime;

	// have local entities interact with movers (submodels) at their render position
	oldPhysicsTime = cg.physicsTime;
	cg.physicsTime = cg.time;
	// walk the list backwards, so any new local entities generated (trails, marks, etc.) will be present this frame
	le = cg_activeLocalEntities.prev;

	for (; le != &cg_activeLocalEntities; le = next) {
		// grab next now, so if the local entity is freed we still have it
		next = le->prev;

		if (cg.time >= le->endTime) {
			CG_FreeLocalEntity(le);
			continue;
		}

		switch (le->leType) {
			default:
				CG_Error("Bad leType: %i", le->leType);
				break;
			case LE_SPRITE_EXPLOSION:
				CG_AddSpriteExplosion(le);
				break;
			case LE_EXPLOSION:
				CG_AddExplosion(le);
				break;
			case LE_KAMIKAZE:
				CG_AddKamikaze(le);
				break;
			case LE_MARK:
				break;
			case LE_FRAGMENT: // gibs and brass
				CG_AddFragment(le);
				break;
			case LE_SCALE_FADE: // rocket trails
				CG_AddScaleFade(le);
				break;
			case LE_FADE_RGB: // teleporters, railtrails
				CG_AddFadeRGB(le);
				break;
			case LE_FALL_SCALE_FADE: // gib blood trails
				CG_AddFallScaleFade(le);
				break;
			case LE_MOVE_SCALE_FADE: // water bubbles
				CG_AddMoveScaleFade(le);
				break;
			case LE_BUBBLE:
				CG_BubbleThink(le);
				break;
			case LE_SCOREPLUM:
				CG_AddScorePlum(le);
				break;
			case LE_SHOWREFENTITY:
				CG_AddRefEntity(le);
				break;
		}
	}

	cg.physicsTime = oldPhysicsTime;
}
コード例 #4
0
ファイル: cg_localents.c プロジェクト: LoudHoward/Quake3
/*
===================
CG_AddLocalEntities

===================
*/
void CG_AddLocalEntities( void ) {
	localEntity_t	*le, *next;

	// walk the list backwards, so any new local entities generated
	// (trails, marks, etc) will be present this frame
	le = cg_activeLocalEntities.prev;
	for ( ; le != &cg_activeLocalEntities ; le = next ) {
		// grab next now, so if the local entity is freed we
		// still have it
		next = le->prev;

		if ( cg.time >= le->endTime ) {
			CG_FreeLocalEntity( le );
			continue;
		}
		switch ( le->leType ) {
		default:
			CG_Error( "Bad leType: %i", le->leType );
			break;

		case LE_MARK:
			break;

		case LE_SPRITE_EXPLOSION:
			CG_AddSpriteExplosion( le );
			break;

		case LE_EXPLOSION:
			CG_AddExplosion( le );
			break;

		case LE_FRAGMENT:			// gibs and brass
			CG_AddFragment( le );
			break;

		case LE_MOVE_SCALE_FADE:		// water bubbles
			CG_AddMoveScaleFade( le );
			break;

		case LE_FADE_RGB:				// teleporters, railtrails
			CG_AddFadeRGB( le );
			break;

		case LE_FALL_SCALE_FADE: // gib blood trails
			CG_AddFallScaleFade( le );
			break;

		case LE_SCALE_FADE:		// rocket trails
			CG_AddScaleFade( le );
			break;

		case LE_SCOREPLUM:
			CG_AddScorePlum( le );
			break;

#ifdef MISSIONPACK
		case LE_KAMIKAZE:
			CG_AddKamikaze( le );
			break;
		case LE_INVULIMPACT:
			CG_AddInvulnerabilityImpact( le );
			break;
		case LE_INVULJUICED:
			CG_AddInvulnerabilityJuiced( le );
			break;
		case LE_SHOWREFENTITY:
			CG_AddRefEntity( le );
			break;
#endif
		}
	}
}
コード例 #5
0
/*
===================
CG_AddLocalEntities

===================
*/
void CG_AddLocalEntities( void ) {
	localEntity_t	*le, *next;

	// walk the list backwards, so any new local entities generated
	// (trails, marks, etc) will be present this frame
	le = cg_activeLocalEntities.prev;
	for ( ; le != &cg_activeLocalEntities ; le = next ) {
		// grab next now, so if the local entity is freed we
		// still have it
		next = le->prev;

		if ( cg.time >= le->endTime ) {
			CG_FreeLocalEntity( le );
			continue;
		}
		switch ( le->leType ) {
		default:
			CG_Error( "Bad leType: %i", le->leType );
			break;

		case LE_MARK:
			break;

		case LE_SPRITE_EXPLOSION:
			CG_AddSpriteExplosion( le );
			break;

		case LE_EXPLOSION:
			CG_AddExplosion( le );
			break;

		case LE_FRAGMENT:			// gibs and brass
			CG_AddFragment( le );
			break;

		case LE_FRAGMENT_FIRE:			// explosion particles
			CG_AddFireFragment( le );
			break;

		case LE_FIRE_EFFECT:
			CG_AddFireEffect( le );
			break;

		case LE_MOVE_SCALE:				// various particles
			CG_AddMoveScale( le );
			break;

		case LE_MOVE_SCALE_FADE:		// water bubbles
			CG_AddMoveScaleFade( le );
			break;

		case LE_FADE_RGB:				// teleporters, railtrails
			CG_AddFadeRGB( le );
			break;

		case LE_FALL_SCALE_FADE: // gib blood trails
			CG_AddFallScaleFade( le );
			break;

		case LE_SCALE_FADE:		// rocket trails
			CG_AddScaleFade( le );
			break;

		case LE_SCOREPLUM:
			CG_AddScorePlum( le );
			break;

		case LE_MISSILE:
			CG_AddMissile( le );
			break;
		}
	}
}