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"
22 Container::Container() : StaticMapObject()
24 items
.reserve(MAX_ITEMS
);
26 vector
<Item
*>::iterator currentItem
;
27 for(currentItem
= items
.begin(); currentItem
!= items
.end(); currentItem
++)
34 /* Returns number of Items in Container */
35 int Container::getItemCount()
38 vector
<Item
*>::iterator currentItem
;
39 for(currentItem
= items
.begin(); currentItem
!= items
.end(); currentItem
++)
41 if(*currentItem
!= NULL
) validItemCount
++;
43 return validItemCount
;
47 Item
* Container::getItem(int index
)
49 Item
* itemToReturn
= NULL
;
51 if(!items
.empty() && index
< MAX_ITEMS
)
53 itemToReturn
= items
[index
];
60 /* Insert Item in Container */
61 bool Container::putItem(Item
* item
)
63 bool itemAdded
= false;
67 vector
<Item
*>::iterator currentItem
;
68 for(currentItem
= items
.begin(); currentItem
!= items
.end() && !itemAdded
; currentItem
++)
70 if(*currentItem
!= NULL
)
80 /* Can Container be opened? */
81 bool Container::isOpenable()
86 /* What Item is cursor pointing at? */
87 string
Container::peek(int index
)
89 assert(index
< MAX_ITEMS
);
91 return items
[index
]->getName();