1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-03 13:01:33 +02:00

Code formatting and cleanup

This commit is contained in:
Ivan Savenko 2024-05-17 16:36:07 +00:00
parent f3de2cfe1c
commit 8754e0ebb3
6 changed files with 73 additions and 125 deletions

View File

@ -332,7 +332,7 @@ void CClient::initPlayerInterfaces()
logNetwork->trace("Initialized player interfaces %d ms", CSH->th->getDiff()); logNetwork->trace("Initialized player interfaces %d ms", CSH->th->getDiff());
} }
std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman) std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman) const
{ {
if(ps.name.size()) if(ps.name.size())
{ {
@ -344,7 +344,7 @@ std::string CClient::aiNameForPlayer(const PlayerSettings & ps, bool battleAI, b
return aiNameForPlayer(battleAI, alliedToHuman); return aiNameForPlayer(battleAI, alliedToHuman);
} }
std::string CClient::aiNameForPlayer(bool battleAI, bool alliedToHuman) std::string CClient::aiNameForPlayer(bool battleAI, bool alliedToHuman) const
{ {
const int sensibleAILimit = settings["session"]["oneGoodAI"].Bool() ? 1 : PlayerColor::PLAYER_LIMIT_I; const int sensibleAILimit = settings["session"]["oneGoodAI"].Bool() ? 1 : PlayerColor::PLAYER_LIMIT_I;
std::string goodAdventureAI = alliedToHuman ? settings["server"]["alliedAI"].String() : settings["server"]["playerAI"].String(); std::string goodAdventureAI = alliedToHuman ? settings["server"]["alliedAI"].String() : settings["server"]["playerAI"].String();

View File

@ -138,8 +138,8 @@ public:
void initMapHandler(); void initMapHandler();
void initPlayerEnvironments(); void initPlayerEnvironments();
void initPlayerInterfaces(); void initPlayerInterfaces();
std::string aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman); //empty means no AI -> human std::string aiNameForPlayer(const PlayerSettings & ps, bool battleAI, bool alliedToHuman) const; //empty means no AI -> human
std::string aiNameForPlayer(bool battleAI, bool alliedToHuman); std::string aiNameForPlayer(bool battleAI, bool alliedToHuman) const;
void installNewPlayerInterface(std::shared_ptr<CGameInterface> gameInterface, PlayerColor color, bool battlecb = false); void installNewPlayerInterface(std::shared_ptr<CGameInterface> gameInterface, PlayerColor color, bool battlecb = false);
void installNewBattleInterface(std::shared_ptr<CBattleGameInterface> battleInterface, PlayerColor color, bool needCallback = true); void installNewBattleInterface(std::shared_ptr<CBattleGameInterface> battleInterface, PlayerColor color, bool needCallback = true);

View File

@ -59,54 +59,6 @@ ObjectTemplate::ObjectTemplate():
{ {
} }
ObjectTemplate::ObjectTemplate(const ObjectTemplate& other):
visitDir(other.visitDir),
allowedTerrains(other.allowedTerrains),
id(other.id),
subid(other.subid),
printPriority(other.printPriority),
animationFile(other.animationFile),
editorAnimationFile(other.editorAnimationFile),
stringID(other.stringID),
width(other.width),
height(other.height),
visitable(other.visitable),
blockedOffsets(other.blockedOffsets),
blockMapOffset(other.blockMapOffset),
visitableOffset(other.visitableOffset)
{
//default copy constructor is failing with usedTiles this for unknown reason
usedTiles.resize(other.usedTiles.size());
for(size_t i = 0; i < usedTiles.size(); i++)
std::copy(other.usedTiles[i].begin(), other.usedTiles[i].end(), std::back_inserter(usedTiles[i]));
}
ObjectTemplate & ObjectTemplate::operator=(const ObjectTemplate & rhs)
{
visitDir = rhs.visitDir;
allowedTerrains = rhs.allowedTerrains;
id = rhs.id;
subid = rhs.subid;
printPriority = rhs.printPriority;
animationFile = rhs.animationFile;
editorAnimationFile = rhs.editorAnimationFile;
stringID = rhs.stringID;
width = rhs.width;
height = rhs.height;
visitable = rhs.visitable;
blockedOffsets = rhs.blockedOffsets;
blockMapOffset = rhs.blockMapOffset;
visitableOffset = rhs.visitableOffset;
usedTiles.clear();
usedTiles.resize(rhs.usedTiles.size());
for(size_t i = 0; i < usedTiles.size(); i++)
std::copy(rhs.usedTiles[i].begin(), rhs.usedTiles[i].end(), std::back_inserter(usedTiles[i]));
return *this;
}
void ObjectTemplate::afterLoadFixup() void ObjectTemplate::afterLoadFixup()
{ {
if(id == Obj::EVENT) if(id == Obj::EVENT)

View File

@ -123,10 +123,6 @@ public:
bool canBePlacedAt(TerrainId terrain) const; bool canBePlacedAt(TerrainId terrain) const;
ObjectTemplate(); ObjectTemplate();
//custom copy constructor is required
ObjectTemplate(const ObjectTemplate & other);
ObjectTemplate& operator=(const ObjectTemplate & rhs);
void readTxt(CLegacyConfigParser & parser); void readTxt(CLegacyConfigParser & parser);
void readMsk(); void readMsk();

View File

@ -101,9 +101,9 @@ class BinaryDeserializer : public CLoaderBase
} }
}; };
STRONG_INLINE ui32 readAndCheckLength() STRONG_INLINE uint32_t readAndCheckLength()
{ {
ui32 length; uint32_t length;
load(length); load(length);
//NOTE: also used for h3m's embedded in campaigns, so it may be quite large in some cases (e.g. XXL maps with multiple objects) //NOTE: also used for h3m's embedded in campaigns, so it may be quite large in some cases (e.g. XXL maps with multiple objects)
if(length > 1000000) if(length > 1000000)
@ -119,7 +119,7 @@ class BinaryDeserializer : public CLoaderBase
class IPointerLoader class IPointerLoader
{ {
public: public:
virtual Serializeable * loadPtr(CLoaderBase &ar, IGameCallback * cb, ui32 pid) const =0; //data is pointer to the ACTUAL POINTER virtual Serializeable * loadPtr(CLoaderBase &ar, IGameCallback * cb, uint32_t pid) const =0; //data is pointer to the ACTUAL POINTER
virtual ~IPointerLoader() = default; virtual ~IPointerLoader() = default;
template<typename Type> static IPointerLoader *getApplier(const Type * t = nullptr) template<typename Type> static IPointerLoader *getApplier(const Type * t = nullptr)
@ -132,7 +132,7 @@ class BinaryDeserializer : public CLoaderBase
class CPointerLoader : public IPointerLoader class CPointerLoader : public IPointerLoader
{ {
public: public:
Serializeable * loadPtr(CLoaderBase &ar, IGameCallback * cb, ui32 pid) const override //data is pointer to the ACTUAL POINTER Serializeable * loadPtr(CLoaderBase &ar, IGameCallback * cb, uint32_t pid) const override //data is pointer to the ACTUAL POINTER
{ {
auto & s = static_cast<BinaryDeserializer &>(ar); auto & s = static_cast<BinaryDeserializer &>(ar);
@ -157,13 +157,13 @@ public:
Version version; Version version;
std::vector<std::string> loadedStrings; std::vector<std::string> loadedStrings;
std::map<ui32, Serializeable*> loadedPointers; std::map<uint32_t, Serializeable*> loadedPointers;
std::map<const Serializeable*, std::shared_ptr<Serializeable>> loadedSharedPointers; std::map<const Serializeable*, std::shared_ptr<Serializeable>> loadedSharedPointers;
IGameCallback * cb = nullptr; IGameCallback * cb = nullptr;
bool smartPointerSerialization; bool smartPointerSerialization;
bool saving; bool saving;
bool hasFeature(Version what) bool hasFeature(Version what) const
{ {
return version >= what; return version >= what;
}; };
@ -238,8 +238,8 @@ public:
template < typename T, typename std::enable_if_t < std::is_array_v<T>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_array_v<T>, int > = 0 >
void load(T &data) void load(T &data)
{ {
ui32 size = std::size(data); uint32_t size = std::size(data);
for(ui32 i = 0; i < size; i++) for(uint32_t i = 0; i < size; i++)
load(data[i]); load(data[i]);
} }
@ -251,7 +251,7 @@ public:
template < typename T, typename std::enable_if_t < std::is_enum_v<T>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_enum_v<T>, int > = 0 >
void load(T &data) void load(T &data)
{ {
si32 read; int32_t read;
load( read ); load( read );
data = static_cast<T>(read); data = static_cast<T>(read);
} }
@ -259,7 +259,7 @@ public:
template < typename T, typename std::enable_if_t < std::is_same_v<T, bool>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_same_v<T, bool>, int > = 0 >
void load(T &data) void load(T &data)
{ {
ui8 read; uint8_t read;
load( read ); load( read );
data = static_cast<bool>(read); data = static_cast<bool>(read);
} }
@ -267,18 +267,18 @@ public:
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0> template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void load(std::vector<T> &data) void load(std::vector<T> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.resize(length); data.resize(length);
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
load( data[i]); load( data[i]);
} }
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0> template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void load(std::deque<T> & data) void load(std::deque<T> & data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.resize(length); data.resize(length);
for(ui32 i = 0; i < length; i++) for(uint32_t i = 0; i < length; i++)
load(data[i]); load(data[i]);
} }
@ -336,7 +336,7 @@ public:
return; return;
} }
ui32 pid = 0xffffffff; //pointer id (or maybe rather pointee id) uint32_t pid = 0xffffffff; //pointer id (or maybe rather pointee id)
if(smartPointerSerialization) if(smartPointerSerialization)
{ {
load( pid ); //get the id load( pid ); //get the id
@ -351,7 +351,7 @@ public:
} }
} }
//get type id //get type id
ui16 tid; uint16_t tid;
load( tid ); load( tid );
if(!tid) if(!tid)
@ -376,7 +376,7 @@ public:
} }
template <typename T> template <typename T>
void ptrAllocated(T *ptr, ui32 pid) void ptrAllocated(T *ptr, uint32_t pid)
{ {
if(smartPointerSerialization && pid != 0xffffffff) if(smartPointerSerialization && pid != 0xffffffff)
loadedPointers[pid] = const_cast<Serializeable*>(dynamic_cast<const Serializeable*>(ptr)); //add loaded pointer to our lookup map; cast is to avoid errors with const T* pt loadedPointers[pid] = const_cast<Serializeable*>(dynamic_cast<const Serializeable*>(ptr)); //add loaded pointer to our lookup map; cast is to avoid errors with const T* pt
@ -394,7 +394,7 @@ public:
NonConstT *internalPtr; NonConstT *internalPtr;
load(internalPtr); load(internalPtr);
Serializeable * internalPtrDerived = static_cast<Serializeable*>(internalPtr); const auto * internalPtrDerived = static_cast<Serializeable*>(internalPtr);
if(internalPtr) if(internalPtr)
{ {
@ -441,16 +441,16 @@ public:
template <typename T, size_t N> template <typename T, size_t N>
void load(std::array<T, N> &data) void load(std::array<T, N> &data)
{ {
for(ui32 i = 0; i < N; i++) for(uint32_t i = 0; i < N; i++)
load( data[i] ); load( data[i] );
} }
template <typename T> template <typename T>
void load(std::set<T> &data) void load(std::set<T> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.clear(); data.clear();
T ins; T ins;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
{ {
load( ins ); load( ins );
data.insert(ins); data.insert(ins);
@ -459,10 +459,10 @@ public:
template <typename T, typename U> template <typename T, typename U>
void load(std::unordered_set<T, U> &data) void load(std::unordered_set<T, U> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.clear(); data.clear();
T ins; T ins;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
{ {
load(ins); load(ins);
data.insert(ins); data.insert(ins);
@ -471,10 +471,10 @@ public:
template <typename T> template <typename T>
void load(std::list<T> &data) void load(std::list<T> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.clear(); data.clear();
T ins; T ins;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
{ {
load(ins); load(ins);
data.push_back(ins); data.push_back(ins);
@ -490,10 +490,10 @@ public:
template <typename T1, typename T2> template <typename T1, typename T2>
void load(std::unordered_map<T1,T2> &data) void load(std::unordered_map<T1,T2> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.clear(); data.clear();
T1 key; T1 key;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
{ {
load(key); load(key);
load(data[key]); load(data[key]);
@ -503,10 +503,10 @@ public:
template <typename T1, typename T2> template <typename T1, typename T2>
void load(std::map<T1,T2> &data) void load(std::map<T1,T2> &data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.clear(); data.clear();
T1 key; T1 key;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
{ {
load(key); load(key);
load(data[key]); load(data[key]);
@ -537,7 +537,7 @@ public:
} }
else else
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
data.resize(length); data.resize(length);
this->read(static_cast<void *>(data.data()), length, false); this->read(static_cast<void *>(data.data()), length, false);
} }
@ -546,7 +546,7 @@ public:
template<typename... TN> template<typename... TN>
void load(std::variant<TN...> & data) void load(std::variant<TN...> & data)
{ {
si32 which; int32_t which;
load( which ); load( which );
assert(which < sizeof...(TN)); assert(which < sizeof...(TN));
@ -561,7 +561,7 @@ public:
template<typename T> template<typename T>
void load(std::optional<T> & data) void load(std::optional<T> & data)
{ {
ui8 present; uint8_t present;
load( present ); load( present );
if(present) if(present)
{ {
@ -579,16 +579,16 @@ public:
template <typename T> template <typename T>
void load(boost::multi_array<T, 3> & data) void load(boost::multi_array<T, 3> & data)
{ {
ui32 length = readAndCheckLength(); uint32_t length = readAndCheckLength();
ui32 x; uint32_t x;
ui32 y; uint32_t y;
ui32 z; uint32_t z;
load(x); load(x);
load(y); load(y);
load(z); load(z);
data.resize(boost::extents[x][y][z]); data.resize(boost::extents[x][y][z]);
assert(length == data.num_elements()); //x*y*z should be equal to number of elements assert(length == data.num_elements()); //x*y*z should be equal to number of elements
for(ui32 i = 0; i < length; i++) for(uint32_t i = 0; i < length; i++)
load(data.data()[i]); load(data.data()[i]);
} }
template <std::size_t T> template <std::size_t T>

View File

@ -24,7 +24,7 @@ protected:
public: public:
CSaverBase(IBinaryWriter * w): writer(w){}; CSaverBase(IBinaryWriter * w): writer(w){};
inline void write(const void * data, unsigned size) void write(const void * data, unsigned size)
{ {
writer->write(reinterpret_cast<const std::byte*>(data), size); writer->write(reinterpret_cast<const std::byte*>(data), size);
}; };
@ -86,7 +86,7 @@ class BinarySerializer : public CSaverBase
{ {
public: public:
virtual void savePtr(CSaverBase &ar, const void *data) const =0; virtual void savePtr(CSaverBase &ar, const void *data) const =0;
virtual ~CBasicPointerSaver(){} virtual ~CBasicPointerSaver() = default;
template<typename T> static CBasicPointerSaver *getApplier(const T * t=nullptr) template<typename T> static CBasicPointerSaver *getApplier(const T * t=nullptr)
{ {
@ -115,13 +115,13 @@ public:
using Version = ESerializationVersion; using Version = ESerializationVersion;
std::map<std::string, uint32_t> savedStrings; std::map<std::string, uint32_t> savedStrings;
std::map<const Serializeable*, ui32> savedPointers; std::map<const Serializeable*, uint32_t> savedPointers;
const Version version = Version::CURRENT; const Version version = Version::CURRENT;
bool smartPointerSerialization; bool smartPointerSerialization;
bool saving; bool saving;
bool hasFeature(Version what) bool hasFeature(Version what) const
{ {
return version >= what; return version >= what;
}; };
@ -162,7 +162,7 @@ public:
template < typename T, typename std::enable_if_t < std::is_same_v<T, bool>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_same_v<T, bool>, int > = 0 >
void save(const T &data) void save(const T &data)
{ {
ui8 writ = static_cast<ui8>(data); uint8_t writ = static_cast<uint8_t>(data);
save(writ); save(writ);
} }
@ -198,15 +198,15 @@ public:
template < typename T, typename std::enable_if_t < std::is_enum_v<T>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_enum_v<T>, int > = 0 >
void save(const T &data) void save(const T &data)
{ {
si32 writ = static_cast<si32>(data); int32_t writ = static_cast<int32_t>(data);
*this & writ; *this & writ;
} }
template < typename T, typename std::enable_if_t < std::is_array_v<T>, int > = 0 > template < typename T, typename std::enable_if_t < std::is_array_v<T>, int > = 0 >
void save(const T &data) void save(const T &data)
{ {
ui32 size = std::size(data); uint32_t size = std::size(data);
for(ui32 i=0; i < size; i++) for(uint32_t i=0; i < size; i++)
*this & data[i]; *this & data[i];
} }
@ -261,7 +261,7 @@ public:
{ {
// We might have an object that has multiple inheritance and store it via the non-first base pointer. // We might have an object that has multiple inheritance and store it via the non-first base pointer.
// Therefore, all pointers need to be normalized to the actual object address. // Therefore, all pointers need to be normalized to the actual object address.
const Serializeable * actualPointer = static_cast<const Serializeable*>(data); const auto * actualPointer = static_cast<const Serializeable*>(data);
auto i = savedPointers.find(actualPointer); auto i = savedPointers.find(actualPointer);
if(i != savedPointers.end()) if(i != savedPointers.end())
{ {
@ -271,7 +271,7 @@ public:
} }
//give id to this pointer //give id to this pointer
ui32 pid = (ui32)savedPointers.size(); uint32_t pid = savedPointers.size();
savedPointers[actualPointer] = pid; savedPointers[actualPointer] = pid;
save(pid); save(pid);
} }
@ -318,30 +318,30 @@ public:
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0> template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void save(const std::vector<T> &data) void save(const std::vector<T> &data)
{ {
ui32 length = (ui32)data.size(); uint32_t length = data.size();
*this & length; *this & length;
for(ui32 i=0;i<length;i++) for(uint32_t i=0;i<length;i++)
save(data[i]); save(data[i]);
} }
template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0> template <typename T, typename std::enable_if_t < !std::is_same_v<T, bool >, int > = 0>
void save(const std::deque<T> & data) void save(const std::deque<T> & data)
{ {
ui32 length = (ui32)data.size(); uint32_t length = data.size();
*this & length; *this & length;
for(ui32 i = 0; i < length; i++) for(uint32_t i = 0; i < length; i++)
save(data[i]); save(data[i]);
} }
template <typename T, size_t N> template <typename T, size_t N>
void save(const std::array<T, N> &data) void save(const std::array<T, N> &data)
{ {
for(ui32 i=0; i < N; i++) for(uint32_t i=0; i < N; i++)
save(data[i]); save(data[i]);
} }
template <typename T> template <typename T>
void save(const std::set<T> &data) void save(const std::set<T> &data)
{ {
auto & d = const_cast<std::set<T> &>(data); auto & d = const_cast<std::set<T> &>(data);
ui32 length = (ui32)d.size(); uint32_t length = d.size();
save(length); save(length);
for(auto i = d.begin(); i != d.end(); i++) for(auto i = d.begin(); i != d.end(); i++)
save(*i); save(*i);
@ -350,7 +350,7 @@ public:
void save(const std::unordered_set<T, U> &data) void save(const std::unordered_set<T, U> &data)
{ {
auto & d = const_cast<std::unordered_set<T, U> &>(data); auto & d = const_cast<std::unordered_set<T, U> &>(data);
ui32 length = (ui32)d.size(); uint32_t length = d.size();
*this & length; *this & length;
for(auto i = d.begin(); i != d.end(); i++) for(auto i = d.begin(); i != d.end(); i++)
save(*i); save(*i);
@ -359,7 +359,7 @@ public:
void save(const std::list<T> &data) void save(const std::list<T> &data)
{ {
auto & d = const_cast<std::list<T> &>(data); auto & d = const_cast<std::list<T> &>(data);
ui32 length = (ui32)d.size(); uint32_t length = d.size();
*this & length; *this & length;
for(auto i = d.begin(); i != d.end(); i++) for(auto i = d.begin(); i != d.end(); i++)
save(*i); save(*i);
@ -371,7 +371,7 @@ public:
{ {
if (data.empty()) if (data.empty())
{ {
save(ui32(0)); save(static_cast<uint32_t>(0));
return; return;
} }
@ -379,7 +379,7 @@ public:
if (it == savedStrings.end()) if (it == savedStrings.end())
{ {
save(ui32(data.length())); save(static_cast<uint32_t>(data.length()));
this->write(static_cast<const void *>(data.data()), data.size()); this->write(static_cast<const void *>(data.data()), data.size());
// -1, -2... // -1, -2...
@ -395,7 +395,7 @@ public:
} }
else else
{ {
save(ui32(data.length())); save(static_cast<uint32_t>(data.length()));
this->write(static_cast<const void *>(data.data()), data.size()); this->write(static_cast<const void *>(data.data()), data.size());
} }
} }
@ -409,7 +409,7 @@ public:
template <typename T1, typename T2> template <typename T1, typename T2>
void save(const std::unordered_map<T1,T2> &data) void save(const std::unordered_map<T1,T2> &data)
{ {
*this & ui32(data.size()); *this & static_cast<uint32_t>(data.size());
for(auto i = data.begin(); i != data.end(); i++) for(auto i = data.begin(); i != data.end(); i++)
{ {
save(i->first); save(i->first);
@ -419,7 +419,7 @@ public:
template <typename T1, typename T2> template <typename T1, typename T2>
void save(const std::map<T1,T2> &data) void save(const std::map<T1,T2> &data)
{ {
*this & ui32(data.size()); *this & static_cast<uint32_t>(data.size());
for(auto i = data.begin(); i != data.end(); i++) for(auto i = data.begin(); i != data.end(); i++)
{ {
save(i->first); save(i->first);
@ -429,7 +429,7 @@ public:
template <typename T1, typename T2> template <typename T1, typename T2>
void save(const std::multimap<T1, T2> &data) void save(const std::multimap<T1, T2> &data)
{ {
*this & ui32(data.size()); *this & static_cast<uint32_t>(data.size());
for(auto i = data.begin(); i != data.end(); i++) for(auto i = data.begin(); i != data.end(); i++)
{ {
save(i->first); save(i->first);
@ -439,7 +439,7 @@ public:
template<typename T0, typename... TN> template<typename T0, typename... TN>
void save(const std::variant<T0, TN...> & data) void save(const std::variant<T0, TN...> & data)
{ {
si32 which = data.index(); int32_t which = data.index();
save(which); save(which);
VariantVisitorSaver<BinarySerializer> visitor(*this); VariantVisitorSaver<BinarySerializer> visitor(*this);
@ -450,26 +450,26 @@ public:
{ {
if(data) if(data)
{ {
save((ui8)1); save(static_cast<uint8_t>(1));
save(*data); save(*data);
} }
else else
{ {
save((ui8)0); save(static_cast<uint32_t>(0));
} }
} }
template <typename T> template <typename T>
void save(const boost::multi_array<T, 3> &data) void save(const boost::multi_array<T, 3> &data)
{ {
ui32 length = data.num_elements(); uint32_t length = data.num_elements();
*this & length; *this & length;
auto shape = data.shape(); auto shape = data.shape();
ui32 x = shape[0]; uint32_t x = shape[0];
ui32 y = shape[1]; uint32_t y = shape[1];
ui32 z = shape[2]; uint32_t z = shape[2];
*this & x & y & z; *this & x & y & z;
for(ui32 i = 0; i < length; i++) for(uint32_t i = 0; i < length; i++)
save(data.data()[i]); save(data.data()[i]);
} }
template <std::size_t T> template <std::size_t T>