Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MineWeaponComponentSerializer.c
Go to the documentation of this file.
2{
3 //------------------------------------------------------------------------------------------------
4 override static typename GetTargetType()
5 {
6 return SCR_MineWeaponComponent;
7 }
8
9 //------------------------------------------------------------------------------------------------
10 override protected ESerializeResult Serialize(notnull IEntity owner, notnull GenericComponent component, notnull SaveContext context)
11 {
12 const SCR_MineWeaponComponent mine = SCR_MineWeaponComponent.Cast(component);
13
14 const UUID flagId = GetSystem().GetId(mine.GetFlagEntity());
15
16 if (flagId.IsNull())
17 return ESerializeResult.DEFAULT;
18
19 context.WriteValue("version", 1);
20 context.WriteDefault(flagId, UUID.NULL_UUID);
21 return ESerializeResult.OK;
22 }
23
24 //------------------------------------------------------------------------------------------------
25 override protected bool Deserialize(notnull IEntity owner, notnull GenericComponent component, notnull LoadContext context)
26 {
27 SCR_MineWeaponComponent mine = SCR_MineWeaponComponent.Cast(component);
28
29 int version;
30 context.Read(version);
31
32 UUID flagId;
33 if (context.Read(flagId))
34 {
37 GetSystem().WhenAvailable(flagId, task);
38 }
39
40 return true;
41 }
42
43 //------------------------------------------------------------------------------------------------
44 protected static void OnFlagAvailable(Managed instance, PersistenceDeferredDeserializeTask task, bool expired, Managed context)
45 {
46 auto flag = IEntity.Cast(instance);
47 if (!flag)
48 return;
49
50 auto ctx = Tuple1<SCR_MineWeaponComponent>.Cast(context);
51 if (ctx.param1)
52 ctx.param1.SetFlag(flag);
53 }
54}
class SCR_PersistentThreatSector GetTargetType()
bool Deserialize(notnull IEntity owner, notnull GenericComponent component, notnull LoadContext context)
static void OnFlagAvailable(Managed instance, PersistenceDeferredDeserializeTask task, bool expired, Managed context)
ESerializeResult Serialize(notnull IEntity owner, notnull GenericComponent component, notnull SaveContext context)
Definition UUID.c:28
ESerializeResult
void Tuple1(T1 p1)
Definition tuple.c:37