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.
76 lines
2.0 KiB
C++
76 lines
2.0 KiB
C++
|
|
#pragma once
|
|
#ifndef AI_FINDOBJECT_HPP
|
|
#define AI_FINDOBJECT_HPP
|
|
|
|
namespace MechWarrior4 { class Sensor; class MWObject; }
|
|
|
|
namespace MW4AI
|
|
{
|
|
namespace FindObject
|
|
{
|
|
enum Type // These must match the constants in MWCONST.ABI
|
|
{
|
|
FT_VEHICLE = 1, // if specified, include vehicles
|
|
FT_MECH = 2, // if specified, include 'Mechs
|
|
FT_AIRPLANE = 4, // if specified, include airplanes + helicopters
|
|
FT_BOAT = 8, // if specified, include boats
|
|
FT_MFB = 16, // if specified, include MFBs
|
|
FT_TURRET = 32, // if specified, include turrets
|
|
|
|
// the default:
|
|
FT_DEFAULT = 63, // include any units: = FT_VEHICLE + FT_MECH + FT_AIRPLANE + FT_BOAT + FT_MFB + FT_HOVER + FT_HELI + FT_BUILDING
|
|
|
|
// extras not included in the default
|
|
FT_BUILDING = 64, // if specified, take buildings into account
|
|
FT_UNARMED = 128 // if specified, include unarmed units (such as APCs)
|
|
};
|
|
|
|
enum Alignment // These must match the constants in MWCONST.ABI
|
|
{
|
|
FA_FRIENDLY = 1,
|
|
FA_ENEMY = 2,
|
|
FA_NEUTRAL = 4,
|
|
FA_ANY = FA_FRIENDLY + FA_ENEMY + FA_NEUTRAL
|
|
};
|
|
|
|
enum Criteria // These must match the constants in MWCONST.ABI
|
|
{
|
|
FC_BEST_TARGET = 1001, // change FC_FIRST if you change this
|
|
FC_GREATEST_THREAT = 1002,
|
|
FC_LEAST_THREAT = 1003,
|
|
FC_MOST_DAMAGED = 1004,
|
|
FC_NEAREST = 1005 // change FC_LAST if you change this
|
|
};
|
|
|
|
enum
|
|
{
|
|
FC_FIRST = FC_BEST_TARGET,
|
|
FC_LAST = FC_NEAREST
|
|
};
|
|
|
|
enum Flags // These must match the constants in MWCONST.ABI
|
|
{
|
|
FF_WHO_SHOT = 1,
|
|
FF_SEEPLAYER = 2,
|
|
FF_LOOK_EVERYWHERE = 4,
|
|
FF_TARGETLOS =8
|
|
};
|
|
|
|
enum
|
|
{
|
|
DISTANCE_LIMIT = 2000
|
|
};
|
|
|
|
long Find(MechWarrior4::MWObject& src,
|
|
int fa_alignment,
|
|
int ft_type,
|
|
int fc_criteria,
|
|
int ff_flags,
|
|
Stuff::Scalar distance_limit = (Stuff::Scalar)DISTANCE_LIMIT,
|
|
const Adept::ObjectID* except_object = 0);
|
|
};
|
|
};
|
|
|
|
#endif AI_FINDOBJECT_HPP
|