Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_EffectsModuleComponentSerializer.c
Go to the documentation of this file.
2{
3 //------------------------------------------------------------------------------------------------
4 override static typename GetTargetType()
5 {
7 }
8
9 //------------------------------------------------------------------------------------------------
10 override protected ESerializeResult Serialize(notnull IEntity owner, notnull GenericComponent component, notnull SaveContext context)
11 {
12 const SCR_EffectsModuleComponent effectComponent = SCR_EffectsModuleComponent.Cast(component);
13 const SCR_EffectsModule effectModule = effectComponent.GetEffectsModuleConfig();
14
15 const bool paused = effectModule.IsPaused();
16
17 int barragesLeft = -1;
18 int totalProjectilesInBarrage = -1;
19 int projectilesLeftInBarrage = -1;
20 const SCR_BarrageEffectsModule barrage = SCR_BarrageEffectsModule.Cast(effectModule);
21 if (barrage)
22 {
23 barragesLeft = barrage.GetBarragesLeft();
24
25 if (barragesLeft > 0)
26 {
27 totalProjectilesInBarrage = barrage.GetTotalProjectilesInBarrage();
28 projectilesLeftInBarrage = barrage.GetProjectilesLeftInBarrage();
29 }
30 }
31
32 if (!paused && barragesLeft == -1 && projectilesLeftInBarrage == -1)
33 return ESerializeResult.DEFAULT;
34
35 context.WriteValue("version", 1);
36
37 if (effectModule.CanPause())
38 context.WriteDefault(paused, false);
39
40 context.WriteDefault(barragesLeft, -1);
41 if (barragesLeft > 0)
42 {
43 context.WriteDefault(totalProjectilesInBarrage, -1);
44 context.WriteDefault(projectilesLeftInBarrage, -1);
45 }
46
47 return ESerializeResult.OK;
48 }
49
50 //------------------------------------------------------------------------------------------------
51 override protected bool Deserialize(notnull IEntity owner, notnull GenericComponent component, notnull LoadContext context)
52 {
53 SCR_EffectsModuleComponent effectComponent = SCR_EffectsModuleComponent.Cast(component);
54 const SCR_EffectsModule effectModule = effectComponent.GetEffectsModuleConfig();
55
56 int version;
57 context.Read(version);
58
59 if (effectModule.CanPause())
60 {
61 bool paused;
62 if (context.Read(paused) && paused)
63 effectModule.SetPaused(true);
64 }
65
66 int barragesLeft;
67 context.ReadDefault(barragesLeft, -1);
68
69 int totalProjectilesInBarrage = -1;
70 int projectilesLeftInBarrage = -1;
71 if (barragesLeft > 0)
72 {
73 context.ReadDefault(totalProjectilesInBarrage, -1);
74 context.ReadDefault(projectilesLeftInBarrage, -1);
75 }
76
77 const SCR_BarrageEffectsModule barrage = SCR_BarrageEffectsModule.Cast(effectModule);
78 if (barrage)
79 {
80 if (barragesLeft != -1)
81 barrage.SetBarragesLeft(barragesLeft);
82
83 if (totalProjectilesInBarrage != -1)
84 barrage.SetTotalProjectilesInBarrage(totalProjectilesInBarrage);
85
86 if (projectilesLeftInBarrage != -1)
87 barrage.SetProjectilesLeftInBarrage(projectilesLeftInBarrage);
88 }
89
90 return true;
91 }
92}
class SCR_PersistentThreatSector GetTargetType()
void SetProjectilesLeftInBarrage(int projectiles)
void SetTotalProjectilesInBarrage(int projectiles)
bool Deserialize(notnull IEntity owner, notnull GenericComponent component, notnull LoadContext context)
ESerializeResult Serialize(notnull IEntity owner, notnull GenericComponent component, notnull SaveContext context)
void SetPaused(bool paused)
ESerializeResult