init
This commit is contained in:
7
common_scripts/_artcommon.gsc
Normal file
7
common_scripts/_artcommon.gsc
Normal file
@ -0,0 +1,7 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
setfogsliders()
|
||||
{
|
||||
|
||||
}
|
875
common_scripts/_bcs_location_trigs.gsc
Normal file
875
common_scripts/_bcs_location_trigs.gsc
Normal file
@ -0,0 +1,875 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
bcs_location_trigs_init()
|
||||
{
|
||||
level.bcs_location_mappings = [];
|
||||
bcs_location_trigger_mapping();
|
||||
bcs_trigs_assign_aliases();
|
||||
level.bcs_location_mappings = undefined;
|
||||
anim.locationlastcallouttimes = [];
|
||||
}
|
||||
|
||||
bcs_trigs_assign_aliases()
|
||||
{
|
||||
anim.bcs_locations = [];
|
||||
var_0 = getentarray();
|
||||
var_1 = [];
|
||||
|
||||
foreach ( var_3 in var_0 )
|
||||
{
|
||||
if ( isdefined( var_3.classname ) && issubstr( var_3.classname, "trigger_multiple_bcs" ) )
|
||||
var_1[var_1.size] = var_3;
|
||||
}
|
||||
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
if ( !isdefined( level.bcs_location_mappings[var_3.classname] ) )
|
||||
continue;
|
||||
|
||||
var_6 = parselocationaliases( level.bcs_location_mappings[var_3.classname] );
|
||||
|
||||
if ( var_6.size > 1 )
|
||||
var_6 = common_scripts\utility::array_randomize( var_6 );
|
||||
|
||||
var_3.locationaliases = var_6;
|
||||
}
|
||||
|
||||
anim.bcs_locations = var_1;
|
||||
}
|
||||
|
||||
parselocationaliases( var_0 )
|
||||
{
|
||||
var_1 = strtok( var_0, " " );
|
||||
return var_1;
|
||||
}
|
||||
|
||||
add_bcs_location_mapping( var_0, var_1 )
|
||||
{
|
||||
if ( isdefined( level.bcs_location_mappings[var_0] ) )
|
||||
{
|
||||
var_2 = level.bcs_location_mappings[var_0];
|
||||
var_3 = parselocationaliases( var_2 );
|
||||
var_4 = parselocationaliases( var_1 );
|
||||
|
||||
foreach ( var_6 in var_4 )
|
||||
{
|
||||
foreach ( var_8 in var_3 )
|
||||
{
|
||||
if ( var_6 == var_8 )
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var_2 = var_2 + ( " " + var_1 );
|
||||
level.bcs_location_mappings[var_0] = var_2;
|
||||
return;
|
||||
}
|
||||
|
||||
level.bcs_location_mappings[var_0] = var_1;
|
||||
}
|
||||
|
||||
bcs_location_trigger_mapping()
|
||||
{
|
||||
if ( common_scripts\utility::issp() )
|
||||
{
|
||||
generic_locations();
|
||||
blackice_locations();
|
||||
carrier_locations();
|
||||
clockwork_locations();
|
||||
cornered_locations();
|
||||
enemyhq_locations();
|
||||
factory_locations();
|
||||
flood_locations();
|
||||
homecoming_locations();
|
||||
jungleghosts_locations();
|
||||
nml_locations();
|
||||
oilrocks_locations();
|
||||
vegas_locations();
|
||||
}
|
||||
else
|
||||
{
|
||||
prisonbreak();
|
||||
chasm();
|
||||
dart();
|
||||
farenheit();
|
||||
flooded();
|
||||
frag();
|
||||
hashima();
|
||||
lonestar();
|
||||
skeleton();
|
||||
snow();
|
||||
sovereign();
|
||||
strikezone();
|
||||
warhawk();
|
||||
zebra();
|
||||
red_river();
|
||||
rumble();
|
||||
swamp();
|
||||
boneyard();
|
||||
dome();
|
||||
impact();
|
||||
behemoth();
|
||||
battery();
|
||||
favela();
|
||||
pirate();
|
||||
zulu();
|
||||
dig();
|
||||
shipment();
|
||||
conflict();
|
||||
zerosub();
|
||||
mine();
|
||||
}
|
||||
}
|
||||
|
||||
generic_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_doorway_generic", "doorway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_window_generic", "window_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_1stfloor_generic", "1stfloor_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_1stfloor_doorway", "1stfloor_doorway" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_1stfloor_window", "1stfloor_window" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_2ndfloor_generic", "2ndfloor_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_2ndfloor_window", "2ndfloor_window" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_rooftop", "rooftop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_generic_2ndfloor_balcony", "2ndfloor_balcony" );
|
||||
}
|
||||
|
||||
blackice_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_airconditioner_generic", "airconditioner_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_crate_ammo", "crate_ammo" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_bar_generic", "bar_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_barrels_generic", "barrels_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_bookshelf_generic", "bookshelf_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_bridge_generic", "bridge_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_cart_generic", "cart_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_couch_generic", "couch_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_crates_generic", "crates_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_engine_left", "engine_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_engine_right", "engine_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_fence_generic", "fence_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_forklift_generic", "forklift_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_generator_generic", "generator_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_loadingbay_generic", "loadingbay_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_pipes_generic", "pipes_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_platform_generic", "platform_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_pooltable_generic", "pooltable_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_porch_generic", "porch_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_ramp_generic", "ramp_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_building_red", "building_red" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_snowbank_generic", "snowbank_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_snowmobile_generic", "snowmobile_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_tank_generic", "tank_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_tent_generic", "tent_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_tires_generic", "tires_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_catwalk_upper", "catwalk_upper" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_blackice_deck_upper", "deck_upper" );
|
||||
}
|
||||
|
||||
carrier_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_plane_jet", "plane_jet" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_plane_f18", "plane_f18" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_towcart_generic", "towcart_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_forklift_generic", "forklift_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_ohelo_osprey", "ohelo_osprey" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_plane_generic", "plane_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_deck_outer", "deck_outer" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_carrier_railing_generic", "railing_generic" );
|
||||
}
|
||||
|
||||
clockwork_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_pillar_generic", "pillar_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_pool_generic", "pool_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_tram_generic", "tram_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_platform_generic", "platform_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_platform_left", "platform_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_platform_right", "platform_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_stairs_left", "stairs_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_stairs_generic", "stairs_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_stairs_right", "stairs_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_walkway_generic", "walkway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_walkway_left", "walkway_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_walkway_right", "walkway_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_ramp_main", "ramp_main" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_catwalk_generic", "catwalk_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_clockwork_pool_below", "pool_below" );
|
||||
}
|
||||
|
||||
cornered_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_balcony_generic", "balcony_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_windows_generic", "windows_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_planter_generic", "planter_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_wall_back", "wall_back" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_tree_generic", "tree_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_rocks_generic", "rocks_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_cornered_aquarium_generic", "aquarium_generic" );
|
||||
}
|
||||
|
||||
enemyhq_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_conession_generic", "conession_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_counter_burgertown", "counter_burgertown" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_concession_nate", "concession_nate" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_stairs_top", "stairs_top" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_walkway_generic", "walkway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_rubble_pile", "rubble_pile" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_statue_generic", "statue_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_counter_generic", "counter_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_pillar_generic", "pillar_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_enemyhq_cart_trash", "cart_trash" );
|
||||
}
|
||||
|
||||
factory_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_lockerroom_generic", "lockerroom_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_server_generic", "server_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_secondfloor_generic", "secondfloor_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_catwalk_generic", "catwalk_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_acunit_generic", "acunit_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_factory_airduct_generic", "airduct_generic" );
|
||||
}
|
||||
|
||||
flood_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_tank_generic", "tank_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_barrier_hesco", "barrier_hesco" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_planter_generic", "planter_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_pillar_generic", "pillar_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_truck_generic", "truck_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_crates_generic", "crates_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_duct_air", "duct_air" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_unit_ac", "unit_ac" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_walkway_generic", "walkway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_pit_rubble", "pit_rubble" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_car_generic", "car_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_flood_van_generic", "van_generic" );
|
||||
}
|
||||
|
||||
homecoming_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_crate_ammo", "crate_ammo" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_barrier_hesco", "barrier_hesco" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_shack_blue", "shack_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_barrier_concrete", "barrier_concrete" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_statue_artemis", "statue_artemis" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_barrels_generic", "barrels_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_crate_generic", "crate_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_bulldozer_geenric", "bulldozer_geenric" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_towers_hesco", "towers_hesco" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_sandbags_generic", "sandbags_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_homecoming_pillar_generic", "pillar_generic" );
|
||||
}
|
||||
|
||||
jungleghosts_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_rocks_generic", "rocks_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_bridge_generic", "bridge_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_fern_generic", "fern_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_stream_generic", "stream_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_log_generic", "log_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_rock_generic", "rock_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_stump_generic", "stump_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_jungleghosts_tree_generic", "tree_generic" );
|
||||
}
|
||||
|
||||
nml_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_dirt_generic", "dirt_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_trailer_generic", "trailer_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_building_blue", "building_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_bridge_generic", "bridge_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_garage_generic", "garage_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_nml_sandbags_generic", "sandbags_generic" );
|
||||
}
|
||||
|
||||
oilrocks_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_garage_generic", "garage_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_rooftop_generic", "rooftop_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_catwalk_generic", "catwalk_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_trailer_generic", "trailer_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_stairway_generic", "stairway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_barrels_generic", "barrels_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_crate_generic", "crate_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_can_trash", "can_trash" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_roadblock_generic", "roadblock_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_pillar_generic", "pillar_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_hallway_generic", "hallway_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_forklift_generic", "forklift_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_oilrocks_can_oxygen", "can_oxygen" );
|
||||
}
|
||||
|
||||
vegas_locations()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_planter_generic", "planter_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_fountain_generic", "fountain_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_kiosk_generic", "kiosk_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_slotmachines_generic", "slotmachines_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_rubble_generic", "rubble_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_pokertable_generic", "pokertable_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_debris_generic", "debris_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_escalator_generic", "escalator_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_couch_generic", "couch_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_statue_generic", "statue_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_statue_left", "statue_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_statue_right", "statue_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_tram_generic", "tram_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_wall_left", "wall_left" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_wall_right", "wall_right" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_tree_generic", "tree_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_car_police", "car_police" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_car_taxi", "car_taxi" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_vegas_car_generic", "car_generic" );
|
||||
}
|
||||
|
||||
prisonbreak()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_ridge", "ridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_constructionyard", "constructionyard" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_guardtower_generic", "guardtower_generic" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_guardtower_2ndfloor", "guardtower_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_pipes_blue", "pipes_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_securitystation", "securitystation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_trailer_red", "trailer_red" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_trailer_blue", "trailer_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_road", "road" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_river", "river" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_loggingcamp", "loggingcamp" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_catwalk", "catwalk" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_logstack", "logstack" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_tirestack", "tirestack" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_loggingtruck", "loggingtruck" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_prisonbreak_bridge", "bridge" );
|
||||
}
|
||||
|
||||
chasm()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_garage_parking", "garage_parking" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_cubicles", "cubicles" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_kitchen", "kitchen" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_elevator", "elevator" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_stairway", "stairway" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_skybridge", "skybridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_diner", "diner" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_road_main", "road_main" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_rubble_pit", "rubble_pit" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_restaurant", "restaurant" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_hotel", "hotel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_bar_hotel", "bar_hotel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_underground", "underground" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_subway", "subway" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_chasm_waterpump", "waterpump" );
|
||||
}
|
||||
|
||||
dart()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_gasstation", "gasstation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_autoshop_2ndfloor", "autoshop_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_autoshop", "autoshop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_pinkeez", "pinkeez" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_pinkeez_2ndfloor", "pinkeez_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_alley_stripclub", "alley_stripclub" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_pawnshop", "pawnshop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_shed_blue", "shed_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_motel", "motel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_bus_stripclub", "bus_stripclub" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_bus_motel", "bus_motel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_diner", "diner" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_alley_convenience", "alley_convenience" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_intersection", "intersection" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_tank_gasstation", "tank_gasstation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dart_tank_motel", "tank_motel" );
|
||||
}
|
||||
|
||||
farenheit()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_road_main", "road_main" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_library", "library" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_grass_tall", "grass_tall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_monument", "monument" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_trailer_red", "trailer_red" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_restaurant", "restaurant" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_underground", "underground" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_garage_parking", "garage_parking" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_bar", "bar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_escalators", "escalators" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_bridge", "bridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_bridge_under", "bridge_under" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_farenheit_reception", "reception" );
|
||||
}
|
||||
|
||||
flooded()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_garage_lower", "garage_lower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_garage_upper", "garage_upper" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_courtyard", "courtyard" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_patio", "patio" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_restaurant", "restaurant" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_bar", "bar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_kitchen", "kitchen" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_skybridge", "skybridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_storage_downstairs", "storage_downstairs" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_building_office", "building_office" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_breakroom", "breakroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_lobby", "lobby" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_flooded_newsstation", "newsstation" );
|
||||
}
|
||||
|
||||
frag()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_lumberyard", "lumberyard" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_containers", "containers" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_traintracks", "traintracks" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_distillery", "distillery" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_distillery_south", "distillery_south" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_distillery_north", "distillery_north" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_distillery_2ndfloor", "distillery_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_sign_porter", "sign_porter" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_owens", "owens" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_owens_2ndfloor", "owens_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_owens_3rdfloor", "owens_3rdfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_pipes_high", "pipes_high" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_junkyard", "junkyard" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_warehouse", "warehouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_warehouse_2ndfloor", "warehouse_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_warehouse_3rdfloor", "warehouse_3rdfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_roof_broken", "roof_broken" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_wall_broken", "wall_broken" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_dumpster_blue", "dumpster_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_dumpster_red", "dumpster_red" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_fence_metal", "fence_metal" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_frag_window_broken", "window_broken" );
|
||||
}
|
||||
|
||||
hashima()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_playground", "playground" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_hangar", "hangar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_sam", "sam" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_mine", "mine" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_controlroom", "controlroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_traintracks", "traintracks" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_waterfall", "waterfall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_docks", "docks" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_basement", "basement" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_tower_water", "tower_water" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_tower", "tower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_building_redbrick", "building_redbrick" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_building_redbrick_2ndflr", "building_redbrick_2ndflr" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_apartment", "apartment" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_hashima_apartment_2ndfloor", "apartment_2ndfloor" );
|
||||
}
|
||||
|
||||
lonestar()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_helicopter_crashed", "helicopter_crashed" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_tent_fema", "tent_fema" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_carwash", "carwash" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_gasmain", "gasmain" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_kiosk", "kiosk" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_parking_garage", "parking_garage" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_burned_building", "burned_building" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_gasstation", "gasstation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_rehab", "rehab" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_rehab_roof", "rehab_roof" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_skybridge", "skybridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_office_1stfloor", "office_1stfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_office_2ndfloor", "office_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_office_roof", "office_roof" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_ambulance_service_1stfloor", "ambulance_service_1stfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_ambulance_service_2ndfloor", "ambulance_service_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_hospital_collapsed", "hospital_collapsed" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_solarpanels", "solarpanels" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_lonestar_garage_blue", "garage_blue" );
|
||||
}
|
||||
|
||||
skeleton()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_skeleton_castle", "castle" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_skeleton_mansion", "mansion" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_skeleton_well", "well" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_skeleton_hill", "hill" );
|
||||
}
|
||||
|
||||
snow()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_crashsite", "crashsite" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_canyon", "canyon" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_sawmill", "sawmill" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_waterwheel", "waterwheel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_helicopter", "helicopter" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_shipwreck", "shipwreck" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_shipwreck_bow", "shipwreck_bow" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_ridge", "ridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_road_main", "road_main" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_totempole", "totempole" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_cabin", "cabin" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_boathouse", "boathouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_snow_dock_fishing", "dock_fishing" );
|
||||
}
|
||||
|
||||
sovereign()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_catwalk_blue", "catwalk_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_catwalk_yellow", "catwalk_yellow" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_centralcommand", "centralcommand" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_cleanroom", "cleanroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_warehouse", "warehouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_hologram", "hologram" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_assemblyline", "assemblyline" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_commanddeck", "commanddeck" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_serverroom", "serverroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_breakroom", "breakroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_shaft", "shaft" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_research", "research" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_office_2ndfloor", "office_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_warehouse_2ndfloor", "warehouse_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_crate", "crate" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_sovereign_halogen", "halogen" );
|
||||
}
|
||||
|
||||
strikezone()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_bar", "bar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_bar_behind", "bar_behind" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_backentrance", "backentrance" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_Ronnies_01", "Ronnies_01" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_proshop", "proshop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_statue", "statue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_skywalk", "skywalk" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_concessions", "concessions" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_atrium", "atrium" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_concourse_upper", "concourse_upper" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_strikezone_concourse_lower", "concourse_lower" );
|
||||
}
|
||||
|
||||
warhawk()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_ambulancebay", "ambulancebay" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_bar", "bar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_bakery", "bakery" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_loadingdock", "loadingdock" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_granary", "granary" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_icecream", "icecream" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_apartment", "apartment" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_loft", "loft" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_cityhall", "cityhall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_postoffice", "postoffice" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_alley_fence", "alley_fence" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_backlot", "backlot" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_carport", "carport" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_hardwarestore", "hardwarestore" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_drugstore", "drugstore" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_trailer", "trailer" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_watertower", "watertower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_warhawk_repairshop", "repairshop" );
|
||||
}
|
||||
|
||||
zebra()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_sciencelab", "sciencelab" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_radiostation", "radiostation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_hangar", "hangar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_guardtower", "guardtower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_bunker", "bunker" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_solarpanels", "solarpanels" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zebra_hill", "hill" );
|
||||
}
|
||||
|
||||
red_river()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_church", "church" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_church_tower", "church_tower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_pooltables", "pooltables" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_bar_inside", "bar_inside" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_autoshop_near", "autoshop_near" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_autoshop_2ndfloor", "autoshop_2ndfloor_dlc1" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_grocery", "grocery" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_roof_bar", "roof_bar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_red_river_parkinglot", "parkinglot" );
|
||||
}
|
||||
|
||||
rumble()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_giftshop", "giftshop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_coffeeshop", "coffeeshop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_coffeeshop_2ndfloor", "coffeeshop_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_lighthouse", "lighthouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_lighthouse_roof", "lighthouse_roof" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_pier_north", "pier_north" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_pier_south", "pier_south" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_aquarium", "aquarium" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_fishtank", "fishtank" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_infocenter", "infocenter" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_museum", "museum" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_fountain", "fountain" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_bakery_near", "bakery_near" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_rumble_cablecar", "cablecar" );
|
||||
}
|
||||
|
||||
swamp()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_campsite", "campsite" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_ruinedhouse", "ruinedhouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_hovercraft", "hovercraft" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_cave", "cave" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_granary", "granary_dlc1" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_granary_2ndfloor", "granary_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_treeroots", "treeroots" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_camper", "camper" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_camper_2ndfloor", "camper_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_backshed", "backshed" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_marina", "marina" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_swamp_gaspumps", "gaspumps" );
|
||||
}
|
||||
|
||||
dome()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_digger", "digger" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_dig_site", "dig_site" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_crane", "crane" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_meteor", "meteor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_commandcenter", "commandcenter" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_lockerroom", "lockerroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_fabrictunnel", "fabrictunnel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_spotlight", "spotlight" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dome_scaffolding", "scaffolding" );
|
||||
}
|
||||
|
||||
boneyard()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_launchpad", "launchpad" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_missioncontrol", "missioncontrol" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_missioncontrol_2ndfloor", "missioncontrol_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_countdown", "countdown" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_fueltank_large", "fueltank_large" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_crawler", "crawler" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_crawler_2ndfloor", "crawler_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_crawler_3rdfloor", "crawler_3rdfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_testplatform", "testplatform" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_boneyard_rockettest", "rockettest" );
|
||||
}
|
||||
|
||||
impact()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_bunkroom", "bunkroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_kitchen", "kitchen2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_breakroom", "breakroom2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_bridge", "bridge2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_infirmary", "infirmary" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_crane", "crane2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_bridge_under", "bridge_under2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_lowerhold", "lowerhold" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_bathroom", "bathroom2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_portside", "portside" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_starboardside", "starboardside" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_impact_bridge_brooklyn", "bridge_brooklyn" );
|
||||
}
|
||||
|
||||
behemoth()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_controltower", "controltower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_commandroom", "commandroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_conveyor_upper", "conveyor_upper" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_conveyor_lower", "conveyor_lower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_breakroom", "breakroom2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_engineroom", "engineroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_fueltank", "fueltank" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_cargocrates", "cargocrates" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_bucketwheel", "bucketwheel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_conveyorcontrol", "conveyorcontrol" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_doghouse", "doghouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_generators", "generators" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_turntable_west", "turntable_west" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_turntable_east", "turntable_east" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_side_north", "side_north" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_behemoth_side_south", "side_south" );
|
||||
}
|
||||
|
||||
battery()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_scaffolding", "scaffolding2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_sundial", "sundial" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_statue", "statue2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_stonehead", "stonehead" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_truck", "truck" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_tower", "tower2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_courtyard", "courtyard2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_pyramid", "pyramid" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_crypt", "crypt" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_altar", "altar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_bridge", "bridge2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_aqueduct", "aqueduct" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_waterfall", "waterfall2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_bathhouse", "bathhouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_fountain", "fountain2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_woods", "woods" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_cliff", "cliff" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_tunnels", "tunnels" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_trophyroom", "trophyroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_battery_armory", "armory" );
|
||||
}
|
||||
|
||||
favela()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_barber_shop", "barber_shop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_bus_stop", "bus_stop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_graveyard", "graveyard" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_bar2", "bar2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_bar_rooftop", "bar_rooftop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_soccer_field", "soccer_field" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_playground2", "playground2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_icecream_shop", "icecream_shop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_icecream_shop_2ndfloor", "icecream_shop_2ndfloor" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_market", "market" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_market_rooftop", "market_rooftop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_rooftop_garden", "rooftop_garden" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_sodashop", "sodashop" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_safe_house", "safe_house" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_shanties", "shanties" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_dump_site", "dump_site" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_checkpoint", "checkpoint" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_abandoned_apartments", "abandoned_apartments" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_greenapartment", "greenapartment" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_favela_greenapartment_roof", "greenapartment_roof" );
|
||||
}
|
||||
|
||||
dig()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_shrine", "shrine" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_kingstomb", "kingstomb" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_balcony", "balcony" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_mummytomb", "mummytomb" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_anubishall", "anubishall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_digsite", "digsite" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_platform", "platform" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_dogstatues", "dogstatues" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_courtyard3", "courtyard3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_pharaohsgate", "pharaohsgate" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_burialchamber", "burialchamber" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_sphinxhead", "sphinxhead" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_queenstomb", "queenstomb" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_treasureroom", "treasureroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_heiroglyphhall", "heiroglyphhall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_dig_oasis", "oasis" );
|
||||
}
|
||||
|
||||
pirate()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_overlook", "overlook" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_captainsquarters", "captainsquarters" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_shipprow", "shipprow" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_tavern", "tavern" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_cellar", "cellar" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_drawbridge", "drawbridge" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_inn", "inn" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_voodoohouse", "voodoohouse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_courtyard3", "courtyard3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_prisoncells", "prisoncells" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_undertakers", "undertakers" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_gallows", "gallows" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_brothel", "brothel" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_loadingdock2", "loadingdock2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_pirate_watchtower", "watchtower" );
|
||||
}
|
||||
|
||||
zulu()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_cemetery", "cemetery" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_statue3", "statue3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_market", "market" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_apartments", "apartments" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_bar2", "bar2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_church2", "church2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_tire_stack", "tire_stack" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_loading_dock", "loading_dock" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_float", "float" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_scaffolding3", "scaffolding3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_hotel2", "hotel2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_florist", "florist" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_hearse", "hearse" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zulu_butcher", "butcher" );
|
||||
}
|
||||
|
||||
shipment()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_winnersstage", "winnersstage" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_broadcasterbooth", "broadcasterbooth" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_armory", "armory" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_bettingwindow", "bettingwindow" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_arena_red", "arena_red" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_arena_blue", "arena_blue" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_puzzlebox", "puzzlebox" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_walkoffame", "walkoffame" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_walkoffame_near", "walkoffame_near" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_tower", "tower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_display", "display" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_car_green", "car_green" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_shipment_car_yellow", "car_yellow" );
|
||||
}
|
||||
|
||||
conflict()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_market_old", "market_old" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_market_new", "market_new" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_market_east", "market_east" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_market_west", "market_west" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_communityhall", "communityhall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_fishingpier", "fishingpier" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_dock", "dock" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_waterside", "waterside" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_cliffside", "cliffside" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_garden", "garden" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_temple", "temple" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_mansion2", "mansion2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_fishinghuts", "fishinghuts" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_alley", "alley" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_dragonstatues", "dragonstatues" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_restaurant2", "restaurant2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_kitchen3", "kitchen3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_dojo", "dojo" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_conflict_greenhouse", "greenhouse" );
|
||||
}
|
||||
|
||||
mine()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_train", "train" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_trainstation", "trainstation" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_watertower2", "watertower2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_platform", "platform" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_elevator2", "elevator2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_refinery", "refinery" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_cliffs", "cliffs" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_mine2", "mine2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_refinerystairs", "refinerystairs" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_waterfall3", "waterfall3" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_staircase", "staircase" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_tunnels2", "tunnels2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_hotsprings", "hotsprings" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_car_rusty", "car_rusty" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_mine_redbuilding", "redbuilding" );
|
||||
}
|
||||
|
||||
zerosub()
|
||||
{
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_vents", "vents" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_missilefactory", "missilefactory" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_offices", "offices" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_hallway", "hallway" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_controlroom2", "controlroom2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_messhall", "messhall" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_hockeyrink", "hockeyrink" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_missilestorage", "missilestorage" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_snowbank", "snowbank" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_utilityroom", "utilityroom" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_lab", "lab" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_tent", "tent" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_submarine", "submarine" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_securitytower", "securitytower" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_crane2", "crane2" );
|
||||
add_bcs_location_mapping( "trigger_multiple_bcs_mp_zerosub_fueltank2", "fueltank2" );
|
||||
}
|
2232
common_scripts/_createfx.gsc
Normal file
2232
common_scripts/_createfx.gsc
Normal file
File diff suppressed because it is too large
Load Diff
702
common_scripts/_createfxmenu.gsc
Normal file
702
common_scripts/_createfxmenu.gsc
Normal file
@ -0,0 +1,702 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
init_menu()
|
||||
{
|
||||
level._createfx.options = [];
|
||||
addoption( "string", "fxid", "FX id", "nil", "fx" );
|
||||
addoption( "float", "delay", "Repeat rate/start delay", 0.5, "fx" );
|
||||
addoption( "string", "flag", "Flag", "nil", "exploder" );
|
||||
|
||||
if ( !level.mp_createfx )
|
||||
{
|
||||
addoption( "string", "firefx", "2nd FX id", "nil", "exploder" );
|
||||
addoption( "float", "firefxdelay", "2nd FX id repeat rate", 0.5, "exploder" );
|
||||
addoption( "float", "firefxtimeout", "2nd FX timeout", 5, "exploder" );
|
||||
addoption( "string", "firefxsound", "2nd FX soundalias", "nil", "exploder" );
|
||||
addoption( "float", "damage", "Radius damage", 150, "exploder" );
|
||||
addoption( "float", "damage_radius", "Radius of radius damage", 250, "exploder" );
|
||||
addoption( "string", "earthquake", "Earthquake", "nil", "exploder" );
|
||||
addoption( "string", "ender", "Level notify for ending 2nd FX", "nil", "exploder" );
|
||||
}
|
||||
|
||||
addoption( "float", "delay_min", "Minimimum time between repeats", 1, "soundfx_interval" );
|
||||
addoption( "float", "delay_max", "Maximum time between repeats", 2, "soundfx_interval" );
|
||||
addoption( "int", "repeat", "Number of times to repeat", 5, "exploder" );
|
||||
addoption( "string", "exploder", "Exploder", "1", "exploder" );
|
||||
addoption( "string", "soundalias", "Soundalias", "nil", "all" );
|
||||
addoption( "string", "loopsound", "Loopsound", "nil", "exploder" );
|
||||
addoption( "int", "reactive_radius", "Reactive Radius", 100, "reactive_fx", ::input_reactive_radius );
|
||||
|
||||
if ( !level.mp_createfx )
|
||||
{
|
||||
addoption( "string", "rumble", "Rumble", "nil", "exploder" );
|
||||
addoption( "int", "stoppable", "Can be stopped from script", "1", "all" );
|
||||
}
|
||||
|
||||
level.effect_list_offset = 0;
|
||||
level.effect_list_offset_max = 10;
|
||||
level.createfxmasks = [];
|
||||
level.createfxmasks["all"] = [];
|
||||
level.createfxmasks["all"]["exploder"] = 1;
|
||||
level.createfxmasks["all"]["oneshotfx"] = 1;
|
||||
level.createfxmasks["all"]["loopfx"] = 1;
|
||||
level.createfxmasks["all"]["soundfx"] = 1;
|
||||
level.createfxmasks["all"]["soundfx_interval"] = 1;
|
||||
level.createfxmasks["all"]["reactive_fx"] = 1;
|
||||
level.createfxmasks["fx"] = [];
|
||||
level.createfxmasks["fx"]["exploder"] = 1;
|
||||
level.createfxmasks["fx"]["oneshotfx"] = 1;
|
||||
level.createfxmasks["fx"]["loopfx"] = 1;
|
||||
level.createfxmasks["exploder"] = [];
|
||||
level.createfxmasks["exploder"]["exploder"] = 1;
|
||||
level.createfxmasks["loopfx"] = [];
|
||||
level.createfxmasks["loopfx"]["loopfx"] = 1;
|
||||
level.createfxmasks["oneshotfx"] = [];
|
||||
level.createfxmasks["oneshotfx"]["oneshotfx"] = 1;
|
||||
level.createfxmasks["soundfx"] = [];
|
||||
level.createfxmasks["soundfx"]["soundalias"] = 1;
|
||||
level.createfxmasks["soundfx_interval"] = [];
|
||||
level.createfxmasks["soundfx_interval"]["soundfx_interval"] = 1;
|
||||
level.createfxmasks["reactive_fx"] = [];
|
||||
level.createfxmasks["reactive_fx"]["reactive_fx"] = 1;
|
||||
var_0 = [];
|
||||
var_0["creation"] = ::menu_create_select;
|
||||
var_0["create_oneshot"] = ::menu_create;
|
||||
var_0["create_loopfx"] = ::menu_create;
|
||||
var_0["change_fxid"] = ::menu_create;
|
||||
var_0["none"] = ::menu_none;
|
||||
var_0["add_options"] = ::menu_add_options;
|
||||
var_0["select_by_name"] = ::menu_select_by_name;
|
||||
level._createfx.menus = var_0;
|
||||
}
|
||||
|
||||
menu( var_0 )
|
||||
{
|
||||
return level.create_fx_menu == var_0;
|
||||
}
|
||||
|
||||
setmenu( var_0 )
|
||||
{
|
||||
level.create_fx_menu = var_0;
|
||||
}
|
||||
|
||||
create_fx_menu()
|
||||
{
|
||||
if ( common_scripts\_createfx::button_is_clicked( "escape", "x" ) )
|
||||
{
|
||||
_exit_menu();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( isdefined( level._createfx.menus[level.create_fx_menu] ) )
|
||||
[[ level._createfx.menus[level.create_fx_menu] ]]();
|
||||
}
|
||||
|
||||
menu_create_select()
|
||||
{
|
||||
if ( common_scripts\_createfx::button_is_clicked( "1" ) )
|
||||
{
|
||||
setmenu( "create_oneshot" );
|
||||
draw_effects_list();
|
||||
return;
|
||||
}
|
||||
else if ( common_scripts\_createfx::button_is_clicked( "2" ) )
|
||||
{
|
||||
setmenu( "create_loopsound" );
|
||||
var_0 = common_scripts\_createfx::createloopsound();
|
||||
finish_creating_entity( var_0 );
|
||||
return;
|
||||
}
|
||||
else if ( common_scripts\_createfx::button_is_clicked( "3" ) )
|
||||
{
|
||||
setmenu( "create_exploder" );
|
||||
var_0 = common_scripts\_createfx::createnewexploder();
|
||||
finish_creating_entity( var_0 );
|
||||
return;
|
||||
}
|
||||
else if ( common_scripts\_createfx::button_is_clicked( "4" ) )
|
||||
{
|
||||
setmenu( "create_interval_sound" );
|
||||
var_0 = common_scripts\_createfx::createintervalsound();
|
||||
finish_creating_entity( var_0 );
|
||||
return;
|
||||
}
|
||||
else if ( common_scripts\_createfx::button_is_clicked( "5" ) )
|
||||
{
|
||||
var_0 = common_scripts\_createfx::createreactiveent();
|
||||
finish_creating_entity( var_0 );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
menu_create()
|
||||
{
|
||||
if ( next_button() )
|
||||
{
|
||||
increment_list_offset();
|
||||
draw_effects_list();
|
||||
}
|
||||
else if ( previous_button() )
|
||||
{
|
||||
decrement_list_offset();
|
||||
draw_effects_list();
|
||||
}
|
||||
|
||||
menu_fx_creation();
|
||||
}
|
||||
|
||||
menu_none()
|
||||
{
|
||||
if ( common_scripts\_createfx::button_is_clicked( "m" ) )
|
||||
increment_list_offset();
|
||||
|
||||
menu_change_selected_fx();
|
||||
|
||||
if ( entities_are_selected() )
|
||||
{
|
||||
var_0 = get_last_selected_ent();
|
||||
|
||||
if ( !isdefined( level.last_displayed_ent ) || var_0 != level.last_displayed_ent )
|
||||
{
|
||||
display_fx_info( var_0 );
|
||||
level.last_displayed_ent = var_0;
|
||||
}
|
||||
|
||||
if ( common_scripts\_createfx::button_is_clicked( "a" ) )
|
||||
{
|
||||
common_scripts\_createfx::clear_settable_fx();
|
||||
setmenu( "add_options" );
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
level.last_displayed_ent = undefined;
|
||||
}
|
||||
|
||||
menu_add_options()
|
||||
{
|
||||
if ( !entities_are_selected() )
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu( "none" );
|
||||
return;
|
||||
}
|
||||
|
||||
display_fx_add_options( get_last_selected_ent() );
|
||||
|
||||
if ( next_button() )
|
||||
increment_list_offset();
|
||||
}
|
||||
|
||||
menu_select_by_name()
|
||||
{
|
||||
if ( next_button() )
|
||||
{
|
||||
increment_list_offset();
|
||||
draw_effects_list( "Select by name" );
|
||||
}
|
||||
else if ( previous_button() )
|
||||
{
|
||||
decrement_list_offset();
|
||||
draw_effects_list( "Select by name" );
|
||||
}
|
||||
|
||||
select_by_name();
|
||||
}
|
||||
|
||||
next_button()
|
||||
{
|
||||
return common_scripts\_createfx::button_is_clicked( "rightarrow" );
|
||||
}
|
||||
|
||||
previous_button()
|
||||
{
|
||||
return common_scripts\_createfx::button_is_clicked( "leftarrow" );
|
||||
}
|
||||
|
||||
_exit_menu()
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::clear_entity_selection();
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
setmenu( "none" );
|
||||
}
|
||||
|
||||
menu_fx_creation()
|
||||
{
|
||||
var_0 = 0;
|
||||
var_1 = undefined;
|
||||
var_2 = common_scripts\_createfx::func_get_level_fx();
|
||||
|
||||
for ( var_3 = level.effect_list_offset; var_3 < var_2.size; var_3++ )
|
||||
{
|
||||
var_0 = var_0 + 1;
|
||||
var_4 = var_0;
|
||||
|
||||
if ( var_4 == 10 )
|
||||
var_4 = 0;
|
||||
|
||||
if ( common_scripts\_createfx::button_is_clicked( var_4 + "" ) )
|
||||
{
|
||||
var_1 = var_2[var_3];
|
||||
break;
|
||||
}
|
||||
|
||||
if ( var_0 > level.effect_list_offset_max )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
return;
|
||||
|
||||
if ( menu( "change_fxid" ) )
|
||||
{
|
||||
apply_option_to_selected_fx( get_option( "fxid" ), var_1 );
|
||||
level.effect_list_offset = 0;
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu( "none" );
|
||||
return;
|
||||
}
|
||||
|
||||
var_5 = undefined;
|
||||
|
||||
if ( menu( "create_loopfx" ) )
|
||||
var_5 = common_scripts\utility::createloopeffect( var_1 );
|
||||
|
||||
if ( menu( "create_oneshot" ) )
|
||||
var_5 = common_scripts\utility::createoneshoteffect( var_1 );
|
||||
|
||||
finish_creating_entity( var_5 );
|
||||
}
|
||||
|
||||
finish_creating_entity( var_0 )
|
||||
{
|
||||
var_0.v["angles"] = vectortoangles( var_0.v["origin"] + ( 0, 0, 100 ) - var_0.v["origin"] );
|
||||
var_0 common_scripts\_createfx::post_entity_creation_function();
|
||||
common_scripts\_createfx::clear_entity_selection();
|
||||
common_scripts\_createfx::select_last_entity();
|
||||
common_scripts\_createfx::move_selection_to_cursor();
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
setmenu( "none" );
|
||||
}
|
||||
|
||||
entities_are_selected()
|
||||
{
|
||||
return level._createfx.selected_fx_ents.size > 0;
|
||||
}
|
||||
|
||||
menu_change_selected_fx()
|
||||
{
|
||||
if ( !level._createfx.selected_fx_ents.size )
|
||||
return;
|
||||
|
||||
var_0 = 0;
|
||||
var_1 = 0;
|
||||
var_2 = get_last_selected_ent();
|
||||
|
||||
for ( var_3 = 0; var_3 < level._createfx.options.size; var_3++ )
|
||||
{
|
||||
var_4 = level._createfx.options[var_3];
|
||||
|
||||
if ( !isdefined( var_2.v[var_4["name"]] ) )
|
||||
continue;
|
||||
|
||||
var_0++;
|
||||
|
||||
if ( var_0 < level.effect_list_offset )
|
||||
continue;
|
||||
|
||||
var_1++;
|
||||
var_5 = var_1;
|
||||
|
||||
if ( var_5 == 10 )
|
||||
var_5 = 0;
|
||||
|
||||
if ( common_scripts\_createfx::button_is_clicked( var_5 + "" ) )
|
||||
{
|
||||
prepare_option_for_change( var_4, var_1 );
|
||||
break;
|
||||
}
|
||||
|
||||
if ( var_1 > level.effect_list_offset_max )
|
||||
{
|
||||
var_6 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prepare_option_for_change( var_0, var_1 )
|
||||
{
|
||||
if ( var_0["name"] == "fxid" )
|
||||
{
|
||||
setmenu( "change_fxid" );
|
||||
draw_effects_list();
|
||||
return;
|
||||
}
|
||||
|
||||
level.createfx_inputlocked = 1;
|
||||
level._createfx.hudelems[var_1 + 3][0].color = ( 1, 1, 0 );
|
||||
|
||||
if ( isdefined( var_0["input_func"] ) )
|
||||
thread [[ var_0["input_func"] ]]( var_1 + 3 );
|
||||
else
|
||||
common_scripts\_createfx::createfx_centerprint( "To change " + var_0["description"] + " on selected entities, type /fx newvalue" );
|
||||
|
||||
set_option_index( var_0["name"] );
|
||||
setdvar( "fx", "nil" );
|
||||
}
|
||||
|
||||
menu_fx_option_set()
|
||||
{
|
||||
if ( getdvar( "fx" ) == "nil" )
|
||||
return;
|
||||
|
||||
var_0 = get_selected_option();
|
||||
var_1 = undefined;
|
||||
|
||||
if ( var_0["type"] == "string" )
|
||||
var_1 = getdvar( "fx" );
|
||||
|
||||
if ( var_0["type"] == "int" )
|
||||
var_1 = getdvarint( "fx" );
|
||||
|
||||
if ( var_0["type"] == "float" )
|
||||
var_1 = getdvarfloat( "fx" );
|
||||
|
||||
apply_option_to_selected_fx( var_0, var_1 );
|
||||
}
|
||||
|
||||
apply_option_to_selected_fx( var_0, var_1 )
|
||||
{
|
||||
for ( var_2 = 0; var_2 < level._createfx.selected_fx_ents.size; var_2++ )
|
||||
{
|
||||
var_3 = level._createfx.selected_fx_ents[var_2];
|
||||
|
||||
if ( mask( var_0["mask"], var_3.v["type"] ) )
|
||||
var_3.v[var_0["name"]] = var_1;
|
||||
}
|
||||
|
||||
level.last_displayed_ent = undefined;
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
common_scripts\_createfx::clear_settable_fx();
|
||||
}
|
||||
|
||||
set_option_index( var_0 )
|
||||
{
|
||||
for ( var_1 = 0; var_1 < level._createfx.options.size; var_1++ )
|
||||
{
|
||||
if ( level._createfx.options[var_1]["name"] != var_0 )
|
||||
continue;
|
||||
|
||||
level._createfx.selected_fx_option_index = var_1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
get_selected_option()
|
||||
{
|
||||
return level._createfx.options[level._createfx.selected_fx_option_index];
|
||||
}
|
||||
|
||||
mask( var_0, var_1 )
|
||||
{
|
||||
return isdefined( level.createfxmasks[var_0][var_1] );
|
||||
}
|
||||
|
||||
addoption( var_0, var_1, var_2, var_3, var_4, var_5 )
|
||||
{
|
||||
var_6 = [];
|
||||
var_6["type"] = var_0;
|
||||
var_6["name"] = var_1;
|
||||
var_6["description"] = var_2;
|
||||
var_6["default"] = var_3;
|
||||
var_6["mask"] = var_4;
|
||||
|
||||
if ( isdefined( var_5 ) )
|
||||
var_6["input_func"] = var_5;
|
||||
|
||||
level._createfx.options[level._createfx.options.size] = var_6;
|
||||
}
|
||||
|
||||
get_option( var_0 )
|
||||
{
|
||||
for ( var_1 = 0; var_1 < level._createfx.options.size; var_1++ )
|
||||
{
|
||||
if ( level._createfx.options[var_1]["name"] == var_0 )
|
||||
return level._createfx.options[var_1];
|
||||
}
|
||||
}
|
||||
|
||||
input_reactive_radius( var_0 )
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( level.player buttonpressed( "escape" ) || level.player buttonpressed( "x" ) )
|
||||
break;
|
||||
|
||||
var_1 = 0;
|
||||
|
||||
if ( level.player buttonpressed( "-" ) )
|
||||
var_1 = -10;
|
||||
else if ( level.player buttonpressed( "=" ) )
|
||||
var_1 = 10;
|
||||
|
||||
if ( var_1 != 0 )
|
||||
{
|
||||
foreach ( var_3 in level._createfx.selected_fx_ents )
|
||||
{
|
||||
if ( isdefined( var_3.v["reactive_radius"] ) )
|
||||
{
|
||||
var_3.v["reactive_radius"] = var_3.v["reactive_radius"] + var_1;
|
||||
var_3.v["reactive_radius"] = clamp( var_3.v["reactive_radius"], 10, 1000 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
level.last_displayed_ent = undefined;
|
||||
common_scripts\_createfx::update_selected_entities();
|
||||
common_scripts\_createfx::clear_settable_fx();
|
||||
}
|
||||
|
||||
display_fx_add_options( var_0 )
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::set_fx_hudelement( "Name: " + var_0.v["fxid"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Type: " + var_0.v["type"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Origin: " + var_0.v["origin"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Angles: " + var_0.v["angles"] );
|
||||
var_1 = 0;
|
||||
var_2 = 0;
|
||||
var_3 = 0;
|
||||
|
||||
if ( level.effect_list_offset >= level._createfx.options.size )
|
||||
level.effect_list_offset = 0;
|
||||
|
||||
for ( var_4 = 0; var_4 < level._createfx.options.size; var_4++ )
|
||||
{
|
||||
var_5 = level._createfx.options[var_4];
|
||||
|
||||
if ( isdefined( var_0.v[var_5["name"]] ) )
|
||||
continue;
|
||||
|
||||
if ( !mask( var_5["mask"], var_0.v["type"] ) )
|
||||
continue;
|
||||
|
||||
var_1++;
|
||||
|
||||
if ( var_1 < level.effect_list_offset )
|
||||
continue;
|
||||
|
||||
if ( var_2 >= level.effect_list_offset_max )
|
||||
continue;
|
||||
|
||||
var_2++;
|
||||
var_6 = var_2;
|
||||
|
||||
if ( var_6 == 10 )
|
||||
var_6 = 0;
|
||||
|
||||
if ( common_scripts\_createfx::button_is_clicked( var_6 + "" ) )
|
||||
{
|
||||
add_option_to_selected_entities( var_5 );
|
||||
menunone();
|
||||
level.last_displayed_ent = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement( var_6 + ". " + var_5["description"] );
|
||||
}
|
||||
|
||||
if ( var_1 > level.effect_list_offset_max )
|
||||
common_scripts\_createfx::set_fx_hudelement( "(->) More >" );
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement( "(x) Exit >" );
|
||||
}
|
||||
|
||||
add_option_to_selected_entities( var_0 )
|
||||
{
|
||||
var_1 = undefined;
|
||||
|
||||
for ( var_2 = 0; var_2 < level._createfx.selected_fx_ents.size; var_2++ )
|
||||
{
|
||||
var_3 = level._createfx.selected_fx_ents[var_2];
|
||||
|
||||
if ( mask( var_0["mask"], var_3.v["type"] ) )
|
||||
var_3.v[var_0["name"]] = var_0["default"];
|
||||
}
|
||||
}
|
||||
|
||||
menunone()
|
||||
{
|
||||
level.effect_list_offset = 0;
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
setmenu( "none" );
|
||||
}
|
||||
|
||||
display_fx_info( var_0 )
|
||||
{
|
||||
if ( !menu( "none" ) )
|
||||
return;
|
||||
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
common_scripts\_createfx::set_fx_hudelement( "Name: " + var_0.v["fxid"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Type: " + var_0.v["type"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Origin: " + var_0.v["origin"] );
|
||||
common_scripts\_createfx::set_fx_hudelement( "Angles: " + var_0.v["angles"] );
|
||||
|
||||
if ( entities_are_selected() )
|
||||
{
|
||||
var_1 = 0;
|
||||
var_2 = 0;
|
||||
var_3 = 0;
|
||||
|
||||
for ( var_4 = 0; var_4 < level._createfx.options.size; var_4++ )
|
||||
{
|
||||
var_5 = level._createfx.options[var_4];
|
||||
|
||||
if ( !isdefined( var_0.v[var_5["name"]] ) )
|
||||
continue;
|
||||
|
||||
var_1++;
|
||||
|
||||
if ( var_1 < level.effect_list_offset )
|
||||
continue;
|
||||
|
||||
var_2++;
|
||||
common_scripts\_createfx::set_fx_hudelement( var_2 + ". " + var_5["description"] + ": " + var_0.v[var_5["name"]] );
|
||||
|
||||
if ( var_2 > level.effect_list_offset_max )
|
||||
{
|
||||
var_3 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( var_1 > level.effect_list_offset_max )
|
||||
common_scripts\_createfx::set_fx_hudelement( "(->) More >" );
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement( "(a) Add >" );
|
||||
common_scripts\_createfx::set_fx_hudelement( "(x) Exit >" );
|
||||
}
|
||||
else
|
||||
{
|
||||
var_1 = 0;
|
||||
var_3 = 0;
|
||||
|
||||
for ( var_4 = 0; var_4 < level._createfx.options.size; var_4++ )
|
||||
{
|
||||
var_5 = level._createfx.options[var_4];
|
||||
|
||||
if ( !isdefined( var_0.v[var_5["name"]] ) )
|
||||
continue;
|
||||
|
||||
var_1++;
|
||||
common_scripts\_createfx::set_fx_hudelement( var_5["description"] + ": " + var_0.v[var_5["name"]] );
|
||||
|
||||
if ( var_1 > level._createfx.hudelem_count )
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
draw_effects_list( var_0 )
|
||||
{
|
||||
common_scripts\_createfx::clear_fx_hudelements();
|
||||
var_1 = 0;
|
||||
var_2 = 0;
|
||||
var_3 = common_scripts\_createfx::func_get_level_fx();
|
||||
|
||||
if ( !isdefined( var_0 ) )
|
||||
var_0 = "Pick an effect";
|
||||
|
||||
common_scripts\_createfx::set_fx_hudelement( var_0 + " [" + level.effect_list_offset + " - " + var_3.size + "]:" );
|
||||
|
||||
for ( var_4 = level.effect_list_offset; var_4 < var_3.size; var_4++ )
|
||||
{
|
||||
var_1 = var_1 + 1;
|
||||
common_scripts\_createfx::set_fx_hudelement( var_1 + ". " + var_3[var_4] );
|
||||
|
||||
if ( var_1 >= level.effect_list_offset_max )
|
||||
{
|
||||
var_2 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( var_3.size > level.effect_list_offset_max )
|
||||
{
|
||||
common_scripts\_createfx::set_fx_hudelement( "(->) More >" );
|
||||
common_scripts\_createfx::set_fx_hudelement( "(<-) Previous >" );
|
||||
}
|
||||
}
|
||||
|
||||
increment_list_offset()
|
||||
{
|
||||
var_0 = common_scripts\_createfx::func_get_level_fx();
|
||||
|
||||
if ( level.effect_list_offset >= var_0.size - level.effect_list_offset_max )
|
||||
level.effect_list_offset = 0;
|
||||
else
|
||||
level.effect_list_offset = level.effect_list_offset + level.effect_list_offset_max;
|
||||
}
|
||||
|
||||
decrement_list_offset()
|
||||
{
|
||||
level.effect_list_offset = level.effect_list_offset - level.effect_list_offset_max;
|
||||
|
||||
if ( level.effect_list_offset < 0 )
|
||||
{
|
||||
var_0 = common_scripts\_createfx::func_get_level_fx();
|
||||
level.effect_list_offset = var_0.size - level.effect_list_offset_max;
|
||||
}
|
||||
}
|
||||
|
||||
select_by_name()
|
||||
{
|
||||
var_0 = 0;
|
||||
var_1 = undefined;
|
||||
var_2 = common_scripts\_createfx::func_get_level_fx();
|
||||
|
||||
for ( var_3 = level.effect_list_offset; var_3 < var_2.size; var_3++ )
|
||||
{
|
||||
var_0 = var_0 + 1;
|
||||
var_4 = var_0;
|
||||
|
||||
if ( var_4 == 10 )
|
||||
var_4 = 0;
|
||||
|
||||
if ( common_scripts\_createfx::button_is_clicked( var_4 + "" ) )
|
||||
{
|
||||
var_1 = var_2[var_3];
|
||||
break;
|
||||
}
|
||||
|
||||
if ( var_0 > level.effect_list_offset_max )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
return;
|
||||
|
||||
var_5 = [];
|
||||
|
||||
foreach ( var_3, var_7 in level.createfxent )
|
||||
{
|
||||
if ( issubstr( var_7.v["fxid"], var_1 ) )
|
||||
var_5[var_5.size] = var_3;
|
||||
}
|
||||
|
||||
common_scripts\_createfx::deselect_all_ents();
|
||||
common_scripts\_createfx::select_index_array( var_5 );
|
||||
level._createfx.select_by_name = 1;
|
||||
}
|
||||
|
||||
get_last_selected_ent()
|
||||
{
|
||||
return level._createfx.selected_fx_ents[level._createfx.selected_fx_ents.size - 1];
|
||||
}
|
824
common_scripts/_csplines.gsc
Normal file
824
common_scripts/_csplines.gsc
Normal file
@ -0,0 +1,824 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
cspline_calctangent( var_0, var_1, var_2, var_3, var_4 )
|
||||
{
|
||||
var_5 = [];
|
||||
var_6 = [];
|
||||
|
||||
for ( var_7 = 0; var_7 < 3; var_7++ )
|
||||
{
|
||||
var_5[var_7] = ( 1 - var_4 ) * ( var_1[var_7] - var_0[var_7] );
|
||||
var_6[var_7] = var_5[var_7];
|
||||
var_5[var_7] = var_5[var_7] * ( 2 * var_2 / ( var_2 + var_3 ) );
|
||||
var_6[var_7] = var_6[var_7] * ( 2 * var_3 / ( var_2 + var_3 ) );
|
||||
}
|
||||
|
||||
var_8 = [];
|
||||
var_8["incoming"] = ( var_5[0], var_5[1], var_5[2] );
|
||||
var_8["outgoing"] = ( var_6[0], var_6[1], var_6[2] );
|
||||
return var_8;
|
||||
}
|
||||
|
||||
cspline_calctangenttcb( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 )
|
||||
{
|
||||
var_8 = [];
|
||||
var_9 = [];
|
||||
|
||||
for ( var_10 = 0; var_10 < 3; var_10++ )
|
||||
{
|
||||
var_8[var_10] = ( 1 - var_5 ) * ( 1 - var_6 ) * ( 1 + var_7 ) * 0.5 * ( var_1[var_10] - var_0[var_10] );
|
||||
var_8[var_10] = var_8[var_10] + ( 1 - var_5 ) * ( 1 + var_6 ) * ( 1 - var_7 ) * 0.5 * ( var_2[var_10] - var_1[var_10] );
|
||||
var_8[var_10] = var_8[var_10] * ( 2 * var_3 / ( var_3 + var_4 ) );
|
||||
var_9[var_10] = ( 1 - var_5 ) * ( 1 + var_6 ) * ( 1 + var_7 ) * 0.5 * ( var_1[var_10] - var_0[var_10] );
|
||||
var_9[var_10] = var_9[var_10] + ( 1 - var_5 ) * ( 1 - var_6 ) * ( 1 - var_7 ) * 0.5 * ( var_2[var_10] - var_1[var_10] );
|
||||
var_9[var_10] = var_9[var_10] * ( 2 * var_4 / ( var_3 + var_4 ) );
|
||||
}
|
||||
|
||||
var_11 = [];
|
||||
var_11["incoming"] = ( var_8[0], var_8[1], var_8[2] );
|
||||
var_11["outgoing"] = ( var_9[0], var_9[1], var_9[2] );
|
||||
return var_11;
|
||||
}
|
||||
|
||||
cspline_calctangentnatural( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = 3;
|
||||
var_4 = [];
|
||||
var_5 = [];
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
{
|
||||
for ( var_6 = 0; var_6 < var_3; var_6++ )
|
||||
{
|
||||
var_4[var_6] = ( -3 * var_0[var_6] + 3 * var_1[var_6] - var_2[var_6] ) / 2;
|
||||
var_5[var_6] = var_4[var_6];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_6 = 0; var_6 < var_3; var_6++ )
|
||||
{
|
||||
var_4[var_6] = var_1[var_6] - var_0[var_6];
|
||||
var_5[var_6] = var_1[var_6] - var_0[var_6];
|
||||
}
|
||||
}
|
||||
|
||||
var_7 = [];
|
||||
var_7["incoming"] = ( var_4[0], var_4[1], var_4[2] );
|
||||
var_7["outgoing"] = ( var_5[0], var_5[1], var_5[2] );
|
||||
return var_7;
|
||||
}
|
||||
|
||||
csplineseg_calccoeffs( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
var_4 = 3;
|
||||
var_5 = spawnstruct();
|
||||
var_5.n3 = [];
|
||||
var_5.n2 = [];
|
||||
var_5.n = [];
|
||||
var_5.c = [];
|
||||
|
||||
for ( var_6 = 0; var_6 < var_4; var_6++ )
|
||||
{
|
||||
var_5.n3[var_6] = 2 * var_0[var_6] - 2 * var_1[var_6] + var_2[var_6] + var_3[var_6];
|
||||
var_5.n2[var_6] = -3 * var_0[var_6] + 3 * var_1[var_6] - 2 * var_2[var_6] - var_3[var_6];
|
||||
var_5.n[var_6] = var_2[var_6];
|
||||
var_5.c[var_6] = var_0[var_6];
|
||||
}
|
||||
|
||||
return var_5;
|
||||
}
|
||||
|
||||
csplineseg_calccoeffscapspeed( var_0, var_1, var_2, var_3, var_4 )
|
||||
{
|
||||
var_5 = csplineseg_calccoeffs( var_0, var_1, var_2, var_3 );
|
||||
var_6 = csplineseg_calctopspeed( var_5, var_4 );
|
||||
|
||||
if ( var_6 > 1 )
|
||||
{
|
||||
var_4 = var_4 * var_6;
|
||||
var_2 = var_2 / var_6;
|
||||
var_3 = var_3 / var_6;
|
||||
var_5 = csplineseg_calccoeffs( var_0, var_1, var_2, var_3 );
|
||||
}
|
||||
|
||||
var_5.endat = var_4;
|
||||
return var_5;
|
||||
}
|
||||
|
||||
cspline_getnodes( var_0 )
|
||||
{
|
||||
var_1 = [];
|
||||
var_2 = var_0.segments[0].endat;
|
||||
var_1[0] = csplineseg_getpoint( var_0.segments[0], 0, var_2, var_0.segments[0].speedstart );
|
||||
var_1[0]["time"] = 0;
|
||||
var_3 = 0;
|
||||
|
||||
for ( var_4 = 0; var_4 < var_0.segments.size; var_4++ )
|
||||
{
|
||||
var_2 = var_0.segments[var_4].endat - var_3;
|
||||
var_1[var_4 + 1] = csplineseg_getpoint( var_0.segments[var_4], 1, var_2, var_0.segments[var_4].speedend );
|
||||
var_5 = csplineseg_getpoint( var_0.segments[var_4], 0, var_2, var_0.segments[var_4].speedstart );
|
||||
var_1[var_4]["acc_out"] = var_5["acc"];
|
||||
var_1[var_4 + 1]["time"] = var_0.segments[var_4].endtime;
|
||||
var_3 = var_0.segments[var_4].endat;
|
||||
}
|
||||
|
||||
var_1[var_0.segments.size]["acc_out"] = var_1[var_0.segments.size]["acc"];
|
||||
return var_1;
|
||||
}
|
||||
|
||||
csplineseg_getpoint( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
var_4 = 3;
|
||||
var_5 = [];
|
||||
var_6 = [];
|
||||
var_7 = [];
|
||||
var_8 = [];
|
||||
|
||||
for ( var_9 = 0; var_9 < var_4; var_9++ )
|
||||
{
|
||||
var_5[var_9] = var_0.n3[var_9] * var_1 * var_1 * var_1 + var_0.n2[var_9] * var_1 * var_1 + var_0.n[var_9] * var_1 + var_0.c[var_9];
|
||||
var_6[var_9] = 3 * var_0.n3[var_9] * var_1 * var_1 + 2 * var_0.n2[var_9] * var_1 + var_0.n[var_9];
|
||||
var_7[var_9] = 6 * var_0.n3[var_9] * var_1 + 2 * var_0.n2[var_9];
|
||||
}
|
||||
|
||||
var_8["pos"] = ( var_5[0], var_5[1], var_5[2] );
|
||||
var_8["vel"] = ( var_6[0], var_6[1], var_6[2] );
|
||||
var_8["acc"] = ( var_7[0], var_7[1], var_7[2] );
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
{
|
||||
var_8["vel"] = var_8["vel"] / var_2;
|
||||
var_8["acc"] = var_8["acc"] / ( var_2 * var_2 );
|
||||
}
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
{
|
||||
var_8["vel"] = var_8["vel"] * var_3;
|
||||
var_8["acc"] = var_8["acc"] * ( var_3 * var_3 );
|
||||
}
|
||||
|
||||
var_8["speed"] = var_3;
|
||||
return var_8;
|
||||
}
|
||||
|
||||
csplineseg_calctopspeed( var_0, var_1 )
|
||||
{
|
||||
var_2 = csplineseg_calctopspeedbyderiving( var_0, var_1 );
|
||||
return var_2;
|
||||
}
|
||||
|
||||
csplineseg_calctopspeedbyderiving( var_0, var_1 )
|
||||
{
|
||||
var_2 = 0;
|
||||
var_3 = 0;
|
||||
var_4 = 0;
|
||||
var_5 = 0;
|
||||
var_6 = 0;
|
||||
var_7 = 0;
|
||||
|
||||
for ( var_8 = 0; var_8 < 3; var_8++ )
|
||||
{
|
||||
var_2 = var_2 + var_0.n3[var_8] * var_0.n3[var_8];
|
||||
var_3 = var_3 + var_0.n3[var_8] * var_0.n2[var_8];
|
||||
var_4 = var_4 + var_0.n3[var_8] * var_0.n[var_8];
|
||||
var_5 = var_5 + var_0.n2[var_8] * var_0.n2[var_8];
|
||||
var_6 = var_6 + var_0.n2[var_8] * var_0.n[var_8];
|
||||
var_7 = var_7 + var_0.n[var_8] * var_0.n[var_8];
|
||||
}
|
||||
|
||||
var_9 = 36 * var_2;
|
||||
var_10 = 36 * var_3;
|
||||
var_11 = 12 * var_4 + 8 * var_5;
|
||||
var_12 = 4 * var_6;
|
||||
var_13 = [];
|
||||
var_13[0] = 0;
|
||||
|
||||
if ( var_9 == 0 )
|
||||
{
|
||||
if ( var_10 == 0 && var_11 == 0 && var_12 == 0 )
|
||||
return sqrt( var_7 ) / var_1;
|
||||
|
||||
var_14 = maps\interactive_models\_interactive_utility::rootsofquadratic( var_10, var_11, var_12 );
|
||||
|
||||
if ( isdefined( var_14[0] ) && var_14[0] > 0 && var_14[0] < 1 )
|
||||
{
|
||||
var_15 = 2 * var_10 * var_14[0] + var_11;
|
||||
|
||||
if ( var_15 < 0 )
|
||||
var_13[var_13.size] = var_14[0];
|
||||
}
|
||||
|
||||
if ( isdefined( var_14[1] ) && var_14[1] > 0 && var_14[1] < 1 )
|
||||
{
|
||||
var_15 = 2 * var_10 * var_14[0] + var_11;
|
||||
|
||||
if ( var_15 < 0 )
|
||||
var_13[var_13.size] = var_14[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var_16 = maps\interactive_models\_interactive_utility::rootsofquadratic( 3 * var_9, 2 * var_10, var_11 );
|
||||
var_17 = 0;
|
||||
var_18[0] = 0;
|
||||
|
||||
for ( var_17 = 0; var_17 < var_16.size; var_17++ )
|
||||
{
|
||||
if ( var_16[var_17] > 0 && var_16[var_17] < 1 )
|
||||
var_18[var_18.size] = var_16[var_17];
|
||||
}
|
||||
|
||||
var_18[var_18.size] = 1;
|
||||
|
||||
for ( var_17 = 1; var_17 < var_18.size; var_17++ )
|
||||
{
|
||||
var_19 = var_18[var_17 - 1];
|
||||
var_20 = var_18[var_17];
|
||||
var_21 = var_9 * var_19 * var_19 * var_19 + var_10 * var_19 * var_19 + var_11 * var_19 + var_12;
|
||||
var_22 = var_9 * var_20 * var_20 * var_20 + var_10 * var_20 * var_20 + var_11 * var_20 + var_12;
|
||||
|
||||
if ( var_21 > 0 && var_22 < 0 )
|
||||
var_13[var_13.size] = maps\interactive_models\_interactive_utility::newtonsmethod( var_19, var_20, var_9, var_10, var_11, var_12, 0.02 );
|
||||
}
|
||||
}
|
||||
|
||||
var_13[var_13.size] = 1;
|
||||
var_9 = 9 * var_2;
|
||||
var_10 = 12 * var_3;
|
||||
var_11 = 6 * var_4 + 4 * var_5;
|
||||
var_12 = 4 * var_6;
|
||||
var_23 = var_7;
|
||||
var_24 = 0;
|
||||
|
||||
foreach ( var_26 in var_13 )
|
||||
{
|
||||
var_27 = var_9 * var_26 * var_26 * var_26 * var_26 + var_10 * var_26 * var_26 * var_26 + var_11 * var_26 * var_26 + var_12 * var_26 + var_23;
|
||||
|
||||
if ( var_27 > var_24 )
|
||||
var_24 = var_27;
|
||||
}
|
||||
|
||||
return sqrt( var_24 ) / var_1;
|
||||
}
|
||||
|
||||
csplineseg_calclengthbystepping( var_0, var_1 )
|
||||
{
|
||||
var_2 = csplineseg_getpoint( var_0, 0 );
|
||||
var_3 = 0;
|
||||
|
||||
for ( var_4 = 1; var_4 <= var_1; var_4++ )
|
||||
{
|
||||
var_5 = var_4 / var_1;
|
||||
var_6 = csplineseg_getpoint( var_0, var_5 );
|
||||
var_3 = var_3 + length( var_2["pos"] - var_6["pos"] );
|
||||
var_2 = var_6;
|
||||
}
|
||||
|
||||
return var_3;
|
||||
}
|
||||
|
||||
csplineseg_calctopspeedbystepping( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = csplineseg_getpoint( var_0, 0 );
|
||||
var_4 = 0;
|
||||
|
||||
for ( var_5 = 1; var_5 <= var_1; var_5++ )
|
||||
{
|
||||
var_6 = var_5 / var_1;
|
||||
var_7 = csplineseg_getpoint( var_0, var_6 );
|
||||
var_8 = length( var_3["pos"] - var_7["pos"] );
|
||||
|
||||
if ( var_8 > var_4 )
|
||||
var_4 = var_8;
|
||||
|
||||
var_3 = var_7;
|
||||
}
|
||||
|
||||
var_4 = var_4 * ( var_1 / var_2 );
|
||||
return var_4;
|
||||
}
|
||||
|
||||
cspline_findpathnodes( var_0 )
|
||||
{
|
||||
var_1 = var_0;
|
||||
var_2 = [];
|
||||
|
||||
for ( var_3 = 0; isdefined( var_1.target ); var_3++ )
|
||||
{
|
||||
var_2[var_3] = var_1;
|
||||
var_4 = var_1.target;
|
||||
var_1 = getnode( var_4, "targetname" );
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
{
|
||||
var_1 = getvehiclenode( var_4, "targetname" );
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
{
|
||||
var_1 = getent( var_4, "targetname" );
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
var_1 = common_scripts\utility::getstruct( var_4, "targetname" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var_2[var_3] = var_1;
|
||||
return var_2;
|
||||
}
|
||||
|
||||
cspline_makepath1seg( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
var_4 = [];
|
||||
var_4[0] = spawnstruct();
|
||||
var_4[0].origin = var_0;
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
{
|
||||
var_4[0].speed = length( var_2 );
|
||||
var_2 = var_2 / var_4[0].speed;
|
||||
var_4[0].speed = var_4[0].speed * 20;
|
||||
}
|
||||
else
|
||||
var_4[0].speed = 20;
|
||||
|
||||
var_4[1] = spawnstruct();
|
||||
var_4[1].origin = var_1;
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
{
|
||||
var_4[1].speed = length( var_3 );
|
||||
var_3 = var_3 / var_4[1].speed;
|
||||
var_4[1].speed = var_4[1].speed * 20;
|
||||
}
|
||||
else
|
||||
var_4[1].speed = 20;
|
||||
|
||||
return cspline_makepath( var_4, 1, var_2, var_3 );
|
||||
}
|
||||
|
||||
cspline_makepathtopoint( var_0, var_1, var_2, var_3, var_4 )
|
||||
{
|
||||
var_5 = [];
|
||||
|
||||
if ( !isdefined( var_4 ) )
|
||||
var_4 = 0;
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
{
|
||||
var_6 = length( var_2 );
|
||||
var_5[0] = var_2 / var_6;
|
||||
var_6 = var_6 * 20;
|
||||
}
|
||||
else
|
||||
var_6 = 20;
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
{
|
||||
var_7 = length( var_3 );
|
||||
var_5[1] = var_3 / var_7;
|
||||
var_7 = var_7 * 20;
|
||||
}
|
||||
else
|
||||
var_7 = 20;
|
||||
|
||||
if ( var_6 / var_7 > 1.2 || var_7 / var_6 > 1.2 || var_4 )
|
||||
{
|
||||
if ( !isdefined( var_5[0] ) )
|
||||
var_5[0] = ( 0, 0, 0 );
|
||||
|
||||
if ( !isdefined( var_5[1] ) )
|
||||
var_5[1] = ( 0, 0, 0 );
|
||||
}
|
||||
|
||||
var_8 = var_1 - var_0;
|
||||
var_9 = length( var_8 );
|
||||
var_10 = var_8 / var_9;
|
||||
var_11 = [];
|
||||
var_11[0] = spawnstruct();
|
||||
var_11[0].origin = var_0;
|
||||
var_11[0].speed = var_6;
|
||||
var_12 = [];
|
||||
var_13 = max( var_6, var_7 );
|
||||
|
||||
if ( isdefined( var_5[0] ) )
|
||||
var_12[0] = ( var_6 + var_13 ) / 40;
|
||||
|
||||
if ( isdefined( var_5[1] ) )
|
||||
var_12[1] = ( var_7 + var_13 ) / 40;
|
||||
|
||||
for ( var_14 = 0; var_14 < 2; var_14++ )
|
||||
{
|
||||
if ( isdefined( var_5[var_14] ) )
|
||||
{
|
||||
var_15 = ( 0.5 - var_14 ) * 2;
|
||||
var_16 = var_5[var_14];
|
||||
var_16 = var_16 * var_15;
|
||||
var_17 = vectordot( var_16, var_10 );
|
||||
|
||||
if ( var_17 * var_15 < 0.3 || var_6 / var_7 > 1.2 || var_7 / var_6 > 1.2 || var_4 )
|
||||
{
|
||||
if ( var_17 * var_15 < 0 )
|
||||
{
|
||||
var_18 = var_17 * var_10;
|
||||
var_16 = var_16 - var_18;
|
||||
var_16 = vectornormalize( var_16 );
|
||||
var_16 = var_16 + var_18;
|
||||
}
|
||||
|
||||
var_16 = var_16 + var_10 * var_15;
|
||||
var_16 = var_16 * var_12[var_14];
|
||||
var_16 = var_16 * ( sqrt( var_9 ) * 2 );
|
||||
var_11[var_11.size] = spawnstruct();
|
||||
|
||||
if ( var_14 == 0 )
|
||||
var_11[var_11.size - 1].origin = var_0 + var_16;
|
||||
else
|
||||
var_11[var_11.size - 1].origin = var_1 + var_16;
|
||||
|
||||
var_11[var_11.size - 1].speed = var_13;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var_19 = var_11.size;
|
||||
var_11[var_19] = spawnstruct();
|
||||
var_11[var_19].origin = var_1;
|
||||
var_11[var_19].speed = var_7;
|
||||
return cspline_makepath( var_11, 1, var_5[0], var_5[1] );
|
||||
}
|
||||
|
||||
cspline_makepath( var_0, var_1, var_2, var_3, var_4 )
|
||||
{
|
||||
var_5 = spawnstruct();
|
||||
var_5.segments = [];
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
var_1 = 0;
|
||||
|
||||
if ( !isdefined( var_4 ) )
|
||||
var_4 = 1;
|
||||
|
||||
var_6 = 0;
|
||||
var_7 = [];
|
||||
|
||||
for ( var_8 = distance( var_0[0].origin, var_0[1].origin ); isdefined( var_0[var_5.segments.size + 2] ); var_5.segments[var_9].endat = var_6 )
|
||||
{
|
||||
var_9 = var_5.segments.size;
|
||||
var_10 = var_0[var_9].origin;
|
||||
var_11 = var_0[var_9 + 1].origin;
|
||||
var_12 = var_0[var_9 + 2].origin;
|
||||
var_13 = var_8;
|
||||
var_8 = distance( var_0[var_9 + 1].origin, var_0[var_9 + 2].origin );
|
||||
var_14 = var_7;
|
||||
var_7 = cspline_calctangent( var_10, var_12, var_13, var_8, 0.5 );
|
||||
|
||||
if ( var_9 == 0 )
|
||||
{
|
||||
if ( isdefined( var_2 ) )
|
||||
var_14["outgoing"] = var_2 * var_13;
|
||||
else
|
||||
var_14 = cspline_calctangentnatural( var_10, var_11, var_7["incoming"] );
|
||||
}
|
||||
|
||||
if ( var_4 )
|
||||
{
|
||||
var_5.segments[var_9] = csplineseg_calccoeffscapspeed( var_10, var_11, var_14["outgoing"], var_7["incoming"], var_13 );
|
||||
var_6 = var_6 + var_5.segments[var_9].endat;
|
||||
continue;
|
||||
}
|
||||
|
||||
var_5.segments[var_9] = csplineseg_calccoeffs( var_10, var_11, var_14["outgoing"], var_7["incoming"] );
|
||||
var_6 = var_6 + var_13;
|
||||
}
|
||||
|
||||
var_9 = var_5.segments.size;
|
||||
var_10 = var_0[var_9].origin;
|
||||
var_11 = var_0[var_9 + 1].origin;
|
||||
var_13 = var_8;
|
||||
var_14 = var_7;
|
||||
|
||||
if ( var_9 == 0 && isdefined( var_2 ) )
|
||||
var_14["outgoing"] = var_2 * var_13;
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
var_7["incoming"] = var_3 * var_13;
|
||||
else
|
||||
var_7 = cspline_calctangentnatural( var_10, var_11, var_14["outgoing"] );
|
||||
|
||||
if ( var_9 == 0 && !isdefined( var_2 ) )
|
||||
var_14 = cspline_calctangentnatural( var_10, var_11, var_7["incoming"] );
|
||||
|
||||
if ( var_4 )
|
||||
{
|
||||
var_5.segments[var_9] = csplineseg_calccoeffscapspeed( var_10, var_11, var_14["outgoing"], var_7["incoming"], var_13 );
|
||||
var_6 = var_6 + var_5.segments[var_9].endat;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_5.segments[var_9] = csplineseg_calccoeffs( var_10, var_11, var_14["outgoing"], var_7["incoming"] );
|
||||
var_6 = var_6 + var_13;
|
||||
}
|
||||
|
||||
var_5.segments[var_9].endat = var_6;
|
||||
|
||||
if ( var_1 )
|
||||
{
|
||||
var_15 = 0;
|
||||
var_16 = 0;
|
||||
|
||||
for ( var_9 = 0; var_9 < var_5.segments.size; var_9++ )
|
||||
{
|
||||
if ( !isdefined( var_0[var_9 + 1].speed ) )
|
||||
var_0[var_9 + 1].speed = var_0[var_9].speed;
|
||||
|
||||
var_13 = var_5.segments[var_9].endat - var_16;
|
||||
var_17 = 2 * var_13 / ( ( var_0[var_9].speed + var_0[var_9 + 1].speed ) / 20 );
|
||||
var_15 = var_15 + var_17;
|
||||
var_5.segments[var_9].endtime = var_15;
|
||||
var_16 = var_5.segments[var_9].endat;
|
||||
var_5.segments[var_9].speedstart = var_0[var_9].speed / 20;
|
||||
var_5.segments[var_9].speedend = var_0[var_9 + 1].speed / 20;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_9 = 0; var_9 < var_5.segments.size; var_9++ )
|
||||
{
|
||||
var_5.segments[var_9].endtime = var_5.segments[var_9].endat;
|
||||
var_5.segments[var_9].speedstart = 1;
|
||||
var_5.segments[var_9].speedend = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return var_5;
|
||||
}
|
||||
|
||||
cspline_movefirstpoint( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = spawnstruct();
|
||||
var_3.segments = [];
|
||||
var_4 = csplineseg_getpoint( var_0.segments[0], 1 );
|
||||
var_5 = var_4["pos"] - var_1;
|
||||
var_6 = length( var_5 );
|
||||
var_3.segments[0] = csplineseg_calccoeffs( var_1, var_4["pos"], var_2 * var_6, var_4["vel"] );
|
||||
var_3.segments[0].endtime = var_0.segments[0].endtime * var_6 / var_0.segments[0].endat;
|
||||
var_3.segments[0].endat = var_6;
|
||||
var_7 = var_6 - var_0.segments[0].endat;
|
||||
var_8 = var_3.segments[0].endtime - var_0.segments[0].endtime;
|
||||
|
||||
for ( var_9 = 1; var_9 < var_0.segments.size; var_9++ )
|
||||
{
|
||||
var_3.segments[var_9] = csplineseg_copy( var_0.segments[var_9] );
|
||||
var_3.segments[var_9].endat = var_3.segments[var_9].endat + var_7;
|
||||
var_3.segments[var_9].endtime = var_3.segments[var_9].endtime + var_8;
|
||||
}
|
||||
|
||||
return var_3;
|
||||
}
|
||||
|
||||
cspline_getpointatdistance( var_0, var_1, var_2 )
|
||||
{
|
||||
if ( var_1 <= 0 )
|
||||
{
|
||||
var_3 = var_0.segments[0].endat;
|
||||
var_4 = csplineseg_getpoint( var_0.segments[0], 0, var_3, var_0.segments[0].speedstart );
|
||||
return var_4;
|
||||
}
|
||||
else if ( var_1 >= var_0.segments[var_0.segments.size - 1].endat )
|
||||
{
|
||||
if ( var_0.segments.size > 1 )
|
||||
var_3 = var_0.segments[var_0.segments.size - 1].endat - var_0.segments[var_0.segments.size - 2].endat;
|
||||
else
|
||||
var_3 = var_0.segments[var_0.segments.size - 1].endat;
|
||||
|
||||
var_4 = csplineseg_getpoint( var_0.segments[var_0.segments.size - 1], 1, var_3, var_0.segments[var_0.segments.size - 1].speedend );
|
||||
return var_4;
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_5 = 0; var_0.segments[var_5].endat < var_1; var_5++ )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
if ( var_5 > 0 )
|
||||
var_6 = var_0.segments[var_5 - 1].endat;
|
||||
else
|
||||
var_6 = 0;
|
||||
|
||||
var_3 = var_0.segments[var_5].endat - var_6;
|
||||
var_7 = ( var_1 - var_6 ) / var_3;
|
||||
var_8 = undefined;
|
||||
|
||||
if ( isdefined( var_2 ) && var_2 )
|
||||
var_8 = cspline_speedfromdistance( var_0.segments[var_5].speedstart, var_0.segments[var_5].speedend, var_7 );
|
||||
|
||||
var_4 = csplineseg_getpoint( var_0.segments[var_5], var_7, var_3, var_8 );
|
||||
return var_4;
|
||||
}
|
||||
}
|
||||
|
||||
cspline_getpointattime( var_0, var_1 )
|
||||
{
|
||||
if ( var_1 <= 0 )
|
||||
{
|
||||
var_2 = var_0.segments[0].endat;
|
||||
var_3 = csplineseg_getpoint( var_0.segments[0], 0, var_2, var_0.segments[0].speedstart );
|
||||
return var_3;
|
||||
}
|
||||
else if ( var_1 >= var_0.segments[var_0.segments.size - 1].endtime )
|
||||
{
|
||||
if ( var_0.segments.size > 1 )
|
||||
var_2 = var_0.segments[var_0.segments.size - 1].endat - var_0.segments[var_0.segments.size - 2].endat;
|
||||
else
|
||||
var_2 = var_0.segments[var_0.segments.size - 1].endat;
|
||||
|
||||
var_3 = csplineseg_getpoint( var_0.segments[var_0.segments.size - 1], 1, var_2, var_0.segments[var_0.segments.size - 1].speedend );
|
||||
return var_3;
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_4 = 0; var_0.segments[var_4].endtime < var_1; var_4++ )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
if ( var_4 > 0 )
|
||||
{
|
||||
var_5 = var_0.segments[var_4 - 1].endtime;
|
||||
var_2 = var_0.segments[var_4].endat - var_0.segments[var_4 - 1].endat;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_5 = 0;
|
||||
var_2 = var_0.segments[0].endat;
|
||||
}
|
||||
|
||||
var_6 = var_0.segments[var_4].endtime - var_5;
|
||||
var_7 = ( var_1 - var_5 ) / var_6;
|
||||
var_8 = var_0.segments[var_4].speedstart + var_7 * ( var_0.segments[var_4].speedend - var_0.segments[var_4].speedstart );
|
||||
var_9 = ( var_1 - var_5 ) * ( var_0.segments[var_4].speedstart + var_8 ) / 2;
|
||||
var_10 = var_9 / var_2;
|
||||
var_3 = csplineseg_getpoint( var_0.segments[var_4], var_10, var_2, var_8 );
|
||||
return var_3;
|
||||
}
|
||||
}
|
||||
|
||||
cspline_speedfromdistance( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = var_2;
|
||||
var_4 = ( var_1 - var_0 ) * ( var_1 + var_0 ) / 2;
|
||||
return sqrt( 2 * var_4 * var_3 + var_0 * var_0 );
|
||||
}
|
||||
|
||||
cspline_adjusttime( var_0, var_1 )
|
||||
{
|
||||
var_2 = cspline_time( var_0 );
|
||||
var_3 = var_0.segments[0].endtime;
|
||||
var_4 = var_0.segments[var_0.segments.size - 2].endtime - var_3;
|
||||
var_5 = var_0.segments[var_0.segments.size - 1].endtime - var_0.segments[var_0.segments.size - 2].endtime;
|
||||
var_6 = 2 * var_3 + var_4 + 2 * var_5 - var_1;
|
||||
var_7 = ( sqrt( var_6 * var_6 + 4 * var_4 * var_1 ) + var_6 ) / ( 2 * var_1 );
|
||||
var_9 = undefined;
|
||||
var_10 = undefined;
|
||||
var_0.segments[0].speedend = var_0.segments[0].speedend * var_7;
|
||||
var_11 = var_0.segments[0].endtime * ( 1 / var_7 - 2 / ( 1 + var_7 ) );
|
||||
var_0.segments[0].endtime = var_0.segments[0].endtime / ( ( 1 + var_7 ) / 2 );
|
||||
|
||||
for ( var_12 = 1; var_12 < var_0.segments.size - 1; var_12++ )
|
||||
{
|
||||
var_13 = undefined;
|
||||
var_0.segments[var_12].speedstart = var_0.segments[var_12].speedstart * var_7;
|
||||
var_0.segments[var_12].speedend = var_0.segments[var_12].speedend * var_7;
|
||||
var_0.segments[var_12].endtime = var_0.segments[var_12].endtime / var_7;
|
||||
var_0.segments[var_12].endtime = var_0.segments[var_12].endtime - var_11;
|
||||
}
|
||||
|
||||
var_12 = var_0.segments.size - 1;
|
||||
var_0.segments[var_12].speedstart = var_0.segments[var_12].speedstart * var_7;
|
||||
var_0.segments[var_12].endtime = var_1;
|
||||
}
|
||||
|
||||
cspline_makenoisepath( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
var_4 = cspline_makenoisepathnodes( var_0, var_1, var_2 );
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
var_4[1].origin = var_3;
|
||||
|
||||
var_5 = spawnstruct();
|
||||
var_5.origin = var_4[0].origin;
|
||||
var_4[var_4.size] = var_5;
|
||||
var_5 = spawnstruct();
|
||||
var_5.origin = var_4[1].origin;
|
||||
var_4[var_4.size] = var_5;
|
||||
var_5 = spawnstruct();
|
||||
var_5.origin = var_4[2].origin;
|
||||
var_4[var_4.size] = var_5;
|
||||
var_6 = cspline_makepath( var_4 );
|
||||
var_7 = spawnstruct();
|
||||
var_7.segments = [];
|
||||
|
||||
for ( var_8 = 0; var_8 < var_6.segments.size - 2; var_8++ )
|
||||
{
|
||||
var_7.segments[var_8] = csplineseg_copy( var_6.segments[var_8 + 1] );
|
||||
var_7.segments[var_8].endat = var_8 + 1;
|
||||
}
|
||||
|
||||
return var_7;
|
||||
}
|
||||
|
||||
cspline_makenoisepathnodes( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = [];
|
||||
|
||||
for ( var_4 = 0; var_4 < var_0; var_4++ )
|
||||
{
|
||||
var_3[var_4] = spawnstruct();
|
||||
var_5 = randomfloatrange( var_1[0], var_2[0] );
|
||||
var_6 = randomfloatrange( var_1[1], var_2[1] );
|
||||
var_7 = randomfloatrange( var_1[2], var_2[2] );
|
||||
var_3[var_4].origin = ( var_5, var_6, var_7 );
|
||||
}
|
||||
|
||||
return var_3;
|
||||
}
|
||||
|
||||
cspline_test( var_0, var_1 )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
cspline_testnodes( var_0, var_1 )
|
||||
{
|
||||
var_2 = 20;
|
||||
var_3 = undefined;
|
||||
|
||||
foreach ( var_5 in var_0 )
|
||||
{
|
||||
if ( isdefined( var_3 ) )
|
||||
thread common_scripts\utility::draw_arrow_time( var_3.origin, var_5.origin, ( 0, 1, 0 ), var_1 );
|
||||
|
||||
var_3 = var_5;
|
||||
}
|
||||
|
||||
foreach ( var_5 in var_0 )
|
||||
{
|
||||
thread common_scripts\utility::draw_line_for_time( var_5.origin - ( var_2, 0, 0 ), var_5.origin + ( var_2, 0, 0 ), 1, 1, 0, var_1 );
|
||||
thread common_scripts\utility::draw_line_for_time( var_5.origin - ( 0, var_2, 0 ), var_5.origin + ( 0, var_2, 0 ), 1, 1, 0, var_1 );
|
||||
thread common_scripts\utility::draw_line_for_time( var_5.origin - ( 0, 0, var_2 ), var_5.origin + ( 0, 0, var_2 ), 1, 1, 0, var_1 );
|
||||
}
|
||||
}
|
||||
|
||||
csplineseg_copy( var_0 )
|
||||
{
|
||||
var_1 = spawnstruct();
|
||||
var_2 = 3;
|
||||
|
||||
for ( var_3 = 0; var_3 < var_2; var_3++ )
|
||||
{
|
||||
var_1.n3[var_3] = var_0.n3[var_3];
|
||||
var_1.n2[var_3] = var_0.n2[var_3];
|
||||
var_1.n[var_3] = var_0.n[var_3];
|
||||
var_1.c[var_3] = var_0.c[var_3];
|
||||
}
|
||||
|
||||
var_1.endat = var_0.endat;
|
||||
var_1.endtime = var_0.endtime;
|
||||
return var_1;
|
||||
}
|
||||
|
||||
cspline_length( var_0 )
|
||||
{
|
||||
return var_0.segments[var_0.segments.size - 1].endat;
|
||||
}
|
||||
|
||||
cspline_time( var_0 )
|
||||
{
|
||||
return var_0.segments[var_0.segments.size - 1].endtime;
|
||||
}
|
||||
|
||||
cspline_initnoise( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
var_4 = spawnstruct();
|
||||
var_5 = var_1;
|
||||
var_4.largestep = var_2;
|
||||
var_6 = ( var_0[0] - var_5, var_0[1] - var_5, var_0[2] - var_5 );
|
||||
var_7 = ( var_0[0] + var_5, var_0[1] + var_5, var_0[2] + var_5 );
|
||||
var_3 = ( var_0[0], var_0[1], var_0[2] - var_5 );
|
||||
var_4.largescale = cspline_makenoisepath( 10, var_6, var_7, var_3 );
|
||||
var_4.largescale.length = var_4.largescale.segments[var_4.largescale.segments.size - 1].endat;
|
||||
thread cspline_test( var_4.largescale, 20 );
|
||||
return var_4;
|
||||
}
|
||||
|
||||
cspline_noise( var_0, var_1 )
|
||||
{
|
||||
var_2 = common_scripts\utility::mod( var_1 / var_0.largestep, var_0.largescale.length );
|
||||
var_3 = cspline_getpointatdistance( var_0.largescale, var_2 );
|
||||
return var_3["pos"];
|
||||
}
|
3668
common_scripts/_destructible.gsc
Normal file
3668
common_scripts/_destructible.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1445
common_scripts/_dynamic_world.gsc
Normal file
1445
common_scripts/_dynamic_world.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1014
common_scripts/_elevator.gsc
Normal file
1014
common_scripts/_elevator.gsc
Normal file
File diff suppressed because it is too large
Load Diff
944
common_scripts/_exploder.gsc
Normal file
944
common_scripts/_exploder.gsc
Normal file
@ -0,0 +1,944 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
setup_individual_exploder( var_0 )
|
||||
{
|
||||
var_1 = var_0.script_exploder;
|
||||
|
||||
if ( !isdefined( level.exploders[var_1] ) )
|
||||
level.exploders[var_1] = [];
|
||||
|
||||
var_2 = var_0.targetname;
|
||||
|
||||
if ( !isdefined( var_2 ) )
|
||||
var_2 = "";
|
||||
|
||||
level.exploders[var_1][level.exploders[var_1].size] = var_0;
|
||||
|
||||
if ( exploder_model_starts_hidden( var_0 ) )
|
||||
{
|
||||
var_0 hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( exploder_model_is_damaged_model( var_0 ) )
|
||||
{
|
||||
var_0 hide();
|
||||
var_0 notsolid();
|
||||
|
||||
if ( isdefined( var_0.spawnflags ) && var_0.spawnflags & 1 )
|
||||
{
|
||||
if ( isdefined( var_0.script_disconnectpaths ) )
|
||||
var_0 connectpaths();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( exploder_model_is_chunk( var_0 ) )
|
||||
{
|
||||
var_0 hide();
|
||||
var_0 notsolid();
|
||||
|
||||
if ( isdefined( var_0.spawnflags ) && var_0.spawnflags & 1 )
|
||||
var_0 connectpaths();
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
setupexploders()
|
||||
{
|
||||
level.exploders = [];
|
||||
var_0 = getentarray( "script_brushmodel", "classname" );
|
||||
var_1 = getentarray( "script_model", "classname" );
|
||||
|
||||
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
|
||||
var_0[var_0.size] = var_1[var_2];
|
||||
|
||||
foreach ( var_4 in var_0 )
|
||||
{
|
||||
if ( isdefined( var_4.script_prefab_exploder ) )
|
||||
var_4.script_exploder = var_4.script_prefab_exploder;
|
||||
|
||||
if ( isdefined( var_4.masked_exploder ) )
|
||||
continue;
|
||||
|
||||
if ( isdefined( var_4.script_exploder ) )
|
||||
setup_individual_exploder( var_4 );
|
||||
}
|
||||
|
||||
var_6 = [];
|
||||
var_7 = getentarray( "script_brushmodel", "classname" );
|
||||
|
||||
for ( var_2 = 0; var_2 < var_7.size; var_2++ )
|
||||
{
|
||||
if ( isdefined( var_7[var_2].script_prefab_exploder ) )
|
||||
var_7[var_2].script_exploder = var_7[var_2].script_prefab_exploder;
|
||||
|
||||
if ( isdefined( var_7[var_2].script_exploder ) )
|
||||
var_6[var_6.size] = var_7[var_2];
|
||||
}
|
||||
|
||||
var_7 = getentarray( "script_model", "classname" );
|
||||
|
||||
for ( var_2 = 0; var_2 < var_7.size; var_2++ )
|
||||
{
|
||||
if ( isdefined( var_7[var_2].script_prefab_exploder ) )
|
||||
var_7[var_2].script_exploder = var_7[var_2].script_prefab_exploder;
|
||||
|
||||
if ( isdefined( var_7[var_2].script_exploder ) )
|
||||
var_6[var_6.size] = var_7[var_2];
|
||||
}
|
||||
|
||||
var_7 = getentarray( "item_health", "classname" );
|
||||
|
||||
for ( var_2 = 0; var_2 < var_7.size; var_2++ )
|
||||
{
|
||||
if ( isdefined( var_7[var_2].script_prefab_exploder ) )
|
||||
var_7[var_2].script_exploder = var_7[var_2].script_prefab_exploder;
|
||||
|
||||
if ( isdefined( var_7[var_2].script_exploder ) )
|
||||
var_6[var_6.size] = var_7[var_2];
|
||||
}
|
||||
|
||||
var_7 = level.struct;
|
||||
|
||||
for ( var_2 = 0; var_2 < var_7.size; var_2++ )
|
||||
{
|
||||
if ( !isdefined( var_7[var_2] ) )
|
||||
continue;
|
||||
|
||||
if ( isdefined( var_7[var_2].script_prefab_exploder ) )
|
||||
var_7[var_2].script_exploder = var_7[var_2].script_prefab_exploder;
|
||||
|
||||
if ( isdefined( var_7[var_2].script_exploder ) )
|
||||
{
|
||||
if ( !isdefined( var_7[var_2].angles ) )
|
||||
var_7[var_2].angles = ( 0, 0, 0 );
|
||||
|
||||
var_6[var_6.size] = var_7[var_2];
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isdefined( level.createfxent ) )
|
||||
level.createfxent = [];
|
||||
|
||||
var_8 = [];
|
||||
var_8["exploderchunk visible"] = 1;
|
||||
var_8["exploderchunk"] = 1;
|
||||
var_8["exploder"] = 1;
|
||||
thread setup_flag_exploders();
|
||||
|
||||
for ( var_2 = 0; var_2 < var_6.size; var_2++ )
|
||||
{
|
||||
var_9 = var_6[var_2];
|
||||
var_4 = common_scripts\utility::createexploder( var_9.script_fxid );
|
||||
var_4.v = [];
|
||||
var_4.v["origin"] = var_9.origin;
|
||||
var_4.v["angles"] = var_9.angles;
|
||||
var_4.v["delay"] = var_9.script_delay;
|
||||
var_4.v["delay_post"] = var_9.script_delay_post;
|
||||
var_4.v["firefx"] = var_9.script_firefx;
|
||||
var_4.v["firefxdelay"] = var_9.script_firefxdelay;
|
||||
var_4.v["firefxsound"] = var_9.script_firefxsound;
|
||||
var_4.v["earthquake"] = var_9.script_earthquake;
|
||||
var_4.v["rumble"] = var_9.script_rumble;
|
||||
var_4.v["damage"] = var_9.script_damage;
|
||||
var_4.v["damage_radius"] = var_9.script_radius;
|
||||
var_4.v["soundalias"] = var_9.script_soundalias;
|
||||
var_4.v["repeat"] = var_9.script_repeat;
|
||||
var_4.v["delay_min"] = var_9.script_delay_min;
|
||||
var_4.v["delay_max"] = var_9.script_delay_max;
|
||||
var_4.v["target"] = var_9.target;
|
||||
var_4.v["ender"] = var_9.script_ender;
|
||||
var_4.v["physics"] = var_9.script_physics;
|
||||
var_4.v["type"] = "exploder";
|
||||
|
||||
if ( !isdefined( var_9.script_fxid ) )
|
||||
var_4.v["fxid"] = "No FX";
|
||||
else
|
||||
var_4.v["fxid"] = var_9.script_fxid;
|
||||
|
||||
var_4.v["exploder"] = var_9.script_exploder;
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_10 = level.createfxexploders[var_4.v["exploder"]];
|
||||
|
||||
if ( !isdefined( var_10 ) )
|
||||
var_10 = [];
|
||||
|
||||
var_10[var_10.size] = var_4;
|
||||
level.createfxexploders[var_4.v["exploder"]] = var_10;
|
||||
}
|
||||
|
||||
if ( !isdefined( var_4.v["delay"] ) )
|
||||
var_4.v["delay"] = 0;
|
||||
|
||||
if ( isdefined( var_9.target ) )
|
||||
{
|
||||
var_11 = getentarray( var_4.v["target"], "targetname" )[0];
|
||||
|
||||
if ( isdefined( var_11 ) )
|
||||
{
|
||||
var_12 = var_11.origin;
|
||||
var_4.v["angles"] = vectortoangles( var_12 - var_4.v["origin"] );
|
||||
}
|
||||
else
|
||||
{
|
||||
var_11 = common_scripts\utility::get_target_ent( var_4.v["target"] );
|
||||
|
||||
if ( isdefined( var_11 ) )
|
||||
{
|
||||
var_12 = var_11.origin;
|
||||
var_4.v["angles"] = vectortoangles( var_12 - var_4.v["origin"] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isdefined( var_9.code_classname ) )
|
||||
{
|
||||
var_4.model = var_9;
|
||||
|
||||
if ( isdefined( var_4.model.script_modelname ) )
|
||||
precachemodel( var_4.model.script_modelname );
|
||||
}
|
||||
else if ( var_9.code_classname == "script_brushmodel" || isdefined( var_9.model ) )
|
||||
{
|
||||
var_4.model = var_9;
|
||||
var_4.model.disconnect_paths = var_9.script_disconnectpaths;
|
||||
}
|
||||
|
||||
if ( isdefined( var_9.targetname ) && isdefined( var_8[var_9.targetname] ) )
|
||||
var_4.v["exploder_type"] = var_9.targetname;
|
||||
else
|
||||
var_4.v["exploder_type"] = "normal";
|
||||
|
||||
if ( isdefined( var_9.masked_exploder ) )
|
||||
{
|
||||
var_4.v["masked_exploder"] = var_9.model;
|
||||
var_4.v["masked_exploder_spawnflags"] = var_9.spawnflags;
|
||||
var_4.v["masked_exploder_script_disconnectpaths"] = var_9.script_disconnectpaths;
|
||||
var_9 delete();
|
||||
}
|
||||
|
||||
var_4 common_scripts\_createfx::post_entity_creation_function();
|
||||
}
|
||||
}
|
||||
|
||||
setup_flag_exploders()
|
||||
{
|
||||
waittillframeend;
|
||||
waittillframeend;
|
||||
waittillframeend;
|
||||
var_0 = [];
|
||||
|
||||
foreach ( var_2 in level.createfxent )
|
||||
{
|
||||
if ( var_2.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
var_3 = var_2.v["flag"];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3 == "nil" )
|
||||
var_2.v["flag"] = undefined;
|
||||
|
||||
var_0[var_3] = 1;
|
||||
}
|
||||
|
||||
foreach ( var_7, var_6 in var_0 )
|
||||
thread exploder_flag_wait( var_7 );
|
||||
}
|
||||
|
||||
exploder_flag_wait( var_0 )
|
||||
{
|
||||
if ( !common_scripts\utility::flag_exist( var_0 ) )
|
||||
common_scripts\utility::flag_init( var_0 );
|
||||
|
||||
common_scripts\utility::flag_wait( var_0 );
|
||||
|
||||
foreach ( var_2 in level.createfxent )
|
||||
{
|
||||
if ( var_2.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
var_3 = var_2.v["flag"];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3 != var_0 )
|
||||
continue;
|
||||
|
||||
var_2 common_scripts\utility::activate_individual_exploder();
|
||||
}
|
||||
}
|
||||
|
||||
exploder_model_is_damaged_model( var_0 )
|
||||
{
|
||||
return isdefined( var_0.targetname ) && var_0.targetname == "exploder";
|
||||
}
|
||||
|
||||
exploder_model_starts_hidden( var_0 )
|
||||
{
|
||||
return var_0.model == "fx" && ( !isdefined( var_0.targetname ) || var_0.targetname != "exploderchunk" );
|
||||
}
|
||||
|
||||
exploder_model_is_chunk( var_0 )
|
||||
{
|
||||
return isdefined( var_0.targetname ) && var_0.targetname == "exploderchunk";
|
||||
}
|
||||
|
||||
show_exploder_models_proc( var_0 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_1 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
{
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
if ( !exploder_model_starts_hidden( var_3.model ) && !exploder_model_is_damaged_model( var_3.model ) && !exploder_model_is_chunk( var_3.model ) )
|
||||
var_3.model show();
|
||||
|
||||
if ( isdefined( var_3.brush_shown ) )
|
||||
var_3.model show();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_5 = 0; var_5 < level.createfxent.size; var_5++ )
|
||||
{
|
||||
var_3 = level.createfxent[var_5];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_3.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
if ( isdefined( var_3.model ) )
|
||||
{
|
||||
if ( !exploder_model_starts_hidden( var_3.model ) && !exploder_model_is_damaged_model( var_3.model ) && !exploder_model_is_chunk( var_3.model ) )
|
||||
var_3.model show();
|
||||
|
||||
if ( isdefined( var_3.brush_shown ) )
|
||||
var_3.model show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stop_exploder_proc( var_0 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_1 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
{
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
if ( !isdefined( var_3.looper ) )
|
||||
continue;
|
||||
|
||||
var_3.looper delete();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_5 = 0; var_5 < level.createfxent.size; var_5++ )
|
||||
{
|
||||
var_3 = level.createfxent[var_5];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_3.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_3.looper ) )
|
||||
continue;
|
||||
|
||||
var_3.looper delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
get_exploder_array_proc( var_0 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
var_1 = [];
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_2 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_2 ) )
|
||||
var_1 = var_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ( var_4 in level.createfxent )
|
||||
{
|
||||
if ( var_4.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_4.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_4.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
var_1[var_1.size] = var_4;
|
||||
}
|
||||
}
|
||||
|
||||
return var_1;
|
||||
}
|
||||
|
||||
hide_exploder_models_proc( var_0 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_1 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
{
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
if ( isdefined( var_3.model ) )
|
||||
var_3.model hide();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_5 = 0; var_5 < level.createfxent.size; var_5++ )
|
||||
{
|
||||
var_3 = level.createfxent[var_5];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_3.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
if ( isdefined( var_3.model ) )
|
||||
var_3.model hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete_exploder_proc( var_0 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_1 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
{
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
if ( isdefined( var_3.model ) )
|
||||
var_3.model delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_5 = 0; var_5 < level.createfxent.size; var_5++ )
|
||||
{
|
||||
var_3 = level.createfxent[var_5];
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_3.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_3.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
if ( isdefined( var_3.model ) )
|
||||
var_3.model delete();
|
||||
}
|
||||
}
|
||||
|
||||
level notify( "killexplodertridgers" + var_0 );
|
||||
}
|
||||
|
||||
exploder_damage()
|
||||
{
|
||||
if ( isdefined( self.v["delay"] ) )
|
||||
var_0 = self.v["delay"];
|
||||
else
|
||||
var_0 = 0;
|
||||
|
||||
if ( isdefined( self.v["damage_radius"] ) )
|
||||
var_1 = self.v["damage_radius"];
|
||||
else
|
||||
var_1 = 128;
|
||||
|
||||
var_2 = self.v["damage"];
|
||||
var_3 = self.v["origin"];
|
||||
wait( var_0 );
|
||||
|
||||
if ( isdefined( level.custom_radius_damage_for_exploders ) )
|
||||
[[ level.custom_radius_damage_for_exploders ]]( var_3, var_1, var_2 );
|
||||
else
|
||||
radiusdamage( var_3, var_1, var_2, var_2 );
|
||||
}
|
||||
|
||||
activate_individual_exploder_proc()
|
||||
{
|
||||
if ( isdefined( self.v["firefx"] ) )
|
||||
thread fire_effect();
|
||||
|
||||
if ( isdefined( self.v["fxid"] ) && self.v["fxid"] != "No FX" )
|
||||
thread cannon_effect();
|
||||
else if ( isdefined( self.v["soundalias"] ) && self.v["soundalias"] != "nil" )
|
||||
thread sound_effect();
|
||||
|
||||
if ( isdefined( self.v["loopsound"] ) && self.v["loopsound"] != "nil" )
|
||||
thread effect_loopsound();
|
||||
|
||||
if ( isdefined( self.v["damage"] ) )
|
||||
thread exploder_damage();
|
||||
|
||||
if ( isdefined( self.v["earthquake"] ) )
|
||||
thread exploder_earthquake();
|
||||
|
||||
if ( isdefined( self.v["rumble"] ) )
|
||||
thread exploder_rumble();
|
||||
|
||||
if ( self.v["exploder_type"] == "exploder" )
|
||||
thread brush_show();
|
||||
else if ( self.v["exploder_type"] == "exploderchunk" || self.v["exploder_type"] == "exploderchunk visible" )
|
||||
thread brush_throw();
|
||||
else
|
||||
thread brush_delete();
|
||||
}
|
||||
|
||||
brush_delete()
|
||||
{
|
||||
var_0 = self.v["exploder"];
|
||||
|
||||
if ( isdefined( self.v["delay"] ) )
|
||||
wait( self.v["delay"] );
|
||||
else
|
||||
wait 0.05;
|
||||
|
||||
if ( !isdefined( self.model ) )
|
||||
return;
|
||||
|
||||
if ( isdefined( self.model.classname ) )
|
||||
{
|
||||
if ( common_scripts\utility::issp() && self.model.spawnflags & 1 )
|
||||
self.model call [[ level.connectpathsfunction ]]();
|
||||
}
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
{
|
||||
if ( isdefined( self.exploded ) )
|
||||
return;
|
||||
|
||||
self.exploded = 1;
|
||||
self.model hide();
|
||||
self.model notsolid();
|
||||
wait 3;
|
||||
self.exploded = undefined;
|
||||
self.model show();
|
||||
self.model solid();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !isdefined( self.v["fxid"] ) || self.v["fxid"] == "No FX" )
|
||||
self.v["exploder"] = undefined;
|
||||
|
||||
waittillframeend;
|
||||
|
||||
if ( isdefined( self.model ) && isdefined( self.model.classname ) )
|
||||
self.model delete();
|
||||
}
|
||||
|
||||
brush_throw()
|
||||
{
|
||||
if ( isdefined( self.v["delay"] ) )
|
||||
wait( self.v["delay"] );
|
||||
|
||||
var_0 = undefined;
|
||||
|
||||
if ( isdefined( self.v["target"] ) )
|
||||
var_0 = common_scripts\utility::get_target_ent( self.v["target"] );
|
||||
|
||||
if ( !isdefined( var_0 ) )
|
||||
{
|
||||
self.model delete();
|
||||
return;
|
||||
}
|
||||
|
||||
self.model show();
|
||||
|
||||
if ( isdefined( self.v["delay_post"] ) )
|
||||
wait( self.v["delay_post"] );
|
||||
|
||||
var_1 = self.v["origin"];
|
||||
var_2 = self.v["angles"];
|
||||
var_3 = var_0.origin;
|
||||
var_4 = var_3 - self.v["origin"];
|
||||
var_5 = var_4[0];
|
||||
var_6 = var_4[1];
|
||||
var_7 = var_4[2];
|
||||
var_8 = isdefined( self.v["physics"] );
|
||||
|
||||
if ( var_8 )
|
||||
{
|
||||
var_9 = undefined;
|
||||
|
||||
if ( isdefined( var_0.target ) )
|
||||
var_9 = var_0 common_scripts\utility::get_target_ent();
|
||||
|
||||
if ( !isdefined( var_9 ) )
|
||||
{
|
||||
var_10 = var_1;
|
||||
var_11 = var_0.origin;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_10 = var_0.origin;
|
||||
var_11 = ( var_9.origin - var_0.origin ) * self.v["physics"];
|
||||
}
|
||||
|
||||
self.model physicslaunchclient( var_10, var_11 );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.model rotatevelocity( ( var_5, var_6, var_7 ), 12 );
|
||||
self.model movegravity( ( var_5, var_6, var_7 ), 12 );
|
||||
}
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
{
|
||||
if ( isdefined( self.exploded ) )
|
||||
return;
|
||||
|
||||
self.exploded = 1;
|
||||
wait 3;
|
||||
self.exploded = undefined;
|
||||
self.v["origin"] = var_1;
|
||||
self.v["angles"] = var_2;
|
||||
self.model hide();
|
||||
return;
|
||||
}
|
||||
|
||||
self.v["exploder"] = undefined;
|
||||
wait 6;
|
||||
self.model delete();
|
||||
}
|
||||
|
||||
brush_show()
|
||||
{
|
||||
if ( isdefined( self.v["delay"] ) )
|
||||
wait( self.v["delay"] );
|
||||
|
||||
if ( !isdefined( self.model.script_modelname ) )
|
||||
{
|
||||
self.model show();
|
||||
self.model solid();
|
||||
}
|
||||
else
|
||||
{
|
||||
var_0 = self.model common_scripts\utility::spawn_tag_origin();
|
||||
|
||||
if ( isdefined( self.model.script_linkname ) )
|
||||
var_0.script_linkname = self.model.script_linkname;
|
||||
|
||||
var_0 setmodel( self.model.script_modelname );
|
||||
var_0 show();
|
||||
}
|
||||
|
||||
self.brush_shown = 1;
|
||||
|
||||
if ( common_scripts\utility::issp() && !isdefined( self.model.script_modelname ) && self.model.spawnflags & 1 )
|
||||
{
|
||||
if ( !isdefined( self.model.disconnect_paths ) )
|
||||
self.model call [[ level.connectpathsfunction ]]();
|
||||
else
|
||||
self.model call [[ level.disconnectpathsfunction ]]();
|
||||
}
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
{
|
||||
if ( isdefined( self.exploded ) )
|
||||
return;
|
||||
|
||||
self.exploded = 1;
|
||||
wait 3;
|
||||
self.exploded = undefined;
|
||||
|
||||
if ( !isdefined( self.model.script_modelname ) )
|
||||
{
|
||||
self.model hide();
|
||||
self.model notsolid();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exploder_rumble()
|
||||
{
|
||||
if ( !common_scripts\utility::issp() )
|
||||
return;
|
||||
|
||||
exploder_delay();
|
||||
level.player playrumbleonentity( self.v["rumble"] );
|
||||
}
|
||||
|
||||
exploder_delay()
|
||||
{
|
||||
if ( !isdefined( self.v["delay"] ) )
|
||||
self.v["delay"] = 0;
|
||||
|
||||
var_0 = self.v["delay"];
|
||||
var_1 = self.v["delay"] + 0.001;
|
||||
|
||||
if ( isdefined( self.v["delay_min"] ) )
|
||||
var_0 = self.v["delay_min"];
|
||||
|
||||
if ( isdefined( self.v["delay_max"] ) )
|
||||
var_1 = self.v["delay_max"];
|
||||
|
||||
if ( var_0 > 0 )
|
||||
wait( randomfloatrange( var_0, var_1 ) );
|
||||
}
|
||||
|
||||
effect_loopsound()
|
||||
{
|
||||
if ( isdefined( self.loopsound_ent ) )
|
||||
self.loopsound_ent delete();
|
||||
|
||||
var_0 = self.v["origin"];
|
||||
var_1 = self.v["loopsound"];
|
||||
exploder_delay();
|
||||
self.loopsound_ent = common_scripts\utility::play_loopsound_in_space( var_1, var_0 );
|
||||
}
|
||||
|
||||
sound_effect()
|
||||
{
|
||||
effect_soundalias();
|
||||
}
|
||||
|
||||
effect_soundalias()
|
||||
{
|
||||
var_0 = self.v["origin"];
|
||||
var_1 = self.v["soundalias"];
|
||||
exploder_delay();
|
||||
common_scripts\utility::play_sound_in_space( var_1, var_0 );
|
||||
}
|
||||
|
||||
exploder_earthquake()
|
||||
{
|
||||
exploder_delay();
|
||||
common_scripts\utility::do_earthquake( self.v["earthquake"], self.v["origin"] );
|
||||
}
|
||||
|
||||
exploder_playsound()
|
||||
{
|
||||
if ( !isdefined( self.v["soundalias"] ) || self.v["soundalias"] == "nil" )
|
||||
return;
|
||||
|
||||
common_scripts\utility::play_sound_in_space( self.v["soundalias"], self.v["origin"] );
|
||||
}
|
||||
|
||||
fire_effect()
|
||||
{
|
||||
var_0 = self.v["forward"];
|
||||
var_1 = self.v["up"];
|
||||
var_2 = undefined;
|
||||
var_3 = self.v["firefxsound"];
|
||||
var_4 = self.v["origin"];
|
||||
var_5 = self.v["firefx"];
|
||||
var_6 = self.v["ender"];
|
||||
|
||||
if ( !isdefined( var_6 ) )
|
||||
var_6 = "createfx_effectStopper";
|
||||
|
||||
var_7 = 0.5;
|
||||
|
||||
if ( isdefined( self.v["firefxdelay"] ) )
|
||||
var_7 = self.v["firefxdelay"];
|
||||
|
||||
exploder_delay();
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
common_scripts\utility::loop_fx_sound( var_3, var_4, 1, var_6 );
|
||||
|
||||
playfx( level._effect[var_5], self.v["origin"], var_0, var_1 );
|
||||
}
|
||||
|
||||
cannon_effect()
|
||||
{
|
||||
if ( isdefined( self.v["repeat"] ) )
|
||||
{
|
||||
thread exploder_playsound();
|
||||
|
||||
for ( var_0 = 0; var_0 < self.v["repeat"]; var_0++ )
|
||||
{
|
||||
playfx( level._effect[self.v["fxid"]], self.v["origin"], self.v["forward"], self.v["up"] );
|
||||
exploder_delay();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
exploder_delay();
|
||||
|
||||
if ( isdefined( self.looper ) )
|
||||
self.looper delete();
|
||||
|
||||
self.looper = spawnfx( common_scripts\utility::getfx( self.v["fxid"] ), self.v["origin"], self.v["forward"], self.v["up"] );
|
||||
triggerfx( self.looper );
|
||||
exploder_playsound();
|
||||
}
|
||||
|
||||
activate_exploder( var_0, var_1, var_2 )
|
||||
{
|
||||
var_0 = var_0 + "";
|
||||
level notify( "exploding_" + var_0 );
|
||||
var_3 = 0;
|
||||
|
||||
if ( isdefined( level.createfxexploders ) && !level.createfx_enabled )
|
||||
{
|
||||
var_4 = level.createfxexploders[var_0];
|
||||
|
||||
if ( isdefined( var_4 ) )
|
||||
{
|
||||
foreach ( var_6 in var_4 )
|
||||
{
|
||||
var_6 common_scripts\utility::activate_individual_exploder();
|
||||
var_3 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( var_8 = 0; var_8 < level.createfxent.size; var_8++ )
|
||||
{
|
||||
var_6 = level.createfxent[var_8];
|
||||
|
||||
if ( !isdefined( var_6 ) )
|
||||
continue;
|
||||
|
||||
if ( var_6.v["type"] != "exploder" )
|
||||
continue;
|
||||
|
||||
if ( !isdefined( var_6.v["exploder"] ) )
|
||||
continue;
|
||||
|
||||
if ( var_6.v["exploder"] + "" != var_0 )
|
||||
continue;
|
||||
|
||||
var_6 common_scripts\utility::activate_individual_exploder();
|
||||
var_3 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !shouldrunserversideeffects() && !var_3 )
|
||||
activate_clientside_exploder( var_0, var_1, var_2 );
|
||||
}
|
||||
|
||||
activate_clientside_exploder( var_0, var_1, var_2 )
|
||||
{
|
||||
if ( !is_valid_clientside_exploder_name( var_0 ) )
|
||||
return;
|
||||
|
||||
var_3 = int( var_0 );
|
||||
activateclientexploder( var_3, var_1, var_2 );
|
||||
}
|
||||
|
||||
is_valid_clientside_exploder_name( var_0 )
|
||||
{
|
||||
if ( !isdefined( var_0 ) )
|
||||
return 0;
|
||||
|
||||
var_1 = var_0;
|
||||
|
||||
if ( isstring( var_0 ) )
|
||||
{
|
||||
var_1 = int( var_0 );
|
||||
|
||||
if ( var_1 == 0 && var_0 != "0" )
|
||||
return 0;
|
||||
}
|
||||
|
||||
return var_1 >= 0;
|
||||
}
|
||||
|
||||
shouldrunserversideeffects()
|
||||
{
|
||||
if ( common_scripts\utility::issp() )
|
||||
return 1;
|
||||
|
||||
if ( !isdefined( level.createfx_enabled ) )
|
||||
level.createfx_enabled = getdvar( "createfx" ) != "";
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
return 1;
|
||||
else
|
||||
return getdvar( "clientSideEffects" ) != "1";
|
||||
}
|
||||
|
||||
exploder_before_load( var_0, var_1, var_2 )
|
||||
{
|
||||
waittillframeend;
|
||||
waittillframeend;
|
||||
activate_exploder( var_0, var_1, var_2 );
|
||||
}
|
||||
|
||||
exploder_after_load( var_0, var_1, var_2 )
|
||||
{
|
||||
activate_exploder( var_0, var_1, var_2 );
|
||||
}
|
687
common_scripts/_fx.gsc
Normal file
687
common_scripts/_fx.gsc
Normal file
@ -0,0 +1,687 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
initfx()
|
||||
{
|
||||
if ( !isdefined( level.func ) )
|
||||
level.func = [];
|
||||
|
||||
if ( !isdefined( level.func["create_triggerfx"] ) )
|
||||
level.func["create_triggerfx"] = ::create_triggerfx;
|
||||
|
||||
if ( !isdefined( level._fx ) )
|
||||
level._fx = spawnstruct();
|
||||
|
||||
common_scripts\utility::create_lock( "createfx_looper", 20 );
|
||||
level.fxfireloopmod = 1;
|
||||
level._fx.exploderfunction = common_scripts\_exploder::exploder_before_load;
|
||||
waittillframeend;
|
||||
waittillframeend;
|
||||
level._fx.exploderfunction = common_scripts\_exploder::exploder_after_load;
|
||||
level._fx.server_culled_sounds = 0;
|
||||
|
||||
if ( getdvarint( "serverCulledSounds" ) == 1 )
|
||||
level._fx.server_culled_sounds = 1;
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
level._fx.server_culled_sounds = 0;
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
level waittill( "createfx_common_done" );
|
||||
|
||||
for ( var_0 = 0; var_0 < level.createfxent.size; var_0++ )
|
||||
{
|
||||
var_1 = level.createfxent[var_0];
|
||||
var_1 common_scripts\_createfx::set_forward_and_up_vectors();
|
||||
|
||||
switch ( var_1.v["type"] )
|
||||
{
|
||||
case "loopfx":
|
||||
var_1 thread loopfxthread();
|
||||
break;
|
||||
case "oneshotfx":
|
||||
var_1 thread oneshotfxthread();
|
||||
break;
|
||||
case "soundfx":
|
||||
var_1 thread create_loopsound();
|
||||
break;
|
||||
case "soundfx_interval":
|
||||
var_1 thread create_interval_sound();
|
||||
break;
|
||||
case "reactive_fx":
|
||||
var_1 add_reactive_fx();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
check_createfx_limit();
|
||||
}
|
||||
|
||||
remove_dupes()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
check_createfx_limit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
check_limit_type( var_0, var_1 )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
print_org( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
if ( getdvar( "debug" ) == "1" )
|
||||
return;
|
||||
}
|
||||
|
||||
oneshotfx( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
exploderfx( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10, var_11, var_12, var_13, var_14, var_15, var_16, var_17 )
|
||||
{
|
||||
if ( 1 )
|
||||
{
|
||||
var_18 = common_scripts\utility::createexploder( var_1 );
|
||||
var_18.v["origin"] = var_2;
|
||||
var_18.v["angles"] = ( 0, 0, 0 );
|
||||
|
||||
if ( isdefined( var_4 ) )
|
||||
var_18.v["angles"] = vectortoangles( var_4 - var_2 );
|
||||
|
||||
var_18.v["delay"] = var_3;
|
||||
var_18.v["exploder"] = var_0;
|
||||
|
||||
if ( isdefined( level.createfxexploders ) )
|
||||
{
|
||||
var_19 = level.createfxexploders[var_18.v["exploder"]];
|
||||
|
||||
if ( !isdefined( var_19 ) )
|
||||
var_19 = [];
|
||||
|
||||
var_19[var_19.size] = var_18;
|
||||
level.createfxexploders[var_18.v["exploder"]] = var_19;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var_20 = spawn( "script_origin", ( 0, 0, 0 ) );
|
||||
var_20.origin = var_2;
|
||||
var_20.angles = vectortoangles( var_4 - var_2 );
|
||||
var_20.script_exploder = var_0;
|
||||
var_20.script_fxid = var_1;
|
||||
var_20.script_delay = var_3;
|
||||
var_20.script_firefx = var_5;
|
||||
var_20.script_firefxdelay = var_6;
|
||||
var_20.script_firefxsound = var_7;
|
||||
var_20.script_sound = var_8;
|
||||
var_20.script_earthquake = var_9;
|
||||
var_20.script_damage = var_10;
|
||||
var_20.script_radius = var_15;
|
||||
var_20.script_soundalias = var_11;
|
||||
var_20.script_firefxtimeout = var_16;
|
||||
var_20.script_repeat = var_12;
|
||||
var_20.script_delay_min = var_13;
|
||||
var_20.script_delay_max = var_14;
|
||||
var_20.script_exploder_group = var_17;
|
||||
var_21 = anglestoforward( var_20.angles );
|
||||
var_21 = var_21 * 150;
|
||||
var_20.targetpos = var_2 + var_21;
|
||||
|
||||
if ( !isdefined( level._script_exploders ) )
|
||||
level._script_exploders = [];
|
||||
|
||||
level._script_exploders[level._script_exploders.size] = var_20;
|
||||
}
|
||||
|
||||
loopfx( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
|
||||
{
|
||||
var_7 = common_scripts\utility::createloopeffect( var_0 );
|
||||
var_7.v["origin"] = var_1;
|
||||
var_7.v["angles"] = ( 0, 0, 0 );
|
||||
|
||||
if ( isdefined( var_3 ) )
|
||||
var_7.v["angles"] = vectortoangles( var_3 - var_1 );
|
||||
|
||||
var_7.v["delay"] = var_2;
|
||||
}
|
||||
|
||||
create_looper()
|
||||
{
|
||||
self.looper = playloopedfx( level._effect[self.v["fxid"]], self.v["delay"], self.v["origin"], 0, self.v["forward"], self.v["up"] );
|
||||
create_loopsound();
|
||||
}
|
||||
|
||||
create_loopsound()
|
||||
{
|
||||
self notify( "stop_loop" );
|
||||
|
||||
if ( !isdefined( self.v["soundalias"] ) )
|
||||
return;
|
||||
|
||||
if ( self.v["soundalias"] == "nil" )
|
||||
return;
|
||||
|
||||
var_0 = 0;
|
||||
var_1 = undefined;
|
||||
|
||||
if ( isdefined( self.v["stopable"] ) && self.v["stopable"] )
|
||||
{
|
||||
if ( isdefined( self.looper ) )
|
||||
var_1 = "death";
|
||||
else
|
||||
var_1 = "stop_loop";
|
||||
}
|
||||
else if ( level._fx.server_culled_sounds && isdefined( self.v["server_culled"] ) )
|
||||
var_0 = self.v["server_culled"];
|
||||
|
||||
var_2 = self;
|
||||
|
||||
if ( isdefined( self.looper ) )
|
||||
var_2 = self.looper;
|
||||
|
||||
var_3 = undefined;
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
var_3 = self;
|
||||
|
||||
var_2 common_scripts\utility::loop_fx_sound_with_angles( self.v["soundalias"], self.v["origin"], self.v["angles"], var_0, var_1, var_3 );
|
||||
}
|
||||
|
||||
create_interval_sound()
|
||||
{
|
||||
self notify( "stop_loop" );
|
||||
|
||||
if ( !isdefined( self.v["soundalias"] ) )
|
||||
return;
|
||||
|
||||
if ( self.v["soundalias"] == "nil" )
|
||||
return;
|
||||
|
||||
var_0 = undefined;
|
||||
var_1 = self;
|
||||
|
||||
if ( isdefined( self.v["stopable"] ) && self.v["stopable"] || level.createfx_enabled )
|
||||
{
|
||||
if ( isdefined( self.looper ) )
|
||||
{
|
||||
var_1 = self.looper;
|
||||
var_0 = "death";
|
||||
}
|
||||
else
|
||||
var_0 = "stop_loop";
|
||||
}
|
||||
|
||||
var_1 thread common_scripts\utility::loop_fx_sound_interval_with_angles( self.v["soundalias"], self.v["origin"], self.v["angles"], var_0, undefined, self.v["delay_min"], self.v["delay_max"] );
|
||||
}
|
||||
|
||||
loopfxthread()
|
||||
{
|
||||
common_scripts\utility::waitframe();
|
||||
|
||||
if ( isdefined( self.fxstart ) )
|
||||
level waittill( "start fx" + self.fxstart );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
create_looper();
|
||||
|
||||
if ( isdefined( self.timeout ) )
|
||||
thread loopfxstop( self.timeout );
|
||||
|
||||
if ( isdefined( self.fxstop ) )
|
||||
level waittill( "stop fx" + self.fxstop );
|
||||
else
|
||||
return;
|
||||
|
||||
if ( isdefined( self.looper ) )
|
||||
self.looper delete();
|
||||
|
||||
if ( isdefined( self.fxstart ) )
|
||||
{
|
||||
level waittill( "start fx" + self.fxstart );
|
||||
continue;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
loopfxchangeid( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
var_0 waittill( "effect id changed", var_1 );
|
||||
}
|
||||
|
||||
loopfxchangeorg( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
var_0 waittill( "effect org changed", var_1 );
|
||||
self.origin = var_1;
|
||||
}
|
||||
}
|
||||
|
||||
loopfxchangedelay( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
var_0 waittill( "effect delay changed", var_1 );
|
||||
}
|
||||
|
||||
loopfxdeletion( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
var_0 waittill( "effect deleted" );
|
||||
self delete();
|
||||
}
|
||||
|
||||
loopfxstop( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
wait( var_0 );
|
||||
self.looper delete();
|
||||
}
|
||||
|
||||
loopsound( var_0, var_1, var_2 )
|
||||
{
|
||||
level thread loopsoundthread( var_0, var_1, var_2 );
|
||||
}
|
||||
|
||||
loopsoundthread( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = spawn( "script_origin", var_1 );
|
||||
var_3.origin = var_1;
|
||||
var_3 playloopsound( var_0 );
|
||||
}
|
||||
|
||||
gunfireloopfx( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 )
|
||||
{
|
||||
thread gunfireloopfxthread( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 );
|
||||
}
|
||||
|
||||
gunfireloopfxthread( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7 )
|
||||
{
|
||||
level endon( "stop all gunfireloopfx" );
|
||||
common_scripts\utility::waitframe();
|
||||
|
||||
if ( var_7 < var_6 )
|
||||
{
|
||||
var_8 = var_7;
|
||||
var_7 = var_6;
|
||||
var_6 = var_8;
|
||||
}
|
||||
|
||||
var_9 = var_6;
|
||||
var_10 = var_7 - var_6;
|
||||
|
||||
if ( var_5 < var_4 )
|
||||
{
|
||||
var_8 = var_5;
|
||||
var_5 = var_4;
|
||||
var_4 = var_8;
|
||||
}
|
||||
|
||||
var_11 = var_4;
|
||||
var_12 = var_5 - var_4;
|
||||
|
||||
if ( var_3 < var_2 )
|
||||
{
|
||||
var_8 = var_3;
|
||||
var_3 = var_2;
|
||||
var_2 = var_8;
|
||||
}
|
||||
|
||||
var_13 = var_2;
|
||||
var_14 = var_3 - var_2;
|
||||
var_15 = spawnfx( level._effect[var_0], var_1 );
|
||||
|
||||
if ( !level.createfx_enabled )
|
||||
var_15 willneverchange();
|
||||
|
||||
for (;;)
|
||||
{
|
||||
var_16 = var_13 + randomint( var_14 );
|
||||
|
||||
for ( var_17 = 0; var_17 < var_16; var_17++ )
|
||||
{
|
||||
triggerfx( var_15 );
|
||||
wait( var_11 + randomfloat( var_12 ) );
|
||||
}
|
||||
|
||||
wait( var_9 + randomfloat( var_10 ) );
|
||||
}
|
||||
}
|
||||
|
||||
gunfireloopfxvec( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 )
|
||||
{
|
||||
thread gunfireloopfxvecthread( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 );
|
||||
}
|
||||
|
||||
gunfireloopfxvecthread( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8 )
|
||||
{
|
||||
level endon( "stop all gunfireloopfx" );
|
||||
common_scripts\utility::waitframe();
|
||||
|
||||
if ( var_8 < var_7 )
|
||||
{
|
||||
var_9 = var_8;
|
||||
var_8 = var_7;
|
||||
var_7 = var_9;
|
||||
}
|
||||
|
||||
var_10 = var_7;
|
||||
var_11 = var_8 - var_7;
|
||||
|
||||
if ( var_6 < var_5 )
|
||||
{
|
||||
var_9 = var_6;
|
||||
var_6 = var_5;
|
||||
var_5 = var_9;
|
||||
}
|
||||
|
||||
var_12 = var_5;
|
||||
var_13 = var_6 - var_5;
|
||||
|
||||
if ( var_4 < var_3 )
|
||||
{
|
||||
var_9 = var_4;
|
||||
var_4 = var_3;
|
||||
var_3 = var_9;
|
||||
}
|
||||
|
||||
var_14 = var_3;
|
||||
var_15 = var_4 - var_3;
|
||||
var_2 = vectornormalize( var_2 - var_1 );
|
||||
var_16 = spawnfx( level._effect[var_0], var_1, var_2 );
|
||||
|
||||
if ( !level.createfx_enabled )
|
||||
var_16 willneverchange();
|
||||
|
||||
for (;;)
|
||||
{
|
||||
var_17 = var_14 + randomint( var_15 );
|
||||
|
||||
for ( var_18 = 0; var_18 < int( var_17 / level.fxfireloopmod ); var_18++ )
|
||||
{
|
||||
triggerfx( var_16 );
|
||||
var_19 = ( var_12 + randomfloat( var_13 ) ) * level.fxfireloopmod;
|
||||
|
||||
if ( var_19 < 0.05 )
|
||||
var_19 = 0.05;
|
||||
|
||||
wait( var_19 );
|
||||
}
|
||||
|
||||
wait( var_12 + randomfloat( var_13 ) );
|
||||
wait( var_10 + randomfloat( var_11 ) );
|
||||
}
|
||||
}
|
||||
|
||||
setfireloopmod( var_0 )
|
||||
{
|
||||
level.fxfireloopmod = 1 / var_0;
|
||||
}
|
||||
|
||||
setup_fx()
|
||||
{
|
||||
if ( !isdefined( self.script_fxid ) || !isdefined( self.script_fxcommand ) || !isdefined( self.script_delay ) )
|
||||
return;
|
||||
|
||||
if ( isdefined( self.model ) )
|
||||
{
|
||||
if ( self.model == "toilet" )
|
||||
{
|
||||
thread burnville_paratrooper_hack();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var_0 = undefined;
|
||||
|
||||
if ( isdefined( self.target ) )
|
||||
{
|
||||
var_1 = getent( self.target, "targetname" );
|
||||
|
||||
if ( isdefined( var_1 ) )
|
||||
var_0 = var_1.origin;
|
||||
}
|
||||
|
||||
var_2 = undefined;
|
||||
|
||||
if ( isdefined( self.script_fxstart ) )
|
||||
var_2 = self.script_fxstart;
|
||||
|
||||
var_3 = undefined;
|
||||
|
||||
if ( isdefined( self.script_fxstop ) )
|
||||
var_3 = self.script_fxstop;
|
||||
|
||||
if ( self.script_fxcommand == "OneShotfx" )
|
||||
oneshotfx( self.script_fxid, self.origin, self.script_delay, var_0 );
|
||||
|
||||
if ( self.script_fxcommand == "loopfx" )
|
||||
loopfx( self.script_fxid, self.origin, self.script_delay, var_0, var_2, var_3 );
|
||||
|
||||
if ( self.script_fxcommand == "loopsound" )
|
||||
loopsound( self.script_fxid, self.origin, self.script_delay );
|
||||
|
||||
self delete();
|
||||
}
|
||||
|
||||
burnville_paratrooper_hack()
|
||||
{
|
||||
var_0 = ( 0, 0, self.angles[1] );
|
||||
var_1 = level._effect[self.script_fxid];
|
||||
var_2 = self.origin;
|
||||
wait 1;
|
||||
level thread burnville_paratrooper_hack_loop( var_0, var_2, var_1 );
|
||||
self delete();
|
||||
}
|
||||
|
||||
burnville_paratrooper_hack_loop( var_0, var_1, var_2 )
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
playfx( var_2, var_1 );
|
||||
wait( 30 + randomfloat( 40 ) );
|
||||
}
|
||||
}
|
||||
|
||||
create_triggerfx()
|
||||
{
|
||||
if ( !verify_effects_assignment( self.v["fxid"] ) )
|
||||
return;
|
||||
|
||||
self.looper = spawnfx( level._effect[self.v["fxid"]], self.v["origin"], self.v["forward"], self.v["up"] );
|
||||
triggerfx( self.looper, self.v["delay"] );
|
||||
|
||||
if ( !level.createfx_enabled )
|
||||
self.looper willneverchange();
|
||||
|
||||
create_loopsound();
|
||||
}
|
||||
|
||||
verify_effects_assignment( var_0 )
|
||||
{
|
||||
if ( isdefined( level._effect[var_0] ) )
|
||||
return 1;
|
||||
|
||||
if ( !isdefined( level._missing_fx ) )
|
||||
level._missing_fx = [];
|
||||
|
||||
level._missing_fx[self.v["fxid"]] = var_0;
|
||||
verify_effects_assignment_print( var_0 );
|
||||
return 0;
|
||||
}
|
||||
|
||||
verify_effects_assignment_print( var_0 )
|
||||
{
|
||||
level notify( "verify_effects_assignment_print" );
|
||||
level endon( "verify_effects_assignment_print" );
|
||||
wait 0.05;
|
||||
var_1 = getarraykeys( level._missing_fx );
|
||||
|
||||
foreach ( var_3 in var_1 )
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
oneshotfxthread()
|
||||
{
|
||||
wait 0.05;
|
||||
|
||||
if ( self.v["delay"] > 0 )
|
||||
wait( self.v["delay"] );
|
||||
|
||||
[[ level.func["create_triggerfx"] ]]();
|
||||
}
|
||||
|
||||
add_reactive_fx()
|
||||
{
|
||||
if ( !common_scripts\utility::issp() && getdvar( "createfx" ) == "" )
|
||||
return;
|
||||
|
||||
if ( !isdefined( level._fx.reactive_thread ) )
|
||||
{
|
||||
level._fx.reactive_thread = 1;
|
||||
level thread reactive_fx_thread();
|
||||
}
|
||||
|
||||
if ( !isdefined( level._fx.reactive_fx_ents ) )
|
||||
level._fx.reactive_fx_ents = [];
|
||||
|
||||
level._fx.reactive_fx_ents[level._fx.reactive_fx_ents.size] = self;
|
||||
self.next_reactive_time = 3000;
|
||||
}
|
||||
|
||||
reactive_fx_thread()
|
||||
{
|
||||
if ( !common_scripts\utility::issp() )
|
||||
{
|
||||
if ( getdvar( "createfx" ) == "on" )
|
||||
common_scripts\utility::flag_wait( "createfx_started" );
|
||||
}
|
||||
|
||||
level._fx.reactive_sound_ents = [];
|
||||
var_0 = 256;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
level waittill( "code_damageradius", var_1, var_0, var_2, var_3 );
|
||||
var_4 = sort_reactive_ents( var_2, var_0 );
|
||||
|
||||
foreach ( var_7, var_6 in var_4 )
|
||||
var_6 thread play_reactive_fx( var_7 );
|
||||
}
|
||||
}
|
||||
|
||||
vector2d( var_0 )
|
||||
{
|
||||
return ( var_0[0], var_0[1], 0 );
|
||||
}
|
||||
|
||||
sort_reactive_ents( var_0, var_1 )
|
||||
{
|
||||
var_2 = [];
|
||||
var_3 = gettime();
|
||||
|
||||
foreach ( var_5 in level._fx.reactive_fx_ents )
|
||||
{
|
||||
if ( var_5.next_reactive_time > var_3 )
|
||||
continue;
|
||||
|
||||
var_6 = var_5.v["reactive_radius"] + var_1;
|
||||
var_6 = var_6 * var_6;
|
||||
|
||||
if ( distancesquared( var_0, var_5.v["origin"] ) < var_6 )
|
||||
var_2[var_2.size] = var_5;
|
||||
}
|
||||
|
||||
foreach ( var_5 in var_2 )
|
||||
{
|
||||
var_9 = vector2d( var_5.v["origin"] - level.player.origin );
|
||||
var_10 = vector2d( var_0 - level.player.origin );
|
||||
var_11 = vectornormalize( var_9 );
|
||||
var_12 = vectornormalize( var_10 );
|
||||
var_5.dot = vectordot( var_11, var_12 );
|
||||
}
|
||||
|
||||
for ( var_14 = 0; var_14 < var_2.size - 1; var_14++ )
|
||||
{
|
||||
for ( var_15 = var_14 + 1; var_15 < var_2.size; var_15++ )
|
||||
{
|
||||
if ( var_2[var_14].dot > var_2[var_15].dot )
|
||||
{
|
||||
var_16 = var_2[var_14];
|
||||
var_2[var_14] = var_2[var_15];
|
||||
var_2[var_15] = var_16;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ( var_5 in var_2 )
|
||||
{
|
||||
var_5.origin = undefined;
|
||||
var_5.dot = undefined;
|
||||
}
|
||||
|
||||
for ( var_14 = 4; var_14 < var_2.size; var_14++ )
|
||||
var_2[var_14] = undefined;
|
||||
|
||||
return var_2;
|
||||
}
|
||||
|
||||
play_reactive_fx( var_0 )
|
||||
{
|
||||
var_1 = get_reactive_sound_ent();
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
return;
|
||||
|
||||
self.next_reactive_time = gettime() + 3000;
|
||||
var_1.origin = self.v["origin"];
|
||||
var_1.is_playing = 1;
|
||||
wait( var_0 * randomfloatrange( 0.05, 0.1 ) );
|
||||
|
||||
if ( common_scripts\utility::issp() )
|
||||
{
|
||||
var_1 playsound( self.v["soundalias"], "sounddone" );
|
||||
var_1 waittill( "sounddone" );
|
||||
}
|
||||
else
|
||||
{
|
||||
var_1 playsound( self.v["soundalias"] );
|
||||
wait 2;
|
||||
}
|
||||
|
||||
wait 0.1;
|
||||
var_1.is_playing = 0;
|
||||
}
|
||||
|
||||
get_reactive_sound_ent()
|
||||
{
|
||||
foreach ( var_1 in level._fx.reactive_sound_ents )
|
||||
{
|
||||
if ( !var_1.is_playing )
|
||||
return var_1;
|
||||
}
|
||||
|
||||
if ( level._fx.reactive_sound_ents.size < 4 )
|
||||
{
|
||||
var_1 = spawn( "script_origin", ( 0, 0, 0 ) );
|
||||
var_1.is_playing = 0;
|
||||
level._fx.reactive_sound_ents[level._fx.reactive_sound_ents.size] = var_1;
|
||||
return var_1;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
361
common_scripts/_pipes.gsc
Normal file
361
common_scripts/_pipes.gsc
Normal file
@ -0,0 +1,361 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
main()
|
||||
{
|
||||
if ( isdefined( level.pipes_init ) )
|
||||
return;
|
||||
|
||||
level.pipes_init = 1;
|
||||
var_0 = getentarray( "pipe_shootable", "targetname" );
|
||||
|
||||
if ( !var_0.size )
|
||||
return;
|
||||
|
||||
level._pipes = spawnstruct();
|
||||
level._pipes.num_pipe_fx = 0;
|
||||
var_0 thread precachefx();
|
||||
var_0 thread methodsinit();
|
||||
thread post_load( var_0 );
|
||||
}
|
||||
|
||||
post_load( var_0 )
|
||||
{
|
||||
waittillframeend;
|
||||
|
||||
if ( level.createfx_enabled )
|
||||
return;
|
||||
|
||||
common_scripts\utility::array_thread( var_0, ::pipesetup );
|
||||
}
|
||||
|
||||
pipesetup()
|
||||
{
|
||||
self setcandamage( 1 );
|
||||
self setcanradiusdamage( 0 );
|
||||
self.pipe_fx_array = [];
|
||||
var_0 = undefined;
|
||||
|
||||
if ( isdefined( self.target ) )
|
||||
{
|
||||
var_0 = common_scripts\utility::getstruct( self.target, "targetname" );
|
||||
self.a = var_0.origin;
|
||||
var_1 = anglestoforward( var_0.angles );
|
||||
var_1 = var_1 * 128;
|
||||
self.b = self.a + var_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
var_1 = anglestoforward( self.angles );
|
||||
var_2 = var_1 * 64;
|
||||
self.a = self.origin + var_2;
|
||||
var_2 = var_1 * -64;
|
||||
self.b = self.origin + var_2;
|
||||
}
|
||||
|
||||
thread pipe_wait_loop();
|
||||
}
|
||||
|
||||
pipe_wait_loop()
|
||||
{
|
||||
var_0 = ( 0, 0, 0 );
|
||||
var_1 = 0;
|
||||
var_2 = 4;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "damage", var_3, var_4, var_5, var_0, var_6 );
|
||||
|
||||
if ( var_1 )
|
||||
{
|
||||
if ( randomint( 100 ) <= 33 )
|
||||
continue;
|
||||
}
|
||||
|
||||
var_1 = 1;
|
||||
var_7 = pipe_logic( var_5, var_0, var_6, var_4 );
|
||||
|
||||
if ( var_7 )
|
||||
var_2--;
|
||||
|
||||
if ( var_2 <= 0 )
|
||||
break;
|
||||
}
|
||||
|
||||
self setcandamage( 0 );
|
||||
}
|
||||
|
||||
pipe_logic( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
if ( level._pipes.num_pipe_fx > 8 )
|
||||
return 0;
|
||||
|
||||
if ( !isdefined( level._pipes._pipe_methods[var_2] ) )
|
||||
var_1 = pipe_calc_nofx( var_1, var_2 );
|
||||
else
|
||||
var_1 = self [[ level._pipes._pipe_methods[var_2] ]]( var_1, var_2 );
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
return 0;
|
||||
|
||||
if ( isdefined( var_3.classname ) && var_3.classname == "worldspawn" )
|
||||
return 0;
|
||||
|
||||
foreach ( var_5 in self.pipe_fx_array )
|
||||
{
|
||||
if ( distancesquared( var_1, var_5.origin ) < 25 )
|
||||
return 0;
|
||||
}
|
||||
|
||||
var_7 = undefined;
|
||||
|
||||
if ( isai( var_3 ) )
|
||||
var_7 = var_3 geteye();
|
||||
else
|
||||
var_7 = var_3.origin;
|
||||
|
||||
var_8 = var_1 - var_7;
|
||||
var_9 = bullettrace( var_7, var_7 + 1.5 * var_8, 0, var_3, 0 );
|
||||
|
||||
if ( isdefined( var_9["normal"] ) && isdefined( var_9["entity"] ) && var_9["entity"] == self )
|
||||
{
|
||||
var_10 = var_9["normal"];
|
||||
thread pipefx( var_1, var_10, var_3 );
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
pipefx( var_0, var_1, var_2 )
|
||||
{
|
||||
var_3 = level._pipes.fx_time[self.script_noteworthy];
|
||||
var_4 = level._pipes._pipe_fx_time[self.script_noteworthy];
|
||||
var_5 = int( var_4 / var_3 );
|
||||
var_6 = 30;
|
||||
var_7 = level._pipes._sound[self.script_noteworthy + "_hit"];
|
||||
var_8 = level._pipes._sound[self.script_noteworthy + "_loop"];
|
||||
var_9 = level._pipes._sound[self.script_noteworthy + "_end"];
|
||||
var_10 = spawn( "script_origin", var_0 );
|
||||
var_10 playsound( var_7 );
|
||||
var_10 playloopsound( var_8 );
|
||||
self.pipe_fx_array[self.pipe_fx_array.size] = var_10;
|
||||
|
||||
if ( common_scripts\utility::issp() || self.script_noteworthy != "steam" )
|
||||
thread pipe_damage( var_0, var_1, var_2, var_10 );
|
||||
|
||||
if ( self.script_noteworthy == "oil_leak" )
|
||||
{
|
||||
var_11 = spawn( "script_model", var_0 );
|
||||
var_11 setmodel( "tag_origin" );
|
||||
var_11.angles = vectortoangles( var_1 );
|
||||
playfxontag( level._pipes._effect[self.script_noteworthy], var_11, "tag_origin" );
|
||||
level._pipes.num_pipe_fx++;
|
||||
var_11 rotatepitch( 90, var_3, 1, 1 );
|
||||
wait( var_3 );
|
||||
stopfxontag( level._pipes._effect[self.script_noteworthy], var_11, "tag_origin" );
|
||||
var_5--;
|
||||
}
|
||||
else
|
||||
{
|
||||
playfx( level._pipes._effect[self.script_noteworthy], var_0, var_1 );
|
||||
level._pipes.num_pipe_fx++;
|
||||
wait( var_3 );
|
||||
var_5--;
|
||||
}
|
||||
|
||||
while ( level._pipes.num_pipe_fx <= 8 && var_5 > 0 )
|
||||
{
|
||||
if ( self.script_noteworthy == "oil_leak" )
|
||||
{
|
||||
var_11 = spawn( "script_model", var_0 );
|
||||
var_11 setmodel( "tag_origin" );
|
||||
var_11.angles = vectortoangles( var_1 );
|
||||
playfxontag( level._pipes._effect[self.script_noteworthy], var_11, "tag_origin" );
|
||||
level._pipes.num_pipe_fx++;
|
||||
var_11 rotatepitch( 90, var_3, 1, 1 );
|
||||
wait( var_3 );
|
||||
stopfxontag( level._pipes._effect[self.script_noteworthy], var_11, "tag_origin" );
|
||||
continue;
|
||||
}
|
||||
|
||||
playfx( level._pipes._effect[self.script_noteworthy], var_0, var_1 );
|
||||
wait( var_3 );
|
||||
var_5--;
|
||||
}
|
||||
|
||||
var_10 playsound( var_9 );
|
||||
wait 0.5;
|
||||
var_10 stoploopsound( var_8 );
|
||||
var_10 delete();
|
||||
self.pipe_fx_array = common_scripts\utility::array_removeundefined( self.pipe_fx_array );
|
||||
level._pipes.num_pipe_fx--;
|
||||
}
|
||||
|
||||
pipe_damage( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
if ( !allow_pipe_damage() )
|
||||
return;
|
||||
|
||||
var_3 endon( "death" );
|
||||
var_4 = var_3.origin + vectornormalize( var_1 ) * 40;
|
||||
var_5 = level._pipes._dmg[self.script_noteworthy];
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if ( !isdefined( self.damageowner ) )
|
||||
self radiusdamage( var_4, 36, var_5, var_5 * 0.75, undefined, "MOD_TRIGGER_HURT" );
|
||||
else
|
||||
self radiusdamage( var_4, 36, var_5, var_5 * 0.75, var_2, "MOD_TRIGGER_HURT" );
|
||||
|
||||
wait 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
allow_pipe_damage()
|
||||
{
|
||||
if ( !common_scripts\utility::issp() )
|
||||
return 0;
|
||||
|
||||
if ( !isdefined( level.pipesdamage ) )
|
||||
return 1;
|
||||
|
||||
return level.pipesdamage;
|
||||
}
|
||||
|
||||
methodsinit()
|
||||
{
|
||||
level._pipes._pipe_methods = [];
|
||||
level._pipes._pipe_methods["MOD_UNKNOWN"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_PISTOL_BULLET"] = ::pipe_calc_ballistic;
|
||||
level._pipes._pipe_methods["MOD_RIFLE_BULLET"] = ::pipe_calc_ballistic;
|
||||
level._pipes._pipe_methods["MOD_GRENADE"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_GRENADE_SPLASH"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_PROJECTILE"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_PROJECTILE_SPLASH"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_TRIGGER_HURT"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_EXPLOSIVE"] = ::pipe_calc_splash;
|
||||
level._pipes._pipe_methods["MOD_EXPLOSIVE_BULLET"] = ::pipe_calc_splash;
|
||||
}
|
||||
|
||||
pipe_calc_ballistic( var_0, var_1 )
|
||||
{
|
||||
return var_0;
|
||||
}
|
||||
|
||||
pipe_calc_splash( var_0, var_1 )
|
||||
{
|
||||
var_2 = vectornormalize( vectorfromlinetopoint( self.a, self.b, var_0 ) );
|
||||
var_0 = pointonsegmentnearesttopoint( self.a, self.b, var_0 );
|
||||
return var_0 + var_2 * 4;
|
||||
}
|
||||
|
||||
pipe_calc_nofx( var_0, var_1 )
|
||||
{
|
||||
return undefined;
|
||||
}
|
||||
|
||||
precachefx()
|
||||
{
|
||||
var_0 = 0;
|
||||
var_1 = 0;
|
||||
var_2 = 0;
|
||||
var_3 = 0;
|
||||
var_4 = 0;
|
||||
|
||||
foreach ( var_6 in self )
|
||||
{
|
||||
if ( var_6.script_noteworthy == "water" )
|
||||
var_6.script_noteworthy = "steam";
|
||||
|
||||
if ( var_6.script_noteworthy == "steam" )
|
||||
{
|
||||
var_6 willneverchange();
|
||||
var_0 = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_6.script_noteworthy == "fire" )
|
||||
{
|
||||
var_6 willneverchange();
|
||||
var_1 = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_6.script_noteworthy == "steam_small" )
|
||||
{
|
||||
var_6 willneverchange();
|
||||
var_2 = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_6.script_noteworthy == "oil_leak" )
|
||||
{
|
||||
var_6 willneverchange();
|
||||
var_3 = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_6.script_noteworthy == "oil_cap" )
|
||||
{
|
||||
var_6 willneverchange();
|
||||
var_4 = 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( var_0 )
|
||||
{
|
||||
level._pipes._effect["steam"] = loadfx( "fx/impacts/pipe_steam" );
|
||||
level._pipes._sound["steam_hit"] = "mtl_steam_pipe_hit";
|
||||
level._pipes._sound["steam_loop"] = "mtl_steam_pipe_hiss_loop";
|
||||
level._pipes._sound["steam_end"] = "mtl_steam_pipe_hiss_loop_end";
|
||||
level._pipes.fx_time["steam"] = 3;
|
||||
level._pipes._dmg["steam"] = 5;
|
||||
level._pipes._pipe_fx_time["steam"] = 25;
|
||||
}
|
||||
|
||||
if ( var_2 )
|
||||
{
|
||||
level._pipes._effect["steam_small"] = loadfx( "fx/impacts/pipe_steam_small" );
|
||||
level._pipes._sound["steam_small_hit"] = "mtl_steam_pipe_hit";
|
||||
level._pipes._sound["steam_small_loop"] = "mtl_steam_pipe_hiss_loop";
|
||||
level._pipes._sound["steam_small_end"] = "mtl_steam_pipe_hiss_loop_end";
|
||||
level._pipes.fx_time["steam_small"] = 3;
|
||||
level._pipes._dmg["steam_small"] = 5;
|
||||
level._pipes._pipe_fx_time["steam_small"] = 25;
|
||||
}
|
||||
|
||||
if ( var_1 )
|
||||
{
|
||||
level._pipes._effect["fire"] = loadfx( "fx/impacts/pipe_fire" );
|
||||
level._pipes._sound["fire_hit"] = "mtl_gas_pipe_hit";
|
||||
level._pipes._sound["fire_loop"] = "mtl_gas_pipe_flame_loop";
|
||||
level._pipes._sound["fire_end"] = "mtl_gas_pipe_flame_end";
|
||||
level._pipes.fx_time["fire"] = 3;
|
||||
level._pipes._dmg["fire"] = 5;
|
||||
level._pipes._pipe_fx_time["fire"] = 25;
|
||||
}
|
||||
|
||||
if ( var_3 )
|
||||
{
|
||||
level._pipes._effect["oil_leak"] = loadfx( "fx/impacts/pipe_oil_barrel_spill" );
|
||||
level._pipes._sound["oil_leak_hit"] = "mtl_oil_barrel_hit";
|
||||
level._pipes._sound["oil_leak_loop"] = "mtl_oil_barrel_hiss_loop";
|
||||
level._pipes._sound["oil_leak_end"] = "mtl_oil_barrel_hiss_loop_end";
|
||||
level._pipes.fx_time["oil_leak"] = 6;
|
||||
level._pipes._pipe_fx_time["oil_leak"] = 6;
|
||||
level._pipes._dmg["oil_leak"] = 5;
|
||||
}
|
||||
|
||||
if ( var_4 )
|
||||
{
|
||||
level._pipes._effect["oil_cap"] = loadfx( "fx/impacts/pipe_oil_barrel_squirt" );
|
||||
level._pipes._sound["oil_cap_hit"] = "mtl_steam_pipe_hit";
|
||||
level._pipes._sound["oil_cap_loop"] = "mtl_steam_pipe_hiss_loop";
|
||||
level._pipes._sound["oil_cap_end"] = "mtl_steam_pipe_hiss_loop_end";
|
||||
level._pipes.fx_time["oil_cap"] = 3;
|
||||
level._pipes._dmg["oil_cap"] = 5;
|
||||
level._pipes._pipe_fx_time["oil_cap"] = 5;
|
||||
}
|
||||
}
|
1759
common_scripts/_sentry.gsc
Normal file
1759
common_scripts/_sentry.gsc
Normal file
File diff suppressed because it is too large
Load Diff
84
common_scripts/_wind.gsc
Normal file
84
common_scripts/_wind.gsc
Normal file
@ -0,0 +1,84 @@
|
||||
// IW6 GSC SOURCE
|
||||
// Generated by https://github.com/xensik/gsc-tool
|
||||
|
||||
wind( var_0, var_1, var_2, var_3 )
|
||||
{
|
||||
level notify( "wind changed" );
|
||||
level endon( "wind changed" );
|
||||
|
||||
if ( !isdefined( var_1 ) )
|
||||
{
|
||||
wind_internal_blendovertime( var_0, 2 );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !isdefined( var_2 ) )
|
||||
var_2 = 3;
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
var_3 = 0.4;
|
||||
|
||||
var_4 = randomfloat( 1 );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
var_4 = var_4 + randomfloatrange( -1 * var_3, var_3 );
|
||||
|
||||
if ( var_4 < 0 )
|
||||
var_4 = var_4 * -1;
|
||||
else if ( var_4 > 1 )
|
||||
var_4 = 2 - var_4;
|
||||
|
||||
var_5 = pow( var_4, var_2 );
|
||||
var_5 = var_0 * ( 1 - var_5 ) + var_1 * var_5;
|
||||
|
||||
if ( getdvarint( "interactives_debug", 0 ) )
|
||||
iprintln( "wind n: " + var_4 + ", strength: " + var_5 );
|
||||
|
||||
wind_internal_blendovertime( var_5, 1.2 );
|
||||
}
|
||||
}
|
||||
|
||||
wind_blendtonewvalue( var_0, var_1 )
|
||||
{
|
||||
level notify( "wind changed" );
|
||||
level endon( "wind changed" );
|
||||
wind_internal_blendovertime( var_0, var_1 );
|
||||
}
|
||||
|
||||
wind_internal_blendovertime( var_0, var_1, var_2, var_3, var_4 )
|
||||
{
|
||||
if ( !isdefined( var_1 ) )
|
||||
var_1 = 1;
|
||||
|
||||
if ( !isdefined( var_2 ) )
|
||||
var_2 = var_1 / 0.05;
|
||||
|
||||
if ( !isdefined( var_3 ) )
|
||||
var_3 = var_0 * 5;
|
||||
|
||||
if ( isdefined( var_4 ) )
|
||||
var_5 = var_2 * var_4 / var_1;
|
||||
else
|
||||
var_5 = var_2 * 0.5;
|
||||
|
||||
var_6 = getdvarfloat( "r_reactiveMotionWindStrength" );
|
||||
var_7 = getdvarfloat( "r_reactiveMotionWindAmplitudeScale" );
|
||||
var_8 = ( var_0 - var_7 ) / var_2;
|
||||
var_9 = ( var_3 - var_6 ) / var_5;
|
||||
|
||||
for ( var_10 = 0; var_10 < var_2; var_10 = var_10 + 1 )
|
||||
{
|
||||
var_7 = var_7 + var_8;
|
||||
var_6 = var_6 + var_9;
|
||||
setsaveddvar( "r_reactiveMotionWindAmplitudeScale", var_7 );
|
||||
|
||||
if ( var_10 < var_5 )
|
||||
setsaveddvar( "r_reactiveMotionWindStrength", var_6 );
|
||||
|
||||
wait( var_1 / var_2 );
|
||||
}
|
||||
|
||||
setsaveddvar( "r_reactiveMotionWindAmplitudeScale", var_0 );
|
||||
setsaveddvar( "r_reactiveMotionWindStrength", var_3 );
|
||||
}
|
2844
common_scripts/utility.gsc
Normal file
2844
common_scripts/utility.gsc
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user