/******************************************************************* * Decompiled By: Bog * Decompiled File: maps\mp\_vl_camera.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 121 * Decompile Time: 2033 ms * Timestamp: 10/27/2023 1:46:43 AM *******************************************************************/ //Function Number: 1 delayed_luinotifyserver(param_00,param_01,param_02) { wait(param_00); self notify("luinotifyserver",param_01,param_02); } //Function Number: 2 setup_camparams() { var_00 = spawnstruct(); var_00.targetzoff = 40; var_00.basedelta = 0.25; var_00.tgtdelta = var_00.basedelta; var_00.accel = 0.01; var_00.delta = 0; var_00.basedangle = 0.5; var_00.angleaccel = 0.01; var_00.tgtdangle = var_00.basedangle; var_00.dangle = 0; var_00.maxorbitangle = 60; var_00.minorbitdist = 60; var_00.maxorbitdist = 120; var_00.angle = 0; var_00.dist = 120; var_00.dof_time = 12; var_00.face_dof_mod = -10; var_00.caotolobbyframedelay = 3; var_00.caotolobbyframetimer = 0; var_00.gamelobbygroup_camoffset_angle_ratio = 0; var_00.gamelobbygroup_camerazoff_zoom = 45; var_00.gamelobbygroup_targetzoff_zoom = 50; var_00.gamelobbygroup_camera_offset = 6; var_00.gamelobbygroup_camera_targetoffset = 6; var_00.gamelobbygroup_camera_upclosez = 513; var_00.gamelobbygroup_camera_normalz = 507; var_00.gamelobbygroup_camera_crouchz = 483; var_00.gamelobbygroup_camera_hunchz = 502; var_00.gamelobbygroup_camera_closedistance = 71.5; var_00.gamelobbygroup_camera_normaldistance = 96.8; var_00.gamelobbygroup_camera_crouchdistance = 96.8; var_00.gamelobbygroup_camera_hunchdistance = 96.8; var_00.gamelobbygroup_camera_crouchthreshold = 490; var_00.gamelobbygroup_camera_hunchthreshold = 504.5; var_00.gamelobbygroup_camera_normalthreshold = 509.5; var_00.gamelobbygroup_movespeed_modifier = 0.95; var_00.cac_camoffset_angle_ratio = 0; var_00.cac_camerazoff_zoom = 7; var_00.cac_targetzoff_zoom = 13; var_00.cac_camera_offset = 0; var_00.cac_camera_targetoffset = 0; var_00.camoffset_ratio_cac = 0.1; var_00.cac_ratio_zoom = 0.2; var_00.cac_framedelay = 0; var_00.cac_camerazoff = 17; var_00.cac_targetzoff = 14.5; var_00.cac_dist = 69; var_00.cac_weap_offset = 8; var_00.cac_weap_tuning = 0; var_00.cac_weap_tuning_camoffset = 0; var_00.cac_weap_tuning_weap_sideoffset = 0; var_00.cac_weap_tuning_weap_zoffset = 0; var_00.cacweapondelaytime = 0.35; var_00.cacweaponanimdelaytime = 0.1; var_00.cacweaponattachdelaytime = 0.05; var_00.gamelobby_movespeed = 150; var_00.gamelobby_camoffset_angle_ratio = 0.2; var_00.gamelobby_camerazoff_zoom = 45; var_00.gamelobby_targetzoff_zoom = 55; var_00.gamelobby_camera_offset = 16; var_00.gamelobby_camera_targetoffset = 24; var_00.gamelobby_camera_rotation_speed = 0.5; var_00.goal = "avatar"; var_00.gamelobby_camera_curve_modify = 0.005; var_00.gamelobby_camera_curve_storedy = 0; var_00.gamelobby_camera_curve_movex = 64; var_00.gamelobby_camera_depth_scaler = 0; var_00.tgt_camoffset_ratio = var_00.camoffset_ratio_prelobby; var_00.cur_camoffset_ratio = var_00.tgt_camoffset_ratio; var_00.cac_camoffset_ratio = 0; var_00.cac_weap_loot_offset = (-0.02,0,-0.08); var_00.cac_weap_screen_offset = (0.05,0,-0.06); var_00.camoffset_ratio_maxspeed = 0.25; var_00.camzoff = 10; var_00.movespeed = 150; var_00.angspeed = 800; var_00.prelobbyzoom = 0; var_01 = self getunnormalizedcameramovement(); var_00.oldrotx = var_01[0]; var_00.oldroty = var_01[1]; var_00.zoom = 0.5; var_00.rotate = 0.5; var_00.framedelay = 0; var_00.pre_lobby_framedelay = 4; var_00.delayed_cut = 0; var_00.dof_near_start = 0; var_00.dof_near_end = 0; var_00.dof_far_start = 159.8; var_00.dof_far_end = 205.59; var_00.dof_near_blur = 7.5; var_00.dof_far_blur = 2; var_00.origin_offset = (0,0,40); var_00.prelobby_movespeed = 300; var_00.prelobby_targetzoff_zoom = 10; var_00.prelobby_targetzoff = 42; var_00.prelobby_neardist = 40; var_00.prelobby_fardist = 200; var_00.prelobby_camerazoff = 0; var_00.prelobby_camerazoff_zoom = 20; var_00.prelobby_camera_ratio = 0.325; var_00.prelobby_ratio_zoom = 0.2; var_00.camoffset_ratio_lobby = -0.1; var_00.camoffset_ratio_prelobby = 0.19; var_00.camoffset_ratio_prelobby_loot = -1; var_00.ch_cyl_zoff_far = 36; var_00.ch_cyl_zoff_near = 42; var_00.transitioning = 0; var_00.cao_targetzoff_zoom = 10; var_00.cao_targetzoff = 31; var_00.cao_neardist = 40; var_00.cao_fardist = 200; var_00.cao_camerazoff = 0; var_00.cao_camerazoff_zoom = 20; var_00.cao_camera_ratio = 0.77; var_00.cao_ratio_zoom = 0.2; var_00.cao_camoffset_ratio = 0.25; var_02 = getdvarint("virtualLobbyMode",0); if(var_02 == 0) { var_00.mode = "game_lobby"; start_prelobby_anims(); setdvar("virtualLobbyReady","0"); } else { var_00.mode = "transition"; var_00.tgt_camoffset_ratio = var_00.camoffset_ratio_lobby; var_00.cur_camoffset_ratio = var_00.tgt_camoffset_ratio; start_lobby_anims(); if(getdvarint("virtualLobbyReady",0) == 0) { setdvar("virtualLobbyReady","1"); } if(var_02 == 2) { thread delayed_luinotifyserver(0.1,"cac",0); } else if(var_02 == 3) { thread delayed_luinotifyserver(0.1,"cao",0); } } var_00.newmode = var_00.mode; level.camparams = var_00; } //Function Number: 3 update_camera_params_ratio(param_00) { if(isdefined(self.cut)) { param_00.cur_camoffset_ratio = param_00.tgt_camoffset_ratio; return; } var_01 = param_00.tgt_camoffset_ratio - param_00.cur_camoffset_ratio; if(var_01 < -1 * param_00.camoffset_ratio_maxspeed) { var_01 = -1 * param_00.camoffset_ratio_maxspeed; } else if(var_01 > param_00.camoffset_ratio_maxspeed) { var_01 = param_00.camoffset_ratio_maxspeed; } param_00.cur_camoffset_ratio = param_00.cur_camoffset_ratio + var_01; } //Function Number: 4 vlobby_lighting_setup() { var_00 = self; if(isdefined(level.vl_lighting_setup)) { var_00 [[ level.vl_lighting_setup ]](); return; } var_00 enablephysicaldepthoffieldscripting(); var_00 setphysicaldepthoffield(0.613159,89.8318,level.camparams.dof_time,level.camparams.dof_time); } //Function Number: 5 set_avatar_dof() { if(isdefined(level.camparams.goal)) { if(level.camparams.goal == "moving" || level.camparams.goal == "finding_new_position" || level.vlavatars[level.vl_focus] != level.vlavatars[level.old_vl_focus]) { return; } } if(isdefined(level.camparams.camera.cut) && level.camparams.camera.cut == 1) { return; } var_00 = self; if(isdefined(level.camparams.camera.goal_location)) { var_01 = level.camparams.camera.goal_location; } else { var_02 = level.vlavatars[level.old_vl_focus]; var_03 = var_02 gettagorigin("TAG_STOWED_BACK"); var_04 = distance2d(var_03,var_02.avatar_spawnpoint.origin); var_05 = var_02.avatar_spawnpoint.origin + anglestoforward(var_02.avatar_spawnpoint.angles) * var_04; var_01 = (var_05[0],var_05[1],var_03[2]); } var_06 = checkcamposition(level.camparams.camera,var_01,1.5); if(var_06 == 1) { var_07 = var_01; } else { var_07 = level.camparams.camera.origin; } var_08 = distance(level.vlavatars[level.old_vl_focus] gettagorigin("j_spine4"),var_07); var_00 vlobby_dof_based_on_focus(var_08 + level.camparams.face_dof_mod); } //Function Number: 6 vlobby_dof_based_on_focus(param_00) { if(param_00 <= 0) { return; } var_01 = self; var_02 = level.camparams.dof_time; if(isdefined(level.vl_dof_based_on_focus)) { var_01 [[ level.vl_dof_based_on_focus ]](param_00); return; } var_03 = param_00; var_01 = self; var_04 = 0.025; var_05 = 0.65; var_06 = 0.613159; var_07 = 94.9504; var_08 = var_07 - var_03 * var_04; var_09 = var_06 + var_08 + var_08 * var_05; if(var_09 < 0.125) { var_09 = 0.125; } else if(var_09 > 128) { var_09 = 128; } var_01 setphysicaldepthoffield(var_09,var_03,level.camparams.dof_time,level.camparams.dof_time * 2); } //Function Number: 7 vlobby_handle_mode_change(param_00,param_01,param_02) { var_03 = self; if(isdefined(level.vl_handle_mode_change)) { var_03 [[ level.vl_handle_mode_change ]](param_00,param_01,param_02); return; } if(param_00 == "cac") { var_03 setdefaultpostfx(); } else if(param_00 == "cao") { } if(param_01 == "cac") { var_03 visionsetnakedforplayer("mp_vlobby_refraction_cac",0); var_03 lightsetforplayer("mp_vl_create_a_class"); return; } if(param_01 == "cao") { var_03 setphysicaldepthoffield(1.53,130,level.camparams.dof_time,level.camparams.dof_time); return; } if(param_01 == "clanprofile") { var_03 setdefaultdof(); return; } if(param_01 == "prelobby") { var_03 setdefaultpostfx(); return; } if(param_00 == "prelobby_members") { return; } if(param_00 == "prelobby_loadout") { return; } if(param_00 == "prelobby_loot") { return; } if(param_01 == "game_lobby") { var_03 setdefaultpostfx(); return; } if(param_00 == "startmenu") { return; } if(param_00 == "transition") { return; } } //Function Number: 8 setdefaultpostfx() { var_00 = self; var_00 visionsetnakedforplayer("mp_vlobby_room",0); var_00 lightsetforplayer("mp_vlobby_room"); } //Function Number: 9 setdefaultdof() { var_00 = self; var_00 setphysicaldepthoffield(0.613159,89.8318,level.camparams.dof_time,level.camparams.dof_time); } //Function Number: 10 fixlocalfocus() { if(!isdefined(level.vlavatars[level.vl_focus])) { foreach(var_02, var_01 in level.vlavatars) { level.vl_focus = var_02; break; } } if(!isdefined(level.vlavatars[level.vl_local_focus])) { level.vl_local_focus = level.vl_focus; } } //Function Number: 11 vlobby_player() { self endon("disconnect"); wait(0.05); var_00 = self; var_00 setclientomnvar("ui_vlobby_round_state",0); var_00 setclientomnvar("ui_vlobby_round_timer",0); var_00 grab_players_classes(); var_01 = var_00.origin; var_02 = var_00.angles; var_03 = var_01 - (0,0,30); var_00 setup_camparams(); var_00 vlobby_lighting_setup(); var_04 = anglestoforward(var_00.angles); var_05 = anglestoright(var_00.angles); var_06 = var_04; var_07 = getgroundposition(var_01,20,512,120); var_08 = var_00 getxuid(); var_09 = var_08 == ""; var_0A = undefined; level.needlocalmemberid = 1; level.vl_focus = 0; level.vl_local_focus = 0; var_00.team = "spectator"; var_0B = "iw5_hbra3_mp"; var_0C = "iw5_hbra3"; if(isdefined(var_00.loadouts["customClasses"][0]["primary"]) && var_00.loadouts["customClasses"][0]["primary"] != "none") { var_0D = var_00.loadouts["customClasses"][0]["primary"]; var_0E = var_00.loadouts["customClasses"][0]["primaryAttachment1"]; var_0F = var_00.loadouts["customClasses"][0]["primaryAttachment2"]; var_10 = var_00.loadouts["customClasses"][0]["primaryAttachment3"]; var_11 = var_00.loadouts["customClasses"][0]["primaryCamo"]; var_12 = var_00.loadouts["customClasses"][0]["primaryReticule"]; if(isdefined(var_11)) { var_11 = int(tablelookup("mp/camoTable.csv",1,var_11,0)); } else { var_11 = undefined; } if(isdefined(var_12)) { var_12 = int(tablelookup("mp/reticleTable.csv",1,var_12,0)); } else { var_12 = undefined; } var_0B = maps\mp\gametypes\_class::buildweaponname(var_0D,var_0E,var_0F,var_10,var_11,var_12); var_0C = var_00.loadouts["customClasses"][0]["primary"]; } else if(isdefined(var_00.primaryweapon)) { var_0B = var_00.primaryweapon; var_0C = var_00.pers["primaryWeapon"]; } var_13 = getent("cao_spawnpoint","targetname"); if(!var_09) { maps\mp\_vl_base::vlprintln("adding xuid " + var_08 + "from vlobby_player"); var_14 = maps\mp\_vl_base::add_avatar(var_08); var_00 spawn_an_avatar(var_00.avatar_spawnpoint,var_0B,var_00.secondaryweapon,var_0C,var_00.loadoutequipment,var_00.loadoutoffhand,var_00.perks,var_00.sessioncostume,var_00.name,var_14,0); setentplayerxuidforemblem(level.vlavatars[var_14],var_08); thread setvirtuallobbypresentable(); } else { level.needtopresent = 1; } setdvar("virtuallobbymembers",level.xuid2ownerid.size); var_00.cao_agent = var_00 spawn_an_avatar(var_13,var_0B,var_00.secondaryweapon,var_0C,var_00.loadoutequipment,var_00.loadoutoffhand,var_00.perks,var_00.sessioncostume,var_00.name,0,1); setentplayerxuidforemblem(var_00.cao_agent,var_08); hide_avatar(var_00.cao_agent); var_00.clan_agents = []; var_15 = [0,1,4]; for(var_16 = 0;var_16 < 3;var_16++) { var_17 = maps\mp\gametypes\vlobby::getspawnpoint(var_15[var_16]); var_00.clan_agents[var_16] = var_00 spawn_an_avatar(var_17,var_0B,var_00.secondaryweapon,var_0C,var_00.loadoutequipment,var_00.loadoutoffhand,var_00.perks,var_00.sessioncostume,var_00.name,0,0,1); hide_avatar(var_00.clan_agents[var_16]); } var_00 thread monitor_class_select_or_weapon_change(0); if(!var_09) { var_0A = level.vlavatars[level.vl_focus]; var_0A.membertimeout = gettime(); var_0A.currentselectedclass = var_00.currentselectedclass; var_0A.player = var_00; var_0A.sessioncostume = var_0A.costume; virtual_lobby_set_class(0,"lobby" + var_0A.currentselectedclass + 1,1); } thread monitor_debug_addfakemembers(var_00,level.camparams); var_18 = (-70.7675,-691.293,507.472); var_19 = var_00.avatar_spawnpoint.origin - var_18; var_1A = (0,87,0); var_19 = vectornormalize(var_19); var_1B = spawn("script_model",var_18); var_1B.angles = var_1A; var_1B setmodel("tag_player"); var_1B.startorigin = var_18; var_1B.startangles = var_1A; var_1B.savedorigin = (0,0,0); var_1B.cam_percent_away = 0; var_1B.hasreachedfinalpos = 1; var_1B.camdirectionforward = 1; var_1B.cut = 1; var_1B.gap = 0; var_1B.finished = 1; var_1B.goal_location = var_18; storecameratargets(var_1B); var_1C = 400; var_00.camera = var_1B; var_1B.player = var_00; var_00.hastouchedstick = 0; var_1D = (0,90,0); var_1B.movingstate = "starting"; level.vlcamera = var_1B; var_00 setorigin(var_1B.origin); var_00 playerlinkto(var_1B,"tag_player"); var_00 cameralinkto(var_1B,"tag_player"); level.in_firingrange = 0; var_00 allowfire(0); var_00 maps\mp\_vl_base::prep_for_controls(var_00.spawned_avatar,var_00.spawned_avatar.spawn_angles); var_00 maps\mp\_vl_base::prep_for_controls(var_00.cao_agent,var_00.cao_agent.spawn_angles); var_00 maps\mp\_vl_base::prep_for_controls(var_00.clan_agents[0],var_00.clan_agents[0].spawn_angles); var_00 maps\mp\_vl_base::prep_for_controls(var_00.clan_agents[1],var_00.clan_agents[1].spawn_angles); var_00 maps\mp\_vl_base::prep_for_controls(var_00.clan_agents[2],var_00.clan_agents[2].spawn_angles); maps\mp\_utility::updatesessionstate("spectator"); var_1E = level.camparams; var_1E.camera = var_1B; init_path_constants(var_1B); var_1F = 300; level.old_vl_focus = level.vl_focus; var_1C = 1000; var_20 = anglestoforward(var_1B.angles); var_21 = undefined; var_22 = undefined; var_23 = undefined; var_24 = undefined; level.camparams.framedelay = level.camparams.pre_lobby_framedelay; thread monitor_player_removed(); thread monitor_vl_mode_change(); var_25 = 0; var_26 = 0; var_00 setclientdvar("cg_fovscale","0.6153"); var_00 notify("fade_in"); for(;;) { maps\mp\_vl_base::avatar_after_spawn(); if(level.vlavatars.size == 0) { if(var_1E.mode == "game_lobby" || var_1E.mode == "prelobby_loot") { hide_avatar(var_00.cao_agent); for(var_16 = 0;var_16 < 3;var_16++) { hide_avatar(var_00.clan_agents[var_16]); } var_1B.cut = 1; var_00.avatar_spawnpoint = maps\mp\gametypes\vlobby::getspawnpoint(0); lobby_update_group_new(var_1B,undefined,var_1E,var_00.avatar_spawnpoint); vlobby_vegnette(1,"ac130_overlay_pip_vignette_vlobby"); } wait(0.05); continue; } var_0A = level.vlavatars[level.vl_focus]; if(var_26) { var_26 = 0; var_00 thread debug_pathing(); } if(getdvarint("scr_vl_debugfly") > 0) { if(!var_25) { var_25 = 1; setdvar("lui_enabled","0"); level.debug_fly = undefined; var_00 allowfire(1); } var_00 debug_fly(var_1B); } else if(var_25) { setdvar("lui_enabled","1"); var_25 = 0; var_1B.origin = var_1B.startorigin; var_1B.angles = var_1B.startangles; var_00 allowfire(0); } if(!level.in_firingrange) { if(level.vl_focus != level.old_vl_focus) { var_00 maps\mp\_vl_base::prep_for_controls(level.vlavatars[level.vl_focus],level.vlavatars[level.vl_focus].angles); if(var_1E.mode != "game_lobby") { var_1E.newmode = "transition"; } level.old_vl_focus = level.vl_focus; var_1E.transitioning = 1; } if(isdefined(level.vl_cao_focus) || isdefined(level.prv_vl_cao_focus)) { if(!isdefined(level.vl_cao_focus)) { var_1E.newmode = var_1E.pushmode; level.prv_vl_cao_focus = undefined; } else if(!isdefined(level.prv_vl_cao_focus)) { var_1E.newmode = "cao"; var_1E.pushmode = var_1E.mode; level.prv_vl_cao_focus = level.vl_cao_focus; } else if(level.vl_cao_focus != level.prv_vl_cao_focus) { level.prv_vl_cao_focus = level.vl_cao_focus; } } if(isdefined(level.cac) || isdefined(level.prv_cac)) { if(!isdefined(level.cac)) { var_1E.newmode = var_1E.pushmode; level.prv_cac = undefined; level.prv_cac_weapon = "none"; } else if(!isdefined(level.prv_cac)) { var_1E.newmode = "cac"; var_1E.pushmode = var_1E.mode; level.prv_cac = level.cac; } } if(isdefined(level.vl_clanprofile_focus) || isdefined(level.prv_vl_clanprofile_focus)) { if(!isdefined(level.vl_clanprofile_focus)) { var_1E.newmode = var_1E.pushmode; level.prv_vl_clanprofile_focus = undefined; } else if(!isdefined(level.prv_vl_clanprofile_focus)) { var_1E.newmode = "clanprofile"; var_1E.pushmode = var_1E.mode; level.prv_vl_clanprofile_focus = level.vl_clanprofile_focus; } else if(level.vl_clanprofile_focus != level.prv_vl_clanprofile_focus) { level.prv_vl_clanprofile_focus = level.vl_clanprofile_focus; var_00 maps\mp\_vl_base::prep_for_controls(var_00.clan_agents[level.vl_clanprofile_focus],var_00.clan_agents[level.vl_clanprofile_focus].angles); } } if(level.vlavatars.size == 0) { continue; } fixlocalfocus(); var_0A = level.vlavatars[level.vl_focus]; if(var_1E.newmode != var_1E.mode) { var_00 vlobby_handle_mode_change(var_1E.mode,var_1E.newmode,var_1E); if(var_1E.newmode == "cac") { hide_avatar(var_00.cao_agent); for(var_16 = 0;var_16 < 3;var_16++) { hide_avatar(var_00.clan_agents[var_16]); } var_00.hastouchedstick = 0; var_1E.mode = var_1E.newmode; var_1E.tgt_camoffset_ratio = var_1E.cac_camoffset_angle_ratio; var_0A = level.vlavatars[level.vl_focus]; var_00 maps\mp\_vl_base::prep_for_controls(var_0A,var_0A.angles); } else if(var_1E.mode == "cac") { maps\mp\_vl_base::show_non_owner_avatars(); var_0A = level.vlavatars[level.vl_focus]; var_00.hastouchedstick = 0; } if(var_1E.newmode == "cao") { if(isdefined(level.vl_local_focus) && isdefined(level.vlavatars[level.vl_local_focus])) { var_27 = level.vlavatars[level.vl_local_focus]; level.players[0].costume = var_27.costume; var_28 = level.players[0] maps\mp\gametypes\_teams::playercostume(); var_28 = var_27 maps\mp\gametypes\_teams::playercostume(); var_29 = level.players[0].cao_agent; vl_avatar_costume(var_29,var_27.costume); var_28 = var_29 maps\mp\gametypes\_teams::playercostume(); foreach(var_08, var_2B in level.xuid2ownerid) { if(var_2B == level.vl_local_focus) { if(isdefined(level.cao_xuid) && level.cao_xuid != var_08) { setentplayerxuidforemblem(var_29,level.cao_xuid,1); } setentplayerxuidforemblem(var_29,var_08); level.cao_xuid = var_08; break; } } } show_avatar(var_00.cao_agent); var_00.cao_agent hackagentangles(var_00.cao_agent.spawn_angles); hide_avatars(); for(var_16 = 0;var_16 < 3;var_16++) { hide_avatar(var_00.clan_agents[var_16]); } var_0A = var_00.cao_agent; var_00 maps\mp\_vl_base::prep_for_controls(var_00.cao_agent,var_00.cao_agent.angles); start_cao_anims(); var_1E.mode = var_1E.newmode; var_1B.cut = 1; var_00 setorigin(var_0A.origin); } else if(var_1E.newmode == "clanprofile") { hide_avatar(var_00.cao_agent); hide_avatars(); for(var_16 = 0;var_16 < 3;var_16++) { var_00.clan_agents[var_16] hackagentangles(var_00.clan_agents[var_16].spawn_angles); var_00 maps\mp\_vl_base::prep_for_controls(var_00.clan_agents[var_16],var_00.clan_agents[var_16].angles); } var_0A = var_00.clan_agents[0]; var_1E.mode = var_1E.newmode; var_00 setorigin(var_0A.origin); } else if(var_1E.newmode == "prelobby_loot") { var_1B.cut = 1; } else if(var_1E.newmode == "transition") { var_1E.newmode = "game_lobby"; } if(var_1E.newmode == "game_lobby") { fixlocalfocus(); if(var_1E.mode == "cac" && isdefined(level.vl_focus)) { var_2C = level.vl_focus; } else { var_2C = 0; foreach(var_2B, var_2E in level.vlavatars) { var_2C = var_2B; break; } } if(var_1E.mode == "cao" || var_1E.mode == "cac" || var_1E.mode == "clanprofile") { var_1B.finished = 1; if(isdefined(level.vl_cao_focus)) { level.vl_local_focus = var_2C; var_2C = getfocusfromcontroller(level.vl_cao_focus); } else if(isdefined(level.vl_clanprofile_focus)) { level.vl_local_focus = var_2C; var_2C = getfocusfromcontroller(level.vl_clanprofile_focus); } else { level.vl_local_focus = var_2C; } } if(isdefined(level.vlavatars) && isdefined(level.old_vl_focus) && isdefined(level.vlavatars[level.old_vl_focus])) { var_00 maps\mp\_vl_base::prep_for_controls(level.vlavatars[level.old_vl_focus],level.vlavatars[level.old_vl_focus].angles); } var_1E.goal = "waiting"; if(var_1E.mode != "cac") { show_avatars(); } level.vl_focus = var_2C; level.old_vl_focus = var_2C; var_0A = level.vlavatars[var_2C]; if(var_1E.mode != "cac") { var_1B.cut = 1; } else if(var_1E.mode == "cac" && isdefined(var_1B.avatar_spawnpoint) && var_1B.avatar_spawnpoint != var_0A.avatar_spawnpoint) { var_1B.cut = 1; } start_lobby_anims(); var_1B.last_avatar_position = var_0A.avatar_spawnpoint; var_1B.avatar_spawnpoint = var_0A.avatar_spawnpoint; var_00 maps\mp\_vl_base::prep_for_controls(var_0A,var_0A.angles); var_1B.movingstate = "starting"; var_00 setorigin(var_0A.origin); } var_1E.mode = var_1E.newmode; } if(var_1E.mode == "startmenu") { start_menu_update(var_1B,var_1E); } else if(var_1E.mode == "cao") { var_0A = var_00.cao_agent; cao_update(var_1B,var_0A,var_1E); vlobby_vegnette(1,"ac130_overlay_pip_vignette_vlobby_cao"); } else if(var_1E.mode == "clanprofile") { var_0A = var_00.clan_agents[level.vl_clanprofile_focus]; clan_profile_update(var_1B,var_0A,var_1E); vlobby_vegnette(1,"ac130_overlay_pip_vignette_vlobby"); } else if(var_1E.mode == "cac") { lobby_update_group_new(var_1B,level.vlavatars[level.vl_focus],var_1E,var_00.avatar_spawnpoint); } else if(var_1E.mode == "transition") { var_1E.newmode = "game_lobby"; } else if(var_1E.caotolobbyframetimer <= 0) { hide_avatar(var_00.cao_agent); for(var_16 = 0;var_16 < 3;var_16++) { hide_avatar(var_00.clan_agents[var_16]); } lobby_update_group_new(var_1B,var_0A,var_1E,var_00.avatar_spawnpoint); vlobby_vegnette(1,"ac130_overlay_pip_vignette_vlobby"); } else { var_1E.caotolobbyframetimer = var_1E.caotolobbyframetimer - 1; } } if(level.in_firingrange) { vlobby_vegnette(0,"ac130_overlay_pip_vignette_vlobby"); } wait(0.05); } } //Function Number: 12 tablelookupweaponoffsets(param_00,param_01,param_02) { var_03 = float(tablelookup("mp/vlobby_cac_offsets.csv",param_01,param_00,param_02)); if(!isdefined(var_03)) { var_03 = 0; } return var_03; } //Function Number: 13 storecameratargets(param_00) { var_01 = getentarray("player_pos","targetname"); param_00.camerhelperarray = []; foreach(var_03 in var_01) { param_00.camerhelperarray[param_00.camerhelperarray.size] = var_03; } foreach(var_03 in var_01) { var_06 = getent(var_03.target,"targetname"); if(var_06.script_noteworthy == "camera_target") { var_03.camera_lookat = var_06; } var_07 = getent(var_06.target,"targetname"); if(var_07.script_noteworthy == "camera") { var_03.camera_helper = var_07; var_07.camera_goal = var_03; var_07.camera_lookat = var_03.camera_lookat; } if(var_03.script_noteworthy == "0") { level.camparams.last_camera_helper = var_03.camera_helper; } var_08 = int(var_03.script_noteworthy); param_00.camerhelperarray[var_08] = var_03; } } //Function Number: 14 calc_target_dir(param_00,param_01,param_02) { var_03 = param_01 - param_00; var_04 = length2d(var_03); var_05 = var_04 / sqrt(1 + param_02.cur_camoffset_ratio * param_02.cur_camoffset_ratio); var_06 = var_03[0] - param_02.cur_camoffset_ratio * var_03[1]; var_07 = param_02.cur_camoffset_ratio * var_03[0] + var_03[1]; var_08 = var_05 * vectornormalize((var_06,var_07,0)); var_08 = var_08 + (0,0,var_03[2]); return var_08; } //Function Number: 15 hacky_get_delta_xrot(param_00,param_01) { var_02 = param_01 - param_00.oldrotx; if(var_02 < -180) { var_02 = 360 + var_02; } else if(var_02 > 180) { var_02 = 360 - var_02; } param_00.oldrotx = param_01; return var_02; } //Function Number: 16 hacky_get_delta_yrot(param_00,param_01) { var_02 = param_01 - param_00.oldroty; if(var_02 < -180) { var_02 = -1; } else if(var_02 > 180) { var_02 = 1; } else { var_02 = 0; } param_00.oldroty = param_01; return var_02; } //Function Number: 17 cammove(param_00,param_01,param_02,param_03) { if(isdefined(self.cut)) { self.origin = param_00; return; } self moveto(param_00,param_01,param_02,param_03); } //Function Number: 18 camrotate(param_00,param_01,param_02,param_03) { if(isdefined(self.cut)) { self.angles = param_00; return; } self rotateto(param_00,param_01,param_02,param_03); } //Function Number: 19 rotateavatartagcamera(param_00,param_01) { if(!isdefined(param_00)) { var_02 = spawnstruct(); var_02.camera_tag_origin = (-70.8,-691.3,502.2); var_02.camera_tag_angles = (0,87,0); return var_02; } var_03 = param_01 gettagorigin("TAG_STOWED_BACK"); var_04 = param_01 gettagangles("TAG_STOWED_BACK"); var_05 = param_01.spawn_angles[1] - param_01.angles[1]; var_06 = (0,0,1); var_07 = var_03 - param_01.origin; var_08 = rotatepointaroundvector(var_06,var_07,var_05); var_09 = param_01.origin + var_08; param_01.camera_tag_origin = var_09; param_01.camera_tag_angles = (var_04[0],angleclamp(var_04[1] + var_05),var_04[2]); var_02 = spawnstruct(); var_09.camera_tag_origin = param_00.camera_tag_origin; var_09.camera_tag_angles = param_00.camera_tag_angles; return var_09; } //Function Number: 20 checkcamposition(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = 2; } var_03 = distance(param_01,param_00.origin); if(var_03 >= param_02) { return 1; } return 0; } //Function Number: 21 lobby_update_group_new(param_00,param_01,param_02,param_03) { if(!isdefined(param_01)) { level.camparams.framedelay = level.camparams.pre_lobby_framedelay; var_04 = param_00.startangles; if(isdefined(param_03)) { var_04 = (0,param_03.angles[1] + 180,0); } var_05 = param_00.startorigin; var_06 = distance(param_00.origin,var_05); var_07 = var_06 / param_02.prelobby_movespeed; if(var_07 < 0.1) { var_07 = 0.1; } param_00 cammove(var_05,var_07,var_07 * 0.5,var_07 * 0.5); param_00 camrotate(var_04,var_07,var_07 * 0.5,var_07 * 0.5); } else { if(level.camparams.framedelay == level.camparams.pre_lobby_framedelay) { maps\mp\_vl_base::prep_for_controls(var_04,var_04.angles); } var_04 = (0,87,0); if(isdefined(param_03.avatar_spawnpoint)) { var_07 = (0,param_03.avatar_spawnpoint.angles[1] + 180,0); } var_08 = param_03 gettagorigin("TAG_STOWED_BACK"); if(!isdefined(param_01.camera_state)) { param_01.camera_state = "stand"; } if(param_01.camera_state == "crouch") { var_09 = param_01.avatar_spawnpoint.origin + anglestoforward(param_01.avatar_spawnpoint.angles) * param_02.gamelobbygroup_camera_crouchdistance; var_0A = (var_09[0],var_09[1],param_02.gamelobbygroup_camera_crouchz); } else if(param_03.camera_state == "hunch") { var_09 = param_03.avatar_spawnpoint.origin + anglestoforward(param_03.avatar_spawnpoint.angles) * var_04.gamelobbygroup_camera_hunchdistance; var_0A = (var_0A[0],var_0A[1],param_03.gamelobbygroup_camera_hunchz); } else if(param_03.camera_state == "stand") { var_09 = param_03.avatar_spawnpoint.origin + anglestoforward(param_03.avatar_spawnpoint.angles) * var_04.gamelobbygroup_camera_normaldistance; var_0A = (var_0A[0],var_0A[1],param_03.gamelobbygroup_camera_normalz); } else if(param_03.camera_state == "zoom_high") { var_09 = param_03.avatar_spawnpoint.origin + anglestoforward(param_03.avatar_spawnpoint.angles) * var_04.gamelobbygroup_camera_closedistance; var_0A = (var_0A[0],var_0A[1],param_03.gamelobbygroup_camera_upclosez); } else { var_09 = param_03.avatar_spawnpoint.origin + anglestoforward(param_03.avatar_spawnpoint.angles) * var_04.gamelobbygroup_camera_normaldistance; var_0A = (var_0A[0],var_0A[1],param_03.gamelobbygroup_camera_normalz); } param_00.goal_location = var_0A; var_0B = 0; if(level.camparams.framedelay == 0) { var_0B = checkcamposition(param_00,var_0A,1.5); } param_02.cur_camoffset_ratio = param_02.gamelobbygroup_camoffset_angle_ratio; param_02.tgt_camoffset_ratio = param_02.gamelobbygroup_camoffset_angle_ratio; param_00 update_camera_params_ratio(param_02); var_0C = 0; var_0D = 0; var_06 = distance(param_00.origin,var_0A); var_07 = var_06 / param_02.gamelobby_movespeed; if(var_07 < 0.1) { var_07 = 0.1; } var_0E = var_06 / param_02.gamelobby_movespeed * level.camparams.gamelobbygroup_movespeed_modifier; if(var_0E < 0.1) { var_0E = 0.1; } var_0F = 1; var_10 = getdvarint("virtualLobbyMode",0); if(var_10 != 2 && var_10 != 4 && var_10 != 3) { maps\mp\_vl_base::rightstickrotateavatar(param_01,0.5); } else if(var_10 == 4 || var_10 == 3) { maps\mp\_vl_base::prep_for_controls(param_01,param_01.angles); param_00.cut = 1; } else if(var_10 == 2) { maps\mp\_vl_base::prep_for_controls(param_01,param_01.angles); } if(level.camparams.framedelay > 0) { level.camparams.framedelay = level.camparams.framedelay - 1; } if(isdefined(param_01.avatar_spawnpoint) && isdefined(param_00.avatar_spawnpoint) && param_01.avatar_spawnpoint != param_00.avatar_spawnpoint) { param_00.lastavatarpositionent = param_00.avatar_spawnpoint; param_00.avatar_spawnpoint = param_01.avatar_spawnpoint; param_02.goal = "finding_new_position"; var_0B = 1; param_00.finished = 0; } else if(var_0B == 1) { param_02.goal = "moving"; } if(param_02.goal == "waiting") { if(var_0B == 1) { param_02.goal = "moving"; param_00.finished = 1; } param_00.last_avatar_position = param_01.avatar_spawnpoint; } if(param_02.goal == "finding_new_position") { if(var_0B == 1) { param_00.lastavatarpositionent = param_00.avatar_spawnpoint; param_00.avatar_spawnpoint = param_01.avatar_spawnpoint; param_00.obstacles = []; var_11 = 16; foreach(var_13 in level.vlavatars) { var_14 = []; var_14["center"] = var_13.avatar_spawnpoint.origin; var_14["radius"] = var_11; param_00.obstacles[param_00.obstacles.size] = var_14; } build_path_info(param_00,param_02,param_00.origin,var_0A,var_04); param_00.fparams = calc_f_from_avatar(param_01); param_00.target_from_avatar = get_target_from_avatar(param_01); param_02.goal = "moving"; } param_02.goal = "moving"; } if(param_02.goal == "moving") { if(level.camparams.framedelay <= 0) { level.camparams.framedelay = 0; if(param_00.finished == 0) { if(isdefined(param_00.cut)) { param_00 cammove(var_0A,var_07,var_0C,var_0D); param_00 camrotate(var_04,var_0F,var_0F * 0.5,var_0F * 0.5); param_00.finished = 1; } else { param_00.finished = update_camera_on_path(param_00,param_02); } } if(param_00.finished) { param_00 cammove(var_0A,var_0E,var_0E * 0.5,var_0E * 0.5); param_00 camrotate(var_04,var_0E,var_0E * 0.5,var_0E * 0.5); param_02.goal = "waiting"; } } } level.players[0] set_avatar_dof(); } if(isdefined(param_00.cut)) { param_00 dontinterpolate(); param_00.cut = undefined; } if(getdvarint("virtualLobbyReady",0) == 0) { wait(1); setdvar("virtualLobbyReady","1"); thread setvirtuallobbypresentable(); } } //Function Number: 22 setvirtuallobbypresentable() { level notify("cancel_vlp"); level endon("cancel_vlp"); if(level.vlavatars.size > 0 && isdefined(level.vlavatars[0]) && isdefined(level.vlavatars[0].primaryweapon) && isweaponloaded(level.vlavatars[0].primaryweapon)) { level.needtopresent = undefined; wait(0.5); setdvar("virtualLobbyPresentable","1"); return; } level.needtopresent = 1; } //Function Number: 23 resetvirtuallobbypresentable() { level notify("cancel_vlp"); level endon("cancel_vlp"); level.needtopresent = undefined; wait(0.25); setdvar("virtualLobbyPresentable","0"); } //Function Number: 24 moveplayereyetocam(param_00) { var_01 = level.players[0]; var_02 = var_01 geteye(); var_03 = var_02 - var_01.origin; var_01 setorigin(param_00.origin - var_03,0); var_01 setplayerangles((var_01.angles[0],param_00.angles[1],var_01.angles[2])); } //Function Number: 25 getaspectratio() { var_00 = spawnstruct(); var_01 = getdvar("r_mode","1280x720 [16:9]"); var_02 = strtok(var_01," "); var_03 = strtok(var_02[0],"x"); var_00.width = maps\mp\_utility::stringtofloat(var_03[0]); var_00.height = maps\mp\_utility::stringtofloat(var_03[1]); var_00.aspectratio = maps\mp\_utility::rounddecimalplaces(var_00.width / var_00.height,3); return var_00; } //Function Number: 26 getmodifiedrotationangle(param_00,param_01,param_02) { if(abs(param_01 - param_00.rotation_total) > 100) { if(param_01 >= 270) { param_00.addtobaseangle = param_00.addtobaseangle + -360 * param_02; if(param_00.addtobaseangle == -360) { param_00.addtobaseangle = 0; } } if(param_01 <= 100) { param_00.addtobaseangle = param_00.addtobaseangle + 360 * param_02; if(param_00.addtobaseangle == 360) { param_00.addtobaseangle = 0; } } } param_00.rotation_total = param_01; var_03 = param_01 * param_02 + param_00.addtobaseangle; return var_03; } //Function Number: 27 cao_update(param_00,param_01,param_02) { maps\mp\_vl_base::rightstickrotateavatar(param_01,0.5); param_02.caotolobbyframetimer = param_02.caotolobbyframedelay; var_03 = param_01.origin + (0,0,-20) + anglestoforward(param_01.spawn_angles) * 120; param_02.zoom = param_02.cao_camera_ratio; param_02.dist = param_02.cao_neardist + param_02.cao_fardist - param_02.cao_neardist * param_02.zoom; var_04 = param_02.cao_camerazoff + param_02.cao_camerazoff_zoom * param_02.zoom; var_05 = param_02.cao_targetzoff + param_02.cao_targetzoff_zoom * 1 - param_02.zoom; param_02.tgt_camoffset_ratio = param_02.cao_camoffset_ratio + param_02.prelobby_ratio_zoom * param_02.zoom - 1; param_00 update_camera_params_ratio(param_02); var_06 = param_02.ch_cyl_zoff_near + param_02.ch_cyl_zoff_far - param_02.ch_cyl_zoff_near * param_02.zoom; var_07 = param_01.origin + (0,0,var_05); var_08 = var_07 - var_03 + param_02.origin_offset; var_08 = param_02.dist * vectornormalize(var_08); var_08 = (var_08[0],var_08[1],-1 * var_04); var_08 = param_02.dist * vectornormalize(var_08); var_09 = var_07 - var_08; if(isdefined(level.caoavatarposoffset)) { var_07 = var_07 + level.caoavatarposoffset; var_09 = var_09 + level.caoavatarposoffset; } var_0A = -1 * var_08; var_0B = vectortoangles(var_0A); param_02.angle = var_0B[1] - param_01.startangles[1]; var_0C = distance(param_00.origin,var_09); var_0D = var_0C / param_02.prelobby_movespeed; if(var_0D < 0.1) { var_0D = 0.1; } param_00 cammove(var_09,var_0D,var_0D * 0.5,var_0D * 0.5); var_0E = calc_target_dir(var_09,var_07,param_02); var_0F = vectortoangles(var_0E); param_00 camrotate(var_0F,var_0D,var_0D * 0.5,var_0D * 0.5); if(isdefined(param_00.cut)) { param_00 dontinterpolate(); param_00.cut = undefined; } } //Function Number: 28 start_menu_update(param_00,param_01) { } //Function Number: 29 clan_profile_update(param_00,param_01,param_02) { var_03 = (0,87,0); if(isdefined(param_01.avatar_spawnpoint)) { var_03 = (0,param_01.avatar_spawnpoint.angles[1] + 180,0); } param_00 update_camera_params_ratio(param_02); var_04 = (14,0,0); var_05 = param_01.origin + var_04 + anglestoforward(param_01.avatar_spawnpoint.angles) * 110; var_06 = (var_05[0],var_05[1],param_02.gamelobbygroup_camera_normalz); param_00.goal_location = var_06; var_07 = distance(param_00.origin,var_06); var_08 = max(var_07 / param_02.gamelobby_movespeed,0.1); var_09 = 0.2; param_00 cammove(var_06,var_08,0,0); param_00 camrotate(var_03,var_09,0,0); maps\mp\_vl_base::rightstickrotateavatar(param_01,0.5); } //Function Number: 30 monitor_vl_mode_change() { self endon("disconnect"); for(;;) { var_00 = getdvarint("virtualLobbyMode",0); if(level.camparams.mode != "cao") { if(level.camparams.mode != "prelobby" && var_00 == 0) { level.camparams.newmode = "game_lobby"; } if(common_scripts\utility::string_find(level.camparams.mode,"prelobby") >= 0 && var_00 == 1) { level.camparams.newmode = "game_lobby"; } } wait(0.05); } } //Function Number: 31 findpositionnum() { var_00 = self.script_noteworthy; var_00 = int(var_00); return var_00; } //Function Number: 32 monitor_player_removed() { self waittill("disconnect"); self.camera delete(); maps\mp\_vl_base::vlprint("remove all ownerIds due to disconnect\n"); foreach(var_01 in level.xuid2ownerid) { remove_avatar(var_01); } } //Function Number: 33 set_agent_values(param_00,param_01) { maps\mp\agents\_agent_utility::set_agent_team(param_00); self.agent_gameparticipant = 0; self.isactive = 1; self.spawntime = gettime(); self.issniper = 0; self.sessionteam = param_01; } //Function Number: 34 bot_disable_tactical_goals() { self.disable_tactical_goals = 1; self.tactical_goals = []; } //Function Number: 35 wait_load_costume_show(param_00) { if(isalive(param_00)) { var_01 = isdefined(level.cac); var_02 = getdvarint("practiceroundgame") && param_00.ownerid != 0; if(!var_01 && !var_02) { show_avatar(param_00); } } } //Function Number: 36 wait_load_costume_timeout(param_00,param_01) { self endon("disconnect"); param_01 endon("wait_load_costume"); param_01 endon("death"); wait(param_00); wait_load_costume_show(param_01); param_01 notify("wait_load_costume"); } //Function Number: 37 wait_load_costume(param_00,param_01) { self endon("disconnect"); param_00 notify("wait_load_costume"); param_00 endon("wait_load_costume"); param_00 endon("death"); if(!isdefined(param_01)) { param_01 = 1; } hide_avatar(param_00); thread wait_load_costume_timeout(5,param_00); var_02 = self loadcostumemodels(param_00.costume,param_00.team); while(!var_02) { wait(0.1); var_02 = self loadcostumemodels(param_00.costume,param_00.team); } if(param_01) { wait_load_costume_show(param_00); } param_00 notify("wait_load_costume"); } //Function Number: 38 spawn_an_avatar(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B) { if(!isdefined(param_0A)) { param_0A = 0; } if(!isdefined(param_0B)) { param_0B = 0; } var_0C = !param_0B; var_0D = "spectator"; var_0E = "none"; var_0F = maps\mp\_vl_base::alloc_avatar(); param_00.spawned_avatar = var_0F; var_0F.avatar_spawnpoint = param_00; var_0F.costume = param_07; var_0F.activecostume = 0; var_0F.rotation_offset = 0; var_0F set_agent_values(var_0D,var_0E); var_10 = getgroundposition(var_0F.avatar_spawnpoint.origin,20,512,120); var_0F.spawn_angles = (param_00.angles[0],param_00.angles[1] + var_0F.rotation_offset,param_00.angles[2]); var_0F.angles = var_0F.spawn_angles; if(!param_0B) { var_0F show(); } var_0F.ownerid = param_09; var_0F setplayerangles(var_0F.spawn_angles); var_0F setorigin(var_10,1); var_0F.angles = var_0F.spawn_angles; var_0F.startangles = var_0F.spawn_angles; var_0F.storedangley = var_0F.angles[1]; var_0F.mouserot = 0; var_0F.storedrightsticky = 0; var_0F.rotation_total = 0; var_0F.addtobaseangle = 0; var_0F.rotation_parent = spawn("script_origin",var_0F.origin); var_0F.camera_cut = 1; var_0F.camera_tag_origin = (0,0,0); var_0F.camera_tag_angles = (0,0,0); var_0F motionblurhqenable(); if(!isdefined(self.spawned_avatar)) { self.spawned_avatar = var_0F; } var_0F enableanimstate(1); if(param_0A == 1) { var_0F.is_cao_agent = 1; param_01 = undefined; var_0F.primaryweapon = undefined; param_03 = undefined; var_0F use_animstate("cao_01",1,"lobby_idle"); } else if(param_0B == 1) { param_01 = undefined; var_0F.primaryweapon = undefined; param_03 = undefined; var_0F use_animstate("cao_01",1,"lobby_idle"); } else { level.vlavatars[param_09] = var_0F; var_11 = var_0F getanimdata(param_03); var_0F use_animstate(var_11.alias,1,var_11.animstate); var_0F thread checkweapchange(param_01); } var_0F maps\mp\gametypes\_spawnlogic::addtocharactersarray(); if(isalive(var_0F)) { vl_avatar_loadout(undefined,param_09,param_01,param_02,param_03,param_04,param_05,param_06,param_07,var_0F); if(level.players.size > 0) { level.players[0] thread wait_load_costume(var_0F,var_0C); } } if(isdefined(level.cac)) { } if((getdvarint("practiceroundgame") && param_09 != 0) || param_0B) { hide_avatar(var_0F); } else { show_avatar(var_0F); } return var_0F; } //Function Number: 39 checkweapchange(param_00) { self endon("disconnect"); self endon("death"); self endon("free_avatar"); if(!isdefined(self.primaryweapon)) { self.primaryweapon = param_00; } self.stored_weapon = self.primaryweapon; var_01 = undefined; for(;;) { if(!isdefined(self.primaryweaponent) || !isdefined(self.akimboweaponent)) { wait(0.05); continue; } if(isdefined(self) && isdefined(self.primaryweapon) && isalive(self)) { var_02 = strtok(self.primaryweapon,"_"); if((issubstr(var_02[1],"dlcgun3") || var_02[1] == "dlcgun10loot5" || var_02[1] == "dlcgun5loot5") && common_scripts\utility::array_contains(var_02,"akimbo")) { var_01 = var_02[0] + "_" + var_02[1] + "_akimbo"; } else { var_01 = var_02[0] + "_" + var_02[1]; } } var_03 = self getanimentry(); var_04 = self getanimentry("lobby_idle","cao_01"); var_05 = getanimdata(var_01); var_06 = self getanimentry(var_05.animstate,var_05.alias); if(isdefined(level.camparams.mode)) { if(level.camparams.newmode != "cao" && level.camparams.mode != "cao") { if(isdefined(self) && isdefined(var_01) && isalive(self)) { var_09 = isweaponloaded(self.primaryweapon); var_0A = self.stored_weapon != self.primaryweapon; var_0B = var_0A || var_03 != var_06; var_0C = getweaponbasename(self.stored_weapon) != getweaponbasename(self.primaryweapon); if(var_0B) { if(var_09) { if(var_0C) { hide_avatar_primary_weapon(self); hide_avatar_akimbo_weapon(self); thread attachweapondelayed(self); thread showprimarydelayed(self); } self.primaryweaponent setpickupweapon(self.primaryweapon); self.akimboweaponent setpickupweapon(self.primaryweapon); if(issubstr(self.primaryweapon,"akimbo") || issubstr(self.primaryweapon,"akimboxmg")) { if(var_0C) { thread showakimbodelayed(self); } } else { self.akimboweaponent hide(); self.akimboweaponent hideallparts(); } self.stored_weapon = self.primaryweapon; var_05 = getanimdata(var_01); self.camera_state = var_05.camera_state; thread animdelayed(var_05.alias,var_05.animstate); thread vl_vfx_for_avatar(); } else { } } } } } wait(0.5); } } //Function Number: 40 isweaponloaded(param_00) { var_01 = 0; if(level.players.size > 0) { var_01 = level.players[0] worldweaponsloaded(param_00); if(!var_01) { level.players[0] loadweapons(param_00); } } return var_01; } //Function Number: 41 attachweapondelayed(param_00) { wait(level.camparams.cacweaponattachdelaytime); attachprimaryweapon(param_00); } //Function Number: 42 animdelayed(param_00,param_01) { wait(level.camparams.cacweaponanimdelaytime); use_animstate(param_00,undefined,param_01); } //Function Number: 43 getanimdata(param_00) { var_01 = spawnstruct(); var_01.alias = param_00; if(isdefined(param_00) && param_00 != "" && param_00 != "none") { var_01.animstate = tablelookup("mp/vlobby_cac_offsets.csv",0,param_00,5); var_01.camera_state = tablelookup("mp/vlobby_cac_offsets.csv",0,param_00,6); if(isdefined(var_01.camera_state)) { self.camera_state = var_01.camera_state; } } if(!isdefined(var_01.animstate) || var_01.animstate == "") { var_01.animstate = "lobby_idle"; var_01.alias = "cao_01"; var_01.camera_state = "stand"; } self setanimclass("vlobby_animclass"); if(!isdefined(var_01.camera_state)) { var_01.camera_state = "stand"; } if(!isdefined(self.camera_state)) { self.camera_state = var_01.camera_state; } return var_01; } //Function Number: 44 vl_give_weapons(param_00,param_01) { if(param_01.isfree) { return; } addlaunchers(param_01); if(!isdefined(param_01.primaryweapon)) { return; } if(!isdefined(param_01.animalias)) { return; } if(param_01.primaryweapon != "none") { if(!isdefined(param_01.primaryweaponent)) { var_02 = spawn("weapon_" + param_01.primaryweapon,(0,0,0)); var_03 = get_xuid_for_avatar(param_01); setentplayerxuidforemblem(var_02,var_03); param_01.primaryweaponent = var_02; var_02.primaryweapon = param_01.primaryweapon; param_01.primaryweaponent show(); param_01.primaryweaponent showallparts(); param_01.primaryweaponent setpickupweapon(param_01.primaryweapon); attachprimaryweapon(param_01); } else if(param_01.primaryweaponent.primaryweapon != param_01.primaryweapon) { param_01.primaryweaponent.primaryweapon = param_01.primaryweapon; } if(!isdefined(param_01.akimboweaponent)) { var_04 = spawn("weapon_" + param_01.primaryweapon,(0,0,0)); var_03 = get_xuid_for_avatar(param_01); setentplayerxuidforemblem(var_04,var_03); param_01.akimboweaponent = var_04; var_04.primaryweapon = param_01.primaryweapon; } else if(param_01.akimboweaponent.primaryweapon != param_01.primaryweapon) { param_01.akimboweaponent.primaryweapon = param_01.primaryweapon; } var_05 = "tag_weapon_left"; if(issubstr(param_01.akimboweaponent.primaryweapon,"combatknife")) { var_05 = "tag_inhand"; } if(issubstr(param_01.akimboweaponent.primaryweapon,"riotshield")) { var_05 = "tag_weapon_left"; } param_01.akimboweaponent unlink(); param_01.akimboweaponent.origin = param_01 gettagorigin(var_05); param_01.akimboweaponent.angles = param_01 gettagangles(var_05); param_01.akimboweaponent vehicle_jetbikesethoverforcescale(param_01,var_05); param_01.akimboweaponent setowneroriginal(param_00); if(issubstr(param_01.primaryweaponent.primaryweapon,"akimbo") || issubstr(param_01.primaryweaponent.primaryweapon,"akimboxmg")) { thread showakimbodelayed(param_01); } else if(!isdefined(param_01.stored_weapon)) { param_01.akimboweaponent hide(); param_01.akimboweaponent hideallparts(); } } if(param_01.secondaryweapon != "none") { if(issubstr(param_01.secondaryweapon,"combatknife")) { if(isdefined(param_01.secondaryweaponent)) { if(param_01.secondaryweaponent islinked()) { param_01.secondaryweaponent unlink(); } param_01.secondaryweaponent delete(); return; } return; } if(!isdefined(param_01.secondaryweaponent)) { var_06 = spawn("weapon_" + param_01.secondaryweapon,(0,0,0)); var_03 = get_xuid_for_avatar(param_01); setentplayerxuidforemblem(var_06,var_03); param_01.secondaryweaponent = var_06; var_06.secondaryweapon = param_01.secondaryweapon; } else if(param_01.secondaryweaponent.secondaryweapon != param_01.secondaryweapon) { param_01.secondaryweaponent setpickupweapon(param_01.secondaryweapon); param_01.secondaryweaponent.secondaryweapon = param_01.secondaryweapon; } var_07 = "tag_stowed_back"; param_01.secondaryweaponent unlink(); param_01.secondaryweaponent.origin = param_01 gettagorigin(var_07); param_01.secondaryweaponent.angles = param_01 gettagangles(var_07); param_01.secondaryweaponent vehicle_jetbikesethoverforcescale(param_01,var_07); param_01.secondaryweaponent showallparts(); param_01.secondaryweaponent setowneroriginal(param_00); return; } } //Function Number: 45 attachprimaryweapon(param_00) { var_01 = undefined; if(isdefined(param_00.player)) { var_01 = param_00.player; } var_02 = "tag_weapon_right"; if(issubstr(param_00.primaryweaponent.primaryweapon,"combatknife")) { var_02 = "tag_inhand"; } if(issubstr(param_00.primaryweaponent.primaryweapon,"riotshield")) { var_02 = "tag_weapon_left"; } param_00.primaryweaponent unlink(); param_00.primaryweaponent.origin = param_00 gettagorigin(var_02); param_00.primaryweaponent.angles = param_00 gettagangles(var_02); param_00.primaryweaponent vehicle_jetbikesethoverforcescale(param_00,var_02); param_00.primaryweaponent setowneroriginal(var_01); } //Function Number: 46 addlaunchers(param_00) { param_00 detach("npc_exo_arm_launcher_R","J_Elbow_RI",0); param_00 detach("npc_exo_arm_launcher_L","J_Elbow_LE",0); if(isdefined(param_00.lethal) && param_00.lethal != "specialty_null") { if(!param_00 maps\mp\_utility::_hasperk("specialty_wildcard_dualtacticals")) { param_00 attach("npc_exo_arm_launcher_R","J_Elbow_RI",1); } else { } } if(isdefined(param_00.tactical) && param_00.tactical != "specialty_null") { if(param_00 maps\mp\_utility::_hasperk("specialty_wildcard_duallethals")) { param_00 attach("npc_exo_arm_launcher_L","J_Elbow_LE",1); return; } } } //Function Number: 47 showakimbodelayed(param_00) { param_00 endon("death"); param_00.primaryweaponent endon("death"); param_00 endon("hide_akimbo_weapon"); wait(level.camparams.cacweapondelaytime); if(level.camparams.newmode != "cao" && level.camparams.mode != "cao") { if(issubstr(param_00.primaryweaponent.primaryweapon,"akimbo") || issubstr(param_00.primaryweaponent.primaryweapon,"akimboxmg")) { param_00.akimboweaponent show(); param_00.akimboweaponent showallparts(); } } } //Function Number: 48 showprimarydelayed(param_00) { param_00 endon("death"); param_00.primaryweaponent endon("death"); param_00 endon("hide_primary_weapon"); wait(level.camparams.cacweapondelaytime); if(param_00.isfree) { return; } var_01 = getdvarint("practiceroundgame") && param_00.ownerid != 0; if(level.camparams.newmode != "cao" && level.camparams.mode != "cao" && !var_01) { param_00.primaryweaponent show(); param_00.primaryweaponent showallparts(); } } //Function Number: 49 vl_avatar_costume(param_00,param_01,param_02) { param_00 takeallweapons(); param_00 detachall(); param_00.headmodel = undefined; if(isdefined(param_01)) { param_00.costume = param_01; } if(!isdefined(param_00.costume) || !maps\mp\gametypes\_teams::validcostume(param_00.costume)) { if(isdefined(param_00.sessioncostume) && maps\mp\gametypes\_teams::validcostume(param_00.sessioncostume)) { param_00.costume = param_00.sessioncostume; } else { param_00.costume = maps\mp\gametypes\_teams::getdefaultcostume(); param_00.sessioncostume = param_00.costume; } } if(isdefined(param_02) && param_02) { level.players[0].costume = param_00.costume; var_03 = level.players[0] maps\mp\gametypes\_teams::playercostume(); var_03 = param_00 maps\mp\gametypes\_teams::playercostume(); var_04 = level.players[0].cao_agent; vl_avatar_costume(var_04,param_00.costume); var_03 = var_04 maps\mp\gametypes\_teams::playercostume(); } } //Function Number: 50 vl_avatar_loadout(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09) { if(!isdefined(param_09)) { param_09 = level.vlavatars[param_01]; } var_0A = 0; if(isdefined(param_09.loadout) && param_09.loadout.player_controller >= 0) { var_0A = 1; } vl_avatar_costume(param_09,param_08); param_09 maps\mp\gametypes\_teams::playermodelforweapon(param_04,maps\mp\_utility::getbaseweaponname(param_03)); if(var_0A && isdefined(level.players[0])) { level.players[0] setcostumemodels(param_09.costume); } param_09.primaryweapon = param_02; param_09.secondaryweapon = "none"; param_09.tactical = param_06; param_09.lethal = param_05; param_09.perks = param_07; vl_give_weapons(param_00,param_09); param_09 thread vl_vfx_for_avatar(); } //Function Number: 51 monitor_class_select_or_weapon_change(param_00) { self endon("disconnect"); for(;;) { self waittill("luinotifyserver",var_01,var_02); if((var_01 == "classpreview" || var_01 == "classpreview_postcopy") && isdefined(var_02)) { if(var_02 >= 0) { var_03 = var_02 & 15; var_04 = int(var_02 / 16); maps\mp\_vl_base::vlprint("classpreview " + var_01 + " controller=" + var_03 + " class=" + var_04); if(var_04 > 0) { level.cac = 1; self.currentselectedclass = var_04 - 1; } param_00 = getfocusfromcontroller(var_03); var_05 = var_01 == "classpreview_postcopy"; var_06 = level.vlavatars[param_00]; if(isdefined(var_06)) { level.vl_focus = param_00; level.vl_local_focus = param_00; virtual_lobby_set_class(param_00,"lobby" + self.currentselectedclass + 1,!var_05); level.cac_weapon = var_06.primaryweapon; } level.forceavatarrefresh = var_05; continue; } level.cac = undefined; } } } //Function Number: 52 monitor_cac_set_weapon(param_00,param_01) { var_02 = ""; if(param_01 != "current" && param_01 != "none" && var_02 == "") { var_03 = tablelookup("mp/statstable.csv",4,param_01,40); if(var_03 == "") { var_03 = "none"; } var_04 = maps\mp\gametypes\_class::buildweaponname(param_01,var_03,"none","none"); } else if(var_02 == "none") { var_04 = "none"; } else { var_05 = level.vlavatars[param_01]; var_04 = var_05.primaryweapon; } level.cac_weapon = var_04; } //Function Number: 53 has_suffix(param_00,param_01) { if(param_00.size >= param_01.size) { if(getsubstr(param_00,param_00.size - param_01.size,param_00.size) == param_01) { return 1; } } return 0; } //Function Number: 54 monitor_create_a_class(param_00) { self endon("disconnect"); var_01 = []; while(!isdefined(level.camparams)) { self waittill("luinotifyserver",var_02,var_03); if(isdefined(var_03)) { var_01[var_01.size] = [var_02,var_03]; continue; } var_01[var_01.size] = [var_02]; } for(;;) { if(var_01.size > 0) { var_04 = var_01[0]; var_05 = []; for(var_06 = 1;var_06 < var_01.size;var_06++) { var_05[var_05.size] = var_01[var_06]; } var_01 = var_05; var_02 = var_04[0]; if(var_04.size > 1) { var_03 = var_04[1]; } else { var_03 = undefined; } } else { self waittill("luinotifyserver",var_02,var_03); } if(var_02 == "cac" && isdefined(var_03)) { if(var_03 == 0) { level.cac = undefined; } else { level.cac = 1; } level.vl_cao_focus = undefined; continue; } if(var_02 == "weapon_highlighted" && isdefined(var_03)) { if(issubstr(var_03,"stream:")) { var_07 = strtok(var_03,":"); if(var_07.size > 1) { var_08 = var_07[var_07.size - 1]; if(!has_suffix(var_08,"_mp")) { var_08 = var_08 + "_mp"; } maps\mp\_vl_base::vlprintln("weapon_stream: " + var_08); var_09 = [var_08]; self loadweapons(var_09); } monitor_cac_set_weapon(param_00,"none"); } else { maps\mp\_vl_base::vlprintln("weapon_highlighted " + var_03); monitor_cac_set_weapon(param_00,var_03); } continue; } if(var_02 == "lootscreen_weapon_highlighted" && isdefined(var_03)) { if(var_03 == "none") { level.cac = undefined; } else if(var_03 == "reset") { level.cac = 1; } else { level.cac = 1; } level.vl_cao_focus = undefined; continue; } var_0A = 0; if(var_02 == "preview_attach1") { var_0A = 1; } else if(var_02 == "preview_attach2") { var_0A = 2; } else if(var_02 == "preview_attach3") { var_0A = 3; } if(var_0A > 0 && isdefined(var_03)) { var_0B = level.vlavatars[param_00]; var_0C = var_0B.loadout; var_0D = tablelookup("mp/statstable.csv",0,var_0C.primary,4); var_0E = tablelookup("mp/attachmenttable.csv",0,var_0C.primaryattachment1,3); var_0F = tablelookup("mp/attachmenttable.csv",0,var_0C.primaryattachment2,3); var_10 = tablelookup("mp/attachmenttable.csv",0,var_0C.primaryattachment3,3); var_11 = var_0C.primarycamo; if(var_03 != "current") { if(var_0A == 1) { var_0E = var_03; } else if(var_0A == 2) { var_0F = var_03; } else if(var_0A == 3) { var_10 = var_03; } } level.cac_weapon = maps\mp\gametypes\_class::buildweaponname(var_0D,var_0E,var_0F,var_10,var_11,undefined); } } } //Function Number: 55 getfocusfromcontroller(param_00) { foreach(var_03, var_02 in level.vlavatars) { if(isdefined(var_02.loadout) && isdefined(var_02.loadout.player_controller) && var_02.loadout.player_controller == param_00) { return var_03; } } maps\mp\_vl_base::vlprintln("unable to find avatar for controller " + param_00); return -1; } //Function Number: 56 virtual_lobby_set_class(param_00,param_01,param_02,param_03,param_04) { if(isdefined(self.pers["class"]) && self.pers["class"] == param_01 && !isdefined(param_03) || !param_03) { return; } self.pers["class"] = param_01; self.class = param_01; maps\mp\gametypes\_class::setclass(self.pers["class"]); self.tag_stowed_back = undefined; self.tag_stowed_hip = undefined; maps\mp\gametypes\_class::giveandapplyloadout(self.pers["team"],self.pers["class"]); if(param_02) { vl_avatar_loadout(self,param_00,self.primaryweapon,self.secondaryweapon,self.pers["primaryWeapon"],self.loadoutequipment,self.loadoutoffhand,self.perks,self.costume); if(isdefined(self.cao_agent)) { vl_avatar_loadout(self,param_00,undefined,self.secondaryweapon,self.pers["primaryWeapon"],self.loadoutequipment,self.loadoutoffhand,self.perks,self.costume,self.cao_agent); } } } //Function Number: 57 grab_players_classes() { var_00 = ["privateMatchCustomClasses","customClasses"]; var_01 = [60,60]; var_02 = 0; self.loadouts = []; self.currentselectedclass = 0; foreach(var_04 in var_00) { level.forcecustomclassloc = var_04; self.loadouts[var_04] = []; var_05 = var_01[var_02]; var_02++; for(var_06 = 0;var_06 < var_05;var_06++) { var_07 = []; var_07["primary"] = maps\mp\gametypes\_class::cac_getweapon(var_06,0); var_07["primaryAttachment1"] = maps\mp\gametypes\_class::cac_getweaponattachment(var_06,0); var_07["primaryAttachment2"] = maps\mp\gametypes\_class::cac_getweaponattachmenttwo(var_06,0); var_07["primaryAttachment3"] = maps\mp\gametypes\_class::cac_getweaponattachmentthree(var_06,0); var_07["primaryCamo"] = maps\mp\gametypes\_class::cac_getweaponcamo(var_06,0); var_07["primaryReticle"] = maps\mp\gametypes\_class::cac_getweaponreticle(var_06,0); for(var_08 = 0;var_08 < 6;var_08++) { var_07["perk" + var_08] = maps\mp\gametypes\_class::cac_getperk(var_06,var_08); } for(var_08 = 0;var_08 < 3;var_08++) { var_07["wildcard" + var_08] = maps\mp\gametypes\_class::cac_getwildcard(var_06,var_08); } var_07["secondary"] = maps\mp\gametypes\_class::cac_getweapon(var_06,1); var_07["secondaryAttachment1"] = maps\mp\gametypes\_class::cac_getweaponattachment(var_06,1); var_07["secondaryAttachment2"] = maps\mp\gametypes\_class::cac_getweaponattachmenttwo(var_06,1); var_07["secondaryAttachment3"] = maps\mp\gametypes\_class::cac_getweaponattachmentthree(var_06,1); var_07["secondaryCamo"] = maps\mp\gametypes\_class::cac_getweaponcamo(var_06,1); var_07["secondaryReticle"] = maps\mp\gametypes\_class::cac_getweaponreticle(var_06,1); var_07["equipment"] = maps\mp\gametypes\_class::cac_getequipment(var_06,0); var_07["offhand"] = maps\mp\gametypes\_class::cac_getequipment(var_06,1); self.loadouts[var_04][var_06] = var_07; } } level.forcecustomclassloc = undefined; } //Function Number: 58 update_local_class(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D,param_0E,param_0F,param_10,param_11,param_12,param_13,param_14,param_15) { var_16 = int(self.currentselectedclass); var_17 = maps\mp\_utility::cac_getcustomclassloc(); self.loadouts[var_17][var_16]["primary"] = param_00; self.loadouts[var_17][var_16]["primaryAttachment1"] = param_01; self.loadouts[var_17][var_16]["primaryAttachment2"] = param_02; self.loadouts[var_17][var_16]["primaryAttachment3"] = param_03; self.loadouts[var_17][var_16]["primaryCamo"] = param_04; self.loadouts[var_17][var_16]["primaryReticle"] = param_05; self.loadouts[var_17][var_16]["secondary"] = param_06; self.loadouts[var_17][var_16]["secondaryAttachment1"] = param_07; self.loadouts[var_17][var_16]["secondaryAttachment2"] = param_08; self.loadouts[var_17][var_16]["secondaryCamo"] = param_09; self.loadouts[var_17][var_16]["secondaryReticle"] = param_0A; self.loadouts[var_17][var_16]["equipment"] = param_0B; self.loadouts[var_17][var_16]["lethal"] = param_0B; self.loadouts[var_17][var_16]["offhand"] = param_0C; self.loadouts[var_17][var_16]["tactical"] = param_0C; self.loadouts[var_17][var_16]["wildcard0"] = param_0D; self.loadouts[var_17][var_16]["wildcard1"] = param_0E; self.loadouts[var_17][var_16]["wildcard2"] = param_0F; self.loadouts[var_17][var_16]["perk0"] = param_10; self.loadouts[var_17][var_16]["perk1"] = param_11; self.loadouts[var_17][var_16]["perk2"] = param_12; self.loadouts[var_17][var_16]["perk3"] = param_13; self.loadouts[var_17][var_16]["perk4"] = param_14; self.loadouts[var_17][var_16]["perk5"] = param_15; } //Function Number: 59 loadout_changed(param_00,param_01) { if(!isdefined(param_00)) { return 1; } if(param_00.primary != param_01.primary) { return 1; } if(param_00.primaryattachment1 != param_01.primaryattachment1) { return 1; } if(param_00.primaryattachment2 != param_01.primaryattachment2) { return 1; } if(param_00.primaryattachment3 != param_01.primaryattachment3) { return 1; } if(param_00.primarycamo != param_01.primarycamo) { return 1; } if(param_00.secondary != param_01.secondary) { return 1; } if(param_00.secondaryattachment1 != param_01.secondaryattachment1) { return 1; } if(param_00.secondaryattachment2 != param_01.secondaryattachment2) { return 1; } if(param_00.secondarycamo != param_01.secondarycamo) { return 1; } if(param_00.tactical != param_01.tactical) { return 1; } if(param_00.lethal != param_01.lethal) { return 1; } return 0; } //Function Number: 60 costume_changed(param_00,param_01) { if(!isdefined(param_00)) { if(!isdefined(param_01)) { return 0; } return 1; } if(param_00.size != param_01.size) { return 1; } if(!maps\mp\gametypes\_teams::validcostume(param_01)) { return 0; } for(var_02 = 0;var_02 < param_01.size;var_02++) { if(param_01[var_02] < 0) { return 0; } if(param_00[var_02] != param_01[var_02]) { return 1; } } return 0; } //Function Number: 61 setdefaultcostumeifneeded(param_00) { if(param_00[level.costumecat2idx["head"]] == 0) { param_00[level.costumecat2idx["head"]] = 1; } if(!param_00[level.costumecat2idx["shirt"]]) { param_00[level.costumecat2idx["shirt"]] = 1; } if(!param_00[level.costumecat2idx["pants"]]) { param_00[level.costumecat2idx["pants"]] = 1; } if(!param_00[level.costumecat2idx["gloves"]]) { param_00[level.costumecat2idx["gloves"]] = 1; } if(!param_00[level.costumecat2idx["shoes"]]) { param_00[level.costumecat2idx["shoes"]] = 1; } if(!param_00[level.costumecat2idx["gear"]]) { param_00[level.costumecat2idx["gear"]] = 1; } if(!param_00[level.costumecat2idx["exo"]]) { param_00[level.costumecat2idx["exo"]] = 1; } return param_00; } //Function Number: 62 monitor_member_class_changes() { level.mccqueue = []; for(;;) { while(!isdefined(level.players) || level.players.size == 0 || !isdefined(level.camparams)) { wait(0.05); } while(isdefined(level.players) && level.players.size > 0) { foreach(var_01 in level.mccqueue) { var_02 = tablelookup("mp/statstable.csv",0,var_01.primary,4); var_03 = tablelookup("mp/attachmenttable.csv",0,var_01.primaryattachment1,3); var_04 = tablelookup("mp/attachmenttable.csv",0,var_01.primaryattachment2,3); var_05 = tablelookup("mp/attachmenttable.csv",0,var_01.primaryattachment3,3); var_06 = var_01.primarycamo; var_07 = tablelookup("mp/camoTable.csv",0,var_01.primarycamo,1); var_08 = var_01.primaryreticle; var_09 = tablelookup("mp/reticleTable.csv",0,var_01.primaryreticle,1); var_0A = tablelookup("mp/statstable.csv",0,var_01.secondary,4); var_0B = tablelookup("mp/attachmenttable.csv",0,var_01.secondaryattachment1,3); var_0C = tablelookup("mp/attachmenttable.csv",0,var_01.secondaryattachment2,3); var_0D = "none"; var_0E = var_01.secondarycamo; var_0F = tablelookup("mp/camoTable.csv",0,var_01.secondarycamo,1); var_10 = var_01.secondaryreticle; var_11 = tablelookup("mp/reticleTable.csv",0,var_01.secondaryreticle,1); var_12 = tablelookup("mp/perktable.csv",0,var_01.lethal,1); var_13 = tablelookup("mp/perktable.csv",0,var_01.tactical,1); var_14 = tablelookup("mp/perktable.csv",0,var_01.wildcard1,1); var_15 = tablelookup("mp/perktable.csv",0,var_01.wildcard2,1); var_16 = tablelookup("mp/perktable.csv",0,var_01.wildcard3,1); var_17 = tablelookup("mp/perktable.csv",0,var_01.perk1,1); var_18 = tablelookup("mp/perktable.csv",0,var_01.perk2,1); var_19 = tablelookup("mp/perktable.csv",0,var_01.perk3,1); var_1A = tablelookup("mp/perktable.csv",0,var_01.perk4,1); var_1B = tablelookup("mp/perktable.csv",0,var_01.perk5,1); var_1C = tablelookup("mp/perktable.csv",0,var_01.perk6,1); var_1D = maps\mp\gametypes\_class::buildweaponname(var_02,var_03,var_04,var_05,var_06,var_08); var_1E = maps\mp\gametypes\_class::buildweaponname(var_0A,var_0B,var_0C,var_0D,var_0E,var_10); var_1F = maps\mp\_utility::getbaseweaponname(var_1D); var_20 = []; var_20[level.costumecat2idx["gender"]] = var_01.gender; var_20[level.costumecat2idx["shirt"]] = var_01.shirt; var_20[level.costumecat2idx["head"]] = var_01.head; var_20[level.costumecat2idx["pants"]] = var_01.pants; var_20[level.costumecat2idx["eyewear"]] = var_01.eyewear; var_20[level.costumecat2idx["hat"]] = var_01.hat; var_20[level.costumecat2idx["kneepads"]] = var_01.kneepads; var_20[level.costumecat2idx["gloves"]] = var_01.gloves; var_20[level.costumecat2idx["shoes"]] = var_01.shoes; var_20[level.costumecat2idx["gear"]] = var_01.gear; var_20[level.costumecat2idx["exo"]] = var_01.exclusive; var_21 = []; if(isdefined(var_14)) { var_21[var_14] = 1; } if(isdefined(var_15)) { var_21[var_15] = 1; } if(isdefined(var_16)) { var_21[var_16] = 1; } if(!isdefined(level.xuid2ownerid[var_01.xuid]) && maps\mp\_vl_base::all_avatars_scheduled_for_delete()) { maps\mp\_vl_base::reuse_avatar(var_01.xuid); } if(!isdefined(level.xuid2ownerid[var_01.xuid])) { var_22 = maps\mp\_vl_base::add_avatar(var_01.xuid); maps\mp\_vl_base::vlprint("PartyMemberClassChange " + var_01.xuid + " : " + var_1D + "," + var_1E + "," + var_12 + "," + var_13 + "\n"); setdvar("virtuallobbymembers",level.xuid2ownerid.size); var_23 = maps\mp\gametypes\vlobby::getspawnpoint(var_22); spawn_an_avatar(var_23,var_1D,var_1E,var_1F,var_12,var_13,var_21,var_20,var_01.name,var_22,0); maps\mp\_vl_base::avatar_after_spawn(var_22); setentplayerxuidforemblem(level.vlavatars[var_22],var_01.xuid); level.vlavatars[var_22].loadout = var_01; level.vlavatars[var_22].membertimeout = gettime() + 4000; if(level.vlavatars.size == 1) { var_24 = level.players[0].cao_agent; vl_avatar_costume(var_24,level.vlavatars[var_22].costume); var_25 = var_24 maps\mp\gametypes\_teams::playercostume(); } if(isdefined(level.vl_clanprofile_focus)) { hide_avatar(level.vlavatars[var_22]); } continue; } var_22 = level.xuid2ownerid[var_01.xuid]; var_26 = level.vlavatars[var_22]; if(var_01.player_controller >= 0) { if(level.vl_local_focus == var_22) { level.players[0] update_local_class(var_02,var_03,var_04,var_05,var_07,var_09,var_0A,var_0B,var_0C,var_0F,var_11,var_12,var_13,var_14,var_15,var_16,var_17,var_18,var_19,var_1A,var_1B,var_1C); } if(isdefined(var_26.previewcostume)) { if(isdefined(var_26.costumes) && isdefined(var_26.costumes[var_26.previewcostume])) { var_20 = var_26.costumes[var_26.previewcostume]; } else { var_20 = level.players[0] maps\mp\gametypes\_class::cao_getcostumebyindex(var_26.previewcostume); } var_20 = setdefaultcostumeifneeded(var_20); if(!isdefined(var_26.costumes)) { var_26.costumes = []; } var_26.costumes[var_26.previewcostume] = var_20; if(var_26.previewgearcategory != "none") { var_27 = level.costumecat2idx[var_26.previewgearcategory]; var_20[var_27] = var_26.previewgearid; } } } if(loadout_changed(var_26.loadout,var_01) || costume_changed(var_26.costume,var_20) || isdefined(level.forceavatarrefresh) && level.forceavatarrefresh) { maps\mp\_vl_base::vlprint("Updating xuid " + var_01.xuid + " with ownerId=" + var_22 + "\n"); maps\mp\_vl_base::vlprint("PartyMemberClassChange " + var_01.xuid + " : " + var_1D + "," + var_1E + "," + var_12 + "," + var_13 + "\n"); if(isdefined(var_26.player)) { var_26.player.costume = var_20; } vl_avatar_loadout(var_26.player,var_22,var_1D,var_1E,var_1F,var_12,var_13,var_21,var_20); if(var_01.player_controller >= 0) { vl_avatar_loadout(var_26.player,var_22,undefined,var_1E,var_1F,var_12,var_13,var_21,var_20,level.players[0].cao_agent); } var_26.loadout = var_01; level.forceavatarrefresh = 0; } } level.mccqueue = []; maps\mp\_vl_base::update_avatars(); wait(0.05); } } } //Function Number: 63 vl_vfx_for_avatar() { if(isdefined(self) && !isremovedentity(self)) { maps\mp\gametypes\_class::checkforcostumeset(); if(isdefined(self.costumebonus) && isdefined(self.costumebonus["xp"])) { self.set_bonus_vfx = 1; if(!isdefined(self.camera_state) || self.camera_state != "crouch" || self == level.players[0].cao_agent) { if(!isdefined(self.spawned_vfx_setbonus_stand) || isremovedentity(self.spawned_vfx_setbonus_stand)) { if(isdefined(self.spawned_vfx_setbonus_crouch) && !isremovedentity(self.spawned_vfx_setbonus_crouch)) { self.spawned_vfx_setbonus_crouch delete(); } self.spawned_vfx_setbonus_stand = spawnfx(level.vfx_setbonus_stand_01,self.origin); setfxkillondelete(self.spawned_vfx_setbonus_stand,1); triggerfx(self.spawned_vfx_setbonus_stand,-6); return; } return; } if(!isdefined(self.spawned_vfx_setbonus_crouch) || isremovedentity(self.spawned_vfx_setbonus_crouch)) { if(isdefined(self.spawned_vfx_setbonus_stand) && !isremovedentity(self.spawned_vfx_setbonus_stand)) { self.spawned_vfx_setbonus_stand delete(); } self.spawned_vfx_setbonus_crouch = spawnfx(level.vfx_setbonus_crouch_01,self.origin); setfxkillondelete(self.spawned_vfx_setbonus_crouch,1); triggerfx(self.spawned_vfx_setbonus_crouch,-6); return; } return; } self.set_bonus_vfx = 0; if(isdefined(self.spawned_vfx_setbonus_crouch) && !isremovedentity(self.spawned_vfx_setbonus_crouch)) { self.spawned_vfx_setbonus_crouch delete(); } if(isdefined(self.spawned_vfx_setbonus_stand) && !isremovedentity(self.spawned_vfx_setbonus_stand)) { self.spawned_vfx_setbonus_stand delete(); return; } } } //Function Number: 64 override_member_loadout_for_practice_round(param_00) { if(!isdefined(level.practice_round_costume)) { level.practice_round_max_costumes = tablegetcolumncount(level.practiceroundcostumetablename) - 1; level.practice_round_costume = randomint(level.practice_round_max_costumes); } if(!isdefined(level.practice_round_class)) { var_01 = tablegetcolumncount(level.practiceroundclasstablename) - 1; level.practice_round_class = randomint(var_01); } var_04 = param_00; var_05 = getcostumefromtable(level.practiceroundcostumetablename,level.practice_round_costume + 1); var_04.gender = var_05[level.costumecat2idx["gender"]]; var_04.shirt = var_05[level.costumecat2idx["shirt"]]; var_04.head = var_05[level.costumecat2idx["head"]]; var_04.pants = var_05[level.costumecat2idx["pants"]]; var_04.eyewear = var_05[level.costumecat2idx["eyewear"]]; var_04.hat = var_05[level.costumecat2idx["hat"]]; var_04.gear = var_05[level.costumecat2idx["gear"]]; var_04.kneepads = var_05[level.costumecat2idx["kneepads"]]; var_04.gloves = var_05[level.costumecat2idx["gloves"]]; var_04.shoes = var_05[level.costumecat2idx["shoes"]]; var_04.exclusive = var_05[level.costumecat2idx["exo"]]; var_06 = level.practice_round_class; var_07 = var_06 + 1; var_08 = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimary",var_07); var_09 = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimaryAttachment",var_07); var_0A = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimaryAttachment2",var_07); var_0B = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimaryAttachment3",var_07); var_0C = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimaryCamo",var_07); var_0D = tablelookup(level.practiceroundclasstablename,0,"loadoutPrimaryReticle",var_07); var_04.primary = int(tablelookup("mp/statstable.csv",4,var_08,0)); var_04.primaryattachment1 = int(tablelookup("mp/attachmenttable.csv",3,var_09,0)); var_04.primaryattachment2 = int(tablelookup("mp/attachmenttable.csv",3,var_0A,0)); var_04.primaryattachment3 = int(tablelookup("mp/attachmenttable.csv",3,var_0B,0)); var_04.primarycamo = int(tablelookup("mp/camoTable.csv",1,var_0C,0)); var_04.primaryreticle = int(tablelookup("mp/reticleTable.csv",1,var_0D,0)); var_0E = tablelookup(level.practiceroundclasstablename,0,"loadoutSecondary",var_07); var_0F = tablelookup(level.practiceroundclasstablename,0,"loadoutSecondaryAttachment",var_07); var_10 = tablelookup(level.practiceroundclasstablename,0,"loadoutSecondaryAttachment2",var_07); var_11 = tablelookup(level.practiceroundclasstablename,0,"loadoutSecondaryCamo",var_07); var_12 = tablelookup(level.practiceroundclasstablename,0,"loadoutSecondaryReticle",var_07); var_04.secondary = int(tablelookup("mp/statstable.csv",4,var_0E,0)); var_04.secondaryattachment1 = int(tablelookup("mp/attachmenttable.csv",3,var_0F,0)); var_04.secondaryattachment2 = int(tablelookup("mp/attachmenttable.csv",3,var_10,0)); var_04.secondarycamo = int(tablelookup("mp/camoTable.csv",1,var_11,0)); var_04.secondaryreticle = int(tablelookup("mp/reticleTable.csv",1,var_12,0)); var_13 = tablelookup(level.practiceroundclasstablename,0,"loadoutWildcard1",var_07); var_14 = tablelookup(level.practiceroundclasstablename,0,"loadoutWildcard2",var_07); var_15 = tablelookup(level.practiceroundclasstablename,0,"loadoutWildcard3",var_07); var_04.wildcard1 = int(tablelookup("mp/perktable.csv",1,var_13,0)); var_04.wildcard2 = int(tablelookup("mp/perktable.csv",1,var_14,0)); var_04.wildcard3 = int(tablelookup("mp/perktable.csv",1,var_15,0)); return var_04; } //Function Number: 65 add_party_member_class_change(param_00) { if(getdvarint("practiceroundgame")) { param_00 = override_member_loadout_for_practice_round(param_00); } for(var_01 = 0;var_01 < level.mccqueue.size;var_01++) { if(level.mccqueue[var_01].xuid == param_00.xuid) { level.mccqueue[var_01] = param_00; param_00 = undefined; break; } } if(isdefined(param_00)) { level.mccqueue[level.mccqueue.size] = param_00; } } //Function Number: 66 party_members(param_00) { if(!isdefined(level.xuid2ownerid)) { return; } foreach(var_02 in param_00) { var_03 = var_02.xuid; var_04 = level.xuid2ownerid[var_03]; if(isdefined(var_04)) { var_05 = level.vlavatars[var_04]; if(isdefined(var_05)) { var_05.membertimeout = gettime() + 2000; var_05.memberhastimedout = undefined; } } if(var_02.primary >= 0) { add_party_member_class_change(var_02); } } } //Function Number: 67 monitor_member_timeouts() { for(;;) { var_00 = getdvarint("splitscreen",0); var_01 = isonlinegame(); var_02 = issystemlink(); foreach(var_05, var_04 in level.vlavatars) { if(maps\mp\_vl_base::avatar_scheduled_for_removal(var_05)) { continue; } if(var_04.membertimeout >= 0) { if(var_04.membertimeout < gettime()) { if(var_05 == 0 && !isdefined(var_04.memberhastimedout)) { var_04.membertimeout = gettime() + 2000; var_04.memberhastimedout = 1; continue; } maps\mp\_vl_base::vlprint("Schedule removal of ownerId " + var_05 + " from timeout\n"); maps\mp\_vl_base::schedule_remove_avatar(var_05); } } } wait(0.05); } } //Function Number: 68 get_e3_costume(param_00) { var_01 = "mp/E3CostumeTable.csv"; var_02 = []; for(var_03 = 0;var_03 < level.costumecat2idx.size;var_03++) { var_02[var_03] = int(tablelookupbyrow(var_01,var_03 + 1,param_00 + 1)); } return var_02; } //Function Number: 69 monitor_debug_addfakemembers(param_00,param_01) { } //Function Number: 70 monitor_member_focus_change() { self endon("disconnect"); for(;;) { self waittill("luinotifyserver",var_00,var_01); if(var_00 == "member_select") { level.vl_focus = level.xuid2ownerid[var_01]; if(!isdefined(level.vl_focus)) { maps\mp\_vl_base::vlprint("vl_focus undefined, setting to 0\n"); level.vl_focus = 0; } maps\mp\_vl_base::vlprint("selected member " + var_01 + " ownerId=" + level.vl_focus + "\n"); } if(var_00 == "vlpresentable") { maps\mp\_vl_base::vlprint("in main menu\n"); thread setvirtuallobbypresentable(); } if(var_00 == "leave_lobby") { maps\mp\_vl_base::vlprint("leave_lobby xuid=" + var_01 + "\n"); if(var_01 == "0") { foreach(var_03 in level.xuid2ownerid) { maps\mp\_vl_base::vlprint("Schedule removal of ownerId " + var_03 + "\n"); maps\mp\_vl_base::schedule_remove_avatar(var_03,0.25); } } else { var_03 = level.xuid2ownerid[var_03]; if(isdefined(var_03)) { maps\mp\_vl_base::vlprint("Schedule removal of ownerId " + var_03 + "\n"); maps\mp\_vl_base::schedule_remove_avatar(var_03,0.25); } } thread resetvirtuallobbypresentable(); } } } //Function Number: 71 monitor_cao_set_cao_focus(param_00) { if(param_00 < 0) { level.vl_cao_focus = undefined; return; } level.vl_local_focus = getfocusfromcontroller(param_00); level.vl_cao_focus = 1; maps\mp\_vl_base::vlprint("cao ctrl = " + param_00 + " focus = " + level.vl_local_focus + "\n"); } //Function Number: 72 cao_set_costumes_from_lua(param_00) { maps\mp\_vl_base::vlprintln("Cao set costumes from lua:" + param_00); var_01 = strtok(param_00,"#"); foreach(var_03 in var_01) { var_04 = strtok(var_03,"|"); if(var_04.size > 0) { var_05 = int(var_04[0]); var_06 = getfocusfromcontroller(var_05); var_07 = level.vlavatars[var_06]; if(isdefined(var_07)) { var_07.activecostume = int(var_04[1]); for(var_08 = 2;var_08 < var_04.size;var_08++) { var_09 = strtok(var_04[var_08],","); var_0A = []; for(var_0B = 1;var_0B < var_09.size;var_0B++) { var_0A[var_0A.size] = int(var_09[var_0B]); } if(!isdefined(var_07.costumes)) { var_07.costumes = []; } var_07.costumes[int(var_09[0])] = var_0A; } } } } } //Function Number: 73 monitor_cao_set_costume_preview(param_00) { var_01 = strtok(param_00,":"); var_02 = int(var_01[0]); var_03 = strtok(var_01[1],","); var_04 = getfocusfromcontroller(var_02); level.vl_local_focus = var_04; var_05 = level.vlavatars[var_04]; if(isdefined(var_05)) { var_05.previewcostume = int(var_03[0]); var_05.previewgearcategory = var_03[1]; var_05.previewgearid = int(var_03[2]); } return var_05; } //Function Number: 74 monitor_create_an_operator(param_00) { self endon("disconnect"); for(;;) { self waittill("luinotifyserver",var_01,var_02); if(var_01 == "cao") { monitor_cao_set_cao_focus(var_02); level.caoavatarposoffset = undefined; if(isdefined(level.vl_local_focus)) { var_03 = level.vlavatars[level.vl_local_focus]; } else { var_03 = level.vlavatars[var_01]; } if(var_02 < 0 && isdefined(var_03)) { var_03.previewgearcategory = undefined; var_03.previewgearid = undefined; var_03.previewcostume = undefined; if(isdefined(var_03.costumes)) { vl_avatar_costume(var_03,var_03.costumes[var_03.activecostume],1); } } continue; } if(var_01 == "lootscreen_gear_highlighted") { level.cac = undefined; monitor_cao_set_cao_focus(var_02); if(isdefined(level.vl_cao_focus)) { level.caoavatarposoffset = (56,0,5); } else { level.caoavatarposoffset = undefined; } level.camparams.pushmode = "prelobby_loot"; continue; } if(var_01 == "costumes") { cao_set_costumes_from_lua(var_02); continue; } if(var_01 == "costume_preview") { monitor_cao_set_costume_preview(var_02); continue; } if(var_01 == "costume_apply") { var_03 = monitor_cao_set_costume_preview(var_02); if(isdefined(var_03)) { var_04 = level.costumecat2idx[var_03.previewgearcategory]; if(isdefined(var_03.costumes) && isdefined(var_03.costumes[var_03.previewcostume])) { var_03.costumes[var_03.previewcostume][var_04] = var_03.previewgearid; if(var_03.previewcostume == var_03.activecostume) { var_03 setcostumemodels(var_03.costumes[var_03.previewcostume]); } } } continue; } if(var_01 == "costume_set_apply") { var_05 = strtok(var_02,":"); var_06 = int(var_05[0]); var_07 = int(var_05[1]); param_00 = getfocusfromcontroller(var_06); var_03 = level.vlavatars[param_00]; if(!isdefined(var_03.costumes) || !isdefined(var_03.costumes[var_07])) { var_08 = level.players[0] maps\mp\gametypes\_class::cao_getcostumebyindex(var_07); var_08 = setdefaultcostumeifneeded(var_08); if(!isdefined(var_03.costumes)) { var_03.costumes = []; } var_03.costumes[var_07] = var_08; } var_09 = strtok(var_05[2],"|"); foreach(var_0B in var_09) { var_0C = strtok(var_0B,","); var_0D = var_0C[0]; var_0E = int(var_0C[1]); var_04 = level.costumecat2idx[var_0D]; var_03.costumes[var_07][var_04] = var_0E; } var_03 setcostumemodels(var_03.costumes[var_07]); } } } //Function Number: 75 clans_set_highlight_gear_from_lua(param_00) { setdvar("vl_clan_models_loaded",0); var_01 = strtok(param_00,"#"); foreach(var_03 in var_01) { var_04 = strtok(var_03,"|"); if(var_04.size > 0) { var_05 = int(var_04[0]); var_06 = level.players[0].clan_agents[var_05]; if(isdefined(var_06)) { var_06.activecostume = 0; var_06.isvalidhighlight = int(var_04[1]) > 0; for(var_07 = 2;var_07 < var_04.size;var_07++) { var_08 = strtok(var_04[var_07],","); var_09 = []; for(var_0A = 1;var_0A < var_08.size;var_0A++) { var_09[var_09.size] = int(var_08[var_0A]); } if(!isdefined(var_06.costumes)) { var_06.costumes = []; } var_06.costumes[int(var_08[0])] = var_09; vl_avatar_costume(var_06,var_09,1); if(var_06.isvalidhighlight) { wait_load_costume(var_06); continue; } hide_avatar(var_06); } } } } setdvar("vl_clan_models_loaded",1); } //Function Number: 76 monitor_clans() { self endon("disconnect"); for(;;) { self waittill("luinotifyserver",var_00,var_01); if(var_00 == "clanprofile") { maps\mp\_vl_base::vlprint("Using clan profile VL settings\n"); if(var_01 < 0) { level.vl_clanprofile_focus = undefined; } else { level.vl_clanprofile_focus = var_01; } continue; } if(var_00 == "clan_highlight_data") { maps\mp\_vl_base::vlprint("Handling clan highlight information\n"); clans_set_highlight_gear_from_lua(var_01); } } } //Function Number: 77 hide_avatar(param_00) { param_00 hide(); param_00 hideallparts(); if(isdefined(param_00.spawned_vfx_setbonus_crouch) && !isremovedentity(param_00.spawned_vfx_setbonus_crouch)) { param_00.spawned_vfx_setbonus_crouch delete(); } if(isdefined(param_00.spawned_vfx_setbonus_stand) && !isremovedentity(param_00.spawned_vfx_setbonus_stand)) { param_00.spawned_vfx_setbonus_stand delete(); } hide_avatar_weapons(param_00); } //Function Number: 78 show_avatar(param_00) { if(param_00.isfree) { return; } addlaunchers(param_00); param_00 show(); param_00 showallparts(); if(isdefined(param_00.primaryweaponent)) { param_00.primaryweaponent show(); param_00.primaryweaponent showallparts(); } if(isdefined(param_00.secondaryweaponent)) { param_00.secondaryweaponent show(); param_00.secondaryweaponent showallparts(); } if(isdefined(param_00.akimboweaponent) && isdefined(param_00.akimboweaponent.primaryweapon)) { if(issubstr(param_00.akimboweaponent.primaryweapon,"akimbo") || issubstr(param_00.akimboweaponent.primaryweapon,"akimboxmg")) { param_00.akimboweaponent show(); param_00.akimboweaponent showallparts(); } } param_00 thread vl_vfx_for_avatar(); } //Function Number: 79 hide_avatar_primary_weapon(param_00) { if(isdefined(param_00.primaryweaponent)) { param_00 notify("hide_primary_weapon"); param_00.primaryweaponent hide(); param_00.primaryweaponent hideallparts(); } } //Function Number: 80 hide_avatar_secondary_weapon(param_00) { if(isdefined(param_00.secondaryweaponent)) { param_00 notify("hide_secondary_weapon"); param_00.secondaryweaponent hide(); param_00.secondaryweaponent hideallparts(); } } //Function Number: 81 hide_avatar_akimbo_weapon(param_00) { if(isdefined(param_00.akimboweaponent)) { param_00 notify("hide_akimbo_weapon"); param_00.akimboweaponent hide(); param_00.akimboweaponent hideallparts(); } } //Function Number: 82 hide_avatar_weapons(param_00) { hide_avatar_primary_weapon(param_00); hide_avatar_secondary_weapon(param_00); hide_avatar_akimbo_weapon(param_00); } //Function Number: 83 hide_avatars() { foreach(var_01 in level.vlavatars) { hide_avatar(var_01); } } //Function Number: 84 show_avatars() { foreach(var_01 in level.vlavatars) { show_avatar(var_01); } } //Function Number: 85 get_xuid_for_avatar(param_00) { foreach(var_03, var_02 in level.xuid2ownerid) { if(isdefined(level.vlavatars[var_02]) && level.vlavatars[var_02] == param_00) { return var_03; } } return ""; } //Function Number: 86 remove_avatar(param_00) { var_01 = -1; foreach(var_01 in level.xuid2ownerid) { if(var_01 == param_00) { break; } } maps\mp\_vl_base::vlprint("Removing xuid " + var_03 + " for ownerId " + param_00 + "\n"); setentplayerxuidforemblem(level.vlavatars[param_00],var_03,1); level.xuid2ownerid[var_03] = undefined; level.avatarinfo[param_00].timetodelete = 0; level.avatarinfo[param_00].avatar = undefined; setdvar("virtuallobbymembers",level.xuid2ownerid.size); var_04 = level.vlavatars[param_00]; level.vlavatars[param_00] = undefined; if(level.vl_focus == param_00) { if(level.vlavatars.size > 0) { foreach(var_07, var_06 in level.vlavatars) { level.vl_focus = var_07; break; } } } hide_avatar(var_04); var_04 takeallweapons(); var_04 detachall(); var_04.headmodel = undefined; var_04 hideallparts(); if(isdefined(var_04.avatar_spawnpoint.spawned_avatar)) { var_04.avatar_spawnpoint.spawned_avatar = undefined; } if(isdefined(var_04.primaryweaponent)) { setentplayerxuidforemblem(var_04.primaryweaponent,var_03,1); var_04.primaryweaponent delete(); var_04.primaryweaponent = undefined; } if(isdefined(var_04.secondaryweaponent)) { setentplayerxuidforemblem(var_04.secondaryweaponent,var_03,1); var_04.secondaryweaponent delete(); var_04.secondaryweaponent = undefined; } if(isdefined(var_04.akimboweaponent)) { setentplayerxuidforemblem(var_04.akimboweaponent,var_03,1); var_04.akimboweaponent delete(); var_04.akimboweaponent = undefined; } var_04.primaryweapon = undefined; var_04.stored_weapon = undefined; maps\mp\_vl_base::free_avatar(var_04); if(level.vl_focus == param_00) { level.vl_focus = 0; } } //Function Number: 87 reset_bot_settings_for_a_few_frames() { level notify("stop_reset_bot_settings"); level endon("stop_reset_bot_settings"); for(var_00 = 0;var_00 < 2;var_00++) { maps\mp\agents\_agent_common::set_agent_health(100); self botclearscriptenemy(); self botclearscriptgoal(); bot_disable_tactical_goals(); self botsetflag("disable_movement",1); self botsetflag("disable_rotation",1); wait(0.05); } } //Function Number: 88 hackagentangles(param_00) { self setplayerangles(param_00); } //Function Number: 89 use_animstate(param_00,param_01,param_02) { var_03 = randomfloatrange(0.85,1.15); var_04 = 0; if(!isdefined(self.animalias)) { self setanimclass("vlobby_animclass"); var_04 = 1; level notify("stop_reset_bot_settings"); hackagentangles(self.spawn_angles); } if(!isdefined(param_02)) { param_02 = "lobby_idle"; param_00 = "assault_pose_06"; } self.animalias = param_00; self.animstate = param_02; self setanimstate(param_02,param_00,var_03); if(!isdefined(param_01) || !param_01) { self.animalias = param_00; if(var_04) { vl_give_weapons(self); } } } //Function Number: 90 start_anim() { if(isdefined(level.camparams) && isdefined(level.camparams.mode)) { switch(level.camparams.mode) { case "prelobby_loot": case "prelobby": break; case "cac": case "transition": case "game_lobby": break; case "clanprofile": case "cao": break; default: break; } } } //Function Number: 91 start_prelobby_anims() { if(!isdefined(level.vlavatars)) { return; } foreach(var_01 in level.vlavatars) { if(!isdefined(var_01.animalias) || !isdefined(var_01.animstate)) { var_02 = var_01 getanimdata(var_01.primaryweapon); var_01 use_animstate(var_02.alias,undefined,var_02.animstate); } } } //Function Number: 92 start_lobby_anims() { if(!isdefined(level.vlavatars)) { return; } foreach(var_01 in level.vlavatars) { if(!isdefined(var_01.animalias) || !isdefined(var_01.animstate)) { var_02 = var_01 getanimdata(var_01.primaryweapon); var_01 use_animstate(var_02.alias,undefined,var_02.animstate); } } } //Function Number: 93 start_cao_anims() { if(!isdefined(level.vlavatars)) { return; } foreach(var_01 in level.vlavatars) { if(!isdefined(var_01.animalias) || !isdefined(var_01.animstate)) { var_02 = var_01 getanimdata(var_01.primaryweapon); var_01 use_animstate(var_02.alias,undefined,var_02.animstate); } } } //Function Number: 94 find_best_cam_path(param_00,param_01,param_02) { var_03 = []; var_03[0] = param_00; var_03[1] = param_01; var_04 = 20; var_05 = 1; while(var_05 && var_04 > 0) { var_04--; var_05 = 0; var_06 = []; var_06[var_06.size] = var_03[0]; var_07 = 0; var_08 = 0; for(var_09 = 0;var_09 < var_03.size - 1 && !var_07;var_09++) { var_0A = 1; var_0B = var_03[var_09]; var_0C = var_03[var_09 + 1]; while(var_0A) { var_0A = 0; var_0D = undefined; var_0E = undefined; foreach(var_10 in param_02) { var_11 = trace2d(var_0B,var_0C,var_10); if(var_11["intersect"]) { if(distance2d(var_06[var_06.size - 1],var_11["closestpoint"]) > 0.1 && distance2d(var_0C,var_11["closestpoint"]) > 0.1) { var_0A = 1; if(!isdefined(var_0E) || var_0E["radratio"] > var_11["radratio"]) { var_0D = var_10; var_0E = var_11; } } } } if(var_0A) { var_05 = 1; if(length2d(var_0B,var_0D["center"]) < var_0D["radius"]) { var_0B = move_outside_circle(var_0B,var_0D); var_06[var_06.size - 1] = var_0B; var_0A = 0; var_07 = 1; var_08 = var_09 + 1; } else if(length2d(var_0C,var_0D["center"]) < var_0D["radius"]) { var_0C = move_outside_circle(var_0C,var_0D); var_06[var_06.size] = var_0C; var_0A = 0; var_07 = 1; var_08 = var_09 + 2; } else { var_06[var_06.size] = var_0E["closestpoint"]; var_06[var_06.size] = var_0C; var_0A = 0; } continue; } var_06[var_06.size] = var_0C; } } if(var_07) { for(var_09 = var_08;var_09 < var_03.size;var_09++) { var_06[var_06.size] = var_03[var_09]; } } var_03 = var_06; } return var_03; } //Function Number: 95 move_outside_circle(param_00,param_01) { var_02 = param_01["center"]; var_03 = param_01["radius"]; var_04 = vectornormalize((param_00[0] - var_02[0],param_00[1] - var_02[1],0)); param_00 = (var_02[0] + var_03 * var_04[0],var_02[1] + var_03 * var_04[1],param_00[2]); return param_00; } //Function Number: 96 trace2d(param_00,param_01,param_02) { var_03 = 5; var_04 = param_02["center"]; var_05 = param_02["radius"]; var_06 = var_05 + var_03; var_07 = (param_01[0] - param_00[0],param_01[1] - param_00[1],0); var_08 = vectornormalize(var_07); var_09 = length2d(var_07); var_0A = (var_04[0] - param_00[0],var_04[1] - param_00[1],0); var_0B = vectordot(var_08,var_0A); if(var_0B < 0) { var_0B = 0; } else if(var_0B > var_09) { var_0B = var_09; } var_0C = (param_00[0] + var_0B * var_08[0],param_00[1] + var_0B * var_08[1],0); var_0D = var_0B / var_09; var_0E = (var_0C[0] - var_04[0],var_0C[1] - var_04[1],0); var_09 = length2d(var_0E); var_0F = 0; var_10 = 1; if(var_09 < var_05) { var_0F = 1; var_0E = vectornormalize(var_0E); var_0C = (var_04[0] + var_06 * var_0E[0],var_04[1] + var_06 * var_0E[1],param_00[2] + var_0D * param_01[2] - param_00[2]); var_10 = var_09 / var_05; } var_11 = []; var_11["intersect"] = var_0F; var_11["fraction"] = var_0D; var_11["closestpoint"] = var_0C; var_11["radratio"] = var_10; return var_11; } //Function Number: 97 calc_new_pos(param_00,param_01,param_02) { var_03 = distance(param_00,param_02); if(var_03 > param_01) { var_04 = vectornormalize(param_02 - param_00); param_02 = param_00 + param_01 * var_04; } return param_02; } //Function Number: 98 lookahead_path(param_00,param_01,param_02,param_03,param_04) { var_05 = param_04[param_00]; if(param_00 + 1 >= param_04.size) { return [param_00,calc_new_pos(param_01,param_02,param_04[param_00])]; } var_06 = param_04[param_00 + 1]; var_07 = distance(var_05,var_06); var_08 = vectornormalize(var_06 - var_05); var_09 = vectordot(var_08,param_01 - var_05); if(var_09 < 0) { var_09 = 0; } if(var_09 > var_07) { var_09 = var_07; } var_0A = var_05 + var_09 * var_08; var_0B = param_03; var_0C = var_07 - var_09; var_0D = param_04[param_04.size - 1]; while(var_0B > 0) { if(var_0C > var_0B) { var_0D = var_0A + var_0B * var_08; var_0B = 0; continue; } if(param_00 + 1 >= param_04.size) { var_0D = param_04[param_00]; var_0B = 0; } var_0B = var_0B - var_0C; param_00++; var_0A = param_04[param_00]; } return [param_00,calc_new_pos(param_01,param_02,var_0D)]; } //Function Number: 99 init_path_traversal(param_00) { param_00.distanceonpath = 0; param_00.pathidx = 0; param_00.distonpathsegment = 0; param_00.pathspeed = 0; var_01 = param_00.pathinfo_len / param_00.path_idealtime; if(var_01 < param_00.path_minspeed) { var_01 = param_00.path_minspeed; } if(var_01 > param_00.path_maxspeed) { var_01 = param_00.path_maxspeed; } param_00.pathaccel = 0.05 * var_01 / param_00.path_accel_time; param_00.pathdeccel = 0.05 * var_01 / param_00.path_deccel_time; param_00.pathtgtspeed = var_01; param_00.pathaccelmode = 1; param_00.pathinfo_t = 0; param_00.pathinfo_totalt = param_00.path_idealtime; var_02 = param_00.path_deccel_time / 0.05; var_03 = 0; var_04 = var_01; for(var_05 = 0;var_05 < var_02;var_05++) { var_04 = var_04 - param_00.pathdeccel; if(var_04 < param_00.path_mindeccelspeed) { var_04 = param_00.path_mindeccelspeed; } var_03 = var_03 + var_04; } param_00.pathstartdecceldist = param_00.pathinfo_len - var_03; param_00.pitch = param_00.pathinfo_startpitch; } //Function Number: 100 update_path_speed(param_00) { if(param_00.distanceonpath < param_00.pathstartdecceldist) { param_00.pathspeed = param_00.pathspeed + param_00.pathaccel; if(param_00.pathspeed > param_00.pathtgtspeed) { param_00.pathspeed = param_00.pathtgtspeed; return; } return; } param_00.pathspeed = param_00.pathspeed - param_00.pathdeccel; if(param_00.pathspeed < param_00.path_mindeccelspeed) { param_00.pathspeed = param_00.path_mindeccelspeed; } } //Function Number: 101 init_path_constants(param_00) { param_00.path_maxspeed = 15; param_00.path_minspeed = 1.8; param_00.path_mindeccelspeed = 0.3; param_00.path_idealtime = 0.5; param_00.path_accel_time = 0.15 * param_00.path_idealtime; param_00.path_deccel_time = 0.15 * param_00.path_idealtime; param_00.pathmaxrotz = 4.5; param_00.pathmaxrotx = 4.5; } //Function Number: 102 build_path_info(param_00,param_01,param_02,param_03,param_04) { var_05 = find_best_cam_path(param_00.origin,param_03,param_00.obstacles); param_00.path = var_05; var_06 = 0; foreach(var_09, var_08 in param_00.path) { if(var_09 > 0) { var_06 = var_06 + distance(param_00.path[var_09],param_00.path[var_09 - 1]); } } param_00.pathinfo_t = 0; param_00.pathinfo_totalt = param_00.path_idealtime; param_00.pathinfo_len = var_06; param_00.pathinfo_startaim = anglestoforward(param_00.angles); param_00.pathinfo_endaim = anglestoforward(param_04); param_00.pathinfo_startpitch = angleclamp180(param_00.angles[0]); param_00.pathinfo_curstartpitch = param_00.pathinfo_startpitch; param_00.pathinfo_endpitch = angleclamp180(param_04[0]); param_00.pathinfo_startyaw = angleclamp180(param_00.angles[1]); param_00.pathinfo_endyaw = angleclamp180(param_04[1]); param_00.pathinfo_start_loc = param_02; param_00.pathinfo_end_loc = param_03; param_00.pathinfo_velocity = (0,0,0); var_0A = vectornormalize(param_00.pathinfo_end_loc - param_00.pathinfo_start_loc); var_0B = vectordot(var_0A,param_00.pathinfo_startaim); var_0C = vectordot(var_0A,param_00.pathinfo_endaim); var_0D = 0; if(var_0C < -0.707 && var_0B < -0.707) { var_0D = 1; } param_00.pathinfo_mode = var_0D; init_path_traversal(param_00); } //Function Number: 103 findnewtargetpos(param_00,param_01,param_02) { var_03 = anglestoforward(param_00); var_04 = param_02 - param_01; var_05 = vectordot(var_04,var_03); var_06 = param_01 + var_03 * var_05; return var_06; } //Function Number: 104 sigmoid(param_00,param_01) { var_02 = -0.5; param_00 = param_00 + var_02; param_00 = param_00 * 2 * param_01; var_03 = sqrt(1 + param_01 * param_01) / 2 * param_01; var_04 = 0.5; var_05 = var_03 * param_00 / sqrt(1 + param_00 * param_00) + var_04; return var_05; } //Function Number: 105 lerp_towards_desiredangle(param_00,param_01) { var_02 = angleclamp180(param_01[0]); var_03 = angleclamp180(param_00.angles[0]); var_04 = angleclamp180(param_01[1] - param_00.angles[1]); var_05 = angleclamp180(var_02 - var_03); if(var_04 < -1 * param_00.pathmaxrotz) { var_04 = -1 * param_00.pathmaxrotz; } if(var_04 > param_00.pathmaxrotz) { var_04 = param_00.pathmaxrotz; } if(var_05 < -1 * param_00.pathmaxrotx) { var_05 = -1 * param_00.pathmaxrotx; } if(var_05 > param_00.pathmaxrotx) { var_05 = param_00.pathmaxrotx; } var_06 = (var_05,var_04,0); param_00.angles = param_00.angles + var_06; if(abs(var_05) < 0.1 && abs(var_04) < 0.1) { return 1; } return 0; } //Function Number: 106 update_camera_angles_on_path(param_00,param_01) { var_02 = param_00.pathinfo_t / param_00.pathinfo_totalt; var_02 = sigmoid(var_02,2); var_03 = param_00.angles; var_04 = var_02 * param_00.pathinfo_endpitch - param_00.pathinfo_startpitch + param_00.pathinfo_startpitch; var_05 = param_00.pathinfo_startyaw + var_02 * param_00.pathinfo_endyaw - param_00.pathinfo_startyaw; var_06 = param_00.angles[1] + angleclamp180(var_05 - param_00.angles[1]); var_03 = (var_04,var_06,var_03[2]); return lerp_towards_desiredangle(param_00,var_03); } //Function Number: 107 update_camera_position_on_path(param_00) { var_01 = param_00.pathinfo_t / param_00.pathinfo_totalt; var_01 = sigmoid(var_01,2); var_02 = var_01 * param_00.pathinfo_len; param_00.pathidx = 0; param_00.distonpathsegment = 0; param_00.distanceonpath = 0; while(var_02 > 0) { var_03 = distance(param_00.path[param_00.pathidx],param_00.path[param_00.pathidx + 1]); var_04 = var_03 - param_00.distonpathsegment; if(var_04 > var_02) { param_00.distonpathsegment = param_00.distonpathsegment + var_02; var_05 = param_00.path[param_00.pathidx] + param_00.distonpathsegment * vectornormalize(param_00.path[param_00.pathidx + 1] - param_00.path[param_00.pathidx]); param_00.pathinfo_velocity = var_05 - param_00.origin; param_00.origin = var_05; param_00.distanceonpath = param_00.distanceonpath + var_02; var_02 = 0; continue; } var_02 = var_02 - var_04; param_00.pathidx++; if(param_00.pathidx >= param_00.path.size - 1) { if(param_00.pathidx < param_00.path.size) { var_05 = param_00.path[param_00.pathidx]; } else { var_05 = var_01.path[var_01.path.size - 1]; } param_00.pathinfo_velocity = var_05 - param_00.origin; param_00.origin = var_05; param_00.distanceonpath = param_00.pathinfo_len; var_02 = 0; continue; } param_00.distanceonpath = param_00.distanceonpath + var_04; param_00.distonpathsegment = 0; } } //Function Number: 108 update_camera_on_path(param_00,param_01) { var_02 = 0; param_00.pathinfo_t = param_00.pathinfo_t + 0.05; if(param_00.pathinfo_t >= param_00.pathinfo_totalt) { param_00.pathinfo_t = param_00.pathinfo_totalt; var_02 = 1; param_00.pathinfo_velocity = (0,0,0); } update_camera_position_on_path(param_00); update_camera_angles_on_path(param_00,param_01); return var_02; } //Function Number: 109 get_target_from_avatar(param_00) { var_01 = "j_neck"; var_02 = param_00 gettagorigin(var_01); return var_02; } //Function Number: 110 calc_f_from_avatar(param_00) { var_01 = rotateavatartagcamera(param_00); var_02 = var_01.camera_tag_origin; var_03 = var_01.camera_tag_angles; var_04 = get_target_from_avatar(param_00); var_05 = var_02; var_06 = var_02 + anglestoforward(var_03) * 64; return calc_f(var_05,var_06,var_04); } //Function Number: 111 calc_f_from_avatar_spawnpoint(param_00) { var_01 = param_00.origin; var_02 = param_00.camera_helper.origin; var_03 = param_00.camera_lookat.origin; return calc_f(var_02,var_03,var_01); } //Function Number: 112 calc_f(param_00,param_01,param_02) { var_03 = param_01; var_04 = param_00; var_05 = param_02; var_06 = []; var_07 = vectornormalize(vectorcross(var_03 - var_04,(0,0,1))); var_08 = vectornormalize(vectorcross(var_07,var_03 - var_04)); var_09 = var_05 - var_04; var_0A = var_05 - vectordot(var_08,var_09) * var_08; var_0B = var_05 - vectordot(var_07,var_09) * var_07; var_0C = distance(var_0A,var_03); var_0D = distance(var_0A,var_04); var_0E = var_0C / var_0D; var_0F = 1; if(vectordot(var_09,var_07) < 0) { var_0F = -1; } var_06["fx"] = var_0E; var_06["sx"] = var_0F; var_10 = distance(var_0B,var_03); var_11 = distance(var_0B,var_04); var_12 = var_10 / var_11; var_13 = 1; if(vectordot(var_09,var_08) < 0) { var_13 = -1; } var_06["fz"] = var_12; var_06["sz"] = var_13; return var_06; } //Function Number: 113 calc_f_fromscreen(param_00,param_01) { var_02 = getdvarfloat("cg_fov",45) * getdvarfloat("cg_fovScale",1); var_03 = 1; var_04 = tan(var_02); var_05 = []; var_06 = var_04 * abs(param_00); var_07 = 1; if(param_00 < 0) { var_07 = -1; } var_08 = var_06 / sqrt(1 - var_06 * var_06); var_05["sx"] = var_07; var_05["fx"] = var_08; var_09 = var_03 * var_04 * abs(param_01); var_0A = 1; if(param_01 < 0) { var_0A = -1; } var_0B = var_09 / sqrt(1 - var_09 * var_09); var_05["sz"] = var_0A; var_05["fz"] = var_0B; return var_05; } //Function Number: 114 calc_cam_lookat(param_00,param_01,param_02) { var_03 = param_01; var_04 = param_02; var_05 = var_04 - var_03; var_06 = vectornormalize(vectorcross(var_05,(0,0,1))); var_07 = vectornormalize(vectorcross(var_06,var_05)); var_08 = var_05 - vectordot(var_05,var_07) * var_07; var_09 = length(var_08); var_0A = param_00["fx"]; var_0B = param_00["sx"]; var_0C = var_09 * var_0A; var_09 = var_09 * var_0A * var_0A; var_0D = var_09 * var_0A * sqrt(1 - var_0A * var_0A); var_0E = var_09 * var_08 + var_0D * var_06; var_0F = var_05 - vectordot(var_05,var_06) * var_06; var_10 = length(var_0F); var_11 = param_00["fz"]; var_12 = param_00["sz"]; var_13 = var_10 * var_11; var_10 = var_10 * var_11 * var_11; var_14 = var_10 * var_11 * sqrt(1 - var_11 * var_11); var_15 = var_10 * var_0F + var_14 * var_07; var_16 = var_04 + var_0B * var_0E + var_12 * var_15; return var_16; } //Function Number: 115 debug_draw_path(param_00) { var_01 = (1,1,1); var_02 = param_00[0]; var_03 = var_02; var_04 = 0; var_05 = 10; var_06 = 30; if(level.use_lookahead) { for(;;) { var_07 = lookahead_path(var_04,var_02,var_05,var_06,param_00); var_04 = var_07[0]; var_03 = var_07[1]; if(distance(var_02,var_03) < 0.1) { break; } var_02 = var_03; if(var_04 >= param_00.size) { break; } } return; } for(var_08 = 0;var_08 < param_00.size - 1;var_08++) { } } //Function Number: 116 debug_draw_obstacles(param_00) { var_01 = (1,0.5,0); foreach(var_03 in param_00) { var_04 = var_03["center"]; var_05 = var_03["radius"]; } } //Function Number: 117 debug_draw_aim(param_00) { var_01 = 1; var_02 = var_01; var_03 = 36; init_path_traversal(param_00); param_00.target_from_avatar = get_target_from_avatar(param_00.targetavatar); while(!update_camera_on_path(param_00)) { var_04 = param_00.target_from_avatar; var_05 = calc_cam_lookat(param_00.fparams,param_00.origin,var_04); var_02--; if(var_02 <= 0) { var_02 = var_01; } } param_00.angles = (angleclamp180(param_00.angles[0]),angleclamp180(param_00.angles[1]),angleclamp180(param_00.angles[2])); param_00 dontinterpolate(); } //Function Number: 118 test_pathing(param_00,param_01,param_02,param_03) { level notify("stop_test_pathing"); level endon("stop_test_pathing"); var_04 = getentarray("player_pos","targetname"); var_05 = param_02.spawned_avatar; var_06 = rotateavatartagcamera(var_05); var_07 = var_06.camera_tag_origin; var_08 = var_06.camera_tag_angles; var_09 = var_07; var_0A = var_08; var_0B = param_00.origin; var_0C = var_0B + anglestoforward(param_00.angles) * 64; var_0D = var_09 + anglestoforward(var_0A) * 64; param_00.origin = var_0B; param_00.angles = var_0A; param_00.obstacles = param_03; init_path_constants(param_00); build_path_info(param_00,undefined,param_00.origin,var_09,var_0A); param_00.fparams = calc_f_from_avatar(var_05); param_00.targetavatar = var_05; for(;;) { param_00.origin = var_0B; param_00.angles = var_0A; debug_draw_path(param_00.path); debug_draw_obstacles(param_00.obstacles); debug_draw_aim(param_00); wait(0.05); } } //Function Number: 119 debug_pathing() { var_00 = 0; var_01 = getentarray("player_pos","targetname"); foreach(var_03 in var_01) { var_04 = getent(var_03.target,"targetname"); if(var_04.script_noteworthy == "camera_target") { var_03.camera_lookat = var_04; } var_05 = getent(var_04.target,"targetname"); if(var_05.script_noteworthy == "camera") { var_03.camera_helper = var_05; var_05.camera_goal = var_03; var_05.camera_lookat = var_03.camera_lookat; } } var_07 = spawn("script_model",(0,0,0)); var_07 setmodel("tag_player"); level.use_lookahead = 0; var_08 = 0; var_09 = 1; var_0A = "111111111111111111"; var_0B = 16; for(;;) { if(self fragbuttonpressed()) { while(self fragbuttonpressed()) { wait(0.05); } var_09++; if(var_09 >= 12) { var_09 = 0; } if(var_09 == var_08) { var_09++; if(var_09 >= 12) { var_09 = 0; } } var_00 = 1; } if(self secondaryoffhandbuttonpressed()) { while(self secondaryoffhandbuttonpressed()) { wait(0.05); } var_08++; if(var_08 >= 12) { var_08 = 0; } if(var_09 == var_08) { var_08++; if(var_08 >= 12) { var_08 = 0; } } var_00 = 1; } if(var_00) { var_00 = 0; var_0C = []; var_0D = undefined; var_0E = undefined; foreach(var_12, var_10 in var_01) { if(getsubstr(var_0A,var_12,var_12 + 1) == "0") { continue; } var_11 = []; var_11["center"] = var_10.origin; var_11["radius"] = var_0B; var_0C[var_0C.size] = var_11; if(var_10.script_noteworthy == "" + var_08) { var_0D = var_10; } if(var_10.script_noteworthy == "" + var_09) { var_0E = var_10; } } thread test_pathing(var_07,var_0D,var_0E,var_0C); } wait(0.2); } } //Function Number: 120 debug_fly(param_00) { level.debug_fly = 1; var_01 = 30; var_02 = 10; var_03 = 10; var_04 = self getunnormalizedcameramovement(); var_05 = self getnormalizedmovement(); var_06 = anglestoforward(var_04); var_07 = anglestoup(var_04); var_08 = anglestoright(var_04); var_09 = 0; if(self adsbuttonpressed()) { var_09 = -1; } else if(self attackbuttonpressed()) { var_09 = 1; } if(self secondaryoffhandbuttonpressed()) { var_01 = var_01 * 0.1; var_02 = var_02 * 0.1; var_03 = var_03 * 0.1; } param_00.angles = var_04; param_00.origin = param_00.origin + var_05[0] * var_01 * var_06 + var_05[1] * var_02 * var_08 + var_09 * var_03 * var_07; } //Function Number: 121 vlobby_vegnette(param_00,param_01) { if(!isdefined(self.vegnette)) { self.vegnette = newclienthudelem(self); self.vegnette.x = 0; self.vegnette.y = 0; self.vegnette setshader(param_01,640,480); self.vegnette.alignx = "left"; self.vegnette.aligny = "top"; self.vegnette.horzalign = "fullscreen"; self.vegnette.vertalign = "fullscreen"; self.vegnette.alpha = param_00; } if(isdefined(self.vegnette) && self.vegnette.alpha > 0 && param_00 == 0) { self.vegnette setshader(param_01,640,480); self.vegnette.alpha = 0; } if(isdefined(self.vegnette) && self.vegnette.alpha < 1 && param_00 == 1) { self.vegnette setshader(param_01,640,480); self.vegnette.alpha = 1; } }