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
m deep inside, we all love double edits, don't we? actually, just corrected and enhanced a few things |
m More tests for the exe info - testing layout conversion, not data accuracy |
||
Line 2: | Line 2: | ||
This is a sandbox - a page for testing stuff. | This is a sandbox - a page for testing stuff. | ||
== Layout suggestions for YR exe info == | == Layout suggestions for YR exe info == | ||
Line 139: | Line 132: | ||
|- | |- | ||
|0x5C||void||AdvanceFrame||none||This is an updating routine, called every frame. | |0x5C||void||AdvanceFrame||none||This is an updating routine, called every frame. | ||
|} | |||
=== More Testing === | |||
{| align="center" width="100%" cellpadding="2" class="table_descrow" | |||
|+ WarheadType | |||
|- | |||
| 0x98 || double || Deform || | |||
|- | |||
| 0xA0 || double || vs None || | |||
|- | |||
| 0xA8 || double || vs Flak || | |||
|- | |||
| 0xB0 || double || vs Plate || | |||
|- | |||
| 0xB8 || double || vs Light || | |||
|- | |||
| 0xC0 || double || vs Medium || | |||
|- | |||
| 0xC8 || double || vs Heavy || | |||
|- | |||
| 0xD0 || double || vs Wood || | |||
|- | |||
| 0xD8 || double || vs Steel || | |||
|- | |||
| 0xE0 || double || vs Concrete || | |||
|- | |||
| 0xD8 || double || vs Special_1 || | |||
|- | |||
| 0xE0 || double || vs Special_2 || | |||
|- | |||
| 0xF8 || double || ProneDamage || | |||
|- | |||
| 0x100 || long || DeformTreshold || | |||
|- | |||
| 0x104 || vector<AnimType> || AnimList || | |||
|- | |||
| 0x120 || long || InfDeath || | |||
|- | |||
| 0x124 || float || CellSpread || | |||
|- | |||
| 0x128 || float || CellInset || | |||
|- | |||
| 0x12C || float || PercentAtMax || | |||
|- | |||
| 0x130 || bool || CausesDelayKill || | |||
|- | |||
| 0x134 || long || DelayKillFrames || | |||
|- | |||
| 0x138 || float || DelayKillAtMax || | |||
|- | |||
| 0x13C || float || CombatLightSize || | |||
|- | |||
| 0x140 || ParticleType* || Particle || | |||
|- | |||
| 0x144 || bool || Wall || | |||
|- | |||
| 0x145 || bool || WallAbsoluteDestroyer || | |||
|- | |||
| 0x146 || bool || PenetratesBunker || | |||
|- | |||
| 0x147 || bool || Wood || | |||
|- | |||
| 0x148 || bool || Tiberium || | |||
|- | |||
| 0x149 || bool || ??? || | |||
|- | |||
| 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 || ??? || Locomotor || | |||
|- | |||
| 0x16C || bool || Airstrike || | |||
|- | |||
| 0x16D || bool || Psychedelic || | |||
|- | |||
| 0x16E || bool || BombDisarm || | |||
|- | |||
| 0x170 || long || 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 || long || ShakeXlo || | |||
|- | |||
| 0x180 || long || ShakeXhi || | |||
|- | |||
| 0x184 || long || ShakeYlo || | |||
|- | |||
| 0x188 || long || ShakeYhi || | |||
|- | |||
| 0x18C || vector<VoxelAnimType*> || DebrisTypes || | |||
|- | |||
| 0x1A8 || vector<long> || DebrisMaximums || | |||
|- | |||
| 0x1C4 || long || MaxDebris || | |||
|- | |||
| 0x1C8 || long || MinDebris || | |||
|- | |||
| 0x1CC || AnimType* || InfDeathAnim || | |||
|- | |||
| 0x1D0 || long || ImmunityType || | |||
|} | |||
{| align="center" width="100%" cellpadding="2" class="table_descrow" | |||
|+ Vector Functions | |||
|- | |||
| 0x0 || void || Delete(bool bMyselfAsWell) || || | |||
|- | |||
| 0x4 || bool || CompareVector(vector V2) || || | |||
|- | |||
| 0x8 || bool || PushBack(???) || || | |||
|- | |||
| 0xC || void || Clear() || || | |||
|- | |||
| 0x10 || long || FindElement(ptr Pointer) || || | |||
|- | |||
| 0x14 || long || GetElementIndex(ptr Pointer) || || | |||
|- | |||
| 0x18 || T& || GetElement(long Index) || || | |||
|} | |} |
Revision as of 10:14, 14 June 2007
Testing page
This is a sandbox - a page for testing stuff.
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. |
More Testing
0x98 | double | Deform | |
0xA0 | double | vs None | |
0xA8 | double | vs Flak | |
0xB0 | double | vs Plate | |
0xB8 | double | vs Light | |
0xC0 | double | vs Medium | |
0xC8 | double | vs Heavy | |
0xD0 | double | vs Wood | |
0xD8 | double | vs Steel | |
0xE0 | double | vs Concrete | |
0xD8 | double | vs Special_1 | |
0xE0 | double | vs Special_2 | |
0xF8 | double | ProneDamage | |
0x100 | long | DeformTreshold | |
0x104 | vector<AnimType> | AnimList | |
0x120 | long | InfDeath | |
0x124 | float | CellSpread | |
0x128 | float | CellInset | |
0x12C | float | PercentAtMax | |
0x130 | bool | CausesDelayKill | |
0x134 | long | DelayKillFrames | |
0x138 | float | DelayKillAtMax | |
0x13C | float | CombatLightSize | |
0x140 | ParticleType* | Particle | |
0x144 | bool | Wall | |
0x145 | bool | WallAbsoluteDestroyer | |
0x146 | bool | PenetratesBunker | |
0x147 | bool | Wood | |
0x148 | bool | Tiberium | |
0x149 | bool | ??? | |
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 | ??? | Locomotor | |
0x16C | bool | Airstrike | |
0x16D | bool | Psychedelic | |
0x16E | bool | BombDisarm | |
0x170 | long | 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 | long | ShakeXlo | |
0x180 | long | ShakeXhi | |
0x184 | long | ShakeYlo | |
0x188 | long | ShakeYhi | |
0x18C | vector<VoxelAnimType*> | DebrisTypes | |
0x1A8 | vector<long> | DebrisMaximums | |
0x1C4 | long | MaxDebris | |
0x1C8 | long | MinDebris | |
0x1CC | AnimType* | InfDeathAnim | |
0x1D0 | long | ImmunityType |
0x0 | void | Delete(bool bMyselfAsWell) | ||
0x4 | bool | CompareVector(vector V2) | ||
0x8 | bool | PushBack(???) | ||
0xC | void | Clear() | ||
0x10 | long | FindElement(ptr Pointer) | ||
0x14 | long | GetElementIndex(ptr Pointer) | ||
0x18 | T& | GetElement(long Index) |