






#ifndef XCLIPMAP_H
#define XCLIPMAP_H

#include "xasset.h"
#include <QString>

class XCStaticModel_s; // Forward declaration
class XCollisionAabbTree; // Forward declaration
class XDmaterial_t; // Forward declaration
class XCLeafBrushNode; // Forward declaration

class XClipMap : public XAsset
{
public:
    explicit XClipMap();

    void ParseData(QDataStream *aStream) override;

    const QString& GetName() const;
    void SetName(const QString& name);

    int GetChecksum() const;
    void SetChecksum(int checksum);

    // Note: In a real implementation, we would have proper handling for these arrays
    // For now, we'll just use placeholders
    void* GetStaticModels() const;
    void SetStaticModels(void* staticModels);

    int GetNumStaticModels() const;
    void SetNumStaticModels(int count);

    void* GetCollisionAabbTrees() const;
    void SetCollisionAabbTrees(void* trees);

    int GetNumCollisionAabbTrees() const;
    void SetNumCollisionAabbTrees(int count);

    void* GetMaterials() const;
    void SetMaterials(void* materials);

    int GetNumMaterials() const;
    void SetNumMaterials(int count);

    void* GetLeafBrushNodes() const;
    void SetLeafBrushNodes(void* nodes);

    int GetNumLeafBrushNodes() const;
    void SetNumLeafBrushNodes(int count);

private:
    QString mName = "";
    int mChecksum = 0;

    // Placeholders for arrays
    void* mStaticModels = nullptr; // Placeholder for XCStaticModel_s*
    int mNumStaticModels = 0;

    void* mCollisionAabbTrees = nullptr; // Placeholder for XCollisionAabbTree*
    int mNumCollisionAabbTrees = 0;

    void* mMaterials = nullptr; // Placeholder for XDmaterial_t*
    int mNumMaterials = 0;

    void* mLeafBrushNodes = nullptr; // Placeholder for XCLeafBrushNode*
    int mNumLeafBrushNodes = 0;
};

#endif // XCLIPMAP_H






