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
m Sandbox created,
 
Pd (talk | contribs)
No edit summary
Line 8: Line 8:


<div style="padding:1px; text-indent:10px; -moz-border-radius:10px; border:2px dotted #c00; color:#00c; font-style:italic;">This post was brought to you by <b>DCoder</b> - founder of [http://dcoder.cannis.net RedUtils] - all the INI editing tools you'll ever need.</div>
<div style="padding:1px; text-indent:10px; -moz-border-radius:10px; border:2px dotted #c00; color:#00c; font-style:italic;">This post was brought to you by <b>DCoder</b> - founder of [http://dcoder.cannis.net RedUtils] - all the INI editing tools you'll ever need.</div>
== Layout suggestions for YR exe info ==
Example: EMPulseClass
(insert EMPulseClass description here)
===Derivation===
[[AbstractClass]] {{arr|r}} EMPulseClass
===Class specifications===
{| align="center" width="100%" cellpadding="2" class="table_descrow"
!width="40%"|Property
!width="60%"|Value
|-
|colspan="2"|'''General:'''
|-
|[[VT]] address (YR 1.001)||'''0x7E87A8'''
|-
|Size of members data (YR 1.001)||'''0x34 bytes'''
|-
|colspan="2"|'''AbstractClass derivative:''' ''Note: these rows would only be added for AbstractClass derivatives''
|-
|[[ClassID]]||'''0x37'''
|}
===Member variables===
{| align="center" width="100%" cellpadding="2" class="table_descrow"
!width="5%"|Offset
!width="15%"|Type
!width="20%"|Name
!width="60%"|Description
|-
|colspan="4"|'''AbstractClass:'''
|-
|0x0||Pointer||VirtualTable||Pointer to the class' virtual table
|-
|0x4||Pointer||VirtualTable2||Pointer to an extended virtual table (not sure what exactly it does)
|-
|0x8||Pointer||VirtualTable3||Pointer to an extended virtual table (not sure what exactly it does)
|-
|0xC||Pointer||VirtualTable4||Pointer to an extended virtual table (not sure what exactly it does)
|-
|0x10||DWORD||unknown||
|-
|0x14||DWORD||DerivationFlags||Bit 0: set if Techno<br>Bit 1: set if Object<br>Bit 2: set if Foot
|-
|0x18||DWORD||unknown||
|-
|0x1C||DWORD||unknown||
|-
|0x20||BYTE||unknown||
|-
|0x21||BYTE||unused||
|-
|0x22||WORD||unused||
|-
|colspan="4"|'''EMPulseClass:'''
|-
|0x24||WORD||OriginCell_X||X coordinate of the origin cell of the EMP
|-
|0x26||WORD||OriginCell_Y||Y coordinate of the origin cell of the EMP
|-
|0x28||DWORD||Spread||Cell spreading radius of the EMP effect
|-
|0x2C||DWORD||CreationTime||Time point at which this EMPulse instance has been created
|-
|0x30||DWORD||Duration||Time the EMP effect lasts
|}
===Virtual Table===
{| align="center" width="100%" cellpadding="2" class="table_descrow"
!width="5%"|Offset
!width="15%"|Return Type
!width="15%"|Arguments
!width="20%"|Name
!width="45%"|Description
|-
|colspan="4"|'''AbstractClass:'''
|-
|0x0||unknown||unknown||unknown||
|-
|0x4||unknown||unknown||unknown||
|-
|0x8||unknown||unknown||unknown||
|-
|0xC||unknown||unknown||unknown||
|-
|0x10||unknown||unknown||unknown||
|-
|0x14||unknown||Load||Stream* stream<br>AbstractClass* dst||Load data from a stream (used for loading savegames)
|-
|0x18||unknown||Save||Stream* stream<br>AbstractClass* src<br>(3rd is unknown)||Save data to a stream (used for saving games)
|-
|0x1C||unknown||unknown||unknown||
|-
|0x20||AbstractClass*||Delete||none||Free memory and remove from global arrays.<br>The returned pointer is invalid.
|-
|0x24||unknown||unknown||unknown||
|-
|0x28||unknown||unknown||unknown||
|-
|0x2C||int32||GetAbstractClassID||none||Get 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.
|-
|0x34||unknown||unknown||unknown||
|-
|0x38||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.
|-
|0x44||bool||IsDead||none||Find 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.
|-
|0x4C||void||Get3DCoords_var||int32* dst_xyz||Load 3D coordinates into variables, then into dst_xyz.<br>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.
|}

Revision as of 18:35, 13 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:
VT address (YR 1.001) 0x7E87A8
Size of members data (YR 1.001) 0x34 bytes
AbstractClass derivative: Note: these rows would only be added for AbstractClass derivatives
ClassID 0x37


Member variables

Offset Type Name Description
AbstractClass:
0x0 Pointer VirtualTable Pointer to the class' virtual table
0x4 Pointer VirtualTable2 Pointer to an extended virtual table (not sure what exactly it does)
0x8 Pointer VirtualTable3 Pointer to an extended virtual table (not sure what exactly it does)
0xC Pointer VirtualTable4 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 WORD OriginCell_X X coordinate of the origin cell of the EMP
0x26 WORD OriginCell_Y Y coordinate of the origin cell of the EMP
0x28 DWORD Spread Cell spreading radius of the EMP effect
0x2C DWORD CreationTime Time point at which this EMPulse instance has been created
0x30 DWORD Duration Time the EMP effect lasts


Virtual Table

Offset Return Type Arguments Name Description
AbstractClass:
0x0 unknown unknown unknown
0x4 unknown unknown unknown
0x8 unknown unknown unknown
0xC unknown unknown unknown
0x10 unknown unknown unknown
0x14 unknown Load Stream* stream
AbstractClass* dst
Load data from a stream (used for loading savegames)
0x18 unknown Save Stream* stream
AbstractClass* src
(3rd is unknown)
Save data to a stream (used for saving games)
0x1C unknown unknown unknown
0x20 AbstractClass* Delete none Free memory and remove from global arrays.
The returned pointer is invalid.
0x24 unknown unknown unknown
0x28 unknown unknown unknown
0x2C int32 GetAbstractClassID none Get the AbstractClass derivation ID of this class.
Used to find out "what something is".
0x30 int32 GetDataSize none Get the size of the member data.
0x34 unknown unknown unknown
0x38 unknown unknown unknown
0x3C unknown unknown unknown
0x40 int32 GetArrayIndex none Get the index of this class instance in the global array.
This will return 0 for abstract classes.
0x44 bool IsDead none Find out whether this instance is dead.
This is only used for "living" objects with a health.
0x48 void Get3DCoords int32* dst_xyz Load 3D coordinates into dst_xyz.
0x4C void Get3DCoords_var int32* dst_xyz Load 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.