| 683 | } |
| 684 | |
| 685 | AIUnit* 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 | |
| 742 | LSError AIUnit::SaveRef(ParamArchive& ar) const |
nothing calls this directly
no test coverage detected