IL-GSC/AW/PC/maps/fusion.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

918 lines
35 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: fusion.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 38
* Decompile Time: 591 ms
* Timestamp: 4/22/2024 2:29:33 AM
*******************************************************************/
//Function Number: 1
main()
{
maps\_utility::template_level("fusion");
maps\_utility::set_console_status();
setup_precache();
maps\_utility::intro_screen_create("","","");
maps\_utility::intro_screen_custom_func(::maps\fusion_code::fusion_intro_screen);
level.intro_hades_video_length = 30.7;
setup_start_points();
init_level_flags();
createthreatbiasgroup("player");
createthreatbiasgroup("axis_street");
maps\_player_fastzip::main();
maps\createart\fusion_art::main();
maps\fusion_fx::main();
maps\_weapon_pdrone::initialize();
if(level.currentgen)
{
maps\_utility::tff_sync_setup();
}
maps\fusion_precache::main();
maps\_load::main();
thread maps\_player_exo::main("assault",1);
maps\fusion_anim::main();
maps\fusion_aud::main();
thread maps\fusion_lighting::main();
maps\_drone_ai::init();
maps\_chargeable_weapon::setup_charged_shot();
maps\_microwave_grenade::main();
maps\_microdronelauncher::init();
maps\sanfran_b_sonar_vision::main();
maps\fusion_utility::spawn_metrics_init_for_noteworthy("enemy_street_zip_rooftop");
maps\fusion_utility::spawn_metrics_init_for_noteworthy("enemy_street_zip_rooftop_strafe");
if(level.currentgen)
{
maps\fusion_utility::spawn_metrics_init_for_noteworthy("enemy_street_zip_rooftop_left");
maps\fusion_utility::spawn_metrics_init_for_noteworthy("enemy_street_zip_rooftop_right");
}
maps\_utility::add_control_based_hint_strings("hint_use_boost",&"FUSION_BOOST_HINT",::maps\fusion_code::boost_use_hint);
maps\_utility::add_control_based_hint_strings("hint_mt_fire_gun",&"FUSION_HINT_FIRE_GUN",::should_break_use_mt_fire);
maps\_utility::add_control_based_hint_strings("hint_mt_fire_missiles",&"FUSION_HINT_FIRE_MISSILES",::should_break_use_mt_missiles);
maps\_utility::add_control_based_hint_strings("hint_mt_fire_missiles_release",&"FUSION_HINT_FIRE_MISSILES_RELEASE",::should_break_release_mt_missiles);
maps\_utility::add_control_based_hint_strings("hint_use_sonar",&"FUSION_SONAR_HINT",::maps\fusion_utility::should_end_sonar_hint);
maps\_utility::add_control_based_hint_strings("drone_deploy_prompt",&"FUSION_PROMPT_DEPLOY_DRONE",::maps\fusion_utility::should_end_pdrone_hint);
maps\_utility::add_control_based_hint_strings("drone_deploy_fail_prompt",&"FUSION_PROMPT_DEPLOY_DRONE_FAIL",::maps\fusion_utility::should_end_pdrone_fail_hint);
maps\_utility::add_control_based_hint_strings("hint_sonics",&"FUSION_SONICS_HINT",::sonics_use_hint);
maps\_utility::add_control_based_hint_strings("hint_boost_slam",&"FUSION_BOOST_SLAM_HINT",::boost_slam_use_hint,&"FUSION_BOOST_SLAM_HINT_PC");
thread maps\fusion_code::gameplay_setup();
maps\fusion_vo::main();
thread handle_objectives();
thread boost_slam_hint();
thread sonics_hint();
level.player_rig = maps\_utility::spawn_anim_model("player_rig");
level.player_rig hide();
maps\_car_door_shield::init_door_shield();
setdvarifuninitialized("demo_itiot",0);
var_00 = getent("armapshade","targetname");
var_00 setmaterialscriptparam(0,0);
setup_portal_scripting();
common_scripts\_pipes::main();
if(level.currentgen)
{
setsaveddvar("ai_corpseCount",8);
}
if(level.currentgen)
{
setsaveddvar("r_gunSightColorEntityScale","7");
setsaveddvar("r_gunSightColorNoneScale","0.8");
}
}
//Function Number: 2
setup_precache()
{
precachemodel("fus_cooling_tower_b_vista_dmg");
precachemodel("fus_cooling_tower_collapse_chunks");
precachemodel("fus_cooling_tower_collapse_concrete_shattered");
precachemodel("fus_cooling_tower_collapse_concrete_shattered2");
precachemodel("fus_cooling_tower_collapse_street_collapse");
precachemodel("vehicle_xh9_warbird_cloaked");
precachemodel("vehicle_mobile_cover");
precachemodel("npc_zipline101ft");
precachemodel("vehicle_ind_utility_tractor_01_dstrypv");
precachemodel("fus_sever_debris");
precachemodel("fus_sever_debris_02");
precachemodel("fus_pipes_elec_set_01_piece_01");
precachemodel("fus_end_scene_rubble");
precachemodel("vb_pmc");
precachemodel("vb_pmc_dismember");
precachemodel("rubble_combo_01");
precachemodel("rubble_rock_chunk_01");
precachemodel("viewhands_s1_pmc");
precachemodel("worldhands_s1_pmc");
precachemodel("vehicle_mobile_cover_dstrypv");
precachemodel("vehicle_xh9_warbird");
precachemodel("fus_control_monitor_02_cinematic");
precacheshader("cinematic");
precacheshellshock("fusion_pre_collapse");
precacheshellshock("fusion_collapse");
precacheshellshock("slowview");
precacheshellshock("fusion_slowview");
precacheshellshock("zipline");
precachenightvisioncodeassets();
precachestring(&"FUSION_HINT_FIRE_GUN");
precachestring(&"FUSION_HINT_FIRE_MISSILES");
precachemodel("ind_streetlight_single_off_rig");
precachemodel("npc_m160");
precachemodel("genericProp");
precachemodel("fus_shelving_robot_01");
precachemodel("fus_shelving_unit_cage_01");
precachemodel("fus_shelving_unit_item_01");
precachemodel("vehicle_v22_osprey_damaged_static_bladepiece_left");
precachemodel("deployable_cover");
precachemodel("fus_elevator_button_02");
precacheshader("mtl_fus_elevator_button_02");
precachemodel("door_double_01_rigged");
precachemodel("furniture_metal_door02_handleright");
precachemodel("furniture_metal_door02_handleright_destroyed");
precachemodel("breach_door_metal_right");
precachemodel("door_controlroom_01_rig");
precachemodel("door_controlroom_01_damage_rig");
precacherumble("steady_rumble");
precacherumble("subtle_tank_rumble");
precacheshader("dpad_icon_drone");
precacheshader("dpad_icon_drone_off");
precachesonarvisioncodeassets();
if(level.currentgen)
{
precachemodel("fus_tower_lower_panel_01_dark");
}
precacheitem("iw5_ak12_sp");
precacheitem("iw5_stingerm7_sp");
precacheitem("iw5_bal27_sp_variablereddot");
precacheitem("iw5_hmr9_sp");
animscripts\traverse\boost::precache_boost_fx_npc();
}
//Function Number: 3
setup_start_points()
{
maps\_utility::add_start("fly_in_animated",::start_intro_fly_in,"",::intro_fly_in_animated);
maps\_utility::add_start("courtyard",::start_courtyard,"",::courtyard);
maps\_utility::add_start("security_room",::start_security_room,"",undefined);
maps\_utility::add_start("lab",::start_lab,"",undefined);
maps\_utility::add_start("reactor_room",::start_reactor,"",undefined);
maps\_utility::add_start("reactor_room_exit",::start_reactor_exit,"",undefined);
maps\_utility::add_start("turbine_room",::start_turbine_room,"",undefined);
maps\_utility::add_start("control_room_entrance",::start_control_room_entrance,"",undefined);
maps\_utility::add_start("control_room",::start_control_room,"",undefined);
maps\_utility::add_start("control_room_exit",::start_control_room_exit,"",::control_room_exit);
maps\_utility::add_start("cooling_tower",::start_cooling_tower,"",::cooling_tower);
if(level.currentgen)
{
var_00 = ["fusion_intro_tr"];
maps\_utility::set_start_transients("fly_in_animated",var_00);
maps\_utility::set_start_transients("courtyard",var_00);
maps\_utility::set_start_transients("security_room",var_00);
var_00 = ["fusion_middle_tr"];
maps\_utility::set_start_transients("lab",var_00);
maps\_utility::set_start_transients("reactor_room",var_00);
maps\_utility::set_start_transients("reactor_room_exit",var_00);
var_00 = ["fusion_outro_tr"];
maps\_utility::set_start_transients("turbine_room",var_00);
maps\_utility::set_start_transients("control_room_entrance",var_00);
maps\_utility::set_start_transients("control_room",var_00);
maps\_utility::set_start_transients("control_room_exit",var_00);
maps\_utility::set_start_transients("cooling_tower",var_00);
}
}
//Function Number: 4
init_level_flags()
{
common_scripts\utility::flag_init("intro_text_cinematic_over");
common_scripts\utility::flag_init("intro_screen_done");
common_scripts\utility::flag_init("flag_intro_objective_given");
common_scripts\utility::flag_init("flag_show_boost_slam_hint");
common_scripts\utility::flag_init("flag_show_sonic_hint");
common_scripts\utility::flag_init("flag_player_used_boost_slam");
common_scripts\utility::flag_init("flag_player_used_sonics");
common_scripts\utility::flag_init("intro_squad_helis_start");
common_scripts\utility::flag_init("start_heli_fly");
common_scripts\utility::flag_init("ready_zip");
common_scripts\utility::flag_init("flag_player_zip_started");
common_scripts\utility::flag_init("flag_combat_zip_rooftop_start");
common_scripts\utility::flag_init("flag_burke_zip");
common_scripts\utility::flag_init("player_participated_in_rooftop_fight");
common_scripts\utility::flag_init("flag_combat_zip_rooftop_complete");
common_scripts\utility::flag_init("player_can_zip");
common_scripts\utility::flag_init("street_combat_start");
common_scripts\utility::flag_init("flag_rooftop_strafe");
common_scripts\utility::flag_init("flag_player_cleared_rooftop");
common_scripts\utility::flag_init("sun_shad_off_zip");
common_scripts\utility::flag_init("player_fly_in_done");
common_scripts\utility::flag_init("flag_mcd_vo_done");
common_scripts\utility::flag_init("burke_fastzip_done");
common_scripts\utility::flag_init("courtyard_start_lighting");
common_scripts\utility::flag_init("flag_squad_heli_2_unload");
common_scripts\utility::flag_init("flag_squad_heli_01_zip_complete");
common_scripts\utility::flag_init("flag_rpg_at_heli");
common_scripts\utility::flag_init("flag_player_enters_mobile_turret");
common_scripts\utility::flag_init("flag_player_starts_entering_mobile_turret");
common_scripts\utility::flag_init("flag_m_turret_dead");
common_scripts\utility::flag_init("flag_walker_tank_on_mount");
common_scripts\utility::flag_init("flag_player_picked_up_smaw");
common_scripts\utility::flag_init("flag_launcher_out_of_ammo");
common_scripts\utility::flag_init("flag_launcher_ammo_gathered");
common_scripts\utility::flag_init("flag_walker_death_anim_start");
common_scripts\utility::flag_init("flag_walker_destroyed");
common_scripts\utility::flag_init("walker_trophy_1");
common_scripts\utility::flag_init("walker_trophy_2");
common_scripts\utility::flag_init("walker_damaged");
common_scripts\utility::flag_init("security_room_player_start");
common_scripts\utility::flag_init("lab_player_start");
common_scripts\utility::flag_init("reactor_player_start");
common_scripts\utility::flag_init("reactor_exit_player_start");
common_scripts\utility::flag_init("joker_placing_turbine_elevator_cover");
common_scripts\utility::flag_init("turbine_room_player_start");
common_scripts\utility::flag_init("control_room_entrance_player_start");
common_scripts\utility::flag_init("start_itiot");
common_scripts\utility::flag_init("evacuation_started");
common_scripts\utility::flag_init("flag_shut_down_reactor_failed");
common_scripts\utility::flag_init("tower_debris");
common_scripts\utility::flag_init("hangar_retreat_done");
common_scripts\utility::flag_init("evacuation_first_drones_down");
common_scripts\utility::flag_init("player_start_control_room");
common_scripts\utility::flag_init("start_control_room_exit_lighting");
common_scripts\utility::flag_init("cooling_tower_cart_explosion_lighting");
common_scripts\utility::flag_init("player_start_cooling_tower");
common_scripts\utility::flag_init("sun_shad_fly_in");
common_scripts\utility::flag_init("tower_knockback");
common_scripts\utility::flag_init("extraction_chopper_move_from_explosion");
common_scripts\utility::flag_init("objective_on_extraction_chopper");
common_scripts\utility::flag_init("off_fire_light");
common_scripts\utility::flag_init("hangar_exit_explosion");
common_scripts\utility::flag_init("mobile_turret_health_1");
common_scripts\utility::flag_init("mobile_turret_health_2");
common_scripts\utility::flag_init("mobile_turret_health_3");
common_scripts\utility::flag_init("mobile_turret_health_4");
common_scripts\utility::flag_init("play_ending");
common_scripts\utility::flag_init("flag_hint_mt_control_fire_missiles_press");
common_scripts\utility::flag_init("flag_reactor_room_combat_seek_player");
common_scripts\utility::flag_init("flag_turbine_room_combat_seek_player");
common_scripts\utility::flag_init("flag_autofocus_on");
common_scripts\utility::flag_init("flag_anim_elevator_button_pressed");
common_scripts\utility::flag_init("flag_end_sonar_vision");
common_scripts\utility::flag_init("update_obj_pos_walker");
common_scripts\utility::flag_init("update_obj_pos_security_entrance_1");
common_scripts\utility::flag_init("update_obj_pos_security_entrance_2");
common_scripts\utility::flag_init("update_obj_pos_security_elevator");
common_scripts\utility::flag_init("update_obj_pos_elevator_descent");
common_scripts\utility::flag_init("update_obj_pos_lab_follow_joker");
common_scripts\utility::flag_init("update_obj_pos_lab_follow_burke");
common_scripts\utility::flag_init("update_obj_pos_lab_follow_carter");
common_scripts\utility::flag_init("update_obj_pos_reactor_1");
common_scripts\utility::flag_init("update_obj_pos_turbine_elevator_button");
common_scripts\utility::flag_init("update_obj_pos_turbine_elevator_ascent");
common_scripts\utility::flag_init("update_obj_pos_turbine_room_1");
common_scripts\utility::flag_init("update_obj_pos_control_room_door");
common_scripts\utility::flag_init("update_obj_pos_control_room_explosion");
common_scripts\utility::flag_init("update_obj_pos_control_room_console");
common_scripts\utility::flag_init("update_obj_pos_control_room_using_console");
common_scripts\utility::flag_init("update_obj_pos_control_room_exit_1");
common_scripts\utility::flag_init("flag_road_combat_mid_save_1");
common_scripts\utility::flag_init("flag_road_combat_mid_save_2");
common_scripts\utility::flag_init("flag_turbine_combat_mid_save_1");
common_scripts\utility::flag_init("reactor_room_combat_mid_save_1");
common_scripts\utility::flag_init("player_drone_start");
common_scripts\utility::flag_init("flag_player_using_drone");
common_scripts\utility::flag_init("player_drone_attack_done");
common_scripts\utility::flag_init("drone_deploy_prompt_displayed");
common_scripts\utility::flag_init("turbine_room_all_enemies");
common_scripts\utility::flag_init("flag_turbine_pdrone_combat_complete");
common_scripts\utility::flag_init("player_is_in_turbine_room");
interior_init_level_flags();
}
//Function Number: 5
interior_init_level_flags()
{
common_scripts\utility::flag_init("interior_allies");
common_scripts\utility::flag_init("burke_facing_elevator");
common_scripts\utility::flag_init("lab_cqb");
common_scripts\utility::flag_init("start_lab_traversals");
common_scripts\utility::flag_init("reactor_room_reveal_burke_ready");
common_scripts\utility::flag_init("reactor_room_reveal_allies_advance");
common_scripts\utility::flag_init("joker_place_elevator_cover");
common_scripts\utility::flag_init("turbine_room_initial_combat_retreat");
common_scripts\utility::flag_init("control_room_run_prep");
common_scripts\utility::flag_init("control_room_explosion");
common_scripts\utility::flag_init("control_room_player_start");
common_scripts\utility::flag_init("control_room_console_enable");
common_scripts\utility::flag_init("control_room_scene_ready");
common_scripts\utility::flag_init("control_room_scene");
common_scripts\utility::flag_init("shutdown_reactor_failed");
common_scripts\utility::flag_init("vo_security_room_elevator_access");
common_scripts\utility::flag_init("vo_security_room_elevator_open");
common_scripts\utility::flag_init("vo_lab_elevator_slide_complete");
common_scripts\utility::flag_init("vo_reactor_gogogo");
common_scripts\utility::flag_init("vo_reactor_open_airlock");
common_scripts\utility::flag_init("vo_reactor_entrance");
common_scripts\utility::flag_init("vo_turbine_elevator_near");
common_scripts\utility::flag_init("vo_turbine_elevator_ready");
common_scripts\utility::flag_init("vo_turbine_elevator");
common_scripts\utility::flag_init("vo_turbine_room_entrance");
common_scripts\utility::flag_init("vo_turbine_explosion");
common_scripts\utility::flag_init("vo_control_hall_door_stack");
common_scripts\utility::flag_init("vo_control_hall_door_kicked");
common_scripts\utility::flag_init("vo_control_room_explosion");
common_scripts\utility::flag_init("vo_control_room_scene");
}
//Function Number: 6
should_break_use_mt_fire()
{
if(!isdefined(level.player.drivingvehicleandturret) || level.player attackbuttonpressed())
{
return 1;
}
return 0;
}
//Function Number: 7
should_break_use_mt_missiles()
{
if(!isdefined(level.player.drivingvehicleandturret) || level.player fragbuttonpressed())
{
common_scripts\utility::flag_set("flag_hint_mt_control_fire_missiles_press");
return 1;
}
return 0;
}
//Function Number: 8
should_break_release_mt_missiles()
{
if(!isdefined(level.player.drivingvehicleandturret) || !level.player fragbuttonpressed())
{
if(isdefined(level.player.drivingvehicleandturret))
{
wait(1);
}
return 1;
}
return 0;
}
//Function Number: 9
start_intro_fly_in()
{
setup_allies();
wait(level.intro_hades_video_length);
soundscripts\_snd::snd_message("start_intro_fly_in");
soundscripts\_snd::snd_music_message("mus_fusion_intro");
}
//Function Number: 10
intro_fly_in_animated()
{
thread maps\fusion_code::show_hide_plant_vista_intro();
thread maps\fusion_code::setup_ally_squad();
thread maps\fusion_code::road_battle_setup();
maps\fusion_code::fly_in_sequence();
}
//Function Number: 11
start_intro_fly_in_part2()
{
soundscripts\_snd::snd_message("start_intro_fly_in_part2");
thread maps\fusion_code::setup_ally_squad();
thread maps\fusion_code::road_battle_setup();
common_scripts\utility::flag_set("sun_shad_fly_in");
common_scripts\utility::flag_set("intro_squad_helis_start");
level notify("hatch_door_open");
thread maps\fusion_lighting::hatch_door_lightgrid_off();
thread maps\fusion_lighting::fusion_intro_dof();
thread maps\fusion_lighting::hatch_door_vision();
thread maps\fusion_lighting::hatch_door_veil();
thread maps\fusion_lighting::hatch_door_push_fog_out();
thread maps\_utility::flag_set_delayed("street_combat_start",20);
thread maps\fusion_code::squad_heli_zip();
thread maps\fusion_code::fly_in_ambient_heli_squad();
level.warbird_a = maps\_vehicle::spawn_vehicle_from_targetname("blackhawk");
level.warbird_a.animname = "warbird_a";
level.warbird_a.no_anim_rotors = 1;
maps\fusion_code::spawn_intro_heroes();
maps\fusion_code::spawn_intro_pilots();
var_00 = maps\fusion_code::spawn_player_anim_rig();
level.player maps\_shg_utility::setup_player_for_scene();
level.player playerlinktodelta(var_00,"tag_player",0.75,50,30,15,45,1);
var_01 = common_scripts\utility::getstruct("org_flyin","targetname");
var_01 maps\_anim::anim_first_frame_solo(level.warbird_a,"fly_in_part2");
var_02 = [var_00,level.burke,level.joker,level.carter,level.copilot_intro,level.pilot_intro];
level.warbird_a maps\_anim::anim_first_frame(var_02,"fly_in_part2","tag_guy0");
foreach(var_04 in var_02)
{
var_04 linkto(level.warbird_a,"tag_guy0");
}
wait(2.5);
thread maps\fusion_code::finish_fly_in_sequence(var_01,level.warbird_a,var_00);
wait(54);
common_scripts\utility::flag_set("flag_combat_zip_rooftop_start");
common_scripts\utility::flag_wait("flag_combat_zip_rooftop_complete");
common_scripts\utility::flag_set("ready_zip");
maps\_utility::activate_trigger_with_targetname("trig_move_squad_from_heli");
}
//Function Number: 12
intro_fly_in_animated_part2()
{
common_scripts\utility::flag_wait("player_fly_in_done");
maps\_utility::delaythread(3,::maps\_utility::autosave_by_name);
}
//Function Number: 13
start_courtyard()
{
soundscripts\_snd::snd_message("start_courtyard");
setup_allies("checkpoint_courtyard");
maps\fusion_utility::teleport_to_scriptstruct("checkpoint_courtyard");
level.carter maps\_utility::disable_ai_color();
level.carter maps\fusion_utility::goto_node("node_carter_zip_rally",0);
thread maps\fusion_code::rooftop_slide();
thread maps\fusion_code::allies_rally_init();
thread maps\fusion_code::burke_rally_init();
thread maps\fusion_code::setup_ally_squad();
thread maps\fusion_code::road_battle_setup();
thread maps\fusion_code::street_hanging_pipes_anim();
thread maps\fusion_code::show_hide_plant_vista();
thread maps\fusion_code::fly_in_ambient_street_jets();
waittillframeend;
common_scripts\utility::flag_set("ready_zip");
common_scripts\utility::flag_set("burke_fastzip_done");
common_scripts\utility::flag_set("player_fly_in_done");
common_scripts\utility::flag_set("flag_ambient_explosions_start");
common_scripts\utility::flag_set("flag_player_zip_started");
common_scripts\utility::flag_set("flag_rooftop_strafe");
common_scripts\utility::flag_set("flag_player_cleared_rooftop");
common_scripts\utility::flag_set("sun_shad_off_zip");
common_scripts\utility::flag_set("street_combat_start");
common_scripts\utility::flag_set("courtyard_start_lighting");
}
//Function Number: 14
courtyard()
{
thread maps\fusion_code::courtyard_ambient_explosions();
if(level.nextgen)
{
thread maps\fusion_code::evacuation_kiosk_movie();
}
maps\fusion_code::enemy_walker();
thread maps\fusion_code::demo_skip_forward();
wait(0.05);
maps\_utility::autosave_by_name();
}
//Function Number: 15
start_security_room()
{
soundscripts\_snd::snd_message("start_security_room");
maps\_shg_utility::move_player_to_start("security_room_player_start");
setup_allies("security_room_player_start");
common_scripts\utility::flag_set("security_room_player_start");
common_scripts\utility::flag_set("interior_allies");
}
//Function Number: 16
start_lab()
{
soundscripts\_snd::snd_message("start_lab");
maps\_shg_utility::move_player_to_start("lab_player_start");
common_scripts\utility::flag_set("vo_lab_elevator_slide_complete");
setup_allies("lab_player_start");
common_scripts\utility::flag_set("lab_player_start");
common_scripts\utility::flag_set("interior_allies");
common_scripts\utility::flag_set("lab_cqb");
common_scripts\utility::flag_set("start_lab_traversals");
}
//Function Number: 17
start_reactor()
{
soundscripts\_snd::snd_message("start_reactor");
maps\_shg_utility::move_player_to_start("reactor_player_start");
setup_allies("reactor_player_start");
common_scripts\utility::flag_set("interior_allies");
common_scripts\utility::flag_set("lab_cqb");
common_scripts\utility::flag_set("reactor_player_start");
maps\_utility::activate_trigger_with_targetname("airlock_color_trigger");
}
//Function Number: 18
start_reactor_exit()
{
soundscripts\_snd::snd_message("start_reactor_exit");
maps\_shg_utility::move_player_to_start("reactor_exit_player_start");
setup_allies("reactor_exit_player_start");
common_scripts\utility::flag_set("interior_allies");
common_scripts\utility::flag_set("reactor_exit_player_start");
}
//Function Number: 19
start_turbine_room()
{
soundscripts\_snd::snd_message("start_turbine_room");
maps\_shg_utility::move_player_to_start("turbine_room_player_start");
setup_allies("turbine_room_player_start");
level.turbine_room_elevator_ascent_time = 0;
common_scripts\utility::flag_set("interior_allies");
common_scripts\utility::flag_set("elevator_ascend");
common_scripts\utility::flag_set("turbine_room_player_start");
common_scripts\utility::flag_set("turbine_elevator_enter");
common_scripts\utility::flag_set("portal_on_turbine_room_flag");
wait(0.05);
common_scripts\utility::flag_clear("portal_on_turbine_room_flag");
}
//Function Number: 20
start_control_room_entrance()
{
soundscripts\_snd::snd_message("start_control_room_entrance");
maps\_shg_utility::move_player_to_start("control_room_entrance_player_start");
common_scripts\utility::flag_set("control_room_entrance_player_start");
setup_allies("control_room_entrance_player_start");
common_scripts\utility::flag_set("interior_allies");
common_scripts\utility::flag_set("control_room_run_prep");
common_scripts\utility::flag_set("control_room_run_approach");
maps\_utility::vision_set_fog_changes("fusion_control_room_dark",0.5);
}
//Function Number: 21
start_control_room()
{
soundscripts\_snd::snd_message("start_control_room");
maps\_shg_utility::move_player_to_start("control_room_player_start");
common_scripts\utility::flag_set("control_room_player_start");
setup_allies("control_room_player_start");
common_scripts\utility::flag_set("interior_allies");
maps\_utility::vision_set_fog_changes("fusion_control_room_dark",0.5);
setsaveddvar("r_disablelightsets",0);
level.player lightsetforplayer("fusion_screen_control_room_lightset");
thread maps\fusion_code::control_room_scene_player(common_scripts\utility::getstruct("control_room_burke_position","targetname"));
thread maps\fusion_code::control_room_scene();
thread maps\fusion_code::control_room_screens();
common_scripts\utility::flag_set("control_room_explosion");
common_scripts\utility::flag_set("control_room_console_enable");
common_scripts\utility::array_call(getentarray("control_room_doors","targetname"),::delete);
var_00 = getent("control_room_door_clip","targetname");
if(isdefined(var_00))
{
var_00 delete();
}
}
//Function Number: 22
start_control_room_exit()
{
soundscripts\_snd::snd_message("start_control_room_exit");
maps\_shg_utility::move_player_to_start("itiot_player_start");
setup_allies("itiot_player_start");
level.player setplayerangles(level.player.angles + (7,0,0));
if(level.nextgen)
{
thread maps\fusion_code::evacuation_kiosk_movie();
}
common_scripts\utility::flag_set("flag_obj_01_pos_update_02");
common_scripts\utility::flag_set("player_start_control_room");
common_scripts\utility::flag_set("evacuation_started");
common_scripts\utility::flag_set("start_control_room_exit_lighting");
common_scripts\utility::flag_set("portal_on_control_room_flag");
wait(0.05);
common_scripts\utility::flag_clear("portal_on_control_room_flag");
}
//Function Number: 23
control_room_exit()
{
common_scripts\utility::flag_wait("flag_shut_down_reactor_failed");
soundscripts\_snd::snd_message("start_pre_loading_bay");
common_scripts\utility::flag_set("player_start_control_room");
thread maps\fusion_code::dialog_meltdown();
thread maps\fusion_code::reaction_explosions();
thread maps\fusion_code::reaction_ai();
wait(0.5);
thread maps\fusion_code::combat_hangar();
maps\_utility::autosave_by_name();
}
//Function Number: 24
start_cooling_tower()
{
soundscripts\_snd::snd_message("start_cooling_tower");
maps\_shg_utility::move_player_to_start();
setup_allies("cooling_tower_playerstart");
common_scripts\utility::flag_set("player_start_cooling_tower");
common_scripts\utility::flag_set("evacuation_started");
common_scripts\utility::flag_set("show_collapse_tower");
common_scripts\utility::flag_set("stop_ambient_explosions");
common_scripts\utility::flag_set("ct_final_retreat");
getent("retreat_gaz_01","targetname") delete();
thread maps\_utility::vision_set_fog_changes("fusion_cooling_towers",0);
thread maps\fusion_code::dialog_collapse();
maps\_utility::activate_trigger_with_targetname("allies_move_to_tower");
}
//Function Number: 25
cooling_tower()
{
}
//Function Number: 26
setup_allies(param_00)
{
level.burke = getent("hero_burke","targetname") maps\_utility::spawn_ai(1,1);
level.burke.animname = "burke";
level.joker = getent("hero_joker","targetname") maps\_utility::spawn_ai(1,1);
level.joker.animname = "joker";
level.carter = getent("hero_carter","targetname") maps\_utility::spawn_ai(1,1);
level.carter.animname = "carter";
if(isdefined(param_00))
{
var_01 = common_scripts\utility::getstruct(param_00,"targetname");
if(!isdefined(var_01))
{
var_01 = common_scripts\utility::getstruct(param_00,"script_noteworthy");
}
level.burke maps\_utility::teleport_ent(var_01);
level.joker maps\_utility::teleport_ent(var_01);
level.carter maps\_utility::teleport_ent(var_01);
if(param_00 == "lab_player_start")
{
level.burke thread maps\fusion_code::laboratory_start_idle();
level.joker thread maps\fusion_code::laboratory_start_idle();
level.carter thread maps\fusion_code::laboratory_start_idle();
}
if(param_00 == "reactor_player_start")
{
level.burke maps\_utility::enable_cqbwalk();
level.joker maps\_utility::enable_cqbwalk();
level.carter maps\_utility::enable_cqbwalk();
level.burke.moveplaybackrate = 1.1;
level.joker.moveplaybackrate = 1.1;
level.carter.moveplaybackrate = 1.1;
}
if(param_00 != "turbine_room_player_start" && param_00 != "control_room_entrance_player_start" && param_00 != "control_room_player_start" && param_00 != "control_room_exit_player_start" && param_00 != "cooling_tower_player_start")
{
thread deployable_cover_think();
}
if(param_00 == "itiot_player_start" || param_00 == "cooling_tower_playerstart")
{
level.burke maps\_utility::set_force_color("r");
level.joker maps\_utility::set_force_color("o");
level.carter maps\_utility::set_force_color("o");
return;
}
return;
}
thread deployable_cover_think();
}
//Function Number: 27
deployable_cover_think()
{
level.deployable_cover = spawn("script_model",level.joker gettagorigin("j_SpineUpper") + (0,0,0));
level.deployable_cover.angles = level.joker gettagangles("j_SpineUpper") + (0,0,0);
level.deployable_cover.animname = "deployable_cover";
level.deployable_cover setmodel("deployable_cover");
level.deployable_cover maps\_anim::setanimtree();
level.deployable_cover maps\_anim::anim_first_frame_solo(level.deployable_cover,"deployable_cover_closed_idle");
level.deployable_cover linkto(level.joker,"j_SpineUpper");
common_scripts\utility::flag_wait("joker_placing_turbine_elevator_cover");
level.deployable_cover delete();
}
//Function Number: 28
handle_objectives()
{
waittillframeend;
set_completed_objective_flags();
maps\fusion_code::objectives();
}
//Function Number: 29
boost_slam_hint()
{
level endon("flag_player_used_boost_slam");
thread boost_slam_use_monitor();
common_scripts\utility::flag_wait("flag_show_boost_slam_hint");
maps\_utility::hintdisplaymintimehandler("hint_boost_slam",5);
}
//Function Number: 30
boost_slam_use_monitor()
{
level.player waittill("ground_slam");
common_scripts\utility::flag_set("flag_player_used_boost_slam");
}
//Function Number: 31
sonics_hint()
{
level endon("flag_player_used_sonics");
thread sonics_use_monitor();
common_scripts\utility::flag_wait("flag_show_sonic_hint");
level.burke maps\_utility::dialogue_queue("fin_gdn_usesonics");
maps\_utility::hintdisplaymintimehandler("hint_sonics",5);
}
//Function Number: 32
sonics_use_monitor()
{
level waittill("SonicAoEStarted");
common_scripts\utility::flag_set("flag_player_used_sonics");
}
//Function Number: 33
boost_slam_use_hint()
{
if(common_scripts\utility::flag("flag_player_used_boost_slam"))
{
return 1;
}
return 0;
}
//Function Number: 34
sonics_use_hint()
{
if(common_scripts\utility::flag("flag_player_used_sonics"))
{
return 1;
}
return 0;
}
//Function Number: 35
set_completed_objective_flags()
{
if(maps\_utility::is_default_start())
{
return;
}
var_00 = level.start_point;
if(var_00 == "fly_in_animated")
{
return;
}
common_scripts\utility::flag_set("flag_intro_objective_given");
if(var_00 == "fly_in_animated_part2")
{
return;
}
if(var_00 == "courtyard")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_walker");
common_scripts\utility::flag_set("update_obj_pos_security_entrance_1");
common_scripts\utility::flag_set("update_obj_pos_security_entrance_2");
if(var_00 == "security_room")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_security_room");
common_scripts\utility::flag_set("update_obj_pos_security_elevator_burke");
common_scripts\utility::flag_set("update_obj_pos_security_elevator");
common_scripts\utility::flag_set("update_obj_pos_elevator_descent");
common_scripts\utility::flag_set("update_obj_pos_lab_follow_joker");
if(var_00 == "lab")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_lab_follow_burke");
common_scripts\utility::flag_set("update_obj_pos_lab_follow_carter");
if(var_00 == "reactor_room")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_reactor_1");
common_scripts\utility::flag_set("update_obj_pos_reactor_2");
common_scripts\utility::flag_set("update_obj_pos_reactor_exit");
common_scripts\utility::flag_set("update_obj_pos_reactor_storage_1");
common_scripts\utility::flag_set("update_obj_pos_reactor_storage_2");
common_scripts\utility::flag_set("update_obj_pos_turbine_elevator");
if(var_00 == "reactor_room_exit")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_turbine_elevator_button");
common_scripts\utility::flag_set("update_obj_pos_turbine_elevator_ascent");
if(var_00 == "turbine_room")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_turbine_room_1");
common_scripts\utility::flag_set("update_obj_pos_turbine_room_exit");
if(var_00 == "control_room_entrance")
{
return;
}
common_scripts\utility::flag_set("update_obj_pos_control_room_door");
common_scripts\utility::flag_set("update_obj_pos_control_room_explosion");
common_scripts\utility::flag_set("update_obj_pos_control_room_console");
if(var_00 == "control_room")
{
return;
}
common_scripts\utility::flag_set("flag_shut_down_reactor_failed");
common_scripts\utility::flag_set("update_obj_pos_control_room_using_console");
common_scripts\utility::flag_set("update_obj_pos_control_room_exit_1");
common_scripts\utility::flag_set("update_obj_pos_control_room_exit_2");
common_scripts\utility::flag_set("update_obj_pos_hangar_entrance");
if(var_00 == "control_room_exit")
{
return;
}
common_scripts\utility::flag_set("flag_obj_02_pos_update_02");
common_scripts\utility::flag_set("flag_obj_02_pos_update_03");
common_scripts\utility::flag_set("objective_on_extraction_chopper");
if(var_00 == "cooling_tower")
{
}
}
//Function Number: 36
setup_portal_scripting()
{
thread handle_fusion_portal_groups_toggle("portal_grp_reactor_room","portal_on_reactor_room_flag","portal_off_reactor_room_flag");
common_scripts\utility::flag_init("portal_on_turbine_room_flag");
thread handle_fusion_portal_groups_on("portal_grp_turbine_room","portal_on_turbine_room_flag","endPortalTurbineRoom","turbine_room");
common_scripts\utility::flag_init("portal_on_control_room_flag");
thread handle_fusion_portal_groups_toggle("portal_grp_control_room","portal_on_control_room_flag","portal_off_control_room_flag");
}
//Function Number: 37
handle_fusion_portal_groups_on(param_00,param_01,param_02,param_03)
{
level.player endon("death");
level endon("missionfailed");
if(isdefined(param_02) && isstring(param_02))
{
level endon(param_02);
}
var_04 = getent(param_00,"targetname");
var_04 enableportalgroup(0);
for(;;)
{
common_scripts\utility::flag_wait(param_01);
var_04 enableportalgroup(1);
wait(0.05);
if(isdefined(param_02))
{
level notify(param_02);
}
}
}
//Function Number: 38
handle_fusion_portal_groups_toggle(param_00,param_01,param_02)
{
level.player endon("death");
level endon("missionfailed");
var_03 = getent(param_00,"targetname");
var_03 enableportalgroup(0);
for(;;)
{
common_scripts\utility::flag_wait(param_01);
var_03 enableportalgroup(1);
wait(0.05);
common_scripts\utility::flag_wait(param_02);
var_03 enableportalgroup(0);
wait(0.05);
}
}