185 lines
4.8 KiB
Plaintext
185 lines
4.8 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
trigger_moveto( var_0 )
|
|
{
|
|
if ( !isdefined( level.mover_candidates ) )
|
|
{
|
|
level.mover_candidates = getentarray( "script_brushmodel", "classname" );
|
|
level.mover_candidates = common_scripts\utility::array_combine( level.mover_candidates, getentarray( "script_model", "classname" ) );
|
|
level.mover_object = common_scripts\utility::spawn_tag_origin();
|
|
}
|
|
|
|
var_1 = getentarray( self.target, "targetname" );
|
|
common_scripts\utility::array_thread( var_1, ::moveto_volume_think, self );
|
|
}
|
|
|
|
moveto_volume_think( var_0 )
|
|
{
|
|
var_1 = [];
|
|
var_2 = self;
|
|
|
|
foreach ( var_4 in level.mover_candidates )
|
|
{
|
|
level.mover_object.origin = var_4.origin;
|
|
|
|
if ( level.mover_object istouching( var_2 ) )
|
|
{
|
|
level.mover_candidates = common_scripts\utility::array_remove( level.mover_candidates, var_4 );
|
|
var_1 = common_scripts\utility::array_add( var_1, var_4 );
|
|
}
|
|
}
|
|
|
|
var_6 = undefined;
|
|
|
|
foreach ( var_4 in var_1 )
|
|
{
|
|
if ( isdefined( var_4.script_noteworthy ) && var_4.script_noteworthy == "mover" || isdefined( var_4.targetname ) && var_4.targetname == "mover" )
|
|
{
|
|
var_6 = var_4;
|
|
break;
|
|
}
|
|
}
|
|
|
|
foreach ( var_4 in var_1 )
|
|
{
|
|
if ( var_6 != var_4 )
|
|
var_4 linkto( var_6 );
|
|
}
|
|
|
|
var_11 = common_scripts\utility::get_target_ent();
|
|
|
|
if ( !isdefined( var_11.angles ) )
|
|
var_11.angles = ( 0, 0, 0 );
|
|
|
|
var_0.mover = var_6;
|
|
var_6.origin = var_11.origin;
|
|
var_6.angles = var_11.angles;
|
|
var_12 = undefined;
|
|
var_13 = 5;
|
|
var_14 = 0;
|
|
var_15 = 0;
|
|
|
|
if ( isdefined( var_11.script_duration ) )
|
|
var_13 = var_11.script_duration;
|
|
|
|
if ( isdefined( var_11.script_accel ) )
|
|
var_14 = var_11.script_accel;
|
|
|
|
if ( isdefined( var_11.script_decel ) )
|
|
var_15 = var_11.script_decel;
|
|
|
|
if ( isdefined( var_11.script_earthquake ) )
|
|
var_12 = var_11.script_earthquake;
|
|
|
|
var_0 waittill( "trigger" );
|
|
var_11 maps\_utility::script_delay();
|
|
|
|
if ( isdefined( var_11.target ) )
|
|
var_11 = var_11 common_scripts\utility::get_target_ent();
|
|
else
|
|
var_11 = undefined;
|
|
|
|
while ( isdefined( var_11 ) )
|
|
{
|
|
if ( isdefined( var_12 ) )
|
|
{
|
|
if ( issubstr( var_12, "constant" ) )
|
|
var_6 thread constant_quake( var_12 );
|
|
}
|
|
|
|
if ( !isdefined( var_11.angles ) )
|
|
var_11.angles = ( 0, 0, 0 );
|
|
|
|
var_6 moveto_rotateto( var_11, var_13, var_14, var_15 );
|
|
var_6 notify( "stop_constant_quake" );
|
|
var_13 = 5;
|
|
var_14 = 0;
|
|
var_15 = 0;
|
|
var_12 = undefined;
|
|
var_11 maps\_utility::script_delay();
|
|
|
|
if ( isdefined( var_11.script_duration ) )
|
|
var_13 = var_11.script_duration;
|
|
|
|
if ( isdefined( var_11.script_accel ) )
|
|
var_14 = var_11.script_accel;
|
|
|
|
if ( isdefined( var_11.script_decel ) )
|
|
var_15 = var_11.script_decel;
|
|
|
|
if ( isdefined( var_11.script_earthquake ) )
|
|
var_12 = var_11.script_earthquake;
|
|
|
|
var_16 = var_11 common_scripts\utility::get_linked_ents();
|
|
|
|
if ( var_16.size > 0 )
|
|
{
|
|
if ( issubstr( var_16[0].classname, "trigger" ) )
|
|
var_16[0] waittill( "trigger" );
|
|
}
|
|
|
|
if ( isdefined( var_11.target ) )
|
|
{
|
|
var_11 = var_11 common_scripts\utility::get_target_ent();
|
|
continue;
|
|
}
|
|
|
|
var_11 = undefined;
|
|
}
|
|
|
|
self notify( "done_moving" );
|
|
}
|
|
|
|
constant_quake( var_0 )
|
|
{
|
|
self endon( "stop_constant_quake" );
|
|
|
|
for (;;)
|
|
{
|
|
thread common_scripts\utility::do_earthquake( var_0, self.origin );
|
|
wait( randomfloatrange( 0.1, 0.2 ) );
|
|
}
|
|
}
|
|
|
|
moveto_rotateto_speed( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = var_0.origin;
|
|
var_5 = self.origin;
|
|
var_6 = distance( var_5, var_4 );
|
|
var_7 = var_6 / var_1;
|
|
|
|
if ( !isdefined( var_2 ) )
|
|
var_2 = 0;
|
|
|
|
if ( !isdefined( var_3 ) )
|
|
var_3 = 0;
|
|
|
|
self rotateto( var_0.angles, var_7, var_7 * var_2, var_7 * var_3 );
|
|
self moveto( var_4, var_7, var_7 * var_2, var_7 * var_3 );
|
|
self waittill( "movedone" );
|
|
}
|
|
|
|
moveto_rotateto( var_0, var_1, var_2, var_3 )
|
|
{
|
|
self moveto( var_0.origin, var_1, var_2, var_3 );
|
|
self rotateto( var_0.angles, var_1, var_2, var_3 );
|
|
self waittill( "movedone" );
|
|
}
|
|
|
|
set_start_positions( var_0 )
|
|
{
|
|
var_1 = common_scripts\utility::getstructarray( var_0, "targetname" );
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
switch ( var_3.script_noteworthy )
|
|
{
|
|
case "player":
|
|
level.player setorigin( var_3.origin );
|
|
level.player setplayerangles( var_3.angles );
|
|
break;
|
|
}
|
|
}
|
|
}
|