Limitation à deux joueurs par niveau

This commit is contained in:
Mattéo Delabre 2016-04-11 01:36:20 +02:00
parent a04e5b097b
commit b472cadfcd
2 changed files with 8 additions and 4 deletions

View File

@ -343,8 +343,7 @@ Object::Ptr Editor::addObject(sf::Vector2f position) {
} }
if (!overlaps) { if (!overlaps) {
Level::addObject(object); return Level::addObject(object);
return object;
} }
return nullptr; return nullptr;

View File

@ -3,7 +3,6 @@
#include "player.hpp" #include "player.hpp"
#include "block.hpp" #include "block.hpp"
#include "gravity_block.hpp" #include "gravity_block.hpp"
#include <iostream>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <cstring> #include <cstring>
#include <queue> #include <queue>
@ -349,10 +348,15 @@ const std::vector<Player::Ptr>& Level::getPlayers() const {
return players; 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 // si c'est un joueur, on le met dans le tableau des joueurs
// et on lui attribue un numéro // et on lui attribue un numéro
if (object->getTypeId() == Player::TYPE_ID) { 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<Player>(object); Player::Ptr player = std::dynamic_pointer_cast<Player>(object);
player->setPlayerNumber(players.size()); player->setPlayerNumber(players.size());
@ -360,6 +364,7 @@ void Level::addObject(Object::Ptr object) {
} }
objects.push_back(object); objects.push_back(object);
return object;
} }
void Level::removeObject(Object::Ptr object) { void Level::removeObject(Object::Ptr object) {