MCPcopy Create free account
hub / github.com/BohemiaInteractive/CWR / LoadRef

Method LoadRef

engine/Poseidon/AI/AIUnit.cpp:685–740  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

683}
684
685AIUnit* AIUnit::LoadRef(ParamArchive& ar)
686{
687 TargetSide side = TSideUnknown;
688 int idGroup;
689 int id;
690 if (ar.SerializeEnum("side", side, 1) != LSOK)
691 {
692 return nullptr;
693 }
694 if (ar.Serialize("idGroup", idGroup, 1) != LSOK)
695 {
696 return nullptr;
697 }
698 if (ar.Serialize("id", id, 1) != LSOK)
699 {
700 return nullptr;
701 }
702 AICenter* center = nullptr;
703 switch (side)
704 {
705 case TWest:
706 center = GWorld->GetWestCenter();
707 break;
708 case TEast:
709 center = GWorld->GetEastCenter();
710 break;
711 case TGuerrila:
712 center = GWorld->GetGuerrilaCenter();
713 break;
714 case TCivilian:
715 center = GWorld->GetCivilianCenter();
716 break;
717 case TLogic:
718 center = GWorld->GetLogicCenter();
719 break;
720 }
721 if (!center)
722 {
723 return nullptr;
724 }
725 AIGroup* group = nullptr;
726 for (int i = 0; i < center->NGroups(); i++)
727 {
728 AIGroup* grp = center->GetGroup(i);
729 if (grp && grp->ID() == idGroup)
730 {
731 group = grp;
732 break;
733 }
734 }
735 if (!group)
736 {
737 return nullptr;
738 }
739 return group->UnitWithID(id);
740}
741
742LSError AIUnit::SaveRef(ParamArchive& ar) const

Callers

nothing calls this directly

Calls 11

SerializeEnumMethod · 0.80
GetWestCenterMethod · 0.80
GetEastCenterMethod · 0.80
GetGuerrilaCenterMethod · 0.80
GetCivilianCenterMethod · 0.80
GetLogicCenterMethod · 0.80
NGroupsMethod · 0.80
UnitWithIDMethod · 0.80
SerializeMethod · 0.45
GetGroupMethod · 0.45
IDMethod · 0.45

Tested by

no test coverage detected