Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_EditableEntityCoreSerializer.c
Go to the documentation of this file.
1
class
SCR_PersistentEditableEntityAuthor
2
{
3
UUID
m_sIdentity;
4
string
m_sPlatformId;
5
PlatformKind
m_ePlatform;
6
}
7
8
class
SCR_EditableEntityCoreData :
PersistentState
9
{
10
}
11
12
class
SCR_EditableEntityCoreSerializer :
ScriptedStateSerializer
13
{
14
//------------------------------------------------------------------------------------------------
15
override
static
typename
GetTargetType
()
16
{
17
return
SCR_EditableEntityCoreData;
18
}
19
20
//------------------------------------------------------------------------------------------------
21
override
ESerializeResult
Serialize
(notnull Managed instance, notnull
SaveContext
context)
22
{
23
SCR_EditableEntityCore
core =
SCR_EditableEntityCore
.Cast(
SCR_EditableEntityCore
.GetInstance(
SCR_EditableEntityCore
));
24
if
(!core)
25
return
ESerializeResult
.DEFAULT;
26
27
array<ref SCR_PersistentEditableEntityAuthor> persistentAuthors();
28
set<SCR_EditableEntityAuthor> authors = core.
GetAllAuthorsServer
();
29
foreach
(SCR_EditableEntityAuthor author : authors)
30
{
31
SCR_PersistentEditableEntityAuthor
persistentAuthor();
32
persistentAuthor.m_sIdentity = author.m_sAuthorUID;
33
persistentAuthor.m_sPlatformId = author.m_sAuthorPlatformID;
34
persistentAuthor.m_ePlatform = author.m_ePlatform;
35
persistentAuthors.Insert(persistentAuthor);
36
}
37
38
if
(persistentAuthors.IsEmpty())
39
return
ESerializeResult
.DEFAULT;
40
41
context.WriteValue(
"version"
, 1);
42
const
bool
prev = context.EnableTypeDiscriminator(
false
);
43
context.WriteValue(
"authors"
, persistentAuthors);
44
context.EnableTypeDiscriminator(prev);
45
return
ESerializeResult
.OK;
46
}
47
48
//------------------------------------------------------------------------------------------------
49
override
bool
Deserialize
(notnull Managed instance, notnull
LoadContext
context)
50
{
51
SCR_EditableEntityCore
core =
SCR_EditableEntityCore
.Cast(
SCR_EditableEntityCore
.GetInstance(
SCR_EditableEntityCore
));
52
if
(!core)
53
return
false
;
54
55
int
version;
56
context.Read(version);
57
58
array<ref SCR_PersistentEditableEntityAuthor> authors;
59
const
bool
prev = context.EnableTypeDiscriminator(
false
);
60
context.Read(authors);
61
context.EnableTypeDiscriminator(prev);
62
if
(authors)
63
{
64
const
PlayerManager
playerManager =
GetGame
().GetPlayerManager();
65
array<int> players();
66
playerManager.GetAllPlayers(players);
67
68
foreach
(
SCR_PersistentEditableEntityAuthor
authorData : authors)
69
{
70
SCR_EditableEntityAuthor author();
71
author.m_sAuthorUID = authorData.m_sIdentity;
72
author.m_sAuthorPlatformID = authorData.m_sPlatformId;
73
author.m_ePlatform = authorData.m_ePlatform;
74
author.m_iAuthorID = -1;
75
foreach
(
int
playerId : players)
76
{
77
if
(
SCR_PlayerIdentityUtils
.GetPlayerIdentityId(playerId) == authorData.m_sPlatformId)
78
{
79
author.m_iAuthorID = playerId;
80
break
;
81
}
82
}
83
84
author.m_iEntityCount = -1;
// Registration will bump it to 0
85
core.
RegisterAuthorServer
(author);
86
}
87
}
88
89
return
true
;
90
}
91
}
GetTargetType
class SCR_PersistentThreatSector GetTargetType()
Definition
AIControlComponentSerializer.c:12
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
PlatformKind
PlatformKind
Definition
PlatformKind.c:8
LoadContext
Definition
LoadContext.c:17
PersistentState
Definition
PersistentState.c:13
PlayerManager
Definition
PlayerManager.c:13
SCR_EditableEntityCore
Definition
SCR_EditableEntityCore.c:20
SCR_EditableEntityCore::RegisterAuthorServer
void RegisterAuthorServer(SCR_EditableEntityAuthor newAuthor)
Definition
SCR_EditableEntityCore.c:1073
SCR_EditableEntityCore::GetAllAuthorsServer
set< SCR_EditableEntityAuthor > GetAllAuthorsServer()
Definition
SCR_EditableEntityCore.c:1111
SCR_PersistentEditableEntityAuthor
Definition
SCR_EditableEntityCoreSerializer.c:2
SCR_PlayerIdentityUtils
Definition
SCR_PlayerIdentityUtils.c:2
SaveContext
Definition
SaveContext.c:17
ScriptedStateSerializer
Definition
ScriptedStateSerializer.c:13
ScriptedStateSerializer::Deserialize
bool Deserialize(notnull Managed instance, notnull LoadContext context)
Definition
ScriptedStateSerializer.c:41
ScriptedStateSerializer::Serialize
ESerializeResult Serialize(notnull Managed instance, notnull SaveContext context)
Definition
ScriptedStateSerializer.c:36
UUID
Definition
UUID.c:28
ESerializeResult
ESerializeResult
Definition
ESerializeResult.c:13
scripts
Game
Plugins
Persistence
System
Serializers
States
SCR_EditableEntityCoreSerializer.c
Generated by
1.17.0