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

ModEnc:Sandbox: Difference between revisions

From ModEnc
Jump to navigation Jump to search
Pd (talk | contribs)
this page is only a temporary one, I fixed the Name and Arguments column anyway... thanks to VK btw!
Pd (talk | contribs)
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:''' ''Note: these rows would only be added for AbstractClass derivatives''
|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="5%"|Offset
!width="6%"|Offset
!width="15%"|Type
!width="15%"|Type
!width="20%"|Name
!width="19%"|Name
!width="60%"|Description
!width="60%"|Description
|-
|-
|colspan="4"|'''AbstractClass:'''
|colspan="4"|'''AbstractClass:'''
|-
|-
|0x0||Pointer||VirtualTable||Pointer to the class' virtual table
|0x0||ptr||VirtualTable||Pointer to the class' virtual table
|-
|-
|0x4||Pointer||IRTTITypeInfo VTable||Pointer to an extended virtual table (not sure what exactly it does)
|0x4||ptr||IRTTITypeInfo VTable||Pointer to an extended virtual table (not sure what exactly it does)
|-
|-
|0x8||Pointer||INoticeSink 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||Pointer||INoticeSource 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||
|0x10||DWORD||unknown||
Line 68: Line 70:
|colspan="4"|'''EMPulseClass:'''
|colspan="4"|'''EMPulseClass:'''
|-
|-
|0x24||WORD||OriginCell_X||X coordinate of the origin cell of the EMP
|0x24||short||OriginCell_X||X coordinate of the origin cell of the EMP
|-
|-
|0x26||WORD||OriginCell_Y||Y coordinate of the origin cell of the EMP
|0x26||short||OriginCell_Y||Y coordinate of the origin cell of the EMP
|-
|-
|0x28||DWORD||Spread||Cell spreading radius of the EMP effect
|0x28||int||Spread||Cell spreading radius of the EMP effect
|-
|-
|0x2C||DWORD||CreationTime||Time point at which this EMPulse instance has been created
|0x2C||int||CreationTime||Time point at which this EMPulse instance has been created
|-
|-
|0x30||DWORD||Duration||Time the EMP effect lasts
|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="5%"|Offset
!width="6%"|Offset
!width="15%"|Return Type
!width="15%"|Return Type
!width="20%"|Name
!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||unknown||
|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||HRESULT||AddRef||
|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||UINT||Release||unknown||
|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||GetClassID||unknown||
|0xC||HRESULT||GetGUID||unknown||Get this classe's GUID (the ones the [[Locomotor]] tags take).
|-
|-
|0x10||BOOL||IsDirty||unknown||
|0x10||bool||IsDirty||unknown||(?)
|-
|-
|0x14||HRESULT||Load||IStream* stream<br>AbstractClass* dst||Load data from a stream (used for loading savegames)
|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)||Save data to a stream (used for saving games)
|0x18||HRESULT||Save||IStream* stream<br>AbstractClass* src<br>(3rd is unknown)||Saves data to a stream (used for saving games).
|-
|-
|0x1C||HRESULT||GetSizeMax||unknown||
|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||None (DTOR)||~EMPulseClass||none||Free memory and remove from global arrays.
|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||int32||Fetch_ID||none||Get the AbstractClass derivation ID of this class.<br>Used to find out "what something is".
|0x2C||int||GetDerivationID||none||Gets the AbstractClass derivation ID of this class.<br>Used to find out "what something is".
|-
|-
|0x30||int32||GetDataSize||none||Get the size of the member data.
|0x30||int||GetSize||none||Gets the size of the member data.
|-
|-
|0x34||ULONG||Create_ID||unknown||Calculate a CRC of object
|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||int32||GetArrayIndex||none||Get the index of this class instance in the global array.<br>This will return 0 for abstract classes.
|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||Find out whether this instance is dead.<br>This is only used for "living" objects with a health.
|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||Load 3D coordinates into dst_xyz.
|0x48||void||Get3DCoords||int32* dst_xyz||Loads 3D coordinates into dst_xyz.
|-
|-
|0x4C||void||Get3DCoords_var||int32* dst_xyz||Load 3D coordinates into variables, then into dst_xyz.<br>This method is obsolete (use 0x48).
|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.