mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 21:49:55 +00:00
ESSImport: convert inventory equipment slots
This commit is contained in:
parent
89d9649b50
commit
03df659e7d
3 changed files with 13 additions and 2 deletions
|
@ -16,7 +16,7 @@ namespace ESSImport
|
|||
objstate.mCount = std::abs(it->mCount); // restocking items have negative count in the savefile
|
||||
// openmw handles them differently, so no need to set any flags
|
||||
objstate.mRef.mCharge = it->mCondition;
|
||||
state.mItems.push_back(std::make_pair(objstate, -1));
|
||||
state.mItems.push_back(std::make_pair(objstate, it->mRelativeEquipmentSlot));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include "importinventory.hpp"
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
#include <components/esm/esmreader.hpp>
|
||||
|
||||
#include <components/esm/loadcont.hpp>
|
||||
|
@ -17,6 +19,7 @@ namespace ESSImport
|
|||
InventoryItem item;
|
||||
item.mId = contItem.mItem.toString();
|
||||
item.mCount = contItem.mCount;
|
||||
item.mRelativeEquipmentSlot = -1;
|
||||
|
||||
// seems that a stack of items can have a set of subrecords for each item? rings0000.ess
|
||||
// doesn't make any sense to me, if the values were different then the items shouldn't stack in the first place?
|
||||
|
@ -55,14 +58,21 @@ namespace ESSImport
|
|||
{
|
||||
// note: same item can be equipped 2 items (e.g. 2 rings)
|
||||
// and will be *stacked* in the NPCO list, unlike openmw!
|
||||
// this is currently not handled properly.
|
||||
|
||||
esm.getSubHeader();
|
||||
int itemIndex; // index of the item in the NPCO list
|
||||
esm.getT(itemIndex);
|
||||
|
||||
if (itemIndex < 0 || itemIndex >= int(mItems.size()))
|
||||
esm.fail("equipment item index out of range");
|
||||
|
||||
// appears to be a relative index for only the *possible* slots this item can be equipped in,
|
||||
// i.e. 0 most of the time, unlike openmw slot enum index
|
||||
// i.e. 0 most of the time
|
||||
int slotIndex;
|
||||
esm.getT(slotIndex);
|
||||
|
||||
mItems[itemIndex].mRelativeEquipmentSlot = slotIndex;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ namespace ESSImport
|
|||
std::string mId;
|
||||
int mCount;
|
||||
int mCondition;
|
||||
int mRelativeEquipmentSlot;
|
||||
};
|
||||
std::vector<InventoryItem> mItems;
|
||||
|
||||
|
|
Loading…
Reference in a new issue