ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

WarheadTypeClass

From ModEnc
Revision as of 08:28, 16 June 2007 by Pd (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The WarheadTypeClass represents Warheads.

Class specifications

Property Value
General:
Derivation AbstractClassAbstractTypeClass → WarheadTypeClass
GUID {A8C54DA4-0F7B-11D2-8172-006008055BB5}
VT address (YR 1.001) 0x7F6B30
Size of member data (YR 1.001) 0x1CC bytes
AbstractClass derivative:
AbstractDerivationID 0x32


Member variables

Offset Type Name Description
AbstractClass:
0x0 ptr VirtualTable Pointer to the class's Virtual Table
0x4 ptr IRTTITypeInfo VTable Pointer to an extended VTable (not sure what exactly it does)
0x8 ptr INoticeSink VTable Pointer to an extended VTable (not sure what exactly it does)
0xC ptr INoticeSource VTable Pointer to an extended VTable (not sure what exactly it does)
0x10 DWORD unknown
0x14 DWORD DerivationFlags Bit 0: set if the instance is or derives from a TechnoClass
Bit 1: set if the instance is or derives from a ObjectClass
Bit 2: set if the instance is or derives from a FootClass
0x18 DWORD unknown
0x1C DWORD unknown
0x20 bool Dirty Was the object changed since it was last saved?
0x21 BYTE unused
0x22 WORD unused
AbstractTypeClass:
0x24 char[0x18] ID The INI name of this type (for example: SMCV).
0x3C BYTE reserved Zero-termination of the ID.
0x3D char[0x20] UIName Stringtable reference given by the UIName tag.
0x5D BYTE reserved Zero-termination of the UIName.
0x5E WORD unused
0x60 wchar* UIName Pointer to the UIName unicode string inside the stringtable.
0x64 char[0x31] Name Name given by the Name tag.
0x95 BYTE reserved Zero-termination of the Name.
0x96 WORD unused
WarheadTypeClass:
0x98 double Deform
0xA0 double Verses - None
0xA8 double Verses - Flak
0xB0 double Verses - Plate
0xB8 double Verses - Light
0xC0 double Verses - Medium
0xC8 double Verses - Heavy
0xD0 double Verses - Wood
0xD8 double Verses - Steel
0xE0 double Verses - Concrete
0xE8 double Verses - Special_1
0xF0 double Verses - Special_2
0xF8 double ProneDamage
0x100 int DeformThreshhold
0x104 vector<AnimTypeClass*> AnimList
0x120 int InfDeath
0x124 float CellSpread
0x128 float CellInset
0x12C float PercentAtMax
0x130 bool CausesDelayKill
0x134 int DelayKillFrames
0x138 float DelayKillAtMax
0x13C float CombatLightSize
0x140 ParticleTypeClass* Particle
0x144 bool Wall
0x145 bool WallAbsoluteDestroyer
0x146 bool PenetratesBunker
0x147 bool Wood
0x148 bool Tiberium
0x149 bool unknown This will be set to true if either Versus Medium or Verses Wood is greater than zero.
0x14A bool Sparky
0x14B bool Sonic
0x14C bool Fire
0x14D bool Conventional
0x14E bool Rocker
0x14F bool DirectRocker
0x150 bool Bright
0x151 bool CLDisableRed
0x152 bool CLDisableGreen
0x153 bool CLDisableBlue
0x154 bool EMEffect
0x155 bool MindControl
0x156 bool Poison
0x157 bool IvanBomb
0x158 bool ElectricAssault
0x159 bool Parasite
0x15A bool Temporal
0x15B bool IsLocomotor
0x15C CLSID Locomotor
0x16C bool Airstrike
0x16D bool Psychedelic
0x16E bool BombDisarm
0x170 int Paralyzes
0x174 bool Culling
0x175 bool MakesDisguise
0x176 bool NukeMaker
0x177 bool Radiation
0x178 bool PsychicDamage
0x179 bool AffectsAllies
0x17A bool Bullets
0x17B bool Veinhole
0x17C int ShakeXlo
0x180 int ShakeXhi
0x184 int ShakeYlo
0x188 int ShakeYhi
0x18C vector<VoxelAnimTypeClass*> DebrisTypes
0x1A8 vector<int> DebrisMaximums
0x1C4 int MaxDebris
0x1C8 int MinDebris
AbstractClass - Member Variables
AbstractTypeClass - Member Variables
WarheadTypeClass - Member Variables

Virtual Table

Offset Return Type Name Arguments Description
IUnknown:
0x0 HRESULT QueryInterface REFIID iid
void ** ppvObject
MSDN:
"Returns a pointer to a specified interface on an object to which a client currently holds an interface pointer."
0x4 ULONG AddRef none MSDN:
"[...] increments the reference count for an interface on an object. It should be called for every new copy of a pointer to an interface on a given object."
0x8 ULONG Release none MSDN:
"Decrements the reference count for the calling interface on a object. If the reference count on the object falls to 0, the object is freed from memory."
IPersist:
0xC HRESULT GetClassID CLSID * pClassID MSDN:
"Retrieves the class identifier (CLSID) of an object. The CLSID is a unique value that identifies the code that can manipulate the persistent data."
IPersistStream:
0x10 HRESULT IsDirty none MSDN:
"Checks the object for changes since it was last saved."
0x14 HRESULT Load IStream* stream
AbstractClass* dst
MSDN:
"Initializes an object from the stream where it was previously saved."
0x18 HRESULT Save IStream* stream
AbstractClass* src
(3rd is unknown)
MSDN:
"Saves an object to the specified stream."
0x1C HRESULT GetMaxSize ULARGE_INTEGER * pcbSize MSDN:
"Returns the size in bytes of the stream needed to save the object."
AbstractClass:
0x20 none (DTOR) Destructor none Frees memory and removes this instance from global arrays.
0x24 unknown unknown unknown
0x28 unknown unknown unknown
0x2C int GetAbstractDerivationID none Gets the AbstractDerivationID of this class.
Used to find out "what something is".
0x30 int GetSize none Gets the size of the member data.
0x34 unsigned long GetCRC unknown Calculates a CRC sum of this instance.
0x38 int GetOwningHouseIndex none Gets the index of the House (player) who owns this object.
0x3C HouseClass* GetOwningHouse none Gets a pointer to the House (player) who owns this object.
0x40 int GetArrayIndex none Gets the index of this class instance in the global array.
This will return 0 for abstract classes.
0x44 bool IsDead none Finds out whether this instance is dead.
This is only used for "living" objects with a health.
0x48 void Get3DCoords int* dst_xyz Loads 3D coordinates into dst_xyz.
0x4C void Get3DCoords_var int* dst_xyz Loads 3D coordinates into variables, then into dst_xyz.
This method is obsolete (use 0x48).
0x50 unknown unknown unknown
0x54 unknown unknown unknown
0x58 unknown unknown unknown
0x5C void AdvanceFrame none This is an updating routine, called every frame.
AbstractTypeClass:
0x60 unknown unknown unknown
0x64 bool LoadFromINI CCINIClass* ini Initializes the type based on the INI file section ID.
0x68 bool SaveToINI CCINIClass* ini Saves this type to an INI file.
AbstractClass - Virtual Table
AbstractTypeClass - Virtual Table

Member functions

Address (YR 1.001) Return Type Name Arguments Description
0x75CEC0 ptr (CTOR) Constructor char* ID Creates an instance and initializes it.