Added >, <, >=, <= operators to Coordinate. Implemented RectHardpoint.
[asgard.git] / Container.cpp
blobbabf8ede4fb782c1d125dc62c52e5545cb2bd542
1 /*****************************************************************************
2 * Copyright (c) 2006 Russ Adams, Sean Eubanks, Asgard Contributors
3 * This file is part of Asgard.
5 * Asgard is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * Asgard is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with Asgard; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 ****************************************************************************/
19 #include "Container.h"
21 Container::Container(const Coordinate& leftCorner,list<int>& boundingBoxes,int h,int w,vector<Hardpoint*>& hpV)
22 : StaticMapObject(leftCorner,boundingBoxes,h,w,hpV)
24 items.reserve(MAX_ITEMS);
25 cursor = items.begin();
28 int Container::getItemCount()
30 return items.size();
33 Item* Container::getItem(string n)
35 vector<Item*>::iterator i1;
36 Item* itPtr = 0;
37 for(i1 = items.begin(); i1 != items.end(); i1++)
39 if((*(*i1)).getName() == n)
41 itPtr = *i1;
42 break;
45 items.erase(i1);
46 return itPtr;
49 bool Container::putItem(Item* itPtr)
51 if((itPtr != 0) && (items.size() < MAX_ITEMS))
53 items.push_back(itPtr);
54 return true;
56 else
57 return false;
60 bool Container::isOpenable()
62 return true;
65 string Container::peekNext()
67 cursor++;
68 return (*(*cursor)).getName();
71 string Container::peekPrevious()
73 cursor--;
74 return (*(*cursor)).getName();