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

#include <Weapon.h>

Inherits MemoryPoolObject.

Public Member Functions

 WeaponTemplate ()
 
void reset (void)
 
void friend_setNextTemplate (WeaponTemplate *nextTemplate)
 
WeaponTemplatefriend_clearNextTemplate (void)
 
Bool isOverride (void)
 
const FieldParsegetFieldParse () const
 field table for loading the values from an INI
 
UnsignedInt fireWeaponTemplate (const Object *sourceObj, WeaponSlotType wslot, Int specificBarrelToUse, Object *victimObj, const Coord3D *victimPos, const WeaponBonus &bonus, Bool isProjectileDetonation, Bool ignoreRanges, Weapon *firingWeapon, ObjectID *projectileID, Bool inflictDamage) const
 
Real estimateWeaponTemplateDamage (const Object *sourceObj, const Object *victimObj, const Coord3D *victimPos, const WeaponBonus &bonus) const
 
Real getAttackRange (const WeaponBonus &bonus) const
 
Real getUnmodifiedAttackRange () const
 
Real getMinimumAttackRange () const
 
Int getDelayBetweenShots (const WeaponBonus &bonus) const
 
Int getClipReloadTime (const WeaponBonus &bonus) const
 
Real getPrimaryDamage (const WeaponBonus &bonus) const
 
Real getPrimaryDamageRadius (const WeaponBonus &bonus) const
 
Real getSecondaryDamage (const WeaponBonus &bonus) const
 
Real getSecondaryDamageRadius (const WeaponBonus &bonus) const
 
Int getPreAttackDelay (const WeaponBonus &bonus) const
 
Bool isContactWeapon () const
 
Real getShockWaveAmount () const
 
Real getShockWaveRadius () const
 
Real getShockWaveTaperOff () const
 
Real getRequestAssistRange () const
 
AsciiString getName () const
 
AsciiString getProjectileStreamName () const
 
AsciiString getLaserName () const
 
const AsciiStringgetLaserBoneName () const
 
NameKeyType getNameKey () const
 
Real getWeaponSpeed () const
 
Real getMinWeaponSpeed () const
 
Bool isScaleWeaponSpeed () const
 
Real getWeaponRecoilAmount () const
 
Real getMinTargetPitch () const
 
Real getMaxTargetPitch () const
 
Real getRadiusDamageAngle () const
 
DamageType getDamageType () const
 
ObjectStatusTypes getDamageStatusType () const
 
DeathType getDeathType () const
 
Real getContinueAttackRange () const
 
Real getInfantryInaccuracyDist () const
 
Real getAimDelta () const
 
Real getScatterRadius () const
 
Real getScatterTargetScalar () const
 
const ThingTemplategetProjectileTemplate () const
 
Bool getDamageDealtAtSelfPosition () const
 
Int getAffectsMask () const
 
Int getProjectileCollideMask () const
 
WeaponReloadType getReloadType () const
 
WeaponPrefireType getPrefireType () const
 
Bool getAutoReloadsClip () const
 
Int getClipSize () const
 
Int getContinuousFireOneShotsNeeded () const
 
Int getContinuousFireTwoShotsNeeded () const
 
UnsignedInt getContinuousFireCoastFrames () const
 
UnsignedInt getAutoReloadWhenIdleFrames () const
 
UnsignedInt getSuspendFXDelay () const
 
const FXListgetFireFX (VeterancyLevel v) const
 
const FXListgetProjectileDetonateFX (VeterancyLevel v) const
 
const ObjectCreationListgetFireOCL (VeterancyLevel v) const
 
const ObjectCreationListgetProjectileDetonationOCL (VeterancyLevel v) const
 
const ParticleSystemTemplategetProjectileExhaust (VeterancyLevel v) const
 
const AudioEventRTSgetFireSound () const
 
UnsignedInt getFireSoundLoopTime () const
 
const std::vector< Coord2D > & getScatterTargetsVector () const
 
const WeaponBonusSetgetExtraBonus () const
 
Int getShotsPerBarrel () const
 
Int getAntiMask () const
 
Bool isLeechRangeWeapon () const
 
Bool isCapableOfFollowingWaypoint () const
 
Bool isShowsAmmoPips () const
 
Bool isPlayFXWhenStealthed () const
 
Bool getDieOnDetonate () const
 
Bool shouldProjectileCollideWith (const Object *projectileLauncher, const Object *projectile, const Object *thingWeCollidedWith, ObjectID intendedVictimID) const
 
void postProcessLoad ()
 
- Public Member Functions inherited from MemoryPoolObject
void deleteInstance ()
 

Protected Member Functions

void dealDamageInternal (ObjectID sourceID, ObjectID victimID, const Coord3D *pos, const WeaponBonus &bonus, Bool isProjectileDetonation) const
 
void trimOldHistoricDamage () const
 
- Protected Member Functions inherited from MemoryPoolObject
virtual ~MemoryPoolObject ()
 
void * operator new (size_t s)
 
void operator delete (void *p)
 
virtual MemoryPoolgetObjectMemoryPool ()=0
 

Friends

class WeaponStore
 

Detailed Description

Definition at line 338 of file Weapon.h.

Constructor & Destructor Documentation

◆ WeaponTemplate()

WeaponTemplate::WeaponTemplate ( )

Definition at line 255 of file Weapon.cpp.

Member Function Documentation

◆ dealDamageInternal()

void WeaponTemplate::dealDamageInternal ( ObjectID sourceID,
ObjectID victimID,
const Coord3D * pos,
const WeaponBonus & bonus,
Bool isProjectileDetonation ) const
protected
Todo
We need to rewrite the historic stuff ... if you fire 5 missiles, and the 5th, one creates a firestorm ... and then half a second later another volley of 5 missiles come in, the second wave of 5 missiles would all do a historic weapon, making 5 more firestorms (CBD)
Todo
E3 hack! Clear the list for now to make sure we don't have multiple firestorms remove this when the branches merge back into one. What is causing the multiple firestorms, who is to say ... this is a plug, not a fix!

Definition at line 1221 of file Weapon.cpp.

◆ estimateWeaponTemplateDamage()

Real WeaponTemplate::estimateWeaponTemplateDamage ( const Object * sourceObj,
const Object * victimObj,
const Coord3D * victimPos,
const WeaponBonus & bonus ) const

return the estimate damage that would be done to the given target, taking bonuses, armor, etc into account. (this isn't guaranteed to be 100% accurate; it is intended to be used to decide which weapon should be used when a unit has multiple weapons.) Note that it DOES NOT take weapon range into account – it ASSUMES that the victim is within range!

Definition at line 570 of file Weapon.cpp.

◆ fireWeaponTemplate()

UnsignedInt WeaponTemplate::fireWeaponTemplate ( const Object * sourceObj,
WeaponSlotType wslot,
Int specificBarrelToUse,
Object * victimObj,
const Coord3D * victimPos,
const WeaponBonus & bonus,
Bool isProjectileDetonation,
Bool ignoreRanges,
Weapon * firingWeapon,
ObjectID * projectileID,
Bool inflictDamage ) const

fire the weapon. return the logic-frame in which the damage will be dealt.

If the damage will be determined at an indeterminate later date (eg, via Projectile), or will never be dealt (eg, target was out of range), return zero.

You may not pass null for source or target.

Definition at line 762 of file Weapon.cpp.

◆ friend_clearNextTemplate()

WeaponTemplate * WeaponTemplate::friend_clearNextTemplate ( void )
inline

Definition at line 352 of file Weapon.h.

◆ friend_setNextTemplate()

void WeaponTemplate::friend_setNextTemplate ( WeaponTemplate * nextTemplate)
inline

Definition at line 351 of file Weapon.h.

◆ getAffectsMask()

Int WeaponTemplate::getAffectsMask ( ) const
inline

Definition at line 433 of file Weapon.h.

◆ getAimDelta()

Real WeaponTemplate::getAimDelta ( ) const
inline

Definition at line 428 of file Weapon.h.

◆ getAntiMask()

Int WeaponTemplate::getAntiMask ( ) const
inline

Definition at line 456 of file Weapon.h.

◆ getAttackRange()

Real WeaponTemplate::getAttackRange ( const WeaponBonus & bonus) const

Definition at line 461 of file Weapon.cpp.

◆ getAutoReloadsClip()

Bool WeaponTemplate::getAutoReloadsClip ( ) const
inline

Definition at line 437 of file Weapon.h.

◆ getAutoReloadWhenIdleFrames()

UnsignedInt WeaponTemplate::getAutoReloadWhenIdleFrames ( ) const
inline

Definition at line 442 of file Weapon.h.

◆ getClipReloadTime()

Int WeaponTemplate::getClipReloadTime ( const WeaponBonus & bonus) const

Definition at line 517 of file Weapon.cpp.

◆ getClipSize()

Int WeaponTemplate::getClipSize ( ) const
inline

Definition at line 438 of file Weapon.h.

◆ getContinueAttackRange()

Real WeaponTemplate::getContinueAttackRange ( ) const
inline

Definition at line 426 of file Weapon.h.

◆ getContinuousFireCoastFrames()

UnsignedInt WeaponTemplate::getContinuousFireCoastFrames ( ) const
inline

Definition at line 441 of file Weapon.h.

◆ getContinuousFireOneShotsNeeded()

Int WeaponTemplate::getContinuousFireOneShotsNeeded ( ) const
inline

Definition at line 439 of file Weapon.h.

◆ getContinuousFireTwoShotsNeeded()

Int WeaponTemplate::getContinuousFireTwoShotsNeeded ( ) const
inline

Definition at line 440 of file Weapon.h.

◆ getDamageDealtAtSelfPosition()

Bool WeaponTemplate::getDamageDealtAtSelfPosition ( ) const
inline

Definition at line 432 of file Weapon.h.

◆ getDamageStatusType()

ObjectStatusTypes WeaponTemplate::getDamageStatusType ( ) const
inline

Definition at line 424 of file Weapon.h.

◆ getDamageType()

DamageType WeaponTemplate::getDamageType ( ) const
inline

Definition at line 423 of file Weapon.h.

◆ getDeathType()

DeathType WeaponTemplate::getDeathType ( ) const
inline

Definition at line 425 of file Weapon.h.

◆ getDelayBetweenShots()

Int WeaponTemplate::getDelayBetweenShots ( const WeaponBonus & bonus) const

Definition at line 499 of file Weapon.cpp.

◆ getDieOnDetonate()

Bool WeaponTemplate::getDieOnDetonate ( ) const
inline

Definition at line 461 of file Weapon.h.

◆ getExtraBonus()

const WeaponBonusSet * WeaponTemplate::getExtraBonus ( ) const
inline

Definition at line 454 of file Weapon.h.

◆ getFieldParse()

const FieldParse * WeaponTemplate::getFieldParse ( ) const
inline

field table for loading the values from an INI

Definition at line 356 of file Weapon.h.

◆ getFireFX()

const FXList * WeaponTemplate::getFireFX ( VeterancyLevel v) const
inline

Definition at line 445 of file Weapon.h.

◆ getFireOCL()

const ObjectCreationList * WeaponTemplate::getFireOCL ( VeterancyLevel v) const
inline

Definition at line 447 of file Weapon.h.

◆ getFireSound()

const AudioEventRTS & WeaponTemplate::getFireSound ( ) const
inline

Definition at line 451 of file Weapon.h.

◆ getFireSoundLoopTime()

UnsignedInt WeaponTemplate::getFireSoundLoopTime ( ) const
inline

Definition at line 452 of file Weapon.h.

◆ getInfantryInaccuracyDist()

Real WeaponTemplate::getInfantryInaccuracyDist ( ) const
inline

Definition at line 427 of file Weapon.h.

◆ getLaserBoneName()

const AsciiString & WeaponTemplate::getLaserBoneName ( ) const
inline

Definition at line 414 of file Weapon.h.

◆ getLaserName()

AsciiString WeaponTemplate::getLaserName ( ) const
inline

Definition at line 413 of file Weapon.h.

◆ getMaxTargetPitch()

Real WeaponTemplate::getMaxTargetPitch ( ) const
inline

Definition at line 421 of file Weapon.h.

◆ getMinimumAttackRange()

Real WeaponTemplate::getMinimumAttackRange ( ) const

Definition at line 478 of file Weapon.cpp.

◆ getMinTargetPitch()

Real WeaponTemplate::getMinTargetPitch ( ) const
inline

Definition at line 420 of file Weapon.h.

◆ getMinWeaponSpeed()

Real WeaponTemplate::getMinWeaponSpeed ( ) const
inline

Definition at line 417 of file Weapon.h.

◆ getName()

AsciiString WeaponTemplate::getName ( ) const
inline

Definition at line 411 of file Weapon.h.

◆ getNameKey()

NameKeyType WeaponTemplate::getNameKey ( ) const
inline

Definition at line 415 of file Weapon.h.

◆ getPreAttackDelay()

Int WeaponTemplate::getPreAttackDelay ( const WeaponBonus & bonus) const

Definition at line 525 of file Weapon.cpp.

◆ getPrefireType()

WeaponPrefireType WeaponTemplate::getPrefireType ( ) const
inline

Definition at line 436 of file Weapon.h.

◆ getPrimaryDamage()

Real WeaponTemplate::getPrimaryDamage ( const WeaponBonus & bonus) const

Definition at line 531 of file Weapon.cpp.

◆ getPrimaryDamageRadius()

Real WeaponTemplate::getPrimaryDamageRadius ( const WeaponBonus & bonus) const

Definition at line 537 of file Weapon.cpp.

◆ getProjectileCollideMask()

Int WeaponTemplate::getProjectileCollideMask ( ) const
inline

Definition at line 434 of file Weapon.h.

◆ getProjectileDetonateFX()

const FXList * WeaponTemplate::getProjectileDetonateFX ( VeterancyLevel v) const
inline

Definition at line 446 of file Weapon.h.

◆ getProjectileDetonationOCL()

const ObjectCreationList * WeaponTemplate::getProjectileDetonationOCL ( VeterancyLevel v) const
inline

Definition at line 448 of file Weapon.h.

◆ getProjectileExhaust()

const ParticleSystemTemplate * WeaponTemplate::getProjectileExhaust ( VeterancyLevel v) const
inline

Definition at line 449 of file Weapon.h.

◆ getProjectileStreamName()

AsciiString WeaponTemplate::getProjectileStreamName ( ) const
inline

Definition at line 412 of file Weapon.h.

◆ getProjectileTemplate()

const ThingTemplate * WeaponTemplate::getProjectileTemplate ( ) const
inline

Definition at line 431 of file Weapon.h.

◆ getRadiusDamageAngle()

Real WeaponTemplate::getRadiusDamageAngle ( ) const
inline

Definition at line 422 of file Weapon.h.

◆ getReloadType()

WeaponReloadType WeaponTemplate::getReloadType ( ) const
inline

Definition at line 435 of file Weapon.h.

◆ getRequestAssistRange()

Real WeaponTemplate::getRequestAssistRange ( ) const
inline

Definition at line 410 of file Weapon.h.

◆ getScatterRadius()

Real WeaponTemplate::getScatterRadius ( ) const
inline

Definition at line 429 of file Weapon.h.

◆ getScatterTargetScalar()

Real WeaponTemplate::getScatterTargetScalar ( ) const
inline

Definition at line 430 of file Weapon.h.

◆ getScatterTargetsVector()

const std::vector< Coord2D > & WeaponTemplate::getScatterTargetsVector ( ) const
inline

Definition at line 453 of file Weapon.h.

◆ getSecondaryDamage()

Real WeaponTemplate::getSecondaryDamage ( const WeaponBonus & bonus) const

Definition at line 543 of file Weapon.cpp.

◆ getSecondaryDamageRadius()

Real WeaponTemplate::getSecondaryDamageRadius ( const WeaponBonus & bonus) const

Definition at line 549 of file Weapon.cpp.

◆ getShockWaveAmount()

Real WeaponTemplate::getShockWaveAmount ( ) const
inline

Definition at line 406 of file Weapon.h.

◆ getShockWaveRadius()

Real WeaponTemplate::getShockWaveRadius ( ) const
inline

Definition at line 407 of file Weapon.h.

◆ getShockWaveTaperOff()

Real WeaponTemplate::getShockWaveTaperOff ( ) const
inline

Definition at line 408 of file Weapon.h.

◆ getShotsPerBarrel()

Int WeaponTemplate::getShotsPerBarrel ( ) const
inline

Definition at line 455 of file Weapon.h.

◆ getSuspendFXDelay()

UnsignedInt WeaponTemplate::getSuspendFXDelay ( ) const
inline

Definition at line 443 of file Weapon.h.

◆ getUnmodifiedAttackRange()

Real WeaponTemplate::getUnmodifiedAttackRange ( ) const

Definition at line 493 of file Weapon.cpp.

◆ getWeaponRecoilAmount()

Real WeaponTemplate::getWeaponRecoilAmount ( ) const
inline

Definition at line 419 of file Weapon.h.

◆ getWeaponSpeed()

Real WeaponTemplate::getWeaponSpeed ( ) const
inline

Definition at line 416 of file Weapon.h.

◆ isCapableOfFollowingWaypoint()

Bool WeaponTemplate::isCapableOfFollowingWaypoint ( ) const
inline

Definition at line 458 of file Weapon.h.

◆ isContactWeapon()

Bool WeaponTemplate::isContactWeapon ( ) const

Definition at line 555 of file Weapon.cpp.

◆ isLeechRangeWeapon()

Bool WeaponTemplate::isLeechRangeWeapon ( ) const
inline

Definition at line 457 of file Weapon.h.

◆ isOverride()

Bool WeaponTemplate::isOverride ( void )
inline

Definition at line 353 of file Weapon.h.

◆ isPlayFXWhenStealthed()

Bool WeaponTemplate::isPlayFXWhenStealthed ( ) const
inline

Definition at line 460 of file Weapon.h.

◆ isScaleWeaponSpeed()

Bool WeaponTemplate::isScaleWeaponSpeed ( ) const
inline

Definition at line 418 of file Weapon.h.

◆ isShowsAmmoPips()

Bool WeaponTemplate::isShowsAmmoPips ( ) const
inline

Definition at line 459 of file Weapon.h.

◆ postProcessLoad()

void WeaponTemplate::postProcessLoad ( )

Definition at line 413 of file Weapon.cpp.

◆ reset()

void WeaponTemplate::reset ( void )

Definition at line 345 of file Weapon.cpp.

◆ shouldProjectileCollideWith()

Bool WeaponTemplate::shouldProjectileCollideWith ( const Object * projectileLauncher,
const Object * projectile,
const Object * thingWeCollidedWith,
ObjectID intendedVictimID ) const

Definition at line 666 of file Weapon.cpp.

◆ trimOldHistoricDamage()

void WeaponTemplate::trimOldHistoricDamage ( ) const
protected

Definition at line 1193 of file Weapon.cpp.

Friends And Related Symbol Documentation

◆ WeaponStore

friend class WeaponStore
friend

Definition at line 340 of file Weapon.h.


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