Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionunfoldmap.c
Go to the documentation of this file.
1
class
ActionUnfoldMapCB
:
ActionBaseCB
2
{
3
bool
m_MapFolding
;
4
bool
m_HasReceivedEvent
;
5
bool
m_CancelCondition
;
6
int
m_InitMovementState
;
7
int
m_FinalMovementState
;
8
9
void
ActionUnfoldMapCB
()
10
{
11
RegisterAnimationEvent
(
"ActionExec"
,
UA_ANIM_EVENT
);
12
EnableStateChangeCallback
();
13
EnableCancelCondition
(
true
);
14
}
15
16
void
~ActionUnfoldMapCB
()
17
{
18
if
(
g_Game
&&
g_Game
.GetMission())
19
{
20
if
(!
CfgGameplayHandler
.
GetUse3DMap
())
21
{
22
g_Game
.GetMission().RemoveActiveInputExcludes({
"map"
},
false
);
23
}
24
else
25
{
26
g_Game
.GetMission().RemoveActiveInputExcludes({
"loopedactions"
},
false
);
27
}
28
g_Game
.GetMission().RemoveActiveInputRestriction(EInputRestrictors.MAP);
29
}
30
31
if
(!
m_ActionData
|| !
m_ActionData
.m_Player)
32
return
;
33
34
ItemMap
chernomap =
ItemMap
.Cast(
m_ActionData
.m_Player.GetItemInHands());
35
if
(chernomap &&
m_ActionData
.m_Player.IsMapOpen())
36
{
37
chernomap.SetMapStateOpen(
false
,
m_ActionData
.m_Player);
38
}
39
}
40
41
override
void
SetActionData
(
ActionData
action_data)
42
{
43
m_ActionData
= action_data;
44
m_InitMovementState
=
m_ActionData
.m_Player.m_MovementState.m_iStanceIdx;
45
}
46
47
bool
CancelCondition
()
48
{
49
return
m_CancelCondition
;
50
}
51
52
override
void
OnStateChange
(
int
pOldState,
int
pCurrentState)
53
{
54
if
(!
m_ActionData
|| !
m_ActionData
.m_Player)
55
return
;
56
57
if
((pOldState ==
STATE_LOOP_IN
&& pCurrentState ==
STATE_LOOP_LOOP
) && !
m_HasReceivedEvent
)
58
{
59
m_CancelCondition
=
true
;
60
}
61
}
62
63
override
void
OnAnimationEvent
(
int
pEventID)
64
{
65
if
(!
m_ActionData
|| !
m_ActionData
.m_Player)
66
return
;
67
68
switch
(pEventID)
69
{
70
case
UA_ANIM_EVENT
:
71
m_HasReceivedEvent
=
true
;
72
m_FinalMovementState
=
m_ActionData
.m_Player.m_MovementState.m_iStanceIdx;
73
74
if
(
StateCheck
())
75
{
76
PerformMapChange
();
77
m_CancelCondition
=
false
;
78
}
79
else
80
{
81
m_CancelCondition
=
true
;
82
}
83
break
;
84
}
85
}
86
87
override
void
OnFinish
(
bool
pCanceled)
88
{
89
if
(
m_ActionData
&&
m_ActionData
.m_Player)
90
{
91
if
(
m_ActionData
&&
m_ActionData
.m_ActionComponent)
92
m_ActionData
.m_State =
m_ActionData
.m_ActionComponent.Interrupt(
m_ActionData
);
93
94
if
((!
g_Game
.IsDedicatedServer()) &&
g_Game
.GetUIManager() &&
g_Game
.GetUIManager().IsMenuOpen(
MENU_MAP
))
95
{
96
g_Game
.GetUIManager().FindMenu(
MENU_MAP
).Close();
97
}
98
99
ActionUnfoldMap
action =
ActionUnfoldMap
.Cast(
m_ActionData
.m_Action);
100
m_InitMovementState
= -1;
101
m_FinalMovementState
= -1;
102
103
m_ActionData
.m_Player.SetMapClosingSyncSet(
false
);
//reset
104
105
ItemMap
chernomap =
ItemMap
.Cast(
m_ActionData
.m_Player.GetItemInHands());
106
if
(chernomap &&
m_ActionData
.m_Player.IsMapOpen())
107
{
108
chernomap.SetMapStateOpen(
false
,
m_ActionData
.m_Player);
109
}
110
111
if
(action)
112
action.End(
m_ActionData
);
113
}
114
}
115
116
void
PerformMapChange
()
117
{
118
if
(
m_ActionData
.m_Player.IsSwimming() ||
m_ActionData
.m_Player.IsClimbing() ||
m_ActionData
.m_Player.IsFalling() ||
m_ActionData
.m_Player.IsClimbingLadder() ||
m_ActionData
.m_Player.IsUnconscious() ||
m_ActionData
.m_Player.IsRestrained())
119
return
;
120
121
ItemMap
chernomap =
ItemMap
.Cast(
m_ActionData
.m_Player.GetItemInHands());
122
if
(chernomap)
123
{
124
if
(!
m_ActionData
.m_Player.IsMapOpen() && !
m_MapFolding
)
125
{
126
if
(
m_CancelCondition
)
//do not open when cancelling in progress
127
return
;
128
129
chernomap.SetMapStateOpen(
true
,
m_ActionData
.m_Player);
130
131
if
(!
g_Game
.IsDedicatedServer())
132
{
133
Mission
mission
=
g_Game
.GetMission();
134
UIManager
m_UIManager;
135
UIScriptedMenu
mapMenu;
136
m_UIManager =
g_Game
.GetUIManager();
137
m_UIManager.
CloseAll
();
138
if
(!
CfgGameplayHandler
.
GetUse3DMap
())
139
{
140
mapMenu = m_UIManager.
EnterScriptedMenu
(
MENU_MAP
, null);
141
mapMenu.
InitMapItem
(chernomap);
142
mapMenu.
LoadMapMarkers
();
143
mission
.AddActiveInputExcludes({
"map"
});
144
}
145
else
146
{
147
mission
.AddActiveInputExcludes({
"loopedactions"
});
148
}
149
150
mission
.AddActiveInputRestriction(EInputRestrictors.MAP);
151
}
152
}
153
else
if
(
m_ActionData
.m_Player.IsMapOpen())
154
{
155
chernomap.SetMapStateOpen(
false
,
m_ActionData
.m_Player);
156
m_MapFolding
=
true
;
157
m_ActionData
.m_Player.SetMapOpen(
false
);
158
}
159
}
160
}
161
162
bool
StateCheck
()
163
{
164
return
m_InitMovementState
==
m_FinalMovementState
;
165
}
166
}
167
168
class
ActionUnfoldMap
:
ActionBase
169
{
170
void
ActionUnfoldMap
()
171
{
172
m_Text =
"#unfold_map"
;
173
}
174
175
override
bool
IsInstant
()
176
{
177
return
false
;
178
}
179
180
override
void
CreateConditionComponents
()
181
{
182
m_ConditionItem =
new
CCINonRuined
();
183
m_ConditionTarget =
new
CCTNone
();
184
}
185
186
override
bool
HasTarget
()
187
{
188
return
false
;
189
}
190
191
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
192
{
193
if
(player.m_hac || player.IsMapOpen())
194
{
195
return
false
;
196
}
197
return
true
;
198
}
199
200
override
int
GetActionCategory
()
201
{
202
return
AC_SINGLE_USE
;
203
}
204
205
override
void
OnStartClient
(
ActionData
action_data)
206
{
207
OpenMap
(action_data);
208
}
209
210
override
void
OnStartServer
(
ActionData
action_data)
211
{
212
super.OnStartServer(action_data);
213
214
OpenMap
(action_data);
215
ItemMap
chernomap =
ItemMap
.Cast(action_data.m_MainItem);
216
chernomap.SyncMapMarkers();
217
}
218
219
override
void
OnEndRequest
(
ActionData
action_data)
220
{
221
action_data.m_Callback.InternalCommand(
DayZPlayerConstants
.CMD_ACTIONINT_END);
222
action_data.m_State =
UA_FINISHED
;
223
}
224
225
override
void
Interrupt
(
ActionData
action_data)
226
{
227
if
(action_data.m_Player.m_hac)
228
{
229
action_data.m_Player.m_hac.m_MapFolding =
true
;
230
action_data.m_Player.m_hac.PerformMapChange();
231
action_data.m_Player.m_hac.Cancel();
232
}
233
else
//should never get here, End called from the callback
234
{
235
End
(action_data);
236
}
237
}
238
239
void
OpenMap
(
ActionData
action_data)
240
{
241
if
(!action_data.m_Player.IsPlayerInStance(
DayZPlayerConstants
.STANCEMASK_PRONE))
242
{
243
action_data.m_Player.m_hac =
ActionUnfoldMapCB
.Cast(action_data.m_Player.AddCommandModifier_Action(
DayZPlayerConstants
.CMD_ACTIONMOD_VIEWMAP,
ActionUnfoldMapCB
));
244
}
245
else
246
{
247
action_data.m_Player.m_hac =
ActionUnfoldMapCB
.Cast(action_data.m_Player.StartCommand_Action(
DayZPlayerConstants
.CMD_ACTIONFB_VIEWMAP,
ActionUnfoldMapCB
,
DayZPlayerConstants
.STANCEMASK_PRONE));
248
}
249
250
// sets player for associated callback to use
251
if
(action_data.m_Player.m_hac)
252
{
253
action_data.m_Player.m_hac.SetActionData(action_data);
254
action_data.m_Callback = action_data.m_Player.m_hac;
255
}
256
}
257
258
override
bool
CanBePerformedWhileChangingStance
()
259
{
260
return
false
;
261
}
262
};
AC_SINGLE_USE
const int AC_SINGLE_USE
Definition
_constants.c:2
ActionData
ActionBase ActionData
Definition
actionbase.c:30
Interrupt
void Interrupt()
Definition
actionmanagerbase.c:284
ActionTarget
class ActionTargets ActionTarget
ActionUnfoldMap
ActionUnfoldMapCB ActionBaseCB ActionUnfoldMap()
Definition
actionunfoldmap.c:170
OpenMap
void OpenMap(ActionData action_data)
Definition
actionunfoldmap.c:239
ActionBaseCB::ActionBaseCB
void ActionBaseCB()
Definition
animatedactionbase.c:9
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase
Definition
actionbase.c:59
ActionBase::ActionCondition
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionbase.c:415
ActionBase::CreateConditionComponents
void CreateConditionComponents()
Definition
actionbase.c:236
ActionBase::HasTarget
bool HasTarget()
Action is performed on target, not with item itself, when set to true.
Definition
actionbase.c:250
ActionBase::GetActionCategory
int GetActionCategory()
Definition
actionbase.c:284
ActionBase::OnStartClient
void OnStartClient(ActionData action_data)
Definition
actionbase.c:1277
ActionBase::OnStartServer
void OnStartServer(ActionData action_data)
Definition
actionbase.c:1280
ActionBase::OnEndRequest
void OnEndRequest(ActionData action_data)
Definition
actionbase.c:797
ActionBase::IsInstant
bool IsInstant()
Definition
actionbase.c:268
ActionBase::CanBePerformedWhileChangingStance
bool CanBePerformedWhileChangingStance()
Condition used in PlayerBase::CanChangeStance to check if stance can be changed while action is perfo...
Definition
actionbase.c:320
ActionUnfoldMapCB
Definition
actionunfoldmap.c:2
ActionUnfoldMapCB::m_MapFolding
bool m_MapFolding
Definition
actionunfoldmap.c:3
ActionUnfoldMapCB::OnAnimationEvent
override void OnAnimationEvent(int pEventID)
Definition
actionunfoldmap.c:63
ActionUnfoldMapCB::SetActionData
override void SetActionData(ActionData action_data)
Definition
actionunfoldmap.c:41
ActionUnfoldMapCB::~ActionUnfoldMapCB
void ~ActionUnfoldMapCB()
Definition
actionunfoldmap.c:16
ActionUnfoldMapCB::m_HasReceivedEvent
bool m_HasReceivedEvent
Definition
actionunfoldmap.c:4
ActionUnfoldMapCB::StateCheck
bool StateCheck()
Definition
actionunfoldmap.c:162
ActionUnfoldMapCB::PerformMapChange
void PerformMapChange()
Definition
actionunfoldmap.c:116
ActionUnfoldMapCB::CancelCondition
bool CancelCondition()
Definition
actionunfoldmap.c:47
ActionUnfoldMapCB::OnStateChange
override void OnStateChange(int pOldState, int pCurrentState)
Definition
actionunfoldmap.c:52
ActionUnfoldMapCB::OnFinish
override void OnFinish(bool pCanceled)
Definition
actionunfoldmap.c:87
ActionUnfoldMapCB::m_InitMovementState
int m_InitMovementState
Definition
actionunfoldmap.c:6
ActionUnfoldMapCB::ActionUnfoldMapCB
void ActionUnfoldMapCB()
Definition
actionunfoldmap.c:9
ActionUnfoldMapCB::m_CancelCondition
bool m_CancelCondition
Definition
actionunfoldmap.c:5
ActionUnfoldMapCB::m_FinalMovementState
int m_FinalMovementState
Definition
actionunfoldmap.c:7
CCINonRuined
Definition
ccinonruined.c:2
CCTNone
Definition
cctnone.c:2
CfgGameplayHandler
Definition
cfggameplayhandler.c:2
CfgGameplayHandler::GetUse3DMap
static bool GetUse3DMap()
Definition
cfggameplayhandler.c:392
ItemBase
Definition
inventoryitem.c:742
ItemMap
Definition
chernarusmap_open.c:2
Mission
Mission class.
Definition
gameplay.c:686
PlayerBase
Definition
playerbaseclient.c:2
UIManager
Definition
uimanager.c:2
UIManager::EnterScriptedMenu
proto native UIScriptedMenu EnterScriptedMenu(int id, UIMenuPanel parent)
Create & open menu with specific id (see MenuID) and set its parent.
UIManager::CloseAll
bool CloseAll()
Close all opened menus.
Definition
uimanager.c:78
UIScriptedMenu
Xbox menu.
Definition
dayzgame.c:64
UIScriptedMenu::LoadMapMarkers
override void LoadMapMarkers()
Definition
mapmenu.c:322
UIScriptedMenu::InitMapItem
override void InitMapItem(EntityAI item)
Definition
mapmenu.c:168
RegisterAnimationEvent
class DayZCreatureAnimInterface RegisterAnimationEvent(string event_name, string function_name)
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
mission
Mission mission
Definition
displaystatus.c:28
MENU_MAP
const int MENU_MAP
Definition
constants.c:191
UA_FINISHED
const int UA_FINISHED
Definition
constants.c:469
UA_ANIM_EVENT
const int UA_ANIM_EVENT
Definition
constants.c:476
STATE_LOOP_IN
static const int STATE_LOOP_IN
looped state
Definition
human.c:352
EnableCancelCondition
proto native void EnableCancelCondition(bool pEnable)
enables calling cancel condition default is disabled when enabled - there must be a function "bool Ca...
EnableStateChangeCallback
proto native void EnableStateChangeCallback()
enables state change callback OnStateChange
STATE_LOOP_LOOP
static const int STATE_LOOP_LOOP
Definition
human.c:353
End
proto static native void End()
Finalizes the testing process.
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
singleuse
actionunfoldmap.c
Generated by
1.17.0