![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: munLoader.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 #ifndef DtVrfMunitionLoader_H_ 00018 #define DtVrfMunitionLoader_H_ 00019 00020 #include <vlpi/disEnums.h> 00021 #include "vrfcore/exClock.h" 00022 #include "vrfutil/rdrWritr.h" 00023 #include <vlutil/vlString.h> 00024 #include "vrfutil/simMunition.h" 00025 #include "vrfobjcore/simCmpnt.h" 00026 #include "vrfutil/rwInt.h" 00027 #include "vrfutil/rwReal.h" 00028 00029 00033 00034 #include "vrfobjcore/vrfobjcoreDefines.h" 00035 class DT_DLL_vrfobjcore DtVrfMunitionLoader : public DtReaderWriter 00036 { 00037 00038 public: 00039 DtVrfMunitionLoader(const DtString& rwName = DtString::nullString(), 00040 DtReaderWriterRegistry* parentRegistry = 0); 00041 00042 DtVrfMunitionLoader(const DtVrfMunitionLoader& orig, 00043 const DtString& rwName = DtString::nullString(), 00044 DtReaderWriterRegistry* parentRegistry = 0); 00045 00046 00047 const DtVrfMunitionLoader& operator=( 00048 const DtVrfMunitionLoader& orig); 00049 00050 virtual ~DtVrfMunitionLoader(); 00051 00059 virtual void tick(const DtSimMunition& correctMunition, 00060 DtDetonatorFuze correctFuze, DtTime currentTime, 00061 int roundsAvailable = 1); 00062 00066 virtual void load(DtTime startLoadTime, const DtSimMunition& munition, 00067 DtDetonatorFuze fuze); 00068 00074 virtual void loadComplete(int roundsAvailable); 00075 00078 virtual void unload(DtTime startUnloadTime); 00079 00081 virtual void unload(); 00082 00084 virtual bool isLoading() const; 00085 00087 virtual bool isUnLoading() const; 00088 00090 virtual bool isLoaded() const; 00091 00096 virtual bool isUnloaded() const; 00097 00098 virtual const DtSimMunition& currentMunition() const; 00099 virtual void setCurrentMunition(const DtSimMunition& currentMunition); 00100 00101 virtual DtDetonatorFuze currentFuze() const; 00102 virtual void setCurrentFuze(DtDetonatorFuze currentFuze); 00103 00106 virtual double completeLoadTime() const; 00107 virtual void setCompleteLoadTime(double completeLoadTime); 00108 00111 virtual double completeUnloadTime() const; 00112 virtual void setCompleteUnloadTime(double completeUnloadTime); 00113 00115 virtual double loadAmmoTime() const; 00117 virtual void setLoadAmmoTime(double loadAmmoTime); 00118 00120 virtual double unloadAmmoTime() const; 00122 virtual void setUnloadAmmoTime(double unloadAmmoTime); 00123 00127 virtual void setRoundsPerMagazine(const int nRounds); 00128 virtual int roundsPerMagazine() const; 00129 00132 virtual int roundsLeftInMagazine() const; 00134 virtual void useRounds(const int nRounds); 00135 00138 virtual void setConsoleWarn(DtOutputStream * const warnStream); 00139 virtual void setConsoleDebug(DtOutputStream * const debugStream); 00140 00141 protected: 00142 00143 enum LoadState 00144 { 00145 Loading, 00146 Unloading, 00147 Unloaded, 00148 Loaded 00149 }; 00150 00151 DtRwInt myState; 00152 00153 DtOutputStream *myConsoleWarn; 00154 DtOutputStream *myConsoleDebug; 00155 00159 DtSimMunition myCurrentMunition; 00160 DtRwInt myCurrentFuze; 00161 00162 DtRwReal myCompleteLoadTime; 00163 DtRwReal myCompleteUnloadTime; 00164 00166 DtReal myLoadAmmoTime; 00168 DtReal myUnloadAmmoTime; 00169 00172 DtRwInt myRoundsPerMagazine; 00174 DtRwInt myRoundsLeftInMagazine; 00175 00176 }; 00177 00178 #endif