diff --git a/ILRepack.targets b/ILRepack.targets new file mode 100644 index 0000000..ac4694f --- /dev/null +++ b/ILRepack.targets @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + $([System.IO.Directory]::GetFiles("%(Directories.Identity)", "*", System.IO.SearchOption.AllDirectories).get_Length()) + + + + + \ No newline at end of file diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 5217edf..1b7a3d3 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -28,13 +28,556 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); + this.btn_open_save = new System.Windows.Forms.Button(); + this.tlp_basic_info = new System.Windows.Forms.TableLayoutPanel(); + this.txt_loan_limit = new System.Windows.Forms.TextBox(); + this.chk_loan_limit = new System.Windows.Forms.CheckBox(); + this.chk_experience = new System.Windows.Forms.CheckBox(); + this.lbl_loan_limit = new System.Windows.Forms.Label(); + this.txt_experience = new System.Windows.Forms.TextBox(); + this.chk_money = new System.Windows.Forms.CheckBox(); + this.txt_money = new System.Windows.Forms.TextBox(); + this.lbl_money = new System.Windows.Forms.Label(); + this.lbl_experience = new System.Windows.Forms.Label(); + this.lbl_basic_info = new System.Windows.Forms.Label(); + this.chk_update_on_start = new System.Windows.Forms.CheckBox(); + this.tlp_skills = new System.Windows.Forms.TableLayoutPanel(); + this.lbl_skills = new System.Windows.Forms.Label(); + this.lbl_adr = new System.Windows.Forms.Label(); + this.txt_adr = new System.Windows.Forms.TextBox(); + this.chk_adr = new System.Windows.Forms.CheckBox(); + this.lbl_long_distance = new System.Windows.Forms.Label(); + this.lbl_high_value_cargo = new System.Windows.Forms.Label(); + this.lbl_fragile_cargo = new System.Windows.Forms.Label(); + this.lbl_urgent_delivery = new System.Windows.Forms.Label(); + this.lbl_ecodriving = new System.Windows.Forms.Label(); + this.txt_long_distance = new System.Windows.Forms.TextBox(); + this.txt_high_value_cargo = new System.Windows.Forms.TextBox(); + this.txt_fragile_cargo = new System.Windows.Forms.TextBox(); + this.txt_urgent_delivery = new System.Windows.Forms.TextBox(); + this.txt_ecodriving = new System.Windows.Forms.TextBox(); + this.chk_long_distance = new System.Windows.Forms.CheckBox(); + this.chk_high_value_cargo = new System.Windows.Forms.CheckBox(); + this.chk_fragile_cargo = new System.Windows.Forms.CheckBox(); + this.chk_urgent_delivery = new System.Windows.Forms.CheckBox(); + this.chk_ecodriving = new System.Windows.Forms.CheckBox(); + this.btn_unlock_garages = new System.Windows.Forms.Button(); + this.btn_recover_backup = new System.Windows.Forms.Button(); + this.btn_apply_changes = new System.Windows.Forms.Button(); + this.tlp_basic_info.SuspendLayout(); + this.tlp_skills.SuspendLayout(); + this.SuspendLayout(); + // + // btn_open_save + // + this.btn_open_save.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btn_open_save.Location = new System.Drawing.Point(12, 12); + this.btn_open_save.Name = "btn_open_save"; + this.btn_open_save.Size = new System.Drawing.Size(115, 28); + this.btn_open_save.TabIndex = 0; + this.btn_open_save.Text = "Open save"; + this.btn_open_save.UseVisualStyleBackColor = true; + this.btn_open_save.Click += new System.EventHandler(this.btn_open_save_Click); + // + // tlp_basic_info + // + this.tlp_basic_info.ColumnCount = 3; + this.tlp_basic_info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tlp_basic_info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 40F)); + this.tlp_basic_info.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tlp_basic_info.Controls.Add(this.txt_loan_limit, 1, 3); + this.tlp_basic_info.Controls.Add(this.chk_loan_limit, 2, 3); + this.tlp_basic_info.Controls.Add(this.chk_experience, 2, 2); + this.tlp_basic_info.Controls.Add(this.lbl_loan_limit, 0, 3); + this.tlp_basic_info.Controls.Add(this.txt_experience, 1, 2); + this.tlp_basic_info.Controls.Add(this.chk_money, 2, 1); + this.tlp_basic_info.Controls.Add(this.txt_money, 1, 1); + this.tlp_basic_info.Controls.Add(this.lbl_money, 0, 1); + this.tlp_basic_info.Controls.Add(this.lbl_experience, 0, 2); + this.tlp_basic_info.Controls.Add(this.lbl_basic_info, 1, 0); + this.tlp_basic_info.Location = new System.Drawing.Point(12, 46); + this.tlp_basic_info.Name = "tlp_basic_info"; + this.tlp_basic_info.RowCount = 4; + this.tlp_basic_info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99927F)); + this.tlp_basic_info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99927F)); + this.tlp_basic_info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99927F)); + this.tlp_basic_info.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00219F)); + this.tlp_basic_info.Size = new System.Drawing.Size(343, 146); + this.tlp_basic_info.TabIndex = 1; + // + // txt_loan_limit + // + this.txt_loan_limit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_loan_limit.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_loan_limit.Location = new System.Drawing.Point(105, 114); + this.txt_loan_limit.MaxLength = 9; + this.txt_loan_limit.Name = "txt_loan_limit"; + this.txt_loan_limit.Size = new System.Drawing.Size(131, 26); + this.txt_loan_limit.TabIndex = 6; + // + // chk_loan_limit + // + this.chk_loan_limit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_loan_limit.AutoSize = true; + this.chk_loan_limit.Checked = true; + this.chk_loan_limit.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_loan_limit.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_loan_limit.Location = new System.Drawing.Point(242, 117); + this.chk_loan_limit.Name = "chk_loan_limit"; + this.chk_loan_limit.Size = new System.Drawing.Size(98, 19); + this.chk_loan_limit.TabIndex = 7; + this.chk_loan_limit.Text = "Don\'t change"; + this.chk_loan_limit.UseVisualStyleBackColor = true; + // + // chk_experience + // + this.chk_experience.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_experience.AutoSize = true; + this.chk_experience.Checked = true; + this.chk_experience.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_experience.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_experience.Location = new System.Drawing.Point(242, 80); + this.chk_experience.Name = "chk_experience"; + this.chk_experience.Size = new System.Drawing.Size(98, 19); + this.chk_experience.TabIndex = 5; + this.chk_experience.Text = "Don\'t change"; + this.chk_experience.UseVisualStyleBackColor = true; + // + // lbl_loan_limit + // + this.lbl_loan_limit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_loan_limit.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_loan_limit.Location = new System.Drawing.Point(3, 115); + this.lbl_loan_limit.Name = "lbl_loan_limit"; + this.lbl_loan_limit.Size = new System.Drawing.Size(96, 23); + this.lbl_loan_limit.TabIndex = 9; + this.lbl_loan_limit.Text = "Loan limit:"; + // + // txt_experience + // + this.txt_experience.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_experience.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_experience.Location = new System.Drawing.Point(105, 77); + this.txt_experience.MaxLength = 9; + this.txt_experience.Name = "txt_experience"; + this.txt_experience.Size = new System.Drawing.Size(131, 26); + this.txt_experience.TabIndex = 4; + // + // chk_money + // + this.chk_money.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_money.AutoSize = true; + this.chk_money.Checked = true; + this.chk_money.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_money.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_money.Location = new System.Drawing.Point(242, 44); + this.chk_money.Name = "chk_money"; + this.chk_money.Size = new System.Drawing.Size(98, 19); + this.chk_money.TabIndex = 3; + this.chk_money.Text = "Don\'t change"; + this.chk_money.UseVisualStyleBackColor = true; + // + // txt_money + // + this.txt_money.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_money.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_money.Location = new System.Drawing.Point(105, 41); + this.txt_money.MaxLength = 9; + this.txt_money.Name = "txt_money"; + this.txt_money.Size = new System.Drawing.Size(131, 26); + this.txt_money.TabIndex = 2; + // + // lbl_money + // + this.lbl_money.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_money.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_money.Location = new System.Drawing.Point(3, 42); + this.lbl_money.Name = "lbl_money"; + this.lbl_money.Size = new System.Drawing.Size(96, 23); + this.lbl_money.TabIndex = 1; + this.lbl_money.Text = "Money:"; + // + // lbl_experience + // + this.lbl_experience.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_experience.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_experience.Location = new System.Drawing.Point(3, 78); + this.lbl_experience.Name = "lbl_experience"; + this.lbl_experience.Size = new System.Drawing.Size(96, 23); + this.lbl_experience.TabIndex = 4; + this.lbl_experience.Text = "Experience:"; + // + // lbl_basic_info + // + this.lbl_basic_info.Anchor = System.Windows.Forms.AnchorStyles.None; + this.lbl_basic_info.AutoSize = true; + this.lbl_basic_info.Font = new System.Drawing.Font("Calibri", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_basic_info.Location = new System.Drawing.Point(124, 5); + this.lbl_basic_info.Name = "lbl_basic_info"; + this.lbl_basic_info.Size = new System.Drawing.Size(93, 26); + this.lbl_basic_info.TabIndex = 0; + this.lbl_basic_info.Text = "Basic info"; + // + // chk_update_on_start + // + this.chk_update_on_start.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_update_on_start.Location = new System.Drawing.Point(174, 15); + this.chk_update_on_start.Name = "chk_update_on_start"; + this.chk_update_on_start.Size = new System.Drawing.Size(181, 24); + this.chk_update_on_start.TabIndex = 1; + this.chk_update_on_start.Text = "Update configs on start"; + this.chk_update_on_start.UseVisualStyleBackColor = true; + this.chk_update_on_start.CheckedChanged += new System.EventHandler(this.chk_update_on_start_CheckedChanged); + // + // tlp_skills + // + this.tlp_skills.ColumnCount = 3; + this.tlp_skills.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 37.60933F)); + this.tlp_skills.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32.36152F)); + this.tlp_skills.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 29.73761F)); + this.tlp_skills.Controls.Add(this.lbl_skills, 1, 0); + this.tlp_skills.Controls.Add(this.lbl_adr, 0, 1); + this.tlp_skills.Controls.Add(this.txt_adr, 1, 1); + this.tlp_skills.Controls.Add(this.chk_adr, 2, 1); + this.tlp_skills.Controls.Add(this.lbl_long_distance, 0, 2); + this.tlp_skills.Controls.Add(this.lbl_high_value_cargo, 0, 3); + this.tlp_skills.Controls.Add(this.lbl_fragile_cargo, 0, 4); + this.tlp_skills.Controls.Add(this.lbl_urgent_delivery, 0, 5); + this.tlp_skills.Controls.Add(this.lbl_ecodriving, 0, 6); + this.tlp_skills.Controls.Add(this.txt_long_distance, 1, 2); + this.tlp_skills.Controls.Add(this.txt_high_value_cargo, 1, 3); + this.tlp_skills.Controls.Add(this.txt_fragile_cargo, 1, 4); + this.tlp_skills.Controls.Add(this.txt_urgent_delivery, 1, 5); + this.tlp_skills.Controls.Add(this.txt_ecodriving, 1, 6); + this.tlp_skills.Controls.Add(this.chk_long_distance, 2, 2); + this.tlp_skills.Controls.Add(this.chk_high_value_cargo, 2, 3); + this.tlp_skills.Controls.Add(this.chk_fragile_cargo, 2, 4); + this.tlp_skills.Controls.Add(this.chk_urgent_delivery, 2, 5); + this.tlp_skills.Controls.Add(this.chk_ecodriving, 2, 6); + this.tlp_skills.Location = new System.Drawing.Point(12, 198); + this.tlp_skills.Name = "tlp_skills"; + this.tlp_skills.RowCount = 7; + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); + this.tlp_skills.Size = new System.Drawing.Size(343, 254); + this.tlp_skills.TabIndex = 3; + // + // lbl_skills + // + this.lbl_skills.Anchor = System.Windows.Forms.AnchorStyles.None; + this.lbl_skills.AutoSize = true; + this.lbl_skills.Font = new System.Drawing.Font("Calibri", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_skills.Location = new System.Drawing.Point(157, 5); + this.lbl_skills.Name = "lbl_skills"; + this.lbl_skills.Size = new System.Drawing.Size(55, 26); + this.lbl_skills.TabIndex = 1; + this.lbl_skills.Text = "Skills"; + // + // lbl_adr + // + this.lbl_adr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_adr.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_adr.Location = new System.Drawing.Point(3, 42); + this.lbl_adr.Name = "lbl_adr"; + this.lbl_adr.Size = new System.Drawing.Size(123, 23); + this.lbl_adr.TabIndex = 2; + this.lbl_adr.Text = "ADR:"; + // + // txt_adr + // + this.txt_adr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_adr.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_adr.Location = new System.Drawing.Point(132, 41); + this.txt_adr.Name = "txt_adr"; + this.txt_adr.Size = new System.Drawing.Size(105, 26); + this.txt_adr.TabIndex = 8; + // + // chk_adr + // + this.chk_adr.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_adr.AutoSize = true; + this.chk_adr.Checked = true; + this.chk_adr.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_adr.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_adr.Location = new System.Drawing.Point(243, 44); + this.chk_adr.Name = "chk_adr"; + this.chk_adr.Size = new System.Drawing.Size(97, 19); + this.chk_adr.TabIndex = 9; + this.chk_adr.Text = "Don\'t change"; + this.chk_adr.UseVisualStyleBackColor = true; + // + // lbl_long_distance + // + this.lbl_long_distance.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_long_distance.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_long_distance.Location = new System.Drawing.Point(3, 78); + this.lbl_long_distance.Name = "lbl_long_distance"; + this.lbl_long_distance.Size = new System.Drawing.Size(123, 23); + this.lbl_long_distance.TabIndex = 8; + this.lbl_long_distance.Text = "Long distance:"; + // + // lbl_high_value_cargo + // + this.lbl_high_value_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_high_value_cargo.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_high_value_cargo.Location = new System.Drawing.Point(3, 114); + this.lbl_high_value_cargo.Name = "lbl_high_value_cargo"; + this.lbl_high_value_cargo.Size = new System.Drawing.Size(123, 23); + this.lbl_high_value_cargo.TabIndex = 9; + this.lbl_high_value_cargo.Text = "High value cargo:"; + // + // lbl_fragile_cargo + // + this.lbl_fragile_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_fragile_cargo.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_fragile_cargo.Location = new System.Drawing.Point(3, 150); + this.lbl_fragile_cargo.Name = "lbl_fragile_cargo"; + this.lbl_fragile_cargo.Size = new System.Drawing.Size(123, 23); + this.lbl_fragile_cargo.TabIndex = 10; + this.lbl_fragile_cargo.Text = "Fragile cargo:"; + // + // lbl_urgent_delivery + // + this.lbl_urgent_delivery.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_urgent_delivery.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_urgent_delivery.Location = new System.Drawing.Point(3, 186); + this.lbl_urgent_delivery.Name = "lbl_urgent_delivery"; + this.lbl_urgent_delivery.Size = new System.Drawing.Size(123, 23); + this.lbl_urgent_delivery.TabIndex = 11; + this.lbl_urgent_delivery.Text = "Urgent delivery:"; + // + // lbl_ecodriving + // + this.lbl_ecodriving.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lbl_ecodriving.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.lbl_ecodriving.Location = new System.Drawing.Point(3, 223); + this.lbl_ecodriving.Name = "lbl_ecodriving"; + this.lbl_ecodriving.Size = new System.Drawing.Size(123, 23); + this.lbl_ecodriving.TabIndex = 12; + this.lbl_ecodriving.Text = "Ecodriving:"; + // + // txt_long_distance + // + this.txt_long_distance.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_long_distance.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_long_distance.Location = new System.Drawing.Point(132, 77); + this.txt_long_distance.MaxLength = 1; + this.txt_long_distance.Name = "txt_long_distance"; + this.txt_long_distance.Size = new System.Drawing.Size(105, 26); + this.txt_long_distance.TabIndex = 10; + // + // txt_high_value_cargo + // + this.txt_high_value_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_high_value_cargo.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_high_value_cargo.Location = new System.Drawing.Point(132, 113); + this.txt_high_value_cargo.MaxLength = 1; + this.txt_high_value_cargo.Name = "txt_high_value_cargo"; + this.txt_high_value_cargo.Size = new System.Drawing.Size(105, 26); + this.txt_high_value_cargo.TabIndex = 12; + // + // txt_fragile_cargo + // + this.txt_fragile_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_fragile_cargo.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_fragile_cargo.Location = new System.Drawing.Point(132, 149); + this.txt_fragile_cargo.MaxLength = 1; + this.txt_fragile_cargo.Name = "txt_fragile_cargo"; + this.txt_fragile_cargo.Size = new System.Drawing.Size(105, 26); + this.txt_fragile_cargo.TabIndex = 14; + // + // txt_urgent_delivery + // + this.txt_urgent_delivery.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_urgent_delivery.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_urgent_delivery.Location = new System.Drawing.Point(132, 185); + this.txt_urgent_delivery.MaxLength = 1; + this.txt_urgent_delivery.Name = "txt_urgent_delivery"; + this.txt_urgent_delivery.Size = new System.Drawing.Size(105, 26); + this.txt_urgent_delivery.TabIndex = 16; + // + // txt_ecodriving + // + this.txt_ecodriving.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.txt_ecodriving.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.txt_ecodriving.Location = new System.Drawing.Point(132, 222); + this.txt_ecodriving.MaxLength = 1; + this.txt_ecodriving.Name = "txt_ecodriving"; + this.txt_ecodriving.Size = new System.Drawing.Size(105, 26); + this.txt_ecodriving.TabIndex = 18; + // + // chk_long_distance + // + this.chk_long_distance.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_long_distance.AutoSize = true; + this.chk_long_distance.Checked = true; + this.chk_long_distance.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_long_distance.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_long_distance.Location = new System.Drawing.Point(243, 80); + this.chk_long_distance.Name = "chk_long_distance"; + this.chk_long_distance.Size = new System.Drawing.Size(97, 19); + this.chk_long_distance.TabIndex = 11; + this.chk_long_distance.Text = "Don\'t change"; + this.chk_long_distance.UseVisualStyleBackColor = true; + // + // chk_high_value_cargo + // + this.chk_high_value_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_high_value_cargo.AutoSize = true; + this.chk_high_value_cargo.Checked = true; + this.chk_high_value_cargo.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_high_value_cargo.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_high_value_cargo.Location = new System.Drawing.Point(243, 116); + this.chk_high_value_cargo.Name = "chk_high_value_cargo"; + this.chk_high_value_cargo.Size = new System.Drawing.Size(97, 19); + this.chk_high_value_cargo.TabIndex = 13; + this.chk_high_value_cargo.Text = "Don\'t change"; + this.chk_high_value_cargo.UseVisualStyleBackColor = true; + // + // chk_fragile_cargo + // + this.chk_fragile_cargo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_fragile_cargo.AutoSize = true; + this.chk_fragile_cargo.Checked = true; + this.chk_fragile_cargo.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_fragile_cargo.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_fragile_cargo.Location = new System.Drawing.Point(243, 152); + this.chk_fragile_cargo.Name = "chk_fragile_cargo"; + this.chk_fragile_cargo.Size = new System.Drawing.Size(97, 19); + this.chk_fragile_cargo.TabIndex = 15; + this.chk_fragile_cargo.Text = "Don\'t change"; + this.chk_fragile_cargo.UseVisualStyleBackColor = true; + // + // chk_urgent_delivery + // + this.chk_urgent_delivery.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_urgent_delivery.AutoSize = true; + this.chk_urgent_delivery.Checked = true; + this.chk_urgent_delivery.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_urgent_delivery.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_urgent_delivery.Location = new System.Drawing.Point(243, 188); + this.chk_urgent_delivery.Name = "chk_urgent_delivery"; + this.chk_urgent_delivery.Size = new System.Drawing.Size(97, 19); + this.chk_urgent_delivery.TabIndex = 17; + this.chk_urgent_delivery.Text = "Don\'t change"; + this.chk_urgent_delivery.UseVisualStyleBackColor = true; + // + // chk_ecodriving + // + this.chk_ecodriving.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.chk_ecodriving.AutoSize = true; + this.chk_ecodriving.Checked = true; + this.chk_ecodriving.CheckState = System.Windows.Forms.CheckState.Checked; + this.chk_ecodriving.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.chk_ecodriving.Location = new System.Drawing.Point(243, 225); + this.chk_ecodriving.Name = "chk_ecodriving"; + this.chk_ecodriving.Size = new System.Drawing.Size(97, 19); + this.chk_ecodriving.TabIndex = 19; + this.chk_ecodriving.Text = "Don\'t change"; + this.chk_ecodriving.UseVisualStyleBackColor = true; + // + // btn_unlock_garages + // + this.btn_unlock_garages.Enabled = false; + this.btn_unlock_garages.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btn_unlock_garages.Location = new System.Drawing.Point(12, 458); + this.btn_unlock_garages.Name = "btn_unlock_garages"; + this.btn_unlock_garages.Size = new System.Drawing.Size(115, 34); + this.btn_unlock_garages.TabIndex = 20; + this.btn_unlock_garages.Text = "Unlock garages"; + this.btn_unlock_garages.UseVisualStyleBackColor = true; + // + // btn_recover_backup + // + this.btn_recover_backup.Enabled = false; + this.btn_recover_backup.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btn_recover_backup.Location = new System.Drawing.Point(133, 458); + this.btn_recover_backup.Name = "btn_recover_backup"; + this.btn_recover_backup.Size = new System.Drawing.Size(116, 34); + this.btn_recover_backup.TabIndex = 21; + this.btn_recover_backup.Text = "Recover backup"; + this.btn_recover_backup.UseVisualStyleBackColor = true; + // + // btn_apply_changes + // + this.btn_apply_changes.Enabled = false; + this.btn_apply_changes.Font = new System.Drawing.Font("Calibri", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.btn_apply_changes.Location = new System.Drawing.Point(254, 458); + this.btn_apply_changes.Name = "btn_apply_changes"; + this.btn_apply_changes.Size = new System.Drawing.Size(101, 34); + this.btn_apply_changes.TabIndex = 22; + this.btn_apply_changes.Text = "Apply changes"; + this.btn_apply_changes.UseVisualStyleBackColor = true; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; + this.ClientSize = new System.Drawing.Size(369, 501); + this.Controls.Add(this.btn_apply_changes); + this.Controls.Add(this.btn_recover_backup); + this.Controls.Add(this.btn_unlock_garages); + this.Controls.Add(this.tlp_skills); + this.Controls.Add(this.chk_update_on_start); + this.Controls.Add(this.tlp_basic_info); + this.Controls.Add(this.btn_open_save); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "SaveWizard"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed); + this.Load += new System.EventHandler(this.MainForm_Load); + this.tlp_basic_info.ResumeLayout(false); + this.tlp_basic_info.PerformLayout(); + this.tlp_skills.ResumeLayout(false); + this.tlp_skills.PerformLayout(); + this.ResumeLayout(false); + } #endregion + + private System.Windows.Forms.Button btn_open_save; + private System.Windows.Forms.TableLayoutPanel tlp_basic_info; + private System.Windows.Forms.Label lbl_basic_info; + private System.Windows.Forms.Label lbl_money; + private System.Windows.Forms.CheckBox chk_update_on_start; + private System.Windows.Forms.TextBox txt_money; + private System.Windows.Forms.TextBox txt_experience; + private System.Windows.Forms.Label lbl_experience; + private System.Windows.Forms.TextBox txt_loan_limit; + private System.Windows.Forms.CheckBox chk_money; + private System.Windows.Forms.CheckBox chk_experience; + private System.Windows.Forms.CheckBox chk_loan_limit; + private System.Windows.Forms.Label lbl_loan_limit; + private System.Windows.Forms.TableLayoutPanel tlp_skills; + private System.Windows.Forms.Label lbl_skills; + private System.Windows.Forms.Label lbl_adr; + private System.Windows.Forms.TextBox txt_adr; + private System.Windows.Forms.CheckBox chk_adr; + private System.Windows.Forms.Label lbl_long_distance; + private System.Windows.Forms.Label lbl_high_value_cargo; + private System.Windows.Forms.Label lbl_fragile_cargo; + private System.Windows.Forms.Label lbl_urgent_delivery; + private System.Windows.Forms.Label lbl_ecodriving; + private System.Windows.Forms.TextBox txt_long_distance; + private System.Windows.Forms.TextBox txt_high_value_cargo; + private System.Windows.Forms.TextBox txt_fragile_cargo; + private System.Windows.Forms.TextBox txt_urgent_delivery; + private System.Windows.Forms.TextBox txt_ecodriving; + private System.Windows.Forms.CheckBox chk_long_distance; + private System.Windows.Forms.CheckBox chk_high_value_cargo; + private System.Windows.Forms.CheckBox chk_fragile_cargo; + private System.Windows.Forms.CheckBox chk_urgent_delivery; + private System.Windows.Forms.CheckBox chk_ecodriving; + private System.Windows.Forms.Button btn_unlock_garages; + private System.Windows.Forms.Button btn_recover_backup; + private System.Windows.Forms.Button btn_apply_changes; } } diff --git a/MainForm.cs b/MainForm.cs index ddb1566..b89e05b 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -1,20 +1,220 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; +using System.IO; using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Runtime.InteropServices; +using System.Text.RegularExpressions; using System.Windows.Forms; namespace SaveWizard_rewritten { public partial class MainForm: Form { + private readonly string config_file_name = "update.cfg"; + + [DllImport("SII_Decrypt.dll")] + public static extern int GetFileFormat(string FileName); + + [DllImport("SII_Decrypt.dll")] + public static extern int DecryptAndDecodeFile(string InputFile, string OutputFile); + + private Dictionary items = null; + + private string opened_file_path, selected_game; + + private Dictionary dlc = null; + private Dictionary owns = null; + public MainForm() { InitializeComponent(); + // Test stuff + //string path = Path.Combine(Environment.CurrentDirectory, "configs"); + //if (Directory.Exists(path)) + // Directory.Delete(path, true); + //path = Path.Combine(Environment.CurrentDirectory, "update.cfg"); + //if (File.Exists(path)) + // File.Delete(path); + } + + private class WindowText + { + private CheckBox Check { get; set; } + private string Str { get; set; } + + public WindowText(CheckBox _check, string _str) + { + Check = _check; + Str = _str; + } + + public CheckBox GetCheck() + { + return Check; + } + + public string GetString() + { + return Str; + } + } + + private void boxTextChanged(object sender, EventArgs e) + { + TextBox _sender = sender as TextBox; + items[_sender].GetCheck().Checked = false; + } + + private void ValidateBasic(object sender, KeyPressEventArgs e) + { + if (!(e.KeyChar >= '0' && e.KeyChar <= '9') && !char.IsControl(e.KeyChar)) + e.Handled = true; + } + + private void ValidateSkills(object sender, KeyPressEventArgs e) + { + if (!(e.KeyChar >= '0' && e.KeyChar <= '6') && !char.IsControl(e.KeyChar)) + e.Handled = true; + } + + private void GetFileData(string filename) + { + string file_data = File.ReadAllText(filename); + RegexHandler.FillLines(Regex.Split(file_data, "\n").ToList()); + + foreach (KeyValuePair item in items) + item.Key.Text = RegexHandler.GetValue(RegexHandler.SearchLine(item.Value.GetString())); + + if (RegexHandler.SearchLine("company.volatile.stokes.calais") != 0) + selected_game = "ets2"; + else if (RegexHandler.SearchLine("company.volatile.ed_mkt.elko") != 0) + selected_game = "ats"; + else + selected_game = null; + if (selected_game != null) + { + string config_path = $"configs/{selected_game}/dlc.json"; + if (File.Exists(config_path)) + { + dlc = JsonConvert.DeserializeObject>(File.ReadAllText(config_path)); + owns = new Dictionary + { + { "base", true } + }; + List companies = RegexHandler.GetArrayItems(RegexHandler.SearchLine("companies:")); + foreach (var company in companies) + foreach (var item in dlc) + if (company.Contains(item.Value)) + owns[item.Key] = true; + owns = null; + } + else + MessageBox.Show($"'dlc.json' from '{selected_game}' have errors or not found, functionality has been limited", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + btn_unlock_garages.Enabled = true; + btn_recover_backup.Enabled = true; + btn_apply_changes.Enabled = true; + } + + private void ClearData() + { + opened_file_path = null; + RegexHandler.FillLines(null); + selected_game = null; + dlc = null; + owns = null; + foreach (KeyValuePair item in items) + { + item.Key.Text = ""; + item.Value.GetCheck().Checked = true; + } + btn_unlock_garages.Enabled = false; + btn_recover_backup.Enabled = false; + btn_apply_changes.Enabled = false; + } + + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) + { + Application.Exit(); + } + + private void MainForm_Load(object sender, EventArgs e) + { + items = new Dictionary + { + { txt_money, new WindowText(chk_money, "money_account:") }, + { txt_experience, new WindowText(chk_experience, "experience_points:") }, + { txt_loan_limit, new WindowText(chk_loan_limit, "loan_limit:") }, + { txt_long_distance, new WindowText(chk_long_distance, "long_dist:") }, + { txt_high_value_cargo, new WindowText(chk_high_value_cargo, "heavy:") }, + { txt_fragile_cargo, new WindowText(chk_fragile_cargo, "fragile:") }, + { txt_urgent_delivery, new WindowText(chk_urgent_delivery, "urgent:") }, + { txt_ecodriving, new WindowText(chk_ecodriving, "mechanical:") }, + }; + KeyPressEventHandler basic = new KeyPressEventHandler(ValidateBasic); + txt_money.KeyPress += basic; + txt_experience.KeyPress += basic; + txt_loan_limit.KeyPress += basic; + //txt_adr.KeyPress += new KeyPressEventHandler(ValidateADR); + KeyPressEventHandler skills = new KeyPressEventHandler(ValidateSkills); + txt_long_distance.KeyPress += skills; + txt_high_value_cargo.KeyPress += skills; + txt_fragile_cargo.KeyPress += skills; + txt_urgent_delivery.KeyPress += skills; + txt_ecodriving.KeyPress += skills; + foreach (TextBox txtbox in items.Keys) + txtbox.TextChanged += boxTextChanged; + Dictionary update_conf = new Dictionary + { + { "update_on_start", false } + }; + string path = Path.Combine(Environment.CurrentDirectory, config_file_name); + if (File.Exists(path)) + update_conf = JsonConvert.DeserializeObject>(File.ReadAllText(path)); + if (update_conf["update_on_start"]) + { + chk_update_on_start.Checked = true; + UpdateForm window = new UpdateForm(); + window.ShowDialog(); + window.Focus(); + } + } + + private void chk_update_on_start_CheckedChanged(object sender, EventArgs e) + { + File.WriteAllText( + Path.Combine(Environment.CurrentDirectory, config_file_name), + JsonConvert.SerializeObject(new Dictionary + { + { "update_on_start", chk_update_on_start.Checked } + }) + ); + } + + private void btn_open_save_Click(object sender, EventArgs e) + { + ClearData(); + OpenFileDialog ofd = new OpenFileDialog() + { + Title = "Выберите файл сохранения", + Filter = "Сохранение в формате SII|game.sii", + Multiselect = false, + }; + if (ofd.ShowDialog() == DialogResult.OK) + { + if (GetFileFormat(ofd.FileName) == 2) + { + if (DecryptAndDecodeFile(ofd.FileName, ofd.FileName) != 0) + { + MessageBox.Show("Something went wrong with decrypting file. Try again.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + GetFileData(ofd.FileName); + opened_file_path = ofd.FileName; + } } } } diff --git a/MainForm.resx b/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SII_Decrypt.dll b/SII_Decrypt.dll new file mode 100644 index 0000000..9882051 Binary files /dev/null and b/SII_Decrypt.dll differ diff --git a/SaveWizard_rewritten.csproj b/SaveWizard_rewritten.csproj index 4c4e56a..5858442 100644 --- a/SaveWizard_rewritten.csproj +++ b/SaveWizard_rewritten.csproj @@ -82,6 +82,7 @@ True Resources.resx + SettingsSingleFileGenerator @@ -96,6 +97,11 @@ + + + Always + +