diff --git a/sources/Runner/ScoreScene.cpp b/sources/Runner/ScoreScene.cpp index b746b28e..f523e8f9 100644 --- a/sources/Runner/ScoreScene.cpp +++ b/sources/Runner/ScoreScene.cpp @@ -33,20 +33,21 @@ namespace BBM "1st", "2nd", "3rd", "4th" }; - for (auto &[entity, score, drawable]: gameScene.view()) - players.push_back(entity); + for (WAL::Entity &entity: gameScene.view()) + players.emplace_back(entity); std::sort(players.begin(), players.end(), [](WAL::Entity &entityA, WAL::Entity &entityB) { return entityA.getComponent().aliveTime > entityB.getComponent().aliveTime; }); + auto bestTime = players.front().get().getComponent().aliveTime; - for (auto &entity: players) { - RAY3D::Model *model = dynamic_cast(entity.get().getComponent().drawable.get()); + for (auto &entity : players) { + auto *model = dynamic_cast(entity.get().getComponent().drawable.get()); std::string path = model->getTextureByMaterial(MAP_DIFFUSE).getResourcePath(); playersIconPath.push_back(path.replace(path.find("textures"), std::string("textures").size(), "icons")); } addMenuControl(*scene, sounds); - scene->addEntity("Audio ressources") + scene->addEntity("Audio resources") .addComponent("assets/musics/music_result.ogg") .addComponent(sounds); scene->addEntity("background") @@ -58,34 +59,36 @@ namespace BBM scene->addEntity("scene title text") .addComponent(1920 / 2.37, 250, 0) .addComponent("CONGRATS", 50, RAY::Vector2(), ORANGE); - for (size_t i = 0; i < players.size(); i++) { + for (std::size_t i = 0; i < players.size(); i++) { + std::size_t place = i; + if (players[i].get().getComponent().aliveTime == bestTime) + place = 0; + scene->addEntity("player tile") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.5, 0) .addComponent(RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), - RAY::Vector2(200, 200), tilesColor[i]); + RAY::Vector2(200, 200), tilesColor[place]); scene->addEntity("player rank name") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.75, 0) - .addComponent(rankName[i], 30, + .addComponent(rankName[place], 30, RAY::Vector2(224 * (i + 1) + 200 * i, 1080 / 3), - tilesColor[i]); + tilesColor[place]); scene->addEntity("player") .addComponent(224 * (i + 1) + 200 * i, 1080 / 2.5, 0) - .addComponent(playersIconPath[i]); + .addComponent(playersIconPath[place]); } scene->addEntity("back to main menu") .addComponent(10, 1080 - 85, 0) .addComponent("assets/buttons/button_back.png") - .addComponent([](WAL::Entity &entity, WAL::Wal &) { + .addComponent([](WAL::Entity &, WAL::Wal &) { gameState.nextScene = BBM::GameState::SceneID::MainMenuScene; }) .addComponent([](WAL::Entity &entity, WAL::Wal &) { - RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); - + auto *texture = dynamic_cast(entity.getComponent().drawable.get()); texture->use("assets/buttons/button_back.png"); }) .addComponent([](WAL::Entity &entity, WAL::Wal &) { - RAY::Texture *texture = dynamic_cast(entity.getComponent().drawable.get()); - + auto *texture = dynamic_cast(entity.getComponent().drawable.get()); texture->use("assets/buttons/button_back_hovered.png"); }); return scene;