Add highscore editing GUI
This commit is contained in:
parent
99bc2a83a3
commit
bf060a5df6
|
@ -0,0 +1,63 @@
|
|||
using LibXom.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace LibW4M.Data.Highscores
|
||||
{
|
||||
public class HighscoreCollective : SaveDataCollective
|
||||
{
|
||||
public HighscoreCollective(W4SaveFile fileBelongs, XomContainer mainContainer) : base(fileBelongs, mainContainer)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
// highscore data is stored after teams data section of TeamDataCollective.
|
||||
|
||||
int[] decompressedCollective = mainContainer.Decompress();
|
||||
int teamsLen = decompressedCollective[0];
|
||||
int highscoreStart = teamsLen + 1;
|
||||
int highscoresLen = decompressedCollective[highscoreStart];
|
||||
for (int i = 0; i < highscoresLen; i++)
|
||||
{
|
||||
HighscoreData highscoreData = new HighscoreData(fileBelongs, fileBelongs.xomFile.GetContainerById(decompressedCollective[highscoreStart + i + 1]));
|
||||
collectiveEntries.Add(highscoreData);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Save()
|
||||
{
|
||||
// Decompress the collective
|
||||
int[] decompressedCollective = mainContainer.Decompress();
|
||||
// get total length of teams collective
|
||||
int teamsLen = decompressedCollective[0];
|
||||
// Highscore collective starts right *after* the teams collective.
|
||||
int highscoreStart = teamsLen + 1;
|
||||
// get the current number of highscores.
|
||||
int highscoresLen = Length;
|
||||
|
||||
// copy teams data from collective.
|
||||
int[] teamsData = new int[teamsLen + 1];
|
||||
Array.Copy(decompressedCollective, teamsData, teamsData.Length);
|
||||
|
||||
// copy teams data back to collective.
|
||||
int[] newCollective = new int[teamsData.Length + highscoresLen + 1];
|
||||
Array.Copy(teamsData, newCollective, teamsData.Length);
|
||||
|
||||
// populate highscores collective
|
||||
newCollective[highscoreStart] = highscoresLen;
|
||||
for (int i = 0; i < highscoresLen; i++)
|
||||
{
|
||||
HighscoreData highscoreData = collectiveEntries[i] as HighscoreData;
|
||||
highscoreData.Save();
|
||||
newCollective[highscoreStart + i + 1] = highscoreData.mainContainer.Id;
|
||||
}
|
||||
|
||||
// Compress whole collective and update the underlying container.
|
||||
mainContainer.CompressAndUpdate(newCollective);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
using LibXom.Data;
|
||||
using LibXom.Streams;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace LibW4M.Data.Highscores
|
||||
{
|
||||
public class HighscoreData : SaveDataEntry
|
||||
{
|
||||
|
||||
public override string FriendlyName
|
||||
{
|
||||
get
|
||||
{
|
||||
return WinnerName.Value + " - " + WinnerTime.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public XomString WinnerName;
|
||||
public int WinnerTime;
|
||||
|
||||
public HighscoreData(W4SaveFile fileBelongs, XomContainer mainContainer) : base(fileBelongs, mainContainer)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
using (XomStreamReader reader = new XomStreamReader(new MemoryStream(mainContainer.GetData())))
|
||||
{
|
||||
reader.Skip(3);
|
||||
WinnerName = fileBelongs.LookupStringFromId(reader.ReadCompressedInt());
|
||||
WinnerTime = reader.ReadInt32();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Save()
|
||||
{
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
using (XomStreamWriter writer = new XomStreamWriter(ms))
|
||||
{
|
||||
writer.Skip(3);
|
||||
writer.WriteCompressedInt(WinnerName.Id);
|
||||
writer.WriteInt32(WinnerTime);
|
||||
ms.Seek(0x00, SeekOrigin.Begin);
|
||||
mainContainer.SetData(ms.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using LibW4M.Data;
|
||||
using LibW4M.Data.Highscores;
|
||||
using LibW4M.Data.Teams;
|
||||
using LibW4M.Data.WeaponFactory;
|
||||
using LibXom;
|
||||
|
@ -12,6 +13,7 @@ namespace LibW4M
|
|||
internal List<SaveDataEntry> collectives = new List<SaveDataEntry>();
|
||||
private WeaponsCollective weaponFactoryCollective;
|
||||
private TeamsCollective teamDataColective;
|
||||
private HighscoreCollective highscoreCollective;
|
||||
public WeaponsCollective WeaponFactoryCollective
|
||||
{
|
||||
get
|
||||
|
@ -26,7 +28,13 @@ namespace LibW4M
|
|||
return teamDataColective;
|
||||
}
|
||||
}
|
||||
|
||||
public HighscoreCollective HighscoreDataCollective
|
||||
{
|
||||
get
|
||||
{
|
||||
return highscoreCollective;
|
||||
}
|
||||
}
|
||||
|
||||
internal XomFile xomFile;
|
||||
|
||||
|
@ -106,7 +114,7 @@ namespace LibW4M
|
|||
this.xomFile = w4Save;
|
||||
weaponFactoryCollective = new WeaponsCollective(this, this.xomFile.GetTypeByName("WeaponFactoryCollective").Containers.First());
|
||||
teamDataColective = new TeamsCollective(this, this.xomFile.GetTypeByName("TeamDataColective").Containers.First());
|
||||
|
||||
highscoreCollective = new HighscoreCollective(this, this.xomFile.GetTypeByName("TeamDataColective").Containers.First());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,156 @@
|
|||
namespace W4Gui.Components
|
||||
{
|
||||
partial class HighscoresPanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.highscoreTabControl = new System.Windows.Forms.TabControl();
|
||||
this.generalTab = new System.Windows.Forms.TabPage();
|
||||
this.tblGeneral = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.lblWinnerTime = new System.Windows.Forms.Label();
|
||||
this.lblWinnerName = new System.Windows.Forms.Label();
|
||||
this.selWinnerName = new System.Windows.Forms.TextBox();
|
||||
this.selWinnerTime = new W4Gui.Components.IntUpDown();
|
||||
this.highscoreTabControl.SuspendLayout();
|
||||
this.generalTab.SuspendLayout();
|
||||
this.tblGeneral.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// highscoreTabControl
|
||||
//
|
||||
this.highscoreTabControl.Controls.Add(this.generalTab);
|
||||
this.highscoreTabControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.highscoreTabControl.HotTrack = true;
|
||||
this.highscoreTabControl.Location = new System.Drawing.Point(0, 0);
|
||||
this.highscoreTabControl.Name = "highscoreTabControl";
|
||||
this.highscoreTabControl.SelectedIndex = 0;
|
||||
this.highscoreTabControl.Size = new System.Drawing.Size(707, 419);
|
||||
this.highscoreTabControl.TabIndex = 1;
|
||||
//
|
||||
// generalTab
|
||||
//
|
||||
this.generalTab.BackColor = System.Drawing.Color.Transparent;
|
||||
this.generalTab.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.generalTab.Controls.Add(this.tblGeneral);
|
||||
this.generalTab.Location = new System.Drawing.Point(4, 24);
|
||||
this.generalTab.Name = "generalTab";
|
||||
this.generalTab.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.generalTab.Size = new System.Drawing.Size(699, 391);
|
||||
this.generalTab.TabIndex = 0;
|
||||
this.generalTab.Text = "General";
|
||||
//
|
||||
// tblGeneral
|
||||
//
|
||||
this.tblGeneral.AutoSize = true;
|
||||
this.tblGeneral.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Inset;
|
||||
this.tblGeneral.ColumnCount = 2;
|
||||
this.tblGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tblGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tblGeneral.Controls.Add(this.lblWinnerTime, 0, 1);
|
||||
this.tblGeneral.Controls.Add(this.lblWinnerName, 0, 0);
|
||||
this.tblGeneral.Controls.Add(this.selWinnerName, 1, 0);
|
||||
this.tblGeneral.Controls.Add(this.selWinnerTime, 1, 1);
|
||||
this.tblGeneral.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.tblGeneral.Location = new System.Drawing.Point(3, 3);
|
||||
this.tblGeneral.Name = "tblGeneral";
|
||||
this.tblGeneral.RowCount = 2;
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tblGeneral.Size = new System.Drawing.Size(689, 64);
|
||||
this.tblGeneral.TabIndex = 0;
|
||||
//
|
||||
// lblWinnerTime
|
||||
//
|
||||
this.lblWinnerTime.AutoSize = true;
|
||||
this.lblWinnerTime.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblWinnerTime.Location = new System.Drawing.Point(5, 33);
|
||||
this.lblWinnerTime.Name = "lblWinnerTime";
|
||||
this.lblWinnerTime.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblWinnerTime.TabIndex = 17;
|
||||
this.lblWinnerTime.Text = "Winner Time:";
|
||||
this.lblWinnerTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblWinnerName
|
||||
//
|
||||
this.lblWinnerName.AutoSize = true;
|
||||
this.lblWinnerName.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblWinnerName.Location = new System.Drawing.Point(5, 2);
|
||||
this.lblWinnerName.Name = "lblWinnerName";
|
||||
this.lblWinnerName.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblWinnerName.TabIndex = 0;
|
||||
this.lblWinnerName.Text = "Winner Name:";
|
||||
this.lblWinnerName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// selWinnerName
|
||||
//
|
||||
this.selWinnerName.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selWinnerName.Location = new System.Drawing.Point(96, 5);
|
||||
this.selWinnerName.Name = "selWinnerName";
|
||||
this.selWinnerName.PlaceholderText = "Winner Name";
|
||||
this.selWinnerName.Size = new System.Drawing.Size(588, 23);
|
||||
this.selWinnerName.TabIndex = 1;
|
||||
//
|
||||
// selWinnerTime
|
||||
//
|
||||
this.selWinnerTime.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selWinnerTime.Location = new System.Drawing.Point(96, 36);
|
||||
this.selWinnerTime.Name = "selWinnerTime";
|
||||
this.selWinnerTime.Size = new System.Drawing.Size(588, 23);
|
||||
this.selWinnerTime.TabIndex = 18;
|
||||
this.selWinnerTime.Text = "0";
|
||||
this.selWinnerTime.Value = 0;
|
||||
//
|
||||
// HighscoresPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.LightGray;
|
||||
this.Controls.Add(this.highscoreTabControl);
|
||||
this.Name = "HighscoresPanel";
|
||||
this.Size = new System.Drawing.Size(707, 419);
|
||||
this.highscoreTabControl.ResumeLayout(false);
|
||||
this.generalTab.ResumeLayout(false);
|
||||
this.generalTab.PerformLayout();
|
||||
this.tblGeneral.ResumeLayout(false);
|
||||
this.tblGeneral.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TabControl highscoreTabControl;
|
||||
private TabPage generalTab;
|
||||
private TableLayoutPanel tblGeneral;
|
||||
private Label lblWinnerName;
|
||||
private TextBox selWinnerName;
|
||||
private Label lblWinnerTime;
|
||||
private IntUpDown selWinnerTime;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
using LibW4M.Data.Highscores;
|
||||
using LibW4M.Data.Teams;
|
||||
using LibW4M.Data.WeaponFactory;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using W4Gui.Dialogs;
|
||||
|
||||
namespace W4Gui.Components
|
||||
{
|
||||
public partial class HighscoresPanel : UserControl
|
||||
{
|
||||
public HighscoresPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
public void SaveHighscoreData(ref HighscoreData highscore)
|
||||
{
|
||||
// Load general
|
||||
highscore.WinnerName = DataManager.SaveFile.LookupString(selWinnerName.Text);
|
||||
highscore.WinnerTime = selWinnerTime.Value;
|
||||
}
|
||||
|
||||
public void LoadHighscoreData(HighscoreData highscore)
|
||||
{
|
||||
// Load general
|
||||
this.selWinnerName.Text = highscore.WinnerName.Value;
|
||||
this.selWinnerTime.Value = highscore.WinnerTime;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -31,6 +31,8 @@
|
|||
this.teamTabControl = new System.Windows.Forms.TabControl();
|
||||
this.generalTab = new System.Windows.Forms.TabPage();
|
||||
this.tblGeneral = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.selPlayerUsername = new System.Windows.Forms.TextBox();
|
||||
this.lblPlayer = new System.Windows.Forms.Label();
|
||||
this.lblWormName = new System.Windows.Forms.Label();
|
||||
this.lblSkillLevel = new System.Windows.Forms.Label();
|
||||
this.lblTeamName = new System.Windows.Forms.Label();
|
||||
|
@ -40,6 +42,7 @@
|
|||
this.apperanceTab = new System.Windows.Forms.TabPage();
|
||||
this.tblApperance = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.lblGlasses = new System.Windows.Forms.Label();
|
||||
this.lblFace = new System.Windows.Forms.Label();
|
||||
this.lblGloves = new System.Windows.Forms.Label();
|
||||
this.lblHat = new System.Windows.Forms.Label();
|
||||
this.lblSpeech = new System.Windows.Forms.Label();
|
||||
|
@ -51,6 +54,7 @@
|
|||
this.selHat = new System.Windows.Forms.TextBox();
|
||||
this.selGloves = new System.Windows.Forms.TextBox();
|
||||
this.selGlasses = new System.Windows.Forms.TextBox();
|
||||
this.selFace = new System.Windows.Forms.TextBox();
|
||||
this.storyTab = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tblStoryFlags = new System.Windows.Forms.TableLayoutPanel();
|
||||
|
@ -80,10 +84,6 @@
|
|||
this.tblWeapButtonSep = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.btnEditWeapon = new System.Windows.Forms.Button();
|
||||
this.btnChangeWeapon = new System.Windows.Forms.Button();
|
||||
this.lblPlayer = new System.Windows.Forms.Label();
|
||||
this.selPlayerUsername = new System.Windows.Forms.TextBox();
|
||||
this.selFace = new System.Windows.Forms.TextBox();
|
||||
this.lblFace = new System.Windows.Forms.Label();
|
||||
this.teamTabControl.SuspendLayout();
|
||||
this.generalTab.SuspendLayout();
|
||||
this.tblGeneral.SuspendLayout();
|
||||
|
@ -145,13 +145,32 @@
|
|||
this.tblGeneral.Name = "tblGeneral";
|
||||
this.tblGeneral.RowCount = 4;
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tblGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tblGeneral.Size = new System.Drawing.Size(689, 379);
|
||||
this.tblGeneral.TabIndex = 0;
|
||||
//
|
||||
// selPlayerUsername
|
||||
//
|
||||
this.selPlayerUsername.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selPlayerUsername.Location = new System.Drawing.Point(96, 36);
|
||||
this.selPlayerUsername.Name = "selPlayerUsername";
|
||||
this.selPlayerUsername.PlaceholderText = "Computer Name";
|
||||
this.selPlayerUsername.Size = new System.Drawing.Size(588, 23);
|
||||
this.selPlayerUsername.TabIndex = 18;
|
||||
//
|
||||
// lblPlayer
|
||||
//
|
||||
this.lblPlayer.AutoSize = true;
|
||||
this.lblPlayer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblPlayer.Location = new System.Drawing.Point(5, 33);
|
||||
this.lblPlayer.Name = "lblPlayer";
|
||||
this.lblPlayer.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblPlayer.TabIndex = 17;
|
||||
this.lblPlayer.Text = "Username:";
|
||||
this.lblPlayer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblWormName
|
||||
//
|
||||
this.lblWormName.AutoSize = true;
|
||||
|
@ -278,6 +297,17 @@
|
|||
this.lblGlasses.Text = "Glasses:";
|
||||
this.lblGlasses.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblFace
|
||||
//
|
||||
this.lblFace.AutoSize = true;
|
||||
this.lblFace.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblFace.Location = new System.Drawing.Point(5, 188);
|
||||
this.lblFace.Name = "lblFace";
|
||||
this.lblFace.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblFace.TabIndex = 10;
|
||||
this.lblFace.Text = "Face:";
|
||||
this.lblFace.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblGloves
|
||||
//
|
||||
this.lblGloves.AutoSize = true;
|
||||
|
@ -383,6 +413,14 @@
|
|||
this.selGlasses.Size = new System.Drawing.Size(588, 23);
|
||||
this.selGlasses.TabIndex = 14;
|
||||
//
|
||||
// selFace
|
||||
//
|
||||
this.selFace.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selFace.Location = new System.Drawing.Point(96, 191);
|
||||
this.selFace.Name = "selFace";
|
||||
this.selFace.Size = new System.Drawing.Size(588, 23);
|
||||
this.selFace.TabIndex = 15;
|
||||
//
|
||||
// storyTab
|
||||
//
|
||||
this.storyTab.BackColor = System.Drawing.Color.Transparent;
|
||||
|
@ -749,45 +787,6 @@
|
|||
this.btnChangeWeapon.UseVisualStyleBackColor = true;
|
||||
this.btnChangeWeapon.Click += new System.EventHandler(this.btnChangeWeapon_Click);
|
||||
//
|
||||
// lblPlayer
|
||||
//
|
||||
this.lblPlayer.AutoSize = true;
|
||||
this.lblPlayer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblPlayer.Location = new System.Drawing.Point(5, 33);
|
||||
this.lblPlayer.Name = "lblPlayer";
|
||||
this.lblPlayer.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblPlayer.TabIndex = 17;
|
||||
this.lblPlayer.Text = "Username:";
|
||||
this.lblPlayer.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// selPlayerUsername
|
||||
//
|
||||
this.selPlayerUsername.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selPlayerUsername.Location = new System.Drawing.Point(96, 36);
|
||||
this.selPlayerUsername.Name = "selPlayerUsername";
|
||||
this.selPlayerUsername.PlaceholderText = "Computer Name";
|
||||
this.selPlayerUsername.Size = new System.Drawing.Size(588, 23);
|
||||
this.selPlayerUsername.TabIndex = 18;
|
||||
//
|
||||
// selFace
|
||||
//
|
||||
this.selFace.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.selFace.Location = new System.Drawing.Point(96, 191);
|
||||
this.selFace.Name = "selFace";
|
||||
this.selFace.Size = new System.Drawing.Size(588, 23);
|
||||
this.selFace.TabIndex = 15;
|
||||
//
|
||||
// lblFace
|
||||
//
|
||||
this.lblFace.AutoSize = true;
|
||||
this.lblFace.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lblFace.Location = new System.Drawing.Point(5, 188);
|
||||
this.lblFace.Name = "lblFace";
|
||||
this.lblFace.Size = new System.Drawing.Size(83, 29);
|
||||
this.lblFace.TabIndex = 10;
|
||||
this.lblFace.Text = "Face:";
|
||||
this.lblFace.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// TeamsPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
|
|
|
@ -43,10 +43,16 @@ namespace W4Gui
|
|||
this.weaponPage = new W4Gui.Tabs.WeaponsTab();
|
||||
this.teamTab = new System.Windows.Forms.TabPage();
|
||||
this.teamsPage = new W4Gui.Tabs.TeamsTab();
|
||||
this.schemeTab = new System.Windows.Forms.TabPage();
|
||||
this.highscoreTab = new System.Windows.Forms.TabPage();
|
||||
this.highscoresPage = new W4Gui.Tabs.HighscoresTab();
|
||||
this.inputTab = new System.Windows.Forms.TabPage();
|
||||
this.variablesTab = new System.Windows.Forms.TabPage();
|
||||
this.mainMenuStrip.SuspendLayout();
|
||||
this.mainTabControl.SuspendLayout();
|
||||
this.weaponTab.SuspendLayout();
|
||||
this.teamTab.SuspendLayout();
|
||||
this.highscoreTab.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// mainMenuStrip
|
||||
|
@ -120,6 +126,10 @@ namespace W4Gui
|
|||
//
|
||||
this.mainTabControl.Controls.Add(this.weaponTab);
|
||||
this.mainTabControl.Controls.Add(this.teamTab);
|
||||
this.mainTabControl.Controls.Add(this.schemeTab);
|
||||
this.mainTabControl.Controls.Add(this.highscoreTab);
|
||||
this.mainTabControl.Controls.Add(this.inputTab);
|
||||
this.mainTabControl.Controls.Add(this.variablesTab);
|
||||
this.mainTabControl.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.mainTabControl.Enabled = false;
|
||||
this.mainTabControl.HotTrack = true;
|
||||
|
@ -169,6 +179,56 @@ namespace W4Gui
|
|||
this.teamsPage.Size = new System.Drawing.Size(858, 499);
|
||||
this.teamsPage.TabIndex = 0;
|
||||
//
|
||||
// schemeTab
|
||||
//
|
||||
this.schemeTab.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.schemeTab.Location = new System.Drawing.Point(4, 24);
|
||||
this.schemeTab.Name = "schemeTab";
|
||||
this.schemeTab.Size = new System.Drawing.Size(192, 72);
|
||||
this.schemeTab.TabIndex = 3;
|
||||
this.schemeTab.Text = "Schemes";
|
||||
this.schemeTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// highscoreTab
|
||||
//
|
||||
this.highscoreTab.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.highscoreTab.Controls.Add(this.highscoresPage);
|
||||
this.highscoreTab.Location = new System.Drawing.Point(4, 24);
|
||||
this.highscoreTab.Name = "highscoreTab";
|
||||
this.highscoreTab.Size = new System.Drawing.Size(868, 509);
|
||||
this.highscoreTab.TabIndex = 2;
|
||||
this.highscoreTab.Text = "Highscores";
|
||||
this.highscoreTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// highscoresPage
|
||||
//
|
||||
|
||||
this.highscoresPage.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.highscoresPage.Location = new System.Drawing.Point(3, 3);
|
||||
this.highscoresPage.Name = "highscoresPage";
|
||||
this.highscoresPage.Size = new System.Drawing.Size(858, 499);
|
||||
this.highscoresPage.TabIndex = 0;
|
||||
//
|
||||
// inputTab
|
||||
//
|
||||
this.inputTab.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.inputTab.Location = new System.Drawing.Point(4, 24);
|
||||
this.inputTab.Name = "inputTab";
|
||||
this.inputTab.Size = new System.Drawing.Size(192, 72);
|
||||
this.inputTab.TabIndex = 4;
|
||||
this.inputTab.Text = "Input Settings";
|
||||
this.inputTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// variablesTab
|
||||
//
|
||||
this.variablesTab.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.variablesTab.Location = new System.Drawing.Point(4, 24);
|
||||
this.variablesTab.Name = "variablesTab";
|
||||
this.variablesTab.Size = new System.Drawing.Size(192, 72);
|
||||
this.variablesTab.TabIndex = 5;
|
||||
this.variablesTab.Text = "Variables";
|
||||
this.variablesTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Main
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
|
@ -187,6 +247,7 @@ namespace W4Gui
|
|||
this.mainTabControl.ResumeLayout(false);
|
||||
this.weaponTab.ResumeLayout(false);
|
||||
this.teamTab.ResumeLayout(false);
|
||||
this.highscoreTab.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
@ -207,5 +268,10 @@ namespace W4Gui
|
|||
private ToolStripMenuItem extractAllXomContainersToolStripMenuItem;
|
||||
private TabPage teamTab;
|
||||
private TeamsTab teamsPage;
|
||||
private TabPage schemeTab;
|
||||
private TabPage highscoreTab;
|
||||
private TabPage inputTab;
|
||||
private TabPage variablesTab;
|
||||
private HighscoresTab highscoresPage;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
namespace W4Gui.Tabs
|
||||
{
|
||||
partial class HighscoresTab
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.highscoresSplitContainer = new System.Windows.Forms.SplitContainer();
|
||||
this.highscoresList = new W4Gui.Components.CollectiveListAddDelete();
|
||||
this.highscoresPanel = new W4Gui.Components.HighscoresPanel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.highscoresSplitContainer)).BeginInit();
|
||||
this.highscoresSplitContainer.Panel1.SuspendLayout();
|
||||
this.highscoresSplitContainer.Panel2.SuspendLayout();
|
||||
this.highscoresSplitContainer.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// highscoresSplitContainer
|
||||
//
|
||||
this.highscoresSplitContainer.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.highscoresSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.highscoresSplitContainer.Location = new System.Drawing.Point(0, 0);
|
||||
this.highscoresSplitContainer.Name = "highscoresSplitContainer";
|
||||
//
|
||||
// highscoresSplitContainer.Panel1
|
||||
//
|
||||
this.highscoresSplitContainer.Panel1.Controls.Add(this.highscoresList);
|
||||
//
|
||||
// highscoresSplitContainer.Panel2
|
||||
//
|
||||
this.highscoresSplitContainer.Panel2.Controls.Add(this.highscoresPanel);
|
||||
this.highscoresSplitContainer.Size = new System.Drawing.Size(797, 464);
|
||||
this.highscoresSplitContainer.SplitterDistance = 265;
|
||||
this.highscoresSplitContainer.TabIndex = 0;
|
||||
//
|
||||
// highscoresList
|
||||
//
|
||||
this.highscoresList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.highscoresList.Location = new System.Drawing.Point(0, 0);
|
||||
this.highscoresList.Name = "highscoresList";
|
||||
this.highscoresList.Size = new System.Drawing.Size(261, 460);
|
||||
this.highscoresList.TabIndex = 0;
|
||||
this.highscoresList.NewButton += new System.EventHandler<System.EventArgs>(this.teamsList_NewButton);
|
||||
this.highscoresList.DeleteButton += new System.EventHandler<System.EventArgs>(this.teamsList_DeleteButton);
|
||||
//
|
||||
// highscorePanel
|
||||
//
|
||||
this.highscoresPanel.BackColor = System.Drawing.Color.LightGray;
|
||||
this.highscoresPanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.highscoresPanel.Location = new System.Drawing.Point(0, 0);
|
||||
this.highscoresPanel.Name = "highscorePanel";
|
||||
this.highscoresPanel.Size = new System.Drawing.Size(524, 460);
|
||||
this.highscoresPanel.TabIndex = 0;
|
||||
//
|
||||
// HighscoresTab
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.highscoresSplitContainer);
|
||||
this.Name = "HighscoresTab";
|
||||
this.Size = new System.Drawing.Size(797, 464);
|
||||
this.highscoresSplitContainer.Panel1.ResumeLayout(false);
|
||||
this.highscoresSplitContainer.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.highscoresSplitContainer)).EndInit();
|
||||
this.highscoresSplitContainer.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private SplitContainer highscoresSplitContainer;
|
||||
private Components.CollectiveListAddDelete highscoresList;
|
||||
private Components.HighscoresPanel highscoresPanel;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
using LibW4M.Data.Highscores;
|
||||
using LibW4M.Data.Teams;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace W4Gui.Tabs
|
||||
{
|
||||
public partial class HighscoresTab : TabEntry
|
||||
{
|
||||
public HighscoresTab()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.highscoresList.List.Selected += highscoresList_Selected;
|
||||
this.highscoresList.List.Unselected += highscoresList_Unselected;
|
||||
|
||||
}
|
||||
|
||||
public override void SaveFromControl()
|
||||
{
|
||||
if (this.highscoresList.List.IsItemSelected)
|
||||
highscoresList_Unselected(null, null);
|
||||
}
|
||||
|
||||
public override void LoadIntoControl()
|
||||
{
|
||||
this.highscoresList.List.LoadCollective(DataManager.SaveFile.HighscoreDataCollective);
|
||||
highscoresPanel.Enabled = false;
|
||||
}
|
||||
|
||||
private void highscoresList_Unselected(object? sender, EventArgs e)
|
||||
{
|
||||
HighscoreData highscoreData = DataManager.SaveFile.HighscoreDataCollective[highscoresList.List.LastSelected] as HighscoreData;
|
||||
highscoresPanel.SaveHighscoreData(ref highscoreData);
|
||||
highscoresList.List.UpdateName(highscoresList.List.LastSelected, highscoreData.FriendlyName);
|
||||
}
|
||||
|
||||
private void highscoresList_Selected(object? sender, EventArgs e)
|
||||
{
|
||||
HighscoreData highscoreData = DataManager.SaveFile.HighscoreDataCollective[highscoresList.List.CurrentlySelected] as HighscoreData;
|
||||
highscoresPanel.LoadHighscoreData(highscoreData);
|
||||
highscoresPanel.Enabled = true;
|
||||
}
|
||||
|
||||
private void teamsList_NewButton(object sender, EventArgs e)
|
||||
{
|
||||
throw new NotImplementedException("Adding new highscores from here not implemented yet ;)");
|
||||
}
|
||||
|
||||
private void teamsList_DeleteButton(object sender, EventArgs e)
|
||||
{
|
||||
throw new NotImplementedException("Removing highscores from here not implemented yet ;)");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
<root>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -48,8 +48,7 @@ namespace W4Gui.Tabs
|
|||
WeaponStore store = DataManager.SaveFile.WeaponFactoryCollective[weaponList.List.CurrentlySelected] as WeaponStore;
|
||||
weaponPanel.LoadWeaponData(store.Weapon);
|
||||
clusterPanel.LoadWeaponData(store.Cluster);
|
||||
selStockWeapon.Checked = store.StockWeapon;
|
||||
weaponClusterTabControl.Enabled = true;
|
||||
selStockWeapon.Checked = store.StockWeapon; weaponClusterTabControl.Enabled = true;
|
||||
}
|
||||
|
||||
private void weaponList_NewButton(object sender, EventArgs e)
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
<Compile Update="Components\FloatUpDown.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Update="Components\HighscoresPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="Components\IntList.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
@ -40,6 +43,9 @@
|
|||
<Compile Update="Components\WeaponsPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="Tabs\HighscoresTab.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="Tabs\TabEntry.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
|
Loading…
Reference in New Issue