mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 20:27:42 +00:00
Initial CScriptActor imps
This commit is contained in:
@@ -16,8 +16,9 @@ static inline bool is_not_immune(EVulnerability vuln)
|
||||
|
||||
void CDamageVulnerability::ConstructNew(CInputStream& in, int propCount)
|
||||
{
|
||||
propCount -= 3;
|
||||
EVulnerability* vulns = &x0_power;
|
||||
for (int i = 0; i < std::min(propCount - 3, 15); ++i)
|
||||
for (int i = 0; i < std::min(propCount, 15); ++i)
|
||||
vulns[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
if (propCount < 15)
|
||||
@@ -29,19 +30,19 @@ void CDamageVulnerability::ConstructNew(CInputStream& in, int propCount)
|
||||
for (int i = 15; i < propCount; ++i)
|
||||
in.readUint32Big();
|
||||
|
||||
x5c_ = in.readUint32Big();
|
||||
x5c_ = EVulnerability(in.readUint32Big());
|
||||
EVulnerability* vulns2 = &x3c_chargedPower;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns2[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x60_ = in.readUint32Big();
|
||||
x60_chargedPhazon = EVulnerability(in.readUint32Big());
|
||||
EVulnerability* vulns3 = &x4c_superMissile;
|
||||
in.readUint32Big();
|
||||
for (int i = 0; i < 4; ++i)
|
||||
vulns3[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
x64_ = in.readUint32Big();
|
||||
x64_phazonCombo = EVulnerability(in.readUint32Big());
|
||||
}
|
||||
|
||||
CDamageVulnerability::CDamageVulnerability(CInputStream& in)
|
||||
@@ -54,9 +55,9 @@ CDamageVulnerability::CDamageVulnerability(CInputStream& in)
|
||||
vulns[i] = EVulnerability(in.readUint32Big());
|
||||
|
||||
if (propCount == 15)
|
||||
x5c_ = 0;
|
||||
x5c_ = EVulnerability::DoubleDamage;
|
||||
else
|
||||
x5c_ = in.readUint32Big();
|
||||
x5c_ = EVulnerability(in.readUint32Big());
|
||||
|
||||
x3c_chargedPower = x0_power;
|
||||
x4c_superMissile = x0_power;
|
||||
@@ -71,12 +72,12 @@ CDamageVulnerability::CDamageVulnerability(CInputStream& in)
|
||||
ConstructNew(in, propCount);
|
||||
}
|
||||
|
||||
u32 CDamageVulnerability::sub80102490(const CWeaponMode& mode) const
|
||||
EVulnerability CDamageVulnerability::GetPhazonVulnerability(const CWeaponMode& mode) const
|
||||
{
|
||||
if (mode.IsCharged())
|
||||
return x60_;
|
||||
return x60_chargedPhazon;
|
||||
if (mode.IsComboed())
|
||||
return x64_;
|
||||
return x64_phazonCombo;
|
||||
return x5c_;
|
||||
}
|
||||
|
||||
@@ -93,7 +94,7 @@ bool CDamageVulnerability::WeaponHurts(const CWeaponMode& mode, bool ignoreDirec
|
||||
normalHurts = is_not_immune(normalVuln);
|
||||
else
|
||||
{
|
||||
if (is_not_immune(normalVuln) &&
|
||||
if (!is_not_immune(normalVuln) &&
|
||||
(normalVuln != EVulnerability::DirectDouble && normalVuln != EVulnerability::DirectNormal))
|
||||
normalHurts = false;
|
||||
}
|
||||
@@ -111,10 +112,10 @@ bool CDamageVulnerability::WeaponHurts(const CWeaponMode& mode, bool ignoreDirec
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_not_immune(chargedVuln) &&
|
||||
if (!is_not_immune(chargedVuln) &&
|
||||
(chargedVuln != EVulnerability::DirectDouble && chargedVuln != EVulnerability::DirectNormal))
|
||||
chargedHurts = false;
|
||||
if (is_not_immune(comboedVuln) &&
|
||||
if (!is_not_immune(comboedVuln) &&
|
||||
(comboedVuln != EVulnerability::DirectDouble && comboedVuln != EVulnerability::DirectNormal))
|
||||
comboedHurts = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user