ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.
ModEnc:Sandbox
Testing page
This is a sandbox - a page for testing stuff.
Pretty URL test
Testing testing, if this goes through, the Pretty URLs are functional.
This post was brought to you by DCoder - founder of RedUtils - all the INI editing tools you'll ever need.
Layout suggestions for YR exe info
Example: EMPulseClass (insert EMPulseClass description here)
Derivation
AbstractClass → EMPulseClass
Class specifications
Property | Value |
---|---|
General: | |
GUID: | {B825CB22-11D2-200E-6000-A99F58D49A08} |
VT address (YR 1.001) | 0x7E87A8 |
Size of members data (YR 1.001) | 0x34 bytes |
AbstractClass derivative: | |
ClassID | 0x37 |
Member variables
Offset | Type | Name | Description |
---|---|---|---|
AbstractClass: | |||
0x0 | ptr | VirtualTable | Pointer to the class' virtual table |
0x4 | ptr | IRTTITypeInfo VTable | Pointer to an extended virtual table (not sure what exactly it does) |
0x8 | ptr | INoticeSink VTable | Pointer to an extended virtual table (not sure what exactly it does) |
0xC | ptr | INoticeSource VTable | Pointer to an extended virtual table (not sure what exactly it does) |
0x10 | DWORD | unknown | |
0x14 | DWORD | DerivationFlags | Bit 0: set if Techno Bit 1: set if Object Bit 2: set if Foot |
0x18 | DWORD | unknown | |
0x1C | DWORD | unknown | |
0x20 | BYTE | unknown | |
0x21 | BYTE | unused | |
0x22 | WORD | unused | |
EMPulseClass: | |||
0x24 | short | OriginCell_X | X coordinate of the origin cell of the EMP |
0x26 | short | OriginCell_Y | Y coordinate of the origin cell of the EMP |
0x28 | int | Spread | Cell spreading radius of the EMP effect |
0x2C | int | CreationTime | Time point at which this EMPulse instance has been created |
0x30 | int | Duration | Time the EMP effect lasts |
Virtual Table
Offset | Return Type | Name | Arguments | Description |
---|---|---|---|---|
AbstractClass: | ||||
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." |
0xC | HRESULT | GetGUID | unknown | Get this classe's GUID (the ones the Locomotor tags take). |
0x10 | bool | IsDirty | unknown | (?) |
0x14 | HRESULT | Load | IStream* stream AbstractClass* dst |
Loads data from a stream (used for loading savegames). |
0x18 | HRESULT | Save | IStream* stream AbstractClass* src (3rd is unknown) |
Saves data to a stream (used for saving games). |
0x1C | HRESULT | GetMaxSize | UINT* dest Abstract* instance |
Gets the maximum size of the member data. *dest is set to GetSize()+sizeof(UINT). *(dest+4) is set to 0. |
0x20 | none (DTOR) | ~EMPulseClass | none | Frees memory and removes this instance from global arrays. |
0x24 | unknown | unknown | unknown | |
0x28 | unknown | unknown | unknown | |
0x2C | int | GetDerivationID | none | Gets the AbstractClass derivation ID 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 | unknown | unknown | unknown | |
0x3C | unknown | unknown | unknown | |
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 | int32* dst_xyz | Loads 3D coordinates into dst_xyz. |
0x4C | void | Get3DCoords_var | int32* 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. |