inventory reindexing

This commit is contained in:
MihailRis
2024-01-26 15:35:23 +03:00
parent 1409df4b86
commit 51ffb93230
12 changed files with 174 additions and 51 deletions
+11
View File
@@ -1,5 +1,7 @@
#include "Inventory.h"
#include "../content/ContentLUT.h"
Inventory::Inventory(size_t size) : slots(size) {
}
@@ -71,4 +73,13 @@ std::unique_ptr<dynamic::Map> Inventory::write() const {
return map;
}
void Inventory::convert(dynamic::Map* data, const ContentLUT* lut) {
auto slotsarr = data->list("slots");
for (size_t i = 0; i < slotsarr->size(); i++) {
auto item = slotsarr->map(i);
itemid_t id = item->getInt("id", ITEM_EMPTY);
item->put("id", lut->getItemId(id));
}
}
const size_t Inventory::npos = -1;
+3
View File
@@ -9,6 +9,7 @@
#include "../typedefs.h"
#include "../data/dynamic.h"
class ContentLUT;
class ContentIndices;
// TODO: items indices fix
@@ -36,6 +37,8 @@ public:
/* serializing inventory */
std::unique_ptr<dynamic::Map> write() const;
static void convert(dynamic::Map* data, const ContentLUT* lut);
static const size_t npos;
};