Files
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

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