The EMPulse class controls EMP effects in the game which can be enabled by the EMEffect tag.
Class specifications
Member variables
Offset
|
Type
|
Name
|
Description
|
AbstractClass:
|
0x0 |
ptr |
VirtualTable |
Pointer to the class's Virtual Table
|
0x4 |
ptr |
IRTTITypeInfo VTable |
Pointer to an extended VTable (not sure what exactly it does)
|
0x8 |
ptr |
INoticeSink VTable |
Pointer to an extended VTable (not sure what exactly it does)
|
0xC |
ptr |
INoticeSource VTable |
Pointer to an extended VTable (not sure what exactly it does)
|
0x10 |
DWORD |
unknown |
|
0x14 |
DWORD |
DerivationFlags |
Bit 0: set if the instance is or derives from a TechnoClass Bit 1: set if the instance is or derives from a ObjectClass Bit 2: set if the instance is or derives from a FootClass
|
0x18 |
DWORD |
unknown |
|
0x1C |
DWORD |
unknown |
|
0x20 |
bool |
Dirty |
Was the object changed since it was last saved?
|
0x21 |
BYTE |
unused |
|
0x22 |
WORD |
unused |
|
EMPulseClass:
|
0x24 |
short |
OriginCell_X |
X coordinate of the origin cell of the EMP effect
|
0x26 |
short |
OriginCell_Y |
Y coordinate of the origin cell of the EMP effect
|
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 |
Duration the EMP effect lasts
|
Go to Member Variables
Virtual Table
Offset
|
Return Type
|
Name
|
Arguments
|
Description
|
IUnknown:
|
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."
|
IPersist:
|
0xC |
HRESULT |
GetClassID |
CLSID * pClassID |
MSDN: "Retrieves the class identifier (CLSID) of an object. The CLSID is a unique value that identifies the code that can manipulate the persistent data."
|
IPersistStream:
|
0x10 |
HRESULT |
IsDirty |
none |
MSDN: "Checks the object for changes since it was last saved."
|
0x14 |
HRESULT |
Load |
IStream* stream AbstractClass* dst |
MSDN: "Initializes an object from the stream where it was previously saved."
|
0x18 |
HRESULT |
Save |
IStream* stream AbstractClass* src (3rd is unknown) |
MSDN: "Saves an object to the specified stream."
|
0x1C |
HRESULT |
GetMaxSize |
ULARGE_INTEGER * pcbSize |
MSDN: "Returns the size in bytes of the stream needed to save the object."
|
AbstractClass:
|
0x20 |
none (DTOR) |
Destructor |
none |
Frees memory and removes this instance from global arrays.
|
0x24 |
unknown |
unknown |
unknown |
|
0x28 |
unknown |
unknown |
unknown |
|
0x2C |
int |
GetAbstractDerivationID |
none |
Gets the AbstractDerivationID 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 |
int |
GetOwningHouseIndex |
none |
Gets the index of the House (player) who owns this object.
|
0x3C |
HouseClass* |
GetOwningHouse |
none |
Gets a pointer to the House (player) who owns this object.
|
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 |
int* dst_xyz |
Loads 3D coordinates into dst_xyz.
|
0x4C |
void |
Get3DCoords_var |
int* 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.
|
Member functions
Address (YR 1.001)
|
Return Type
|
Name
|
Arguments
|
Description
|
0x4C52B0 |
ptr (CTOR) |
Constructor |
DWORD CellCoords int CellSpread int Duration (4th unknown) |
Creates an instance.
|
0x4C5370 |
ptr (CTOR) |
Constructor |
none |
Creates an instance without any initialization.
|
0x4C54E0 |
void |
Init |
1, unknown |
Initializes the EMP and freezes nearby units (see EMEffect)
|
|