F4MP/tiltedcode/Code/encoding/Structs/CharacterData.cpp
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

55 lines
1.7 KiB
C++

#include <Structs/CharacterData.h>
#include <TiltedCore/Serialization.hpp>
using TiltedPhoques::Serialization;
void CharacterData::Serialize(TiltedPhoques::Buffer::Writer& aWriter) const noexcept
{
ReferenceId.Serialize(aWriter);
FormId.Serialize(aWriter);
CellId.Serialize(aWriter);
WorldSpaceId.Serialize(aWriter);
Position.Serialize(aWriter);
Rotation.Serialize(aWriter);
aWriter.WriteBits(ChangeFlags, 32);
Serialization::WriteString(aWriter, AppearanceBuffer);
InventoryContent.Serialize(aWriter);
FactionsContent.Serialize(aWriter);
LatestAction.GenerateDifferential(ActionEvent{}, aWriter);
QuestContent.Serialize(aWriter);
FaceTints.Serialize(aWriter);
AllActorValues.Serialize(aWriter);
Serialization::WriteBool(aWriter, IsDead);
Serialization::WriteBool(aWriter, IsWeaponDrawn);
}
void CharacterData::Deserialize(TiltedPhoques::Buffer::Reader& aReader) noexcept
{
ReferenceId.Deserialize(aReader);
FormId.Deserialize(aReader);
CellId.Deserialize(aReader);
WorldSpaceId.Deserialize(aReader);
Position.Deserialize(aReader);
Rotation.Deserialize(aReader);
uint64_t dest = 0;
aReader.ReadBits(dest, 32);
ChangeFlags = dest & 0xFFFFFFFF;
AppearanceBuffer = Serialization::ReadString(aReader);
InventoryContent = {};
InventoryContent.Deserialize(aReader);
FactionsContent = {};
FactionsContent.Deserialize(aReader);
LatestAction = ActionEvent{};
LatestAction.ApplyDifferential(aReader);
QuestContent.Deserialize(aReader);
FaceTints.Deserialize(aReader);
AllActorValues.Deserialize(aReader);
IsDead = Serialization::ReadBool(aReader);
IsWeaponDrawn = Serialization::ReadBool(aReader);
}