Merge branch 'master' into jgrpp
# Conflicts: # src/cargotype.h # src/core/CMakeLists.txt # src/core/span_type.hpp # src/fileio.cpp # src/fios.cpp # src/misc/endian_buffer.hpp # src/misc_gui.cpp # src/saveload/saveload.h # src/saveload/vehicle_sl.cpp # src/screenshot.cpp # src/settings.cpp # src/settings_internal.h # src/stdafx.h # src/string_func.h # src/strings.cpp # src/strings_func.h # src/strings_internal.h
This commit is contained in:
@@ -61,14 +61,14 @@ struct CommandAuxiliarySerialised : public CommandAuxiliaryBase {
|
||||
return new CommandAuxiliarySerialised(*this);
|
||||
}
|
||||
|
||||
virtual std::optional<span<const uint8_t>> GetDeserialisationSrc() const override { return span<const uint8_t>(this->serialised_data.data(), this->serialised_data.size()); }
|
||||
virtual std::optional<std::span<const uint8_t>> GetDeserialisationSrc() const override { return std::span<const uint8_t>(this->serialised_data.data(), this->serialised_data.size()); }
|
||||
|
||||
virtual void Serialise(CommandSerialisationBuffer &buffer) const override { buffer.Send_binary(this->serialised_data.data(), this->serialised_data.size()); }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct CommandAuxiliarySerialisable : public CommandAuxiliaryBase {
|
||||
virtual std::optional<span<const uint8_t>> GetDeserialisationSrc() const override { return {}; }
|
||||
virtual std::optional<std::span<const uint8_t>> GetDeserialisationSrc() const override { return {}; }
|
||||
|
||||
CommandAuxiliaryBase *Clone() const override
|
||||
{
|
||||
@@ -86,10 +86,10 @@ public:
|
||||
inline CommandCost Load(const CommandAuxiliaryBase *base)
|
||||
{
|
||||
if (base == nullptr) return CMD_ERROR;
|
||||
std::optional<span<const uint8_t>> deserialise_from = base->GetDeserialisationSrc();
|
||||
std::optional<std::span<const uint8_t>> deserialise_from = base->GetDeserialisationSrc();
|
||||
if (deserialise_from.has_value()) {
|
||||
this->store = T();
|
||||
CommandDeserialisationBuffer buffer(deserialise_from->begin(), deserialise_from->size());
|
||||
CommandDeserialisationBuffer buffer(deserialise_from->data(), deserialise_from->size());
|
||||
CommandCost res = this->store->Deserialise(buffer);
|
||||
if (res.Failed()) return res;
|
||||
if (buffer.error || buffer.pos != buffer.size) {
|
||||
|
Reference in New Issue
Block a user