iw6-scripts/vehicle_scripts/_tank_crush.gsc
2024-02-13 13:20:49 +01:00

118 lines
4.5 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
init_tank_crush()
{
setdvarifuninitialized( "debug_tankcrush", "0" );
}
tank_crush( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
{
if ( !isdefined( var_6 ) )
var_6 = 1;
var_7 = self;
self vehicle_setspeed( 7 * var_6, 5, 5 );
var_8 = getanimlength( var_2 ) / var_6;
var_9 = var_8 / 3;
var_10 = var_8 / 3;
var_11 = var_0.origin;
var_12 = var_0.angles;
var_13 = anglestoforward( var_12 );
var_14 = anglestoup( var_12 );
var_15 = anglestoright( var_12 );
var_16 = getstartorigin( var_11, var_12, var_2 );
var_17 = getstartangles( var_11, var_12, var_2 );
var_18 = anglestoforward( var_17 );
var_19 = anglestoup( var_17 );
var_20 = anglestoright( var_17 );
var_21 = anglestoforward( var_7.angles );
var_22 = anglestoup( var_7.angles );
var_23 = anglestoright( var_7.angles );
var_24 = var_11 - var_16;
var_25 = vectordot( var_24, var_18 );
var_26 = vectordot( var_24, var_19 );
var_27 = vectordot( var_24, var_20 );
var_28 = spawn( "script_origin", var_7.origin );
var_28.origin = var_28.origin + var_21 * var_25;
var_28.origin = var_28.origin + var_22 * var_26;
var_28.origin = var_28.origin + var_23 * var_27;
var_24 = anglestoforward( var_12 );
var_25 = vectordot( var_24, var_18 );
var_26 = vectordot( var_24, var_19 );
var_27 = vectordot( var_24, var_20 );
var_29 = var_21 * var_25;
var_29 = var_29 + var_22 * var_26;
var_29 = var_29 + var_23 * var_27;
var_28.angles = vectortoangles( var_29 );
if ( isdefined( var_5 ) )
level thread common_scripts\utility::play_sound_in_space( var_5, var_11 );
var_0 useanimtree( var_4 );
var_7 useanimtree( var_4 );
var_0 thread tank_crush_fx_on_tag( "tag_window_left_glass_fx", level._vehicle_effect["tankcrush"]["window_med"], "veh_glass_break_small", 0.2 );
var_0 thread tank_crush_fx_on_tag( "tag_window_right_glass_fx", level._vehicle_effect["tankcrush"]["window_med"], "veh_glass_break_small", 0.4 );
var_0 thread tank_crush_fx_on_tag( "tag_windshield_back_glass_fx", level._vehicle_effect["tankcrush"]["window_large"], "veh_glass_break_large", 0.7 );
var_0 thread tank_crush_fx_on_tag( "tag_windshield_front_glass_fx", level._vehicle_effect["tankcrush"]["window_large"], "veh_glass_break_large", 1.5 );
var_0 animscripted( "tank_crush_anim", var_11, var_12, var_3 );
var_7 animscripted( "tank_crush_anim", var_28.origin, var_28.angles, var_2 );
if ( var_6 != 1 )
{
var_0 setflaggedanim( "tank_crush_anim", var_3, 1, 0, var_6 );
var_7 setflaggedanim( "tank_crush_anim", var_2, 1, 0, var_6 );
}
var_28 moveto( var_11, var_9, var_9 / 2, var_9 / 2 );
var_28 rotateto( var_12, var_9, var_9 / 2, var_9 / 2 );
wait( var_9 );
var_8 = var_8 - var_9;
var_8 = var_8 - var_10;
wait( var_8 );
var_30 = spawn( "script_model", var_16 );
var_30.angles = var_17;
var_31 = var_30 localtoworldcoords( getmovedelta( var_2, 0, 1 ) );
var_32 = var_17 + ( 0, getangledelta( var_2, 0, 1 ), 0 );
var_30 delete();
var_33 = anglestoforward( var_32 );
var_34 = anglestoup( var_32 );
var_35 = anglestoright( var_32 );
var_36 = self getattachpos( var_1 );
var_21 = anglestoforward( var_36[1] );
var_22 = anglestoup( var_36[1] );
var_23 = anglestoright( var_36[1] );
var_24 = var_11 - var_31;
var_25 = vectordot( var_24, var_33 );
var_26 = vectordot( var_24, var_34 );
var_27 = vectordot( var_24, var_35 );
var_28.final_origin = var_36[0];
var_28.final_origin = var_28.final_origin + var_21 * var_25;
var_28.final_origin = var_28.final_origin + var_22 * var_26;
var_28.final_origin = var_28.final_origin + var_23 * var_27;
var_24 = anglestoforward( var_12 );
var_25 = vectordot( var_24, var_33 );
var_26 = vectordot( var_24, var_34 );
var_27 = vectordot( var_24, var_35 );
var_29 = var_21 * var_25;
var_29 = var_29 + var_22 * var_26;
var_29 = var_29 + var_23 * var_27;
var_28.final_angles = vectortoangles( var_29 );
var_28 moveto( var_28.final_origin, var_10, var_10 / 2, var_10 / 2 );
var_28 rotateto( var_28.final_angles, var_10, var_10 / 2, var_10 / 2 );
wait( var_10 );
self attachpath( var_1 );
common_scripts\utility::waitframe();
}
tank_crush_fx_on_tag( var_0, var_1, var_2, var_3 )
{
if ( isdefined( var_3 ) )
wait( var_3 );
playfxontag( var_1, self, var_0 );
if ( isdefined( var_2 ) )
thread maps\_utility::play_sound_on_tag( var_2, var_0 );
}