Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentation/src/orxonox/objects/pickup/BaseItem.cc @ 2500

Last change on this file since 2500 was 2500, checked in by landauf, 15 years ago

merged pickups2 to presentation

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1/* has to be added to player
2   multimap<std::string, BaseItem*> Equipment;*/
3
4
5#include "BaseItem.h"
6#include "core/CoreIncludes.h"
7#include "core/XMLPort.h"
8#include "util/String.h"
9#include "objects/worldentities/pawns/Pawn.h"
10
11
12namespace orxonox
13{
14BaseItem::BaseItem(BaseObject* creator) : BaseObject(creator)
15{
16        RegisterObject(BaseItem);
17
18        this->playerBaseClass_ = 0;
19}
20
21BaseItem::~BaseItem()
22{
23}
24    void BaseItem::XMLPort(Element& xmlelement, XMLPort::Mode mode)
25    {
26        SUPER(BaseItem, XMLPort, xmlelement, mode);
27
28        XMLPortParam(BaseItem, "playerclass", setPlayerBaseClassName, getPlayerBaseClassName, xmlelement, mode);
29    }
30
31bool BaseItem::addTo (Pawn* player)
32{
33
34        return player->getPickUp().insert(this);
35        /*if(checkSlot(player)==true)
36        player->pickUp.Equipment.insert ( std::pair<std::string, BaseItem*>(this->getName(),this) );
37        else
38        COUT(3) << "swap?" << std::endl;*/
39}
40bool BaseItem::remove(Pawn* player)
41{
42        /*if(player->pickUp.Equipment.find(this->getName())!= player->pickUp.Equipment.end())
43        {
44        std::multimap<std::string,BaseItem*>::iterator it;
45        it=player->pickUp.Equipment.find(this->getName());
46        player->pickUp.Equipment.erase (it);
47        return true;
48        }
49        else
50        return false;*/
51        return player->getPickUp().erase(this);
52}
53bool BaseItem::checkSlot(Pawn* player)
54{
55        /*std::multimap<std::string,BaseItem*>::iterator it;
56        for ( it=player->getPickUp().getEquipment().begin() ; it != player->getPickUp().getEquipment().end(); it++ )
57        {
58        if((*it).second->playerBaseClass_==this->playerBaseClass_)
59                //das isch schmarre...machs mit isExactlyA(...)
60        return false;
61        }
62        return true;*/
63        return player->getPickUp().checkSlot(this);
64}
65void BaseItem::setPlayerBaseClassName(const std::string& name)
66{
67        this->playerBaseClass_ = ClassByString(name);
68}
69
70const std::string& BaseItem::getPlayerBaseClassName() const
71{
72        if (this->playerBaseClass_)
73                return this->playerBaseClass_->getName();
74        else
75                return BLANKSTRING;
76}
77}
Note: See TracBrowser for help on using the repository browser.