![]() |
VR-Forces 4.0.4 Class Documentation
|
DtDamageAdjudicationActuator is responsible for adjudicating the damage from appropriate detonations. More...

Public Member Functions | |
| DtDamageAdjudicationActuator (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) | |
| (const DtString&,DtVrfObject*,DtSimManager*, | |
| virtual | ~DtDamageAdjudicationActuator () |
| destructor Unregisters with the detonation manager. | |
| virtual bool | init () |
| Registers callbacks with the detonation manager. | |
| virtual bool | adjudicateDirectDamage (const DtDetonationContext &detonationContext) |
| When a detonation context is received, from the detonation manager, it is processed in order to determine the appropriate damage to the entity. | |
| virtual bool | adjudicateCollateralDamage (const DtDetonationContext &detonationContext) |
| Determines collateral damage from an impact near the entity. | |
| virtual DtString | type () const |
| Returns a string identifies the class type of component. | |
| virtual void | tick () |
| Determines the destroyed status of the entity, and then checks to see if the flaming and smoking indicators should be turned off. | |
Static Public Member Functions | |
| static bool | processDirectDetonationCallback (const DtDetonationContext &detonationContext, void *usr) |
| The detonation manager uses this function to notify the actuator of when it needs to process an entity detonation for the entity. | |
| static bool | processCollateralDetonationCallback (const DtDetonationContext &detonationContext, void *usr) |
| The detonation manager uses this function to notify the actuator of when it needs to process an ground detonation to determine any collateral damage for the entity. | |
| static void | setDestroyedCallback (DtSimMessage *msg, void *usrData) |
| Calls setDestroyed() | |
| static void | setRestoredCallback (DtSimMessage *msg, void *usrData) |
| Calls setRestored() | |
| static DtSimComponent * | creator (const DtString &name, DtVrfObject *owner, DtSimManager *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| (const DtString&,DtVrfObject*,DtSimManager*, | |
Protected Member Functions | |
| virtual void | getDirectFireSurfaceAndAngleOfIncidence (DtDetonationContext &detonationContext) |
| Determines the fire surface and the angle of incidence of the detonation from a direct fire weapon and puts them in the specified detonation context. | |
| virtual void | getIndirectFireSurfaceAndAngleOfIncidence (DtDetonationContext &detonationContext) |
| Determines the fire surface and the angle of incidence of the detonation and puts them in the specified detonation context. | |
| virtual DtSymbolString | getSurface (DtBoundingVolumeFace impactSurface) |
| virtual bool | getRangeEntry (const DtDetonationContext &detonationContext, DtPrbRangeTableEntry &rangeEntry, bool isDirectDamage=true) const |
| Gets the range entry from the damage component descriptor's kill probabilities. | |
| virtual bool | isCatastrophicallyKilled (DtPrbRangeTableEntry &rangeEntry, DtSymbolString catastrophicKillString) const |
| Gets the probability of being catastrophically killed by the detonation from the specified range entry. | |
| virtual bool | isFirepowerKilled (DtPrbRangeTableEntry &rangeEntry, DtSymbolString firepowerKillString) const |
| Gets the probability of being firepower killed by the detonation from the specified range entry. | |
| virtual bool | isMobilityKilled (DtPrbRangeTableEntry &rangeEntry, DtSymbolString mobilityKillString) const |
| Gets the probability of being mobility killed by the detonation from the specified range entry. | |
| virtual DtSymbolString | catastrophicKillString () const |
| virtual DtSymbolString | mobilityKillString () const |
| virtual DtSymbolString | firepowerKillString () const |
| virtual void | determineDestroyedStatus () |
| This function determines if anything we are attached to are occupying was destroyed (last tick). | |
| virtual void | setDestroyed () |
| Calls setDestroyed on the myLocalStateRepository. | |
| virtual void | setRestored () |
| Re-registers the entity to receive detonations since it is now restored. | |
| virtual bool | registerForDetonations () |
| Registers the entity to receive notification of appropriate detonations and notes that the callbacks have been registered. | |
| virtual bool | unregisterForDetonations () |
| Unregisters the entity to receive notification of appropriate detonations, and notes that the callbacks have been unregistered. | |
| virtual void | setMobilityKilled () |
| Calls setMobilityKilled on the myLocalStateRepository. | |
| virtual void | setFirepowerKilled () |
| Calls setFirepowerKilled on the myLocalStateRepository. | |
| virtual void | setRadio (DtSimBaseRadio *radio) |
| Overrides this so it can register its interest the set destroyed message. | |
| virtual bool | isRegisteredForDetonations () const |
| Keep track of whether or not we're registered for detonations direct or collateral. | |
| virtual void | setIsRegisteredForDetonations (bool yesOrNo) |
| Keep track of whether or not we're registered for detonations direct or collateral. | |
Protected Attributes | |
| DtDamageAdjudicationComponentDescriptor * | myDamageComponentDescriptor |
| DtTime | myStopSmokingTime |
| DtTime | myStopFlamingTime |
Private Member Functions | |
| DtDamageAdjudicationActuator () | |
| Default constructor; not implemented. | |
| DtDamageAdjudicationActuator (const DtDamageAdjudicationActuator &orig) | |
| copy constructor; not implemented | |
| DtDamageAdjudicationActuator & | operator= (const DtDamageAdjudicationActuator &orig) |
| assignment operator; not implemented | |
Private Attributes | |
| bool | myIsRegisteredForDetonations |
| Keep track of whether or not we've registered detonation callbacks with detonation manager. | |
DtDamageAdjudicationActuator is responsible for adjudicating the damage from appropriate detonations.
End User Description: DtDamageAdjudicationActuator provides a simple damage model.
The damage actuator registers callbacks with the DtDetonationManager, so that it is notified of the appropriate detonations. It holds 2 damage tables. One for direct fire damage( Rifles, tank 120mm) where detonation result is an entity impact or entity proximate impact. And one for collateral damage-- there was a detonation near the entity where it might take secondary damage from the detonation. This would be things like artillery fire, or damage from standing next to something else thats been hit. An example would be an entity standing very close to another that's been shot with a HE round. This is also the place people could add ricochet effects. During initialization, the damage actuator will run thru each damage table and registers the appropriate callback for the table with the detonation manager. When registering both the maxium range of the weapon and its munition type are registered. When an appropriate detonation occurs (see the DtDetonationManager for more information on what constitutes an appropriate detonation.), the registered callback is called with the appropriate detonation context (contains all relevant information for the detonation).
The actuator's callback uses this information, which includes the ammunition type, range, surface, and angle of incidence of the impact, to look up the damage results in the appropriate damage table, specified for that ammunition type.
If the entity is destroyed, the damage actuator sets its flaming and smoking indicators, and leaves these on for the duration specified in the component descriptor. It also unregisters for further notice of detonations.
Uses Descriptor Type: DtDamageAdjudicationComponentDescriptor
| DtDamageAdjudicationActuator::DtDamageAdjudicationActuator | ( | const DtString & | name, |
| DtVrfObject * | owner, | ||
| DtSimManager * | simManager, | ||
| DtComponentDescriptor * | desc = 0, |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) |
(const DtString&,DtVrfObject*,DtSimManager*,
| name | Reader writer name of this component. |
| owner | The DtVrfObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
| virtual DtDamageAdjudicationActuator::~DtDamageAdjudicationActuator | ( | ) | [virtual] |
destructor Unregisters with the detonation manager.
Default constructor; not implemented.
| DtDamageAdjudicationActuator::DtDamageAdjudicationActuator | ( | const DtDamageAdjudicationActuator & | orig | ) | [private] |
copy constructor; not implemented
| virtual bool DtDamageAdjudicationActuator::init | ( | ) | [virtual] |
Registers callbacks with the detonation manager.
Provides the detonation manager a pointer to the component's entity ,the entity's global ID, the munition type the entity can be damaged by, and the maximum range within which this munition can cause damage to the entity. Registers 2 callbacks, one registers the entity's interest direct fire--when the entity is the intended target and the other registers for collateral fire-- detonations that are within range of the entity that might damage it be it direct or indirect fire.
Relies on the destructor or the setDestroyed callback for unregistration from the detonation manager.
Reimplemented from DtActuatorComponent.
Reimplemented in DtIndividualLifeFormDamageAdjudicationActuator, and DtMultipleHitDamageActuator.
| static bool DtDamageAdjudicationActuator::processDirectDetonationCallback | ( | const DtDetonationContext & | detonationContext, |
| void * | usr | ||
| ) | [static] |
The detonation manager uses this function to notify the actuator of when it needs to process an entity detonation for the entity.
| detonationContext | The detonation context to process |
| usr | A pointer to the damage actuator that should process the detonation context. |
| static bool DtDamageAdjudicationActuator::processCollateralDetonationCallback | ( | const DtDetonationContext & | detonationContext, |
| void * | usr | ||
| ) | [static] |
The detonation manager uses this function to notify the actuator of when it needs to process an ground detonation to determine any collateral damage for the entity.
| detonationContext | The detonation context to process |
| usr | A pointer to the damage actuator that should process the detonation context. |
| virtual bool DtDamageAdjudicationActuator::adjudicateDirectDamage | ( | const DtDetonationContext & | detonationContext | ) | [virtual] |
When a detonation context is received, from the detonation manager, it is processed in order to determine the appropriate damage to the entity.
Determines if the entity is catastrophically killed, mobility killed, and/or firepower killed. If an entity is catastrophically killed, mobility and firepower killed status are not determined as there is no point. However, an entity that is not catastrophically killed can be both firepower killed and mobility killed, or just one or the other.
Reimplemented in DtMultipleHitDamageActuator.
| virtual bool DtDamageAdjudicationActuator::adjudicateCollateralDamage | ( | const DtDetonationContext & | detonationContext | ) | [virtual] |
Determines collateral damage from an impact near the entity.
Reimplemented in DtMultipleHitDamageActuator.
| virtual DtString DtDamageAdjudicationActuator::type | ( | ) | const [virtual] |
Returns a string identifies the class type of component.
Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key.
Reimplemented from DtSimComponent.
Reimplemented in DtMultipleHitDamageActuator, and DtIndividualLifeFormDamageAdjudicationActuator.
| virtual void DtDamageAdjudicationActuator::tick | ( | ) | [virtual] |
Determines the destroyed status of the entity, and then checks to see if the flaming and smoking indicators should be turned off.
Reimplemented from DtSimComponent.
Reimplemented in DtIndividualLifeFormDamageAdjudicationActuator, and DtMultipleHitDamageActuator.
| static void DtDamageAdjudicationActuator::setDestroyedCallback | ( | DtSimMessage * | msg, |
| void * | usrData | ||
| ) | [static] |
Calls setDestroyed()
| static void DtDamageAdjudicationActuator::setRestoredCallback | ( | DtSimMessage * | msg, |
| void * | usrData | ||
| ) | [static] |
Calls setRestored()
| static DtSimComponent* DtDamageAdjudicationActuator::creator | ( | const DtString & | name, |
| DtVrfObject * | owner, | ||
| DtSimManager * | simManager, | ||
| DtComponentDescriptor * | desc = 0, |
||
| DtReaderWriterRegistry * | parentRegistry = 0 |
||
| ) | [static] |
(const DtString&,DtVrfObject*,DtSimManager*,
| name | Reader writer name of this component. |
| owner | The DtVrfObject that owns this component |
| simManager | The simulation manager (provides access to terrain, message interface, simulation clock). |
| desc | The component descriptor used to initialize this component. |
| parentRegistry | Pointer to the parent reader writer registry (the containing object that reads/writes this object). |
Reimplemented in DtMultipleHitDamageActuator, and DtIndividualLifeFormDamageAdjudicationActuator.
| virtual void DtDamageAdjudicationActuator::getDirectFireSurfaceAndAngleOfIncidence | ( | DtDetonationContext & | detonationContext | ) | [protected, virtual] |
Determines the fire surface and the angle of incidence of the detonation from a direct fire weapon and puts them in the specified detonation context.
| virtual void DtDamageAdjudicationActuator::getIndirectFireSurfaceAndAngleOfIncidence | ( | DtDetonationContext & | detonationContext | ) | [protected, virtual] |
Determines the fire surface and the angle of incidence of the detonation and puts them in the specified detonation context.
| virtual DtSymbolString DtDamageAdjudicationActuator::getSurface | ( | DtBoundingVolumeFace | impactSurface | ) | [protected, virtual] |
| virtual bool DtDamageAdjudicationActuator::getRangeEntry | ( | const DtDetonationContext & | detonationContext, |
| DtPrbRangeTableEntry & | rangeEntry, | ||
| bool | isDirectDamage = true |
||
| ) | const [protected, virtual] |
Gets the range entry from the damage component descriptor's kill probabilities.
| detonationContext | Contains all relevant information for finding the proper range entry. |
| rangeEntry | The range entry to be filled in correctly if found. |
from adjudicateDirectDamage and adjudicateCollateralDamage Passes in boolean to determine which damage table to use for the look up Default is to lookup in the direct damage file. Set to false for collateral damage file.
| virtual bool DtDamageAdjudicationActuator::isCatastrophicallyKilled | ( | DtPrbRangeTableEntry & | rangeEntry, |
| DtSymbolString | catastrophicKillString | ||
| ) | const [protected, virtual] |
Gets the probability of being catastrophically killed by the detonation from the specified range entry.
| rangeEntry | The range entry used to determine the probability. |
| catastrophicKillString | Used to look up the probability in the range entry. |
from adjudicateDirectDamage and adjudicateCollateralDamage
| virtual bool DtDamageAdjudicationActuator::isFirepowerKilled | ( | DtPrbRangeTableEntry & | rangeEntry, |
| DtSymbolString | firepowerKillString | ||
| ) | const [protected, virtual] |
Gets the probability of being firepower killed by the detonation from the specified range entry.
| rangeEntry | The range entry used to determine the probability. |
| catastrophicKillString | Used to look up the probability in the range entry. |
| virtual bool DtDamageAdjudicationActuator::isMobilityKilled | ( | DtPrbRangeTableEntry & | rangeEntry, |
| DtSymbolString | mobilityKillString | ||
| ) | const [protected, virtual] |
Gets the probability of being mobility killed by the detonation from the specified range entry.
| rangeEntry | The range entry used to determine the probability. |
| catastrophicKillString | Used to look up the probability in the range entry. |
| virtual DtSymbolString DtDamageAdjudicationActuator::catastrophicKillString | ( | ) | const [protected, virtual] |
| virtual DtSymbolString DtDamageAdjudicationActuator::mobilityKillString | ( | ) | const [protected, virtual] |
| virtual DtSymbolString DtDamageAdjudicationActuator::firepowerKillString | ( | ) | const [protected, virtual] |
| virtual void DtDamageAdjudicationActuator::determineDestroyedStatus | ( | ) | [protected, virtual] |
This function determines if anything we are attached to are occupying was destroyed (last tick).
If anything we were attached to was destroyed, then we are setDestroyed() as well. If anything we were occupying was destroyed, then 50% of the time, we are determined to be destroyed as well.
| virtual bool DtDamageAdjudicationActuator::isRegisteredForDetonations | ( | ) | const [protected, virtual] |
Keep track of whether or not we're registered for detonations direct or collateral.
| virtual void DtDamageAdjudicationActuator::setIsRegisteredForDetonations | ( | bool | yesOrNo | ) | [protected, virtual] |
Keep track of whether or not we're registered for detonations direct or collateral.
| virtual void DtDamageAdjudicationActuator::setDestroyed | ( | ) | [protected, virtual] |
Calls setDestroyed on the myLocalStateRepository.
Also calls setFlaming and setSmoking based on the parameters from the component descriptor. If the terminate-on-destroy parameter is true, the parent entity is queued for removal from the simulation. Also unregisters for detonations.
Reimplemented in DtIndividualLifeFormDamageAdjudicationActuator.
| virtual void DtDamageAdjudicationActuator::setRestored | ( | ) | [protected, virtual] |
Re-registers the entity to receive detonations since it is now restored.
| virtual bool DtDamageAdjudicationActuator::registerForDetonations | ( | ) | [protected, virtual] |
Registers the entity to receive notification of appropriate detonations and notes that the callbacks have been registered.
Registers for both direct and collateral if damage files exist for them
| virtual bool DtDamageAdjudicationActuator::unregisterForDetonations | ( | ) | [protected, virtual] |
Unregisters the entity to receive notification of appropriate detonations, and notes that the callbacks have been unregistered.
| virtual void DtDamageAdjudicationActuator::setMobilityKilled | ( | ) | [protected, virtual] |
Calls setMobilityKilled on the myLocalStateRepository.
| virtual void DtDamageAdjudicationActuator::setFirepowerKilled | ( | ) | [protected, virtual] |
Calls setFirepowerKilled on the myLocalStateRepository.
| virtual void DtDamageAdjudicationActuator::setRadio | ( | DtSimBaseRadio * | radio | ) | [protected, virtual] |
Overrides this so it can register its interest the set destroyed message.
Reimplemented from DtActuatorComponent.
| DtDamageAdjudicationActuator& DtDamageAdjudicationActuator::operator= | ( | const DtDamageAdjudicationActuator & | orig | ) | [private] |
assignment operator; not implemented
DtDamageAdjudicationComponentDescriptor* DtDamageAdjudicationActuator::myDamageComponentDescriptor [protected] |
DtTime DtDamageAdjudicationActuator::myStopSmokingTime [protected] |
DtTime DtDamageAdjudicationActuator::myStopFlamingTime [protected] |
Keep track of whether or not we've registered detonation callbacks with detonation manager.