better managed ownership (two new functions in level.h)
This commit is contained in:
25
src/level.cc
25
src/level.cc
@ -237,14 +237,35 @@ position level::get_down_stairs() const {
|
||||
return map.get_down_stairs();
|
||||
}
|
||||
|
||||
enemy_list &level::get_elist() {
|
||||
const enemy_list &level::get_elist() {
|
||||
return elist;
|
||||
}
|
||||
|
||||
potion_list &level::get_plist() {
|
||||
const potion_list &level::get_plist() {
|
||||
return plist;
|
||||
}
|
||||
|
||||
gold_list &level::get_glist() {
|
||||
return glist;
|
||||
}
|
||||
|
||||
std::unique_ptr<potion> level::detach_potion(size_t idx) {
|
||||
if (idx >= plist.size())
|
||||
return nullptr;
|
||||
|
||||
auto tmp = std::move(pplist[idx]);
|
||||
plist.erase(plist.begin() + idx);
|
||||
pplist.erase(pplist.begin() + idx);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
void level::erase_enemy(character *ch) {
|
||||
if (ch == nullptr)
|
||||
return;
|
||||
|
||||
for (size_t i = 0; i < elist.size(); ++i)
|
||||
if (elist[i] == ch) {
|
||||
elist.erase(elist.begin() + i);
|
||||
pelist.erase(pelist.begin() + i);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user