|
|
Definition at line 1317 of file cg_event.c.
References cgEffects_t::acidSplash, playerState_s::ammo, entityState_s::angles, entityState_s::angles2, AngleVectors(), entityState_s::apos, bg_itemlist, bg_numItems, BIGCHAR_WIDTH, saberInfo_t::block2Sound, saberInfo_t::blockEffect, saberInfo_t::blockEffect2, saberInfo_t::blockSound, cgMedia_t::blueFlagReturnedSound, cgMedia_t::blueLeadsSound, cgMedia_t::blueScoredSound, cgMedia_t::blueTookFlagSound, cgMedia_t::blueTookYsalSound, cgMedia_t::blueYsalReturnedSound, centity_s::bodyFadeTime, centity_s::bodyHeight, centity_s::bolt1, entityState_s::bolt1, centity_s::bolt2, entityState_s::bolt2, centity_s::bolt3, centity_s::bolt4, centity_s::boltInfo, BONE_ANIM_BLEND, BONE_ANIM_OVERRIDE_FREEZE, ByteToDir(), centity_t, cg, CG_AddBufferedSound(), CG_Beam(), CG_CenterPrint(), CG_ChatBox_AddString(), CG_Chunks(), CG_ConfigString(), CG_CreateNPCClient(), CG_CustomSound(), cg_debugEvents, cg_entities, CG_Error(), CG_FireWeapon(), cg_footsteps, CG_G2MarkEvent(), CG_GetClientWeaponMuzzleBoltPoint(), CG_GetCTFMessageEvent(), CG_GetStringEdString(), CG_GetStringForVoiceSound(), cg_ghoul2Marks, CG_GlassShatter(), CG_InATST(), CG_InClientBitflags(), CG_InFighter(), cg_jumpSounds, CG_LocalTimingBar(), CG_MiscModelExplosion(), CG_MissileHitPlayer(), CG_MissileHitWall(), cg_nopredict, cg_oldPainSounds, CG_OutOfAmmoChange(), CG_PainEvent(), CG_PlayDoorLoopSound(), CG_PlayDoorSound(), CG_PlayerShieldHit(), CG_Printf(), CG_RegisterWeapon(), CG_S_AddRealLoopingSound(), CG_S_StopLoopingSound(), cg_saberFlashPos, cg_saberFlashTime, CG_ScorePlum(), cg_siegeDeathTime, CG_SiegeObjectiveCompleted(), CG_SiegeRoundOver(), CG_StartMusic(), cg_synchronousClients, CG_TestLine(), CG_Trace(), CG_TryPlayCustomSound(), cg_vehicleAmmoWarning, cg_vehicleAmmoWarningTime, CG_VehicleWeaponImpact(), CG_VehMuzzleFireFX(), cg_weapons, CGCam_SetMusicMult(), CGCam_Shake(), cgs, CHAN_ANNOUNCER, CHAN_AUTO, CHAN_BODY, CHAN_LOCAL, CHAN_MENU1, CHAN_VOICE, CHAN_WEAPON, CLASS_VEHICLE, client, cgs_t::clientinfo, entityState_s::clientNum, playerState_s::clientNum, Com_Printf(), CONTENTS_SOLID, CONTENTS_TERRAIN, cgMedia_t::countFightSound, CS_AMBIENT_SET, CS_EFFECTS, CS_SOUNDS, centity_s::currentState, DEBUGNAME, DEFAULT_MAXS_2, DEFAULT_MINS_2, cg_t::demoPlayback, cgMedia_t::disruptorZoomLoop, DoFall(), cgMedia_t::drainSound, cgMedia_t::dramaticFailure, EF_ALT_FIRING, EF_SOUNDTRACKER, EFFECT_ACID_SPLASH, EFFECT_EXPLOSION, EFFECT_EXPLOSION_DEMP2ALT, EFFECT_EXPLOSION_DETPACK, EFFECT_EXPLOSION_FLECHETTE, EFFECT_EXPLOSION_PAS, EFFECT_EXPLOSION_TRIPMINE, EFFECT_EXPLOSION_TURRET, EFFECT_LANDING_DIRT, EFFECT_LANDING_GRAVEL, EFFECT_LANDING_MUD, EFFECT_LANDING_SAND, EFFECT_LANDING_SNOW, EFFECT_LAVA_SPLASH, EFFECT_SMOKE, EFFECT_SPARK_EXPLOSION, EFFECT_SPARKS, EFFECT_STUNHIT, EFFECT_WATER_SPLASH, cgs_t::effects, entityState_s::eFlags, entityState_s::emplacedOwner, trace_t::endpos, trace_t::entityNum, ENTITYNUM_NONE, entityState_t, ET_BODY, ET_NPC, entityState_s::eType, EV_ALT_FIRE, EV_ANGER1, EV_ANGER2, EV_ANGER3, EV_BECOME_JEDIMASTER, EV_BMODEL_SOUND, EV_BODYFADE, EV_CHANGE_WEAPON, EV_CHASE1, EV_CHASE2, EV_CHASE3, EV_CHOKE1, EV_CHOKE2, EV_CHOKE3, EV_CLIENTJOIN, EV_COMBAT1, EV_COMBAT2, EV_COMBAT3, EV_CONC_ALT_IMPACT, EV_CONFUSE1, EV_CONFUSE2, EV_CONFUSE3, EV_COVER1, EV_COVER2, EV_COVER3, EV_COVER4, EV_COVER5, EV_CTFMESSAGE, EV_DEATH1, EV_DEATH2, EV_DEATH3, EV_DEBRIS, EV_DEBUG_LINE, EV_DEFLECT1, EV_DEFLECT2, EV_DEFLECT3, EV_DESTROY_GHOUL2_INSTANCE, EV_DESTROY_WEAPON_MODEL, EV_DETECTED1, EV_DETECTED2, EV_DETECTED3, EV_DETECTED4, EV_DETECTED5, EV_DISRUPTOR_HIT, EV_DISRUPTOR_MAIN_SHOT, EV_DISRUPTOR_SNIPER_MISS, EV_DISRUPTOR_SNIPER_SHOT, EV_DISRUPTOR_ZOOMSOUND, EV_ENTITY_SOUND, EV_ESCAPING1, EV_ESCAPING2, EV_ESCAPING3, EV_EVENT_BITS, EV_FALL, EV_FFTURN, EV_FFWARN, EV_FIRE_WEAPON, EV_FOOTSPLASH, EV_FOOTSTEP, EV_FOOTSTEP_METAL, EV_FOOTWADE, EV_FORCE_DRAINED, EV_GENERAL_SOUND, EV_GHOUL2_MARK, EV_GIB_PLAYER, EV_GIVE_NEW_RANK, EV_GIVEUP1, EV_GIVEUP2, EV_GIVEUP3, EV_GIVEUP4, EV_GLASS_SHATTER, EV_GLOAT1, EV_GLOAT2, EV_GLOAT3, EV_GLOBAL_DUEL, EV_GLOBAL_ITEM_PICKUP, EV_GLOBAL_SOUND, EV_GLOBAL_TEAM_SOUND, EV_GRENADE_BOUNCE, EV_ITEM_PICKUP, EV_ITEM_POP, EV_ITEM_RESPAWN, EV_ITEMUSEFAIL, EV_JCHASE1, EV_JCHASE2, EV_JCHASE3, EV_JDETECTED1, EV_JDETECTED2, EV_JDETECTED3, EV_JLOST1, EV_JLOST2, EV_JLOST3, EV_JUMP, EV_JUMP_PAD, EV_LOCALTIMER, EV_LOOK1, EV_LOOK2, EV_LOST1, EV_MISC_MODEL_EXP, EV_MISSILE_HIT, EV_MISSILE_MISS, EV_MISSILE_MISS_METAL, EV_MISSILE_STICK, EV_MUTE_SOUND, EV_NOAMMO, EV_OBITUARY, EV_OUTFLANK1, EV_OUTFLANK2, EV_PAIN, EV_PLAY_EFFECT, EV_PLAY_EFFECT_ID, EV_PLAY_PORTAL_EFFECT_ID, EV_PLAY_ROFF, EV_PLAYDOORLOOPSOUND, EV_PLAYDOORSOUND, EV_PLAYER_TELEPORT_IN, EV_PLAYER_TELEPORT_OUT, EV_POWERUP_BATTLESUIT, EV_POWERUP_QUAD, EV_PREDEFSOUND, EV_PRIVATE_DUEL, EV_PUSHED1, EV_PUSHED2, EV_PUSHED3, EV_PUSHFAIL, EV_ROLL, EV_SABER_ATTACK, EV_SABER_BLOCK, EV_SABER_CLASHFLARE, EV_SABER_HIT, EV_SABER_UNHOLSTER, EV_SCOREPLUM, EV_SCREENSHAKE, EV_SET_FORCE_DISABLE, EV_SET_FREE_SABER, EV_SHIELD_HIT, EV_SIEGE_OBJECTIVECOMPLETE, EV_SIEGE_ROUNDOVER, EV_SIEGESPEC, EV_SIGHT1, EV_SIGHT2, EV_SIGHT3, EV_SOUND1, EV_SOUND2, EV_SOUND3, EV_STARTLOOPINGSOUND, EV_STEP_12, EV_STEP_16, EV_STEP_4, EV_STEP_8, EV_STOPLOOPINGSOUND, EV_SUSPICIOUS1, EV_SUSPICIOUS2, EV_SUSPICIOUS3, EV_SUSPICIOUS4, EV_SUSPICIOUS5, EV_SWIM, EV_TAUNT, EV_TAUNT1, EV_TAUNT2, EV_TAUNT3, EV_TEAM_POWER, EV_TESTLINE, EV_USE_ITEM0, EV_USE_ITEM1, EV_USE_ITEM10, EV_USE_ITEM11, EV_USE_ITEM12, EV_USE_ITEM13, EV_USE_ITEM14, EV_USE_ITEM2, EV_USE_ITEM3, EV_USE_ITEM4, EV_USE_ITEM5, EV_USE_ITEM6, EV_USE_ITEM7, EV_USE_ITEM8, EV_USE_ITEM9, EV_VEH_FIRE, EV_VICTORY1, EV_VICTORY2, EV_VICTORY3, EV_VOICECMD_SOUND, EV_WATER_CLEAR, EV_WATER_LEAVE, EV_WATER_TOUCH, EV_WATER_UNDER, EV_WEAPON_CHARGE, EV_WEAPON_CHARGE_ALT, entityState_s::event, entityState_s::eventParm, playerState_s::fallingToDeath, playerState_s::fd, FOOTSTEP_DIRTWALK, FOOTSTEP_GRASSWALK, FOOTSTEP_GRAVELWALK, FOOTSTEP_METALWALK, FOOTSTEP_MUDWALK, FOOTSTEP_PIPEWALK, FOOTSTEP_RUGWALK, FOOTSTEP_SANDWALK, FOOTSTEP_SNOWWALK, FOOTSTEP_SPLASH, FOOTSTEP_STONEWALK, footstep_t, FOOTSTEP_WOODWALK, cgMedia_t::footsteps, cg_t::forceHUDTotalFlashTime, forcedata_s::forcePowersActive, forcedata_s::forcePowerSelected, cg_t::forceSelect, cg_t::forceSelectTime, FP_LEVITATION, FP_SABER_DEFENSE, FP_SABER_OFFENSE, FP_SABERTHROW, trace_t::fraction, centity_s::frame_hold_refreshed, centity_s::frame_hold_time, centity_s::frame_minus1_refreshed, centity_s::frame_minus2_refreshed, FX_ConcAltShot(), FX_DEMP2_AltDetonate(), FX_DisruptorAltMiss(), FX_DisruptorAltShot(), FX_DisruptorHitPlayer(), FX_DisruptorHitWall(), FX_DisruptorMainShot(), cgs_t::gameEffects, cgs_t::gameModels, cgs_t::gameSounds, cgs_t::gametype, entityState_s::generic1, entityState_s::genericenemyindex, centity_s::ghoul2, clientInfo_t::ghoul2Model, centity_s::ghoul2weapon, GIANTCHAR_WIDTH, gitem_t, gitem_s::giType, entityState_s::groundEntityNum, GT_CTY, GT_DUEL, GT_POWERDUEL, GTS_BLUE_CAPTURE, GTS_BLUE_RETURN, GTS_BLUE_TAKEN, GTS_BLUETEAM_SCORED, GTS_BLUETEAM_TOOK_LEAD, GTS_RED_CAPTURE, GTS_RED_RETURN, GTS_RED_TAKEN, GTS_REDTEAM_SCORED, GTS_REDTEAM_TOOK_LEAD, GTS_TEAMS_ARE_TIED, cgMedia_t::happyMusic, saberInfo_t::hit2Sound, saberInfo_t::hitOtherEffect, saberInfo_t::hitOtherEffect2, saberInfo_t::hitPersonEffect, saberInfo_t::hitPersonEffect2, saberInfo_t::hitSound, cgMedia_t::holocronPickup, IMPACTSOUND_DEFAULT, IMPACTSOUND_METAL, vmCvar_t::integer, IT_TEAM, KEYCATCH_UI, cgEffects_t::landingDirt, cgEffects_t::landingGravel, cgEffects_t::landingMud, cgEffects_t::landingSand, cgEffects_t::landingSnow, cg_t::lastFPFlashPoint, cgEffects_t::lavaSplash, entityState_s::legsAnim, centity_s::lerpOrigin, entityState_s::loopSound, centity_s::m_pVehicle, Vehicle_s::m_pVehicleInfo, cgEffects_t::mAltDetonate, MASK_SOLID, MATERIAL_CANVAS, MATERIAL_CARPET, MATERIAL_DIRT, MATERIAL_FABRIC, MATERIAL_GRAVEL, MATERIAL_HOLLOWMETAL, MATERIAL_HOLLOWWOOD, MATERIAL_LONGGRASS, MATERIAL_MUD, MATERIAL_PLASTIC, MATERIAL_RUBBER, MATERIAL_SAND, MATERIAL_SHORTGRASS, MATERIAL_SNOW, MATERIAL_SOLIDMETAL, MATERIAL_SOLIDWOOD, mdxaBone_t::matrix, MAX_CLIENTS, MAX_STEP_CHANGE, MAX_WEAPONS, cgEffects_t::mBlasterDeflect, cgEffects_t::mConcussionAltRing, cgEffects_t::mDetpackExplosion, cgs_t::media, cgEffects_t::mEmplacedDeadSmoke, cgEffects_t::mEmplacedExplode, cgEffects_t::mEmplacedMuzzleFlash, memset(), cgEffects_t::mFlechetteAltBlow, cg_t::mInRMG, centity_s::miscTime, cgEffects_t::mJediSpawn, entityState_s::modelindex, centity_s::modelScale, cgEffects_t::mSaberBlock, cgEffects_t::mSaberBloodSparks, cgEffects_t::mSaberBloodSparksMid, cgEffects_t::mSaberBloodSparksSmall, cgEffects_t::mSaberCut, cgEffects_t::mSparkExplosion, cgEffects_t::mSparksExplodeNoSound, cgEffects_t::mSpawn, cgEffects_t::mStunBatonFleshImpact, cgEffects_t::mTripmineExplosion, cgEffects_t::mTurretExplode, clientInfo_t::name, cgMedia_t::noAmmoSound, entityState_s::NPC_class, centity_s::npcClient, NULL, entityState_s::number, centity_s::numLoopingSounds, entityState_s::origin, entityState_s::origin2, entityState_s::otherEntityNum, entityState_s::otherEntityNum2, entityState_s::owner, PDSOUND_ABSORB, PDSOUND_ABSORBHIT, PDSOUND_FORCEGRIP, PDSOUND_FORCEJUMP, PDSOUND_PROTECT, PDSOUND_PROTECTHIT, PERS_TEAM, playerState_s::persistant, gitem_s::pickup_sound, playerMaxs, playerMins, playerState_s::pm_flags, PMF_FOLLOW, entityState_s::pos, cg_t::powerupActive, cg_t::powerupTime, cg_t::predictedPlayerState, snapshot_t::ps, PW_BATTLESUIT, PW_QUAD, Q_irand(), qboolean, qfalse, qhandle_t, qtrue, rand(), cgMedia_t::redFlagReturnedSound, cgMedia_t::redLeadsSound, cgMedia_t::redScoredSound, cgMedia_t::redTookFlagSound, cgMedia_t::redTookYsalSound, cgMedia_t::redYsalReturnedSound, cg_t::refdef, weaponInfo_s::registered, cg_t::renderingThirdPerson, cgMedia_t::respawnSound, ROLL, cgMedia_t::rollSound, gclient_s::saber, clientInfo_t::saber, entityState_s::saberEntityNum, saberInfo_t::saberFlags2, SCREEN_HEIGHT, SEEKER_ALREADYDEPLOYED, weaponInfo_s::selectSound, cgMedia_t::selectSound, SENTRY_ALREADYPLACED, SENTRY_NOROOM, centity_s::serverSaberFleshImpact, centity_s::serverSaberHitIndex, centity_s::serverSaberHitTime, SFL2_NO_CLASH_FLARE, sfxHandle_t, SHIELD_NOROOM, entityState_s::shouldtarget, showPowersName, cg_t::snap, saberInfo_t::soundOn, entityState_s::soundSetIndex, entityState_s::speed, STAT_WEAPONS, playerState_s::stats, STEP_TIME, cg_t::stepChange, cg_t::stepTime, strcpy(), saberInfo_t::swingSound, TAUNT_BOW, TAUNT_FLOURISH, TAUNT_GLOAT, TAUNT_MEDITATE, TAUNT_TAUNT, clientInfo_t::team, cgMedia_t::teamHealSound, centity_s::teamPowerEffectTime, centity_s::teamPowerType, cgMedia_t::teamRegenSound, cgMedia_t::teamsTiedSound, cgMedia_t::teleInSound, cgMedia_t::teleOutSound, cg_t::time, entityState_s::time, entityState_s::time2, TRACK_CHANNEL_2, TRACK_CHANNEL_3, TRACK_CHANNEL_5, trap_AS_GetBModelSound(), trap_Cvar_Set(), trap_FX_PlayEffectID(), trap_FX_PlayPortalEffectID(), trap_FX_RegisterEffect(), trap_G2_HaveWeGhoul2Models(), trap_G2API_AddBolt(), trap_G2API_CleanGhoul2Models(), trap_G2API_GetBoltMatrix(), trap_G2API_HasGhoul2ModelOnIndex(), trap_G2API_RemoveGhoul2Model(), trap_G2API_SetBoneAnim(), trap_G2API_SetSurfaceOnOff(), trap_Key_GetCatcher(), trap_OpenUIMenu(), trap_ROFF_Play(), trap_S_MuteSound(), trap_S_RegisterSound(), trap_S_StartBackgroundTrack(), trap_S_StartLocalSound(), trap_S_StartSound(), trajectory_t::trBase, centity_s::trickAlpha, centity_s::trickAlphaTime, entityState_s::trickedentindex, entityState_s::trickedentindex2, trajectory_t::trTime, UIMENU_PLAYERCONFIG, va(), centity_s::vChatTime, vec3_origin, vec3_t, VectorClear, VectorCopy, VectorMA, VectorNormalize(), VectorSubtract, refdef_t::vieworg, cgEffects_t::waterSplash, cgMedia_t::watrInSound, cgMedia_t::watrOutSound, cgMedia_t::watrUnSound, centity_s::weapon, playerState_s::weapon, vehicleInfo_t::weapon, entityState_s::weapon, weaponData, weaponInfo_t, WP_CONCUSSION, WP_DET_PACK, WP_DISRUPTOR, WP_EMPLACED_GUN, WP_NONE, WP_NUM_WEAPONS, WP_SABER, WP_SaberBladeUseSecondBladeStyle(), WP_TURRET, and playerState_s::zoomMode.
Referenced by CG_CheckChangedPredictableEvents(), CG_CheckEvents(), and CG_CheckPlayerstateEvents().
01317 {
01318 entityState_t *es;
01319 int event;
01320 vec3_t dir;
01321 const char *s;
01322 int clientNum;
01323 clientInfo_t *ci;
01324 int eID = 0;
01325 int isnd = 0;
01326 centity_t *cl_ent;
01327
01328 es = ¢->currentState;
01329 event = es->event & ~EV_EVENT_BITS;
01330
01331 if ( cg_debugEvents.integer ) {
01332 CG_Printf( "ent:%3i event:%3i ", es->number, event );
01333 }
01334
01335 if ( !event ) {
01336 DEBUGNAME("ZEROEVENT");
01337 return;
01338 }
01339
01340 clientNum = es->clientNum;
01341 if ( clientNum < 0 || clientNum >= MAX_CLIENTS ) {
01342 clientNum = 0;
01343 }
01344
01345 if (es->eType == ET_NPC)
01346 {
01347 clientNum = es->number;
01348
01349 if (!cent->npcClient)
01350 {
01351 CG_CreateNPCClient(¢->npcClient);
01352
01353 if (!cent->npcClient)
01354 {
01355 assert(0);
01356 return;
01357 }
01358
01359 memset(cent->npcClient, 0, sizeof(clientInfo_t));
01360 cent->npcClient->ghoul2Model = NULL;
01361 }
01362
01363 ci = cent->npcClient;
01364
01365 assert(ci);
01366 }
01367 else
01368 {
01369 ci = &cgs.clientinfo[ clientNum ];
01370 }
01371
01372 switch ( event ) {
01373
01374
01375
01376 case EV_CLIENTJOIN:
01377 DEBUGNAME("EV_CLIENTJOIN");
01378
01379
01380 cl_ent = &cg_entities[es->eventParm];
01381
01382 if (cl_ent)
01383 {
01384
01385 cl_ent->bolt1 = 0;
01386 cl_ent->bolt2 = 0;
01387 cl_ent->bolt3 = 0;
01388 cl_ent->bolt4 = 0;
01389 cl_ent->bodyHeight = 0;
01390
01391 cl_ent->boltInfo = 0;
01392 cl_ent->frame_minus1_refreshed = 0;
01393 cl_ent->frame_minus2_refreshed = 0;
01394 cl_ent->frame_hold_time = 0;
01395 cl_ent->frame_hold_refreshed = 0;
01396 cl_ent->trickAlpha = 0;
01397 cl_ent->trickAlphaTime = 0;
01398 cl_ent->ghoul2weapon = NULL;
01399 cl_ent->weapon = WP_NONE;
01400 cl_ent->teamPowerEffectTime = 0;
01401 cl_ent->teamPowerType = 0;
01402 cl_ent->numLoopingSounds = 0;
01403
01404 }
01405 break;
01406
01407 case EV_FOOTSTEP:
01408 DEBUGNAME("EV_FOOTSTEP");
01409 if (cg_footsteps.integer) {
01410 footstep_t soundType;
01411 switch( es->eventParm )
01412 {
01413 case MATERIAL_MUD:
01414 soundType = FOOTSTEP_MUDWALK;
01415 break;
01416 case MATERIAL_DIRT:
01417 soundType = FOOTSTEP_DIRTWALK;
01418 break;
01419 case MATERIAL_SAND:
01420 soundType = FOOTSTEP_SANDWALK;
01421 break;
01422 case MATERIAL_SNOW:
01423 soundType = FOOTSTEP_SNOWWALK;
01424 break;
01425 case MATERIAL_SHORTGRASS:
01426 case MATERIAL_LONGGRASS:
01427 soundType = FOOTSTEP_GRASSWALK;
01428 break;
01429 case MATERIAL_SOLIDMETAL:
01430 soundType = FOOTSTEP_METALWALK;
01431 break;
01432 case MATERIAL_HOLLOWMETAL:
01433 soundType = FOOTSTEP_PIPEWALK;
01434 break;
01435 case MATERIAL_GRAVEL:
01436 soundType = FOOTSTEP_GRAVELWALK;
01437 break;
01438 case MATERIAL_CARPET:
01439 case MATERIAL_FABRIC:
01440 case MATERIAL_CANVAS:
01441 case MATERIAL_RUBBER:
01442 case MATERIAL_PLASTIC:
01443 soundType = FOOTSTEP_RUGWALK;
01444 break;
01445 case MATERIAL_SOLIDWOOD:
01446 case MATERIAL_HOLLOWWOOD:
01447 soundType = FOOTSTEP_WOODWALK;
01448 break;
01449
01450 default:
01451 soundType = FOOTSTEP_STONEWALK;
01452 break;
01453 }
01454
01455 trap_S_StartSound (NULL, es->number, CHAN_BODY, cgs.media.footsteps[ soundType ][rand()&3] );
01456 }
01457 break;
01458 case EV_FOOTSTEP_METAL:
01459 DEBUGNAME("EV_FOOTSTEP_METAL");
01460 if (cg_footsteps.integer) {
01461 trap_S_StartSound (NULL, es->number, CHAN_BODY,
01462 cgs.media.footsteps[ FOOTSTEP_METALWALK ][rand()&3] );
01463 }
01464 break;
01465 case EV_FOOTSPLASH:
01466 DEBUGNAME("EV_FOOTSPLASH");
01467 if (cg_footsteps.integer) {
01468 trap_S_StartSound (NULL, es->number, CHAN_BODY,
01469 cgs.media.footsteps[ FOOTSTEP_SPLASH ][rand()&3] );
01470 }
01471 break;
01472 case EV_FOOTWADE:
01473 DEBUGNAME("EV_FOOTWADE");
01474 if (cg_footsteps.integer) {
01475 trap_S_StartSound (NULL, es->number, CHAN_BODY,
01476 cgs.media.footsteps[ FOOTSTEP_SPLASH ][rand()&3] );
01477 }
01478 break;
01479 case EV_SWIM:
01480 DEBUGNAME("EV_SWIM");
01481 if (cg_footsteps.integer) {
01482 trap_S_StartSound (NULL, es->number, CHAN_BODY,
01483 cgs.media.footsteps[ FOOTSTEP_SPLASH ][rand()&3] );
01484 }
01485 break;
01486
01487
01488 case EV_FALL:
01489 DEBUGNAME("EV_FALL");
01490 if (es->number == cg.snap->ps.clientNum && cg.snap->ps.fallingToDeath)
01491 {
01492 break;
01493 }
01494 DoFall(cent, es, clientNum);
01495 break;
01496 case EV_STEP_4:
01497 case EV_STEP_8:
01498 case EV_STEP_12:
01499 case EV_STEP_16:
01500 DEBUGNAME("EV_STEP");
01501 {
01502 float oldStep;
01503 int delta;
01504 int step;
01505
01506 if ( clientNum != cg.predictedPlayerState.clientNum ) {
01507 break;
01508 }
01509
01510 if ( cg.demoPlayback || (cg.snap->ps.pm_flags & PMF_FOLLOW) ||
01511 cg_nopredict.integer || cg_synchronousClients.integer ) {
01512 break;
01513 }
01514
01515 delta = cg.time - cg.stepTime;
01516 if (delta < STEP_TIME) {
01517 oldStep = cg.stepChange * (STEP_TIME - delta) / STEP_TIME;
01518 } else {
01519 oldStep = 0;
01520 }
01521
01522
01523 step = 4 * (event - EV_STEP_4 + 1 );
01524 cg.stepChange = oldStep + step;
01525 if ( cg.stepChange > MAX_STEP_CHANGE ) {
01526 cg.stepChange = MAX_STEP_CHANGE;
01527 }
01528 cg.stepTime = cg.time;
01529 break;
01530 }
01531
01532 case EV_JUMP_PAD:
01533 DEBUGNAME("EV_JUMP_PAD");
01534 break;
01535
01536 case EV_GHOUL2_MARK:
01537 DEBUGNAME("EV_GHOUL2_MARK");
01538
01539 if (cg_ghoul2Marks.integer)
01540 {
01541 CG_G2MarkEvent(es);
01542 }
01543 break;
01544
01545 case EV_GLOBAL_DUEL:
01546 DEBUGNAME("EV_GLOBAL_DUEL");
01547
01548
01549 if (es->otherEntityNum == cg.predictedPlayerState.clientNum ||
01550 es->otherEntityNum2 == cg.predictedPlayerState.clientNum ||
01551 es->groundEntityNum == cg.predictedPlayerState.clientNum)
01552 {
01553 CG_CenterPrint( CG_GetStringEdString("MP_SVGAME", "BEGIN_DUEL"), 120, GIANTCHAR_WIDTH*2 );
01554 trap_S_StartLocalSound( cgs.media.countFightSound, CHAN_ANNOUNCER );
01555 }
01556 break;
01557
01558 case EV_PRIVATE_DUEL:
01559 DEBUGNAME("EV_PRIVATE_DUEL");
01560
01561 if (cg.snap->ps.clientNum != es->number)
01562 {
01563 break;
01564 }
01565
01566 if (es->eventParm)
01567 {
01568 if (es->eventParm == 2)
01569 {
01570 CG_CenterPrint( CG_GetStringEdString("MP_SVGAME", "BEGIN_DUEL"), 120, GIANTCHAR_WIDTH*2 );
01571 trap_S_StartLocalSound( cgs.media.countFightSound, CHAN_ANNOUNCER );
01572 }
01573 else
01574 {
01575 trap_S_StartBackgroundTrack( "music/mp/duel.mp3", "music/mp/duel.mp3", qfalse );
01576 }
01577 }
01578 else
01579 {
01580 CG_StartMusic(qtrue);
01581 }
01582 break;
01583
01584 case EV_JUMP:
01585 DEBUGNAME("EV_JUMP");
01586 if (cg_jumpSounds.integer)
01587 {
01588 trap_S_StartSound (NULL, es->number, CHAN_VOICE, CG_CustomSound( es->number, "*jump1.wav" ) );
01589 }
01590 break;
01591 case EV_ROLL:
01592 DEBUGNAME("EV_ROLL");
01593 if (es->number == cg.snap->ps.clientNum && cg.snap->ps.fallingToDeath)
01594 {
01595 break;
01596 }
01597 if (es->eventParm)
01598 {
01599 DoFall(cent, es, clientNum);
01600 }
01601
01602 trap_S_StartSound (NULL, es->number, CHAN_VOICE, CG_CustomSound( es->number, "*jump1.wav" ) );
01603 trap_S_StartSound( NULL, es->number, CHAN_BODY, cgs.media.rollSound );
01604
01605
01606 break;
01607
01608 case EV_TAUNT:
01609 DEBUGNAME("EV_TAUNT");
01610 {
01611 int soundIndex = 0;
01612 if ( cgs.gametype != GT_DUEL
01613 && cgs.gametype != GT_POWERDUEL
01614 && es->eventParm == TAUNT_TAUNT )
01615 {
01616 soundIndex = CG_CustomSound( es->number, "*taunt.wav" );
01617 }
01618 else
01619 {
01620 switch ( es->eventParm )
01621 {
01622 case TAUNT_TAUNT:
01623 default:
01624 if ( Q_irand( 0, 1 ) )
01625 {
01626 soundIndex = CG_CustomSound( es->number, va("*anger%d.wav", Q_irand(1,3)) );
01627 }
01628 else
01629 {
01630 soundIndex = CG_CustomSound( es->number, va("*taunt%d.wav", Q_irand(1,3)) );
01631 if ( !soundIndex )
01632 {
01633 soundIndex = CG_CustomSound( es->number, va("*anger%d.wav", Q_irand(1,3)) );
01634 }
01635 }
01636 break;
01637 case TAUNT_BOW:
01638
01639 break;
01640 case TAUNT_MEDITATE:
01641
01642 break;
01643 case TAUNT_FLOURISH:
01644 if ( Q_irand( 0, 1 ) )
01645 {
01646 soundIndex = CG_CustomSound( es->number, va("*deflect%d.wav", Q_irand(1,3)) );
01647 if ( !soundIndex )
01648 {
01649 soundIndex = CG_CustomSound( es->number, va("*gloat%d.wav", Q_irand(1,3)) );
01650 if ( !soundIndex )
01651 {
01652 soundIndex = CG_CustomSound( es->number, va("*anger%d.wav", Q_irand(1,3)) );
01653 }
01654 }
01655 }
01656 else
01657 {
01658 soundIndex = CG_CustomSound( es->number, va("*gloat%d.wav", Q_irand(1,3)) );
01659 if ( !soundIndex )
01660 {
01661 soundIndex = CG_CustomSound( es->number, va("*deflect%d.wav", Q_irand(1,3)) );
01662 if ( !soundIndex )
01663 {
01664 soundIndex = CG_CustomSound( es->number, va("*anger%d.wav", Q_irand(1,3)) );
01665 }
01666 }
01667 }
01668 break;
01669 case TAUNT_GLOAT:
01670 soundIndex = CG_CustomSound( es->number, va("*victory%d.wav", Q_irand(1,3)) );
01671 break;
01672 }
01673 }
01674 if ( !soundIndex )
01675 {
01676 soundIndex = CG_CustomSound( es->number, "*taunt.wav" );
01677 }
01678 if ( soundIndex )
01679 {
01680 trap_S_StartSound (NULL, es->number, CHAN_VOICE, soundIndex );
01681 }
01682 }
01683 break;
01684
01685
01686 case EV_ANGER1: |