#ifndef EDITSCENE_CHARACTERSLOTS_HPP
#define EDITSCENE_CHARACTERSLOTS_HPP
#pragma once
#include <Ogre.h>
#include <unordered_map>
#include <vector>

#include "AnimationTree.hpp"

/**
 * Selection criteria for a single character slot.
 * Layer 0 (nude base) can be selected via combo box (e.g. hair styles).
 * Layer 1 and 2 are selected via combo boxes.
 */
struct SlotSelection {
	Ogre::String layer0Mesh; // "none" or exact mesh name for layer 0
	Ogre::String layer1Mesh; // "none" or exact mesh name for layer 1
	Ogre::String layer2Mesh; // "none" or exact mesh name for layer 2
	Ogre::String explicitMesh; // backward-compat override
};

/**
 * Deprecated marker component for characters.
 *
 * All persistent character appearance data (sex, slot selections, shape keys,
 * front axis) now lives in CharacterRegistry::CharacterRecord.  This component
 * is kept only as a temporary reminder for scenes that still contain it; it
 * is not serialized, cannot be added from the editor, and does not affect
 * runtime behavior.
 */
struct CharacterSlotsComponent {
};

/**
 * Deprecated marker component for character shape keys.
 *
 * Shape key weights are now stored in
 * CharacterRegistry::CharacterRecord::inlineShapeKeyWeights.
 */
struct CharacterShapeKeysComponent {
};

#endif // EDITSCENE_CHARACTERSLOTS_HPP
