VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/weaponComponentInterface.h
Go to the documentation of this file.
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 };

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)