int main(void) { auto renderWindow = CreateRenderWindow(); auto inputComponent = CreateInputHandler(renderWindow); auto gameBoard = CreateGameBoard(); const auto numTiles = gameBoard->GetNumTiles(); auto renderComponent = CreateGameRenderer(*gameBoard, renderWindow); auto boardController = std::make_unique<BoardController>(std::move(gameBoard)); auto playerController = CreatePlayerController(NUM_PLAYERS); { auto chooser = std::make_shared<TileChooser>(NUM_PLAYERS, 10, *renderComponent); inputComponent->AddObserver(chooser); chooser->ChooseTiles(); //chooser->AutoChooseTiles(); chooser->AssignTilesToPlayers(*playerController); } { auto manager = std::make_shared<GameManager>(std::move(renderComponent), std::move(boardController), playerController); inputComponent->AddObserver(manager); playerController->ObserveTimers(manager); manager->StartGame(); } glfwDestroyWindow(renderWindow); glfwTerminate(); }
bool sTileset::AppendImage(const char* filename) { sTileset tileset; if (!tileset.Import_Image(filename)) return false; int iInsertAt = GetNumTiles(); AppendTiles(tileset.GetNumTiles()); for (int i = 0; i < tileset.GetNumTiles(); i++) m_Tiles[iInsertAt + i] = tileset.GetTile(i); return true; }
glm::uvec2 ForwardPlusHelper::GetNumTiles(const glm::uvec2& screenSize) { return GetNumTiles(screenSize.x, screenSize.y); }