1 #using scripts\codescripts\struct;
2 #using scripts\shared\clientfield_shared;
3 #using scripts\shared\array_shared;
4 #using scripts\shared\callbacks_shared;
5 #using scripts\shared\system_shared;
6 #using scripts\shared\trigger_shared;
7 #using scripts\shared\util_shared;
8 #using scripts\shared\music_shared;
10 #insert scripts\shared\shared.gsh;
11 #insert scripts\shared\version.gsh;
30 setsoundcontext (
"foley",
"normal");
31 setsoundcontext(
"plr_impact",
"" );
51 if(
self != GetLocalPlayer( localClientNum ) )
54 setsoundcontext (
"foley",
"normal");
56 if ( !SessionModeIsMultiplayerGame() )
58 if( isdefined( level._lastMusicState ) )
60 soundsetmusicstate(level._lastMusicState);
76 if ( IsSplitScreenHost( localClientNum ) )
92 self endon(
"entityshutdown");
95 self waittill(
"doublejump_start" );
97 trace = tracepoint(
self.origin,
self.origin - ( 0, 0, 100000 ) );
98 trace_surface_type =
trace[
"surfacetype"];
99 trace_origin =
trace[
"position"];
101 if( !isdefined(
trace ) || !isdefined( trace_origin ) )
104 if( !isdefined( trace_surface_type ) )
105 trace_surface_type =
"default";
107 playsound( 0,
"veh_jetpack_surface_" + trace_surface_type, trace_origin );
113 self endon(
"entityshutdown");
114 if ( isdefined(level.clientVoiceSetup) )
116 [[level.clientVoiceSetup]]( localClientNum );
121 self.teamClientPrefix =
"vox_gen";
123 self thread
sndVoNotify(
"playerbreathinsound",
"sinper_hold" );
124 self thread
sndVoNotify(
"playerbreathoutsound",
"sinper_exhale" );
125 self thread
sndVoNotify(
"playerbreathgaspsound",
"sinper_gasp" );
131 self endon(
"entityshutdown");
134 self waittill ( notifyString );
136 soundAlias =
self.teamClientPrefix +
"_" + dialog;
138 self playsound (0, soundAlias);
144 level._sndActiveSnapshot =
"default";
145 level._sndNextSnapshot =
"default";
147 mapname = GetDvarString(
"mapname" );
149 if( mapname !==
"core_frontend" )
151 if( SessionModeIsCampaignGame() )
153 level._sndActiveSnapshot =
"cmn_level_start";
154 level._sndNextSnapshot =
"cmn_level_start";
158 if( SessionModeIsZombiesGame() )
160 if( mapname !==
"zm_cosmodrome" && mapname !==
"zm_prototype" && mapname !==
"zm_moon" && mapname !==
"zm_sumpf" && mapname !==
"zm_asylum" && mapname !==
"zm_temple" && mapname !==
"zm_theater" && mapname !==
"zm_tomb" )
162 level._sndActiveSnapshot =
"zmb_game_start_nofade";
163 level._sndNextSnapshot =
"zmb_game_start_nofade";
167 level._sndActiveSnapshot =
"zmb_hd_game_start_nofade";
168 level._sndNextSnapshot =
"zmb_hd_game_start_nofade";
173 setgroupsnapshot( level._sndActiveSnapshot );
179 level endon(
"sndOnOverride" );
186 level._sndNextSnapshot = state;
188 /# println(
"snd duck debug: set state '"+state+
"'" ); #/
190 level notify(
"new_bus" );
197 if( level._sndActiveSnapshot == level._sndNextSnapshot )
199 level waittill(
"new_bus" );
202 if( level._sndActiveSnapshot == level._sndNextSnapshot )
207 assert( isdefined( level._sndNextSnapshot ) );
208 assert( isdefined( level._sndActiveSnapshot ) );
210 setgroupsnapshot( level._sndNextSnapshot );
212 level._sndActiveSnapshot = level._sndNextSnapshot;
218 if( !isdefined( randSound.script_wait_min ) )
220 randSound.script_wait_min = 1;
222 if( !isdefined( randSound.script_wait_max ) )
224 randSound.script_wait_max = 3;
227 notify_name = undefined;
228 if( isdefined( randSound.script_string ) )
230 notify_name = randSound.script_string;
234 if(!isdefined(notify_name) && isdefined(randSound.script_sound))
236 CreateSoundRandom(randSound.origin, randSound.script_sound, randSound.script_wait_min, randSound.script_wait_max);
242 randSound.playing =
true;
247 wait( RandomFloatRange( randSound.script_wait_min, randSound.script_wait_max ) );
249 if( isdefined( randSound.script_sound ) &&
IS_TRUE( randSound.playing ) )
251 playsound( localClientNum, randSound.script_sound, randSound.origin );
255 if( GetDvarint(
"debug_audio" ) > 0 )
257 print3d( randSound.origin, randSound.script_sound, (0.0, 0.8, 0.0), 1, 3, 45 );
266 level waittill( notify_name );
268 randSound.playing =
false;
270 randSound.playing =
true;
278 if( isdefined( randoms ) && randoms.size > 0 )
281 nScriptThreadedRandoms = 0;
283 for( i = 0; i < randoms.size; i ++)
285 if(isdefined(randoms[i].script_scripted))
287 nScriptThreadedRandoms ++;
291 AllocateSoundRandoms(randoms.size - nScriptThreadedRandoms);
293 for( i = 0; i < randoms.size; i++ )
303 if( !isdefined(
self.script_sound ) )
308 if( !isdefined(
self.origin ) )
315 assert( isdefined( notifyName ) );
317 if( isdefined(
self.script_string ) )
319 notifyName =
self.script_string;
321 assert( isdefined( notifyName ) );
325 if( isdefined(
self.script_int ) )
327 started =
self.script_int != 0;
332 soundloopemitter(
self.script_sound,
self.origin );
335 if( notifyName !=
"" )
339 level waittill( notifyName );
343 soundstoploopemitter(
self.script_sound,
self.origin );
349 soundloopemitter(
self.script_sound,
self.origin );
359 level waittill(
"save_restore" );
361 soundloopemitter(
self.script_sound,
self.origin );
367 if(!isdefined(
self.target) )
374 if( !isdefined( target) )
381 if( isdefined(
self.script_string ) )
383 notifyName =
self.script_string;
388 if( isdefined(
self.script_int ) )
390 started =
self.script_int != 0;
395 soundLineEmitter(
self.script_sound,
self.origin, target.origin );
398 if( notifyName !=
"" )
402 level waittill( notifyName );
406 soundStopLineEmitter(
self.script_sound,
self.origin, target.origin );
412 soundLineEmitter(
self.script_sound,
self.origin, target.origin );
422 level waittill(
"save_restore" );
424 soundLineEmitter(
self.script_sound,
self.origin, target.origin );
431 if( isdefined( loopers ) && loopers.size > 0 )
435 if( GetDvarint(
"debug_audio" ) > 0 )
437 println(
"*** Client : Initialising looper sounds - " + loopers.size +
" emitters." );
440 for( i = 0; i < loopers.size; i++ )
454 if( GetDvarint(
"debug_audio" ) > 0 )
456 println(
"*** Client : No looper sounds." );
466 if( isdefined( lineEmitters ) && lineEmitters.size > 0 )
470 if( GetDvarint(
"debug_audio" ) > 0 )
472 println(
"*** Client : Initialising line emitter sounds - " + lineEmitters.size +
" emitters." );
475 for( i = 0; i < lineEmitters.size; i++ )
489 if( GetDvarint(
"debug_audio" ) > 0 )
491 println(
"*** Client : No line emitter sounds." );
501 if( isdefined( rattles ))
504 println(
"found "+rattles.size+
" rattles" );
509 for( i = 0; i < rattles.size; i++ )
511 soundrattlesetup(rattles[i].script_sound, rattles[i].origin);
529 stepTrigs = GetEntArray( localClientNum,
"audio_step_trigger",
"targetname" );
530 materialTrigs = GetEntArray( localClientNum,
"audio_material_trigger",
"targetname" );
532 if( GetDvarint(
"debug_audio" ) > 0 )
534 println(
"Client : " + stepTrigs.size +
" audio_step_triggers." );
535 println(
"Client : " + materialTrigs.size +
" audio_material_triggers." );
545 self._localClientNum = localClientNum;
548 self waittill(
"trigger", trigPlayer );
559 self waittill(
"trigger", trigPlayer );
568 if( !isdefined( player.inMaterialOverrideTrigger ) )
570 player.inMaterialOverrideTrigger = 0;
572 if( isdefined(
self.script_label ) )
574 player.inMaterialOverrideTrigger++;
575 player.audioMaterialOverride =
self.script_label;
577 player SetMaterialOverride(
self.script_label);
583 if( isdefined(
self.script_label ) )
585 player.inMaterialOverrideTrigger--;
587 assert( player.inMaterialOverrideTrigger >= 0 );
589 if ( player.inMaterialOverrideTrigger <= 0 )
591 player.audioMaterialOverride = undefined;
592 player.inMaterialOverrideTrigger = 0;
594 player ClearMaterialOverride();
602 localClientNum =
self._localClientNum;
604 if( !isdefined( trigPlayer.inStepTrigger ) )
606 trigPlayer.inStepTrigger = 0;
610 if( trigPlayer IsLocalPlayer() )
616 if( isdefined(
self.script_label) )
618 trigPlayer.step_sound =
self.script_label;
619 trigPlayer.inStepTrigger = trigPlayer.inStepTrigger + 1;
620 trigPlayer SetStepTriggerSound(
self.script_label + suffix);
622 if( isdefined(
self.script_sound ) && ( trigPlayer GetMovementType() ==
"sprint" ) )
626 trigPlayer playsound( localClientNum,
self.script_sound + suffix,
self.origin, volume );
632 localClientNum =
self._localClientNum;
635 if( trigPlayer IsLocalPlayer() )
640 if( isdefined(
self.script_noteworthy ) && ( trigPlayer GetMovementType() ==
"sprint" ) )
643 trigPlayer playsound( localClientNum,
self.script_noteworthy + suffix,
self.origin, volume );
645 if ( isdefined(
self.script_label) )
647 trigPlayer.inStepTrigger = trigPlayer.inStepTrigger - 1;
649 if (trigPlayer.inStepTrigger < 0 )
651 /# println(
"AUDIO WARNING InStepTrigger less than 0. Should never be. setting to 0" ); #/
652 trigPlayer.inStepTrigger = 0;
655 if (trigPlayer.inStepTrigger == 0)
657 trigPlayer.step_sound =
"none";
658 trigPlayer ClearStepTriggerSound();
664 bump_trigs = GetEntArray( localClientNum,
"audio_bump_trigger",
"targetname" );
666 for( i = 0; i < bump_trigs.size; i++)
675 if( !isdefined(
self.script_activated ) )
677 self.script_activated = 1;
679 self._localClientNum = localClientNum;
682 self waittill (
"trigger", trigPlayer );
690 if ( !isdefined( ent ) )
693 localClientNum =
self._localClientNum;
696 if( !SessionModeIsZombiesGame() )
698 if ( ent IsPlayer() && ent HasPerk( localClientNum,
"specialty_quieter" ))
703 if( isdefined(
self.script_sound ) && (
self.script_activated))
706 if( isdefined(
self.script_noteworthy ) && (
self.
script_wait > volume ) )
708 test_id = ent playsound( localClientNum,
self.script_noteworthy,
self.origin, volume );
710 if( isdefined(
self.script_parameters ))
712 test_id = ent playsound( localClientNum,
self.script_parameters,
self.origin, volume );
716 test_id = ent playsound( localClientNum,
self.script_sound,
self.origin, volume );
719 if ( isdefined(
self.script_location ) && (
self.script_activated))
721 ent thread
mantle_wait(
self.script_location, localClientNum);
728 self endon (
"death");
729 self endon (
"left_mantle");
731 self waittill (
"traversesound");
732 self playsound ( localClientNum, alias,
self.origin, 1 );
738 ent notify (
"left_mantle");
744 if( isdefined(
self.script_label ) )
746 level waittill(
self.script_label );
747 self.script_activated = 0;
775 speed = player getspeed();
787 volume =
scale_speed( min_speed, max_speed, min_vol, max_vol, abs_speed );
803 self endon (
"end line sound");
805 LineMagSqrd = lengthsquared(LineEnd - LineStart);
807 t = ( ( ( Point[0] - LineStart[0] ) * ( LineEnd[0] - LineStart[0] ) ) +
808 ( ( Point[1] - LineStart[1] ) * ( LineEnd[1] - LineStart[1] ) ) +
809 ( ( Point[2] - LineStart[2] ) * ( LineEnd[2] - LineStart[2] ) ) ) /
814 self.origin = LineStart;
818 self.origin = LineEnd;
822 start_x = LineStart[0] + t * ( LineEnd[0] - LineStart[0] );
823 start_y = LineStart[1] + t * ( LineEnd[1] - LineStart[1] );
824 start_z = LineStart[2] + t * ( LineEnd[2] - LineStart[2] );
826 self.origin = ( start_x, start_y, start_z );
841 function snd_play_auto_fx( fxid, alias, offsetx, offsety, offsetz, onground, area, threshold, alias_override )
843 SoundPlayAutoFX( fxid, alias, offsetx, offsety, offsetz, onground, area, threshold, alias_override );
849 if( GetDvarint(
"debug_audio" ) > 0 )
851 printLn(
"^5 ******* fxid; " + fxid +
"^5 type; " + type );
861 if( GetDvarint(
"debug_audio" ) > 0 )
863 line(
self.start,
self.
end, (0, 1, 0) );
865 print3d(
self.start,
"START", (0.0, 0.8, 0.0), 1, 3, 1 );
866 print3d(
self.
end,
"END", (0.0, 0.8, 0.0), 1, 3, 1 );
867 print3d(
self.origin,
self.script_sound, (0.0, 0.8, 0.0), 1, 3, 1 );
876 closest_dist = undefined;
886 if( isdefined(
self.fake_ent ) )
888 self.fake_ent.origin =
self.origin;
892 closest_dist = DistanceSquared( getlocalclientpos( 0 ),
self.origin );
894 if( closest_dist > 1024 * 1024 )
898 else if( closest_dist > 512 * 512 )
911 soundloopemitter ( aliasname, origin );
916 soundstoploopemitter (aliasname, origin );
921 while( soundplaying(
id ) )
929 level endon(
"demo_jump" );
930 self endon(
"entityshutdown" );
931 level endon(
"killcam_begin" + localClientNum );
932 level endon(
"killcam_end" + localClientNum );
933 self endon(
"sndEndUWWatcher");
935 if ( !isdefined( level.audioSharedSwimming ) )
937 level.audioSharedSwimming =
false;
940 if ( !isdefined( level.audioSharedUnderwater ) )
942 level.audioSharedUnderwater =
false;
945 if ( level.audioSharedSwimming != IsSwimming( localClientNum ) )
947 level.audioSharedSwimming = IsSwimming( localClientNum );
948 if ( level.audioSharedSwimming )
959 if ( level.audioSharedUnderwater != IsUnderwater( localClientNum ) )
961 level.audioSharedUnderwater = IsUnderwater( localClientNum );
962 if ( level.audioSharedUnderwater )
975 underwaterNotify =
self util::waittill_any_ex(
"underwater_begin",
"underwater_end",
"swimming_begin",
"swimming_end",
"death",
"entityshutdown",
"sndEndUWWatcher", level,
"demo_jump",
"killcam_begin" + localClientNum,
"killcam_end" + localClientNum );
977 if ( underwaterNotify ==
"death" )
982 if ( underwaterNotify ==
"underwater_begin" )
986 else if ( underwaterNotify ==
"underwater_end" )
990 else if ( underwaterNotify ==
"swimming_begin" )
994 else if ( underwaterNotify ==
"swimming_end" &&
self isplayer() && IsAlive (
self))
1003 level.audioSharedUnderwater =
true;
1008 level.audioSharedUnderwater =
false;
1014 level waittill(
"pfx_igc_on" );
1015 setsoundcontext (
"igc",
"on");
1016 level waittill(
"pfx_igc_off" );
1017 setsoundcontext (
"igc",
"");
1024 self.audioSharedSwimming =
true;
1029 self.audioSharedSwimming =
false;
1034 self.audioSharedSwimming =
false;
1039 if ( !isdefined( level.playingUIDecodeLoop ) || !level.playingUIDecodeLoop )
1041 level.playingUIDecodeLoop =
true;
1042 fake_ent =
spawn( 0, (0,0,0),
"script_origin" );
1044 if ( isdefined(fake_ent) )
1046 fake_ent playloopsound(
"uin_notify_data_loop");
1047 wait(playTimeMs/1000);
1048 fake_ent stopallloopsounds(0);
1051 level.playingUIDecodeLoop = undefined;
1057 if ( isdefined( level._sndAmbientStateCallback ) )
1059 level thread [[level._sndAmbientStateCallback]]( ambientRoom, ambientPackage, roomColliderCent );
1065 self endon(
"entityshutdown");
1067 mapname = GetDvarString(
"mapname" );
1069 if (!isdefined (mapname))
1071 mapname =
"cp_mi_eth_prologue";
1074 if(IsDefined (
self))
1078 case "cp_mi_eth_prologue":
1079 self.isInfected =
false;
1080 setsoundcontext (
"healthstate",
"human");
1083 case "cp_mi_cairo_infection2":
1084 self.isInfected =
true;
1085 setsoundcontext (
"healthstate",
"infected");
1088 case "cp_mi_cairo_infection3":
1089 self.isInfected =
true;
1090 setsoundcontext (
"healthstate",
"infected");
1093 case "cp_mi_cairo_aquifer":
1094 self.isInfected =
true;
1095 setsoundcontext (
"healthstate",
"infected");
1098 case "cp_mi_cairo_lotus":
1099 self.isInfected =
true;
1100 setsoundcontext (
"healthstate",
"infected");
1103 case "cp_mi_cairo_lotus2":
1104 self.isInfected =
true;
1105 setsoundcontext (
"healthstate",
"infected");
1108 case "cp_mi_cairo_lotus3":
1109 self.isInfected =
true;
1110 setsoundcontext (
"healthstate",
"infected");
1113 case "cp_mi_zurich_coalescence":
1114 self.isInfected =
true;
1115 setsoundcontext (
"healthstate",
"infected");
1119 self.isInfected =
false;
1120 setsoundcontext (
"healthstate",
"human");
1124 self.isInfected =
false;
1125 setsoundcontext (
"healthstate",
"human");
1129 self.isInfected =
false;
1130 setsoundcontext (
"healthstate",
"cyber");
1135 function sndHealthSystem(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1138 lowHealthEnterAlias =
"chr_health_lowhealth_enter";
1139 lowHealthExitAlias =
"chr_health_lowhealth_exit";
1140 laststandExitAlias =
"chr_health_laststand_exit";
1141 dniReparAlais =
"chr_health_dni_repair";
1148 self.lowHealth =
true;
1149 playsound( localClientNum, lowHealthEnterAlias, (0,0,0) );
1150 forceambientroom(
"sndHealth_LowHealth" );
1151 self thread
sndDniRepair ( localClientNum, dniReparAlais, 0.4, 0.8 );
1155 PlaySound( localClientNum, lowHealthExitAlias, (0,0,0) );
1156 forceambientroom(
"sndHealth_LastStand" );
1157 self notify (
"sndDniRepairDone");
1158 setsoundcontext (
"laststand",
"active");
1164 self.lowHealth =
false;
1165 setsoundcontext (
"laststand",
"");
1167 if( SessionModeIsCampaignGame() &&
IS_TRUE(level.audioSharedUnderwater) )
1169 mapname = GetDvarString(
"mapname" );
1170 if( mapname ==
"cp_mi_sing_sgen" )
1172 forceambientroom(
"" );
1176 forceambientroom(
"" );
1181 forceambientroom(
"" );
1186 playsound( localClientNum, lowHealthExitAlias, (0,0,0) );
1187 self notify (
"sndDniRepairDone");
1191 if( IsAlive(
self ) )
1193 playsound( localClientNum, laststandExitAlias, (0,0,0) );
1194 if(
IS_TRUE(
self.sndTacRigEmergencyReserve) )
1196 playsound( localClientNum,
"gdt_cybercore_regen_complete", (0,0,0) );
1199 self notify (
"sndDniRepairDone");
1207 self endon (
"sndDniRepairDone");
1210 if( IsDefined(
self ) && IsDefined (
self.isInfected))
1212 if (
self.isInfected)
1214 playsound( localClientNum,
"vox_dying_infected_after", (0,0,0) );
1216 while ( IsDefined(
self ) )
1218 playsound( localClientNum, alais, (0,0,0) );
1219 wait RandomFloatRange( min, max );
1224 function sndTacRig(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1228 self.sndTacRigEmergencyReserve =
true;
1232 self.sndTacRigEmergencyReserve =
false;
1239 if( isdefined( min ) && min > 0 )
1241 if( isdefined( max ) && max <= 0 )
1246 soundrattle(origin,min,max);
1249 function sndRattle_Server(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1253 if(
self.model ==
"wpn_t7_bouncing_betty_world" )
1255 betty = getweapon(
"bouncingbetty" );
1256 level thread
doRattle(
self.origin, betty.soundRattleRangeMin, betty.soundRattleRangeMax);
1260 level thread
doRattle(
self.origin, 25, 600);
1268 level waittill(
"explode", localClientNum, position, mod, weapon, owner_cent );
1269 level thread
doRattle(position, weapon.soundRattleRangeMin, weapon.soundRattleRangeMax);
1279 level.mysnd = playsound(localClientNum,
"chr_melee_tinitus", (0,0,0));
1280 forceambientroom(
"sndHealth_Melee");
1284 self.meleed =
false;
1285 forceambientroom(
"" );
1287 if( isdefined( level.mySnd ) )
1288 stopsound(level.mySnd);
1295 setsoundcontext (
"foley",
"normal");
1300 function sndMatchSnapshot(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1322 function sndFoleyContext(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1332 setsoundcontext (
"foley",
"normal");
1344 level waittill(
"sndDED" );
1353 level waittill(
"sndDEDe" );
1362 level waittill(
"sndFKs" );
1363 playsound( 0,
"mpl_final_killcam_enter", (0,0,0) );
1371 level waittill(
"sndFKsl" );
1372 playsound( 0,
"mpl_final_killcam_enter", (0,0,0) );
1373 playsound( 0,
"mpl_final_killcam_slowdown", (0,0,0) );
1381 level waittill(
"sndFKe" );
1388 if(
self IsLocalClientDriver( localClientNum ) )
1391 setsoundcontext(
"plr_impact",
"veh" );
1396 setsoundcontext(
"plr_impact",
"" );
1402 self waittill(
"death");
1403 soundsetmusicstate(
"death");
1405 function sndCChacking(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1412 playsound(0,
"gdt_cybercore_hack_start_plr", (0,0,0));
1413 self.hsnd =
self playloopsound(
"gdt_cybercore_hack_lp_plr", .5);
1416 playsound(0,
"gdt_cybercore_prime_upg_plr", (0,0,0));
1417 self.hsnd =
self playloopsound(
"gdt_cybercore_prime_loop_plr", .5);
1423 if(isdefined(
self.hsnd))
1425 self stoploopsound(
self.hsnd, .5);
1429 playsound(0,
"gdt_cybercore_hack_success_plr", (0,0,0));
1430 else if( oldVal == 2 )
1431 playsound(0,
"gdt_cybercore_activate_fail_plr", (0,0,0));
1436 #define SNAPSHOT_SPECIAL_SILENT 1
1437 #define SNAPSHOT_AMB_SILENT 2
1438 #define SNAPSHOT_FOLEY_QUIETER 3
1439 #define SNAPSHOT_LEVEL_END 4
1440 #define SNAPSHOT_LEVEL_END_IMMEDIATE 5
1441 function sndIGCsnapshot(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1449 level.sndIGCsnapshotOverride =
false;
1453 level.sndIGCsnapshotOverride =
true;
1457 level.sndIGCsnapshotOverride =
false;
1461 level.sndIGCsnapshotOverride =
false;
1465 level.sndIGCsnapshotOverride =
false;
1471 level.sndIGCsnapshotOverride =
false;
1479 if( !
IS_TRUE( level.sndIGCsnapshotOverride ) )
1485 function sndZMBFadeIn( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
1492 function sndChyronLoop(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
1496 if (!isdefined (level.chyronLoop))
1498 level.chyronLoop =
spawn( 0, (0,0,0),
"script_origin" );
1499 level.chyronLoop PlayLoopSound (
"uin_chyron_loop");
1504 if (isdefined (level.chyronLoop))
1506 level.chyronLoop Delete();