#pragma once #include #include #include #include "button.h" #include "analog.h" #include "light.h" #include "option.h" #include "external/tinyxml2/tinyxml2.h" class Game { public: explicit Game(std::string game_name) : game_name(std::move(game_name)) {}; /* template Game(std::string gameName) : gameName(std::move(gameName)) {}; */ ~Game() = default; inline const std::string &getGameName() const { return this->game_name; }; inline std::vector &getDLLNames() { return this->dll_names; } inline void addDLLName(std::string dll_name) { this->dll_names.push_back(std::move(dll_name)); } template void addItems(T t) { this->addItem(t); } template void addItems(T t, Rest... rest) { this->addItem(t); this->addItems(rest...); } inline std::vector