mirror of https://github.com/AxioDL/metaforce.git
CIceSheegoth: Make use of TCastToConstPtr where applicable
Makes the immutability of the data enforced and explicit.
This commit is contained in:
parent
58186ad5df
commit
3352f0e812
|
@ -174,7 +174,7 @@ void CIceSheegoth::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, C
|
||||||
}
|
}
|
||||||
case EScriptObjectMessage::Touched: {
|
case EScriptObjectMessage::Touched: {
|
||||||
ApplyContactDamage(sender, mgr);
|
ApplyContactDamage(sender, mgr);
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
||||||
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
||||||
if (wp->GetOwnerId() == mgr.GetPlayer().GetUniqueId()) {
|
if (wp->GetOwnerId() == mgr.GetPlayer().GetUniqueId()) {
|
||||||
xb28_24_shotAt = true;
|
xb28_24_shotAt = true;
|
||||||
|
@ -216,7 +216,7 @@ void CIceSheegoth::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, C
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EScriptObjectMessage::Damage: {
|
case EScriptObjectMessage::Damage: {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
||||||
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
||||||
if (sender == xaf6_iceShardsCollider && !xb28_27_) {
|
if (sender == xaf6_iceShardsCollider && !xb28_27_) {
|
||||||
sub_8019ebf0(mgr, wp->GetDamageInfo().GetDamage());
|
sub_8019ebf0(mgr, wp->GetDamageInfo().GetDamage());
|
||||||
|
@ -226,7 +226,7 @@ void CIceSheegoth::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, C
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TakeDamage(zeus::skZero3f, 0.f);
|
TakeDamage(zeus::skZero3f, 0.f);
|
||||||
if (IsGillCollider(colAct)) {
|
if (IsGillCollider(colAct.GetPtr())) {
|
||||||
x97c_ = 0.2f;
|
x97c_ = 0.2f;
|
||||||
x980_ = GetTransform().basis[1];
|
x980_ = GetTransform().basis[1];
|
||||||
}
|
}
|
||||||
|
@ -242,7 +242,7 @@ void CIceSheegoth::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, C
|
||||||
}
|
}
|
||||||
case EScriptObjectMessage::InvulnDamage: {
|
case EScriptObjectMessage::InvulnDamage: {
|
||||||
if (sender == xaf6_iceShardsCollider && !xb28_27_) {
|
if (sender == xaf6_iceShardsCollider && !xb28_27_) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(sender)) {
|
||||||
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
if (const TCastToConstPtr<CWeapon> wp = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
||||||
sub_8019ebf0(mgr, wp->GetDamageInfo().GetDamage());
|
sub_8019ebf0(mgr, wp->GetDamageInfo().GetDamage());
|
||||||
if (!xaec_ || xaec_->IsSystemDeletable()) {
|
if (!xaec_ || xaec_->IsSystemDeletable()) {
|
||||||
|
@ -1270,34 +1270,34 @@ void CIceSheegoth::UpdateHealthInfo(CStateManager& mgr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
float hpDelta = 0.f;
|
float hpDelta = 0.f;
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(xaf8_mouthCollider)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(xaf8_mouthCollider)) {
|
||||||
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TUniqueId uid : xafc_gillColliders) {
|
for (const TUniqueId uid : xafc_gillColliders) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
||||||
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TUniqueId uid : xb04_) {
|
for (const TUniqueId uid : xb04_) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
if (const TCastToConstPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
||||||
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
hpDelta = std::max(hpDelta, x970_maxHp - colAct->GetHealthInfo(mgr)->GetHP());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HealthInfo(mgr)->SetHP(HealthInfo(mgr)->GetHP() - hpDelta);
|
HealthInfo(mgr)->SetHP(HealthInfo(mgr)->GetHP() - hpDelta);
|
||||||
if (GetHealthInfo(mgr)->GetHP() > 0.f) {
|
if (GetHealthInfo(mgr)->GetHP() > 0.f) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(xaf8_mouthCollider)) {
|
if (const TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(xaf8_mouthCollider)) {
|
||||||
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
||||||
}
|
}
|
||||||
for (TUniqueId uid : xafc_gillColliders) {
|
for (const TUniqueId uid : xafc_gillColliders) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
if (const TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
||||||
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (TUniqueId uid : xb04_) {
|
for (const TUniqueId uid : xb04_) {
|
||||||
if (TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
if (const TCastToPtr<CCollisionActor> colAct = mgr.ObjectById(uid)) {
|
||||||
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
colAct->HealthInfo(mgr)->SetHP(x970_maxHp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue