This commit is contained in:
cdemeyer-teachx
2025-08-21 09:50:16 +09:00
parent 212fdcd74f
commit 32b031f734
3 changed files with 38 additions and 24 deletions

View File

@@ -116,6 +116,8 @@ inline const std::span<const TypeMultiplier> TypeUtils::getTypeChart() {
return s_typeChart[static_cast<size_t>(Gen)];
}
void initializeTypeCharts();
} // namespace PokEng
#endif // POKEMON_m_typesH

View File

@@ -254,34 +254,30 @@ std::span<const TypeMultiplier> getDuplicateTypeChart(const std::array<TypeMulti
}
// Initialize type charts on startup
struct TypeChartInitializer {
TypeChartInitializer() {
// Load type charts for each generation and store them in static arrays
TypeUtils::s_typeChart[static_cast<size_t>(Generation::I)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-i.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::II)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-ii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::III)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-iii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::IV)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-iv.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::V)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-v.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VI)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-vi.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VII)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-vii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VIII)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-viii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::IX)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-ix.json"));
}
void initializeTypeCharts() {
// Load type charts for each generation and store them in static arrays
TypeUtils::s_typeChart[static_cast<size_t>(Generation::I)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-i.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::II)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-ii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::III)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-iii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::IV)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-iv.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::V)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-v.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VI)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-vi.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VII)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-vii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::VIII)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-viii.json"));
TypeUtils::s_typeChart[static_cast<size_t>(Generation::IX)] =
getDuplicateTypeChart(loadTypeChartFromFile("../data/types/generation-ix.json"));
};
// Definition of the static type chart array
std::array<std::span<const TypeMultiplier>, static_cast<size_t>(Generation::IX) + 1> TypeUtils::s_typeChart;
// Static initializer to load type charts at program startup
static TypeChartInitializer s_initializer;
} // namespace PokEng

16
src/main.cpp Normal file
View File

@@ -0,0 +1,16 @@
#include <iostream>
#include "core/types.h"
#include "core/pokemon_table.h"
using namespace PokEng;
int main() {
initializeTypeCharts();
initializePokemonTable();
}