Files
2023-10-26 13:13:39 -07:00

192 lines
9.8 KiB
Plaintext

// T6 GSC SOURCE
// Decompiled by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
#include clientscripts\mp\createfx\mp_drone_fx;
#include clientscripts\mp\_fx;
precache_scripted_fx()
{
level._effect["fx_mp_drone_robot_sparks"] = loadfx( "maps/mp_maps/fx_mp_drone_robot_sparks" );
}
precache_createfx_fx()
{
level._effect["fx_leaves_falling_mangrove_lg_dark"] = loadfx( "env/foliage/fx_leaves_falling_mangrove_lg_dark" );
level._effect["fx_mp_vent_steam"] = loadfx( "maps/mp_maps/fx_mp_vent_steam" );
level._effect["fx_hvac_steam_md"] = loadfx( "smoke/fx_hvac_steam_md" );
level._effect["fx_mp_water_drip_light_shrt"] = loadfx( "maps/mp_maps/fx_mp_water_drip_light_shrt" );
level._effect["fx_fog_street_cool_slw_md"] = loadfx( "fog/fx_fog_street_cool_slw_md" );
level._effect["fx_light_emrgncy_floodlight"] = loadfx( "light/fx_light_emrgncy_floodlight" );
level._effect["fx_insects_swarm_dark_lg"] = loadfx( "bio/insects/fx_insects_swarm_dark_lg" );
level._effect["fx_mp_fog_low"] = loadfx( "maps/mp_maps/fx_mp_fog_low" );
level._effect["fx_insects_swarm_md_light"] = loadfx( "bio/insects/fx_insects_swarm_md_light" );
level._effect["fx_lf_dockside_sun1"] = loadfx( "lens_flares/fx_lf_mp_drone_sun1" );
level._effect["fx_light_floodlight_rnd_cool_glw_dim"] = loadfx( "light/fx_light_floodlight_rnd_cool_glw_dim" );
level._effect["fx_mp_steam_pipe_md"] = loadfx( "maps/mp_maps/fx_mp_steam_pipe_md" );
level._effect["fx_mp_light_dust_motes_md"] = loadfx( "maps/mp_maps/fx_mp_light_dust_motes_md" );
level._effect["fx_mp_light_dust_motes_sm"] = loadfx( "maps/mp_maps/fx_mp_light_dust_motes_sm" );
level._effect["fx_mp_fog_cool_ground"] = loadfx( "maps/mp_maps/fx_mp_fog_cool_ground" );
level._effect["fx_red_button_flash"] = loadfx( "light/fx_red_button_flash" );
level._effect["fx_mp_distant_cloud"] = loadfx( "maps/mp_maps/fx_mp_distant_cloud_lowmem" );
level._effect["fx_light_god_ray_mp_drone"] = loadfx( "env/light/fx_light_god_ray_mp_drone" );
level._effect["fx_ceiling_circle_light_glare"] = loadfx( "light/fx_ceiling_circle_light_glare" );
level._effect["fx_drone_rectangle_light"] = loadfx( "light/fx_drone_rectangle_light" );
level._effect["fx_drone_rectangle_light_02"] = loadfx( "light/fx_drone_rectangle_light_02" );
level._effect["fx_mp_water_drip_light_long"] = loadfx( "maps/mp_maps/fx_mp_water_drip_light_long" );
level._effect["fx_pc_panel_lights_runner"] = loadfx( "props/fx_pc_panel_lights_runner" );
level._effect["fx_drone_red_ring_console"] = loadfx( "light/fx_drone_red_ring_console" );
level._effect["fx_blue_light_flash"] = loadfx( "light/fx_blue_light_flash" );
level._effect["fx_window_god_ray"] = loadfx( "light/fx_window_god_ray" );
level._effect["fx_mp_drone_interior_steam"] = loadfx( "maps/mp_maps/fx_mp_drone_interior_steam" );
level._effect["fx_pc_panel_heli"] = loadfx( "props/fx_pc_panel_heli" );
level._effect["fx_red_light_flash"] = loadfx( "light/fx_red_light_flash" );
level._effect["fx_drone_rectangle_light_blue"] = loadfx( "light/fx_drone_rectangle_light_blue" );
level._effect["fx_mp_distant_cloud_vista"] = loadfx( "maps/mp_maps/fx_mp_distant_cloud_vista_lowmem" );
level._effect["fx_drone_rectangle_light_blue_4"] = loadfx( "light/fx_drone_rectangle_light_blue_4" );
level._effect["fx_drone_rectangle_light_yellow"] = loadfx( "light/fx_drone_rectangle_light_yellow" );
level._effect["fx_ceiling_circle_light_led"] = loadfx( "light/fx_ceiling_circle_light_led" );
level._effect["fx_drone_red_ring_console_runner"] = loadfx( "light/fx_drone_red_ring_console_runner" );
level._effect["fx_light_beacon_red_blink_fst"] = loadfx( "light/fx_light_beacon_red_blink_fst" );
level._effect["fx_wall_water_ground"] = loadfx( "water/fx_wall_water_ground" );
level._effect["fx_drone_rectangle_light_03"] = loadfx( "light/fx_drone_rectangle_light_03" );
level._effect["fx_drone_red_blink"] = loadfx( "light/fx_drone_red_blink" );
level._effect["fx_light_god_ray_mp_drone2"] = loadfx( "env/light/fx_light_god_ray_mp_drone2" );
level._effect["fx_drone_rectangle_light_skinny"] = loadfx( "light/fx_drone_rectangle_light_skinny" );
level._effect["fx_mp_drone_rapid"] = loadfx( "maps/mp_maps/fx_mp_drone_rapid" );
level._effect["fx_mp_distant_cloud_vista_lg"] = loadfx( "maps/mp_maps/fx_mp_distant_cloud_vista_lg_lowmem" );
level._effect["fx_light_exit_sign"] = loadfx( "light/fx_light_exit_sign_glow" );
level._effect["fx_drone_light_yellow"] = loadfx( "light/fx_drone_light_yellow" );
}
main()
{
clientscripts\mp\createfx\mp_drone_fx::main();
clientscripts\mp\_fx::reportnumeffects();
precache_createfx_fx();
precache_fxanim_props();
disablefx = getdvarint( _hash_C9B177D6 );
if ( !isdefined( disablefx ) || disablefx <= 0 )
precache_scripted_fx();
}
#using_animtree("fxanim_props");
precache_fxanim_props()
{
level.scr_anim["fxanim_props"]["vines_aquilaria"] = %fxanim_gp_vines_aquilaria_anim;
level.scr_anim["fxanim_props"]["vines_strangler_fig"] = %fxanim_gp_vines_strangler_fig_anim;
level.drone_anims = [];
level.drone_anims["fxanim_mp_drone_factory_link_anim"] = %fxanim_mp_drone_factory_link_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_01_anim"] = %fxanim_mp_drone_factory_welder_01_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_02_anim"] = %fxanim_mp_drone_factory_welder_02_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_03_anim"] = %fxanim_mp_drone_factory_welder_03_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_04_anim"] = %fxanim_mp_drone_factory_welder_04_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_01_anim"] = %fxanim_mp_drone_factory_suction_01_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_02_anim"] = %fxanim_mp_drone_factory_suction_02_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_03_anim"] = %fxanim_mp_drone_factory_suction_03_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_04_anim"] = %fxanim_mp_drone_factory_suction_04_anim;
level.drone_anims["fxanim_mp_drone_factory_link_anim_off"] = %fxanim_mp_drone_factory_link_off_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_01_anim_off"] = %fxanim_mp_drone_factory_welder_01_off_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_02_anim_off"] = %fxanim_mp_drone_factory_welder_02_off_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_03_anim_off"] = %fxanim_mp_drone_factory_welder_03_off_anim;
level.drone_anims["fxanim_mp_drone_factory_welder_04_anim_off"] = %fxanim_mp_drone_factory_welder_04_off_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_01_anim_off"] = %fxanim_mp_drone_factory_suction_01_off_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_02_anim_off"] = %fxanim_mp_drone_factory_suction_02_off_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_03_anim_off"] = %fxanim_mp_drone_factory_suction_03_off_anim;
level.drone_anims["fxanim_mp_drone_factory_suction_04_anim_off"] = %fxanim_mp_drone_factory_suction_04_off_anim;
level.scr_anim["fxanim_props"]["vines_strangler_fig_alt"] = %fxanim_gp_vines_strangler_fig_alt_anim;
level.fx_anim_level_init = ::fxanim_init;
}
fxanim_init( localclientnum )
{
level waittill( "snap_processed" );
models = getentarray( localclientnum, "drone_fxanim", "targetname" );
foreach ( model in models )
{
if ( model.model == "fxanim_mp_drone_factory_link_mod" )
model drone_link( localclientnum );
if ( isdefined( model.script_animation ) )
{
if ( issubstr( model.script_animation, "drone_factory_welder" ) )
{
model thread drone_animate_fx( localclientnum );
continue;
}
model thread drone_animation( localclientnum );
}
}
}
drone_animation( localclientnum )
{
self waittill_dobj( localclientnum );
assert( isdefined( level.drone_anims[self.script_animation] ) );
self useanimtree( #animtree );
if ( getgametypesetting( "allowMapScripting" ) )
self animscripted( level.drone_anims[self.script_animation], 1.0, 0.0, 1.0 );
else
self animscripted( level.drone_anims[self.script_animation + "_off"], 1.0, 0.0, 1.0 );
}
drone_link( localclientnum )
{
self waittill_dobj( localclientnum );
models = getentarray( localclientnum, "drone_linkto", "targetname" );
foreach ( model in models )
{
model waittill_dobj( localclientnum );
model linkto( self, model.script_noteworthy );
}
}
drone_animate_fx( localclientnum )
{
self endon( "death" );
self endon( "entityshutdown" );
self endon( "delete" );
self waittill_dobj( localclientnum );
self useanimtree( #animtree );
if ( getgametypesetting( "allowMapScripting" ) )
self animflaggedscripted( "fx", level.drone_anims[self.script_animation], 1.0, 0.0, 1.0 );
else
self animflaggedscripted( "fx", level.drone_anims[self.script_animation + "_off"], 1.0, 0.0, 1.0 );
for (;;)
{
self waittill( "fx", note );
switch ( note )
{
case "tack_weld_10":
case "tack_weld_09":
case "tack_weld_08":
case "tack_weld_07":
case "tack_weld_06":
case "tack_weld_05":
case "tack_weld_04":
case "tack_weld_03":
case "tack_weld_02":
case "tack_weld_01":
case "seam_weld_04_stop":
case "seam_weld_04_start":
case "seam_weld_03_stop":
case "seam_weld_03_start":
case "seam_weld_02_stop":
case "seam_weld_02_start":
case "seam_weld_01_stop":
case "seam_weld_01_start":
playfxontag( localclientnum, level._effect["fx_mp_drone_robot_sparks"], self, "tag_fx" );
break;
}
}
}