Skip to content

GenWorld_Z

widberg edited this page Mar 25, 2023 · 35 revisions
struct GenWorld_Z : Object_Z
{
    std::uint32_t nodeCRC32;
    std::uint32_t userDefineCRC32;
    std::uint32_t gwRoadCRC32;
    PascalArray<std::uint32_t> binaryCRC32s;
    PascalArray<std::uint32_t> bitmapCRC32s;
    PascalArray<std::uint32_t> materialCRC32s;
    std::uint32_t equals41;
        // always 41
    std::uint32_t categoryCount;
    struct Category
    {
        PascalStringNULL name;
            // Valid values:
            //   * TREES
            //   * BUSHES
            //   * ROCKS - Appears in some objects but empty and the game ignores it
        PascalArray<PascalArray<std::uint32_t>> nodeCRC32Arrays;
    } categories[categoryCount];
    std::uint32_t unknown8Count;
    struct Unknown8
    {
        std::uint32_t zero0;
            // always zero?
        Mat4f mat;
        Quat quat;
        Vec3f vec;
        float unknown1;
        float unknown3;
        std::uint32_t zero1;
        std::uint32_t zero2;
        std::uint32_t zero3;
        std::uint32_t zero4;
        std::int16_t unknown9;
        std::int16_t unknown90;
        std::uint8_t unknown4;
        std::uint8_t unknown20;
        std::uint8_t unknown21;
        std::uint8_t unknown22;
        std::uint8_t unknown23;
        std::uint8_t unknown24;
        std::uint8_t unknown2;
    } unknown8s[unknown8Count];
    PascalArray<Mat4f> mats;
    std::uint32_t unused10Count;
    struct Unused10
    {
        std::uint32_t unused0;
        std::uint32_t unused1s[8];
        std::uint32_t unused2;
        std::uint32_t unused3;
        std::uint32_t unused4;
    } unused10s[unused10Count];
    PascalArray<Vec2f> coords;
    std::uint32_t coordsLineSegmentCount;
    struct CoordsLineSegment
    {
        std::uint32_t coordsIndexA;
        std::uint32_t coordsIndexB;
    } coordsLineSegments[coordsLineSegmentCount];
    std::uint32_t regionCount;
    struct Region
    {
        std::uint8_t nameBuffer[31];
            // 31-byte char array containing a null-terminated string
        std::uint8_t always_255;
            // Always 0xFF
        PascalArray<std::uint32_t> coordsLineSegmentsIndices;
            // Indices into the coordsLineSegments array
    } regions[unknown13Count];
};
//------------------------------------------------
//--- 010 Editor v11.0.1 Binary Template
//------------------------------------------------

struct GenWorld_Z
{
    uint32 nodeCRC32;
    uint32 userDefineCRC32;
    uint32 gwRoadCRC32;
    uint32 binaryCRC32Count;
    uint32 binaryCRC32[binaryCRC32Count];
    uint32 bitmapCRC32Count;
    uint32 bitmapCRC32s[bitmapCRC32Count];
    uint32 materialCRC32Count;
    uint32 materialCRC32s[materialCRC32Count];
    uint32 unknown6;
    uint32 categoryCount;
    struct Category
    {
        uint32 nameSize;
        byte name[nameSize];
        uint32 nodeArrayCount;
        struct NodeArray
        {
            uint32 nodeCount;
            uint32 nodes[nodeCount];
        } nodeCRC32Arrays[nodeArrayCount];
    } categories[categoryCount] <optimize=false>;
    uint32 unknown8Count;
    struct Unknown8
    {
        uint32 zero0;
        float mat[16];
        float quat[4];
        float vec[3];
        float unknown1;
        float unknown3;
        uint32 zero1;
        uint32 zero2;
        uint32 zero3;
        uint32 zero4;
        int32 unknown9;
        int16 unknown4;
        int32 unknown10;
        byte unknown2;
    } unknown8s[unknown8Count];
    uint32 matCount;
    float mats[matCount * 16];
    uint32 unknown10Count;
    struct Unknown10
    {
        uint32 unknown0;
        uint32 unknown1s[8];
        uint32 unknown2;
        uint32 unknown3;
        uint32 unknown4;
    } unknown10s[unknown10Count];
    uint32 coordCount;
    struct Coord
    {
        float unknown0;
        float unknown1;
    } coords[coordCount];
    uint32 unknown12Count;
    struct Unknown12
    {
        uint32 unknown0;
        uint32 unknown1;
    } unknown12s[unknown12Count];
    uint32 regionCount;
    struct Region
    {
        byte nameBuffer[32];
        uint32 indexCount;
        uint32 indices[indexCount];
    } regions[regionCount] <optimize=false>;
} genworld;

Home
FAQ

For FMTK Users and Mod Developers

Read the Docs

For FMTK Developers

Asobo BigFile Format Specification
Asobo Classes
      Animation_Z
      Binary_Z
      Bitmap_Z
      Camera_Z
      CollisionVol_Z
      Fonts_Z
      GameObj_Z
      GenWorld_Z
      GwRoad_Z
      Keyframer*_Z
      Light_Z
      LightData_Z
      Lod_Z
      LodData_Z
      Material_Z
      MaterialAnim_Z
      MaterialObj_Z
      Mesh_Z
      MeshData_Z
      Node_Z
      Omni_Z
      Particles_Z
      ParticlesData_Z
      RotShape_Z
      RotShapeData_Z
      Rtc_Z
      Skel_Z
      Skin_Z
      Sound_Z
      Spline_Z
      SplineGraph_Z
      Surface_Z
      SurfaceDatas_Z
      UserDefine_Z
      Warp_Z
      World_Z
      WorldRef_Z
Asobo File Format Idioms
Asobo CRC32
Asobo LZ Compression
Asobo Arithmetic Coding Compression
Asobo Save Game File Format Specification
Asobo Audio Formats
TotemTech/ToonTech/Zouna/ACE/BSSTech/Opal Timeline
Zouna Modding Resources
Miscellaneous

Clone this wiki locally