File: convertinventory.cpp

package info (click to toggle)
openmw 0.49.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,992 kB
  • sloc: cpp: 372,479; xml: 2,149; sh: 1,403; python: 797; makefile: 26
file content (30 lines) | stat: -rw-r--r-- 1,026 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "convertinventory.hpp"

#include <components/misc/strings/lower.hpp>

#include <cstdlib>

namespace ESSImport
{

    void convertInventory(const Inventory& inventory, ESM::InventoryState& state)
    {
        uint32_t index = 0;
        for (const auto& item : inventory.mItems)
        {
            ESM::ObjectState objstate;
            objstate.blank();
            objstate.mRef = item;
            objstate.mRef.mRefID = ESM::RefId::stringRefId(item.mId);
            objstate.mRef.mCount = item.mCount;
            state.mItems.push_back(objstate);
            if (item.mRelativeEquipmentSlot != -1)
                // Note we should really write the absolute slot here, which we do not know about
                // Not a big deal, OpenMW will auto-correct to a valid slot, the only problem is when
                // an item could be equipped in two different slots (e.g. equipped two rings)
                state.mEquipmentSlots[index] = item.mRelativeEquipmentSlot;
            ++index;
        }
    }

}