Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
pluginconfigdebugprofile.c
Go to the documentation of this file.
1 typedef Param3<string, bool, vector> LocationParams;// param1 - name, param2 - isCustom?, param3 - position
3 {
4  protected const string SCENE_DRAW_SELECTION = "scene_editor_draw_selection";
5  protected const string SCENE_LOAD_PLAYER_POS = "scene_editor_load_player_pos";
6  protected const string SCENE_ROTATION_ANGLE = "scene_editor_rotation_angle";
7  protected const string ITEM_TAB_SELECTED = "console_TabSelected";
8  protected const string PRESET_LIST = "console_presets";
9  protected const string PRESET_DEFAULT = "console_preset_default";
10  protected const string ITEM_SEARCH = "console_ItemSearch";
11  protected const string SPAWN_DISTANCE = "console_SpawnDistance";
12  protected const string CHAR_STATS_VIS = "console_character_stats_visible";
13  protected const string CHAR_LEVELS_VIS = "console_character_levels_visible";
14  protected const string CHAR_MODIFIERS_VIS = "console_character_modifiers_visible";
15  protected const string CHAR_AGENTS_VIS = "console_character_agents_visible";
16  protected const string CHAR_DEBUG_VIS = "console_character_debug_visible";
17  protected const string CHAR_STOMACH_VIS = "console_character_stomach_visible";
18  protected const string FREE_CAMERA_CROSSHAIR = "console_free_camera_crosshair_visible";
19  protected const string VERSION_VIS = "console_version_visible";
20  protected const string MERGE_TYPE = "category_merge_type";
21  protected const string TEMP_VIS = "console_temperature_visible";
22  protected const string SUB_PARAM_ITEM = "item";
23  protected const string SUB_PARAM_ITEM_NAME = "name";
24  protected const string SUB_PARAM_ITEM_HEALTH = "health";
25  protected const string SUB_PARAM_ITEM_QUANTITY = "quantity";
26  protected const string SUB_PARAM_ITEM_WITH_PHYSICS = "with_physics";
27  protected const string LOGS_ENABLED = "logs_enabled";
28  protected const string CONFIG_CLASSES_FLAG = "toggled_config_classes_flag";
29  protected const string ITEM_CATEGORY_FLAG = "toggled_item_categories_flag";
30  protected const string ITEM_PREVIEW = "show_item_preview";
31  protected const string BATCH_RECT = "batch_spawn_rect";
32  protected const string BATCH_QUANT = "batch_spawn_quantity";
33  protected const string SOUNDFILTER = "soundset_editbox";
34  protected const string ITEMDEBUG = "item_debug";
35  protected const string SPAWN_LOC_INDEX = "spawn_loc_index";
36  protected const string FILTER_REVERSED = "filter_order_reversed";
37 
38  protected ref map<string, ref CfgParam> m_DefaultValues;
39  protected ref TStringArray m_PresetList;
40  protected const string POSITION_NAME_ROOT = "console_positions_";
41 
42  //========================================
43  // GetInstance
44  //========================================
45  static PluginConfigDebugProfile GetInstance()
46  {
48  }
49 
50  //========================================
51  // GetCfgParamArray
52  //========================================
53  protected CfgParamArray GetNewCfgParamArray( array<ref CfgParam> params )
54  {
55  CfgParamArray param = new CfgParamArray( "" );
56  param.SetParams( params );
57  return param;
58  }
59 
60  //========================================
61  // GetCfgParamBool
62  //========================================
63  protected CfgParamBool GetNewCfgParamBool( bool value )
64  {
65  CfgParamBool param = new CfgParamBool( "" );
66  param.SetValue( value );
67  return param;
68  }
69 
70  //========================================
71  // GetCfgParamFloat
72  //========================================
73  protected CfgParamFloat GetNewCfgParamFloat( float value )
74  {
75  CfgParamFloat param = new CfgParamFloat( "" );
76  param.SetValue( value );
77  return param;
78  }
79 
80  //========================================
81  // GetCfgParamInt
82  //========================================
83  protected CfgParamInt GetNewCfgParamInt( int value )
84  {
85  CfgParamInt param = new CfgParamInt( "" );
86  param.SetValue( value );
87  return param;
88  }
89 
90  //========================================
91  // GetCfgParamString
92  //========================================
93  protected CfgParamString GetNewCfgParamString( string value )
94  {
95  CfgParamString param = new CfgParamString( "" );
96  param.SetValue( value );
97  return param;
98  }
99 
100  //========================================
101  // Array
102  //========================================
103  protected CfgParamArray SetArray( string key, array<ref CfgParam> params )
104  {
105  CfgParamArray param = CfgParamArray.Cast( GetParamByName( key, CFG_TYPE_ARRAY ) );
106  param.SetParams( params );
107  SaveConfigToFile();
108  return param;
109  }
110 
111  protected array<ref CfgParam> GetArray( string key )
112  {
113  if ( ParamExist(key) )
114  {
115  CfgParamArray param = CfgParamArray.Cast( GetParamByName( key, CFG_TYPE_ARRAY ) );
116  return param.GetValues();
117  }
118  else
119  {
120  if ( m_DefaultValues.Contains(key) )
121  {
122  CfgParamArray default_param = CfgParamArray.Cast( m_DefaultValues.Get( key ) );
123  return SetArray( key, default_param.GetValues() ).GetValues();
124  }
125  else
126  {
127  return SetArray( key, new array<ref CfgParam> ).GetValues();
128  }
129  }
130  }
131 
132  //========================================
133  // Bool
134  //========================================
135  protected CfgParamBool SetBool( string key, bool value )
136  {
137  CfgParamBool param = CfgParamBool.Cast( GetParamByName( key, CFG_TYPE_BOOL ) );
138  param.SetValue( value );
139  SaveConfigToFile();
140  return param;
141  }
142 
143  protected bool GetBool( string key )
144  {
145  if ( ParamExist(key) )
146  {
147  CfgParamBool param = CfgParamBool.Cast( GetParamByName( key, CFG_TYPE_BOOL ) );
148  return param.GetValue();
149  }
150  else
151  {
152  if ( m_DefaultValues.Contains(key) )
153  {
154  CfgParamBool default_param = CfgParamBool.Cast( m_DefaultValues.Get( key ) );
155  return SetBool( key, default_param.GetValue() ).GetValue();
156  }
157  else
158  {
159  return SetBool( key, false ).GetValue();
160  }
161  }
162  }
163 
164  //========================================
165  // Float
166  //========================================
167  protected CfgParamFloat SetFloat( string key, float value )
168  {
169  CfgParamFloat param = CfgParamFloat.Cast( GetParamByName( key, CFG_TYPE_FLOAT ) );
170  param.SetValue( value );
171  SaveConfigToFile();
172  return param;
173  }
174 
175  protected float GetFloat( string key )
176  {
177  if ( ParamExist(key) )
178  {
179  CfgParamFloat param = CfgParamFloat.Cast( GetParamByName( key, CFG_TYPE_FLOAT ) );
180  return param.GetValue();
181  }
182  else
183  {
184  if ( m_DefaultValues.Contains(key) )
185  {
186  CfgParamFloat default_param = CfgParamFloat.Cast( m_DefaultValues.Get( key ) );
187  return SetFloat( key, default_param.GetValue() ).GetValue();
188  }
189  else
190  {
191  return SetFloat( key, 0.0 ).GetValue();
192  }
193  }
194  }
195 
196  //========================================
197  // Int
198  //========================================
199  protected CfgParamInt SetInt( string key, int value )
200  {
201  CfgParamInt param = CfgParamInt.Cast( GetParamByName( key, CFG_TYPE_INT ) );
202  param.SetValue( value );
203  SaveConfigToFile();
204  return param;
205  }
206 
207  protected int GetInt( string key )
208  {
209  if ( ParamExist(key) )
210  {
211  CfgParamInt param = CfgParamInt.Cast( GetParamByName( key, CFG_TYPE_INT ) );
212  return param.GetValue();
213  }
214  else
215  {
216  if ( m_DefaultValues.Contains(key) )
217  {
218  CfgParamInt default_param = CfgParamInt.Cast( m_DefaultValues.Get( key ) );
219  return SetInt( key, default_param.GetValue() ).GetValue();
220  }
221  else
222  {
223  return SetInt( key, 0 ).GetValue();
224  }
225  }
226  }
227 
228  //========================================
229  // String
230  //========================================
231  protected CfgParamString SetString( string key, string value )
232  {
233  CfgParamString param = CfgParamString.Cast( GetParamByName( key, CFG_TYPE_STRING ) );
234  if(param)
235  {
236  param.SetValue( value );
237  SaveConfigToFile();
238  }
239  return param;
240  }
241 
242  protected string GetString( string key )
243  {
244  CfgParamString param = CfgParamString.Cast( GetParamByName( key, CFG_TYPE_STRING ) );
245 
246  if ( param && param.GetValue() != STRING_EMPTY )
247  {
248  return param.GetValue();
249  }
250  else
251  {
252  if ( m_DefaultValues.Contains(key) )
253  {
254  CfgParamString default_param = CfgParamString.Cast( m_DefaultValues.Get( key ) );
255  CfgParamString param_string = SetString( key, default_param.GetValue() );
256  if(param_string)
257  return param_string.GetValue();
258  }
259  else
260  {
261  return SetString( key, "" ).GetValue();
262  }
263  }
264  return "";
265  }
266 
267  protected void GetSubParametersInStringArray( string setting_name, string sub_param_name, out TStringArray arr )
268  {
269  array<ref CfgParam> items = GetArray( setting_name );
270  for ( int i = 0; i < items.Count(); i++ )
271  {
272  CfgParamArray items_array = CfgParamArray.Cast( items.Get(i) );
273  array<ref CfgParam> item_params = items_array.GetValues();
274 
275  for ( int j = 0; j < item_params.Count(); j++ )
276  {
277  if ( item_params.Get(j).GetName() == sub_param_name )
278  {
279  CfgParamString param_string = CfgParamString.Cast( item_params.Get( j ) );
280  arr.Insert( param_string.GetValue() );
281  }
282  }
283  }
284  }
285 
286  //========================================
287  // PluginConfigDebugProfile
288  //========================================
290  {
291  m_DefaultValues = new map<string, ref CfgParam>;
292  m_DefaultValues.Insert(SCENE_DRAW_SELECTION, GetNewCfgParamBool(true) );
293  m_DefaultValues.Insert(SCENE_LOAD_PLAYER_POS, GetNewCfgParamBool(true) );
294  m_DefaultValues.Insert(SCENE_ROTATION_ANGLE, GetNewCfgParamInt(15) );
295  m_DefaultValues.Insert(ITEM_TAB_SELECTED, GetNewCfgParamInt(0) );
296  m_DefaultValues.Insert(PRESET_DEFAULT, GetNewCfgParamString("") );
297  m_DefaultValues.Insert(ITEM_SEARCH, GetNewCfgParamString("") );
298  m_DefaultValues.Insert(SPAWN_DISTANCE, GetNewCfgParamFloat(0.0) );
299  m_DefaultValues.Insert(LOGS_ENABLED, GetNewCfgParamBool(true) );
300  m_DefaultValues.Insert(CHAR_STATS_VIS, GetNewCfgParamBool(false) );
301  m_DefaultValues.Insert(CHAR_LEVELS_VIS, GetNewCfgParamBool(false) );
302  m_DefaultValues.Insert(CHAR_MODIFIERS_VIS, GetNewCfgParamBool(false) );
303  m_DefaultValues.Insert(CHAR_AGENTS_VIS, GetNewCfgParamBool(false) );
304  m_DefaultValues.Insert(CHAR_DEBUG_VIS, GetNewCfgParamBool(false) );
305  m_DefaultValues.Insert(FREE_CAMERA_CROSSHAIR, GetNewCfgParamBool(true) );
306  m_DefaultValues.Insert(VERSION_VIS, GetNewCfgParamBool(true) );
307  m_DefaultValues.Insert(CONFIG_CLASSES_FLAG, GetNewCfgParamInt(15) );
308  m_DefaultValues.Insert(TEMP_VIS, GetNewCfgParamBool(false) );
309  m_DefaultValues.Insert(MERGE_TYPE, GetNewCfgParamBool(false) );
310  m_DefaultValues.Insert(ITEM_PREVIEW, GetNewCfgParamBool(true) );
311  m_DefaultValues.Insert(BATCH_RECT, GetNewCfgParamArray(GetDefaultBatchRectParams()) );
312  m_DefaultValues.Insert(BATCH_QUANT, GetNewCfgParamInt(10) );
313  m_DefaultValues.Insert(SOUNDFILTER, GetNewCfgParamString("") );
314  m_DefaultValues.Insert(ITEMDEBUG, GetNewCfgParamString("0 0 0") );
315  m_DefaultValues.Insert(SPAWN_LOC_INDEX, GetNewCfgParamInt(0));
316  m_DefaultValues.Insert(FILTER_REVERSED, GetNewCfgParamBool(false));
317  }
318 
319  array<ref CfgParam> GetDefaultBatchRectParams()
320  {
322  CfgParamInt param1 = new CfgParamInt("");
323  param1.SetValue(5);
324  CfgParamInt param2 = new CfgParamInt("");
325  param2.SetValue(5);
326  CfgParamFloat param3 = new CfgParamFloat("");
327  param3.SetValue(1.0);
328  CfgParamFloat param4 = new CfgParamFloat("");
329  param4.SetValue(1.0);
330 
331  params.Insert(param1);
332  params.Insert(param2);
333  params.Insert(param3);
334  params.Insert(param4);
335 
336  return params;
337  }
338 
339  //========================================
340  // OnInit
341  //========================================
342  override void OnInit()
343  {
344  super.OnInit();
345 
346  array<ref CfgParam> params = GetArray( PRESET_LIST );
347 
348  m_PresetList = new TStringArray;
349  for ( int i = 0; i < params.Count(); i++ )
350  {
351  CfgParamString param = CfgParamString.Cast( params.Get( i ) );
352  m_PresetList.Insert( param.GetValue() );
353  }
354  }
355 
356  //========================================
357  // GetFileName
358  //========================================
359  override string GetFileName()
360  {
361  if (!FileExist(GetSubFolderName()))//---ALL LINES CONTAINING THIS COMMENT CAN BE REMOVED IN 1.23
362  return "$profile:debugProfile.cfg";//---ALL LINES CONTAINING THIS COMMENT CAN BE REMOVED IN 1.23
363 
365  }
366 
367  override string GetSubFolderName()
368  {
369  return CFG_FILE_DEBUG_DIR;
370  }
371 
372  //========================================
373  // SceneEditorDrawSelection
374  //========================================
375  bool GetSceneEditorDrawSelection()
376  {
377  return GetBool( SCENE_DRAW_SELECTION );
378  }
379 
380  void SetSceneEditorDrawSelection( bool value )
381  {
382  SetBool( SCENE_DRAW_SELECTION, value );
383  }
384 
385  //========================================
386  // SceneEditorSavePlayerPos
387  //========================================
388  bool GetSceneEditorLoadPlayerPos()
389  {
390  return GetBool( SCENE_LOAD_PLAYER_POS );
391  }
392 
393  void SetSceneEditorLoadPlayerPos( bool value )
394  {
395  SetBool( SCENE_LOAD_PLAYER_POS, value );
396  }
397 
398  //========================================
399  // SceneEditorRotationAngle
400  //========================================
401  int GetSceneEditorRotationAngle()
402  {
403  return GetInt( SCENE_ROTATION_ANGLE );
404  }
405 
406  void SetSceneEditorRotationAngle( int value )
407  {
408  SetInt( SCENE_ROTATION_ANGLE, value );
409  }
410 
411  //========================================
412  // TabSelected
413  //========================================
414  int GetTabSelected()
415  {
416  return GetInt( ITEM_TAB_SELECTED );
417  }
418 
419  void SetTabSelected( int value )
420  {
421  SetInt( ITEM_TAB_SELECTED, value );
422  }
423 
424  //========================================
425  // SpawnLocIndex
426  //========================================
427  int GetSpawnLocIndex()
428  {
429  return GetInt( SPAWN_LOC_INDEX );
430  }
431 
432  void SetSpawnLocIndex( int value )
433  {
434  SetInt( SPAWN_LOC_INDEX, value );
435  }
436 
437  //========================================
438  // FilterOrder
439  //========================================
440  int GetFilterOrderReversed()
441  {
442  return GetBool( FILTER_REVERSED );
443  }
444 
445  void SetFilterOrderReversed( bool reversed )
446  {
447  SetBool( FILTER_REVERSED, reversed );
448  }
449 
450  //========================================
451  // DefaultPreset
452  //========================================
453  string GetDefaultPreset()
454  {
455  return GetString( PRESET_DEFAULT );
456  }
457 
458  void SetDefaultPreset( string value )
459  {
460  SetString( PRESET_DEFAULT, value );
461  }
462 
463  //========================================
464  // Batch Spawn Params
465  //========================================
466  array<ref CfgParam> GetBatchSpawnRectangle()
467  {
468  return GetArray( BATCH_RECT );
469  }
470 
471  void SetBatchSpawnRectangle( int row, int column, float rowStep, float columnStep)
472  {
473  array<ref CfgParam> params = GetArray( BATCH_RECT );
474  params.Clear();
475  CfgParamString param;
476 
477  CfgParamInt param1 = new CfgParamInt("");
478  param1.SetValue(row);
479  CfgParamInt param2 = new CfgParamInt("");
480  param2.SetValue(column);
481  CfgParamFloat param3 = new CfgParamFloat("");
482  param3.SetValue(rowStep);
483  CfgParamFloat param4 = new CfgParamFloat("");
484  param4.SetValue(columnStep);
485 
486  params.Insert(param1);
487  params.Insert(param2);
488  params.Insert(param3);
489  params.Insert(param4);
490  SaveConfigToFile();
491  }
492 
493  //========================================
494  // Batch Spawn Quantity
495  //========================================
496  int GetBatchSpawnQuantity()
497  {
498  return GetInt( BATCH_QUANT );
499  }
500 
501  void SetBatchSpawnQuantity(int value)
502  {
503  SetInt( BATCH_QUANT, value );
504  }
505  //========================================
506  // ItemSearch
507  //========================================
508  string GetItemSearch()
509  {
510  return GetString( ITEM_SEARCH );
511  }
512 
513  void SetItemSearch( string value )
514  {
515  SetString( ITEM_SEARCH, value );
516  }
517 
518  //========================================
519  // SpawnDistance
520  //========================================
521  float GetSpawnDistance()
522  {
523  return GetFloat( SPAWN_DISTANCE );
524  }
525 
526  void SetSpawnDistance( float value )
527  {
528  SetFloat( SPAWN_DISTANCE, value );
529  }
530 
531  //========================================
532  // LogsEnabled
533  //========================================
534  bool GetLogsEnabled()
535  {
536  return GetBool( LOGS_ENABLED );
537  }
538 
539  void SetLogsEnabled( bool value )
540  {
541  SetBool( LOGS_ENABLED, value );
542  }
543 
544  //========================================
545  // CharacterLevelsVisible
546  //========================================
547  bool GetCharacterLevelsVisible()
548  {
549  return GetBool( CHAR_LEVELS_VIS );
550  }
551 
552 
553  void SetCharacterLevelsVisible( bool is_visible )
554  {
555  SetBool( CHAR_LEVELS_VIS, is_visible );
556  }
557 
558 
559  //========================================
560  // ItemDebugPos
561  //========================================
562  void SetItemDebugPos(vector pos)
563  {
564  SetString( ITEMDEBUG ,pos.ToString(false));
565  }
566 
567 
568  vector GetItemDebugPos()
569  {
570  return GetString( ITEMDEBUG ).ToVector();
571  }
572 
573  //========================================
574  // CharacterStatsVisible
575  //========================================
576  bool GetCharacterStatsVisible()
577  {
578  return GetBool( CHAR_STATS_VIS );
579  }
580 
581 
582  void SetCharacterStatsVisible( bool is_visible )
583  {
584  SetBool( CHAR_STATS_VIS, is_visible );
585  }
586 
587  //========================================
588  // CharacterModifiersVisible
589  //========================================
590  bool GetCharacterModifiersVisible()
591  {
592  return GetBool( CHAR_MODIFIERS_VIS );
593  }
594 
595  void SetCharacterModifiersVisible( bool is_visible )
596  {
597  SetBool( CHAR_MODIFIERS_VIS, is_visible );
598  }
599 
600  //========================================
601  // CharacterAgentsVisible
602  //========================================
603  bool GetCharacterAgentsVisible()
604  {
605  return GetBool( CHAR_AGENTS_VIS );
606  }
607 
608  void SetCharacterAgentsVisible( bool is_visible )
609  {
610  SetBool( CHAR_AGENTS_VIS, is_visible );
611  }
612 
613  //========================================
614  // CharacterDebugVisible
615  //========================================
616  bool GetCharacterDebugVisible()
617  {
618  return GetBool( CHAR_DEBUG_VIS );
619  }
620 
621  void SetCharacterDebugVisible( bool is_visible )
622  {
623  SetBool( CHAR_DEBUG_VIS, is_visible );
624  }
625 
626  //========================================
627  // CharacterStomachVisible
628  //========================================
629  bool GetCharacterStomachVisible()
630  {
631  return GetBool( CHAR_STOMACH_VIS );
632  }
633 
634  void SetCharacterStomachVisible( bool is_visible )
635  {
636  SetBool( CHAR_STOMACH_VIS, is_visible );
637  }
638 
639  //========================================
640  // FreeCameraCrosshairVisible
641  //========================================
642  bool GetFreeCameraCrosshairVisible()
643  {
644  return GetBool( FREE_CAMERA_CROSSHAIR );
645  }
646 
647  void SetFreeCameraCrosshairVisible( bool is_visible )
648  {
649  SetBool( FREE_CAMERA_CROSSHAIR, is_visible );
650  }
651 
652  //========================================
653  // VersionVisible
654  //========================================
655  bool GetVersionVisible()
656  {
657  return GetBool( VERSION_VIS );
658  }
659 
660  void SetVersionVisible( bool is_visible )
661  {
662  SetBool( VERSION_VIS, is_visible );
663  }
664 
665  //========================================
666  // Merge Type
667  //========================================
668  bool GetMergeType()
669  {
670  return GetBool( MERGE_TYPE );
671  }
672 
673  void SetMergeType( bool is_visible )
674  {
675  SetBool( MERGE_TYPE, is_visible );
676  }
677 
678  //========================================
679  // Soundset Filter
680  //========================================
681  string GetSoundsetFilter()
682  {
683  return GetString( SOUNDFILTER );
684  }
685 
686  void SetSoundsetFilter( string content )
687  {
688  SetString( SOUNDFILTER, content );
689  }
690 
691  //========================================
692  // TemperatureVisible
693  //========================================
694  bool GetTempVisible()
695  {
696  return GetBool( TEMP_VIS );
697  }
698 
699  void SetTempVisible( bool is_visible )
700  {
701  SetBool( TEMP_VIS, is_visible );
702  }
703 
704  //========================================
705  // Show Item Preview
706  //========================================
707  bool GetShowItemPreview()
708  {
709  return GetBool( ITEM_PREVIEW );
710  }
711 
712  void SetShowItemPreview( bool show )
713  {
714  SetBool( ITEM_PREVIEW, show );
715  }
716 
717 
718  //========================================
719  // ConfigClassesFlag
720  //========================================
721  int GetConfigClassesFlag()
722  {
723  return GetInt( CONFIG_CLASSES_FLAG );
724  }
725 
726  void SetConfigClassesFlag( int flag )
727  {
728  SetInt( CONFIG_CLASSES_FLAG, flag );
729  }
730 
731 
732  //========================================
733  // Item Category Flag
734  //========================================
735  int GetItemCategoryFlag()
736  {
737  return GetInt( ITEM_CATEGORY_FLAG );
738  }
739 
740  void SetItemCategoryFlag( int flag )
741  {
742  SetInt( ITEM_CATEGORY_FLAG, flag );
743  }
744 
745  //========================================
746  // User Location
747  //========================================
748  bool CustomLocationsAdd( string name, vector position )
749  {
750  string world = g_Game.GetWorldName();
751  world.ToLower();
752 
753  CfgParamString locationName = new CfgParamString(PluginConfigDebugProfileFixed.SUB_PARAM_POS_NAME);
754  locationName.SetValue(name);
755  CfgParamString locationPos = new CfgParamString(PluginConfigDebugProfileFixed.SUB_PARAM_POS_VEC);
756  locationPos.SetValue(position.ToString(false));
757 
758  CfgParamArray locationEntry = new CfgParamArray( locationName.GetValue() );
759  locationEntry.InsertValue( locationName );
760  locationEntry.InsertValue( locationPos );
761 
762  string paramName = POSITION_NAME_ROOT + world;
763  array<ref CfgParam> params = GetArray(paramName);
764  params.Insert(locationEntry);
765  SetArray(paramName, params);
766  SaveConfigToFile();
767 
768  return true;
769  }
770 
771  void CustomLocationsRemove( string name )
772  {
773  if (!name)
774  return;
775  string world = g_Game.GetWorldName();
776  world.ToLower();
777  string paramName = POSITION_NAME_ROOT + world;
778  array<ref CfgParam> params = GetArray(paramName);
779 
780  for (int i = 0; i < params.Count(); i++)
781  {
782  CfgParamArray param = CfgParamArray.Cast(params.Get(i));
783  array<ref CfgParam> prms = param.GetValues();
784  CfgParamString par = CfgParamString.Cast(prms.Get(0));
785  if (par.GetValue() == name)
786  {
787  params.RemoveOrdered(i);
788  break;
789  }
790  }
791 
792  //SetArray(paramName, params);
793  SaveConfigToFile();
794  }
795 
796  //========================================
797  // Presets
798  //========================================
799  TStringArray GetPresets()
800  {
801  return m_PresetList;
802  }
803 
804  protected void SetPreset( string preset_name, int index = -1 )
805  {
806  array<ref CfgParam> params = GetArray( PRESET_LIST );
807  CfgParamString param;
808 
809  if ( index == -1 )
810  {
811  param = new CfgParamString( "" );
812  param.SetValue( preset_name );
813  params.Insert( param );
814  m_PresetList.Insert( preset_name );
815  }
816  else
817  {
818  param = CfgParamString.Cast( params.Get( index ) );
819  param.SetValue( preset_name );
820  params.Set( index, param );
821  m_PresetList.Set( index, preset_name );
822  }
823 
824  SaveConfigToFile();
825  }
826 
827  protected void RemovePreset( string preset_name )
828  {
829  array<ref CfgParam> params = GetArray( PRESET_LIST );
830  for ( int i = 0; i < params.Count(); i++ )
831  {
832  CfgParamString param = CfgParamString.Cast( params.Get(i) );
833  if ( param.GetValue() == preset_name )
834  {
835  params.RemoveItem( param );
836  m_PresetList.RemoveItem( preset_name );
837  }
838  }
839  }
840 
841  bool GetPresetItems( string preset_name, out TStringArray arr, string param_name = "" )
842  {
843  if ( m_PresetList.Find(preset_name) == -1 )
844  {
845  return false;
846  }
847  if(param_name == "")
848  param_name = SUB_PARAM_ITEM_NAME;
849  GetSubParametersInStringArray( preset_name, param_name, arr );
850 
851  return true;
852  }
853 
854  bool PresetAdd( string preset_name )
855  {
856  if ( m_PresetList.Find(preset_name) > -1 )
857  {
858  return false;
859  }
860 
861  SetPreset( preset_name );
862  SetArray( preset_name, new array<ref CfgParam> );
863  SaveConfigToFile();
864 
865  return true;
866  }
867 
868  bool PresetRemove( string preset_name )
869  {
870  if ( m_PresetList.Find(preset_name) == -1 )
871  {
872  return false;
873  }
874 
875  RemovePreset( preset_name );
876  RemoveParamByName( preset_name );
877  SaveConfigToFile();
878 
879  return true;
880  }
881 
882  bool PresetRename( string old_preset_name, string new_preset_name )
883  {
884  int index = m_PresetList.Find( old_preset_name );
885 
886  if ( index == -1 )
887  {
888  return false;
889  }
890 
891  SetPreset( new_preset_name, index );
892  RenameParam( old_preset_name, new_preset_name );
893  SaveConfigToFile();
894 
895  return true;
896  }
897 
898  bool ItemAddToPreset( string preset_name, string item_name )
899  {
900  if ( m_PresetList.Find( preset_name ) == -1 )
901  {
902  return false;
903  }
904 
905  CfgParamString param = new CfgParamString( SUB_PARAM_ITEM_NAME );
906  param.SetValue( item_name );
907 
908  CfgParamArray item_params = new CfgParamArray( SUB_PARAM_ITEM );
909  item_params.InsertValue( param );
910 
911  array<ref CfgParam> params = GetArray( preset_name );
912  params.Insert( item_params );
913 
914  SaveConfigToFile();
915 
916  return true;
917  }
918 
919  bool ItemRemoveFromPreset( string preset_name, int item_index )
920  {
921  if ( m_PresetList.Find( preset_name ) == -1 )
922  {
923  return false;
924  }
925 
926  array<ref CfgParam> params = GetArray( preset_name );
927 
928  if ( item_index >= params.Count() )
929  {
930  return false;
931  }
932 
933  params.Remove( item_index );
934 
935  SaveConfigToFile();
936 
937  return true;
938  }
939 
940  bool SwapItem( string preset_name, int item1_index, int item2_index )
941  {
942  array<ref CfgParam> params = GetArray( preset_name );
943 
944  if ( item1_index >= params.Count() || item2_index >= params.Count() )
945  {
946  return false;
947  }
948 
949  params.SwapItems( item1_index, item2_index );
950  SaveConfigToFile();
951 
952  return true;
953  }
954 
955  protected array<ref CfgParam> GetItemParams( string preset_name, int item_index )
956  {
957  if ( m_PresetList.Find( preset_name ) == -1 )
958  {
959  return NULL;
960  }
961 
962  array<ref CfgParam> params = GetArray( preset_name );
963 
964  if ( !params || item_index >= params.Count() )
965  {
966  return NULL;
967  }
968  if (params.IsValidIndex(item_index))
969  CfgParamArray params_array = CfgParamArray.Cast( params.Get( item_index ) );
970  if (params_array)
971  return params_array.GetValues();
972 
973  return null;
974  }
975 
976  protected CfgParam GetItemParam( string preset_name, int item_index, string param_name )
977  {
978  array<ref CfgParam> item_params = GetItemParams( preset_name, item_index );
979 
980  if ( item_params == NULL )
981  {
982  return NULL;
983  }
984 
985  CfgParam param = NULL;
986  for ( int i = 0; i < item_params.Count(); i++ )
987  {
988  if ( item_params.Get(i).GetName() == param_name )
989  {
990  param = item_params.Get(i);
991  }
992  }
993 
994  return param;
995  }
996 
997  float GetItemHealth( string preset_name, int item_index )
998  {
999  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_HEALTH );
1000 
1001  if ( param == NULL )
1002  {
1003  return -1;
1004  }
1005  else
1006  {
1007  CfgParamFloat param_float = CfgParamFloat.Cast( param );
1008  return param_float.GetValue();
1009  }
1010  }
1011 
1012  bool SetItemHealth( string preset_name, int item_index, float health )
1013  {
1014  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_HEALTH );
1015 
1016  if ( param != NULL )
1017  {
1018  CfgParamFloat param_float = CfgParamFloat.Cast( param );
1019  param_float.SetValue( health );
1020  }
1021  else
1022  {
1023  array<ref CfgParam> item_params = GetItemParams( preset_name, item_index );
1024 
1025  if ( item_params != NULL )
1026  {
1027  CfgParamFloat new_param = new CfgParamFloat( SUB_PARAM_ITEM_HEALTH );
1028  new_param.SetValue( health );
1029  item_params.Insert( new_param );
1030  }
1031  }
1032 
1033  SaveConfigToFile();
1034 
1035  return true;
1036  }
1037 
1038  int GetItemQuantity( string preset_name, int item_index )
1039  {
1040  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_QUANTITY );
1041 
1042  if ( param == NULL )
1043  {
1044  return 1;
1045  }
1046  else
1047  {
1048  CfgParamInt param_int = CfgParamInt.Cast( param );
1049  return param_int.GetValue();
1050  }
1051  }
1052 
1053  bool SetItemQuantity( string preset_name, int item_index, int quantity )
1054  {
1055  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_QUANTITY );
1056 
1057  if ( param != NULL )
1058  {
1059  CfgParamInt param_int = CfgParamInt.Cast( param );
1060  param_int.SetValue( quantity );
1061  }
1062  else
1063  {
1064  array<ref CfgParam> item_params = GetItemParams( preset_name, item_index );
1065 
1066  if ( item_params != NULL )
1067  {
1068  CfgParamInt new_param = new CfgParamInt( SUB_PARAM_ITEM_QUANTITY );
1069  new_param.SetValue( quantity );
1070  item_params.Insert( new_param );
1071  }
1072  }
1073 
1074  SaveConfigToFile();
1075 
1076  return true;
1077  }
1078 
1079  bool GetItemWithPhysics( string preset_name, int item_index )
1080  {
1081  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_WITH_PHYSICS );
1082 
1083  if ( param == NULL )
1084  {
1085  return false;
1086  }
1087  else
1088  {
1089  CfgParamBool param_bool = CfgParamBool.Cast( param );
1090  return param_bool.GetValue();
1091  }
1092  }
1093 
1094  bool SetItemWithPhysics( string preset_name, int item_index, bool with_physics )
1095  {
1096  CfgParam param = GetItemParam( preset_name, item_index, SUB_PARAM_ITEM_WITH_PHYSICS );
1097 
1098  if ( param != NULL )
1099  {
1100  CfgParamBool param_bool = CfgParamBool.Cast( param );
1101  param_bool.SetValue( with_physics );
1102  }
1103  else
1104  {
1105  array<ref CfgParam> item_params = GetItemParams( preset_name, item_index );
1106 
1107  if ( item_params != NULL )
1108  {
1109  CfgParamBool new_param = new CfgParamBool( SUB_PARAM_ITEM_WITH_PHYSICS );
1110  new_param.SetValue( with_physics );
1111  item_params.Insert( new_param );
1112  }
1113  }
1114 
1115  SaveConfigToFile();
1116 
1117  return true;
1118  }
1119 
1120  //========================================
1121  // Locations
1122  //========================================
1123 
1124  void GetLocationsData( out array<ref LocationParams> arr , bool isCustom)
1125  {
1126  string world = g_Game.GetWorldName();
1127  world.ToLower();
1128  string paramName = POSITION_NAME_ROOT + world;
1129 
1130  TStringArray names = new TStringArray();
1131  GetSubParametersInStringArray( paramName, PluginConfigDebugProfileFixed.SUB_PARAM_POS_NAME, names );
1132  TStringArray positions = new TStringArray();
1133  GetSubParametersInStringArray( paramName, PluginConfigDebugProfileFixed.SUB_PARAM_POS_VEC, positions );
1134  int i;
1135  if (isCustom)
1136  {
1137  for ( i = names.Count() - 1; i >= 0 ; i--)
1138  {
1139  arr.Insert(new LocationParams(names.Get(i), isCustom, positions.Get(i).ToVector()));
1140  }
1141  }
1142  else
1143  {
1144  for (i = 0; i < names.Count(); i++)
1145  {
1146  arr.Insert(new LocationParams(names.Get(i), isCustom, positions.Get(i).ToVector()));
1147  }
1148  }
1149  }
1150 }
STRING_EMPTY
const string STRING_EMPTY
Definition: constants.c:54
PluginConfigDebugProfile
Definition: pluginconfigdebugprofilefixed.c:1
TStringArray
array< string > TStringArray
Definition: enscript.c:685
CfgParam
Definition: cfgparam.c:8
LocationParams
Param3< string, bool, vector > LocationParams
Definition: pluginconfigdebugprofile.c:1
FileExist
proto bool FileExist(string name)
Check existence of file.
CFG_FILE_DEBUG_PROFILE
const string CFG_FILE_DEBUG_PROFILE
Definition: constants.c:231
Param3
Definition: entityai.c:95
CFG_TYPE_STRING
const int CFG_TYPE_STRING
Definition: cfgparam.c:1
GetPlugin
PluginBase GetPlugin(typename plugin_type)
Definition: pluginmanager.c:316
map
map
Definition: controlsxboxnew.c:3
vector
Definition: enconvert.c:105
CFG_TYPE_INT
const int CFG_TYPE_INT
Definition: cfgparam.c:2
g_Game
DayZGame g_Game
Definition: dayzgame.c:3727
CFG_TYPE_ARRAY
const int CFG_TYPE_ARRAY
Definition: cfgparam.c:5
PluginConfigHandler
Definition: pluginconfigdebugprofile.c:2
CFG_TYPE_FLOAT
const int CFG_TYPE_FLOAT
Definition: cfgparam.c:3
array< string >
GetSubFolderName
class PluginLocalEnscriptHistory extends PluginLocalHistoryBase GetSubFolderName()
Definition: pluginlocalenscripthistory.c:20
name
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
GetInt
int GetInt()
Definition: plugindayzplayerdebug.c:11
OnInit
void OnInit()
Definition: aibehaviour.c:49
CFG_TYPE_BOOL
const int CFG_TYPE_BOOL
Definition: cfgparam.c:4
CFG_FILE_DEBUG_DIR
const string CFG_FILE_DEBUG_DIR
Definition: constants.c:239