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_GameMasterMetaSerializer.c
Go to the documentation of this file.
1
2
class
SCR_GameMasterMetaData
: PersistentState
3
{
4
}
5
6
class
SCR_GameMasterMetaDataSerializer :
ScriptedStateSerializer
7
{
8
//------------------------------------------------------------------------------------------------
9
override
static
typename
GetTargetType
()
10
{
11
return
SCR_GameMasterMetaData
;
12
}
13
14
//------------------------------------------------------------------------------------------------
15
override
ESerializeResult
Serialize
(notnull Managed instance, notnull
SaveContext
context)
16
{
17
if
(
System
.IsConsoleApp())
18
return
ESerializeResult
.DEFAULT;
// Do not save on any headless host, no camera there.
19
20
vector
camPos, camYPR;
21
const
SCR_ManualCamera
editorCamera =
SCR_CameraEditorComponent
.
GetCameraInstance
();
22
if
(editorCamera)
23
{
24
camPos = editorCamera.GetOrigin();
25
camYPR = editorCamera.GetYawPitchRoll();
26
}
27
28
if
(camPos ==
vector
.Zero && camYPR ==
vector
.Zero)
29
return
ESerializeResult
.DEFAULT;
30
31
context.WriteValue(
"version"
, 1);
32
context.WriteDefault(camPos,
vector
.Zero);
33
context.WriteDefault(camYPR,
vector
.Zero);
34
return
ESerializeResult
.OK;
35
}
36
37
//------------------------------------------------------------------------------------------------
38
override
bool
Deserialize
(notnull Managed instance, notnull
LoadContext
context)
39
{
40
int
version;
41
context.Read(version);
42
43
SCR_GameMasterMetaDataLoader
loader();
44
context.ReadValueDefault(
"camPos"
, loader.
m_vPosition
,
Vector
(6, 6, 6));
45
context.ReadValueDefault(
"camYPR"
, loader.
m_vYawPitchRoll
,
Vector
(9, 9, 9));
46
loader.
Apply
();
47
48
return
true
;
49
}
50
}
51
52
class
SCR_GameMasterMetaDataLoader
53
{
54
protected
static
ref
SCR_GameMasterMetaDataLoader
s_Self
;
55
56
vector
m_vPosition
;
57
vector
m_vYawPitchRoll
;
58
59
//------------------------------------------------------------------------------------------------
60
void
Apply
()
61
{
62
// Ensure the self ref is cleared during system exit
63
SCR_PersistenceSystem
.
GetScriptedInstance
().
GetOnStateChanged
().Insert(
OnShutdown
);
64
s_Self
=
this
;
65
66
SCR_EditorManagerEntity
editorManager =
SCR_EditorManagerEntity
.GetInstance();
67
if
(editorManager)
68
{
69
//--- Editor manager exists, load camera directly
70
OnEditorManagerCreated
(editorManager);
71
return
;
72
}
73
74
//--- Editor manager does not exist yet (e.g., on mission start), wait for it to be created
75
SCR_EditorManagerCore
core =
SCR_EditorManagerCore
.Cast(
SCR_EditorManagerCore
.GetInstance(
SCR_EditorManagerCore
));
76
if
(core)
77
core.Event_OnEditorManagerInitOwner.Insert(
OnEditorManagerCreated
);
78
}
79
80
//------------------------------------------------------------------------------------------------
81
protected
void
OnShutdown
(
EPersistenceSystemState
oldState,
EPersistenceSystemState
newState)
82
{
83
if
(newState ==
EPersistenceSystemState
.SHUTDOWN)
84
s_Self
= null;
85
}
86
87
//------------------------------------------------------------------------------------------------
88
protected
void
OnEditorManagerCreated
(
SCR_EditorManagerEntity
editorManager)
89
{
90
SCR_EditorManagerCore
core =
SCR_EditorManagerCore
.Cast(
SCR_EditorManagerCore
.GetInstance(
SCR_EditorManagerCore
));
91
if
(core)
92
core.Event_OnEditorManagerInitOwner.Remove(
OnEditorManagerCreated
);
93
94
//--- Wait one frame for editor modes to be initialized
95
GetGame
().GetCallqueue().Call(
OnEditorManagerCreatedDelayed
);
96
}
97
98
//------------------------------------------------------------------------------------------------
99
protected
void
OnEditorManagerCreatedDelayed
()
100
{
101
SCR_CameraEditorComponent
editorCameraManager =
SCR_CameraEditorComponent
.Cast(
SCR_CameraEditorComponent
.GetInstance(
SCR_CameraEditorComponent
));
102
if
(!editorCameraManager)
103
{
104
s_Self
= null;
105
return
;
106
}
107
108
SCR_ManualCamera
camera = editorCameraManager.
GetCamera
();
109
if
(camera)
110
{
111
//--- Camera exists, load it directly
112
OnCameraCreated
(camera);
113
return
;
114
}
115
116
//--- Camera does not exist (e.g., editor not opened yet), wait for it to be created
117
editorCameraManager.
GetOnCameraCreate
().Insert(
OnCameraCreated
);
118
}
119
120
//------------------------------------------------------------------------------------------------
121
protected
void
OnCameraCreated
(
SCR_ManualCamera
camera)
122
{
123
SCR_CameraEditorComponent
editorCameraManager =
SCR_CameraEditorComponent
.Cast(
SCR_CameraEditorComponent
.GetInstance(
SCR_CameraEditorComponent
));
124
editorCameraManager.
GetOnCameraCreate
().Remove(
OnCameraCreated
);
125
126
s_Self
= null;
127
vector
transform[4];
128
Math3D
.AnglesToMatrix(
m_vYawPitchRoll
, transform);
129
transform[3] =
m_vPosition
;
130
camera.SetTransform(transform);
131
}
132
}
GetTargetType
class SCR_PersistentThreatSector GetTargetType()
Definition
AIControlComponentSerializer.c:12
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_EditorManagerEntity
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
Definition
SCR_EditorManagerEntity.c:2211
LoadContext
Definition
LoadContext.c:17
Math3D
Definition
Math3D.c:13
SCR_CameraEditorComponent
Definition
SCR_CameraEditorComponent.c:14
SCR_CameraEditorComponent::GetCameraInstance
static SCR_ManualCamera GetCameraInstance()
Definition
SCR_CameraEditorComponent.c:65
SCR_CameraEditorComponent::GetCamera
SCR_ManualCamera GetCamera()
Definition
SCR_CameraEditorComponent.c:46
SCR_CameraEditorComponent::GetOnCameraCreate
ScriptInvokerBase< SCR_CameraEditorComponent_OnCameraCreated > GetOnCameraCreate()
Definition
SCR_CameraEditorComponent.c:75
SCR_EditorManagerCore
Core component to manage SCR_EditorManagerEntity.
Definition
SCR_EditorManagerCore.c:6
SCR_GameMasterMetaData
Dummy state proxy to access game master data.
Definition
SCR_GameMasterMetaSerializer.c:3
SCR_GameMasterMetaDataLoader
Definition
SCR_GameMasterMetaSerializer.c:53
SCR_GameMasterMetaDataLoader::m_vPosition
vector m_vPosition
Definition
SCR_GameMasterMetaSerializer.c:56
SCR_GameMasterMetaDataLoader::Apply
void Apply()
Definition
SCR_GameMasterMetaSerializer.c:60
SCR_GameMasterMetaDataLoader::s_Self
static ref SCR_GameMasterMetaDataLoader s_Self
Definition
SCR_GameMasterMetaSerializer.c:54
SCR_GameMasterMetaDataLoader::m_vYawPitchRoll
vector m_vYawPitchRoll
Definition
SCR_GameMasterMetaSerializer.c:57
SCR_GameMasterMetaDataLoader::OnShutdown
void OnShutdown(EPersistenceSystemState oldState, EPersistenceSystemState newState)
Definition
SCR_GameMasterMetaSerializer.c:81
SCR_GameMasterMetaDataLoader::OnEditorManagerCreated
void OnEditorManagerCreated(SCR_EditorManagerEntity editorManager)
Definition
SCR_GameMasterMetaSerializer.c:88
SCR_GameMasterMetaDataLoader::OnCameraCreated
void OnCameraCreated(SCR_ManualCamera camera)
Definition
SCR_GameMasterMetaSerializer.c:121
SCR_GameMasterMetaDataLoader::OnEditorManagerCreatedDelayed
void OnEditorManagerCreatedDelayed()
Definition
SCR_GameMasterMetaSerializer.c:99
SCR_ManualCamera
Definition
SCR_ManualCamera.c:17
SCR_PersistenceSystem
Definition
SCR_PersistenceSystem.c:11
SCR_PersistenceSystem::GetScriptedInstance
static sealed SCR_PersistenceSystem GetScriptedInstance()
Definition
SCR_PersistenceSystem.c:109
SCR_PersistenceSystem::GetOnStateChanged
sealed ScriptInvokerBase< SCR_PersistenceSystem_OnStateChanged > GetOnStateChanged()
Definition
SCR_PersistenceSystem.c:69
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
System
Definition
System.c:13
vector
Definition
vector.c:13
ESerializeResult
ESerializeResult
Definition
ESerializeResult.c:13
EPersistenceSystemState
EPersistenceSystemState
Definition
EPersistenceSystemState.c:13
Vector
proto native vector Vector(float x, float y, float z)
scripts
Game
Plugins
Persistence
System
Serializers
States
SCR_GameMasterMetaSerializer.c
Generated by
1.17.0