Here's the full master object format per player:
Object type-10 (??? static object):
Object type-15 (tree for AoK) and object type-90 (tree for AoE), extends object type-10.
Object type-20 (moving object) and object type-25 (doppleganger object), extends object type-10:
Object type-30 (animated object), extends object type-20:
Object type-40 (action object) extends object type-30:
Action (from object type-40, total of 76 bytes, also found in .DAT database file in each civilization):
Object type-50 (projectile object), extends object type-40:
Object type-60 (missile object), extends object type-50:
Object type-70 (combat object), extends object type-50:
Object type-80 (building object), extends object type-70:
Then the VisibleMap data:
Thank JustTesting1234 for all the master objects data, along with the contributors of Genie Editor.
Those master objects are read similarly to how the database DAT file is read, they were easy to find.
Is there anything else you want to know?
Object type-10 (??? static object):
Code:
short Identity1;// for database
short Identity2;// for savegame
short Identity3;// for recorded
short Classifier = -1;
int LanguageHotKey = -1;
char Enabled;
char EditorHidden;
short HitPoints;
float LineOfSight;
char GarrisonCapacity;
float RadiusX;
float RadiusY;
short AttributeCapacity;
float AttributeAmount;
char Disabled;// GameVersion >= 11.48
Object type-15 (tree for AoK) and object type-90 (tree for AoE), extends object type-10.
Object type-20 (moving object) and object type-25 (doppleganger object), extends object type-10:
Code:
float MovementSpeed
Object type-30 (animated object), extends object type-20:
Code:
float RotationSpeed
Object type-40 (action object) extends object type-30:
Code:
void Actions // GameVersion < 11.24
float SearchRadius
float WorkRate
Action (from object type-40, total of 76 bytes, also found in .DAT database file in each civilization):
Code:
short Enabled
short Identity
char Unknown1
short Type
short Class
short Object
char SelectorEnabler
char Unknown7
char Terrain
short SelectorMode
char RightClickMode
char Unknown12
short AttributeCarried
short AttributeProduction
short AttributeDropped
short AttributeGeneric
float AttributeMultiplier
float RangeAlert
float RangeExtra
float Unknown4
float Unknown5
short Plunder
short Unknown9
long Graphic1
long Graphic2
long Graphic3
long Graphic4
long SoundExecute
long SoundDeposit
Object type-50 (projectile object), extends object type-40:
Code:
char|short ArmorDefault // if GameVersion >= 11.52, use short, else use char
short AttacksCount
void AttacksArray[AttacksCount]
short ArmorsCount
void ArmorsArray[ArmorsCount]
float ReloadTime
float RangeMax1
short Accuracy
short UnitProjectile
short Boundary
float RangeMax2
float BlastRadius
float RangeMin
Object type-60 (missile object), extends object type-50:
Code:
char Ballistics
Object type-70 (combat object), extends object type-50:
Code:
void Prices[3] // short Attribute, short Quantity, short Mode
short CreationTime
float MissileAmounts
char MissileMaximum // GameVersion >= 11.49
Object type-80 (building object), extends object type-70:
Code:
short SpriteAngle
Then the VisibleMap data:
Code:
long SizeX
long SizeY
long TilesValid // GameVersion >= 6.70
short PlayerId
void TilesArray[SizeX*SizeY] // this data is transferred to the UnifiedVisbleMap with bit-mask of player per tile
Thank JustTesting1234 for all the master objects data, along with the contributors of Genie Editor.
Those master objects are read similarly to how the database DAT file is read, they were easy to find.
Is there anything else you want to know?