PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/Liberty/Halo3ODST/UI/h3ODSTEditWeapons.xaml.cs

#
C# | 305 lines | 189 code | 25 blank | 91 comment | 28 complexity | 15e7195816e881c9c9f602718097e246 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14. namespace Liberty.Halo3ODST.UI
  15. {
  16. /// <summary>
  17. /// Interaction logic for h3ODSTEditWeapons.xaml
  18. /// </summary>
  19. public partial class h3ODSTEditWeapons : UserControl, StepUI.IStep
  20. {
  21. private Util.SaveManager<Halo3ODST.CampaignSave> _saveManager;
  22. private MainWindow mainWindow = null;
  23. public h3ODSTEditWeapons(Util.SaveManager<Halo3ODST.CampaignSave> saveManager)
  24. {
  25. _saveManager = saveManager;
  26. this.InitializeComponent();
  27. this.Loaded += new RoutedEventHandler(cexEditWeapons_Loaded);
  28. }
  29. void cexEditWeapons_Loaded(object sender, RoutedEventArgs e)
  30. {
  31. mainWindow = Window.GetWindow(this) as MainWindow;
  32. }
  33. public void Load()
  34. {
  35. Halo3ODST.CampaignSave saveData = _saveManager.SaveData;
  36. Halo3ODST.BipedObject playerBiped = saveData.PlayerBiped;
  37. loadWeapon(playerBiped.PrimaryWeapon, gridPrimary, txtPrimaryAmmo, txtPrimaryClip);
  38. loadWeapon(playerBiped.SecondaryWeapon, gridSecondary, txtSecondaryAmmo, txtSecondaryClip);
  39. loadWeapon(playerBiped.TertiaryWeapon, gridTertiary, txtTertiaryAmmo, txtTertiaryClip);
  40. loadWeapon(playerBiped.QuaternaryWeapon, gridQuaternary, txtQuaternaryAmmo, txtQuaternaryClip);
  41. }
  42. public bool Save()
  43. {
  44. Halo3ODST.CampaignSave saveData = _saveManager.SaveData;
  45. Halo3ODST.BipedObject playerBiped = saveData.PlayerBiped;
  46. try
  47. {
  48. int primAmmo = 0;
  49. int primClip = 0;
  50. int secAmmo = 0;
  51. int secClip = 0;
  52. int terAmmo = 0;
  53. int terClip = 0;
  54. int quadAmmo = 0;
  55. int quadClip = 0;
  56. if (txtPrimaryAmmo.IsEnabled)
  57. {
  58. primAmmo = int.Parse(txtPrimaryAmmo.Text);
  59. primClip = int.Parse(txtPrimaryClip.Text);
  60. }
  61. if (txtSecondaryAmmo.IsEnabled)
  62. {
  63. secAmmo = int.Parse(txtSecondaryAmmo.Text);
  64. secClip = int.Parse(txtSecondaryClip.Text);
  65. }
  66. if (txtTertiaryAmmo.IsEnabled)
  67. {
  68. terAmmo = int.Parse(txtTertiaryAmmo.Text);
  69. terClip = int.Parse(txtTertiaryClip.Text);
  70. }
  71. if (txtQuaternaryAmmo.IsEnabled)
  72. {
  73. quadAmmo = int.Parse(txtQuaternaryAmmo.Text);
  74. quadClip = int.Parse(txtQuaternaryClip.Text);
  75. }
  76. if (txtPrimaryAmmo.IsEnabled)
  77. {
  78. if (primAmmo > 32767 && primAmmo < 0)
  79. txtPrimaryAmmo.Text = "32767";
  80. if (primClip > 32767 && primClip < 0)
  81. txtPrimaryClip.Text = "32767";
  82. }
  83. if (txtSecondaryAmmo.IsEnabled)
  84. {
  85. if (secAmmo > 32767 && secAmmo < 0)
  86. txtSecondaryAmmo.Text = "32767";
  87. if (secClip > 32767 && secClip < 0)
  88. txtSecondaryClip.Text = "32767";
  89. }
  90. if (txtTertiaryAmmo.IsEnabled)
  91. {
  92. if (terAmmo > 32767 && terAmmo < 0)
  93. txtTertiaryAmmo.Text = "32767";
  94. if (terClip > 32767 && terClip < 0)
  95. txtTertiaryClip.Text = "32767";
  96. }
  97. if (txtQuaternaryAmmo.IsEnabled)
  98. {
  99. if (quadAmmo > 32767 && quadAmmo < 0)
  100. txtQuaternaryAmmo.Text = "32767";
  101. if (quadAmmo > 32767 && quadAmmo < 0)
  102. txtQuaternaryClip.Text = "32767";
  103. }
  104. saveWeapon(playerBiped.PrimaryWeapon, txtPrimaryAmmo, txtPrimaryClip);
  105. saveWeapon(playerBiped.SecondaryWeapon, txtSecondaryAmmo, txtSecondaryClip);
  106. saveWeapon(playerBiped.TertiaryWeapon, txtTertiaryAmmo, txtTertiaryClip);
  107. saveWeapon(playerBiped.QuaternaryWeapon, txtQuaternaryAmmo, txtQuaternaryClip);
  108. }
  109. catch
  110. {
  111. mainWindow.showMessage("Invalid weapon ammo count, you can only have a maximum of 32767, and a minimum of 0", "INVALID AMMO");
  112. return false;
  113. }
  114. return true;
  115. }
  116. public void Show()
  117. {
  118. Visibility = Visibility.Visible;
  119. }
  120. public void Hide()
  121. {
  122. Visibility = Visibility.Hidden;
  123. }
  124. private void loadWeapon(Halo3ODST.WeaponObject weapon, Grid grid, TextBox ammoBox, TextBox clipBox)
  125. {
  126. if (weapon != null)
  127. {
  128. grid.IsEnabled = true;
  129. ammoBox.Text = weapon.Ammo.ToString();
  130. clipBox.Text = weapon.ClipAmmo.ToString();
  131. }
  132. else
  133. {
  134. grid.IsEnabled = false;
  135. }
  136. }
  137. private void saveWeapon(Halo3ODST.WeaponObject weapon, TextBox ammoBox, TextBox clipBox)
  138. {
  139. if (weapon != null)
  140. {
  141. weapon.Ammo = Convert.ToInt16(ammoBox.Text);
  142. weapon.ClipAmmo = Convert.ToInt16(clipBox.Text);
  143. }
  144. }
  145. #region textValidation
  146. private void txtPrimaryWeapAmmo_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
  147. {
  148. /*if (txtPrimaryWeapAmmo.Text == "") { }
  149. else
  150. {
  151. try
  152. {
  153. int validate = int.Parse(txtPrimaryWeapAmmo.Text);
  154. if (validate > 32767)
  155. {
  156. txtPrimaryWeapAmmo.Text = "32767";
  157. }
  158. }
  159. catch
  160. {
  161. int line = txtPrimaryWeapAmmo.Text.Length - 1;
  162. txtPrimaryWeapAmmo.Text = txtPrimaryWeapAmmo.Text.Remove(line, 1);
  163. txtPrimaryWeapAmmo.Select(line, 0);
  164. }
  165. }
  166. if (txtPrimaryWeapAmmo.Text == "") { txtPrimaryWeapAmmo.Text = "0"; }*/
  167. }
  168. private void txtPrimaryWeapClipAmmo_TextChanged(object sender, TextChangedEventArgs e)
  169. {
  170. /*if (txtPrimaryWeapClipAmmo.Text == "") { }
  171. else
  172. {
  173. try
  174. {
  175. int validate = int.Parse(txtPrimaryWeapClipAmmo.Text);
  176. if (validate > 32767)
  177. {
  178. txtPrimaryWeapClipAmmo.Text = "32767";
  179. }
  180. }
  181. catch
  182. {
  183. int line = txtPrimaryWeapClipAmmo.Text.Length - 1;
  184. txtPrimaryWeapClipAmmo.Text = txtPrimaryWeapClipAmmo.Text.Remove(line, 1);
  185. txtPrimaryWeapClipAmmo.Select(line, 0);
  186. }
  187. }
  188. if (txtPrimaryWeapClipAmmo.Text == "") { txtPrimaryWeapClipAmmo.Text = "0"; }*/
  189. }
  190. private void txtSecondaryWeapClipAmmo_TextChanged(object sender, TextChangedEventArgs e)
  191. {
  192. /*if (txtSecondaryWeapClipAmmo.Text == "") { }
  193. else
  194. {
  195. try
  196. {
  197. int validate = int.Parse(txtSecondaryWeapClipAmmo.Text);
  198. if (validate > 32767)
  199. {
  200. txtSecondaryWeapClipAmmo.Text = "32767";
  201. }
  202. }
  203. catch
  204. {
  205. int line = txtSecondaryWeapClipAmmo.Text.Length - 1;
  206. txtSecondaryWeapClipAmmo.Text = txtSecondaryWeapClipAmmo.Text.Remove(line, 1);
  207. txtSecondaryWeapClipAmmo.Select(line, 0);
  208. }
  209. }
  210. if (txtSecondaryWeapClipAmmo.Text == "") { txtSecondaryWeapClipAmmo.Text = "0"; }*/
  211. }
  212. private void txtSecondaryWeapAmmo_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
  213. {
  214. /*if (txtSecondaryWeapAmmo.Text == "") { }
  215. else
  216. {
  217. try
  218. {
  219. int validate = int.Parse(txtSecondaryWeapAmmo.Text);
  220. if (validate > 32767)
  221. {
  222. txtSecondaryWeapAmmo.Text = "32767";
  223. }
  224. }
  225. catch
  226. {
  227. int line = txtSecondaryWeapAmmo.Text.Length - 1;
  228. txtSecondaryWeapAmmo.Text = txtSecondaryWeapAmmo.Text.Remove(line, 1);
  229. txtSecondaryWeapAmmo.Select(line, 0);
  230. }
  231. }
  232. if (txtSecondaryWeapAmmo.Text == "") { txtSecondaryWeapAmmo.Text = "0"; }*/
  233. }
  234. #endregion
  235. private void btnMaxPrimaryClip_Click(object sender, RoutedEventArgs e)
  236. {
  237. txtPrimaryClip.Text = "32767";
  238. }
  239. private void btnMaxPrimaryAmmo_Click(object sender, RoutedEventArgs e)
  240. {
  241. txtPrimaryAmmo.Text = "32767";
  242. }
  243. private void btnMaxSecondaryClip_Click(object sender, RoutedEventArgs e)
  244. {
  245. txtSecondaryClip.Text = "32767";
  246. }
  247. private void btnMaxSecondaryAmmo_Click(object sender, RoutedEventArgs e)
  248. {
  249. txtSecondaryAmmo.Text = "32767";
  250. }
  251. private void btnMaxTertiaryClip_Click(object sender, RoutedEventArgs e)
  252. {
  253. txtTertiaryClip.Text = "32767";
  254. }
  255. private void btnMaxTertiaryAmmo_Click(object sender, RoutedEventArgs e)
  256. {
  257. txtTertiaryAmmo.Text = "32767";
  258. }
  259. private void btnMaxQuaternaryClip_Click(object sender, RoutedEventArgs e)
  260. {
  261. txtQuaternaryClip.Text = "32767";
  262. }
  263. private void btnMaxQuaternaryAmmo_Click(object sender, RoutedEventArgs e)
  264. {
  265. txtQuaternaryAmmo.Text = "32767";
  266. }
  267. }
  268. }