VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/hostilityManager.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: hostilityManager.h,v $ $Revision: 1.6 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef hostilityManager_h
00015 #define hostilityManager_h
00016 
00017 #include "vrfobjcore/vrfobjcoreDefines.h"
00018 #include <vlutil/vlMachineTypes.h>
00019 #include <vlutil/vlString.h>
00020 #include <vector>
00021 #include <list>
00022 #include "vrfutil/callbackList.h"
00023 #include <vrfutil/rwForceDescriptionList.h>
00024 #include <matrix/vlVector.h>
00025 
00026 //forward defs
00027 class DtSimManager;
00028 class DtSimMessage;
00029 
00035 class DT_DLL_vrfobjcore DtHostilityManager
00036 {
00037 public:
00038    DtHostilityManager(DtSimManager* simManager);
00039    virtual ~DtHostilityManager();
00040 
00041 private:
00043 
00044    DtHostilityManager(const DtHostilityManager& orig);
00045    DtHostilityManager& operator=(const DtHostilityManager& orig);
00047 
00048 protected:
00049    typedef DtCallbackList<DtU8>::DtCallbackFunctionType DtHostitliyChangedCallbackFcn;
00050 
00051 public:
00055    virtual bool init();
00056 
00061    virtual void setDefaultHostility();
00062 
00064    virtual bool addForce(DtString forceName, DtVector forceColor, bool includeInDialogs);
00065 
00067    virtual bool removeForce(DtU8 force);
00068 
00074    virtual void setHostility(DtU8 force, DtU8 targetForce, bool hostile);
00075 
00077    virtual bool hostile(DtU8 force, DtU8 targetForce) const;
00078 
00081    virtual void hostileForces(DtU8 force, std::list<DtU8>& forceList) const;
00082 
00085    virtual void friendlyForces(DtU8 force, std::list<DtU8>& forceList) const;
00086 
00091 
00092    virtual void addHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
00093    virtual void removeHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
00095 
00097 
00098    virtual void setName(DtU8 force, DtString forceName);
00099    virtual DtString name(DtU8 force) const;
00101 
00103 
00104    virtual void setIncludeInDialogs(DtU8 force, bool includeInDialogs);
00105    virtual bool includeInDialogs(DtU8 force);
00107    
00109 
00110    virtual void setColor(DtU8 force, DtVector forceColor);
00111    virtual DtVector color(DtU8 force);
00113 
00115 
00116    virtual void setForceIsUsed(DtU8 force, bool forceIsUsed);
00117    virtual bool forceIsUsed(DtU8 force);
00119 
00121    virtual int numForces() const;
00122 
00124    virtual DtU8 nextAvailableForceId();
00125 /*
00128    virtual void writeHostilityFile(const DtString& filename);
00129 */
00133    virtual const DtRwForceDescriptionList& forceDescriptionList();
00134 
00140    virtual bool readHostilityFile(const DtString& filename);
00141 
00146    virtual void setDataFromDescriptionList(const DtRwForceDescriptionList& l);
00147 
00148 protected:
00149 
00150 //****************************************************************************
00152 //****************************************************************************
00154    virtual void registerInterfaceMessageCallbacks();
00155 
00157 
00158    static void requestHostilityMatrixCallback(DtSimMessage* msg, void* usr);
00159    virtual void processRequestHostilityMatrix(DtSimMessage* msg);
00161 
00163 
00164    static void setHostilityMatrixCallback(DtSimMessage* msg, void* usr);
00165    virtual void processSetHostilityMatrix(DtSimMessage* msg);
00167 
00169 
00170    static void requestForceHostilityCallback(DtSimMessage* msg, void* usr);
00171    virtual void processRequestForceHostility(DtSimMessage* msg);
00173 
00175 
00176    static void setForceHostilityCallback(DtSimMessage* msg, void* usr);
00177    virtual void processSetForceHostility(DtSimMessage* msg);
00179 
00180 //****************************************************************************
00182 //****************************************************************************
00183 
00186    virtual void clearMatrix();
00187 
00188 //****************************************************************************
00190 //****************************************************************************
00191 
00192    typedef std::vector<bool> DtBoolVector;
00193    typedef std::vector<DtBoolVector> DtBoolVectorVector;
00194    typedef std::vector<DtString> DtNameVector;
00195    typedef std::vector<DtVector> DtVectorVector;
00196 
00197 //****************************************************************************
00199 //****************************************************************************
00200 
00201    DtSimManager* mySimManager;
00202 
00206    DtBoolVectorVector myHostilityMatrix;
00207    
00208    DtNameVector myNameVector;
00209    DtBoolVector myIncludeInDialogsVector;
00210    DtVectorVector myColorVector;
00211    DtBoolVector myForceIsUsedVector;
00212 
00216    DtRwForceDescriptionList myForceDescriptionList;
00217 
00218    DtCallbackList<DtU8> myHostilityChangedCallbackList;
00219 };
00220 
00221 #endif

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)