ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.
ModEnc:Sandbox: Difference between revisions
Jump to navigation
Jump to search
this page is only a temporary one, I fixed the Name and Arguments column anyway... thanks to VK btw! |
m deep inside, we all love double edits, don't we? actually, just corrected and enhanced a few things |
||
Line 24: | Line 24: | ||
|- | |- | ||
|colspan="2"|'''General:''' | |colspan="2"|'''General:''' | ||
|- | |||
|GUID:||'''{B825CB22-11D2-200E-6000-A99F58D49A08}''' | |||
|- | |- | ||
|[[VT]] address (YR 1.001)||'''0x7E87A8''' | |[[VT]] address (YR 1.001)||'''0x7E87A8''' | ||
Line 29: | Line 31: | ||
|Size of members data (YR 1.001)||'''0x34 bytes''' | |Size of members data (YR 1.001)||'''0x34 bytes''' | ||
|- | |- | ||
|colspan="2"|'''AbstractClass derivative:' | |colspan="2"|'''AbstractClass derivative:''' | ||
|- | |- | ||
|[[ClassID]]||'''0x37''' | |[[ClassID]]||'''0x37''' | ||
Line 37: | Line 39: | ||
===Member variables=== | ===Member variables=== | ||
{| align="center" width="100%" cellpadding="2" class="table_descrow" | {| align="center" width="100%" cellpadding="2" class="table_descrow" | ||
!width=" | !width="6%"|Offset | ||
!width="15%"|Type | !width="15%"|Type | ||
!width=" | !width="19%"|Name | ||
!width="60%"|Description | !width="60%"|Description | ||
|- | |- | ||
|colspan="4"|'''AbstractClass:''' | |colspan="4"|'''AbstractClass:''' | ||
|- | |- | ||
|0x0|| | |0x0||ptr||VirtualTable||Pointer to the class' virtual table | ||
|- | |- | ||
|0x4|| | |0x4||ptr||IRTTITypeInfo VTable||Pointer to an extended virtual table (not sure what exactly it does) | ||
|- | |- | ||
|0x8|| | |0x8||ptr||INoticeSink VTable||Pointer to an extended virtual table (not sure what exactly it does) | ||
|- | |- | ||
|0xC|| | |0xC||ptr||INoticeSource VTable||Pointer to an extended virtual table (not sure what exactly it does) | ||
|- | |- | ||
|0x10||DWORD||unknown|| | |0x10||DWORD||unknown|| | ||
Line 68: | Line 70: | ||
|colspan="4"|'''EMPulseClass:''' | |colspan="4"|'''EMPulseClass:''' | ||
|- | |- | ||
|0x24|| | |0x24||short||OriginCell_X||X coordinate of the origin cell of the EMP | ||
|- | |- | ||
|0x26|| | |0x26||short||OriginCell_Y||Y coordinate of the origin cell of the EMP | ||
|- | |- | ||
|0x28|| | |0x28||int||Spread||Cell spreading radius of the EMP effect | ||
|- | |- | ||
|0x2C|| | |0x2C||int||CreationTime||Time point at which this EMPulse instance has been created | ||
|- | |- | ||
|0x30|| | |0x30||int||Duration||Time the EMP effect lasts | ||
|} | |} | ||
Line 82: | Line 84: | ||
===Virtual Table=== | ===Virtual Table=== | ||
{| align="center" width="100%" cellpadding="2" class="table_descrow" | {| align="center" width="100%" cellpadding="2" class="table_descrow" | ||
!width=" | !width="6%"|Offset | ||
!width="15%"|Return Type | !width="15%"|Return Type | ||
!width=" | !width="19%"|Name | ||
!width="15%"|Arguments | !width="15%"|Arguments | ||
!width="45%"|Description | !width="45%"|Description | ||
Line 90: | Line 92: | ||
|colspan="4"|'''AbstractClass:''' | |colspan="4"|'''AbstractClass:''' | ||
|- | |- | ||
|0x0||HRESULT||QueryInterface|| | |0x0||HRESULT||QueryInterface||REFIID iid<br>void** ppvObject||[http://msdn2.microsoft.com/en-us/library/ms682521.aspx MSDN]:<br>"Returns a pointer to a specified interface on an object to which a client currently holds an interface pointer." | ||
|- | |- | ||
|0x4|| | |0x4||ULONG||AddRef||none||[http://msdn2.microsoft.com/en-us/library/ms691379.aspx MSDN]:<br>"[...] 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|| | |0x8||ULONG||Release||none||[http://msdn2.microsoft.com/en-us/library/ms682317.aspx MSDN]:<br>"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|| | |0xC||HRESULT||GetGUID||unknown||Get this classe's GUID (the ones the [[Locomotor]] tags take). | ||
|- | |- | ||
|0x10|| | |0x10||bool||IsDirty||unknown||(?) | ||
|- | |- | ||
|0x14||HRESULT||Load||IStream* stream<br>AbstractClass* dst|| | |0x14||HRESULT||Load||IStream* stream<br>AbstractClass* dst||Loads data from a stream (used for loading savegames). | ||
|- | |- | ||
|0x18||HRESULT||Save||IStream* stream<br>AbstractClass* src<br>(3rd is unknown)|| | |0x18||HRESULT||Save||IStream* stream<br>AbstractClass* src<br>(3rd is unknown)||Saves data to a stream (used for saving games). | ||
|- | |- | ||
|0x1C||HRESULT|| | |0x1C||HRESULT||GetMaxSize||UINT* dest<br>Abstract* instance||Gets the maximum size of the member data.<br>{{tt|*dest}} is set to {{tt|GetSize()+sizeof(UINT)}}.<br>{{tt|*(dest+4)}} is set to {{tt|0}}. | ||
|- | |- | ||
|0x20|| | |0x20||none (DTOR)||~EMPulseClass||none||Frees memory and removes this instance from global arrays. | ||
|- | |- | ||
|0x24||unknown||unknown||unknown|| | |0x24||unknown||unknown||unknown|| | ||
Line 112: | Line 114: | ||
|0x28||unknown||unknown||unknown|| | |0x28||unknown||unknown||unknown|| | ||
|- | |- | ||
|0x2C|| | |0x2C||int||GetDerivationID||none||Gets the AbstractClass derivation ID of this class.<br>Used to find out "what something is". | ||
|- | |- | ||
|0x30|| | |0x30||int||GetSize||none||Gets the size of the member data. | ||
|- | |- | ||
|0x34|| | |0x34||unsigned long||GetCRC||unknown||Calculates a CRC sum of this instance. | ||
|- | |- | ||
|0x38||unknown||unknown||unknown|| | |0x38||unknown||unknown||unknown|| | ||
Line 122: | Line 124: | ||
|0x3C||unknown||unknown||unknown|| | |0x3C||unknown||unknown||unknown|| | ||
|- | |- | ||
|0x40|| | |0x40||int||GetArrayIndex||none||Gets the index of this class instance in the global array.<br>This will return 0 for abstract classes. | ||
|- | |- | ||
|0x44||bool||IsDead||none|| | |0x44||bool||IsDead||none||Finds out whether this instance is dead.<br>This is only used for "living" objects with a health. | ||
|- | |- | ||
|0x48||void||Get3DCoords||int32* dst_xyz|| | |0x48||void||Get3DCoords||int32* dst_xyz||Loads 3D coordinates into dst_xyz. | ||
|- | |- | ||
|0x4C||void||Get3DCoords_var||int32* dst_xyz|| | |0x4C||void||Get3DCoords_var||int32* dst_xyz||Loads 3D coordinates into variables, then into dst_xyz.<br>This method is obsolete (use 0x48). | ||
|- | |- | ||
|0x50||unknown||unknown||unknown|| | |0x50||unknown||unknown||unknown|| |
Revision as of 08:51, 14 June 2007
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. |