nx1-gsc-dump/maps/nx_lava.gsc

480 lines
16 KiB
Plaintext

//****************************************************************************
// **
// Confidential - (C) Activision Publishing, Inc. 2010 **
// **
//****************************************************************************
// **
// Module: MISSION DESCRIPTION **
// **
// Created: DATE - CREATOR **
// **
//****************************************************************************
#include maps\_utility;
#include common_scripts\utility;
#include maps\_anim;
#include maps\_vehicle;
//*******************************************************************
// *
// *
//*******************************************************************
main()
{
// Starts
default_start( ::train_interior );
// tagBK<NOTE> Changed for tuesday tech presentation of moving platforms.
set_default_start( "train_1" );
add_start( "outpost", ::outpost_start, "Outpost", ::outpost );
add_start( "garage", ::garage_start, "Garage", ::garage );
add_start( "platform_tower", ::platform_tower_start, "Platform Tower", ::platform_tower );
add_start( "station_1", ::station_1_start, "Station 1", ::station_1 );
add_start( "s1_command_center", ::s1_command_center_start, "Command Center", ::s1_command_center );
add_start( "train_1", ::train_1_start, "Train 1", ::train_1 );
add_start( "station_2", ::station_2_start, "Station 2", ::station_2 );
add_start( "station_2_arrive", ::station_2_arrive_start, "Station 2 Arrive", ::station_2_arrive );
add_start( "bridge_to_train", ::bridge_to_train_start, "Bridge to Train", ::bridge_to_train );
// tagDK<hack> - Removed add_start string (Train Interior) to stop it from showing for greenlight
add_start( "train_interior", ::train_interior_start, "", ::train_interior );
add_start( "train_interior_front", ::train_interior_front_start, "Train Interior Front", ::train_interior_front );
add_start( "train_2", ::train_2_start, "Train 2", ::train_2 );
add_start( "train_2_skimmers", ::train_2_skimmers_start, "Train 2 Skimmers", ::train_2_skimmers );
add_start( "derail", ::train_derail_start, "Derail", ::train_derail );
// External Initialization
maps\nx_lava_precache::main();
maps\nx_lava_fx::main();
maps\_moon_actor::main();
huds = [];
huds[huds.size] = "hud_lunar";
maps\_load::main( huds );
maps\_moon::main();
maps\nx_lava_anim::main();
// tagTC<note> - this main has a blocker wait, need to
// check with audio to see if they can remove it.
maps\nx_lava_amb::main(); // TagBM<note>: removed thread to make sure level vars are initialized before being used
// Internal Initialization
mission_flag_inits();
mission_precache();
// Vision Set Init
level thread maps\nx_lava_fx::vision_set_main();
//set timescale factors
SoundSetTimeScaleFactor( "Music", 0 );
SoundSetTimeScaleFactor( "Vignette2d", 0);
SoundSetTimeScaleFactor( "menu", 0);
SoundSetTimeScaleFactor( "nx_verb3d", 0);
// Hide all trains
init_and_hide_all_trains();
// Mission threads
level thread mission_objectives();
level thread mission_player_thread();
//thread the music script
level thread maps\nx_lava_audio::mission_music();
// Per section main
level thread maps\nx_lava_outpost::section_main();
level thread maps\nx_lava_station_1::section_main();
level thread maps\nx_lava_train_1::section_main();
level thread maps\nx_lava_station_2::section_main();
level thread maps\nx_lava_train_interior::section_main();
level thread maps\nx_lava_train_2::section_main();
level thread maps\nx_lava_train_derail::section_main();
// Falling death trigger
level thread falling_death_trigger();
// Setup Explosives
thread maps\nx_lava_util::explodables_init();
CreateThreatBiasGroup( "player" );
CreateThreatBiasGroup( "ambusher" );
level._player SetThreatBiasGroup( "player" );
// Check IPrintlnBold triggers
// level thread maps\nx_lava_util::IPrintlnBold_triggers();
// In Lava, movers do not push other entities. This is a significant optimization due to the large number
// of movers in Lava, especially in train-interior where movers surround the encounter.
SetSavedDvar( "g_mover_no_push", 1 );
}
// All mission specific PreCache calls
mission_precache()
{
// Per section precache
level thread maps\nx_lava_outpost::section_precache();
level thread maps\nx_lava_station_1::section_precache();
level thread maps\nx_lava_train_1::section_precache();
level thread maps\nx_lava_station_2::section_precache();
level thread maps\nx_lava_train_interior::section_precache();
level thread maps\nx_lava_train_2::section_precache();
level thread maps\nx_lava_train_derail::section_precache();
}
// All mission specific flag_init() calls
mission_flag_inits()
{
// Per section flag init
level thread maps\nx_lava_outpost::section_flag_inits();
level thread maps\nx_lava_station_1::section_flag_inits();
level thread maps\nx_lava_train_1::section_flag_inits();
level thread maps\nx_lava_station_2::section_flag_inits();
level thread maps\nx_lava_train_interior::section_flag_inits();
level thread maps\nx_lava_train_2::section_flag_inits();
level thread maps\nx_lava_train_derail::section_flag_inits();
// Anim flag_init
level thread maps\nx_lava_anim::section_flag_inits();
// Audio flag_init
maps\nx_lava_audio::flag_inits();
}
mission_player_thread()
{
}
mission_objectives()
{
// Wait for friendlies to spawn
waittillframeend;
// README: wait_for_objective
// maps\_nx_objective_util::wait_for_objective( objective_num, objective_text, curr_trigger, next_trigger );
// curr_trigger - the start point trigger of the objective
// next_trigger - the end point trigger of the objective
// Uses script_origin nodes for pathing ( be sure to have a radius on the nodes )
objective_num = 0;
switch ( level._start_point )
{
case "default":
case "outpost":
objective_num = maps\nx_lava_outpost::outpost_objectives( objective_num );
case "garage":
objective_num = maps\nx_lava_outpost::garage_objectives( objective_num );
case "platform_tower":
objective_num = maps\nx_lava_station_1::platform_tower_objectives( objective_num );
case "station_1":
objective_num = maps\nx_lava_station_1::station_1_objectives( objective_num );
case "s1_command_center":
objective_num = maps\nx_lava_station_1::s1_command_center_objectives( objective_num );
case "train_1":
objective_num = maps\nx_lava_train_1::section_objectives( objective_num );
case "station_2":
case "station_2_arrive":
case "bridge_to_train":
objective_num = maps\nx_lava_station_2::section_objectives( objective_num );
case "train_interior":
case "train_interior_front":
objective_num = maps\nx_lava_train_interior::section_objectives( objective_num );
case "train_2":
objective_num = maps\nx_lava_train_2::section_objectives( objective_num );
case "derail":
objective_num = maps\nx_lava_train_derail::section_objectives( objective_num );
}
}
//*******************************************************************
// *
//*******************************************************************
falling_death_trigger()
{
flag_wait( "player_falling_death" );
SetSavedDvar( "compass", "0" );
SetSavedDvar( "ammoCounterHide", 1 );
SetSavedDvar( "actionSlotsHide", 1 );
SetSavedDvar( "hud_showStance", 0 );
//SetSavedDvar( "hud_drawhud", 0 );
VisionSetNaked( "black_bw", 2.5 );
wait( 2.5 );
level._player PlayRumbleOnEntity( "falling_land" );
wait( 0.5 );
level._player Kill();
}
//*******************************************************************
// *
//*******************************************************************
init_and_hide_all_trains()
{
// Train 2 Interior
level.train_interior = maps\_nx_moving_platform::init( "train_2", 30 );
// Hide Train 2 Interior
if( IsDefined( level.train_interior ) )
level.train_interior maps\_nx_moving_platform::platform_hide();
// Link Train 2 Interior to its vehicle
level.train_interior_vehicle = getEnt( "train_2_vehicle", "targetname" );
if( IsDefined( level.train_interior_vehicle ) )
level.train_interior maps\_nx_moving_platform::link_platform_to_vehicle( level.train_interior_vehicle );
// Spawn and hide Train 2 Turret
level.train_turret = maps\nx_lava_util::setup_train_by_name( "train_2_front" );
maps\nx_lava_util::show_hide_train( level.train_turret, "hide" );
}
//*******************************************************************
// *
// *
//*******************************************************************
//*******************************************************************
// *
// *
//*******************************************************************
outpost_start()
{
maps\nx_lava_outpost::outpost_start();
}
outpost()
{
maps\nx_lava_outpost::outpost();
}
//*******************************************************************
// *
// *
//*******************************************************************
garage_start()
{
maps\nx_lava_outpost::garage_start();
}
garage()
{
//temp music_chk flag
flag_set( "music_chk_garage" );
maps\nx_lava_outpost::garage();
}
//*******************************************************************
// *
// *
//*******************************************************************
platform_tower_start()
{
maps\nx_lava_station_1::platform_tower_start();
}
platform_tower()
{
//temp music_chk flag
flag_set( "music_chk_platform_tower" );
maps\nx_lava_station_1::platform_tower();
}
//*******************************************************************
// *
// *
//*******************************************************************
station_1_start()
{
maps\nx_lava_station_1::station_1_start();
}
station_1()
{
//temp music_chk flag
flag_set( "music_chk_station_1" );
maps\nx_lava_station_1::station_1();
}
//*******************************************************************
// *
// *
//*******************************************************************
s1_command_center_start()
{
maps\nx_lava_station_1::s1_command_center_start();
}
s1_command_center()
{
//temp music_chk flag
flag_set( "music_chk_station_1" );
maps\nx_lava_station_1::s1_command_center();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_1_start()
{
maps\nx_lava_train_1::train_1_start();
}
train_1()
{
//temp music_chk flag
flag_set( "music_chk_train_1" );
maps\nx_lava_train_1::train_1();
}
//*******************************************************************
// *
// *
//*******************************************************************
station_2_start()
{
maps\nx_lava_station_2::station_2_start();
}
station_2()
{
//temp music_chk flag
flag_set( "music_chk_station_2" );
maps\nx_lava_station_2::station_2();
}
//*******************************************************************
// *
// *
//*******************************************************************
station_2_arrive_start()
{
maps\nx_lava_station_2::station_2_arrive_start();
}
station_2_arrive()
{
//temp music_chk flag
flag_set( "music_chk_station_2_arrive" );
maps\nx_lava_station_2::station_2_arrive();
}
//*******************************************************************
// *
// *
//*******************************************************************
bridge_to_train_start()
{
maps\nx_lava_station_2::bridge_to_train_start();
}
bridge_to_train()
{
maps\nx_lava_station_2::bridge_to_train();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_interior_start()
{
maps\nx_lava_train_interior::train_interior_start();
}
train_interior()
{
//temp music_chk flag
flag_set( "music_chk_train_interior" );
maps\nx_lava_train_interior::train_interior();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_interior_front_start()
{
maps\nx_lava_train_interior::train_interior_front_start();
}
train_interior_front()
{
maps\nx_lava_train_interior::train_interior_front();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_2_start()
{
maps\nx_lava_train_2::train_2_start();
}
train_2()
{
//temp music_chk flag
flag_set( "music_chk_train_2" );
maps\nx_lava_train_2::train_2();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_2_skimmers_start()
{
maps\nx_lava_train_2::train_2_skimmers_start();
}
train_2_skimmers()
{
//temp music_chk flag
flag_set( "music_chk_train_2_skimmers" );
maps\nx_lava_train_2::train_2_skimmers();
}
//*******************************************************************
// *
// *
//*******************************************************************
train_derail_start()
{
maps\nx_lava_train_derail::train_derail_start();
}
train_derail()
{
// tagTC<note> - temp fix to delay train derail music flag
level thread train_derail_thread();
maps\nx_lava_train_derail::train_derail();
}
train_derail_thread()
{
flag_wait( "vignette_train_derailment" );
flag_set( "music_chk_derail" );
}
//*******************************************************************
// *
// *
//*******************************************************************