diff --git a/src/net/Types.hpp b/src/net/Types.hpp index 512d81b..3515db6 100644 --- a/src/net/Types.hpp +++ b/src/net/Types.hpp @@ -1,6 +1,7 @@ #ifndef NET_TYPES_HPP #define NET_TYPES_HPP +#include "object/Types.hpp" #include #include @@ -1186,12 +1187,6 @@ struct REALM_INFO { uint16_t revision; }; -struct INVENTORY_ITEM { - uint8_t type; - uint32_t displayID; - uint32_t auraID; -}; - struct CHARACTER_INFO { uint64_t guid; char name[48]; @@ -1199,7 +1194,9 @@ struct CHARACTER_INFO { uint32_t zoneID; uint32_t guildID; C3Vector position; - INVENTORY_ITEM items[23]; + uint32_t inventoryItemDisplayID[NUM_INVENTORY_SLOTS]; + uint32_t inventoryItemType[NUM_INVENTORY_SLOTS]; + uint32_t inventoryItemVisualID[NUM_INVENTORY_SLOTS]; uint32_t petDisplayInfoID; uint32_t petExperienceLevel; uint32_t petCreatureFamilyID; diff --git a/src/net/connection/RealmConnection.cpp b/src/net/connection/RealmConnection.cpp index 2c3363c..e743658 100644 --- a/src/net/connection/RealmConnection.cpp +++ b/src/net/connection/RealmConnection.cpp @@ -1,6 +1,7 @@ #include "net/connection/RealmConnection.hpp" #include "net/connection/RealmResponse.hpp" #include "net/Types.hpp" +#include "object/Types.hpp" #include #include #include @@ -246,10 +247,19 @@ int32_t RealmConnection::HandleCharEnum(uint32_t msgId, uint32_t time, CDataStor msg->Get(character.petExperienceLevel); msg->Get(character.petCreatureFamilyID); - for (auto& item : character.items) { - msg->Get(item.displayID); - msg->Get(item.type); - msg->Get(item.auraID); + for (int32_t s = 0; s < NUM_INVENTORY_SLOTS; s++) { + uint32_t displayID; + msg->Get(displayID); + + uint8_t itemType; + msg->Get(itemType); + + uint32_t visualID; + msg->Get(visualID); + + character.inventoryItemDisplayID[s] = displayID; + character.inventoryItemType[s] = itemType; + character.inventoryItemVisualID[s] = visualID; } }