![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: combatRangeController.h,v $ $Revision: 1.37 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfmodel/vrfmodelDefines.h> 00017 #include <vrfobjcore/cntrlCmpnt.h> 00018 #include <vrfobjcore/vrfAggregateSR.h> 00019 #include <vrfobjcore/subordMgr.h> 00020 00021 class DtCombatRangeControllerDescriptor; 00022 00024 class DT_DLL_vrfmodel DtCombatRangeController : public DtControllerComponent 00025 { 00026 00027 public: 00028 00031 DtCombatRangeController(const DtString& name, 00032 DtVrfObject* owner, 00033 DtSimManager* simManager, 00034 DtComponentDescriptor* desc = 0, 00035 DtReaderWriterRegistry* parentRegistry = 0); 00036 00038 virtual ~DtCombatRangeController(); 00039 00042 virtual DtString type() const; 00043 00047 static DtSimComponent * creator(const DtString& name, 00048 DtVrfObject* owner, 00049 DtSimManager* simManager, 00050 DtComponentDescriptor* desc = 0, 00051 DtReaderWriterRegistry* parentRegistry = 0); 00052 00053 virtual bool init(); 00054 00059 virtual void setRangeItems(); 00060 00061 protected: 00062 00065 virtual void setRangeItemsFromDescriptor(); 00066 00069 virtual void setRangeItemsFromSubordinates(); 00070 00072 virtual void tick(); 00073 00075 virtual void mergeRangeItems(const DtRangeItems&); 00076 00077 static void subordinateChangedCallback( const DtSubordinateManager& subordinateManager, void* userData); 00078 00079 virtual void setRebuildRangeItemListOnNextTick( bool onOff ); 00080 virtual bool rebuildRangeItemListOnNextTick(); 00081 00082 virtual bool belongsToAggregate(); 00083 00084 private: 00086 DtCombatRangeController(); 00087 00089 DtCombatRangeController(const DtCombatRangeController & orig); 00090 00092 const DtCombatRangeController & operator=(const DtCombatRangeController &orig); 00093 00094 protected: 00095 00096 const DtCombatRangeControllerDescriptor* myDescriptor; 00097 bool myRebuildRangeItemListOnNextTick; 00098 //ASR of the aggregate owning the controller 00099 //If not an aggregate, this will be null 00100 DtVrfAggregateStateRepository* myOwningAggregateSR; 00101 };