pluginconfigdebugprofile.c 29 KB

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