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.
132 lines
5.5 KiB
C++
132 lines
5.5 KiB
C++
|
|
#pragma once
|
|
#ifndef AI_TACTICINTERFACE_HPP
|
|
#define AI_TACTICINTERFACE_HPP
|
|
|
|
#include <Stuff\Scalar.hpp>
|
|
#include <Stuff\Point3D.hpp>
|
|
#include "AI_FireStyle.hpp"
|
|
#include "AI_Moods.hpp"
|
|
#include "AI_FireData.hpp"
|
|
|
|
|
|
|
|
namespace MechWarrior4
|
|
{
|
|
class MWObject;
|
|
};
|
|
|
|
#define INTERFACE_TacticInterface(post) \
|
|
public: \
|
|
virtual void MoveTo(const Point3D& point, bool move_forward = true, bool throttle_override = false, MWObject* ram_target = 0) ##post \
|
|
virtual bool PointIsValid(const Point3D& point, bool ignore_mission_bounds = false, bool ignore_squads = false) const ##post \
|
|
virtual bool HasPath() const ##post \
|
|
virtual bool Moving() const ##post \
|
|
virtual void Stop() ##post \
|
|
virtual void ClearMoveOrder() ##post \
|
|
virtual Stuff::Point3D GetAimPoint() const ##post \
|
|
virtual void TrackTo(const Stuff::Point3D& point) ##post \
|
|
virtual void TurnTo(const Stuff::Point3D& point, bool must_be_torso_twisted = true) ##post \
|
|
virtual void PitchTo(const Stuff::Point3D& point) ##post \
|
|
virtual Stuff::Scalar WeaponRange(WR_WHO who, WR_QUALIFIER qualifier) const ##post \
|
|
virtual void Fire(FireStyles::FireStyleID style = FireStyles::FIRE_MAXIMUM) ##post \
|
|
virtual MechWarrior4::MWObject& GetSelf() const ##post \
|
|
virtual MechWarrior4::Vehicle* GetSelf_AsVehicle() const ##post \
|
|
virtual MechWarrior4::MWObject& GetTarget() const ##post \
|
|
virtual MechWarrior4::Vehicle* GetTarget_AsVehicle() const ##post \
|
|
virtual MechWarrior4::MWObject* GetNearest(bool fMustBeEnemy = false) ##post \
|
|
virtual Stuff::Scalar GetDistanceFromTargetSquared() const ##post \
|
|
virtual Stuff::Scalar GetDistanceFromDestinationSquared() const ##post \
|
|
virtual Moods::ID GetMood() const ##post \
|
|
virtual bool ProjectileApproaching(Stuff::Scalar interval = 4.0f) ##post \
|
|
virtual const Stuff::Point3D& GetProjectileOrigin() ##post \
|
|
virtual void Stand() ##post \
|
|
virtual void Crouch() ##post \
|
|
virtual bool Crouching() const ##post \
|
|
virtual FireData::HIT_RESULT GetLastHitResult() const ##post \
|
|
virtual void ThrottleOverride(Stuff::Scalar duration, bool force = false) ##post \
|
|
virtual bool GetLastMoveDest(Stuff::Point3D& dest, bool ignore_movement = false) const ##post \
|
|
virtual bool ShotWithin(Stuff::Scalar lastvalid) const ##post \
|
|
virtual bool FiredWithin(Stuff::Scalar lastvalid) const ##post \
|
|
virtual void Jump(Stuff::Scalar duration) ##post \
|
|
virtual void Jump() ##post \
|
|
virtual void StopJumping() ##post \
|
|
virtual bool GetUnableToFireDuration(Stuff::Scalar duration) const ##post \
|
|
virtual bool ShouldForceDestinationRecalc() const ##post \
|
|
virtual int GetEliteLevel() const ##post \
|
|
virtual Stuff::Scalar GetTimeTargetedByEnemy() const ##post \
|
|
virtual Stuff::Scalar GetAttackThrottle() const ##post \
|
|
virtual void ForceDestinationRecalc() ##post \
|
|
virtual Stuff::Point3D GetMoveDest() const ##post \
|
|
virtual Stuff::Scalar GetLastTimeRammedTarget() const ##post \
|
|
virtual Stuff::Scalar GetLastTimeJumped() const ##post \
|
|
virtual Stuff::LinearMatrix4D GetAttackOrderPosition() const ##post \
|
|
virtual Stuff::LinearMatrix4D GetLastMoveOrderPosition() const ##post \
|
|
virtual bool GetEscapeRegionFocusIfAvailable(Stuff::Point3D& focus) const ##post \
|
|
virtual void SurrenderPose() ##post \
|
|
virtual void SetSpeed(Stuff::Scalar speed) ##post \
|
|
virtual bool SuicideIsOK() const ##post \
|
|
virtual unsigned int NumLegsDestroyed() const ##post \
|
|
virtual Stuff::Scalar GetMovementScore() const ##post \
|
|
virtual void SetMovementScore(Stuff::Scalar score) ##post \
|
|
virtual bool PointIsInBadNeighborhood(const Stuff::Point3D& point) const ##post \
|
|
virtual bool ShouldRun() const ##post \
|
|
virtual Stuff::Scalar GetCombatRadiusForRange(Stuff::Scalar percentile_range) ##post \
|
|
virtual Stuff::Scalar GetNormalizedJumpJetFuel() ##post \
|
|
virtual bool CanRetreat() const ##post \
|
|
virtual Stuff::Scalar GetCurrentVulnerableComponent() ##post \
|
|
virtual bool CanJump() const ##post \
|
|
virtual bool CanCrouch() const ##post \
|
|
virtual void FloatToPoint(const Stuff::Point3D& point) ##post \
|
|
virtual bool IsShootOnlyAI() const ##post \
|
|
virtual void SetFallDampingEnabled(bool enabled) ##post \
|
|
virtual Adept::ObjectID GetObjectID() const ##post \
|
|
virtual Stuff::Scalar GetMaxFireCheatAngle() const ##post \
|
|
virtual bool LineMightHitFriendlyUnits(const Stuff::Line3D& line) const ##post \
|
|
virtual bool MovedWithin(Stuff::Scalar duration) const ##post \
|
|
virtual void ContinuousFlyBy(const Stuff::Point3D& loc) ##post \
|
|
virtual bool RecentPathsFailed() const ##post \
|
|
virtual bool CanMove() const ##post \
|
|
virtual bool MoveRequestPending() const ##post \
|
|
virtual bool CanTrack() const ##post \
|
|
virtual bool CanTurn() const ##post \
|
|
virtual Stuff::Scalar DamageTakenSinceAttackOrder() const ##post \
|
|
virtual Stuff::Point3D GetLeashCenter() const ##post \
|
|
virtual Stuff::Scalar GetLeashRadius() const ##post
|
|
|
|
#define PURE_TacticInterface INTERFACE_TacticInterface(=0;)
|
|
#define DERIVED_TacticInterface INTERFACE_TacticInterface(;)
|
|
|
|
|
|
namespace MechWarrior4
|
|
{
|
|
class Vehicle;
|
|
};
|
|
|
|
namespace MW4AI
|
|
{
|
|
class TacticInterface
|
|
{
|
|
protected:
|
|
TacticInterface() {};
|
|
virtual ~TacticInterface() {};
|
|
|
|
public:
|
|
enum WR_WHO
|
|
{
|
|
SELF,
|
|
TARGET
|
|
};
|
|
enum WR_QUALIFIER
|
|
{
|
|
MIN,
|
|
MAX
|
|
};
|
|
|
|
PURE_TacticInterface;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
#endif // AI_TACTICINTERFACE_HPP
|