CPlayer: Un-nest code within FinishNewScan()

Makes this function much nicer to read.
This commit is contained in:
Lioncash 2020-03-23 02:39:36 -04:00
parent 36ac0a8d78
commit 70c51c3a86
1 changed files with 30 additions and 12 deletions

View File

@ -1195,18 +1195,36 @@ static CAssetId UpdatePersistentScanPercent(u32 prevLogScans, u32 logScans, u32
} }
void CPlayer::FinishNewScan(CStateManager& mgr) { void CPlayer::FinishNewScan(CStateManager& mgr) {
if (TCastToPtr<CActor> act = mgr.ObjectById(x310_orbitTargetId)) const TCastToConstPtr<CActor> act = mgr.ObjectById(x310_orbitTargetId);
if (act->GetMaterialList().HasMaterial(EMaterialTypes::Scannable))
if (auto scanInfo = act->GetScannableObjectInfo()) if (!act) {
if (mgr.GetPlayerState()->GetScanTime(scanInfo->GetScannableObjectId()) >= 1.f) return;
if (IsDataLoreResearchScan(scanInfo->GetScannableObjectId())) { }
auto scanCompletion = mgr.CalculateScanCompletionRate();
CAssetId message = UpdatePersistentScanPercent(mgr.GetPlayerState()->GetLogScans(), scanCompletion.first, if (!act->GetMaterialList().HasMaterial(EMaterialTypes::Scannable)) {
scanCompletion.second); return;
if (message.IsValid()) }
mgr.ShowPausedHUDMemo(message, 0.f);
mgr.GetPlayerState()->SetScanCompletionRate(scanCompletion); const auto* const scanInfo = act->GetScannableObjectInfo();
} if (!scanInfo) {
return;
}
if (mgr.GetPlayerState()->GetScanTime(scanInfo->GetScannableObjectId()) < 1.f) {
return;
}
if (!IsDataLoreResearchScan(scanInfo->GetScannableObjectId())) {
return;
}
const auto scanCompletion = mgr.CalculateScanCompletionRate();
const CAssetId message = UpdatePersistentScanPercent(mgr.GetPlayerState()->GetLogScans(), scanCompletion.first,
scanCompletion.second);
if (message.IsValid()) {
mgr.ShowPausedHUDMemo(message, 0.f);
}
mgr.GetPlayerState()->SetScanCompletionRate(scanCompletion);
} }
void CPlayer::SetScanningState(EPlayerScanState state, CStateManager& mgr) { void CPlayer::SetScanningState(EPlayerScanState state, CStateManager& mgr) {