Skip to content

3D Object Types

Sandy edited this page Jul 26, 2022 · 8 revisions

Object types have L3D meshes and an associated type

enum LH3DObject::ObjectType : uint32_t {
  STATIC    = 0, // LH3DStaticObject : LH3DMeshedObject : LH3DObject
  MORPHABLE = 1, // LH3DStaticMorphableObject : LH3DStaticObject : LH3DMeshedObject : LH3DObject
  ANIMATED  = 2, // LH3DAnimatedObject : LH3DMeshedObject : LH3DObject
  COMPLEX   = 3, // LH3DComplexObject : LH3DStaticObject : LH3DMeshedObject : LH3DObject
  SMOKE     = 4, // LH3DSpriteObject : LH3DObject
  FIRE_00   = 5, // LH3DSpriteObject : LH3DObject
  FIRE_35   = 6, // LH3DSpriteObject : LH3DObject
  MIST      = 7, // LH3DMist : LH3DStaticObject : LH3DMeshedObject : LH3DObject
  CITADEL   = 8, // LH3DCitadel : LH3DStaticMorphableObject : LH3DStaticObject : LH3DMeshedObject : LH3DObject
};

The following and their subclasses are MORPHABLE meshes. Meaning they deform with the terrain height map (Based on Get3DType virtual functions and LH3DObject::Create):

  • BigForest
  • Graveyard
  • PileFood (not wood)
  • StoragePit
  • Wonder if the tribe is:
    • CELTIC
    • JAPANESE
    • INDIAN
    • NORSE
    • TIBETAN
  • Workshop
  • CitadelHeart(LH3DCitadel being a subclass of LH3DStaticMorphableObject)
  • CitadelPart
  • Creche
  • Football
  • PhysicalShield (not magic)
  • TownCentre
  • Field

Default Object and MagicShield have a more complex way of determining but it's probably either STATIC or ANIMATED.