#pragma once #include #include #include #include "Common/ByteStream.hpp" using CharacterAttributeKV = std::pair; class CharacterSlotData { private: std::vector m_metaData; public: CharacterSlotData() = default; CharacterSlotData( const std::vector< uint8_t > &data ); void Deserialize( const std::vector< uint8_t > &data ); void Deserialize( const sptr_byte_stream stream ); std::vector Serialize() const; bool empty() const { return m_metaData.empty(); } const std::vector &GetMetaData() const { return m_metaData; } void SetMetaData( const std::vector &metaData ) { m_metaData = metaData; } std::wstring GetValue( std::wstring key ) { for( const auto &kv : m_metaData ) { if( kv.first == key ) { return kv.second; } } return L""; } };