iw6-scripts/maps/_dog_kinect.gsc
2024-02-13 13:20:49 +01:00

225 lines
6.0 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
enable_dog_kinect()
{
if ( level.script == "enemyhq" )
speechenablegrammar( "speech/iw6/grammars/en-us_rileyenemyhq.cfg", 1 );
else if ( level.script == "nml" )
speechenablegrammar( "speech/iw6/grammars/en-us_rileynml.cfg", 1 );
speechenable( 1 );
setdvar( "show_riley_commands", 0 );
}
disable_dog_kinect()
{
speechenable( 0 );
if ( level.script == "enemyhq" )
speechenablegrammar( "speech/iw6/grammars/en-us_rileyenemyhq.cfg", 0 );
else if ( level.script == "nml" )
speechenablegrammar( "speech/iw6/grammars/en-us_rileynml.cfg", 0 );
}
speechcommands()
{
enable_dog_kinect();
level.player thread listen_for_dog_kinect_commands( level.dog );
}
listen_for_dog_kinect_commands( var_0 )
{
self endon( "death" );
var_0 endon( "death" );
for (;;)
{
level.player waittill( "speechCommand", var_1, var_2 );
if ( getdvarint( "show_riley_commands" ) == 1 )
iprintlnbold( "speechCommand: " + var_2 + " at " + var_1 + " confidence." );
var_3 = 0.3;
var_4 = 0.7;
switch ( var_2 )
{
case "attack":
if ( var_1 > var_3 )
{
if ( isdefined( var_0.controlling_dog ) && var_0 maps\_utility::ent_flag( "pause_dog_command" ) )
level.player notify( "attack_command" );
else
level.player notify( "fired_laser" );
}
break;
case "cancel":
if ( var_1 > var_3 )
var_0 notify( "cancel_dog_attack" );
break;
case "bark":
if ( var_1 > var_4 )
{
if ( isdefined( var_0.controlling_dog ) )
level.player notify( "LISTEN_ads_button_pressed" );
}
break;
case "platform":
if ( var_1 > var_3 )
{
var_5 = [ "platform", "ramp", "walkway", "catwalk" ];
foreach ( var_7 in var_5 )
{
var_8 = findlocation( var_7 );
if ( isdefined( var_8 ) )
{
laser_designate_target_kinect( var_8 );
break;
}
}
}
break;
case "cart":
if ( var_1 > var_3 )
{
var_10 = [ "cart", "counter", "stand", "conession", "concession" ];
foreach ( var_12 in var_10 )
{
var_8 = findlocation( var_12 );
if ( isdefined( var_8 ) )
{
laser_designate_target_kinect( var_8 );
break;
}
}
}
break;
case "vehicle":
if ( var_1 > var_3 )
{
var_14 = [ "car", "van", "bus" ];
foreach ( var_16 in var_14 )
{
var_8 = findlocation( var_16 );
if ( isdefined( var_8 ) )
{
laser_designate_target_kinect( var_8 );
break;
}
}
}
break;
case "debris":
if ( var_1 > var_3 )
{
var_18 = [ "debris", "rubble" ];
foreach ( var_20 in var_18 )
{
var_8 = findlocation( var_20 );
if ( isdefined( var_8 ) )
{
laser_designate_target_kinect( var_8 );
break;
}
}
}
break;
default:
if ( var_1 > var_3 )
{
var_8 = findlocation( var_2 );
if ( isdefined( var_8 ) )
laser_designate_target_kinect( var_8 );
}
break;
}
}
}
findlocation( var_0 )
{
var_1 = anim.bcs_locations;
foreach ( var_3 in var_1 )
{
if ( isdefined( var_3.locationaliases ) )
{
foreach ( var_5 in var_3.locationaliases )
{
if ( issubstr( var_5, var_0 ) )
return var_5;
}
}
}
return undefined;
}
laser_designate_target_kinect( var_0 )
{
var_1 = [];
var_2 = getaiarray( "axis" );
foreach ( var_4 in var_2 )
{
if ( var_4.type == "dog" )
continue;
var_5 = var_4 gettagorigin( "J_SpineUpper" );
if ( maps\_utility::player_looking_at( var_5, 0.8, 1 ) )
{
var_6 = var_4 animscripts\battlechatter::get_all_my_locations();
foreach ( var_8 in var_6 )
{
var_9 = var_8.locationaliases;
foreach ( var_11 in var_9 )
{
if ( var_11 == var_0 )
{
var_1 = common_scripts\utility::array_add( var_1, var_4 );
break;
}
}
}
}
}
var_15 = maps\_dog_control::get_eye();
if ( var_1.size > 0 )
{
var_1 = sortbydistance( var_1, var_15 );
foreach ( var_4 in var_1 )
{
if ( !isdefined( var_4.a.doinglongdeath ) )
{
var_17 = maps\_dog_control::get_laser_designated_trace();
self notify( "issue_dog_command", var_17, undefined, var_4 );
return;
}
}
}
}