Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_GameModeSerializer.c
Go to the documentation of this file.
2{
3 //------------------------------------------------------------------------------------------------
4 override static typename GetTargetType()
5 {
6 return SCR_BaseGameMode;
7 }
8
9 //------------------------------------------------------------------------------------------------
10 override protected ESerializeResult Serialize(notnull IEntity entity, notnull SaveContext context)
11 {
12 const SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(entity);
13 const BaseContainer source = entity.GetPrefabData().GetPrefab();
14
15 array<EResourceType> defaultDisabled();
16 source.Get("m_aDisabledResourceTypes", defaultDisabled);
17
18 array<EResourceType> disabledResourceTypes();
19 gameMode.GetDisabledResourceTypes(disabledResourceTypes);
20
21 if (SCR_ArrayHelperT<EResourceType>.AreEqual(defaultDisabled, disabledResourceTypes))
22 return ESerializeResult.DEFAULT;
23
24 context.WriteValue("version", 1);
25 context.Write(disabledResourceTypes);
26 return ESerializeResult.OK;
27 }
28
29 //------------------------------------------------------------------------------------------------
30 override protected bool Deserialize(notnull IEntity entity, notnull LoadContext context)
31 {
32 SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(entity);
33
34 int version;
35 context.Read(version);
36
37 array<EResourceType> disabledResourceTypes;
38 context.Read(disabledResourceTypes);
39 if (disabledResourceTypes)
40 {
41 // Enable those who are not disabled in save-game
42 array<EResourceType> currentDisabled();
43 gameMode.GetDisabledResourceTypes(currentDisabled);
44 foreach (EResourceType type : currentDisabled)
45 {
46 if (!disabledResourceTypes.Contains(type))
47 gameMode.SetResourceTypeEnabled(true, type);
48 }
49
50 // Disable all from save-game
51 foreach (EResourceType type : disabledResourceTypes)
52 {
53 gameMode.SetResourceTypeEnabled(false, type);
54 }
55 }
56
57 return true;
58 }
59}
class SCR_PersistentThreatSector GetTargetType()
class SCR_ArrayHelper AreEqual(notnull array< T > array1, notnull array< T > array2)
EDamageType type
int GetDisabledResourceTypes(inout notnull array< EResourceType > disabledResourceTypes)
void SetResourceTypeEnabled(bool enable, EResourceType resourceType=EResourceType.SUPPLIES, int playerID=-1)
ESerializeResult Serialize(notnull IEntity entity, notnull SaveContext context)
bool Deserialize(notnull IEntity entity, notnull LoadContext context)
ESerializeResult