mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-23 17:45:47 +00:00
218 lines
6.7 KiB
Plaintext
218 lines
6.7 KiB
Plaintext
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2011 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: Nx_Hospital **
|
|
// **
|
|
// Created: 11/11/11 - Allen Freese **
|
|
// **
|
|
//****************************************************************************
|
|
|
|
#include maps\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\_anim;
|
|
#include maps\_vehicle;
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
main()
|
|
{
|
|
// Add start points
|
|
default_start(::intro_start );
|
|
add_start( "intro", ::intro_start, "Intro Vignette", ::intro );
|
|
add_start( "hall_first_floor", ::hall_first_floor_start, "Corridor 01, Floor 01", ::hall_first_floor );
|
|
add_start( "hall_second_floor", ::hall_second_floor_start, "Corridor 01, Floor 02", ::hall_second_floor );
|
|
add_start( "construction", ::atrium_start, "Construction", ::atrium );
|
|
add_start( "exit_corridor", ::exit_corridor_start, "Exit Corridor", ::exit_corridor );
|
|
add_start( "assassination", ::assassination_start, "Assassination", ::assassination );
|
|
|
|
// External Initialization
|
|
maps\nx_hospital_precache::main();
|
|
maps\nx_hospital_fx::main();
|
|
maps\_load::main();
|
|
maps\nx_hospital_amb::main();
|
|
maps\nx_hospital_anim::main();
|
|
|
|
// Shootable pipes
|
|
thread common_scripts\_pipes::main();
|
|
|
|
// Dynamic cover
|
|
maps\_dynamic_cover::main();
|
|
|
|
// Offensive Grenades
|
|
thread maps\nx_hospital_util::grenade_behavior();
|
|
|
|
// Internal Initialization
|
|
mission_flag_inits();
|
|
mission_precache();
|
|
|
|
//set timescale factors
|
|
SoundSetTimeScaleFactor( "Music", 0 );
|
|
|
|
// Mission threads
|
|
level thread maps\nx_hospital_audio::mission_music();
|
|
thread mission_objective_logic();
|
|
|
|
// Setup mission squad
|
|
mission_squad();
|
|
}
|
|
|
|
// All mission specific PreCache calls
|
|
mission_precache()
|
|
{
|
|
PreCacheItem ("offensive_grenade");
|
|
precacheString( &"NX_HOSPITAL_FAIL_OFFENSIVE_GRENADE" );
|
|
maps\nx_hospital_hall_first_floor::section_precache();
|
|
maps\nx_hospital_hall_second_floor::section_precache();
|
|
maps\nx_hospital_atrium::section_precache();
|
|
maps\nx_hospital_exit_corridor::section_precache();
|
|
}
|
|
|
|
// All mission specific flag_init() calls
|
|
mission_flag_inits()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::section_flag_inits();
|
|
maps\nx_hospital_hall_second_floor::section_flag_inits();
|
|
maps\nx_hospital_atrium::section_flag_inits();
|
|
maps\nx_hospital_exit_corridor::section_flag_inits();
|
|
|
|
maps\nx_hospital_audio::flag_inits();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
mission_squad()// SCRIPT_KEEP
|
|
{
|
|
///// KEY /////
|
|
// ALLY_ALPHA: Alpha
|
|
// ALLY_BRAVO: Bravo
|
|
|
|
maps\nx_hospital_util::squad_add_ally( "ALLY_ALPHA", "ally_alpha", "ally_alpha" );
|
|
maps\nx_hospital_util::squad_add_ally( "ALLY_BRAVO", "ally_bravo", "ally_bravo" );
|
|
}
|
|
|
|
|
|
//*******************************************************************
|
|
// OBJECTIVES *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
mission_objective_logic()
|
|
{
|
|
// Wait for friendlies to spawn
|
|
waittillframeend;
|
|
|
|
switch ( level._start_point )
|
|
{
|
|
case "default":
|
|
case "intro":
|
|
case "hall_first_floor":
|
|
case "hall_second_floor":
|
|
objective_add( obj( "obj_infiltrate" ), "current", &"NX_HOSPITAL_OBJ_INFILTRATE" );
|
|
flag_wait( "corridor_01_second_floor_exit" );
|
|
Objective_State( obj( "obj_infiltrate" ), "done" );
|
|
case "construction":
|
|
case "exit_corridor":
|
|
objective_add( obj( "obj_eliminate" ), "current", &"NX_HOSPITAL_OBJ_ELIMINATE_RESISTANCE" );
|
|
flag_wait( "vignette_outro" );
|
|
Objective_State( obj( "obj_eliminate" ), "done" );
|
|
case "assassination":
|
|
objective_add( obj( "obj_capture" ), "current", &"NX_HOSPITAL_OBJ_CAPTURE_LEADER" );
|
|
level waittill ("kill_orders_received");
|
|
Objective_State( obj( "obj_capture" ), "failed" );
|
|
objective_add( obj( "obj_kill" ), "current", &"NX_HOSPITAL_OBJ_KILL_LEADER" );
|
|
case "no_game":
|
|
break;
|
|
default:
|
|
AssertMsg( "No objectives set for this start point" );
|
|
}
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Intro *
|
|
//*******************************************************************
|
|
intro_start()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::start_intro();
|
|
}
|
|
|
|
intro()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::intro();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Hall First Floor *
|
|
//*******************************************************************
|
|
hall_first_floor_start()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::start_floor_01();
|
|
}
|
|
|
|
hall_first_floor()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::main_floor_01();
|
|
}
|
|
|
|
|
|
//*******************************************************************
|
|
// Hall Second Floor *
|
|
//*******************************************************************
|
|
hall_second_floor_start()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::start_floor_02();
|
|
}
|
|
|
|
hall_second_floor()
|
|
{
|
|
maps\nx_hospital_hall_first_floor::main_floor_02();
|
|
}
|
|
|
|
|
|
//*******************************************************************
|
|
// Atrium *
|
|
//*******************************************************************
|
|
atrium_start()
|
|
{
|
|
maps\nx_hospital_atrium::start();
|
|
}
|
|
|
|
atrium()
|
|
{
|
|
maps\nx_hospital_atrium::main();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Exit Corridor *
|
|
//*******************************************************************
|
|
exit_corridor_start()
|
|
{
|
|
maps\nx_hospital_exit_corridor::start();
|
|
}
|
|
|
|
exit_corridor()
|
|
{
|
|
maps\nx_hospital_exit_corridor::main();
|
|
}
|
|
|
|
//*******************************************************************
|
|
// Assassination Sequence *
|
|
//*******************************************************************
|
|
assassination_start()
|
|
{
|
|
maps\nx_hospital_exit_corridor::assassination_start();
|
|
}
|
|
|
|
assassination()
|
|
{
|
|
maps\nx_hospital_exit_corridor::assassination_main();
|
|
}
|