#ifndef EDITSCENE_CHARACTER_CLASS_DATABASE_EDITOR_HPP
#define EDITSCENE_CHARACTER_CLASS_DATABASE_EDITOR_HPP
#pragma once

#include <Ogre.h>
#include <imgui.h>
#include <vector>

/**
 * Editor window for the CharacterClassDatabase singleton.
 *
 * Allows adding/removing stats, skills, needs, and classes,
 * as well as editing formulas and base values.
 */
class CharacterClassDatabaseEditor {
public:
	void render(bool *open);

private:
	void renderStatsTab();
	void renderSkillsTab();
	void renderNeedsTab();
	void renderClassesTab();

	// Edit buffers
	char m_nameBuf[128] = {};
	char m_displayBuf[128] = {};
	char m_formulaBuf[256] = {};
	char m_descBuf[256] = {};

	int m_intBuf = 0;
	int m_maxVal = 999;
	float m_floatBuf = 0.0f;
	int m_lowThreshold = 0;
	int m_highThreshold = 1000;
	int m_statKindIdx = 0; // 0 = Attribute, 1 = ResourcePool
};

#endif // EDITSCENE_CHARACTER_CLASS_DATABASE_EDITOR_HPP
