Files
firestorm/Gameleap/code/mw4/Code/MW4/AI_Squad.cpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

74 lines
1.3 KiB
C++

#include "MW4Headers.hpp"
#include "AI_Squad.hpp"
#include "AI_Lancemate.hpp"
#include "AI_MoodSquad.hpp"
#include "AI_FocusFireSquad.hpp"
#include "Group.hpp"
#include "aiutils.hpp"
#include "CombatAI.hpp"
Stuff::Auto_Ptr<MW4AI::Squad::AI> MW4AI::Squad::CreateAI(MW4AI::Squad::ID id)
{
Verify(id > GROUPAI_FIRST);
Verify(id < GROUPAI_LAST);
MW4AI::Squad::AI* ai = 0;
switch (id)
{
case GROUPAI_NONE:
{
break;
}
case GROUPAI_LANCEMATE:
{
ai = new Lancemate;
break;
}
case GROUPAI_RADIOSQUAD:
{
ai = new RadioSquad;
break;
}
case GROUPAI_MOODSQUAD:
{
ai = new MoodSquad;
break;
}
case GROUPAI_FOCUSFIRESQUAD:
{
ai = new FocusFireSquad;
break;
}
default:
{
Verify(!"GroupAI ID not found.");
break;
}
}
Stuff::Auto_Ptr<MW4AI::Squad::AI> rv(ai);
return (rv);
}
Adept::Entity* MW4AI::Squad::AI::GetLeader(const MechWarrior4::Group& group) const
{
return (group.IDToEntity(*(group.GetElements().begin())));
}
int MW4AI::Squad::AI::GetIndex(const MechWarrior4::CombatAI& combat_ai, const MechWarrior4::Group& group) const
{
Verify(group.GetElements().size() > 0);
return (index_of(group.GetElements().begin(),group.GetElements().end(),combat_ai.GetSelf().objectID));
}