215 lines
15 KiB
Plaintext
215 lines
15 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
|
|
//TODO T7 - move what we can into load_shared once ZM gets a pass
|
|
#using scripts\shared\archetype_shared\archetype_shared;
|
|
#using scripts\shared\audio_shared;//DO NOT REMOVE - needed for system registration
|
|
#using scripts\shared\clientfield_shared;
|
|
#using scripts\shared\demo_shared;
|
|
#using scripts\shared\entityheadicons_shared;
|
|
#using scripts\shared\flag_shared;
|
|
#using scripts\shared\flagsys_shared;
|
|
#using scripts\shared\hostmigration_shared;
|
|
#using scripts\shared\load_shared;
|
|
#using scripts\shared\math_shared;
|
|
#using scripts\shared\medals_shared;
|
|
#using scripts\shared\music_shared;//DO NOT REMOVE - needed for system registration
|
|
#using scripts\shared\player_shared;//DO NOT REMOVE - needed for system registration
|
|
#using scripts\shared\objpoints_shared;
|
|
#using scripts\shared\_oob;
|
|
#using scripts\shared\popups_shared;
|
|
#using scripts\shared\scene_shared;
|
|
#using scripts\shared\serverfaceanim_shared;
|
|
#using scripts\shared\system_shared;
|
|
#using scripts\shared\turret_shared;
|
|
#using scripts\shared\tweakables_shared;
|
|
#using scripts\shared\util_shared;
|
|
#using scripts\shared\weapons\_ballistic_knife;
|
|
#using scripts\shared\weapons\_bouncingbetty;
|
|
#using scripts\shared\weapons\_hive_gun;
|
|
#using scripts\shared\weapons\_tacticalinsertion;
|
|
#using scripts\shared\weapons\_trophy_system;
|
|
#using scripts\shared\weapons\_flashgrenades;
|
|
#using scripts\shared\weapons\_lightninggun;
|
|
#using scripts\shared\weapons\_proximity_grenade;
|
|
#using scripts\shared\weapons\_riotshield;
|
|
#using scripts\shared\weapons\_satchel_charge;
|
|
#using scripts\shared\weapons\_sensor_grenade;
|
|
#using scripts\shared\weapons\_weaponobjects;
|
|
#using scripts\shared\weapons\multilockapguidance;
|
|
|
|
|
|
|
|
|
|
#using scripts\mp\_art;
|
|
#using scripts\mp\_destructible;
|
|
#using scripts\mp\_load;
|
|
#using scripts\mp\_util;
|
|
|
|
//REGISTRATION - These scripts are initialized here
|
|
//Do not remove unless you are removing the script from the game
|
|
|
|
//System registration
|
|
#using scripts\mp\_arena;
|
|
#using scripts\mp\_bb;
|
|
#using scripts\shared\_burnplayer;
|
|
#using scripts\mp\_callbacks;
|
|
#using scripts\mp\_devgui;
|
|
#using scripts\mp\_perks;
|
|
#using scripts\mp\_vehicle;
|
|
#using scripts\mp\_pickup_items;
|
|
|
|
//Gametypes Registration - DO NOT REMOVE
|
|
#using scripts\mp\gametypes\_globallogic_audio;
|
|
#using scripts\mp\gametypes\_spawning;
|
|
#using scripts\mp\gametypes\_classicmode;
|
|
|
|
//Killstreak registration
|
|
#using scripts\mp\killstreaks\_ai_tank;
|
|
#using scripts\mp\killstreaks\_counteruav;
|
|
#using scripts\mp\killstreaks\_dogs;
|
|
#using scripts\mp\killstreaks\_drone_strike;
|
|
#using scripts\mp\killstreaks\_rcbomb;
|
|
#using scripts\mp\killstreaks\_placeables;
|
|
#using scripts\mp\killstreaks\_satellite;
|
|
#using scripts\mp\killstreaks\_uav;
|
|
#using scripts\mp\killstreaks\_killstreak_detect;
|
|
|
|
//Weapon registration
|
|
#using scripts\shared\weapons\_pineapple_gun;
|
|
#using scripts\shared\weapons\_sticky_grenade;
|
|
#using scripts\mp\_ballistic_knife;
|
|
#using scripts\mp\_bouncingbetty;
|
|
#using scripts\mp\_hive_gun;
|
|
#using scripts\mp\_explosive_bolt;
|
|
#using scripts\mp\_flashgrenades;
|
|
#using scripts\mp\_hacker_tool;
|
|
#using scripts\mp\_heatseekingmissile;
|
|
#using scripts\mp\_incendiary;
|
|
#using scripts\mp\_armblade;
|
|
#using scripts\mp\_lightninggun;
|
|
#using scripts\mp\_proximity_grenade;
|
|
#using scripts\mp\_riotshield;
|
|
#using scripts\mp\_satchel_charge;
|
|
#using scripts\mp\_sensor_grenade;
|
|
#using scripts\mp\_threat_detector;
|
|
#using scripts\mp\_smokegrenade;
|
|
#using scripts\mp\_tacticalinsertion;
|
|
#using scripts\mp\_trophy_system;
|
|
#using scripts\mp\gametypes\_weaponobjects;
|
|
|
|
//Abilities registration
|
|
#using scripts\shared\abilities\_ability_player;
|
|
|
|
// Blackjack registration
|
|
#using scripts\mp\_blackjack_challenges;
|
|
|
|
// Contract registration
|
|
#using scripts\mp\_contracts;
|
|
|
|
#precache( "fx", "_t6/bio/player/fx_footstep_dust" );
|
|
#precache( "fx", "_t6/bio/player/fx_footstep_sand" );
|
|
#precache( "fx", "_t6/bio/player/fx_footstep_mud" );
|
|
#precache( "fx", "_t6/bio/player/fx_footstep_water" );
|
|
|
|
#namespace load;
|
|
|
|
function main()
|
|
{
|
|
/#
|
|
|
|
Assert( isdefined( level.first_frame ), "There should be no waits before load::main." );
|
|
|
|
#/
|
|
|
|
level._loadStarted = true;
|
|
|
|
SetClearanceCeiling( 30 ); // slightly larger than the amws
|
|
|
|
register_clientfields();
|
|
|
|
level.aiTriggerSpawnFlags = getaitriggerflags();
|
|
level.vehicleTriggerSpawnFlags = getvehicletriggerflags();
|
|
|
|
setup_traversals();
|
|
|
|
//TODO T7 - remove once globallogic_audio is shared
|
|
level.globallogic_audio_dialog_on_player_override = &globallogic_audio::leader_dialog_on_player;
|
|
level.growing_hitmarker = true;
|
|
|
|
system::wait_till( "all" );
|
|
level flagsys::set( "load_main_complete" );
|
|
}
|
|
|
|
function setFootstepEffect(name, fx)
|
|
{
|
|
assert(isdefined(name), "Need to define the footstep surface type.");
|
|
assert(isdefined(fx), "Need to define the mud footstep effect.");
|
|
if (!isdefined(anim.optionalStepEffects))
|
|
anim.optionalStepEffects = [];
|
|
anim.optionalStepEffects[anim.optionalStepEffects.size] = name;
|
|
level._effect["step_" + name] = fx;
|
|
}
|
|
|
|
function footsteps()
|
|
{
|
|
setFootstepEffect( "asphalt", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "brick", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "carpet", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "cloth", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "concrete", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "dirt", "_t6/bio/player/fx_footstep_sand" );
|
|
setFootstepEffect( "foliage", "_t6/bio/player/fx_footstep_sand" );
|
|
setFootstepEffect( "gravel", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "grass", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "metal", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "mud", "_t6/bio/player/fx_footstep_mud" );
|
|
setFootstepEffect( "paper", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "plaster", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "rock", "_t6/bio/player/fx_footstep_dust" );
|
|
setFootstepEffect( "sand", "_t6/bio/player/fx_footstep_sand" );
|
|
setFootstepEffect( "water", "_t6/bio/player/fx_footstep_water" );
|
|
setFootstepEffect( "wood", "_t6/bio/player/fx_footstep_dust" );
|
|
}
|
|
|
|
// All "Begin" nodes get passed in here through _load.gsc
|
|
function init_traverse()
|
|
{
|
|
point = GetEnt(self.target, "targetname");
|
|
if (isdefined(point))
|
|
{
|
|
self.traverse_height = point.origin[2];
|
|
point Delete();
|
|
}
|
|
else
|
|
{
|
|
point = struct::get(self.target, "targetname");
|
|
if (isdefined(point))
|
|
{
|
|
self.traverse_height = point.origin[2];
|
|
}
|
|
}
|
|
}
|
|
|
|
function setup_traversals()
|
|
{
|
|
potential_traverse_nodes = GetAllNodes();
|
|
for (i = 0; i < potential_traverse_nodes.size; i++)
|
|
{
|
|
node = potential_traverse_nodes[i];
|
|
if (node.type == "Begin")
|
|
{
|
|
node init_traverse();
|
|
}
|
|
}
|
|
}
|
|
|
|
function register_clientfields()
|
|
{
|
|
clientfield::register( "missile", "cf_m_proximity", 1, 1, "int" );
|
|
clientfield::register( "missile", "cf_m_emp", 1, 1, "int" );
|
|
clientfield::register( "missile", "cf_m_stun", 1, 1, "int" );
|
|
|
|
//clientfield::register( "scriptmover", "cf_s_emp", VERSION_SHIP, 1, "int" );
|
|
//clientfield::register( "scriptmover", "cf_s_stun", VERSION_SHIP, 1, "int" );
|
|
}
|