ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.
WarheadTypeClass
Jump to navigation
Jump to search
The WarheadTypeClass represents Warheads.
Class specifications
| Property | Value |
|---|---|
| General: | |
| Derivation | AbstractClass → AbstractTypeClass → 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. |