#pragma once #ifndef AI_SQUADORDERS_HPP #define AI_SQUADORDERS_HPP #include #include #include "AI_LancemateCommands.hpp" namespace MechWarrior4 { class MWObject; }; namespace MW4AI { class SquadOrders { public: virtual ~SquadOrders(); virtual void Update() = 0; virtual bool PointIsValid(const Stuff::Point3D& point) const = 0; virtual void IssueCommand(Stuff::Auto_Ptr& command) = 0; virtual void NotifyShotFired() = 0; virtual void NotifyFriendlyFire(Adept::Entity& who) {}; virtual bool CanExecuteCommands() const { return (true); } virtual MWObject* GetAutoTarget() const { return (0); } virtual bool GetExtendedSensorData(std::vector& sensor_data_list) const { return (false); } virtual Stuff::Scalar GetLeastSquaredSensorDistance(const Stuff::Point3D& point) const { return (0); } virtual Stuff::Auto_Ptr CreateCommand(LancemateCommands::ID command_id,Adept::Entity* pTarget2 = NULL) { return (0); } virtual bool ShouldRunScript() const { return (true); } virtual bool GetLeaderAlignment(int& alignment) { return (false); } virtual void NotifyNoPath() { }; }; }; #endif // AI_SQUADORDERS_HPP