DayZ 1.24
Loading...
Searching...
No Matches
ScriptConsoleGeneralTab.c
Go to the documentation of this file.
2{
3 static int m_ObjectsScope = 2;
4
5 protected static float DEBUG_MAP_ZOOM = 1;
6 protected static bool SHOW_OTHERS = 0;
7
8 protected const string DEFAULT_POS_XYZ = "<1,2,3>";
9 protected vector m_MapPos;
11
13
14 protected MissionGameplay m_MissionGameplay;
15 protected PluginDeveloper m_Developer;
16
18 protected ref Timer m_LateInit = new Timer();
19
21
22 //-------------------------------- WIDGETS ---------------------------------------
31
38
48
50
53
57
62 //-----------------------------------------------------------------------------------
63
65 {
66 m_MissionGameplay = MissionGameplay.Cast(GetGame().GetMission());
67
68 m_DiagToggleTextListbox = TextListboxWidget.Cast(root.FindAnyWidget("DiagToggle"));
69 m_DiagToggleButton = ButtonWidget.Cast(root.FindAnyWidget("DiagToggleButton"));
70
71 m_DiagDrawmodeTextListbox = TextListboxWidget.Cast(root.FindAnyWidget("DiagDrawmode"));
72 m_DiagDrawButton = ButtonWidget.Cast(root.FindAnyWidget("DiagDrawButton"));
73
74 m_DebugMapWidget = MapWidget.Cast(root.FindAnyWidget("MapWidget"));
75
76 m_PositionsListbox = TextListboxWidget.Cast(root.FindAnyWidget("PositionsList"));
77 m_TeleportButton = ButtonWidget.Cast(root.FindAnyWidget("ButtonTeleport"));
78 m_ButtonCopyPos = ButtonWidget.Cast(root.FindAnyWidget("Button_CopyPos"));
79
80 m_TeleportX = EditBoxWidget.Cast(root.FindAnyWidget("TeleportX"));
81 m_TeleportY = EditBoxWidget.Cast(root.FindAnyWidget("TeleportY"));
82 m_TeleportXYZ = EditBoxWidget.Cast(root.FindAnyWidget("TeleportXYZ"));
83 m_PlayerCurPos = TextWidget.Cast(root.FindAnyWidget("PlayerPosLabel"));
84 m_PlayerMouseDiff = TextWidget.Cast(root.FindAnyWidget("PlayerMouseDiff"));
85 m_MouseCurPos = TextWidget.Cast(root.FindAnyWidget("MousePosLabel"));
86 m_LogsEnabled = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_LogsEnabled"));
87 m_HudDCharStats = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterStats"));
88 m_HudDCharLevels = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterLevels"));
89 m_HudDCharStomach = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterStomach"));
90 m_HudDCharModifiers = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterModifiers"));
91 m_HudDCharAgents = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterAgents"));
92 m_HudDCharDebug = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_CharacterDebug"));
93 m_HudDFreeCamCross = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_FreeCamCross"));
94 m_HudDTemperature = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Temp"));
95 m_HudDVersion = CheckBoxWidget.Cast(root.FindAnyWidget("cbx_Version"));
96
97 m_LocationAddButton = ButtonWidget.Cast(root.FindAnyWidget("AddButton"));
98 //m_LocationAddButton.SetHandler(ToolTipEventHandler.GetInstance());
99 m_LocationRemoveButton = ButtonWidget.Cast(root.FindAnyWidget("RemoveButton"));
100
101 m_TimeSlider = SliderWidget.Cast(root.FindAnyWidget("TimeSlider"));
102 m_DateYear = EditBoxWidget.Cast(root.FindAnyWidget("DateYear"));
103 m_DateMonth = EditBoxWidget.Cast(root.FindAnyWidget("DateMonth"));
104 m_DateDay = EditBoxWidget.Cast(root.FindAnyWidget("DateDay"));
105 m_DateHour = EditBoxWidget.Cast(root.FindAnyWidget("DateHour"));
106 m_DateMinute = EditBoxWidget.Cast(root.FindAnyWidget("DateMinute"));
107
108
109 m_ShowOthers = CheckBoxWidget.Cast(root.FindAnyWidget("ShowOthersCheckbox"));
110
111 m_HelpTextListboxWidget = TextListboxWidget.Cast(root.FindAnyWidget("HelpTextListboxWidget"));
112 m_Developer = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
113
114 Init();
115 LateInit();
116
117 }
118
127
128 protected void Init()
129 {
130
131
132 // Update checkbox Character Values
133 m_HudDCharStats.SetChecked(m_ConfigDebugProfile.GetCharacterStatsVisible());
134 m_HudDCharLevels.SetChecked(m_ConfigDebugProfile.GetCharacterLevelsVisible());
135 m_HudDCharStomach.SetChecked(m_ConfigDebugProfile.GetCharacterStomachVisible());
136 m_HudDCharModifiers.SetChecked(m_ConfigDebugProfile.GetCharacterModifiersVisible());
137 m_HudDCharAgents.SetChecked(m_ConfigDebugProfile.GetCharacterAgentsVisible());
138 m_HudDCharDebug.SetChecked(m_ConfigDebugProfile.GetCharacterDebugVisible());
139 m_HudDFreeCamCross.SetChecked(m_ConfigDebugProfile.GetFreeCameraCrosshairVisible());
140 m_HudDVersion.SetChecked(m_ConfigDebugProfile.GetVersionVisible());
141 m_HudDTemperature.SetChecked(m_ConfigDebugProfile.GetTempVisible());
142
143
144 m_LogsEnabled.SetChecked(m_ConfigDebugProfile.GetLogsEnabled());
145
147 GetGame().GetDiagModeNames(diag_names);
148 int i;
149 for (i = 0; i < diag_names.Count(); i++)
150 m_DiagToggleTextListbox.AddItem(diag_names.Get(i), NULL, 0);
151
152 GetGame().GetDiagDrawModeNames(diag_names);
153 for (i = 0; i < diag_names.Count(); i++)
154 m_DiagDrawmodeTextListbox.AddItem(diag_names.Get(i), NULL, 0);
156
158
159 if (GetGame().GetPlayer())
160 {
162 m_DebugMapWidget.SetMapPos(GetGame().GetPlayer().GetWorldPosition());
163 }
165
166 m_LateInit.Run(0.05, this, "LateInit", null, false);
167
168 int year, month, day, hour, minute;
169 GetGame().GetWorld().GetDate(year, month, day, hour, minute);
171 }
172
173
174 void RefreshDateWidgets(int year, int month, int day, int hour, int minute)
175 {
176 float time01 = Math.InverseLerp(0, 60 * 24 - 1, (hour * 60) + minute);
177 m_DateYear.SetText(year.ToString());
178 m_DateMonth.SetText(month.ToString());
179 m_DateDay.SetText(day.ToString());
180 m_DateHour.SetText(hour.ToString());
181 m_DateMinute.SetText(minute.ToString());
182 m_TimeSlider.SetCurrent(time01 * 100);
183 }
184
186 {
187 int count = m_PositionsListbox.GetNumItems();
188 for (int i = 0; i < count; i++)
189 {
191 m_PositionsListbox.GetItemData(i, 0, data);
192 if (data.param1 == name)
193 return false;
194 }
195 return true;
196 }
197
198
199 void LateInit()
200 {
201 m_ShowOthers.SetChecked(SHOW_OTHERS);
202
204 {
205 int prevRow = m_ConfigDebugProfile.GetSpawnLocIndex();
206 if (prevRow < m_PositionsListbox.GetNumItems())
207 m_PositionsListbox.SelectRow(prevRow);
208
209 }
212 {
213 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(GetGame().GetPlayer()), 1);
215 }
216
217 }
218
220 {
221 if (position[1] == 0)
222 position[1] = GetGame().SurfaceY(position[0], position[2]);
223 m_Developer.Teleport(player, position);
224 }
225
227 {
228 m_PositionsListbox.ClearItems();
229
231 m_ConfigDebugProfile.GetLocationsData(locData, true);
232 m_ConfigDebugProfileFixed.GetLocationsData(locData, false);
233 foreach (LocationParams dta: locData)
234 {
235 string name = dta.param1;
236 if (!dta.param2)
237 name = "[" + name + "]";
238 m_PositionsListbox.AddItem(name, dta, 0);
239 }
240 }
241
242
244 {
245 string name;
248 if (prms)
249 name = prms.param1;
250 return name;
251 }
253 {
256 if (prms)
257 return prms.param3;
258 else
259 return vector.Zero;
260 }
261
263 {
264 if (m_PositionsListbox.GetSelectedRow() != -1)
265 m_PositionsListbox.GetItemData(m_PositionsListbox.GetSelectedRow(), 0, data);
266 }
267
269 {
272 if (prms)
273 return prms.param2;
274 else
275 return false;
276 }
277
279 {
280 return m_PositionsListbox.GetSelectedRow();
281 }
282
284 {
285 return (m_PositionsListbox.GetSelectedRow() != -1);
286 }
287
289
291 {
292 if (!GetGame().GetPlayer())
293 return;
294
295 vector playerPos = GetGame().GetPlayer().GetPosition();
297 }
298
300 {
302 int year, month, day, hour, minute;
303
304 year = m_DateYear.GetText().ToInt();
305 month = m_DateMonth.GetText().ToInt();
306 day = m_DateDay.GetText().ToInt();
307
308 if (slider_used)
309 {
310 int time_minutes = Math.Lerp(0, (24 * 60) - 1, m_TimeSlider.GetCurrent() / 100);
311 hour = time_minutes / 60;
312 minute = time_minutes % 60;
313 }
314 else
315 {
316 hour = m_DateHour.GetText().ToInt();
317 minute = m_DateMinute.GetText().ToInt();
318 }
319
320 p5.param1 = year;
321 p5.param2 = month;
322 p5.param3 = day;
323 p5.param4 = hour;
324 p5.param5 = minute;
325
327 GetGame().GetWorld().SetDate(year, month, day, hour, minute);
328
329 if (GetGame().GetPlayer())
330 GetGame().GetPlayer().RPCSingleParam(ERPCs.DEV_RPC_SET_TIME, p5, true);
331 }
332
333
335 {
336 int x, y;
337 GetMousePos(x, y);
339 mousePos[0] = x;
340 mousePos[1] = y;
342 worldPos[1] = GetGame().SurfaceY(worldPos[0], worldPos[2]);
343
344 if (m_MouseCurPos)
345 m_MouseCurPos.SetText("Mouse: " + MiscGameplayFunctions.TruncateToS(worldPos[0]) + ", " + MiscGameplayFunctions.TruncateToS(worldPos[1]) + ", " + MiscGameplayFunctions.TruncateToS(worldPos[2]));
347 {
348 vector playerPos = GetGame().GetPlayer().GetWorldPosition();
349 //playerPos[1] = 0;
350 float dst = (worldPos - playerPos).Length();
351
352 m_PlayerMouseDiff.SetText("Distance: " + MiscGameplayFunctions.TruncateToS(dst));
353 }
354 }
355
356
358 {
359 m_MapPos = pos;
360 m_PlayerCurPos.SetText("Pos: " + MiscGameplayFunctions.TruncateToS(pos[0]) + ", " + MiscGameplayFunctions.TruncateToS(pos[1]) + ", " + MiscGameplayFunctions.TruncateToS(pos[2]));
361 }
362
364 {
365 return m_MapPos;
366 }
367
368 override bool OnMouseButtonDown(Widget w, int x, int y, int button)
369 {
370 super.OnMouseButtonDown(w, x, y, button);
371
372 if (w == m_DebugMapWidget)
373 {
374 if (button == 0)
375 {
377 int mouseX, mouseY;
380 mousePos[0] = mouseX;
381 mousePos[1] = mouseY;
383 worldPos[1] = GetGame().SurfaceY(worldPos[0], worldPos[2]);
384
386 }
387 else if (button == 1 && GetGame().GetPlayer())
388 SetMapPos(GetGame().GetPlayer().GetWorldPosition());
389 }
390 return true;
391 }
392
393
394 override bool OnKeyDown(Widget w, int x, int y, int key)
395 {
396 super.OnKeyDown(w, x, y, key);
397 return false;
398 }
399
400 override bool OnChange(Widget w, int x, int y, bool finished)
401 {
402 super.OnChange(w, x, y, finished);
403
404 if (w == m_ShowOthers && GetGame().GetPlayer())
405 {
407 if (m_ShowOthers.IsChecked())
408 {
409 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(GetGame().GetPlayer()), 1);
411 SHOW_OTHERS = true;
412 }
413 else
414 {
415 plugin_remote_client.RequestPlayerInfo(PlayerBase.Cast(GetGame().GetPlayer()), 0);
417 SHOW_OTHERS = false;
418 }
419 return true;
420 }
421 else if (w == m_TimeSlider || w == m_DateDay || w == m_DateYear || w == m_DateMonth || w == m_DateHour || w == m_DateMinute)
422 {
424 return true;
425 }
426 return false;
427 }
428
429 override bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn)
430 {
431 super.OnItemSelected(w, x, y, row, column, oldRow, oldColumn);
432 if (w == m_PositionsListbox)
433 {
435 m_TeleportX.SetText(position[0].ToString());
436 m_TeleportY.SetText(position[2].ToString());
437 m_TeleportXYZ.SetText(position.ToString());
440
441 return true;
442 }
443 return false;
444 }
445
446 override bool OnDoubleClick(Widget w, int x, int y, int button)
447 {
448 super.OnDoubleClick(w, x, y, button);
450
451 if (w == m_DebugMapWidget)
452 {
454 float pos_y_a = GetGame().SurfaceY(screen_to_map[0], screen_to_map[2]);
455 float pos_y_b = GetGame().SurfaceRoadY(screen_to_map[0], screen_to_map[2]);
456 float pos_y = Math.Max(pos_y_a, pos_y_b);
457 screen_to_map[1] = pos_y;
459 return true;
460 }
461
462 if (w == m_PositionsListbox)
463 {
466 return true;
467 }
468
469 if (w == m_TeleportXYZ)
470 {
471 EditBoxWidget.Cast(w).SetText("");
472 return true;
473 }
474 return false;
475 }
476
477 override bool OnClick(Widget w, int x, int y, int button)
478 {
479 super.OnClick(w, x, y, button);
480
481 int i;
483
484 PluginDeveloper module_dev = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
485
486 if (w == m_PositionsListbox)
487 {
488
490
491 m_TeleportX.SetText(position[0].ToString());
492 m_TeleportY.SetText(position[2].ToString());
493
496
497 return true;
498 }
499 else if (w == m_TeleportButton)
500 {
501 float pos_x = m_TeleportX.GetText().ToFloat();
502 float pos_z = m_TeleportY.GetText().ToFloat();
503 float pos_y = GetGame().SurfaceY(pos_x, pos_z);
505 if (m_TeleportXYZ.GetText() != "" && m_TeleportXYZ.GetText() != DEFAULT_POS_XYZ)
506 {
507 string pos = m_TeleportXYZ.GetText();
508 v = pos.BeautifiedToVector();
509 }
510 Teleport(player, v);
511 return true;
512 }
513 else if (w == m_ButtonCopyPos)
514 {
515 GetGame().CopyToClipboard(GetMapPos().ToString());
516 return true;
517 }
518 else if (w == m_LogsEnabled)
519 {
520 //Log("m_LogsEnabled: "+ToString(m_LogsEnabled.IsChecked()));
521
523 {
524 m_ConfigDebugProfile.SetLogsEnabled(m_LogsEnabled.IsChecked());
526 }
527
528 return true;
529 }
530 else if (w == m_HudDCharStats)
531 {
533 m_ConfigDebugProfile.SetCharacterStatsVisible(m_HudDCharStats.IsChecked());
534
535 // Refresh UI by new settings
536 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
537
538 return true;
539 }
540 else if (w == m_HudDCharLevels)
541 {
543 m_ConfigDebugProfile.SetCharacterLevelsVisible(m_HudDCharLevels.IsChecked());
544
545 // Refresh UI by new settings
546 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
547
548 return true;
549 }
550 else if (w == m_HudDCharStomach)
551 {
553 m_ConfigDebugProfile.SetCharacterStomachVisible(m_HudDCharStomach.IsChecked());
554
555 // Refresh UI by new settings
556 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
557
558 return true;
559 }
560 else if (w == m_HudDVersion)
561 {
563 m_ConfigDebugProfile.SetVersionVisible(m_HudDVersion.IsChecked());
564
565 // Refresh UI by new settings
566 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
567
568 return true;
569 }
570 else if (w == m_HudDTemperature)
571 {
573 m_ConfigDebugProfile.SetTempVisible(m_HudDTemperature.IsChecked());
574
575 // Refresh UI by new settings
576 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
577
578 return true;
579 }
580 else if (w == m_HudDCharModifiers)
581 {
583 m_ConfigDebugProfile.SetCharacterModifiersVisible(m_HudDCharModifiers.IsChecked());
584
585 // Refresh UI by new settings
586 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
587
588 return true;
589 }
590 else if (w == m_HudDCharAgents)
591 {
593 m_ConfigDebugProfile.SetCharacterAgentsVisible(m_HudDCharAgents.IsChecked());
594
595 // Refresh UI by new settings
596 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
597
598 return true;
599 }
600 else if (w == m_HudDCharDebug)
601 {
603 m_ConfigDebugProfile.SetCharacterDebugVisible(m_HudDCharDebug.IsChecked());
604
605 // Refresh UI by new settings
606 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
607
608 return true;
609 }
610 else if (w == m_HudDFreeCamCross)
611 {
613 m_ConfigDebugProfile.SetFreeCameraCrosshairVisible(m_HudDFreeCamCross.IsChecked());
614
615 // Refresh UI by new settings
616 m_MissionGameplay.GetHudDebug().RefreshByLocalProfile();
617
618 GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).Call(GetGame().GetMission().RefreshCrosshairVisibility);
619
620 return true;
621 }
622
623 else if (w == m_DiagToggleButton)
624 {
625 int toggle_row_index = m_DiagToggleTextListbox.GetSelectedRow();
626 bool toggle_state = GetGame().GetDiagModeEnable(toggle_row_index);
627 GetGame().SetDiagModeEnable(toggle_row_index, !toggle_state);
628 return true;
629 }
630 else if (w == m_DiagDrawButton)
631 {
632 int draw_row_index = m_DiagDrawmodeTextListbox.GetSelectedRow();
633 GetGame().SetDiagDrawMode(draw_row_index);
634 return true;
635 }
636 // TOUCHED THIS
637 else if (w == m_LocationAddButton)
638 {
639 ScriptConsoleAddLocation menu = ScriptConsoleAddLocation.Cast(g_Game.GetUIManager().EnterScriptedMenu(MENU_LOC_ADD, m_ScriptConsole));
640 menu.SetPosition(GetMapPos());
641 return true;
642 }
643 else if (w == m_LocationRemoveButton)
644 {
645 m_ConfigDebugProfile.CustomLocationsRemove(GetCurrentLocationName());
647 return true;
648 }
649 return false;
650 }
651
653 {
654 super.OnRPCEx(rpc_type, ctx);
655#ifdef DIAG_DEVELOPER
656 switch (rpc_type)
657 {
658 case ERPCs.DEV_PLAYER_DEBUG_DATA:
659 {
661 break;
662 }
663 }
664#endif
665 }
666
667 override void Update(float timeslice)
668 {
669 super.Update(timeslice);
670
672
674
676 {
678 {
679 if (rpd.m_Player != player)
680 {
681 vector dir = rpd.m_Pos - player.GetWorldPosition();
682 dir[1] = 0;
683 string dist = ((int)dir.Length()).ToString();
684 string text = rpd.m_Name + " " + dist + "m.";
685 m_DebugMapWidget.AddUserMark(rpd.m_Pos, text, COLOR_BLUE, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
686 }
687 }
688 }
689 if (player)
690 {
691 vector playerPos = player.GetWorldPosition();
692 m_DebugMapWidget.AddUserMark(playerPos, "You", COLOR_RED, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
693 if (playerPos != GetMapPos())
694 m_DebugMapWidget.AddUserMark(GetMapPos(), "Pos", COLOR_BLUE, "\\dz\\gear\\navigation\\data\\map_tree_ca.paa");
695 }
699
700
701 foreach (MapMarker marker: ScriptConsole.m_MarkedEntities)
702 m_DebugMapWidget.AddUserMark(marker.GetMarkerPos(), marker.GetMarkerText(), marker.GetMarkerColor(), MapMarkerTypes.GetMarkerTypeFromID(marker.GetMarkerIcon()));
703 }
704}
Param3 int
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Definition DayZGame.c:3528
ERPCs
Definition ERPCs.c:2
proto string ToString()
void RefreshCrosshairVisibility()
Definition HudDebug.c:228
Icon x
Icon y
PlayerBase GetPlayer()
PluginBase GetPlugin(typename plugin_type)
void RemotePlayerStatDebug(PlayerBase player)
static void SetLogsEnabled(bool enable)
Definition Debug.c:714
static string GetMarkerTypeFromID(int id)
proto native void SetScale(float scale)
proto native float GetScale()
proto native void SetMapPos(vector worldPos)
proto native vector ScreenToMap(vector screenPos)
proto native void ClearUserMarks()
proto native void AddUserMark(vector pos, string text, int color, string texturePath)
Definition EnMath.c:7
TextListboxWidget m_DiagDrawmodeTextListbox
TextListboxWidget m_DiagToggleTextListbox
override bool OnDoubleClick(Widget w, int x, int y, int button)
override bool OnClick(Widget w, int x, int y, int button)
bool IsLocationNameAvailable(string name)
TextListboxWidget m_HelpTextListboxWidget
override bool OnMouseButtonDown(Widget w, int x, int y, int button)
ref array< ref RemotePlayerStatDebug > m_PlayerDebugStats
override bool OnChange(Widget w, int x, int y, bool finished)
void ScriptConsoleGeneralTab(Widget root, ScriptConsole console, Widget button, ScriptConsoleTabBase parent=null)
void Teleport(PlayerBase player, vector position)
void GetCurrentPositionData(out LocationParams data)
void UpdateTime(bool slider_used)
override void OnRPCEx(int rpc_type, ParamsReadContext ctx)
override void Update(float timeslice)
override bool OnItemSelected(Widget w, int x, int y, int row, int column, int oldRow, int oldColumn)
override bool OnKeyDown(Widget w, int x, int y, int key)
void RefreshDateWidgets(int year, int month, int day, int hour, int minute)
PluginConfigDebugProfile m_ConfigDebugProfile
PluginConfigDebugProfileFixed m_ConfigDebugProfileFixed
Serialization general interface. Serializer API works with:
Definition Serializer.c:56
proto native float Length()
Returns length of vector (magnitude)
static const vector Zero
Definition EnConvert.c:110
proto native CGame GetGame()
const int COLOR_BLUE
Definition constants.c:66
const int COLOR_RED
Definition constants.c:64
array< string > TStringArray
Definition EnScript.c:666
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
const int MENU_LOC_ADD
Definition constants.c:162
proto void GetMousePos(out int x, out int y)
vector BeautifiedToVector()
Convert beautified string into a vector.
Definition EnString.c:67
const int CALL_CATEGORY_SYSTEM
Definition tools.c:8