This commit is contained in:
2024-02-13 13:20:49 +01:00
commit 872504afef
1761 changed files with 871764 additions and 0 deletions

View File

@ -0,0 +1,7 @@
// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
setfogsliders()
{
}

View 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

File diff suppressed because it is too large Load Diff

View 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];
}

View 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"];
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1014
common_scripts/_elevator.gsc Normal file

File diff suppressed because it is too large Load Diff

View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

84
common_scripts/_wind.gsc Normal file
View 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

File diff suppressed because it is too large Load Diff