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

359 lines
12 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
maps\_utility::template_level( "odin" );
maps\createart\odin_art::main();
maps\odin_fx::main();
maps\odin_precache::main();
maps\_utility::default_start();
maps\_utility::add_start( "odin_intro", ::start_odin_intro, "Odin Intro", ::odin_intro );
maps\_utility::add_start( "odin_ally", ::start_odin_ally, "Odin Ally", ::odin_ally );
maps\_utility::add_start( "odin_escape", ::start_odin_escape, "Odin Escape", ::odin_escape );
maps\_utility::add_start( "odin_spin", ::start_odin_spin, "Odin Spin", ::odin_spin );
maps\_utility::add_start( "odin_satellite", ::start_odin_satellite, "Odin Satellite", ::odin_satellite );
maps\_load::main();
maps\odin_anim::main();
maps\odin_audio::main();
odin_precache();
odin_flag_inits();
odin_hint_string_init();
odin_script_setup();
maps\odin_fx::fx_init();
level.player setviewmodel( "viewhands_us_space" );
}
odin_precache()
{
maps\_space::precache();
maps\odin_intro::section_precache();
maps\odin_ally::section_precache();
maps\odin_escape::section_precache();
maps\odin_spin::section_precache();
maps\odin_satellite::section_precache();
precachestring( &"ODIN_OBJ_RETURN" );
precachestring( &"ODIN_OBJ_SHUTDOWN" );
precachestring( &"ODIN_OBJ_DESTROY" );
precachestring( &"ODIN_OBJ_ESCAPE" );
precachestring( &"ODIN_TITLECARD_1" );
precachestring( &"ODIN_SHROUD_PICKUP" );
precacheitem( "microtar_space" );
precacheitem( "microtar_space_interior" );
precachemodel( "viewhands_us_space" );
precachemodel( "body_fed_space_assault_a" );
precacheshader( "hud_icon_microtar_space" );
if ( maps\_utility::is_gen4() )
precacheshader( "space_helmet_glass_01" );
}
odin_flag_inits()
{
maps\odin_intro::section_flag_init();
maps\odin_ally::section_flag_init();
maps\odin_escape::section_flag_init();
maps\odin_spin::section_flag_init();
maps\odin_satellite::section_flag_init();
common_scripts\utility::flag_init( "objective_return_to_station" );
common_scripts\utility::flag_init( "objective_return_to_station_complete" );
common_scripts\utility::flag_init( "objective_shutdown_sat" );
common_scripts\utility::flag_init( "objective_destroy_sat" );
common_scripts\utility::flag_init( "no_steam_on_death" );
common_scripts\utility::flag_init( "no_push_zone" );
common_scripts\utility::flag_init( "astronaut_needs_help" );
common_scripts\utility::flag_init( "player_has_shroud" );
common_scripts\utility::flag_init( "show_custom_weap_splash" );
}
odin_hint_string_init()
{
maps\odin_intro::section_hint_string_init();
maps\odin_ally::section_hint_string_init();
maps\odin_escape::section_hint_string_init();
maps\odin_spin::section_hint_string_init();
maps\odin_satellite::section_hint_string_init();
}
odin_script_setup()
{
if ( isdefined( level.odin_script_setup ) )
return;
level.odin_script_setup = 1;
level.intro_ent_del = [];
level.ally_ent_del = [];
level.sat_ent_del = [];
level.gameskill_breath_func = maps\odin_util::odin_breathing_func;
level.player allowmelee( 0 );
if ( maps\_utility::is_gen4() )
{
setglaregrimematerial( "space_helmet_glass_01" );
setsaveddvar( "r_mbEnable", 2 );
setsaveddvar( "r_mbFastEnable", 1 );
setsaveddvar( "r_mbFastPreset", 0 );
setsaveddvar( "r_mbCameraRotationInfluence", 0.6 );
setsaveddvar( "r_mbCameraTranslationInfluence", 2.0 );
setsaveddvar( "r_mbViewmodelVelocityScalar", 0.04 );
setsaveddvar( "r_mbStaticVelocityScalar", 0.56 );
setsaveddvar( "r_mbViewmodelEnable", 1 );
setsaveddvar( "r_mbModelVelocityScalar", 0.2 );
}
if ( level.start_point == "start_deer" || level.start_point == "start_after_hunt" || level.start_point == "start_woods" || level.start_point == "start_neighborhood" || level.start_point == "start_mansion_ext" || level.start_point == "start_mansion" || level.start_point == "default" )
level.start_point = "odin_intro";
thread maps\odin_fx::lgt_init();
level.player.ignoreme = 0;
level.player.ignoreall = 0;
thread mission_objective_logic();
level.odin_fov = 55;
level.player.has_pushanims = 1;
if ( !isdefined( level.prologue ) || isdefined( level.prologue ) && level.prologue == 0 )
{
thread maps\_space_player::init_player_space();
thread maps\_space_ai::init_ai_space();
}
maps\_colors::add_cover_node( "Path 3D" );
maps\_colors::add_cover_node( "Cover Stand 3D" );
maps\_colors::add_cover_node( "Cover Right 3D" );
maps\_colors::add_cover_node( "Cover Left 3D" );
maps\_colors::add_cover_node( "Cover Up 3D" );
maps\_colors::add_cover_node( "Exposed 3D" );
setsaveddvar( "player_spaceViewHeight", 11 );
setsaveddvar( "player_spaceCapsuleHeight", 30 );
setsaveddvar( "phys_gravity_ragdoll", 0 );
setsaveddvar( "phys_gravity", 0 );
setsaveddvar( "phys_autoDisableLinear", 0.25 );
setsaveddvar( "g_gravity", 1 );
level.wall_friction_enabled = 1;
level.wall_friction_trace_dist = 5;
level.wall_friction_offset_dist = 2;
setsaveddvar( "bg_viewBobAmplitudeStanding", "0.0 0.0" );
setsaveddvar( "bg_viewBobAmplitudeStandingAds", "0.0 0.0" );
setsaveddvar( "bg_viewBobAmplitudeDucked", "0.0 0.0" );
setsaveddvar( "bg_viewBobAmplitudeDuckedAds", "0.0 0.0" );
setsaveddvar( "bg_viewBobAmplitudeSprinting", "0.0 0.0" );
setsaveddvar( "bg_weaponBobAmplitudeStanding", "0.0 0.0" );
setsaveddvar( "bg_weaponBobAmplitudeDucked", "0.0 0.0" );
setsaveddvar( "bg_weaponBobAmplitudeSprinting", "0.0 0.0" );
setsaveddvar( "bg_weaponBobAmplitudeBase", 0.0 );
setsaveddvar( "bg_viewBobMax", 0 );
thread maps\_space_player::init_player_space_anims();
level.water_level_z = level.player.origin[2];
level.default_goalradius = 64;
level.player thread maps\_space_player::enable_player_space();
level.player thread maps\_space::player_space_helmet();
level.player thread maps\_space::space_hud_enable( 1 );
level.player notify( "stop_space_breathe" );
level.player.weapon_interior = "microtar_space_interior+acogsmg_sp";
level.player.weapon_exterior = "microtar_space+acogsmg_sp";
thread maps\odin_spin::safe_hide_spin();
thread maps\odin_util::odin_control_player_speed();
if ( isdefined( level.prologue ) && level.prologue == 1 )
{
level notify( "stop_particulates" );
level.player setviewmodel( "viewhands_us_space" );
level.scr_model["player_rig"] = "viewhands_player_us_space";
}
var_0 = getent( "ally_0", "targetname" );
level.ally = var_0 maps\_utility::spawn_ai( 1 );
level.squad[0] = level.ally;
level.ally thread maps\_utility::deletable_magic_bullet_shield();
level.ally thread maps\_utility::set_force_color( "r" );
level.ally thread maps\_space_ai::enable_space();
level.ally.animname = "odin_ally";
level.player thread maps\odin_util::player_physics_pulse();
level.ally thread maps\odin_util::ally_physics_pulse();
common_scripts\utility::flag_set( "no_steam_on_death" );
level.ally.moveplaybackrate = 1.5;
thread maps\odin_audio::audio_set_initial_ambience();
thread maps\odin_util::set_mission_view_tweaks();
wait 0.1;
}
give_weapons()
{
self takeallweapons();
self giveweapon( level.player.weapon_interior );
self switchtoweapon( level.player.weapon_interior );
self disableweaponpickup();
}
start_odin_intro()
{
jump_to_cleanup();
odin_script_setup();
maps\odin_intro::intro_start();
}
odin_intro()
{
maps\odin_intro::intro_main();
}
start_odin_ally()
{
jump_to_cleanup();
odin_script_setup();
maps\odin_ally::ally_start();
thread maps\odin_audio::sfx_pressurize_space();
}
odin_ally()
{
maps\odin_ally::ally_main();
}
start_odin_escape()
{
jump_to_cleanup();
odin_script_setup();
maps\odin_escape::escape_start();
thread maps\odin_audio::sfx_pressurize_space();
}
odin_escape()
{
maps\odin_escape::escape_main();
}
start_odin_spin()
{
jump_to_cleanup();
odin_script_setup();
maps\odin_spin::spin_start();
thread maps\odin_audio::sfx_pressurize_space();
}
odin_spin()
{
maps\odin_spin::spin_main();
}
start_odin_satellite()
{
jump_to_cleanup();
odin_script_setup();
maps\odin_satellite::satellite_start();
}
odin_satellite()
{
maps\odin_satellite::satellite_main();
}
mission_objective_logic()
{
maps\_utility::obj( "OBJ_RETURN" );
maps\_utility::obj( "OBJ_SHUTDOWN" );
maps\_utility::obj( "OBJ_DESTROY" );
waittillframeend;
var_0 = 0;
if ( level.start_point != "default" )
var_0 = 1;
if ( isdefined( level.prologue ) && level.prologue == 1 )
{
}
level.space_breathing_enabled = 1;
switch ( level.start_point )
{
case "default":
case "odin_intro":
common_scripts\utility::flag_wait( "objective_return_to_station" );
thread add_marker_helper( maps\_utility::obj( "OBJ_RETURN" ) );
setsaveddvar( "compass", "1" );
objective_add( maps\_utility::obj( "OBJ_RETURN" ), "active", &"ODIN_OBJ_RETURN" );
objective_state( maps\_utility::obj( "OBJ_RETURN" ), "current" );
common_scripts\utility::flag_wait( "clear_helper_mark" );
level notify( "safe_marker_thread_deletion" );
objective_state( maps\_utility::obj( "OBJ_RETURN" ), "done" );
var_0 = 0;
case "odin_ally":
if ( var_0 )
{
objective_add( maps\_utility::obj( "OBJ_RETURN" ), "done", &"ODIN_OBJ_RETURN" );
var_0 = 0;
}
common_scripts\utility::flag_wait( "objective_shutdown_sat" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "active", &"ODIN_OBJ_SHUTDOWN" );
case "odin_escape":
if ( var_0 )
{
objective_add( maps\_utility::obj( "OBJ_RETURN" ), "done", &"ODIN_OBJ_RETURN" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "active", &"ODIN_OBJ_SHUTDOWN" );
var_0 = 0;
}
common_scripts\utility::flag_wait( "objective_escape_sat" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "done", &"ODIN_OBJ_SHUTDOWN" );
wait 1;
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "active", &"ODIN_OBJ_ESCAPE" );
case "odin_spin":
if ( var_0 )
{
objective_add( maps\_utility::obj( "OBJ_RETURN" ), "done", &"ODIN_OBJ_RETURN" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "active", &"ODIN_OBJ_ESCAPE" );
var_0 = 0;
}
common_scripts\utility::flag_wait( "objective_destroy_sat" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "done", &"ODIN_OBJ_ESCAPE" );
objective_add( maps\_utility::obj( "OBJ_DESTROY" ), "active", &"ODIN_OBJ_DESTROY" );
case "odin_satellite":
if ( var_0 )
{
objective_add( maps\_utility::obj( "OBJ_RETURN" ), "done", &"ODIN_OBJ_RETURN" );
objective_add( maps\_utility::obj( "OBJ_SHUTDOWN" ), "done", &"ODIN_OBJ_ESCAPE" );
objective_add( maps\_utility::obj( "OBJ_DESTROY" ), "active", &"ODIN_OBJ_DESTROY" );
var_0 = 0;
}
common_scripts\utility::flag_wait( "satellite_end_anim_started" );
wait 2;
objective_add( maps\_utility::obj( "OBJ_DESTROY" ), "done", &"ODIN_OBJ_DESTROY" );
default:
}
}
add_marker_helper( var_0 )
{
level endon( "safe_marker_thread_deletion" );
common_scripts\utility::flag_wait( "astronaut_needs_help" );
var_1 = getent( "intro_hatch_door_blocker_org", "targetname" );
objective_position( var_0, var_1.origin );
}
jump_to_cleanup()
{
switch ( level.start_point )
{
case "odin_satellite":
common_scripts\utility::flag_set( "spin_clear" );
thread maps\odin_spin::spin_cleanup( 1 );
case "odin_spin":
common_scripts\utility::flag_set( "escape_clear" );
thread maps\odin_escape::escape_cleanup( 1 );
case "odin_escape":
common_scripts\utility::flag_set( "ally_clear" );
thread maps\odin_ally::ally_cleanup( 0 );
case "odin_ally":
common_scripts\utility::flag_set( "invasion_clear" );
thread maps\odin_intro::intro_cleanup( 0 );
case "default":
case "odin_intro":
default:
}
}