![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 #pragma once 00010 00011 #include "vrfobjcore/processSR.h" 00012 #include <vl/hostStructs.h> 00013 #include "vrfutil/rwString.h" 00014 #include "vrfutil/rwBoolean.h" 00015 #include "vrfutil/rwReal.h" 00016 #include "vrfutil/rwInt.h" 00017 #include "vrfutil/rwVector.h" 00018 #include "vrfobjcore/vrfobjcoreDefines.h" 00019 #include "vrfobjparam/targetSelectCriteria.h" 00020 #include "vrfobjcore/entityTargetInformation.h" 00021 00022 class DtSpatialFilterEvaluator; 00023 00025 class DT_DLL_vrfobjcore DtWeaponComponentInterface : public DtVrfProcessStateRepository 00026 { 00027 public: 00028 00029 enum DtWeaponStatus 00030 { 00031 DT_OK_TO_FIRE = 0, 00032 DT_WEAPON_DISABLED = 1, 00033 DT_NO_AMMUNITION_FOR_TARGET = 2, 00034 DT_CANNOT_ACQUIRE_TARGET = 4 00035 }; 00036 00037 private: 00039 DtWeaponComponentInterface(); 00040 00041 public: 00042 //constructor 00043 DtWeaponComponentInterface(DtVrfObject* vrfObject, 00044 const DtString& rwName = DtString::nullString(), 00045 DtReaderWriterRegistry* parentRegistry = 0); 00046 00047 //copy constructor 00048 DtWeaponComponentInterface(const DtWeaponComponentInterface& orig, 00049 const DtString& rwName = DtString::nullString(), 00050 DtReaderWriterRegistry* parentRegistry = 0); 00051 00052 //assignment operator 00053 const DtWeaponComponentInterface& operator=( 00054 const DtWeaponComponentInterface& orig); 00055 00056 //destructor 00057 virtual ~DtWeaponComponentInterface(); 00058 00059 //returns a copy of the PSR 00060 virtual DtVrfProcessStateRepository* clone( 00061 const DtString& rwName = DtString::nullString(), 00062 DtReaderWriterRegistry* parentRegistry = 0) const; 00063 00065 virtual DtString type() const; 00066 00068 00069 virtual void setTargetSelectionCriteria(const DtTargetSelectionCriteria& tsc); 00070 virtual const DtTargetSelectionCriteria& targetSelectionCriteria() const; 00072 00075 virtual void updateRegionEvaluator(); 00080 virtual bool locationWithinRegion(const DtVector& localLocation) const; 00081 00082 virtual void setTarget(const DtEntityTargetInformation& target); 00083 virtual const DtEntityTargetInformation& target() const; 00084 00086 virtual void setRoundsFiredUponTarget(const int& roundsFired); 00087 virtual const int roundsFiredUponTarget() const; 00088 00090 virtual void setTotalRoundsToFireUponTarget(const int& totalRoundsToFire); 00091 virtual const int totalRoundsToFireUponTarget() const; 00092 00094 00095 virtual void setIsExplicitlyTasked(const bool& explicitlyTasked); 00096 virtual const bool isExplicitlyTasked() const; 00098 00100 00101 virtual void setAllowExplicitTasking(const bool& includeInDialogs); 00102 virtual const bool allowExplicitTasking() const; 00104 00106 00107 virtual void setDisplayName(const DtString& displayName); 00108 virtual const DtString displayName() const; 00110 00112 00113 virtual void setWeaponStatus(const int weaponStatus); 00114 virtual const int weaponStatus() const; 00116 00118 00119 virtual void clearTarget(); 00120 virtual bool hasTarget() const; 00122 00124 static DtVrfProcessStateRepository* creator(const DtString& name, 00125 DtVrfObject* vrfObject, DtReaderWriterRegistry* parentRegistry); 00126 00127 protected: 00130 virtual void setupRegionEvaluator(); 00131 00132 protected: 00134 DtTargetSelectionCriteria myTargetSelectionCriteria; 00135 00137 DtEntityTargetInformation myTarget; 00138 00139 DtSpatialFilterEvaluator* myRegionEvaluator; 00140 00142 DtRwInt myRoundsFiredUponTarget; 00143 00145 DtRwInt myTotalRoundsToFireUponTarget; 00146 00149 DtRwBoolean myIsExplicitlyTasked; 00150 00151 DtRwBoolean myAllowExplicitTasking; 00152 00154 DtRwString myDisplayName; 00155 00157 DtVrfObject* myHostObject; 00158 00159 DtRwInt myWeaponStatus; 00160 };