forked from teamnwah/openmw-tes3coop
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.8 KiB
C++
44 lines
1.8 KiB
C++
|
|
#include "containerutil.hpp"
|
|
|
|
namespace
|
|
{
|
|
template<typename T>
|
|
void listItemsInContainerImp (const std::string& id,
|
|
ESMS::CellRefList<T, MWWorld::RefData>& containerStore,
|
|
const ESMS::RecListT<T>& store, std::vector<MWWorld::Ptr>& list)
|
|
{
|
|
if (const T *record = store.search (id))
|
|
{
|
|
for (typename ESMS::CellRefList<T, MWWorld::RefData>::List::iterator iter
|
|
(containerStore.list.begin());
|
|
iter!=containerStore.list.end(); ++iter)
|
|
{
|
|
if (iter->base==record)
|
|
list.push_back (MWWorld::Ptr (&*iter, 0));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace MWWorld
|
|
{
|
|
void listItemsInContainer (const std::string& id,
|
|
ContainerStore<MWWorld::RefData>& containerStore,
|
|
const ESMS::ESMStore& store, std::vector<Ptr>& list)
|
|
{
|
|
listItemsInContainerImp (id, containerStore.potions, store.potions, list);
|
|
listItemsInContainerImp (id, containerStore.appas, store.appas, list);
|
|
listItemsInContainerImp (id, containerStore.armors, store.armors, list);
|
|
listItemsInContainerImp (id, containerStore.books, store.books, list);
|
|
listItemsInContainerImp (id, containerStore.clothes, store.clothes, list);
|
|
listItemsInContainerImp (id, containerStore.ingreds, store.ingreds, list);
|
|
listItemsInContainerImp (id, containerStore.lights, store.lights, list);
|
|
listItemsInContainerImp (id, containerStore.lockpicks, store.lockpicks, list);
|
|
listItemsInContainerImp (id, containerStore.miscItems, store.miscItems, list);
|
|
listItemsInContainerImp (id, containerStore.probes, store.probes, list);
|
|
listItemsInContainerImp (id, containerStore.repairs, store.repairs, list);
|
|
listItemsInContainerImp (id, containerStore.weapons, store.weapons, list);
|
|
}
|
|
}
|