DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
UndergroundDiag.c
См. документацию.
1#ifdef DIAG_DEVELOPER
2//----------------------------------------------------------------------------------------
3
4class UndergroundTriggerHandle : ItemBase
5{
6 BoxDraw m_Reference;
7 ref JsonUndergroundAreaTriggerData m_Data;
8
9 void UndergroundTriggerHandle()
10 {
11 m_Data = new JsonUndergroundAreaTriggerData();
12 }
13
14 string GetHandleName()
15 {
16 return m_Data.Comment;
17 }
18
19 void SetHandleName(string name)
20 {
21 m_Data.Comment = name;
22 }
23
24 void SetBoxDrawRef(BoxDraw boxReference)
25 {
26 m_Reference = boxReference;
27 }
28}
29
30class UndergroundBreadcrumbHandle : ItemBase
31{
32 UndergroundTriggerHandle m_ParentTrigger;
33 BreadcrumbDraw m_Reference;
34 ref JsonUndergroundAreaBreadcrumb m_Data;
35
36 void UndergroundBreadcrumbHandle()
37 {
38 m_Data = new JsonUndergroundAreaBreadcrumb();
39 }
40
41 string GetHandleName()
42 {
43 return m_Data.Comment;
44 }
45
46 void SetHandleName(string name)
47 {
48 m_Data.Comment = name;
49 }
50
51 void SetBreadcrumbDrawRef(BreadcrumbDraw breadcrumbReference)
52 {
53 m_Reference = breadcrumbReference;
54 }
55}
56
57class DrawGizmoBase : Managed
58{
59 protected vector m_Rotation[3];
60 protected vector m_Transform[4];
61
62 bool m_TransformAllowed = false;
63
64 ref ScriptInvoker m_OnTransformChanged = new ScriptInvoker();
65
66 void DrawGizmoBase(vector pPosition)
67 {
68 Math3D.MatrixIdentity4(m_Transform);
69 Math3D.MatrixIdentity3(m_Rotation);
70
71 SetPosition(pPosition);
72 }
73
74 bool Gizmo_IsAllowedTransformMode(GizmoTransformMode mode)
75 {
76 return m_TransformAllowed;
77 }
78
79 bool Gizmo_IsAllowedSpaceMode(GizmoSpaceMode mode)
80 {
81 return true;
82 }
83
84 void SetPosition(vector position)
85 {
87
89 }
90
91 vector GetPosition()
92 {
93 return m_Transform[3];
94 }
95
96 void SetTransform(vector transform[4])
97 {
98 copyarray(m_Transform, transform);
99 }
100
101 void GetTransform(inout vector transform[4])
102 {
103 copyarray(transform, m_Transform);
104 }
105
106 bool Gizmo_IsSupported()
107 {
108 return true;
109 }
110
111 void Gizmo_SetWorldTransform(vector transform[4], bool finalize)
112 {
113 m_OnTransformChanged.Invoke(transform);
114
115 SetTransform(transform);
116 }
117
118 void Gizmo_GetWorldTransform(vector transform[4])
119 {
120 copyarray(transform, m_Transform);
121 }
122
123 protected void IsolateYawOnly(inout vector transform[4])
124 {
125 vector inTransform[4];
126 copyarray(inTransform, transform);
127 vector col0 = inTransform[0]; // (r00, r10, r20)
128 vector col1 = inTransform[1]; // (r01, r11, r21)
129 vector col2 = inTransform[2]; // (r02, r12, r22)
130
131 // Extract yaw from existing rotation
132 float r00 = col0[0]; // x of X basis
133 float r02 = col2[0]; // x of Z basis
134 float yaw = Math.Atan2(r02, r00);
135
136 float c = Math.Cos(yaw);
137 float s = Math.Sin(yaw);
138
139 // Pure yaw about Y axis:
140 // Ry = [ [ c, 0, s ],
141 // [ 0, 1, 0 ],
142 // [ -s, 0, c ] ]
143 vector yawCol0 = Vector( c, 0, -s); // X basis column
144 vector yawCol1 = Vector( 0, 1, 0); // Y basis column
145 vector yawCol2 = Vector( s, 0, c); // Z basis column
146
147 transform[0] = yawCol0;
148 transform[1] = yawCol1;
149 transform[2] = yawCol2;
150 transform[3] = inTransform[3];
151 }
152}
153
154class BreadcrumbGizmo : DrawGizmoBase
155{
156 override bool Gizmo_IsAllowedTransformMode(GizmoTransformMode mode)
157 {
158 if (!super.Gizmo_IsAllowedTransformMode(mode))
159 return false;
160
161 if (mode == GizmoTransformMode.MOVE || mode == GizmoTransformMode.MOVE_2D)
162 return true;
163
164 return false;
165 }
166}
167
168class BoxDrawGizmo : DrawGizmoBase {}
169
170class BoxDrawCenterGizmo: BoxDrawGizmo
171{
172 override bool Gizmo_IsAllowedTransformMode(GizmoTransformMode mode)
173 {
174 if (!super.Gizmo_IsAllowedTransformMode(mode))
175 return false;
176
177 if (mode != GizmoTransformMode.SCALE)
178 return true;
179
180 return false;
181 }
182}
183
184class BoxDrawCornerGizmo : BoxDrawGizmo
185{
186 override bool Gizmo_IsAllowedTransformMode(GizmoTransformMode mode)
187 {
188 if (!super.Gizmo_IsAllowedTransformMode(mode))
189 return false;
190
191 if (mode == GizmoTransformMode.MOVE || mode == GizmoTransformMode.MOVE_2D)
192 return true;
193
194 return false;
195 }
196}
197
198class ArrayBoxDraw : array<ref BoxDraw>
199{
200 void Update()
201 {
202 for (int i = 0; i < Count(); ++i)
203 {
204 BoxDraw item = Get(i);
205 item.Update();
206 }
207 }
208}
209
210class ArrayBreadcrumbDraw : array<ref BreadcrumbDraw>
211{
212 void Update()
213 {
214 for (int i = 0; i < Count(); ++i)
215 {
216 BreadcrumbDraw item = Get(i);
217 item.Update();
218 }
219 }
220}
221
222class UndergroundTriggerDrawBase : Managed
223{
224 vector GetCenter()
225 {
226 return vector.Zero;
227 }
228
229 protected vector LocalToWorldFromMat(vector mat[4], vector localPos)
230 {
231 vector right = mat[0];
232 vector up = mat[1];
233 vector forward = mat[2];
234 vector center = mat[3];
235
236 return center + right * localPos[0] + up * localPos[1] + forward * localPos[2];
237 }
238
239 protected vector WorldToLocal(BoxDrawGizmo gizmo, vector worldPos)
240 {
241 vector mat[4];
242 gizmo.GetTransform(mat);
243
244 vector right = mat[0];
245 vector up = mat[1];
246 vector forward = mat[2];
247 vector center = mat[3];
248
249 vector v = worldPos - center;
250
251 vector localPosition;
252 localPosition[0] = vector.Dot(v, right);
253 localPosition[1] = vector.Dot(v, up);
254 localPosition[2] = vector.Dot(v, forward);
255
256 return localPosition;
257 }
258}
259
260class BoxDraw : UndergroundTriggerDrawBase
261{
262 private bool m_IsShown;
263 private bool m_IsSelected;
264
265 private vector m_LocalMin;
266 private vector m_LocalMax;
267
268 private ref BoxDrawCenterGizmo m_GizmoCenter;
269 private ref BoxDrawCornerGizmo m_GizmoMin, m_GizmoMax;
270 private UndergroundTriggerHandle m_HandleHelper
271
272 private ref array<ref DebugTextWorldSpace> m_DebugTextsWS;
273
274 private ref ScriptInvoker m_OnTransformChanged;
275
276 void BoxDraw(vector position, vector orientation = "0 0 0", vector size = "1 1 1")
277 {
278 if (!GetGizmoApi())
279 ErrorEx("Gizmo API not created, crash imminent", ErrorExSeverity.ERROR);
280
281 m_DebugTextsWS = new array<ref DebugTextWorldSpace>();
282
283 m_GizmoCenter = new BoxDrawCenterGizmo(position);
284
285 vector centerMat[4];
286 Math3D.YawPitchRollMatrix(orientation, centerMat);
287
288 centerMat[3] = position;
289 m_GizmoCenter.SetTransform(centerMat);
290
291 // Define local extents from size (rotation-independent)
292 vector he = size * 0.5;
293 m_LocalMin = Vector(-he[0], -he[1], -he[2]);
294 m_LocalMax = Vector( he[0], he[1], he[2]);
295
296 // Compute world positions for min/max gizmos from center transform
297 vector worldMin = LocalToWorldFromMat(centerMat, m_LocalMin);
298 vector worldMax = LocalToWorldFromMat(centerMat, m_LocalMax);
299
300 m_GizmoMin = new BoxDrawCornerGizmo(worldMin);
301 m_GizmoMax = new BoxDrawCornerGizmo(worldMax);
302
303 // sync corner's gizmo rotation to the center’s rotation
304 {
305 vector minMat[4]; copyarray(minMat, centerMat); minMat[3] = worldMin;
306 vector maxMat[4]; copyarray(maxMat, centerMat); maxMat[3] = worldMax;
307 m_GizmoMin.SetTransform(minMat);
308 m_GizmoMax.SetTransform(maxMat);
309 }
310
311 m_HandleHelper = UndergroundTriggerHandle.Cast(g_Game.CreateObjectEx("UndergroundTriggerHandle", position, ECE_LOCAL|ECE_NOLIFETIME|ECE_KEEPHEIGHT));
312 m_HandleHelper.SetBoxDrawRef(this);
313
314 UpdateMinGizmo();
315 UpdateMaxGizmo();
316
317 m_GizmoCenter.m_OnTransformChanged.Insert(OnCenterGizmoTransformChanged);
318 m_GizmoMin.m_OnTransformChanged.Insert(OnMinGizmoTransformChanged);
319 m_GizmoMax.m_OnTransformChanged.Insert(OnMaxGizmoTransformChanged);
320 }
321
322 void ~BoxDraw()
323 {
324 m_GizmoCenter.m_OnTransformChanged.Remove(OnCenterGizmoTransformChanged);
325 m_GizmoMin.m_OnTransformChanged.Remove(OnMinGizmoTransformChanged);
326 m_GizmoMax.m_OnTransformChanged.Remove(OnMinGizmoTransformChanged);
327
328 if (m_HandleHelper)
329 m_HandleHelper.Delete();
330 }
331
332 void Update()
333 {
334 vector globalTransform[4];
335 m_GizmoCenter.GetTransform(globalTransform);
336 DrawRotatedBox(globalTransform, 0x33ffb626);
337
338 // update the helper handle position together with center gizmo
339 m_HandleHelper.SetPosition(globalTransform[3] + "0.25 0.5 0.25");
340
341 DrawDebugs(m_IsSelected);
342 }
343
344 UndergroundTriggerHandle GetTriggerHandle()
345 {
346 return m_HandleHelper;
347 }
348
349 ScriptInvoker Event_OnTransformChanged()
350 {
351 if (!m_OnTransformChanged)
352 m_OnTransformChanged = new ScriptInvoker();
353
354 return m_OnTransformChanged;
355 }
356
357 void SetAllowTransform(bool state)
358 {
359 m_GizmoMin.m_TransformAllowed = state;
360 m_GizmoMax.m_TransformAllowed = state;
361 m_GizmoCenter.m_TransformAllowed = state;
362
363 m_IsSelected = state;
364 }
365
366 void Select()
367 {
368 GetGizmoApi().SelectUser(m_GizmoMin);
369 GetGizmoApi().SelectUser(m_GizmoMax);
370 GetGizmoApi().SelectUser(m_GizmoCenter);
371 }
372
373 override vector GetCenter()
374 {
375 vector transform[4];
376 m_GizmoCenter.GetTransform(transform);
377
378 return transform[3];
379 }
380
381 vector GetOrientation()
382 {
383 vector transform[4];
384 m_GizmoCenter.GetTransform(transform);
385
386 return Math3D.MatrixToAngles(transform);
387 }
388
389 vector GetSize()
390 {
391 vector size = Math3D.BoxSize(m_LocalMin, m_LocalMax);
392 return size;
393 }
394
395 private void UpdateMinGizmo()
396 {
397 vector globalTransform[4];
398 m_GizmoCenter.GetTransform(globalTransform);
399 vector oldTransform[4];
400 copyarray(oldTransform, globalTransform);
401 vector worldMin = LocalToWorldFromMat(globalTransform, m_LocalMin);
402 vector worldMax = LocalToWorldFromMat(globalTransform, m_LocalMax);
403
404 vector matMin[4];
405 copyarray(matMin, globalTransform);
406 matMin[3] = worldMin;
407
408 m_GizmoMin.SetTransform(matMin);
409
410 // update center position
411 vector center = Math3D.BoxCenter(worldMin, worldMax);
412 globalTransform[3] = center;
413 m_GizmoCenter.SetTransform(globalTransform);
414
415 // recompute local extents in *new* center space
416 m_LocalMin = WorldToLocal(m_GizmoCenter, worldMin);
417 m_LocalMax = WorldToLocal(m_GizmoCenter, worldMax);
418
419 Event_OnTransformChanged().Invoke(oldTransform, globalTransform);
420 }
421
422 private void UpdateMaxGizmo()
423 {
424 vector globalTransform[4];
425 m_GizmoCenter.GetTransform(globalTransform);
426 vector oldTransform[4];
427 copyarray(oldTransform, globalTransform);
428 vector worldMin = LocalToWorldFromMat(globalTransform, m_LocalMin);
429 vector worldMax = LocalToWorldFromMat(globalTransform, m_LocalMax);
430
431 vector matMax[4];
432 copyarray(matMax, globalTransform);
433 matMax[3] = worldMax;
434
435 m_GizmoMax.SetTransform(matMax);
436
437 // update center position
438 vector center = Math3D.BoxCenter(worldMin, worldMax);
439 globalTransform[3] = center;
440 m_GizmoCenter.SetTransform(globalTransform);
441
442 // recompute local extents in "new" center space
443 m_LocalMin = WorldToLocal(m_GizmoCenter, worldMin);
444 m_LocalMax = WorldToLocal(m_GizmoCenter, worldMax);
445
446 Event_OnTransformChanged().Invoke(oldTransform, globalTransform);
447 }
448
449 private void OnCenterGizmoTransformChanged(vector transform[4])
450 {
451 vector oldTransform[4];
452 m_GizmoCenter.GetTransform(oldTransform);
453 m_GizmoCenter.SetTransform(transform);
454
455 Event_OnTransformChanged().Invoke(oldTransform, transform);
456
457 UpdateMinGizmo();
458 UpdateMaxGizmo();
459 }
460
461 private void OnMinGizmoTransformChanged(vector transform[4])
462 {
463 Debug.DrawSphere(transform[3], 1.0, COLOR_RED_A, ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE|ShapeFlags.ONCE);
464
465 vector localPosition = WorldToLocal(m_GizmoCenter, transform[3]);
466 m_LocalMin = localPosition;
467
468 UpdateMinGizmo();
469 }
470
471 private void OnMaxGizmoTransformChanged(vector transform[4])
472 {
473 Debug.DrawSphere(transform[3], 1.0, COLOR_BLUE_A, ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE|ShapeFlags.ONCE);
474
475 vector localPosition = WorldToLocal(m_GizmoCenter, transform[3]);
476 m_LocalMax = localPosition;
477
478 UpdateMaxGizmo();
479 }
480
481 private void DrawDebugs(bool enabled)
482 {
483 m_DebugTextsWS.Clear();
484
485 if (enabled)
486 {
487 vector globalTransform[4];
488 m_GizmoCenter.GetTransform(globalTransform);
489 vector worldMin = LocalToWorldFromMat(globalTransform, m_LocalMin);
490 vector worldMax = LocalToWorldFromMat(globalTransform, m_LocalMax);
491
492 vector position = worldMin;
493 position[1] = position[1] + 0.2;
494 m_DebugTextsWS.Insert(DebugTextWorldSpace.Create("Min", DebugTextFlags.ONCE, position[0], position[1], position[2], 20, 0xFFFFFFFF, 0x00000000));
495 position = worldMax;
496 position[1] = position[1] + 0.2;
497 m_DebugTextsWS.Insert(DebugTextWorldSpace.Create("Max", DebugTextFlags.ONCE, position[0], position[1], position[2], 20, 0xFFFFFFFF, 0x00000000));
498 }
499 }
500
501 private void DrawRotatedBox(vector transform[4], int color)
502 {
503 vector cornersLocal[8];
504
505 // build all 8 local corners from min/max
506 cornersLocal[0] = m_LocalMin;
507 cornersLocal[1] = Vector(m_LocalMax[0], m_LocalMin[1], m_LocalMin[2]);
508 cornersLocal[2] = Vector(m_LocalMin[0], m_LocalMax[1], m_LocalMin[2]);
509 cornersLocal[3] = Vector(m_LocalMax[0], m_LocalMax[1], m_LocalMin[2]);
510 cornersLocal[4] = Vector(m_LocalMin[0], m_LocalMin[1], m_LocalMax[2]);
511 cornersLocal[5] = Vector(m_LocalMax[0], m_LocalMin[1], m_LocalMax[2]);
512 cornersLocal[6] = Vector(m_LocalMin[0], m_LocalMax[1], m_LocalMax[2]);
513 cornersLocal[7] = m_LocalMax;
514
515 vector c[8];
516 for (int i = 0; i < 8; i++)
517 c[i] = LocalToWorldFromMat(transform, cornersLocal[i]);
518
519 int edgePairs[] = {
520 0,1, 1,3, 3,2, 2,0,
521 4,5, 5,7, 7,6, 6,4,
522 0,4, 1,5, 2,6, 3,7
523 };
524
525 for (int j = 0; j < 24; j += 2)
526 Debug.DrawLine(c[edgePairs[j]], c[edgePairs[j + 1]], 0xff000000, ShapeFlags.ONCE);
527
528 int size = 36;
529
530 int tris[] =
531 {
532 // -Z
533 0, 1, 3,
534 0, 3, 2,
535
536 // +Z
537 4, 5, 7,
538 4, 7, 6,
539
540 // -X
541 0, 2, 6,
542 0, 6, 4,
543
544 // +X
545 1, 3, 7,
546 1, 7, 5,
547
548 // -Y
549 0, 1, 5,
550 0, 5, 4,
551
552 // +Y
553 2, 3, 7,
554 2, 7, 6
555 };
556
557 for (int p = 0; p < size; p += 3)
558 {
559 vector face[3] = {};
560 if (p + 2 >= size)
561 break; // safety check
562
563 face[0] = c[tris[p]];
564 face[1] = c[tris[p + 1]];
565 face[2] = c[tris[p + 2]];
566
567 Shape.CreateTris(color, ShapeFlags.ONCE|ShapeFlags.DOUBLESIDE|ShapeFlags.TRANSP, face, 3);
568 }
569 }
570}
571
572class BreadcrumbDraw : UndergroundTriggerDrawBase
573{
574 private bool m_IsShown;
575 private bool m_IsSelected;
576
577 private vector m_LocalMin;
578 private vector m_LocalMax;
579
580 private vector m_LastTransform[4];
581
582 private ref BreadcrumbGizmo m_GizmoCenter;
583
584 private ref ScriptInvoker m_OnTransformChanged;
585
586 private UndergroundBreadcrumbHandle m_HandleHelper
587
588 private ref array<ref DebugTextWorldSpace> m_DebugTextsWS;
589
590 void BreadcrumbDraw(vector position)
591 {
592 if (!GetGizmoApi())
593 ErrorEx("Gizmo API not created, crash imminent", ErrorExSeverity.ERROR);
594
595 m_DebugTextsWS = new array<ref DebugTextWorldSpace>();
596
597 m_GizmoCenter = new BreadcrumbGizmo(position);
598
599 vector centerMat[4];
600
601 centerMat[3] = position;
602 vector orientation = vector.Zero;
603 Math3D.YawPitchRollMatrix(orientation, centerMat);
604 copyarray(m_LastTransform, centerMat); // store the initial matrix in last transform cache
605 m_GizmoCenter.SetTransform(centerMat);
606
607 m_HandleHelper = UndergroundBreadcrumbHandle.Cast(g_Game.CreateObjectEx("UndergroundBreadcrumbHandle", position, ECE_LOCAL|ECE_NOLIFETIME|ECE_KEEPHEIGHT));
608 m_HandleHelper.SetBreadcrumbDrawRef(this);
609
610 m_GizmoCenter.m_OnTransformChanged.Insert(OnCenterGizmoTransformChanged);
611 }
612
613 void ~BreadcrumbDraw()
614 {
615 m_GizmoCenter.m_OnTransformChanged.Remove(OnCenterGizmoTransformChanged);
616
617 if (m_HandleHelper)
618 m_HandleHelper.Delete();
619 }
620
621 UndergroundBreadcrumbHandle GetBreadcrumbHandle()
622 {
623 return m_HandleHelper;
624 }
625
626 ScriptInvoker Event_OnTransformChanged()
627 {
628 if (!m_OnTransformChanged)
629 m_OnTransformChanged = new ScriptInvoker();
630
631 return m_OnTransformChanged;
632 }
633
634 void ApplyTransformation(vector parentOldTransform[4], vector parentNewTransform[4])
635 {
636 vector parentOldTransformInv[4];
637
638 // Yaw delta from the two parent transforms
639 float cOld = parentOldTransform[2][2];
640 float sOld = parentOldTransform[2][0];
641 float cNew = parentNewTransform[2][2];
642 float sNew = parentNewTransform[2][0];
643
644 // cos/sin of (yawNew - yawOld) via angle subtraction identities
645 float cosDelta = cNew * cOld + sNew * sOld;
646 float sinDelta = sNew * cOld - cNew * sOld;
647
648 // Offset of child from old parent transform
649 vector offset = m_LastTransform[3] - parentOldTransform[3];
650
651 // Rotate offset by yaw delta around Y
652 /*
653 vector rotatedOffset = Vector(
654 offset[0] * cosDelta + offset[2] * sinDelta,
655 offset[1],
656 -offset[0] * sinDelta + offset[2] * cosDelta,
657 );
658 */
659
660 // breadcrumb position based on parent's main rotation (yaw only)
661 vector childNew[4];
662 copyarray(childNew, parentNewTransform);
663 childNew[3] = parentNewTransform[3] + offset;
664
665 vector globalTransform[4];
666 m_GizmoCenter.GetTransform(globalTransform);
667 globalTransform[3] = childNew[3];
668 copyarray(m_LastTransform, globalTransform);
669 m_GizmoCenter.SetTransform(globalTransform);
670 }
671
672 void Update()
673 {
674 vector globalTransform[4];
675 m_GizmoCenter.GetTransform(globalTransform);
676 DrawSphere(globalTransform, 0x550000cc, m_HandleHelper.m_Data.Radius);
677 DrawDebugs(m_IsSelected);
678
679 // update the helper handle position together with center gizmo
680 m_HandleHelper.SetPosition(globalTransform[3] + "0.25 0.5 0.25");
681 }
682
683 void SetAllowTransform(bool state)
684 {
685 m_GizmoCenter.m_TransformAllowed = state;
686
687 m_IsSelected = state;
688 }
689
690 void Select()
691 {
692 GetGizmoApi().SelectUser(m_GizmoCenter);
693 }
694
695 override vector GetCenter()
696 {
697 vector transform[4];
698 m_GizmoCenter.GetTransform(transform);
699
700 return transform[3];
701 }
702
703 private void OnCenterGizmoTransformChanged(vector transform[4])
704 {
705 vector oldTransform[4];
706 m_GizmoCenter.GetTransform(oldTransform);
707 m_GizmoCenter.SetTransform(transform);
708
709 Update();
710
711 if (m_OnTransformChanged)
712 m_OnTransformChanged.Invoke(oldTransform, transform);
713 }
714
715 private void DrawDebugs(bool enabled)
716 {
717 m_DebugTextsWS.Clear();
718
719 if (enabled)
720 {
721 vector globalTransform[4];
722 m_GizmoCenter.GetTransform(globalTransform);
723
724 vector position = globalTransform[3];
725 position[1] = position[1] + 0.2;
726 m_DebugTextsWS.Insert(DebugTextWorldSpace.Create(m_HandleHelper.GetHandleName(), DebugTextFlags.ONCE, position[0], position[1], position[2], 20, 0xFFFFFFFF, 0x00000000));
727 }
728 }
729
730 private void DrawSphere(vector transform[4], int color, float radius = 0.15)
731 {
732 Shape.CreateSphere(color, ShapeFlags.ONCE|ShapeFlags.DOUBLESIDE|ShapeFlags.TRANSP, transform[3], radius);
733 }
734}
735
736#endif
vector GetOrientation()
Определения AreaDamageManager.c:306
string Debug()
Определения CachedEquipmentStorageBase.c:26
const int ECE_LOCAL
Определения CentralEconomy.c:25
const int ECE_KEEPHEIGHT
Определения CentralEconomy.c:28
const int ECE_NOLIFETIME
Определения CentralEconomy.c:30
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Определения DayZGame.c:4074
vector position
Определения DustKickupEffects.c:20
vector orientation
Определения DustKickupEffects.c:21
proto GizmoApi GetGizmoApi()
GizmoTransformMode
Определения GizmoApi.c:2
GizmoSpaceMode
Определения GizmoApi.c:11
vector m_Transform[4]
If 'OnDebug' is to be called.
Определения Object.c:21
override float Get()
Определения PlayerStatBase.c:134
int GetSize()
Определения QuickBarBase.c:90
@ Count
Определения RandomGeneratorSyncManager.c:8
UndergroundTriggerCarrier m_Data
proto void SelectUser(Managed instance)
vector GetPosition()
Определения IntroSceneCharacter.c:129
TODO doc.
Определения EnScript.c:118
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
Определения EnConvert.c:305
static const vector Zero
Определения EnConvert.c:123
const int COLOR_BLUE_A
Определения 1_Core/DayZ/constants.c:73
const int COLOR_RED_A
Определения 1_Core/DayZ/constants.c:71
ErrorExSeverity
Определения EnDebug.c:62
DebugTextFlags
Определения DebugTextFlags.c:8
enum ShapeType ErrorEx
proto native void SetPosition(vector position)
Set the world position of the Effect.
Определения Effect.c:463
ShapeFlags
Определения EnDebug.c:126
class DiagMenu Shape
don't call destructor directly. Use Destroy() instead
proto void copyarray(void destArray, void srcArray)
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
proto native volatile void Update()
Определения PlayerSoundManager.c:125
proto native void SetTransform(vector mat[4], bool immedUpdate=true)