// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool main( var_0, var_1, var_2, var_3 ) { if ( var_0 == "vehicle_submarine_sdv" || var_0 == "vehicle_mini_sub_iw6" ) maps\_vehicle::build_template( "submarine_sdv", var_0, var_1, var_2 ); else maps\_vehicle::build_template( "blackshadow_730", var_0, var_1, var_2 ); maps\_vehicle::build_localinit( ::init_local ); maps\_vehicle::build_deathmodel( var_0 ); maps\_vehicle::build_life( 999, 500, 1500 ); if ( var_0 == "vehicle_mini_sub_iw6" ) { maps\_vehicle::build_unload_groups( ::unload_groups ); maps\_vehicle::build_aianims( ::setanims, ::set_vehicle_anims ); } if ( !isdefined( var_3 ) || !var_3 ) { if ( var_0 == "vehicle_mini_sub_iw6" ) maps\_vehicle::build_rumble( "subtle_tank_rumble", 0.05, 1.5, 900, 1, 1 ); } maps\_vehicle::build_team( "allies" ); level._effect["sdv_prop_wash_1"] = loadfx( "fx/water/sdv_prop_wash_2" ); level._effect["mini_sub_prop_wash"] = loadfx( "vfx/moments/ship_graveyard/mini_sub_propeller_bubbles" ); level._effect["sdv_headlights"] = loadfx( "fx/misc/spotlight_submarine_sdv" ); } init_local() { maps\_utility::ent_flag_init( "moving" ); maps\_utility::ent_flag_init( "lights" ); self.light_tag = common_scripts\utility::spawn_tag_origin(); self.light_tag linkto( self, "TAG_BIG_LIGHT1", ( 0, 0, 0 ), ( 0, 0, 0 ) ); if ( self.model == "vehicle_mini_sub_iw6" ) self.moving_unload = 1; thread cleanup_sdv(); thread handle_move(); thread handle_lights(); } handle_move() { self endon( "sdv_done" ); self endon( "death" ); for (;;) { maps\_utility::ent_flag_wait( "moving" ); thread maps\_utility::play_sound_on_tag( "sdv_start", "TAG_PROPELLER" ); maps\_utility::delaythread( 1, maps\_utility::play_loop_sound_on_tag, "sdv_move_loop", "TAG_PROPELLER", 1 ); if ( self.model == "vehicle_mini_sub_iw6" ) thread mini_sub_prop_wash(); else playfxontag( common_scripts\utility::getfx( "sdv_prop_wash_1" ), self, "TAG_PROPELLER" ); maps\_utility::ent_flag_waitopen( "moving" ); if ( self.model == "vehicle_mini_sub_iw6" ) thread mini_sub_prop_wash_stop(); else stopfxontag( common_scripts\utility::getfx( "sdv_prop_wash_1" ), self, "TAG_PROPELLER" ); self notify( "stop soundsdv_move_loop" ); thread maps\_utility::play_sound_on_tag( "sdv_stop", "TAG_PROPELLER" ); } } mini_sub_prop_wash() { playfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propellerbottom" ); common_scripts\utility::waitframe(); playfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propeller1_le" ); playfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propeller1_ri" ); common_scripts\utility::waitframe(); } mini_sub_prop_wash_stop() { stopfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propellerbottom" ); common_scripts\utility::waitframe(); stopfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propeller1_le" ); stopfxontag( common_scripts\utility::getfx( "mini_sub_prop_wash" ), self, "j_propeller1_ri" ); common_scripts\utility::waitframe(); } cleanup_sdv() { common_scripts\utility::waittill_either( "sdv_done", "death" ); stopfxontag( common_scripts\utility::getfx( "sdv_headlights" ), self.light_tag, "TAG_ORIGIN" ); if ( isdefined( self ) && maps\_utility::ent_flag( "moving" ) ) { stopfxontag( common_scripts\utility::getfx( "sdv_prop_wash_1" ), self, "TAG_PROPELLER" ); self notify( "stop soundsdv_move_loop" ); } var_0 = self.light_tag; wait 0.2; var_0 delete(); } handle_lights() { self endon( "sdv_done" ); self endon( "death" ); for (;;) { maps\_utility::ent_flag_wait( "lights" ); playfxontag( common_scripts\utility::getfx( "sdv_headlights" ), self.light_tag, "TAG_ORIGIN" ); maps\_utility::ent_flag_waitopen( "lights" ); stopfxontag( common_scripts\utility::getfx( "sdv_headlights" ), self.light_tag, "TAG_ORIGIN" ); } } #using_animtree("generic_human"); setanims() { var_0 = []; for ( var_1 = 0; var_1 < 6; var_1++ ) var_0[var_1] = spawnstruct(); var_0[0].idle = %minisub_enemy_idle_r_01; var_0[1].idle = %minisub_enemy_idle_r_02; var_0[2].idle = %minisub_enemy_idle_r_03; var_0[3].idle = %minisub_enemy_idle_l_01; var_0[4].idle = %minisub_enemy_idle_l_02; var_0[5].idle = %minisub_enemy_idle_l_03; var_0[0].sittag = "tag_guy1"; var_0[1].sittag = "tag_guy2"; var_0[2].sittag = "tag_guy3"; var_0[3].sittag = "tag_guy6"; var_0[4].sittag = "tag_guy5"; var_0[5].sittag = "tag_guy4"; var_0[0].getout = %minisub_enemy_dismount_r_01; var_0[1].getout = %minisub_enemy_dismount_r_02; var_0[2].getout = %minisub_enemy_dismount_r_03; var_0[3].getout = %minisub_enemy_dismount_l_01; var_0[4].getout = %minisub_enemy_dismount_l_02; var_0[5].getout = %minisub_enemy_dismount_l_03; var_0[0].getoutstance = "stand"; var_0[1].getoutstance = "stand"; var_0[2].getoutstance = "stand"; var_0[3].getoutstance = "stand"; var_0[4].getoutstance = "stand"; var_0[5].getoutstance = "stand"; return var_0; } set_vehicle_anims( var_0 ) { return var_0; } unload_groups() { var_0["left"] = []; var_0["right"] = []; var_0["passengers"] = []; var_0["default"] = []; var_0["right"][var_0["right"].size] = 0; var_0["right"][var_0["right"].size] = 1; var_0["right"][var_0["right"].size] = 2; var_0["left"][var_0["left"].size] = 3; var_0["left"][var_0["left"].size] = 4; var_0["left"][var_0["left"].size] = 5; var_0["passengers"][var_0["passengers"].size] = 0; var_0["passengers"][var_0["passengers"].size] = 1; var_0["passengers"][var_0["passengers"].size] = 2; var_0["passengers"][var_0["passengers"].size] = 3; var_0["passengers"][var_0["passengers"].size] = 4; var_0["passengers"][var_0["passengers"].size] = 5; var_0["default"] = var_0["passengers"]; return var_0; }