Files
IL-GSC/MW3/PC/SP/animscripts/battlechatter.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

3935 lines
74 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\battlechatter.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 157
* Decompile Time: 2937 ms
* Timestamp: 10/27/2023 2:17:48 AM
*******************************************************************/
//Function Number: 1
func_0B6B()
{
if(isdefined(level.chatinitialized) && level.chatinitialized)
{
return;
}
setdvarifuninitialized("bcs_enable","on");
if(getdvar("bcs_enable","on") == "off")
{
anim.chatinitialized = 0;
level.player.chatinitialized = 0;
return;
}
anim.chatinitialized = 1;
level.player.chatinitialized = 0;
setdvarifuninitialized("bcs_filterThreat","off");
setdvarifuninitialized("bcs_filterInform","off");
setdvarifuninitialized("bcs_filterOrder","off");
setdvarifuninitialized("bcs_filterReaction","off");
setdvarifuninitialized("bcs_filterResponse","off");
setdvarifuninitialized("bcs_forceEnglish","0");
setdvarifuninitialized("bcs_allowsamevoiceresponse","off");
setdvarifuninitialized("debug_bcprint","off");
setdvarifuninitialized("debug_bcprintdump","off");
setdvarifuninitialized("debug_bcprintdumptype","csv");
setdvarifuninitialized("debug_bcshowqueue","off");
anim.bcprintfailprefix = "^3***** BCS FAILURE: ";
anim.var_B6C = "^3***** BCS WARNING: ";
func_0B8B();
func_0B8C();
level.var_AD0["american"] = "1";
level.var_AD0["seal"] = "1";
level.var_AD0["taskforce"] = "1";
level.var_AD0["secretservice"] = "1";
level.var_AD0["delta"] = "1";
thread func_0B9F();
anim.var_ABB = [];
level.var_ABB["russian"] = [];
level.var_ABB["russian"][0] = spawnstruct();
level.var_ABB["russian"][0].count = 0;
level.var_ABB["russian"][0].var_AB6 = "0";
level.var_ABB["russian"][1] = spawnstruct();
level.var_ABB["russian"][1].count = 0;
level.var_ABB["russian"][1].var_AB6 = "1";
level.var_ABB["russian"][2] = spawnstruct();
level.var_ABB["russian"][2].count = 0;
level.var_ABB["russian"][2].var_AB6 = "2";
level.var_ABB["russian"][3] = spawnstruct();
level.var_ABB["russian"][3].count = 0;
level.var_ABB["russian"][3].var_AB6 = "3";
level.var_ABB["russian"][4] = spawnstruct();
level.var_ABB["russian"][4].count = 0;
level.var_ABB["russian"][4].var_AB6 = "4";
level.var_ABB["portuguese"] = [];
level.var_ABB["portuguese"][0] = spawnstruct();
level.var_ABB["portuguese"][0].count = 0;
level.var_ABB["portuguese"][0].var_AB6 = "0";
level.var_ABB["portuguese"][1] = spawnstruct();
level.var_ABB["portuguese"][1].count = 0;
level.var_ABB["portuguese"][1].var_AB6 = "1";
level.var_ABB["portuguese"][2] = spawnstruct();
level.var_ABB["portuguese"][2].count = 0;
level.var_ABB["portuguese"][2].var_AB6 = "2";
level.var_ABB["shadowcompany"] = [];
level.var_ABB["shadowcompany"][0] = spawnstruct();
level.var_ABB["shadowcompany"][0].count = 0;
level.var_ABB["shadowcompany"][0].var_AB6 = "0";
level.var_ABB["shadowcompany"][1] = spawnstruct();
level.var_ABB["shadowcompany"][1].count = 0;
level.var_ABB["shadowcompany"][1].var_AB6 = "1";
level.var_ABB["shadowcompany"][2] = spawnstruct();
level.var_ABB["shadowcompany"][2].count = 0;
level.var_ABB["shadowcompany"][2].var_AB6 = "2";
level.var_ABB["shadowcompany"][3] = spawnstruct();
level.var_ABB["shadowcompany"][3].count = 0;
level.var_ABB["shadowcompany"][3].var_AB6 = "3";
level.var_ABB["british"] = [];
level.var_ABB["british"][0] = spawnstruct();
level.var_ABB["british"][0].count = 0;
level.var_ABB["british"][0].var_AB6 = "0";
level.var_ABB["british"][1] = spawnstruct();
level.var_ABB["british"][1].count = 0;
level.var_ABB["british"][1].var_AB6 = "1";
level.var_ABB["american"] = [];
level.var_ABB["american"][0] = spawnstruct();
level.var_ABB["american"][0].count = 0;
level.var_ABB["american"][0].var_AB6 = "0";
level.var_ABB["american"][1] = spawnstruct();
level.var_ABB["american"][1].count = 0;
level.var_ABB["american"][1].var_AB6 = "1";
level.var_ABB["american"][2] = spawnstruct();
level.var_ABB["american"][2].count = 0;
level.var_ABB["american"][2].var_AB6 = "2";
level.var_ABB["seal"] = [];
level.var_ABB["seal"][0] = spawnstruct();
level.var_ABB["seal"][0].count = 0;
level.var_ABB["seal"][0].var_AB6 = "0";
level.var_ABB["seal"][1] = spawnstruct();
level.var_ABB["seal"][1].count = 0;
level.var_ABB["seal"][1].var_AB6 = "1";
level.var_ABB["seal"][2] = spawnstruct();
level.var_ABB["seal"][2].count = 0;
level.var_ABB["seal"][2].var_AB6 = "2";
level.var_ABB["seal"][3] = spawnstruct();
level.var_ABB["seal"][3].count = 0;
level.var_ABB["seal"][3].var_AB6 = "3";
level.var_ABB["taskforce"] = [];
level.var_ABB["taskforce"][0] = spawnstruct();
level.var_ABB["taskforce"][0].count = 0;
level.var_ABB["taskforce"][0].var_AB6 = "0";
level.var_ABB["secretservice"] = [];
level.var_ABB["secretservice"][0] = spawnstruct();
level.var_ABB["secretservice"][0].count = 0;
level.var_ABB["secretservice"][0].var_AB6 = "0";
level.var_ABB["secretservice"][1] = spawnstruct();
level.var_ABB["secretservice"][1].count = 0;
level.var_ABB["secretservice"][1].var_AB6 = "1";
level.var_ABB["secretservice"][2] = spawnstruct();
level.var_ABB["secretservice"][2].count = 0;
level.var_ABB["secretservice"][2].var_AB6 = "2";
level.var_ABB["secretservice"][3] = spawnstruct();
level.var_ABB["secretservice"][3].count = 0;
level.var_ABB["secretservice"][3].var_AB6 = "3";
level.var_ABB["arab"] = [];
level.var_ABB["arab"][0] = spawnstruct();
level.var_ABB["arab"][0].count = 0;
level.var_ABB["arab"][0].var_AB6 = "0";
level.var_ABB["arab"][1] = spawnstruct();
level.var_ABB["arab"][1].count = 0;
level.var_ABB["arab"][1].var_AB6 = "1";
level.var_ABB["arab"][2] = spawnstruct();
level.var_ABB["arab"][2].count = 0;
level.var_ABB["arab"][2].var_AB6 = "2";
level.var_ABB["delta"] = [];
level.var_ABB["delta"][0] = spawnstruct();
level.var_ABB["delta"][0].count = 0;
level.var_ABB["delta"][0].var_AB6 = "0";
level.var_ABB["delta"][1] = spawnstruct();
level.var_ABB["delta"][1].count = 0;
level.var_ABB["delta"][1].var_AB6 = "1";
level.var_ABB["delta"][2] = spawnstruct();
level.var_ABB["delta"][2].count = 0;
level.var_ABB["delta"][2].var_AB6 = "2";
level.var_ABB["french"] = [];
level.var_ABB["french"][0] = spawnstruct();
level.var_ABB["french"][0].count = 0;
level.var_ABB["french"][0].var_AB6 = "0";
level.var_ABB["african"] = [];
level.var_ABB["african"][0] = spawnstruct();
level.var_ABB["african"][0].count = 0;
level.var_ABB["african"][0].var_AB6 = "0";
level.var_ABB["african"][1] = spawnstruct();
level.var_ABB["african"][1].count = 0;
level.var_ABB["african"][1].var_AB6 = "1";
level.var_ABB["african"][2] = spawnstruct();
level.var_ABB["african"][2].count = 0;
level.var_ABB["african"][2].var_AB6 = "2";
level.var_ABB["czech"] = [];
level.var_ABB["czech"][0] = spawnstruct();
level.var_ABB["czech"][0].count = 0;
level.var_ABB["czech"][0].var_AB6 = "0";
level.var_ABB["czech"][1] = spawnstruct();
level.var_ABB["czech"][1].count = 0;
level.var_ABB["czech"][1].var_AB6 = "1";
level.var_ABB["czech"][2] = spawnstruct();
level.var_ABB["czech"][2].count = 0;
level.var_ABB["czech"][2].var_AB6 = "2";
level.var_ABB["pmc"] = [];
level.var_ABB["pmc"][0] = spawnstruct();
level.var_ABB["pmc"][0].count = 0;
level.var_ABB["pmc"][0].var_AB6 = "0";
level.var_ABB["pmc"][1] = spawnstruct();
level.var_ABB["pmc"][1].count = 0;
level.var_ABB["pmc"][1].var_AB6 = "1";
level.var_ABB["pmc"][2] = spawnstruct();
level.var_ABB["pmc"][2].count = 0;
level.var_ABB["pmc"][2].var_AB6 = "2";
func_0B90();
if(!isdefined(level.friendlyfire_warnings))
{
level.friendlyfire_warnings = 0;
}
anim.eventtypeminwait = [];
level.eventtypeminwait["threat"] = [];
level.eventtypeminwait["response"] = [];
level.eventtypeminwait["reaction"] = [];
level.eventtypeminwait["order"] = [];
level.eventtypeminwait["inform"] = [];
level.eventtypeminwait["custom"] = [];
level.eventtypeminwait["direction"] = [];
if(isdefined(level._stealth))
{
level.var_B6F["threat"]["self"] = 20000;
level.var_B6F["threat"]["squad"] = 30000;
}
else
{
level.var_B6F["threat"]["self"] = 12500;
level.var_B6F["threat"]["squad"] = 7500;
}
level.var_B6F["threat"]["location_repeat"] = 5000;
level.var_B6F["response"]["self"] = 1000;
level.var_B6F["response"]["squad"] = 1000;
level.var_B6F["reaction"]["self"] = 1000;
level.var_B6F["reaction"]["squad"] = 1000;
level.var_B6F["order"]["self"] = 8000;
level.var_B6F["order"]["squad"] = 10000;
level.var_B6F["inform"]["self"] = 6000;
level.var_B6F["inform"]["squad"] = 8000;
level.var_B6F["custom"]["self"] = 0;
level.var_B6F["custom"]["squad"] = 0;
level.eventtypeminwait["playername"] = -15536;
level.eventtypeminwait["reaction"]["casualty"] = 14000;
level.eventtypeminwait["reaction"]["friendlyfire"] = 5000;
level.eventtypeminwait["reaction"]["taunt"] = 30000;
level.eventtypeminwait["inform"]["reloading"] = 20000;
level.eventtypeminwait["inform"]["killfirm"] = 15000;
level.var_B70["threat"]["infantry"] = 0.5;
level.var_B70["threat"]["vehicle"] = 0.7;
level.var_B70["response"]["ack"] = 0.9;
level.var_B70["response"]["exposed"] = 0.8;
level.var_B70["response"]["callout"] = 0.9;
level.var_B70["response"]["echo"] = 0.9;
level.var_B70["reaction"]["casualty"] = 0.5;
level.var_B70["reaction"]["friendlyfire"] = 1;
level.var_B70["reaction"]["taunt"] = 0.9;
level.var_B70["order"]["action"] = 0.3;
level.var_B70["order"]["move"] = 0.3;
level.var_B70["order"]["displace"] = 0.5;
level.var_B70["inform"]["attack"] = 0.9;
level.var_B70["inform"]["incoming"] = 0.9;
level.var_B70["inform"]["reloading"] = 0.2;
level.var_B70["inform"]["suppressed"] = 0.2;
level.var_B70["inform"]["killfirm"] = 0.7;
level.var_B70["custom"]["generic"] = 1;
level.var_B71["threat"]["infantry"] = 1000;
level.var_B71["threat"]["vehicle"] = 1000;
level.var_B71["response"]["exposed"] = 2000;
level.var_B71["response"]["callout"] = 2000;
level.var_B71["response"]["echo"] = 2000;
level.var_B71["response"]["ack"] = 1750;
level.var_B71["reaction"]["casualty"] = 2000;
level.var_B71["reaction"]["friendlyfire"] = 1000;
level.var_B71["reaction"]["taunt"] = 2000;
level.var_B71["order"]["action"] = 3000;
level.var_B71["order"]["move"] = 3000;
level.var_B71["order"]["displace"] = 3000;
level.var_B71["inform"]["attack"] = 1000;
level.var_B71["inform"]["incoming"] = 1500;
level.var_B71["inform"]["reloading"] = 1000;
level.var_B71["inform"]["suppressed"] = 2000;
level.var_B71["inform"]["killfirm"] = 2000;
level.var_B71["custom"]["generic"] = 1000;
level.var_B2D["response"]["exposed"] = 75;
level.var_B2D["response"]["reload"] = 65;
level.var_B2D["response"]["callout"] = 75;
level.var_B2D["response"]["callout_negative"] = 20;
level.var_B2D["response"]["order"] = 40;
level.var_B2D["moveEvent"]["coverme"] = 70;
level.var_B2D["moveEvent"]["ordertoplayer"] = 10;
anim.var_B72 = 620;
anim.var_B73 = 12;
anim.var_B74 = 24;
anim.var_B75 = 2;
anim.var_B76 = 5;
anim.var_B77 = spawn("script_origin",(0,0,0));
if(!isdefined(level.var_B78))
{
level.var_B78 = 1500;
}
if(!isdefined(level.var_B1D))
{
level.var_B1D = 2500;
}
level.var_B79 = 96;
level.var_B7A = 8;
level.var_B7B = 45;
maps\_bcs_location_trigs::bcs_location_trigs_init();
anim.var_B7C = [];
anim.var_B7D = 4000;
anim.var_B7E = 3000;
level.var_A60[level.var_A60.size] = ::func_0AAC;
level.var_A61[level.var_A61.size] = "::init_squadBattleChatter";
foreach(var_01 in level.teams)
{
level.isteamspeaking[var_01] = 0;
level.var_B81[var_01]["threat"] = 0;
level.var_B81[var_01]["order"] = 0;
level.var_B81[var_01]["reaction"] = 0;
level.var_B81[var_01]["response"] = 0;
level.var_B81[var_01]["inform"] = 0;
level.var_B81[var_01]["custom"] = 0;
}
func_0B8D();
if(!isdefined(level.var_B82))
{
anim.var_B82 = [];
level.var_B82["american"] = 1;
level.var_B82["delta"] = 0;
level.var_B82["french"] = 0;
level.var_B82["czech"] = 0;
level.var_B82["pmc"] = 0;
level.var_B82["african"] = 0;
level.var_B82["shadowcompany"] = 1;
level.var_B82["seal"] = 0;
level.var_B82["taskforce"] = 0;
level.var_B82["secretservice"] = 0;
level.var_B82["british"] = 0;
}
func_0B8F();
anim.lastteamspeaktime = [];
anim.var_B84 = [];
anim.var_B85 = [];
foreach(var_01 in level.teams)
{
level.lastteamspeaktime[var_01] = --15536;
level.var_B84[var_01] = "none";
level.var_B85[var_01] = -100000;
}
anim.var_B86 = 120000;
for(var_05 = 0;var_05 < level.var_A63.size;var_05++)
{
if(isdefined(level.var_A63[var_05].chatinitialized) && level.var_A63[var_05].chatinitialized)
{
continue;
}
level.var_A63[var_05] func_0AAC();
}
anim.var_B87 = [];
level.var_B87["rpg"] = 100;
level.var_B87["exposed"] = 25;
level.var_B87["player_distance"] = 25;
level.var_B87["player_obvious"] = 25;
level.var_B87["player_contact_clock"] = 25;
level.var_B87["player_target_clock"] = 25;
level.var_B87["player_target_clock_high"] = 25;
level.var_B87["player_cardinal"] = 20;
level.var_B87["ai_distance"] = 25;
level.var_B87["ai_obvious"] = 25;
level.var_B87["ai_contact_clock"] = 20;
level.var_B87["ai_target_clock"] = 20;
level.var_B87["ai_target_clock_high"] = 75;
level.var_B87["ai_cardinal"] = 10;
level.var_B87["player_location"] = 95;
level.var_B87["ai_location"] = 100;
level.var_B87["generic_location"] = 90;
anim.var_B88 = [];
anim.var_B89 = [];
foreach(var_01 in level.teams)
{
level.var_B88[var_01] = undefined;
level.var_B89[var_01] = undefined;
}
anim.var_B8A = 120000;
level notify("battlechatter initialized");
anim notify("battlechatter initialized");
}
//Function Number: 2
func_0B8B()
{
if(!isdefined(level.teams))
{
anim.teams = [];
level.teams[level.teams.size] = "axis";
level.teams[level.teams.size] = "allies";
level.teams[level.teams.size] = "team3";
level.teams[level.teams.size] = "neutral";
}
}
//Function Number: 3
func_0B8C()
{
if(!isdefined(level.countryids))
{
level.countryids["british"] = "UK";
level.countryids["american"] = "US";
level.countryids["seal"] = "NS";
level.countryids["taskforce"] = "TF";
level.countryids["secretservice"] = "SS";
level.countryids["russian"] = "RU";
level.countryids["arab"] = "AB";
level.countryids["portuguese"] = "PG";
level.countryids["shadowcompany"] = "SC";
level.countryids["delta"] = "DF";
level.countryids["french"] = "FR";
level.countryids["african"] = "AF";
level.countryids["czech"] = "CZ";
level.countryids["pmc"] = "PC";
}
}
//Function Number: 4
func_0B8D()
{
func_0B8B();
if(!isdefined(level.battlechatter))
{
level.battlechatter = [];
foreach(var_01 in level.teams)
{
maps\_utility::set_battlechatter_variable(var_01,1);
}
}
}
//Function Number: 5
func_0B8F()
{
func_0B8B();
if(!isdefined(level.flavorbursts))
{
level.flavorbursts = [];
foreach(var_01 in level.teams)
{
level.flavorbursts[var_01] = 1;
}
}
}
//Function Number: 6
func_0B90()
{
level.flavorbursts["american"] = [];
var_00 = 41;
var_01 = [];
if(level.script == "roadkill" || level.script == "trainer")
{
}
var_02 = 0;
while(var_02 < var_01)
{
if(var_7B.size)
{
var_03 = 0;
foreach(var_05 in var_7B)
{
if(var_05 == var_02)
{
var_03 = 1;
break;
}
}
if(var_03)
{
continue;
}
}
level.flavorbursts["american"][var_02] = maps\_utility::string(var_02 + 1);
var_02++ = var_7B[var_7B.size];
}
level.flavorbursts["shadowcompany"] = [];
var_01 = 9;
for(var_02 = 1;var_02 <= var_01;var_02++ = 38)
{
level.flavorbursts["shadowcompany"][var_02] = maps\_utility::string(var_02 + 1);
}
anim.var_B92 = [];
}
//Function Number: 7
func_0B93()
{
anim.countryids = undefined;
anim.eventtypeminwait = undefined;
anim.var_B6F = undefined;
anim.eventtypeminwait = undefined;
anim.var_B70 = undefined;
anim.var_B71 = undefined;
anim.var_B77 = undefined;
anim.var_B7D = undefined;
anim.var_B7E = undefined;
anim.var_B7C = undefined;
anim.var_ABB = undefined;
anim.var_B92 = undefined;
anim.var_B88 = undefined;
anim.var_B89 = undefined;
anim.var_B86 = undefined;
anim.var_B84 = undefined;
anim.var_B85 = undefined;
anim.chatinitialized = 0;
level.player.chatinitialized = 0;
level.battlechatter = undefined;
for(var_00 = 0;var_00 < level.var_A60.size;var_00++)
{
if(level.var_A61[var_00] != "::init_squadBattleChatter")
{
continue;
}
if(var_00 != level.var_A60.size - 1)
{
level.var_A60[var_00] = level.var_A60[level.var_A60.size - 1];
level.var_A61[var_00] = level.var_A61[level.var_A61.size - 1];
}
level.var_A60[level.var_A60.size - 1] = undefined;
level.var_A61[level.var_A61.size - 1] = undefined;
}
level notify("battlechatter disabled");
anim notify("battlechatter disabled");
}
//Function Number: 8
func_0AAC()
{
var_00 = self;
var_00.var_B94 = 0;
var_00.var_B95 = 1;
var_00.var_AC7 = gettime() + 50;
var_00.var_AC8["threat"] = gettime() + 50;
var_00.var_AC8["order"] = gettime() + 50;
var_00.var_AC8["reaction"] = gettime() + 50;
var_00.var_AC8["response"] = gettime() + 50;
var_00.var_AC8["inform"] = gettime() + 50;
var_00.var_AC8["custom"] = gettime() + 50;
var_00.var_B96["threat"] = [];
var_00.var_B96["order"] = [];
var_00.var_B96["reaction"] = [];
var_00.var_B96["response"] = [];
var_00.var_B96["inform"] = [];
var_00.var_B96["custom"] = [];
var_00.var_B97["threat"] = 0;
var_00.var_B97["order"] = 0;
var_00.var_B97["reaction"] = 0;
var_00.var_B97["response"] = 0;
var_00.var_B97["inform"] = 0;
var_00.var_B97["custom"] = 0;
var_00.var_B98 = "";
var_00.var_A6F[var_00.var_A6F.size] = ::animscripts/battlechatter_ai::func_AA9;
var_00.var_A70[var_00.var_A70.size] = "::addToSystem";
var_00.var_A71[var_00.var_A71.size] = ::animscripts/battlechatter_ai::func_AC5;
var_00.var_A72[var_00.var_A72.size] = "::removeFromSystem";
var_00.var_A73[var_00.var_A73.size] = ::func_0C1E;
var_00.var_A74[var_00.var_A74.size] = "::initContact";
var_00.var_B99 = 1;
var_00.var_B9A = undefined;
for(var_01 = 0;var_01 < level.var_A63.size;var_01++)
{
var_00 thread func_0C1E(level.var_A63[var_01].var_A66);
}
var_00 thread animscripts/battlechatter_ai::func_B1F();
var_00 thread animscripts/battlechatter_ai::func_AE8();
var_00 thread func_0C22();
var_00.chatinitialized = 1;
var_00 notify("squad chat initialized");
}
//Function Number: 9
func_0B9B()
{
var_00 = self;
var_00.var_B94 = undefined;
var_00.var_B95 = undefined;
var_00.var_AC7 = undefined;
var_00.var_AC8 = undefined;
var_00.var_B96 = undefined;
var_00.var_B97 = undefined;
var_00.var_B99 = undefined;
var_00.var_B9A = undefined;
for(var_01 = 0;var_01 < var_00.var_A6F.size;var_01++)
{
if(var_00.var_A70[var_01] != "::addToSystem")
{
continue;
}
if(var_01 != var_00.var_A6F.size - 1)
{
var_00.var_A6F[var_01] = var_00.var_A6F[var_00.var_A6F.size - 1];
var_00.var_A70[var_01] = var_00.var_A70[var_00.var_A70.size - 1];
}
var_00.var_A6F[var_00.var_A6F.size - 1] = undefined;
var_00.var_A70[var_00.var_A70.size - 1] = undefined;
}
for(var_01 = 0;var_01 < var_00.var_A71.size;var_01++)
{
if(var_00.var_A72[var_01] != "::removeFromSystem")
{
continue;
}
if(var_01 != var_00.var_A71.size - 1)
{
var_00.var_A71[var_01] = var_00.var_A71[var_00.var_A71.size - 1];
var_00.var_A72[var_01] = var_00.var_A72[var_00.var_A72.size - 1];
}
var_00.var_A71[var_00.var_A71.size - 1] = undefined;
var_00.var_A72[var_00.var_A72.size - 1] = undefined;
}
for(var_01 = 0;var_01 < var_00.var_A73.size;var_01++)
{
if(var_00.var_A74[var_01] != "::initContact")
{
continue;
}
if(var_01 != var_00.var_A73.size - 1)
{
var_00.var_A73[var_01] = var_00.var_A73[var_00.var_A73.size - 1];
var_00.var_A74[var_01] = var_00.var_A74[var_00.var_A74.size - 1];
}
var_00.var_A73[var_00.var_A73.size - 1] = undefined;
var_00.var_A74[var_00.var_A74.size - 1] = undefined;
}
for(var_01 = 0;var_01 < level.var_A63.size;var_01++)
{
var_00 func_0C1F(level.var_A63[var_01].var_A66);
}
var_00.chatinitialized = 0;
}
//Function Number: 10
func_0AAA()
{
return level.chatinitialized;
}
//Function Number: 11
func_0B9C()
{
var_00 = getdvar("bcs_enable","on");
for(;;)
{
var_01 = getdvar("bcs_enable","on");
if(var_01 != var_00)
{
switch(var_01)
{
case "on":
if(!level.chatinitialized)
{
func_0B9D();
}
break;
case "off":
if(level.chatinitialized)
{
func_0B9E();
}
break;
}
var_00 = var_01;
}
wait 1;
}
}
//Function Number: 12
func_0B9D()
{
func_0B6B();
level.player thread animscripts/battlechatter_ai::func_AA9();
var_00 = getaiarray();
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] animscripts/battlechatter_ai::func_AA9();
}
}
//Function Number: 13
func_0B9E()
{
func_0B93();
var_00 = getaiarray();
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(isdefined(var_00[var_01].var_A7A) && var_00[var_01].var_A7A.chatinitialized)
{
var_00[var_01].var_A7A func_0B9B();
}
var_00[var_01] animscripts/battlechatter_ai::func_AC5();
}
}
//Function Number: 14
func_0B9F(param_00,param_01)
{
if(isdefined(param_00) && isdefined(param_01))
{
level.player.var_BA0 = param_00;
level.player.var_BA1 = param_01;
return;
}
while(!isdefined(level.campaign))
{
wait 0.1;
}
var_02 = level.campaign;
var_03 = level.var_AD0[var_02];
var_04 = level.countryids[var_02];
if(isdefined(var_03))
{
level.player.var_BA0 = var_03;
}
if(isdefined(var_04))
{
level.player.var_BA1 = var_04;
}
}
//Function Number: 15
func_0ABF()
{
if(!isalive(self))
{
return;
}
if(!func_0AAA())
{
return;
}
if(self._animactive > 0)
{
return;
}
if(isdefined(self.isspeaking) && self.isspeaking)
{
return;
}
if(self.team == "allies" && isdefined(level.scripteddialoguestarttime))
{
if(level.scripteddialoguestarttime + level.var_B7D > gettime())
{
return;
}
}
if(func_0C37())
{
return;
}
if(!isdefined(self.battlechatter) || !self.battlechatter)
{
return;
}
if(self.team == "allies" && getdvarint("bcs_forceEnglish",0))
{
return;
}
if(level.isteamspeaking[self.team])
{
return;
}
self endon("death");
var_00 = func_0BE2();
if(!isdefined(var_00))
{
return;
}
switch(var_00)
{
case "custom":
thread func_0BD7();
break;
case "response":
thread func_0BC9();
break;
case "order":
thread func_0BCD();
break;
case "threat":
thread func_0BA5();
break;
case "reaction":
thread func_0BC5();
break;
case "inform":
thread func_0BD1();
break;
}
}
//Function Number: 16
func_0BA5()
{
self endon("death");
self endon("removed from battleChatter");
self endon("cancel speaking");
self.var_BA6 = self.var_AC6["threat"];
var_00 = self.var_AC6["threat"].var_AD9;
if(!isalive(var_00))
{
return;
}
if(func_0AD7(var_00) && !isplayer(var_00))
{
return;
}
anim thread func_0BDF(self,"threat");
var_01 = 0;
switch(self.var_AC6["threat"].var_BA7)
{
case "infantry":
if(isplayer(var_00) || !isdefined(var_00 getturret()))
{
var_01 = func_0BAA(var_00);
}
else
{
}
break;
case "dog":
var_01 = func_0BC1(var_00);
break;
case "vehicle":
break;
}
self notify("done speaking");
if(!var_01)
{
return;
}
if(!isalive(var_00))
{
return;
}
var_00.var_AAE[self.var_A7A.var_A66] = spawnstruct();
var_00.var_AAE[self.var_A7A.var_A66].var_BA8 = self;
var_00.var_AAE[self.var_A7A.var_A66].var_BA9 = self.var_AC6["threat"].var_BA7;
var_00.var_AAE[self.var_A7A.var_A66].var_ACB = gettime() + level.var_B7E;
if(isdefined(var_00.var_A7A))
{
self.var_A7A.var_A6E[var_00.var_A7A.var_A66].var_AAE = 1;
}
}
//Function Number: 17
func_0AD7(param_00)
{
if(isdefined(param_00.var_AAE) && isdefined(param_00.var_AAE[self.var_A7A.var_A66]))
{
if(param_00.var_AAE[self.var_A7A.var_A66].var_ACB < gettime())
{
return 1;
}
}
return 0;
}
//Function Number: 18
func_0BAA(param_00,param_01)
{
self endon("cancel speaking");
var_02 = func_0B45();
var_02.var_BAB = 1;
var_02.var_BAC = param_00;
var_03 = func_0BB4(param_00);
if(!isdefined(var_03) || isdefined(var_03) && !isdefined(var_03.type))
{
return 0;
}
switch(var_03.type)
{
case "rpg":
var_02 func_0BC4(param_00);
break;
case "exposed":
var_04 = func_0BB1(var_03.var_BAD);
if(var_04 && func_0C08(var_03.var_BAD))
{
var_02 func_0B4D(var_03.var_BAD.var_AC2);
var_02.looktarget = var_03.var_BAD;
}
var_02 func_0BC2(param_00);
if(var_04)
{
if(randomint(100) < level.var_B2D["response"]["callout_negative"])
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("callout","neg",self,0.9);
}
else
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("exposed","acquired",self,0.9);
}
}
break;
case "player_obvious":
var_02 func_0C05();
var_02 func_0C0E();
break;
case "player_distance":
var_05 = func_0BFF(level.player.origin,param_00.origin);
var_02 func_0C05();
var_02 func_0C0F(var_05);
break;
case "player_contact_clock":
var_02 func_0C05();
var_02 func_0C15("contactclock",var_03.var_BAF);
break;
case "player_target_clock":
var_02 func_0C05();
var_02 func_0C15("targetclock",var_03.var_BAF);
break;
case "player_target_clock_high":
var_02 func_0C05();
var_06 = func_0C02(level.player.origin,param_00.origin);
if(var_06 >= 20 && var_06 <= 50)
{
var_02 func_0C15("targetclock",var_03.var_BAF);
var_02 func_0C10(var_06);
}
else
{
var_02 func_0C15("targetclock",var_03.var_BAF + "_high");
}
break;
case "player_cardinal":
var_02 func_0C05();
var_07 = func_0BFD(level.player.origin,param_00.origin);
var_08 = func_0BFC(var_07);
if(var_08 == "impossible")
{
return 0;
}
var_02 func_0C15("cardinal",var_08);
break;
case "ai_obvious":
if(isdefined(var_03.var_BAD) && func_0C08(var_03.var_BAD))
{
var_02 func_0B4D(var_03.var_BAD.var_AC2);
var_02.looktarget = var_03.var_BAD;
}
var_02 func_0C0E();
var_02 func_0BB3(self,var_03,param_00);
break;
case "ai_distance":
var_09 = self;
if(self.team == "allies")
{
var_09 = level.player;
}
else if(isdefined(var_03.var_BAD) && randomint(100) < level.var_B2D["response"]["callout"])
{
var_09 = var_03.var_BAD;
}
var_05 = func_0BFF(var_09.origin,param_00.origin);
var_02 func_0C0F(var_05);
var_02 func_0BB3(self,var_03,param_00);
break;
case "ai_contact_clock":
var_09 = self;
if(self.team == "allies")
{
var_09 = level.player;
}
else if(isdefined(var_03.var_BAD) && randomint(100) < level.var_B2D["response"]["callout"])
{
var_09 = var_03.var_BAD;
}
var_0A = func_0BF9(var_09);
var_0B = func_0C01(var_0A,var_09.origin,param_00.origin);
var_02 func_0C15("contactclock",var_0B);
var_02 func_0BB3(self,var_03,param_00);
break;
case "ai_target_clock":
var_09 = self;
if(self.team == "allies")
{
var_09 = level.player;
}
else if(isdefined(var_03.var_BAD) && randomint(100) < level.var_B2D["response"]["callout"])
{
var_09 = var_03.var_BAD;
}
var_0A = func_0BF9(var_09);
var_0B = func_0C01(var_0A,var_09.origin,param_00.origin);
var_02 func_0C15("targetclock",var_0B);
var_02 func_0BB3(self,var_03,param_00);
break;
case "ai_target_clock_high":
var_09 = self;
if(self.team == "allies")
{
var_09 = level.player;
}
else if(isdefined(var_03.var_BAD) && randomint(100) < level.var_B2D["response"]["callout"])
{
var_09 = var_03.var_BAD;
}
var_0A = func_0BF9(var_09);
var_0B = func_0C01(var_0A,var_09.origin,param_00.origin);
var_06 = func_0C02(var_09.origin,param_00.origin);
if(var_06 >= 20 && var_06 <= 50)
{
var_02 func_0C15("targetclock",var_0B);
var_02 func_0C10(var_06);
}
else
{
var_02 func_0C15("targetclock",var_0B + "_high");
}
var_02 func_0BB3(self,var_03,param_00);
break;
case "ai_cardinal":
var_09 = self;
if(self.team == "allies")
{
var_09 = level.player;
}
var_07 = func_0BFD(var_09.origin,param_00.origin);
var_08 = func_0BFC(var_07);
if(var_08 == "impossible")
{
return 0;
}
var_02 func_0C15("cardinal",var_08);
break;
case "generic_location":
var_0C = var_02 func_0BB2(var_03);
if(!var_0C)
{
return 0;
}
break;
case "player_location":
var_02 func_0C05();
var_0C = var_02 func_0BB2(var_03);
if(!var_0C)
{
return 0;
}
break;
case "ai_location":
if(func_0C08(var_03.var_BAD))
{
var_02 func_0B4D(var_03.var_BAD.var_AC2);
var_02.looktarget = var_03.var_BAD;
}
var_0C = var_02 func_0BB2(var_03);
if(!var_0C)
{
return 0;
}
var_0D = var_02.var_BB0.size - 1;
var_0E = var_02.var_BB0[var_0D];
if(func_0BBA(var_0E))
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("callout","echo",self,0.9,var_0E);
}
else if(func_0BBB(var_0E,self))
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("callout","QA",self,0.9,var_0E,var_03.location);
}
else if(randomint(100) < level.var_B2D["response"]["callout_negative"])
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("callout","neg",self,0.9);
}
else
{
var_03.var_BAD animscripts/battlechatter_ai::func_ADB("exposed","acquired",self,0.9);
}
break;
}
func_0BBF(var_03.type);
func_0BD9(var_02);
return 1;
}
//Function Number: 19
func_0BB1(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00.var_AB4 != "US" && param_00.var_AB4 != "NS" && param_00.var_AB4 != "TF")
{
return 0;
}
if(randomint(100) > level.var_B2D["response"]["exposed"])
{
return 0;
}
return 1;
}
//Function Number: 20
func_0BB2(param_00)
{
var_01 = func_0C18(param_00.location);
return var_01;
}
//Function Number: 21
func_0BB3(param_00,param_01,param_02)
{
if(!isdefined(param_01.var_BAD))
{
return;
}
if(randomint(100) > level.var_B2D["response"]["callout"])
{
return;
}
var_03 = "affirm";
if(!param_01.var_BAD cansee(param_02) && randomint(100) < level.var_B2D["response"]["callout_negative"])
{
var_03 = "neg";
}
param_01.var_BAD animscripts/battlechatter_ai::func_ADB("callout",var_03,param_00,0.9);
}
//Function Number: 22
func_0BB4(param_00)
{
var_01 = param_00 func_0AED();
var_02 = func_0C01(self.angles,self.origin,param_00.origin);
var_03 = func_0B2C(64,1024,"response");
var_04 = undefined;
if(isdefined(var_03))
{
var_04 = func_0C01(var_03.angles,var_03.origin,param_00.origin);
}
var_05 = func_0C01(level.player.angles,level.player.origin,param_00.origin);
if(self.team == "allies")
{
var_06 = var_05;
var_07 = level.player;
}
else if(isdefined(var_05))
{
var_06 = var_06;
var_07 = var_04;
}
else
{
var_06 = var_04;
var_07 = self;
}
var_08 = func_0BFE(var_07.origin,param_00.origin);
self.var_BB5 = [];
if(!isplayer(param_00) && param_00 animscripts/utility::func_BB6())
{
func_0BBD("rpg");
}
if(param_00 func_0AA8())
{
func_0BBD("exposed");
}
if(self.team == "allies")
{
var_09 = 0;
if(param_00.origin[2] - var_07.origin[2] >= level.var_B79)
{
if(func_0BBD("player_target_clock_high"))
{
var_09 = 1;
}
}
if(!var_09)
{
if(var_06 == "12")
{
func_0BBD("player_obvious");
if(var_08 > level.var_B7A && var_08 < level.var_B7B)
{
func_0BBD("player_distance");
}
}
if(func_0C0A() && var_06 != "12")
{
func_0BBD("player_contact_clock");
func_0BBD("player_target_clock");
func_0BBD("player_cardinal");
}
}
}
var_09 = 0;
if(param_00.origin[2] - var_07.origin[2] >= level.var_B79)
{
if(func_0BBD("ai_target_clock_high"))
{
var_09 = 1;
}
}
if(!var_09)
{
if(var_06 == "12")
{
func_0BBD("ai_distance");
if(var_08 > level.var_B7A && var_08 < level.var_B7B)
{
func_0BBD("ai_obvious");
}
}
func_0BBD("ai_contact_clock");
func_0BBD("ai_target_clock");
func_0BBD("ai_cardinal");
}
if(isdefined(var_01))
{
var_0A = var_01 func_0BB8(self);
if(isdefined(var_0A))
{
if(isdefined(var_03))
{
func_0BBD("ai_location");
}
else
{
if(func_0C0A())
{
func_0BBD("player_location");
}
func_0BBD("generic_location");
}
}
else
{
if(isdefined(var_03))
{
func_0BBD("ai_location");
}
if(func_0C0A())
{
func_0BBD("player_location");
}
func_0BBD("generic_location");
}
}
if(!self.var_BB5.size)
{
return undefined;
}
var_0C = getweightedchanceroll(self.var_BB5,level.var_B87);
var_0D = spawnstruct();
var_0D.type = var_0C;
var_0D.var_BAD = var_03;
var_0D.var_BB7 = var_04;
var_0D.var_BAF = var_05;
if(isdefined(var_01))
{
var_0D.location = var_01;
}
return var_0D;
}
//Function Number: 23
func_0BB8(param_00)
{
var_01 = undefined;
var_02 = self.locationaliases;
foreach(var_04 in var_02)
{
if(func_0BBB(var_04,param_00) && !isdefined(self.var_BB9))
{
var_01 = var_04;
break;
}
if(func_0BBA(var_04))
{
var_01 = var_04;
}
}
return var_01;
}
//Function Number: 24
func_0BBA(param_00)
{
return issubstr(param_00,"_report");
}
//Function Number: 25
func_0BBB(param_00,param_01)
{
if(issubstr(param_00,"_qa") && soundexists(param_00))
{
return 1;
}
var_02 = param_01 func_0BBC(param_00,0);
if(soundexists(var_02))
{
return 1;
}
return 0;
}
//Function Number: 26
func_0BBC(param_00,param_01)
{
var_02 = self.var_AB4 + "_" + self.var_AB6 + "_co_";
var_02 = var_02 + param_00;
var_02 = var_02 + "_qa" + param_01;
return var_02;
}
//Function Number: 27
func_0ACF(param_00)
{
self.var_ACE[self.var_ACE.size] = param_00;
}
//Function Number: 28
func_0BBD(param_00)
{
var_01 = 0;
foreach(var_03 in self.var_ACE)
{
if(var_03 == param_00)
{
if(!func_0BBE(param_00))
{
var_01 = 1;
}
break;
}
}
if(!var_01)
{
return var_01;
}
self.var_BB5[self.var_BB5.size] = param_00;
return var_01;
}
//Function Number: 29
func_0BBE(param_00)
{
if(!isdefined(level.var_B88[self.team]))
{
return 0;
}
if(!isdefined(level.var_B89[self.team]))
{
return 0;
}
var_01 = level.var_B88[self.team];
var_02 = level.var_B89[self.team];
var_03 = level.var_B8A;
if(param_00 == var_01 && gettime() - var_02 < var_03)
{
return 1;
}
return 0;
}
//Function Number: 30
func_0BBF(param_00)
{
level.var_B88[self.team] = param_00;
level.var_B89[self.team] = gettime();
}
//Function Number: 31
getweightedchanceroll(param_00,param_01)
{
var_02 = undefined;
var_03 = -1;
foreach(var_05 in param_00)
{
if(param_01[var_05] <= 0)
{
continue;
}
var_06 = randomint(param_01[var_05]);
if(isdefined(var_02) && param_01[var_02] >= 100)
{
if(param_01[var_05] < 100)
{
continue;
}
continue;
}
if(param_01[var_05] >= 100)
{
var_02 = var_05;
var_03 = var_06;
continue;
}
if(var_06 > var_03)
{
var_02 = var_05;
var_03 = var_06;
}
}
return var_02;
}
//Function Number: 32
func_0BC1(param_00,param_01)
{
self endon("cancel speaking");
var_02 = func_0B45();
var_02.var_BAB = 1;
var_02.var_BAC = param_00;
var_02 func_0C0C("dog","generic");
func_0BD9(var_02);
return 1;
}
//Function Number: 33
func_0BC2(param_00)
{
var_01 = [];
var_01 = maps\_utility::array_add(var_01,"open");
var_01 = maps\_utility::array_add(var_01,"breaking");
if(self.owner.team == "allies" && self.owner.var_AB4 != "RU")
{
var_01 = maps\_utility::array_add(var_01,"movement");
}
var_02 = var_01[randomint(var_01.size)];
func_0C0D(var_02);
}
//Function Number: 34
func_0BC4(param_00)
{
func_0C0C("rpg");
}
//Function Number: 35
func_0BC5()
{
self endon("death");
self endon("removed from battleChatter");
self.var_BA6 = self.var_AC6["reaction"];
var_00 = self.var_AC6["reaction"].var_AE5;
var_01 = self.var_AC6["reaction"].var_AE0;
anim thread func_0BDF(self,"reaction");
switch(self.var_AC6["reaction"].var_BA7)
{
case "casualty":
func_0BC6(var_00,var_01);
break;
case "taunt":
func_0BC7(var_00,var_01);
break;
case "friendlyfire":
func_0BC8(var_00,var_01);
break;
}
self notify("done speaking");
}
//Function Number: 36
func_0BC6(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
var_02 = func_0B45();
var_02 func_0C1A("casualty","generic");
func_0BD9(var_02);
}
//Function Number: 37
func_0BC7(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
var_02 = func_0B45();
if(isdefined(param_01) && param_01 == "hostileburst")
{
var_02 func_0C1D();
}
else
{
var_02 func_0C1C("taunt","generic");
}
func_0BD9(var_02);
}
//Function Number: 38
func_0BC8(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
var_02 = func_0B45();
var_02 func_0C1B();
func_0BD9(var_02);
}
//Function Number: 39
func_0BC9()
{
self endon("death");
self endon("removed from battleChatter");
self.var_BA6 = self.var_AC6["response"];
var_00 = self.var_AC6["response"].var_AE0;
var_01 = self.var_AC6["response"].var_ADF;
if(!isalive(var_01))
{
return;
}
if(self.var_AC6["response"].var_AE0 == "follow" && self.a.var_A98 != "move")
{
return;
}
anim thread func_0BDF(self,"response");
switch(self.var_AC6["response"].var_BA7)
{
case "exposed":
func_0BCA(var_01,var_00);
break;
case "callout":
func_0BCB(var_01,var_00);
break;
case "ack":
func_0BCC(var_01,var_00);
break;
}
self notify("done speaking");
}
//Function Number: 40
func_0BCA(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
if(!isalive(param_00))
{
return;
}
var_02 = func_0B45();
var_02 func_0C0D(param_01);
var_02.looktarget = param_00;
var_02.var_BAB = 1;
func_0BD9(var_02);
}
//Function Number: 41
func_0BCB(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
if(!isalive(param_00))
{
return;
}
var_02 = func_0B45();
var_03 = 0;
if(param_01 == "echo")
{
var_03 = var_02 func_0C11(self.var_BA6.var_ADE,param_00);
}
else if(param_01 == "QA")
{
var_03 = var_02 func_0C13(param_00,self.var_BA6.var_ADE,self.var_BA6.location);
}
else
{
var_03 = var_02 func_0C12(param_01);
}
if(!var_03)
{
return;
}
var_02.looktarget = param_00;
var_02.var_BAB = 1;
func_0BD9(var_02);
}
//Function Number: 42
func_0BCC(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
if(!isalive(param_00))
{
return;
}
var_02 = self.var_AC6["response"].var_BA7;
var_03 = func_0B45();
var_03 func_0C19(var_02,param_01);
var_03.looktarget = param_00;
var_03.var_BAB = 1;
func_0BD9(var_03);
}
//Function Number: 43
func_0BCD()
{
self endon("death");
self endon("removed from battleChatter");
self.var_BA6 = self.var_AC6["order"];
var_00 = self.var_AC6["order"].var_AE0;
var_01 = self.var_AC6["order"].var_AE7;
anim thread func_0BDF(self,"order");
switch(self.var_AC6["order"].var_BA7)
{
case "action":
func_0BCE(var_00,var_01);
break;
case "move":
func_0BCF(var_00,var_01);
break;
case "displace":
func_0BD0(var_00);
break;
}
self notify("done speaking");
}
//Function Number: 44
func_0BCE(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
var_02 = func_0B45();
func_0B43(var_02,param_01);
var_02 func_0B47("action",param_00);
func_0BD9(var_02);
}
//Function Number: 45
func_0BCF(param_00,param_01)
{
self endon("death");
self endon("removed from battleChatter");
var_02 = func_0B45();
func_0B43(var_02,param_01);
var_02 func_0B47("move",param_00);
func_0BD9(var_02);
}
//Function Number: 46
func_0BD0(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
var_01 func_0B47("displace",param_00);
func_0BD9(var_01,1);
}
//Function Number: 47
func_0B43(param_00,param_01)
{
if(randomint(100) > level.var_B2D["response"]["order"])
{
if(!isdefined(param_01) || isdefined(param_01) && !isplayer(param_01))
{
return;
}
}
if(isdefined(param_01) && isplayer(param_01) && isdefined(level.player.var_BA0))
{
param_00 func_0C05();
param_00.looktarget = level.player;
return;
}
if(isdefined(param_01) && func_0C08(param_01))
{
param_00 func_0B4D(param_01.var_AC2);
param_00.looktarget = param_01;
param_01 animscripts/battlechatter_ai::func_ADB("ack","yes",self,0.9);
return;
}
level notify("follow order",self);
}
//Function Number: 48
func_0BD1()
{
self endon("death");
self endon("removed from battleChatter");
self.var_BA6 = self.var_AC6["inform"];
var_00 = self.var_AC6["inform"].var_AE0;
anim thread func_0BDF(self,"inform");
switch(self.var_AC6["inform"].var_BA7)
{
case "incoming":
func_0BD4(var_00);
break;
case "attack":
func_0BD5(var_00);
break;
case "reloading":
func_0BD2(var_00);
break;
case "suppressed":
func_0BD3(var_00);
break;
case "killfirm":
func_0BD6(var_00);
break;
}
self notify("done speaking");
}
//Function Number: 49
func_0BD2(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
var_01 func_0B4B("reloading",param_00);
func_0BD9(var_01);
}
//Function Number: 50
func_0BD3(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
var_01 func_0B4B("suppressed",param_00);
func_0BD9(var_01);
}
//Function Number: 51
func_0BD4(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
if(param_00 == "grenade")
{
var_01.var_BAB = 1;
}
var_01 func_0B4B("incoming",param_00);
func_0BD9(var_01);
}
//Function Number: 52
func_0BD5(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
var_01 func_0B4B("attack",param_00);
func_0BD9(var_01);
}
//Function Number: 53
func_0BD6(param_00)
{
self endon("death");
self endon("removed from battleChatter");
var_01 = func_0B45();
var_01 func_0B4B("killfirm",param_00);
func_0BD9(var_01);
}
//Function Number: 54
func_0BD7()
{
self endon("death");
self endon("removed from battleChatter");
self.var_BA6 = self.var_AC6["custom"];
anim thread func_0BDF(self,self.var_BA6.type,1);
func_0BD9(self.var_B42);
self notify("done speaking");
self.var_BD8 = undefined;
self.var_B42 = undefined;
}
//Function Number: 55
func_0BD9(param_00,param_01)
{
anim endon("battlechatter disabled");
self endon("death");
if(isdefined(param_01))
{
return;
}
if(func_0C2C() || func_0C2D())
{
var_02 = [];
foreach(var_04 in param_00.var_BB0)
{
var_02[var_02.size] = var_04;
}
if(func_0C2C())
{
func_0C2E(var_02);
}
if(func_0C2D())
{
var_06 = self.var_BA6.var_BDA + "_" + self.var_BA6.var_BA7;
if(isdefined(self.var_BA6.var_AE0))
{
var_06 = var_06 + "_" + self.var_BA6.var_AE0;
}
thread func_0C2F(var_02,var_06);
}
}
for(var_07 = 0;var_07 < param_00.var_BB0.size;var_07++)
{
if(!self.battlechatter)
{
if(!func_0BDC(self.var_BA6))
{
}
else
{
}
else if(!func_0C38(0))
{
}
else if(self._animactive > 0)
{
}
else if(func_0BE6(self.var_BA6.var_BDA))
{
wait 0.85;
}
else if(!soundexists(param_00.var_BB0[var_07]))
{
}
else
{
var_08 = gettime();
var_09 = spawn("script_origin",self gettagorigin("j_head"));
var_09 linkto(self);
if(param_00.var_BAB && self.team == "allies")
{
thread maps\_anim::anim_facialfiller(param_00.var_BB0[var_07],param_00.looktarget);
var_09 playsoundasmaster(param_00.var_BB0[var_07],param_00.var_BB0[var_07],1);
var_09 waittill(param_00.var_BB0[var_07]);
self notify(param_00.var_BB0[var_07]);
}
else
{
thread maps\_anim::anim_facialfiller(param_00.var_BB0[var_07],param_00.looktarget);
if(getdvarint("bcs_forceEnglish",0))
{
var_09 playsoundasmaster(param_00.var_BB0[var_07],param_00.var_BB0[var_07],1);
}
else
{
var_09 playsound(param_00.var_BB0[var_07],param_00.var_BB0[var_07],1);
}
var_09 waittill(param_00.var_BB0[var_07]);
self notify(param_00.var_BB0[var_07]);
}
var_09 delete();
if(gettime() < var_08 + 250)
{
}
}
}
}
self notify("playPhrase_done");
func_0BE9(self.var_BA6.var_BDA,self.var_BA6.var_BA7);
}
//Function Number: 56
func_0BDC(param_00)
{
if(!isdefined(param_00.var_BDA) || !isdefined(param_00.var_BA7))
{
return 0;
}
if(param_00.var_BDA == "reaction" && param_00.var_BA7 == "friendlyfire")
{
return 1;
}
return 0;
}
//Function Number: 57
func_0BDD(param_00)
{
self endon("death");
wait 25;
func_0BDE(param_00);
}
//Function Number: 58
func_0BDE(param_00)
{
self.isspeaking = 0;
self.var_AC6[param_00].var_ACB = 0;
self.var_AC6[param_00].priority = 0;
self.var_AC8[param_00] = gettime() + level.var_B6F[param_00]["self"];
}
//Function Number: 59
func_0BDF(param_00,param_01,param_02)
{
anim endon("battlechatter disabled");
var_03 = param_00.var_A7A;
var_04 = param_00.team;
param_00.isspeaking = 1;
param_00 thread func_0BDD(param_01);
var_03.var_B97[param_01] = 1;
var_03.var_B94++;
level.isteamspeaking[var_04] = 1;
level.var_B81[var_04][param_01] = 1;
var_05 = param_00 common_scripts\utility::waittill_any_return("death","done speaking","cancel speaking");
var_03.var_B97[param_01] = 0;
var_03.var_B94--;
level.isteamspeaking[var_04] = 0;
level.var_B81[var_04][param_01] = 0;
if(var_05 == "cancel speaking")
{
return;
}
level.lastteamspeaktime[var_04] = gettime();
if(isalive(param_00))
{
param_00 func_0BDE(param_01);
}
var_03.var_AC8[param_01] = gettime() + level.var_B6F[param_01]["squad"];
}
//Function Number: 60
func_0ADA(param_00,param_01)
{
if(gettime() - self.var_A6E[param_00].var_BE0 > 10000)
{
var_02 = 0;
for(var_03 = 0;var_03 < self.members.size;var_03++)
{
if(self.members[var_03] != param_01 && isalive(self.members[var_03].enemy) && isdefined(self.members[var_03].enemy.var_A7A) && self.members[var_03].enemy.var_A7A.var_A66 == param_00)
{
var_02 = 1;
}
}
if(!var_02)
{
self.var_A6E[param_00].var_BE1 = gettime();
self.var_A6E[param_00].var_AAE = 0;
}
}
self.var_A6E[param_00].var_BE0 = gettime();
}
//Function Number: 61
func_0AD6(param_00,param_01,param_02,param_03)
{
self endon("death");
self endon("removed from battleChatter");
if(isplayer(self))
{
return 0;
}
if(distance(level.player.origin,self.origin) > level.var_B78)
{
return 0;
}
if(!isdefined(self.battlechatter) || !self.battlechatter)
{
return 0;
}
if(isdefined(param_02) && param_02 >= 1)
{
return 1;
}
if(gettime() + level.var_B6F[param_00]["self"] < self.var_AC8[param_00])
{
return 0;
}
if(gettime() + level.var_B6F[param_00]["squad"] < self.var_A7A.var_AC8[param_00])
{
return 0;
}
if(isdefined(param_01) && func_0BE8(param_00,param_01))
{
return 0;
}
if(isdefined(param_01) && level.var_B70[param_00][param_01] < self.var_ACD)
{
return 0;
}
return 1;
}
//Function Number: 62
func_0BE2()
{
var_00 = undefined;
var_01 = -999999999;
foreach(var_04, var_03 in self.var_AC6)
{
if(func_0BE7(var_04))
{
if(var_03.priority > var_01)
{
var_00 = var_04;
var_01 = var_03.priority;
}
}
}
return var_00;
}
//Function Number: 63
func_0BE3(param_00)
{
var_01 = self.var_A7A;
var_02 = [];
for(var_03 = 0;var_03 < var_01.members.size;var_03++)
{
if(isdefined(var_01.members[var_03].enemy) && var_01.members[var_03].enemy == param_00)
{
var_02[var_02.size] = var_01.members[var_03];
}
}
if(!isdefined(var_02[0]))
{
return undefined;
}
var_04 = undefined;
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(var_02[var_03] func_0AD6("response"))
{
return var_04;
}
}
return maps\_utility::getclosest(self.origin,var_02);
}
//Function Number: 64
func_0BE4()
{
var_00 = [];
var_01 = [];
var_00[0] = "custom";
var_00[1] = "response";
var_00[2] = "order";
var_00[3] = "threat";
var_00[4] = "inform";
for(var_02 = var_00.size - 1;var_02 >= 0;var_02--)
{
for(var_03 = 1;var_03 <= var_02;var_03++)
{
if(self.var_AC6[var_00[var_03 - 1]].priority < self.var_AC6[var_00[var_03]].priority)
{
var_04 = var_00[var_03 - 1];
var_00[var_03 - 1] = var_00[var_03];
var_00[var_03] = var_04;
}
}
}
var_05 = 0;
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
var_06 = func_0BE5(var_00[var_02]);
if(var_06 == " valid" && !var_05)
{
var_05 = 1;
var_01[var_02] = "g " + var_00[var_02] + var_06 + " " + self.var_AC6[var_00[var_02]].priority;
continue;
}
if(var_06 == " valid")
{
var_01[var_02] = "y " + var_00[var_02] + var_06 + " " + self.var_AC6[var_00[var_02]].priority;
continue;
}
if(self.var_AC6[var_00[var_02]].var_ACB == 0)
{
var_01[var_02] = "b " + var_00[var_02] + var_06 + " " + self.var_AC6[var_00[var_02]].priority;
continue;
}
var_01[var_02] = "r " + var_00[var_02] + var_06 + " " + self.var_AC6[var_00[var_02]].priority;
}
return var_01;
}
//Function Number: 65
func_0BE5(param_00)
{
var_01 = "";
if(self.var_A7A.var_B97[param_00])
{
var_01 = var_01 + " playing";
}
if(gettime() > self.var_AC6[param_00].var_ACB)
{
var_01 = var_01 + " expired";
}
if(gettime() < self.var_A7A.var_AC8[param_00])
{
var_01 = var_01 + " cantspeak";
}
if(var_01 == "")
{
var_01 = " valid";
}
return var_01;
}
//Function Number: 66
func_0BE6(param_00)
{
if(getdvar("bcs_filter" + param_00,"off") == "on" || getdvar("bcs_filter" + param_00,"off") == "1")
{
return 1;
}
return 0;
}
//Function Number: 67
func_0BE7(param_00)
{
if(!self.var_A7A.var_B97[param_00] && !level.var_B81[self.team][param_00] && gettime() < self.var_AC6[param_00].var_ACB && gettime() > self.var_A7A.var_AC8[param_00])
{
if(!func_0BE8(param_00,self.var_AC6[param_00].var_BA7))
{
return 1;
}
}
return 0;
}
//Function Number: 68
func_0BE8(param_00,param_01)
{
if(!isdefined(level.eventtypeminwait[param_00][param_01]))
{
return 0;
}
if(!isdefined(self.var_A7A.var_B96[param_00][param_01]))
{
return 0;
}
if(gettime() > self.var_A7A.var_B96[param_00][param_01])
{
return 0;
}
return 1;
}
//Function Number: 69
func_0BE9(param_00,param_01)
{
if(!isdefined(level.eventtypeminwait[param_00][param_01]))
{
return;
}
self.var_A7A.var_B96[param_00][param_01] = gettime() + level.eventtypeminwait[param_00][param_01];
}
//Function Number: 70
func_0BEA()
{
if(isplayer(self))
{
return 0;
}
if(func_0AA8())
{
return 0;
}
return animscripts/utility::func_BEB(self.weapon);
}
//Function Number: 71
func_0AA8()
{
if(distance(self.origin,level.player.origin) > 1500)
{
return 0;
}
if(isdefined(func_0AED()))
{
return 0;
}
var_00 = func_0BED();
if(!isdefined(var_00))
{
return 1;
}
if(!func_0B2B())
{
return 0;
}
return 1;
}
//Function Number: 72
func_0B2B()
{
var_00 = self.node;
if(!isdefined(var_00))
{
return 0;
}
if(issubstr(var_00.type,"Cover") || issubstr(var_00.type,"Conceal"))
{
return 1;
}
return 0;
}
//Function Number: 73
func_0BEC(param_00)
{
if(param_00.var_A6D > 0)
{
return 1;
}
return 0;
}
//Function Number: 74
func_0A83()
{
var_00 = getrank();
if(!isdefined(var_00))
{
return 0;
}
if(var_00 == "sergeant" || var_00 == "lieutenant" || var_00 == "captain" || var_00 == "sergeant")
{
return 1;
}
return 0;
}
//Function Number: 75
func_0BED()
{
if(isplayer(self))
{
return self.node;
}
return animscripts/utility::func_BEE();
}
//Function Number: 76
func_0BEF()
{
if(self isbadguy())
{
return 1;
}
return 0;
}
//Function Number: 77
func_0AC1()
{
if(func_0BEF())
{
var_00 = self.ainame;
}
else if(self.team == "allies")
{
var_00 = self.name;
}
else
{
var_00 = undefined;
}
if(!isdefined(var_00))
{
return undefined;
}
var_01 = strtok(var_00," ");
if(var_01.size < 2)
{
return var_00;
}
return var_01[1];
}
//Function Number: 78
getrank()
{
return self.airank;
}
//Function Number: 79
func_0BF2(param_00)
{
var_01 = func_0BF3(param_00,self.team);
var_02 = maps\_utility::getclosest(self.origin,var_01);
return var_02;
}
//Function Number: 80
func_0BF3(param_00,param_01)
{
var_02 = [];
var_03 = getaiarray(param_01);
for(var_04 = 0;var_04 < var_03.size;var_04++)
{
if(var_03[var_04] == self)
{
continue;
}
if(!var_03[var_04] func_0AD6(param_00))
{
continue;
}
var_02[var_02.size] = var_03[var_04];
}
return var_02;
}
//Function Number: 81
func_0B2C(param_00,param_01,param_02)
{
var_03 = undefined;
if(!isdefined(param_02))
{
param_02 = "response";
}
var_04 = maps\_utility::array_randomize(self.var_A7A.members);
param_00 = param_00 * param_00;
param_01 = param_01 * param_01;
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
if(var_04[var_05] == self)
{
continue;
}
if(!isalive(var_04[var_05]))
{
continue;
}
var_06 = distancesquared(self.origin,var_04[var_05].origin);
if(var_06 < param_00)
{
continue;
}
if(var_06 > param_01)
{
continue;
}
if(func_0ADD(var_04[var_05]))
{
continue;
}
if(!var_04[var_05] func_0AD6(param_02))
{
continue;
}
var_03 = var_04[var_05];
if(func_0C08(var_03))
{
break;
}
}
return var_03;
}
//Function Number: 82
func_0AED()
{
var_00 = func_0BF4();
var_00 = maps\_utility::array_randomize(var_00);
if(var_00.size)
{
foreach(var_02 in var_00)
{
if(!func_0BF6(var_02))
{
return var_02;
}
}
foreach(var_02 in var_00)
{
if(!func_0AEE(var_02))
{
return var_02;
}
}
}
return undefined;
}
//Function Number: 83
func_0BF4()
{
var_00 = level.bcs_locations;
var_01 = [];
foreach(var_03 in var_00)
{
if(self istouching(var_03) && isdefined(var_03.locationaliases))
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 84
func_0BF5()
{
if(isdefined(level.bcs_locations))
{
anim.bcs_locations = common_scripts\utility::array_removeundefined(level.bcs_locations);
}
}
//Function Number: 85
func_0B22()
{
var_00 = func_0BF4();
foreach(var_02 in var_00)
{
if(!func_0AEE(var_02))
{
return 1;
}
}
return 0;
}
//Function Number: 86
func_0BF6(param_00)
{
var_01 = func_0BF8(param_00);
if(!isdefined(var_01))
{
return 0;
}
return 1;
}
//Function Number: 87
func_0AEE(param_00)
{
var_01 = func_0BF8(param_00);
if(!isdefined(var_01))
{
return 0;
}
var_02 = var_01 + level.var_B6F["threat"]["location_repeat"];
if(gettime() < var_02)
{
return 1;
}
return 0;
}
//Function Number: 88
func_0BF7(param_00)
{
level.var_B7C[param_00.classname] = gettime();
}
//Function Number: 89
func_0BF8(param_00)
{
if(isdefined(level.var_B7C[param_00.classname]))
{
return level.var_B7C[param_00.classname];
}
return undefined;
}
//Function Number: 90
func_0BF9(param_00)
{
var_01 = param_00.angles;
if(!isplayer(param_00))
{
var_02 = param_00 func_0BED();
if(isdefined(var_02))
{
var_01 = var_02.angles;
}
}
return var_01;
}
//Function Number: 91
func_0BFA(param_00)
{
if(param_00 == "left" || param_00 == "right")
{
return 1;
}
return 0;
}
//Function Number: 92
func_0BFB(param_00,param_01,param_02)
{
var_03 = vectortoangles(param_02);
var_04 = vectortoangles(param_01 - param_00);
var_05 = var_03[1] - var_04[1];
var_05 = var_05 + 360;
var_05 = int(var_05) % 360;
if(var_05 > 315 || var_05 < 45)
{
var_06 = "front";
}
else if(var_06 < 135)
{
var_06 = "right";
}
else if(var_06 < 225)
{
var_06 = "rear";
}
else
{
var_06 = "left";
}
return var_06;
}
//Function Number: 93
func_0BFC(param_00)
{
var_01 = undefined;
switch(param_00)
{
case "north":
var_01 = "n";
break;
case "northwest":
var_01 = "nw";
break;
case "west":
var_01 = "w";
break;
case "southwest":
var_01 = "sw";
break;
case "south":
var_01 = "s";
break;
case "southeast":
var_01 = "se";
break;
case "east":
var_01 = "e";
break;
case "northeast":
var_01 = "ne";
break;
case "impossible":
var_01 = "impossible";
break;
default:
break;
}
return var_01;
}
//Function Number: 94
func_0BFD(param_00,param_01)
{
var_02 = vectortoangles(param_01 - param_00);
var_03 = var_02[1];
var_04 = getnorthyaw();
var_03 = var_03 - var_04;
if(var_03 < 0)
{
var_03 = var_03 + 360;
}
else if(var_03 > 360)
{
var_03 = var_03 - 360;
}
if(var_03 < 22.5 || var_03 > 337.5)
{
var_05 = "north";
}
else if(var_04 < 67.5)
{
var_05 = "northwest";
}
else if(var_04 < 112.5)
{
var_05 = "west";
}
else if(var_04 < 157.5)
{
var_05 = "southwest";
}
else if(var_04 < 202.5)
{
var_05 = "south";
}
else if(var_04 < 247.5)
{
var_05 = "southeast";
}
else if(var_04 < 292.5)
{
var_05 = "east";
}
else if(var_04 < 337.5)
{
var_05 = "northeast";
}
else
{
var_05 = "impossible";
}
return var_05;
}
//Function Number: 95
func_0BFE(param_00,param_01)
{
var_02 = distance2d(param_00,param_01);
var_03 = 0.0254 * var_02;
return var_03;
}
//Function Number: 96
func_0BFF(param_00,param_01)
{
var_02 = func_0BFE(param_00,param_01);
if(var_02 < 15)
{
return "10";
}
if(var_02 < 25)
{
return "20";
}
if(var_02 < 35)
{
return "30";
}
return "40";
}
//Function Number: 97
func_0C00(param_00)
{
var_01 = "undefined";
if(param_00 == "10" || param_00 == "11")
{
var_01 = "10";
}
else if(param_00 == "12")
{
var_01 = param_00;
}
else if(param_00 == "1" || param_00 == "2")
{
var_01 = "2";
}
return var_01;
}
//Function Number: 98
func_0C01(param_00,param_01,param_02)
{
var_03 = anglestoforward(param_00);
var_04 = vectornormalize(var_03);
var_05 = vectortoangles(var_04);
var_06 = vectortoangles(param_02 - param_01);
var_07 = var_05[1] - var_06[1];
var_07 = var_07 + 360;
var_07 = int(var_07) % 360;
if(var_07 > 345 || var_07 < 15)
{
var_08 = "12";
}
else if(var_08 < 45)
{
var_08 = "1";
}
else if(var_08 < 75)
{
var_08 = "2";
}
else if(var_08 < 105)
{
var_08 = "3";
}
else if(var_08 < 135)
{
var_08 = "4";
}
else if(var_08 < 165)
{
var_08 = "5";
}
else if(var_08 < 195)
{
var_08 = "6";
}
else if(var_08 < 225)
{
var_08 = "7";
}
else if(var_08 < 255)
{
var_08 = "8";
}
else if(var_08 < 285)
{
var_08 = "9";
}
else if(var_08 < 315)
{
var_08 = "10";
}
else
{
var_08 = "11";
}
return var_08;
}
//Function Number: 99
func_0C02(param_00,param_01)
{
var_02 = param_01[2] - param_00[2];
var_03 = distance2d(param_00,param_01);
var_04 = atan(var_02 / var_03);
if(var_04 < 15 || var_04 > 55)
{
return var_04;
}
if(var_04 < 25)
{
return 20;
}
if(var_04 < 35)
{
return 30;
}
if(var_04 < 45)
{
return 40;
}
if(var_04 < 55)
{
return 50;
}
}
//Function Number: 100
getvectorrightangle(param_00)
{
return (param_00[1],0 - param_00[0],param_00[2]);
}
//Function Number: 101
func_0C04(param_00)
{
var_01 = (0,0,0);
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_01 = var_01 + param_00[var_02];
}
return (var_01[0] / param_00.size,var_01[1] / param_00.size,var_01[2] / param_00.size);
}
//Function Number: 102
func_0B4D(param_00)
{
self.var_BB0[self.var_BB0.size] = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_name_" + param_00;
level.var_B84[self.owner.team] = param_00;
level.var_B85[self.owner.team] = gettime();
}
//Function Number: 103
func_0C05()
{
if(!self.owner func_0C0A())
{
return;
}
anim.var_C06 = gettime();
var_00 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_name_player_" + level.player.var_BA1 + "_" + level.player.var_BA0;
self.var_BB0[self.var_BB0.size] = var_00;
self.looktarget = level.player;
}
//Function Number: 104
func_0C07(param_00)
{
self.var_BB0[self.var_BB0.size] = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_rank_" + param_00;
}
//Function Number: 105
func_0C08(param_00)
{
if(func_0BEF())
{
return 0;
}
if(!isdefined(param_00.var_AC2))
{
return 0;
}
if(param_00.battlechatter == 0)
{
return 0;
}
if(!isdefined(param_00.var_AB4))
{
return 0;
}
if(self.var_AB4 != param_00.var_AB4)
{
return 0;
}
if(func_0C09(param_00))
{
return 0;
}
var_01 = self.var_AB4 + "_" + self.var_AB6 + "_name_" + param_00.var_AC2;
if(soundexists(var_01))
{
return 1;
}
return 0;
}
//Function Number: 106
func_0C09(param_00)
{
if(level.var_B84[self.team] == param_00.var_AC2 || gettime() - level.var_B85[self.team] < level.var_B86)
{
return 1;
}
return 0;
}
//Function Number: 107
func_0C0A()
{
if(func_0BEF())
{
return 0;
}
if(!isdefined(level.player.var_BA0) || !isdefined(level.player.var_BA1))
{
return 0;
}
if(func_0C0B())
{
return 0;
}
var_00 = self.var_AB4 + "_" + self.var_AB6 + "_name_player_" + level.player.var_BA1 + "_" + level.player.var_BA0;
if(soundexists(var_00))
{
return 1;
}
return 0;
}
//Function Number: 108
func_0C0B()
{
if(!isdefined(level.var_C06))
{
return 0;
}
if(gettime() - level.var_C06 >= level.eventtypeminwait["playername"])
{
return 0;
}
return 1;
}
//Function Number: 109
func_0ADD(param_00)
{
if(isstring(self.var_AB6) && isstring(param_00.var_AB6) && self.var_AB6 == param_00.var_AB6)
{
return 1;
}
if(!isstring(self.var_AB6) && !isstring(param_00.var_AB6) && self.var_AB6 == param_00.var_AB6)
{
return 1;
}
return 0;
}
//Function Number: 110
func_0C0C(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_threat_" + param_00;
if(isdefined(param_01))
{
var_02 = var_02 + "_" + param_01;
}
self.var_BB0 = maps\_utility::array_add(self.var_BB0,var_02);
return 1;
}
//Function Number: 111
func_0C0D(param_00)
{
var_01 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_exposed_" + param_00;
self.var_BB0[self.var_BB0.size] = var_01;
return 1;
}
//Function Number: 112
func_0C0E()
{
var_00 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_order_action_suppress";
self.var_BB0[self.var_BB0.size] = var_00;
return 1;
}
//Function Number: 113
func_0C0F(param_00)
{
var_01 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_co_dist_" + param_00;
self.var_BB0[self.var_BB0.size] = var_01;
return 1;
}
//Function Number: 114
func_0C10(param_00)
{
var_01 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_co_elev_" + param_00;
self.var_BB0[self.var_BB0.size] = var_01;
return 1;
}
//Function Number: 115
func_0C11(param_00,param_01)
{
var_02 = func_0C14(param_00,param_01);
if(!soundexists(var_02))
{
return 0;
}
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 116
func_0C12(param_00)
{
var_01 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_resp_ack_co_gnrc_" + param_00;
if(!soundexists(var_01))
{
return 0;
}
self.var_BB0[self.var_BB0.size] = var_01;
return 1;
}
//Function Number: 117
func_0C13(param_00,param_01,param_02)
{
var_03 = undefined;
foreach(var_05 in param_02.locationaliases)
{
if(issubstr(param_01,var_05))
{
var_03 = var_05;
break;
}
}
var_07 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_co_";
var_08 = getsubstr(param_01,param_01.size - 1,param_01.size);
var_09 = int(var_08) + 1;
var_0A = var_07 + var_03 + "_qa" + var_09;
if(!soundexists(var_0A))
{
if(randomint(100) < level.var_B2D["response"]["callout_negative"])
{
param_00 animscripts/battlechatter_ai::func_ADB("callout","neg",self.owner,0.9);
}
else
{
param_00 animscripts/battlechatter_ai::func_ADB("exposed","acquired",self.owner,0.9);
}
param_02.var_BB9 = 1;
return 0;
}
param_00 animscripts/battlechatter_ai::func_ADB("callout","QA",self.owner,0.9,var_0A,param_02);
self.var_BB0[self.var_BB0.size] = var_0A;
return 1;
}
//Function Number: 118
func_0C14(param_00,param_01)
{
var_02 = "_report";
var_03 = "_echo";
var_04 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_";
var_05 = param_00.size - var_02.size;
var_06 = self.owner.var_AB4 + "_" + param_01.var_AB6 + "_";
var_07 = var_06.size;
var_08 = getsubstr(param_00,var_07,var_05);
var_09 = var_04 + var_08 + var_03;
return var_09;
}
//Function Number: 119
func_0C15(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_callout_" + param_00 + "_" + param_01;
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 120
func_0C16(param_00,param_01,param_02)
{
var_03 = param_00.var_C17;
if(!isdefined(param_02))
{
param_02 = 0;
}
var_04 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_callout_obj_" + var_03;
if(param_02)
{
var_04 = var_04 + "_y";
}
var_04 = var_04 + "_" + param_01;
if(!soundexists(var_04))
{
return 0;
}
self.var_BB0[self.var_BB0.size] = var_04;
return 1;
}
//Function Number: 121
func_0C18(param_00)
{
var_01 = undefined;
var_02 = param_00.locationaliases;
var_03 = var_02[0];
if(var_02.size > 1)
{
var_04 = undefined;
var_04 = param_00 func_0BB8(self.owner);
if(isdefined(var_04))
{
var_03 = var_04;
}
else
{
var_03 = common_scripts\utility::random(var_02);
}
}
var_05 = undefined;
if(!isdefined(param_00.var_BB9) && func_0BBB(var_03,self.owner))
{
var_05 = self.owner func_0BBC(var_03,0);
}
else
{
var_06 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_";
if(!issubstr(var_03,"callout"))
{
var_06 = var_06 + "co_";
}
var_05 = var_06 + var_03;
}
if(soundexists(var_05))
{
var_01 = var_05;
}
if(!isdefined(var_01))
{
return 0;
}
func_0BF7(param_00);
self.var_BB0[self.var_BB0.size] = var_01;
return 1;
}
//Function Number: 122
func_0B4B(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_inform_" + param_00 + "_" + param_01;
self.var_BB0[self.var_BB0.size] = var_02;
}
//Function Number: 123
func_0C19(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_response_" + param_00 + "_" + param_01;
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 124
func_0C1A(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_reaction_" + param_00 + "_" + param_01;
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 125
func_0C1B()
{
var_00 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_check_fire";
self.var_BB0[self.var_BB0.size] = var_00;
return 1;
}
//Function Number: 126
func_0C1C(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_taunt";
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 127
func_0C1D()
{
var_00 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_hostile_burst";
self.var_BB0[self.var_BB0.size] = var_00;
return 1;
}
//Function Number: 128
func_0B47(param_00,param_01)
{
var_02 = self.owner.var_AB4 + "_" + self.owner.var_AB6 + "_order_" + param_00 + "_" + param_01;
self.var_BB0[self.var_BB0.size] = var_02;
return 1;
}
//Function Number: 129
func_0C1E(param_00)
{
if(!isdefined(self.var_A6E[param_00].var_AAE))
{
self.var_A6E[param_00].var_AAE = 0;
}
if(!isdefined(self.var_A6E[param_00].var_BE1))
{
self.var_A6E[param_00].var_BE1 = 2000000000;
}
if(!isdefined(self.var_A6E[param_00].var_BE0))
{
self.var_A6E[param_00].var_BE0 = 0;
}
}
//Function Number: 130
func_0C1F(param_00)
{
self.var_A6E[param_00].var_AAE = undefined;
self.var_A6E[param_00].var_BE1 = undefined;
self.var_A6E[param_00].var_BE0 = undefined;
}
//Function Number: 131
func_0AD8(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03.owner = self;
var_03.var_BA7 = param_01;
var_03.var_BDA = param_00;
if(isdefined(param_02))
{
var_03.priority = param_02;
}
else
{
var_03.priority = level.var_B70[param_00][param_01];
}
var_03.var_ACB = gettime() + level.var_B71[param_00][param_01];
return var_03;
}
//Function Number: 132
func_0B45()
{
var_00 = spawnstruct();
var_00.owner = self;
var_00.var_BB0 = [];
var_00.var_BAB = 0;
return var_00;
}
//Function Number: 133
func_0C20(param_00)
{
return maps\_utility::within_fov(self.origin,self.angles,param_00,0.766);
}
//Function Number: 134
func_0B1E(param_00)
{
return maps\_utility::within_fov(self.origin,self.angles,param_00.origin,0);
}
//Function Number: 135
func_0C22()
{
anim endon("battlechatter disabled");
self endon("squad_deleting");
if(self.team != "allies")
{
if(level.script != "af_caves")
{
return;
}
}
while(self.var_A6A <= 0)
{
wait 0.5;
}
var_00 = 0;
while(isdefined(self))
{
if(!func_0C23(self))
{
var_00 = 1;
wait 1;
continue;
}
else if(self.var_B99)
{
if(!var_00)
{
wait randomfloat(level.var_B73);
}
if(var_00)
{
var_00 = 0;
}
self.var_B99 = 0;
}
else
{
if(!var_00)
{
wait randomfloatrange(level.var_B73,level.var_B74);
}
if(var_00)
{
var_00 = 0;
}
}
var_01 = func_0C25(self);
if(!isdefined(var_01))
{
continue;
}
var_02 = var_01.voice;
var_03 = func_0C27(self,var_02);
var_04 = func_0C29(var_02,var_03);
foreach(var_08, var_06 in var_04)
{
if(!var_01 func_0C24() || distance(level.player.origin,var_01.origin) > level.var_B72)
{
for(var_07 = 0;var_07 < self.members.size;var_07++)
{
var_01 = func_0C25(self);
if(!isdefined(var_01))
{
continue;
}
if(var_01.voice == var_02)
{
break;
}
}
if(!isdefined(var_01) || var_01.voice != var_02)
{
break;
}
}
thread func_0C2A(var_01,var_06);
self waittill("burst_line_done");
if(var_08 != var_04.size - 1)
{
wait randomfloatrange(level.var_B75,level.var_B76);
}
}
}
}
//Function Number: 136
func_0C23(param_00)
{
var_01 = 0;
foreach(var_03 in param_00.members)
{
if(var_03 func_0C24())
{
var_01 = 1;
break;
}
}
return var_01;
}
//Function Number: 137
func_0C24()
{
var_00 = 0;
if(!isplayer(self) && isalive(self) && self.classname != "actor_enemy_dog" && level.flavorbursts[self.team] && func_0AD2() && self.flavorbursts)
{
var_00 = 1;
}
return var_00;
}
//Function Number: 138
func_0AD2()
{
if(isdefined(level.var_B82[self.voice]) && level.var_B82[self.voice])
{
return 1;
}
return 0;
}
//Function Number: 139
func_0C25(param_00)
{
var_01 = undefined;
var_02 = maps\_utility::get_array_of_farthest(level.player.origin,param_00.members);
foreach(var_04 in var_02)
{
if(var_04 func_0C24())
{
var_01 = var_04;
if(!isdefined(param_00.var_B9A))
{
break;
}
if(isdefined(param_00.var_B9A) && param_00.var_B9A == var_01.unique_id)
{
continue;
}
}
}
if(isdefined(var_01))
{
param_00.var_B9A = var_01.unique_id;
}
return var_01;
}
//Function Number: 140
func_0C27(param_00,param_01)
{
var_02 = maps\_utility::array_randomize(level.flavorbursts[param_01]);
if(level.var_B92.size >= var_02.size)
{
anim.var_B92 = [];
}
var_03 = undefined;
foreach(var_05 in var_02)
{
var_03 = var_05;
if(!func_0C28(var_03))
{
break;
}
}
level.var_B92[level.var_B92.size] = var_03;
return var_03;
}
//Function Number: 141
func_0C28(param_00)
{
if(!level.var_B92.size)
{
return 0;
}
var_01 = 0;
foreach(var_03 in level.var_B92)
{
if(var_03 == param_00)
{
var_01 = 1;
break;
}
}
return var_01;
}
//Function Number: 142
func_0C29(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
var_03 = param_02;
var_04 = [];
for(;;)
{
var_05 = "FB_" + level.countryids[param_00] + "_" + param_01 + "_" + var_03;
var_03++;
if(soundexists(var_05))
{
var_04[var_04.size] = var_05;
continue;
}
break;
}
return var_04;
}
//Function Number: 143
func_0C2A(param_00,param_01)
{
anim endon("battlechatter disabled");
var_02 = spawn("script_origin",param_00 gettagorigin("j_head"));
var_02 linkto(param_00);
var_02 playsound(param_01,param_01,1);
var_02 waittill(param_01);
var_02 delete();
if(isdefined(self))
{
self notify("burst_line_done");
}
}
//Function Number: 144
func_0C2B(param_00,param_01)
{
self endon("burst_line_done");
wait 0.05;
}
//Function Number: 145
func_0C2C()
{
return 0;
}
//Function Number: 146
func_0C2D()
{
return 0;
}
//Function Number: 147
func_0C2E(param_00)
{
if(param_00.size <= 0)
{
return;
}
if(!func_0C2C())
{
return;
}
var_01 = "^5 ";
if(func_0BEF())
{
var_01 = "^6 ";
}
foreach(var_03 in param_00)
{
}
}
//Function Number: 148
func_0C2F(param_00,param_01)
{
}
//Function Number: 149
func_0C30(param_00)
{
var_01 = self.var_AB4 + "_" + self.var_AB6 + "_";
var_02 = getsubstr(param_00,var_01.size,param_00.size);
return var_02;
}
//Function Number: 150
func_0C31(param_00,param_01,param_02)
{
if(common_scripts\utility::flag(param_02))
{
common_scripts\utility::flag_wait(param_02);
}
common_scripts\utility::flag_set(param_02);
common_scripts\utility::flag_clear(param_02);
}
//Function Number: 151
func_0C32()
{
for(var_00 = 0;var_00 < level.bcs_locations.size;var_00++)
{
var_01 = level.bcs_locations[var_00].locationaliases;
if(!isdefined(var_01))
{
continue;
}
var_02 = "";
foreach(var_04 in var_01)
{
var_02 = var_02 + var_04;
}
thread func_0C33("Location: " + var_02,level.bcs_locations[var_00] getorigin(),(0,0,8),(1,1,1));
}
}
//Function Number: 152
func_0C33(param_00,param_01,param_02,param_03)
{
for(;;)
{
if(distance(level.player.origin,param_01) > 2048)
{
wait 0.1;
continue;
}
wait 0.05;
}
}
//Function Number: 153
func_0C34(param_00,param_01,param_02)
{
var_03 = param_00 getorigin();
for(;;)
{
if(distance(level.player.origin,var_03) > 2048)
{
wait 0.1;
continue;
}
var_04 = func_0BFD(level.player.origin,var_03);
var_04 = func_0BFC(var_04);
var_05 = func_0C01(level.player.angles,level.player.origin,var_03);
var_06 = var_04 + ", " + var_05 + ":00";
wait 0.05;
}
}
//Function Number: 154
func_0C35(param_00,param_01)
{
var_02 = getaiarray(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_04 = var_02[var_03];
if(!isalive(var_04))
{
continue;
}
if(!isdefined(var_04.battlechatter))
{
continue;
}
var_04.var_AC8[param_01] = gettime() + 350;
var_04.var_A7A.var_AC8[param_01] = gettime() + 350;
}
}
//Function Number: 155
func_0C36()
{
self endon("death");
if(self.voice == "british")
{
return 1;
}
return 0;
}
//Function Number: 156
func_0C37()
{
if(!func_0C38())
{
return 0;
}
func_0BE9("reaction","friendlyfire");
thread func_0BC5();
return 1;
}
//Function Number: 157
func_0C38(param_00)
{
if(isdefined(self.friendlyfire_warnings_disable))
{
return 0;
}
if(!isdefined(self.var_AC6))
{
return 0;
}
if(!isdefined(self.var_AC6["reaction"]) || !isdefined(self.var_AC6["reaction"].var_BA7))
{
return 0;
}
if(self.var_AC6["reaction"].var_BA7 != "friendlyfire")
{
return 0;
}
if(gettime() > self.var_AC6["reaction"].var_ACB)
{
return 0;
}
if(!isdefined(param_00))
{
param_00 = 1;
}
if(param_00)
{
if(isdefined(self.var_A7A.var_B96["reaction"]["friendlyfire"]))
{
if(gettime() < self.var_A7A.var_B96["reaction"]["friendlyfire"])
{
return 0;
}
}
}
return 1;
}