void __cdecl c_auto_wall::scale_dmg(int hitgroup, int player, float weapon_armor_ratio, float *dmg)
{
// [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
v4 = netvars::m_ArmorValue;
v1 = weapon_armor_ratio;
if...
v7 = v4 ^ v6;
v8 = *(v7 + player);
a3a = *(v7 + player);
switch ( hitgroup )
{
case 1:
v9 = *dmg * 4.0;
goto LABEL_8;
case 3:
v9 = *dmg * 1.25;
goto LABEL_8;
case 6:
case 7:
v9 = *dmg * 0.75;
LABEL_8:
*dmg = v9;
break;
default:
break;
}
if ( v8 > 0 )
{
switch ( hitgroup )
{
case 0:
case 2:
case 3:
case 4:
case 5:
case 8:
goto LABEL_15;
case 1:
v10 = netvars::m_bHasHelmet;
if...
if ( !*((v10 ^ v11) + player) )
return;
LABEL_15:
v12 = netvars::m_bHasHeavyArmor;
if...
v14 = *((v12 ^ v13) + player);
if ( v14 && hitgroup == 1 )
{
v15 = v1 * 0.5;
*dmg = *dmg + *dmg;
LABEL_22:
v18 = *dmg;
v17 = 0.33000001;
v16 = 0.33000001;
v19 = (v15 * 0.5) * *dmg;
v20 = v19 * 0.85000002;
goto LABEL_24;
}
v16 = 0.5;
v17 = 1.0;
v15 = v1 * 0.5;
if ( v14 )
goto LABEL_22;
v18 = *dmg;
v19 = v15 * *dmg;
v20 = v19;
LABEL_24:
if ( ((v18 - v19) * (v16 * v17)) > a3a )
v20 = v18 - (a3a / v16);
*dmg = v20;
break;
default:
return;
}
}
}