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)]; return s_typeChart[static_cast<size_t>(Gen)];
} }
void initializeTypeCharts();
} // namespace PokEng } // namespace PokEng
#endif // POKEMON_m_typesH #endif // POKEMON_m_typesH

View File

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