Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
BodyModule Class Referenceabstract

#include <BodyModule.h>

Inherits BehaviorModule, and BodyModuleInterface.

Inherited by ActiveBody, and InactiveBody.

Public Member Functions

 BodyModule (Thing *thing, const ModuleData *moduleData)
 
virtual BodyModuleInterfacegetBody ()
 
virtual void attemptDamage (DamageInfo *damageInfo)=0
 
virtual void attemptHealing (DamageInfo *healingInfo)=0
 
virtual Real estimateDamage (DamageInfoInput &damageInfo) const =0
 
virtual Real getHealth () const =0
 get current health
 
virtual Real getMaxHealth () const
 return max health
 
virtual Real getPreviousHealth () const
 return previous health
 
virtual UnsignedInt getSubdualDamageHealRate () const
 
virtual Real getSubdualDamageHealAmount () const
 
virtual Bool hasAnySubdualDamage () const
 
virtual Real getCurrentSubdualDamageAmount () const
 
virtual Real getInitialHealth () const
 
virtual BodyDamageType getDamageState () const =0
 
virtual void setDamageState (BodyDamageType newState)=0
 control damage state directly. Will adjust hitpoints.
 
virtual void setAflame (Bool setting)=0
 This is a major change like a damage state.
 
virtual void onVeterancyLevelChanged (VeterancyLevel oldLevel, VeterancyLevel newLevel, Bool provideFeedback=FALSE)=0
 I just achieved this level right this moment.
 
virtual void setArmorSetFlag (ArmorSetType ast)=0
 
virtual void clearArmorSetFlag (ArmorSetType ast)=0
 
virtual Bool testArmorSetFlag (ArmorSetType ast)=0
 
virtual const DamageInfogetLastDamageInfo () const
 return info on last damage dealt to this object
 
virtual UnsignedInt getLastDamageTimestamp () const
 return frame of last damage dealt
 
virtual UnsignedInt getLastHealingTimestamp () const
 return frame of last healing dealt
 
virtual ObjectID getClearableLastAttacker () const
 
virtual void clearLastAttacker ()
 
virtual Bool getFrontCrushed () const
 
virtual Bool getBackCrushed () const
 
virtual void setInitialHealth (Int initialPercent)
 Sets the inital load health %.
 
virtual void setMaxHealth (Real maxHealth, MaxHealthChangeType healthChangeType=SAME_CURRENTHEALTH)
 Sets the max health.
 
virtual void setFrontCrushed (Bool v)
 
virtual void setBackCrushed (Bool v)
 
virtual void setIndestructible (Bool indestructible)
 
virtual Bool isIndestructible (void) const
 
virtual void applyDamageScalar (Real scalar)
 
virtual Real getDamageScalar () const
 
virtual void internalChangeHealth (Real delta)=0
 
virtual void evaluateVisualCondition ()
 
virtual void updateBodyParticleSystems ()
 
- Public Member Functions inherited from BehaviorModule
 BehaviorModule (Thing *thing, const ModuleData *moduleData)
 
virtual CollideModuleInterfacegetCollide ()
 
virtual ContainModuleInterfacegetContain ()
 
virtual CreateModuleInterfacegetCreate ()
 
virtual DamageModuleInterfacegetDamage ()
 
virtual DestroyModuleInterfacegetDestroy ()
 
virtual DieModuleInterfacegetDie ()
 
virtual SpecialPowerModuleInterfacegetSpecialPower ()
 
virtual UpdateModuleInterfacegetUpdate ()
 
virtual UpgradeModuleInterfacegetUpgrade ()
 
virtual StealthUpdategetStealth ()
 
virtual SpyVisionUpdategetSpyVisionUpdate ()
 
virtual ParkingPlaceBehaviorInterfacegetParkingPlaceBehaviorInterface ()
 
virtual RebuildHoleBehaviorInterfacegetRebuildHoleBehaviorInterface ()
 
virtual BridgeBehaviorInterfacegetBridgeBehaviorInterface ()
 
virtual BridgeTowerBehaviorInterfacegetBridgeTowerBehaviorInterface ()
 
virtual BridgeScaffoldBehaviorInterfacegetBridgeScaffoldBehaviorInterface ()
 
virtual OverchargeBehaviorInterfacegetOverchargeBehaviorInterface ()
 
virtual TransportPassengerInterfacegetTransportPassengerInterface ()
 
virtual CaveInterfacegetCaveInterface ()
 
virtual LandMineInterfacegetLandMineInterface ()
 
virtual DieModuleInterfacegetEjectPilotDieInterface ()
 
virtual ProjectileUpdateInterfacegetProjectileUpdateInterface ()
 
virtual AIUpdateInterfacegetAIUpdateInterface ()
 
virtual ExitInterfacegetUpdateExitInterface ()
 
virtual DockUpdateInterfacegetDockUpdateInterface ()
 
virtual RailedTransportDockUpdateInterfacegetRailedTransportDockUpdateInterface (void)
 
virtual SlowDeathBehaviorInterfacegetSlowDeathBehaviorInterface ()
 
virtual SpecialPowerUpdateInterfacegetSpecialPowerUpdateInterface ()
 
virtual SlavedUpdateInterfacegetSlavedUpdateInterface ()
 
virtual ProductionUpdateInterfacegetProductionUpdateInterface ()
 
virtual HordeUpdateInterfacegetHordeUpdateInterface ()
 
virtual PowerPlantUpdateInterfacegetPowerPlantUpdateInterface ()
 
virtual SpawnBehaviorInterfacegetSpawnBehaviorInterface ()
 
virtual CountermeasuresBehaviorInterfacegetCountermeasuresBehaviorInterface ()
 
virtual const CountermeasuresBehaviorInterfacegetCountermeasuresBehaviorInterface () const
 
- Public Member Functions inherited from ObjectModule
 ObjectModule (Thing *thing, const ModuleData *moduleData)
 < this abstract class needs memory pool hooks
 
virtual void onCapture (Player *oldOwner, Player *newOwner)
 
virtual void onDisabledEdge (Bool nowDisabled)
 
- Public Member Functions inherited from Module
 Module (const ModuleData *moduleData)
 < this abstract class needs memory pool hooks
 
virtual NameKeyType getModuleNameKey () const =0
 
NameKeyType getModuleTagNameKey () const
 
virtual void onObjectCreated ()
 
virtual void onDrawableBoundToObject ()
 
virtual void preloadAssets (TimeOfDay timeOfDay)
 preload any assets we might have for this time of day
 
virtual void onDelete (void)
 
- Public Member Functions inherited from MemoryPoolObject
void deleteInstance ()
 
- Public Member Functions inherited from Snapshot
 Snapshot (void)
 
 ~Snapshot (void)
 

Static Public Member Functions

static Int getInterfaceMask ()
 
- Static Public Member Functions inherited from BehaviorModule
static Int getInterfaceMask ()
 
static ModuleType getModuleType ()
 
- Static Public Member Functions inherited from Module
static ModuleDatafriend_newModuleData (INI *ini)
 

Protected Member Functions

virtual void crc (Xfer *xfer)
 
virtual void xfer (Xfer *xfer)
 
virtual void loadPostProcess (void)
 
- Protected Member Functions inherited from ObjectModule
ObjectgetObject ()
 
const ObjectgetObject () const
 
- Protected Member Functions inherited from Module
const ModuleDatagetModuleData () const
 
- Protected Member Functions inherited from MemoryPoolObject
virtual ~MemoryPoolObject ()
 
void * operator new (size_t s)
 
void operator delete (void *p)
 
virtual MemoryPoolgetObjectMemoryPool ()=0
 

Protected Attributes

Real m_damageScalar
 

Detailed Description

Definition at line 202 of file BodyModule.h.

Constructor & Destructor Documentation

◆ BodyModule()

BodyModule::BodyModule ( Thing * thing,
const ModuleData * moduleData )
inline

Definition at line 305 of file BodyModule.h.

Member Function Documentation

◆ applyDamageScalar()

virtual void BodyModule::applyDamageScalar ( Real scalar)
inlinevirtual

Implements BodyModuleInterface.

Definition at line 280 of file BodyModule.h.

◆ attemptDamage()

virtual void BodyModule::attemptDamage ( DamageInfo * damageInfo)
pure virtual

Try to damage this Object. The module's Armor will be taken into account, so the actual damage done may vary considerably from what you requested. Also note that (if damage is done) the DamageFX will be invoked to provide a/v fx as appropriate.

Implements BodyModuleInterface.

Implemented in ActiveBody, HighlanderBody, HiveStructureBody, InactiveBody, and UndeadBody.

◆ attemptHealing()

virtual void BodyModule::attemptHealing ( DamageInfo * healingInfo)
pure virtual

Instead of having negative damage count as healing, or allowing access to the private changeHealth Method, we will use this parallel to attemptDamage to do healing without hack.

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ clearArmorSetFlag()

virtual void BodyModule::clearArmorSetFlag ( ArmorSetType ast)
pure virtual

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ clearLastAttacker()

virtual void BodyModule::clearLastAttacker ( )
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 265 of file BodyModule.h.

◆ crc()

void BodyModule::crc ( Xfer * xfer)
protectedvirtual

CRC

Reimplemented from BehaviorModule.

Definition at line 38 of file BodyModule.cpp.

◆ estimateDamage()

virtual Real BodyModule::estimateDamage ( DamageInfoInput & damageInfo) const
pure virtual

Estimate the (unclipped) damage that would be done to this object by the given damage (taking bonuses, armor, etc into account), but DO NOT alter the body in any way. (This is used by the AI system to choose weapons.)

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ evaluateVisualCondition()

virtual void BodyModule::evaluateVisualCondition ( )
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 292 of file BodyModule.h.

◆ getBackCrushed()

virtual Bool BodyModule::getBackCrushed ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 267 of file BodyModule.h.

◆ getBody()

virtual BodyModuleInterface * BodyModule::getBody ( )
inlinevirtual

Reimplemented from BehaviorModule.

Definition at line 215 of file BodyModule.h.

◆ getClearableLastAttacker()

virtual ObjectID BodyModule::getClearableLastAttacker ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 264 of file BodyModule.h.

◆ getCurrentSubdualDamageAmount()

virtual Real BodyModule::getCurrentSubdualDamageAmount ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 247 of file BodyModule.h.

◆ getDamageScalar()

virtual Real BodyModule::getDamageScalar ( ) const
inlinevirtual

Implements BodyModuleInterface.

Definition at line 281 of file BodyModule.h.

◆ getDamageState()

virtual BodyDamageType BodyModule::getDamageState ( ) const
pure virtual

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ getFrontCrushed()

virtual Bool BodyModule::getFrontCrushed ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 266 of file BodyModule.h.

◆ getHealth()

virtual Real BodyModule::getHealth ( ) const
pure virtual

get current health

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ getInitialHealth()

virtual Real BodyModule::getInitialHealth ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 249 of file BodyModule.h.

◆ getInterfaceMask()

static Int BodyModule::getInterfaceMask ( )
inlinestatic

Definition at line 212 of file BodyModule.h.

◆ getLastDamageInfo()

virtual const DamageInfo * BodyModule::getLastDamageInfo ( ) const
inlinevirtual

return info on last damage dealt to this object

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 261 of file BodyModule.h.

◆ getLastDamageTimestamp()

virtual UnsignedInt BodyModule::getLastDamageTimestamp ( ) const
inlinevirtual

return frame of last damage dealt

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 262 of file BodyModule.h.

◆ getLastHealingTimestamp()

virtual UnsignedInt BodyModule::getLastHealingTimestamp ( ) const
inlinevirtual

return frame of last healing dealt

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 263 of file BodyModule.h.

◆ getMaxHealth()

virtual Real BodyModule::getMaxHealth ( ) const
inlinevirtual

return max health

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 241 of file BodyModule.h.

◆ getPreviousHealth()

virtual Real BodyModule::getPreviousHealth ( ) const
inlinevirtual

return previous health

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 242 of file BodyModule.h.

◆ getSubdualDamageHealAmount()

virtual Real BodyModule::getSubdualDamageHealAmount ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 245 of file BodyModule.h.

◆ getSubdualDamageHealRate()

virtual UnsignedInt BodyModule::getSubdualDamageHealRate ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 244 of file BodyModule.h.

◆ hasAnySubdualDamage()

virtual Bool BodyModule::hasAnySubdualDamage ( ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 246 of file BodyModule.h.

◆ internalChangeHealth()

virtual void BodyModule::internalChangeHealth ( Real delta)
pure virtual

Change the module's health by the given delta. Note that the module's DamageFX and Armor are NOT taken into account, so you should think about what you're bypassing when you call this directly (especially when when decreasing health, since you probably want "attemptDamage" or "attemptHealing")

Implements BodyModuleInterface.

Implemented in ActiveBody, ImmortalBody, and InactiveBody.

◆ isIndestructible()

virtual Bool BodyModule::isIndestructible ( void ) const
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 277 of file BodyModule.h.

◆ loadPostProcess()

void BodyModule::loadPostProcess ( void )
protectedvirtual

Load post process

Reimplemented from BehaviorModule.

Definition at line 70 of file BodyModule.cpp.

◆ onVeterancyLevelChanged()

virtual void BodyModule::onVeterancyLevelChanged ( VeterancyLevel oldLevel,
VeterancyLevel newLevel,
Bool provideFeedback = FALSE )
pure virtual

I just achieved this level right this moment.

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ setAflame()

virtual void BodyModule::setAflame ( Bool setting)
pure virtual

This is a major change like a damage state.

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ setArmorSetFlag()

virtual void BodyModule::setArmorSetFlag ( ArmorSetType ast)
pure virtual

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ setBackCrushed()

virtual void BodyModule::setBackCrushed ( Bool v)
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 273 of file BodyModule.h.

◆ setDamageState()

virtual void BodyModule::setDamageState ( BodyDamageType newState)
pure virtual

control damage state directly. Will adjust hitpoints.

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ setFrontCrushed()

virtual void BodyModule::setFrontCrushed ( Bool v)
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 272 of file BodyModule.h.

◆ setIndestructible()

virtual void BodyModule::setIndestructible ( Bool indestructible)
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 276 of file BodyModule.h.

◆ setInitialHealth()

virtual void BodyModule::setInitialHealth ( Int initialPercent)
inlinevirtual

Sets the inital load health %.

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 269 of file BodyModule.h.

◆ setMaxHealth()

virtual void BodyModule::setMaxHealth ( Real maxHealth,
MaxHealthChangeType healthChangeType = SAME_CURRENTHEALTH )
inlinevirtual

Sets the max health.

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 270 of file BodyModule.h.

◆ testArmorSetFlag()

virtual Bool BodyModule::testArmorSetFlag ( ArmorSetType ast)
pure virtual

Implements BodyModuleInterface.

Implemented in ActiveBody, and InactiveBody.

◆ updateBodyParticleSystems()

virtual void BodyModule::updateBodyParticleSystems ( void )
inlinevirtual

Implements BodyModuleInterface.

Reimplemented in ActiveBody.

Definition at line 293 of file BodyModule.h.

◆ xfer()

void BodyModule::xfer ( Xfer * xfer)
protectedvirtual

Xfer Method Version Info: 1: Initial version

Reimplemented from BehaviorModule.

Definition at line 51 of file BodyModule.cpp.

Member Data Documentation

◆ m_damageScalar

Real BodyModule::m_damageScalar
protected

Definition at line 302 of file BodyModule.h.


The documentation for this class was generated from the following files: