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

349 lines
6.8 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\face.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 13
* Decompile Time: 231 ms
* Timestamp: 10/27/2023 2:18:18 AM
*******************************************************************/
//Function Number: 1
func_0C3A()
{
if(!level.usefacialanims)
{
return;
}
if(!isdefined(self.a.var_C3C))
{
self.a.var_C3C = 0;
self.a.var_C3E = level.var_C3D;
self.var_C3F = [];
self.var_C40 = 0;
}
}
//Function Number: 2
func_0C41(param_00)
{
var_01 = undefined;
switch(self.voice)
{
case "seal":
case "taskforce":
case "french":
case "pmc":
case "czech":
case "delta":
case "american":
var_02 = "friendly";
var_03 = level.var_C42;
break;
default:
var_02 = "enemy";
var_03 = level.var_C43;
break;
}
var_01 = 1 + self getentitynumber() % var_03;
var_02 = var_02 + "_" + var_01;
var_04 = undefined;
switch(param_00)
{
case "meleeattack":
case "meleecharge":
var_05 = 0.5;
break;
case "flashbang":
var_05 = 0.7;
break;
case "pain":
var_05 = 0.9;
break;
case "death":
var_05 = 1;
break;
default:
var_05 = 0.3;
break;
}
var_06 = "generic_" + param_00 + "_" + var_02;
thread func_0C49(var_04,var_06,var_05);
}
//Function Number: 3
func_0C44(param_00)
{
animscripts/battlechatter::func_ABF();
self.a.var_C3E = param_00;
}
//Function Number: 4
func_0C45(param_00)
{
if(!level.usefacialanims)
{
return;
}
animscripts/battlechatter::func_ABF();
self.a.var_C3E = param_00;
func_0C48();
}
//Function Number: 5
func_0C46(param_00,param_01,param_02,param_03,param_04,param_05)
{
thread func_0C49(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 6
func_0C47(param_00)
{
}
//Function Number: 7
func_0C48()
{
}
//Function Number: 8
func_0C49(param_00,param_01,param_02,param_03,param_04,param_05)
{
self.a.var_C4A = 1;
self.a.var_C4B = 1;
if(isdefined(param_03))
{
if(isdefined(param_01))
{
self playsoundatviewheight(param_01,"animscript facesound" + param_03,1);
thread func_0C52(param_03);
}
}
else
{
self playsoundatviewheight(param_01);
}
if(!level.usefacialanims)
{
return;
}
func_0C3A();
if(!isdefined(param_00) && !isdefined(param_01))
{
if(isdefined(param_03))
{
wait 0;
self.var_C4C = "failed";
self notify(param_03);
}
return;
}
self endon("death");
if(isstring(param_02))
{
switch(param_02)
{
case "any":
param_02 = 0.1;
break;
case "pain":
param_02 = 0.9;
break;
case "death":
param_02 = 1;
break;
}
}
if(param_02 <= self.a.var_C3C && isdefined(param_04) && param_04 == "wait")
{
var_06 = self.var_C3F.size;
var_07 = self.var_C40 + 1;
self.var_C3F[var_06]["facialanim"] = param_00;
self.var_C3F[var_06]["soundAlias"] = param_01;
self.var_C3F[var_06]["importance"] = param_02;
self.var_C3F[var_06]["notifyString"] = param_03;
self.var_C3F[var_06]["waitOrNot"] = param_04;
self.var_C3F[var_06]["timeToWait"] = param_05;
self.var_C3F[var_06]["notifyNum"] = var_07;
thread func_0C53("animscript face stop waiting " + self.var_C3F[var_06]["notifyNum"],"Face done waiting","Face done waiting");
if(isdefined(param_05))
{
thread func_0C54(param_05,"Face done waiting","Face done waiting");
}
self waittill("Face done waiting");
var_06 = undefined;
for(var_08 = 0;var_08 < self.var_C3F.size;var_08++)
{
if(self.var_C3F[var_08]["notifyNum"] == var_07)
{
var_06 = var_08;
break;
}
}
if(self.a.var_C4D == "notify")
{
func_0C49(self.var_C3F[var_06]["facialanim"],self.var_C3F[var_06]["soundAlias"],self.var_C3F[var_06]["importance"],self.var_C3F[var_06]["notifyString"]);
}
else if(isdefined(param_03))
{
self.var_C4C = "failed";
self notify(param_03);
}
for(var_08 = var_06 + 1;var_08 < self.var_C3F.size;var_08++)
{
self.var_C3F[var_08 - 1]["facialanim"] = self.var_C3F[var_08]["facialanim"];
self.var_C3F[var_08 - 1]["soundAlias"] = self.var_C3F[var_08]["soundAlias"];
self.var_C3F[var_08 - 1]["importance"] = self.var_C3F[var_08]["importance"];
self.var_C3F[var_08 - 1]["notifyString"] = self.var_C3F[var_08]["notifyString"];
self.var_C3F[var_08 - 1]["waitOrNot"] = self.var_C3F[var_08]["waitOrNot"];
self.var_C3F[var_08 - 1]["timeToWait"] = self.var_C3F[var_08]["timeToWait"];
self.var_C3F[var_08 - 1]["notifyNum"] = self.var_C3F[var_08]["notifyNum"];
}
self.var_C3F[self.var_C3F.size - 1] = undefined;
return;
}
if(param_02 >= self.a.var_C3C)
{
self notify("end current face");
self endon("end current face");
if(isdefined(param_03))
{
if(isdefined(self.a.var_C4E))
{
self.var_C4C = "interrupted";
self notify(self.a.var_C4E);
}
}
self.a.var_C3C = param_02;
self.a.var_C4F = param_01;
self.a.var_C4E = param_03;
self.a.var_C4A = 1;
self.a.var_C4B = 1;
if(isdefined(param_00))
{
self setflaggedanimknobrestart("animscript faceanim",param_00,1,0.1,1);
self.a.var_C4A = 0;
thread func_0C50();
}
if(isdefined(param_01))
{
self playsoundatviewheight(param_01,"animscript facesound",1);
self.a.var_C4B = 0;
thread func_0C52();
}
while(!self.a.var_C4A || !self.a.var_C4B)
{
self waittill("animscript facedone");
}
self.a.var_C3C = 0;
self.a.var_C4F = undefined;
self.a.var_C4E = undefined;
if(isdefined(param_03))
{
self.var_C4C = "finished";
self notify(param_03);
}
if(isdefined(self.var_C3F) && self.var_C3F.size > 0)
{
var_09 = 0;
var_0A = 1;
for(var_08 = 0;var_08 < self.var_C3F.size;var_08++)
{
if(self.var_C3F[var_08]["importance"] > var_09)
{
var_09 = self.var_C3F[var_08]["importance"];
var_0A = var_08;
}
}
self notify("animscript face stop waiting " + self.var_C3F[var_0A]["notifyNum"]);
return;
}
if(isai(self))
{
func_0C48();
return;
}
return;
}
if(isdefined(param_03))
{
self.var_C4C = "failed";
self notify(param_03);
return;
}
}
//Function Number: 9
func_0C50()
{
self endon("death");
self endon("end current face");
animscripts/shared::donotetracks("animscript faceanim");
self.a.var_C4A = 1;
self notify("animscript facedone");
}
//Function Number: 10
func_0C52(param_00)
{
self endon("death");
self waittill("animscript facesound" + param_00);
self notify(param_00);
}
//Function Number: 11
func_0C53(param_00,param_01,param_02)
{
self endon("death");
self endon(param_02);
self waittill(param_00);
self.a.var_C4D = "notify";
self notify(param_01);
}
//Function Number: 12
func_0C54(param_00,param_01,param_02)
{
self endon("death");
self endon(param_02);
wait param_00;
self.a.var_C4D = "time";
self notify(param_01);
}
//Function Number: 13
func_0C55()
{
anim.var_C42 = 8;
anim.var_C43 = 8;
}