MCPcopy Create free account
hub / github.com/Phobos-developers/Phobos / MoveMissionEndStatus

Method MoveMissionEndStatus

src/Ext/Script/Body.cpp:711–815  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

709}
710
711bool ScriptExt::MoveMissionEndStatus(TeamClass* pTeam, TechnoClass* pFocus, FootClass* pLeader, int mode)
712{
713 if (!pFocus || mode < 0 || (mode != 2 && mode != 1 && !pLeader))
714 return false;
715
716 double closeEnough = RulesClass::Instance->CloseEnough / (double)Unsorted::LeptonsPerCell;
717 auto const pTeamData = TeamExt::ExtMap.Find(pTeam);
718
719 if (pTeamData->CloseEnough > 0)
720 closeEnough = pTeamData->CloseEnough;
721
722 bool bForceNextAction = false;
723
724 if (mode == 2)
725 bForceNextAction = true;
726
727 // Team already have a focused target
728 for (auto pUnit = pTeam->FirstUnit; pUnit; pUnit = pUnit->NextTeamMember)
729 {
730 if (ScriptExt::IsUnitAvailable(pUnit, true)
731 && !pUnit->TemporalTargetingMe
732 && !pUnit->BeingWarpedOut)
733 {
734 if (mode == 2)
735 {
736 // Default mode: all members in range
737 if ((pUnit->DistanceFrom(pFocus->GetCell()) / (double)Unsorted::LeptonsPerCell) > closeEnough)
738 {
739 bForceNextAction = false;
740
741 if (pUnit->WhatAmI() == AbstractType::Aircraft && pUnit->Ammo > 0)
742 pUnit->QueueMission(Mission::Move, false);
743
744 continue;
745 }
746 else
747 {
748 if (pUnit->WhatAmI() == AbstractType::Aircraft && pUnit->Ammo <= 0)
749 {
750 pUnit->EnterIdleMode(false, true);
751
752 continue;
753 }
754 }
755 }
756 else
757 {
758 if (mode == 1)
759 {
760 // Any member in range
761 if ((pUnit->DistanceFrom(pFocus->GetCell()) / (double)Unsorted::LeptonsPerCell) > closeEnough)
762 {
763 if (pUnit->WhatAmI() == AbstractType::Aircraft && pUnit->Ammo > 0)
764 pUnit->QueueMission(Mission::Move, false);
765
766 continue;
767 }
768 else

Callers

nothing calls this directly

Calls 1

FindMethod · 0.45

Tested by

no test coverage detected