From b472cadfcd0bc22ba796968171bb477dcf824886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Mon, 11 Apr 2016 01:36:20 +0200 Subject: [PATCH] =?UTF-8?q?Limitation=20=C3=A0=20deux=20joueurs=20par=20ni?= =?UTF-8?q?veau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/editor.cpp | 3 +-- src/level.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/editor.cpp b/src/editor.cpp index 190bdc3..38548ec 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -343,8 +343,7 @@ Object::Ptr Editor::addObject(sf::Vector2f position) { } if (!overlaps) { - Level::addObject(object); - return object; + return Level::addObject(object); } return nullptr; diff --git a/src/level.cpp b/src/level.cpp index c8b22ab..7df335d 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -3,7 +3,6 @@ #include "player.hpp" #include "block.hpp" #include "gravity_block.hpp" -#include #include #include #include @@ -349,10 +348,15 @@ const std::vector& Level::getPlayers() const { return players; } -void Level::addObject(Object::Ptr object) { +Object::Ptr Level::addObject(Object::Ptr object) { // si c'est un joueur, on le met dans le tableau des joueurs // et on lui attribue un numéro if (object->getTypeId() == Player::TYPE_ID) { + // on n'autorise pas plus de deux joueurs + if (players.size() >= 2) { + return nullptr; + } + Player::Ptr player = std::dynamic_pointer_cast(object); player->setPlayerNumber(players.size()); @@ -360,6 +364,7 @@ void Level::addObject(Object::Ptr object) { } objects.push_back(object); + return object; } void Level::removeObject(Object::Ptr object) {