SuperWeaponTypeClass

From ModEnc

Jump to: navigation, search

The SuperWeaponTypeClass holds default settings for SuperWeapons which are loaded from an INI file.

[edit] Class specifications

Property Value
General:
DerivationAbstractClassAbstractTypeClass → SuperWeaponTypeClass
GUID{CF2BCE7-36E4-11D2-B8D8-006008C809ED}
VT address (YR 1.001)0x7F4090
Size of member data (YR 1.001)0x100 bytes
AbstractClass derivative:
AbstractDerivation ID0x20


[edit] Member variables

Offset Type Name Description
AbstractClass:
0x0ptrVirtualTablePointer to the class's Virtual Table
0x4ptrIRTTITypeInfo VTablePointer to an extended VTable (not sure what exactly it does)
0x8ptrINoticeSink VTablePointer to an extended VTable (not sure what exactly it does)
0xCptrINoticeSource VTablePointer to an extended VTable (not sure what exactly it does)
0x10DWORDunknown
0x14DWORDDerivationFlagsBit 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
0x18DWORDunknown
0x1CDWORDunknown
0x20boolDirtyWas the object changed since it was last saved?
0x21BYTEunused
0x22WORDunused
AbstractTypeClass:
0x24char[0x18]IDThe INI name of this type (for example: SMCV).
0x3CBYTEreservedZero-termination of the ID.
0x3Dchar[0x20]UINameStringtable reference given by the UIName tag.
0x5DBYTEreservedZero-termination of the UIName.
0x5EWORDunused
0x60wchar*UINamePointer to the UIName unicode string inside the stringtable.
0x64char[0x31]NameName given by the Name tag.
0x95BYTEreservedZero-termination of the Name.
0x96WORDunused
SuperWeaponTypeClass:
0x98intIndexIndex in the global SuperWeaponTypeClass array.
0x9CWeaponTypeClass*WeaponType
0xA0DWORDunknown
0xA4DWORDunknown
0xA8DWORDunknown
0xACDWORDunknown
0xB0floatRechargeTime
0xB4 int Type
0xB8 CCFileClass* SidebarImage
0xBC int Action
0xC0 int SpecialSound
0xC4 int StartSound
0xC8 BuildingTypeClass* AuxBuilding
0xCCchar[0x18]SidebarImage_FileName
0xE4BYTEreservedZero-termination of the SidebarImage_FileName
0xE5 bool UseChargeDrain
0xE6 bool IsPowered
0xE7 bool DisableableFromShell
0xE8 int FlashSidebarTabFrames
0xEC bool AIDefendAgainst
0xED bool PreClick
0xEE bool PostClick
0xEFBYTEunused
0xF0 int PreDependent
0xF4 bool ShowTimer
0xF5 bool ManualControl
0xF6WORDunused
0xF8 float Range
0xFC int LineMultiplier
AbstractClass - Member Variables
AbstractTypeClass - Member Variables
SuperWeaponTypeClass - Member Variables

[edit] Virtual Table

Offset Return Type Name Arguments Description
IUnknown:
0x0HRESULTQueryInterfaceREFIID iid
void ** ppvObject
MSDN:
"Returns a pointer to a specified interface on an object to which a client currently holds an interface pointer."
0x4ULONGAddRefnoneMSDN:
"[...] 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."
0x8ULONGReleasenoneMSDN:
"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:
0xCHRESULTGetClassIDCLSID * pClassIDMSDN:
"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:
0x10HRESULTIsDirtynoneMSDN:
"Checks the object for changes since it was last saved."
0x14HRESULTLoadIStream* stream
AbstractClass* dst
MSDN:
"Initializes an object from the stream where it was previously saved."
0x18HRESULTSaveIStream* stream
AbstractClass* src
(3rd is unknown)
MSDN:
"Saves an object to the specified stream."
0x1CHRESULTGetMaxSizeULARGE_INTEGER * pcbSizeMSDN:
"Returns the size in bytes of the stream needed to save the object."
AbstractClass:
0x20none (DTOR)DestructornoneFrees memory and removes this instance from global arrays.
0x24unknownunknownunknown
0x28unknownunknownunknown
0x2CintGetAbstractDerivationIDnoneGets the AbstractDerivationID of this class.
Used to find out "what something is".
0x30intGetSizenoneGets the size of the member data.
0x34unsigned longGetCRCunknownCalculates a CRC sum of this instance.
0x38intGetOwningHouseIndexnoneGets the index of the House (player) who owns this object.
0x3CHouseClass*GetOwningHousenoneGets a pointer to the House (player) who owns this object.
0x40intGetArrayIndexnoneGets the index of this class instance in the global array.
This will return 0 for abstract classes.
0x44boolIsDeadnoneFinds out whether this instance is dead.
This is only used for "living" objects with a health.
0x48voidGet3DCoordsint* dst_xyzLoads 3D coordinates into dst_xyz.
0x4CvoidGet3DCoords_varint* dst_xyzLoads 3D coordinates into variables, then into dst_xyz.
This method is obsolete (use 0x48).
0x50unknownunknownunknown
0x54unknownunknownunknown
0x58unknownunknownunknown
0x5CvoidAdvanceFramenoneThis is an updating routine, called every frame.
AbstractTypeClass:
0x60unknownunknownunknown
0x64boolLoadFromINICCINIClass* iniInitializes the type based on the INI file section ID.
0x68boolSaveToINICCINIClass* iniSaves this type to an INI file.
SuperWeaponTypeClass:
0x6CintGetMousePointer(1st unused)
TechnoClass* pointed
Determines what mouse cursor to show when this SuperWeaponType is active, depending on the object beneath the mouse pointer.
AbstractClass - Virtual Table
AbstractTypeClass - Virtual Table
SuperWeaponTypeClass - Virtual Table
Personal tools