/******************************************************************* * Decompiled By: Bog * Decompiled File: maps\mp\_load.gsc * Game: Call of Duty: Black Ops 2 * Platform: PC * Function Count: 10 * Decompile Time: 9 ms * Timestamp: 10/28/2023 12:10:58 AM *******************************************************************/ #include common_scripts/utility; #include maps/mp/_art; #include maps/mp/_audio; #include maps/mp/_busing; #include maps/mp/_createfx; #include maps/mp/_demo; #include maps/mp/_destructible; #include maps/mp/_development_dvars; #include maps/mp/_fxanim; #include maps/mp/_global_fx; #include maps/mp/_interactive_objects; #include maps/mp/_load; #include maps/mp/_music; #include maps/mp/_proximity_grenade; #include maps/mp/_riotshield; #include maps/mp/_script_gen; #include maps/mp/_serverfaceanim_mp; #include maps/mp/_trophy_system; #include maps/mp/_utility; #include maps/mp/_vehicles; #include maps/mp/animscripts/traverse/shared; #include maps/mp/animscripts/utility; #include maps/mp/gametypes/_spawning; #include maps/mp/gametypes/_spawnlogic; #include maps/mp/gametypes/_tweakables; #include maps/mp/killstreaks/_ai_tank; #include maps/mp/killstreaks/_dogs; #include maps/mp/killstreaks/_helicopter_guard; #include maps/mp/killstreaks/_rcbomb; //Function Number: 1 main(bscriptgened,bcsvgened,bsgenabled) { if(!(IsDefined(level.script_gen_dump_reasons))) { level.script_gen_dump_reasons = []; } if(!(IsDefined(bsgenabled))) { level.script_gen_dump_reasons[level.script_gen_dump_reasons.size] = "First run"; } if(!(IsDefined(bcsvgened))) { bcsvgened = 0; } level.bcsvgened = bcsvgened; if(!(IsDefined(bscriptgened))) { bscriptgened = 0; } else { bscriptgened = 1; } level.bscriptgened = bscriptgened; level._loadstarted = 1; struct_class_init(); level.clientscripts = GetDvar(#"8831409B") != ""; level._client_exploders = []; level._client_exploder_ids = []; if(!(IsDefined(level.flag))) { level.flag = []; level.flags_lock = []; } if(!(IsDefined(level.timeofday))) { level.timeofday = "day"; } flag_init("scriptgen_done"); level.script_gen_dump_reasons = []; if(!(IsDefined(level.script_gen_dump))) { level.script_gen_dump = []; level.script_gen_dump_reasons[0] = "First run"; } if(!(IsDefined(level.script_gen_dump2))) { level.script_gen_dump2 = []; } if(IsDefined(level.createfxent)) { script_gen_dump_addline("maps\\mp\\createfx\\" + level.script + "_fx::main();",level.script + "_fx"); } if(IsDefined(level.script_gen_dump_preload)) { for(i = 0;i < level.script_gen_dump_preload.size;i++) { script_gen_dump_addline(level.script_gen_dump_preload[i].string,level.script_gen_dump_preload[i].signature); } } if(GetDvar(#"33CF364A") == "") { setdvar("scr_RequiredMapAspectratio","1"); } setdvar("r_waterFogTest",0); setdvar("tu6_player_shallowWaterHeight","0.0"); precacherumble("reload_small"); precacherumble("reload_medium"); precacherumble("reload_large"); precacherumble("reload_clipin"); precacherumble("reload_clipout"); precacherumble("reload_rechamber"); precacherumble("pullout_small"); precacherumble("buzz_high"); precacherumble("riotshield_impact"); registerclientsys("levelNotify"); level.aitriggerspawnflags = getaitriggerflags(); level.vehicletriggerspawnflags = getvehicletriggerflags(); level.physicstracemaskphysics = 1; level.physicstracemaskvehicle = 2; level.physicstracemaskwater = 4; level.physicstracemaskclip = 8; level.physicstracecontentsvehicleclip = 16; level.createfx_enabled = GetDvar(#"134D5297") != ""; if(!(sessionmodeiszombiesgame())) { thread maps/mp/gametypes/_spawning::init(); thread maps/mp/gametypes/_tweakables::init(); thread maps/mp/_destructible::init(); thread maps/mp/_riotshield::register(); thread maps/mp/_vehicles::init(); thread maps/mp/killstreaks/_dogs::init(); thread maps/mp/killstreaks/_ai_tank::register(); thread maps/mp/killstreaks/_rcbomb::register(); thread maps/mp/killstreaks/_helicopter_guard::register(); thread maps/mp/_trophy_system::register(); thread maps/mp/_proximity_grenade::register(); maps/mp/_audio::init(); thread maps/mp/_busing::businit(); thread maps/mp/_music::music_init(); thread maps/mp/_fxanim::init(); } else { level thread start_intro_screen_zm(); thread maps/mp/_interactive_objects::init(); maps/mp/_audio::init(); thread maps/mp/_busing::businit(); thread maps/mp/_music::music_init(); thread maps/mp/_fxanim::init(); thread maps/mp/_serverfaceanim_mp::init(); if(level.createfx_enabled) { setinitialplayersconnected(); } } visionsetnight("default_night"); setup_traversals(); maps/mp/_art::main(); setupexploders(); parse_structs(); if(sessionmodeiszombiesgame()) { thread footsteps(); } /# level thread level_notify_listener(); level thread client_notify_listener(); #/ thread maps/mp/_createfx::fx_init(); if(level.createfx_enabled) { calculate_map_center(); maps/mp/_createfx::createfx(); } if(GetDvar(#"F7B30924") == "1") { maps/mp/_global_fx::main(); level waittill("eternity"); } thread maps/mp/_global_fx::main(); maps/mp/_demo::init(); if(!(sessionmodeiszombiesgame())) { thread maps/mp/_development_dvars::init(); } for(p = 0;p < 6;p++) { switch(p) { case "0": triggertype = "trigger_multiple"; break; case "1": triggertype = "trigger_once"; break; case "2": triggertype = "trigger_use"; break; case "3": triggertype = "trigger_radius"; break; case "4": triggertype = "trigger_lookat"; break; default: /# assert(p == 5); #/ triggertype = "trigger_damage"; break; } triggers = getentarray(triggertype,"classname"); for(i = 0;i < triggers.size;i++) { if(IsDefined(triggers[i].script_prefab_exploder)) { triggers[i].script_exploder = triggers[i].script_prefab_exploder; } if(IsDefined(triggers[i].script_exploder)) { level thread maps/mp/_load::exploder_load(triggers[i]); } } } } //Function Number: 2 level_notify_listener() { while(1) { val = GetDvar(#"B42CFE95"); if(val != "") { level notify(val); setdvar("level_notify",""); } wait(0.2); } } //Function Number: 3 client_notify_listener() { while(1) { val = GetDvar(#"C5740DFC"); if(val != "") { clientnotify(val); setdvar("client_notify",""); } wait(0.2); } } //Function Number: 4 footsteps() { maps/mp/animscripts/utility::setfootstepeffect("asphalt",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("brick",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("carpet",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("cloth",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("concrete",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("dirt",loadfx("bio/player/fx_footstep_sand")); maps/mp/animscripts/utility::setfootstepeffect("foliage",loadfx("bio/player/fx_footstep_sand")); maps/mp/animscripts/utility::setfootstepeffect("gravel",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("grass",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("metal",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("mud",loadfx("bio/player/fx_footstep_mud")); maps/mp/animscripts/utility::setfootstepeffect("paper",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("plaster",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("rock",loadfx("bio/player/fx_footstep_dust")); maps/mp/animscripts/utility::setfootstepeffect("sand",loadfx("bio/player/fx_footstep_sand")); maps/mp/animscripts/utility::setfootstepeffect("water",loadfx("bio/player/fx_footstep_water")); maps/mp/animscripts/utility::setfootstepeffect("wood",loadfx("bio/player/fx_footstep_dust")); } //Function Number: 5 parse_structs() { for(i = 0;i < level.struct.size;i++) { if(IsDefined(level.struct[i].targetname)) { if(level.struct[i].targetname == "flak_fire_fx") { level._effect["flak20_fire_fx"] = loadfx("weapon/tracer/fx_tracer_flak_single_noExp"); level._effect["flak38_fire_fx"] = loadfx("weapon/tracer/fx_tracer_quad_20mm_Flak38_noExp"); level._effect["flak_cloudflash_night"] = loadfx("weapon/flak/fx_flak_cloudflash_night"); level._effect["flak_burst_single"] = loadfx("weapon/flak/fx_flak_single_day_dist"); } if(level.struct[i].targetname == "fake_fire_fx") { level._effect["distant_muzzleflash"] = loadfx("weapon/muzzleflashes/heavy"); } if(level.struct[i].targetname == "spotlight_fx") { level._effect["spotlight_beam"] = loadfx("env/light/fx_ray_spotlight_md"); } } } } //Function Number: 6 exploder_load(trigger) { level endon("killexplodertridgers" + trigger.script_exploder); trigger waittill("trigger"); if(IsDefined(trigger.script_chance) && randomfloat(1) > trigger.script_chance) { if(IsDefined(trigger.script_delay)) { wait(trigger.script_delay); } else { wait(4); } level thread exploder_load(trigger); return; } maps/mp/_utility::exploder(trigger.script_exploder); level notify("killexplodertridgers" + trigger.script_exploder); } //Function Number: 7 setupexploders() { ents = getentarray("script_brushmodel","classname"); smodels = getentarray("script_model","classname"); for(i = 0;i < smodels.size;i++) { ents[ents.size] = smodels[i]; } for(i = 0;i < ents.size;i++) { if(IsDefined(ents[i].script_prefab_exploder)) { ents[i].script_exploder = ents[i].script_prefab_exploder; } if(IsDefined(ents[i].script_exploder)) { if(ents[i].model == "fx" && !IsDefined(ents[i].targetname) || ents[i].targetname != "exploderchunk") { ents[i] hide(); } else if(IsDefined(ents[i].targetname) && ents[i].targetname == "exploder") { ents[i] hide(); ents[i] notsolid(); } else if(IsDefined(ents[i].targetname) && ents[i].targetname == "exploderchunk") { ents[i] hide(); ents[i] notsolid(); } } } script_exploders = []; potentialexploders = getentarray("script_brushmodel","classname"); for(i = 0;i < potentialexploders.size;i++) { if(IsDefined(potentialexploders[i].script_prefab_exploder)) { potentialexploders[i].script_exploder = potentialexploders[i].script_prefab_exploder; } if(IsDefined(potentialexploders[i].script_exploder)) { script_exploders[script_exploders.size] = potentialexploders[i]; } } potentialexploders = getentarray("script_model","classname"); for(i = 0;i < potentialexploders.size;i++) { if(IsDefined(potentialexploders[i].script_prefab_exploder)) { potentialexploders[i].script_exploder = potentialexploders[i].script_prefab_exploder; } if(IsDefined(potentialexploders[i].script_exploder)) { script_exploders[script_exploders.size] = potentialexploders[i]; } } potentialexploders = getentarray("item_health","classname"); for(i = 0;i < potentialexploders.size;i++) { if(IsDefined(potentialexploders[i].script_prefab_exploder)) { potentialexploders[i].script_exploder = potentialexploders[i].script_prefab_exploder; } if(IsDefined(potentialexploders[i].script_exploder)) { script_exploders[script_exploders.size] = potentialexploders[i]; } } if(!(IsDefined(level.createfxent))) { level.createfxent = []; } acceptabletargetnames = []; acceptabletargetnames["exploderchunk visible"] = 1; acceptabletargetnames["exploderchunk"] = 1; acceptabletargetnames["exploder"] = 1; for(i = 0;i < script_exploders.size;i++) { exploder = script_exploders[i]; ent = createexploder(exploder.script_fxid); ent.v = []; ent.v["origin"] = exploder.origin; ent.v["angles"] = exploder.angles; ent.v["delay"] = exploder.script_delay; ent.v["firefx"] = exploder.script_firefx; ent.v["firefxdelay"] = exploder.script_firefxdelay; ent.v["firefxsound"] = exploder.script_firefxsound; ent.v["firefxtimeout"] = exploder.script_firefxtimeout; ent.v["earthquake"] = exploder.script_earthquake; ent.v["damage"] = exploder.script_damage; ent.v["damage_radius"] = exploder.script_radius; ent.v["soundalias"] = exploder.script_soundalias; ent.v["repeat"] = exploder.script_repeat; ent.v["delay_min"] = exploder.script_delay_min; ent.v["delay_max"] = exploder.script_delay_max; ent.v["target"] = exploder.target; ent.v["ender"] = exploder.script_ender; ent.v["type"] = "exploder"; if(!(IsDefined(exploder.script_fxid))) { ent.v["fxid"] = "No FX"; } else { ent.v["fxid"] = exploder.script_fxid; } ent.v["exploder"] = exploder.script_exploder; /# assert(IsDefined(exploder.script_exploder),"Exploder at origin " + exploder.origin + " has no script_exploder"); #/ if(!(IsDefined(ent.v["delay"]))) { ent.v["delay"] = 0; } if(IsDefined(exploder.target)) { org = getent(ent.v["target"],"targetname").origin; ent.v["angles"] = VectorToAngles(org - ent.v["origin"]); } if(exploder.classname == "script_brushmodel" || IsDefined(exploder.model)) { ent.model = exploder; ent.model.disconnect_paths = exploder.script_disconnectpaths; } if(IsDefined(exploder.targetname) && IsDefined(acceptabletargetnames[exploder.targetname])) { ent.v["exploder_type"] = exploder.targetname; } else { ent.v["exploder_type"] = "normal"; } ent maps/mp/_createfx::post_entity_creation_function(); } level.createfxexploders = []; for(i = 0;i < level.createfxent.size;i++) { ent = level.createfxent[i]; if(ent.v["type"] != "exploder") { } else { ent.v["exploder_id"] = getexploderid(ent); if(!(IsDefined(level.createfxexploders[ent.v["exploder"]]))) { level.createfxexploders[ent.v["exploder"]] = []; } level.createfxexploders[ent.v["exploder"]][level.createfxexploders[ent.v["exploder"]].size] = ent; } } } //Function Number: 8 setup_traversals() { potential_traverse_nodes = getallnodes(); for(i = 0;i < potential_traverse_nodes.size;i++) { node = potential_traverse_nodes[i]; if(node.type == "Begin") { node maps/mp/animscripts/traverse/shared::init_traverse(); } } } //Function Number: 9 calculate_map_center() { if(!(IsDefined(level.mapcenter))) { level.nodesmins = (0,0,0); level.nodesmaxs = (0,0,0); level.mapcenter = maps/mp/gametypes/_spawnlogic::findboxcenter(level.nodesmins,level.nodesmaxs); /# println("map center: ",level.mapcenter); #/ setmapcenter(level.mapcenter); } } //Function Number: 10 start_intro_screen_zm() { if(level.createfx_enabled) { return; } if(!(IsDefined(level.introscreen))) { level.introscreen = newhudelem(); level.introscreen.x = 0; level.introscreen.y = 0; level.introscreen.horzalign = "fullscreen"; level.introscreen.vertalign = "fullscreen"; level.introscreen.foreground = 0; level.introscreen setshader("black",640,480); wait(0.05); } level.introscreen.alpha = 1; players = get_players(); for(i = 0;i < players.size;i++) { players[i] freezecontrols(1); } wait(1); }