Add letter editor, and some minor amelioration

This commit is contained in:
Mega-Mew 2017-09-11 11:26:23 +02:00
parent 43df187cae
commit cbbb18547d
6 changed files with 12889 additions and 12036 deletions

View File

@ -1194,6 +1194,10 @@
<None Include="Resources\img\acre\acre_214.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\text\MuseumInsectNames.txt" />
<None Include="Resources\text\MuseumFishNames.txt" />
<None Include="Resources\text\MuseumDinoNames.txt" />
<None Include="Resources\text\MuseumArtNames.txt" />
<None Include="Resources\img\player_head\nothing.png" />
<None Include="Resources\img\player_head\hair_M-16.png" />
<None Include="Resources\img\player_head\hair_M-15.png" />

File diff suppressed because it is too large Load Diff

View File

@ -3661,4 +3661,16 @@
<data name="Museum" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\VillageData\Museum.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="MuseumArtNames" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\MuseumArtNames.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
<data name="MuseumDinoNames" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\MuseumDinoNames.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
<data name="MuseumFishNames" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\MuseumFishNames.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
<data name="MuseumInsectNames" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\text\MuseumInsectNames.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
</root>

View File

@ -5651,4 +5651,6 @@ Presents
New Furniture (update)
----------------------
3726 Magic Lamp
372a Ikada Trophy
372a Ikada Trophy
7ffe Nothing

View File

@ -276,6 +276,32 @@ private void InitializeComponent()
this.label33 = new System.Windows.Forms.Label();
this.CB_MainRoomSize = new System.Windows.Forms.ComboBox();
this.label32 = new System.Windows.Forms.Label();
this.tabPage14 = new System.Windows.Forms.TabPage();
this.label56 = new System.Windows.Forms.Label();
this.NUD_LetterNamePos = new System.Windows.Forms.NumericUpDown();
this.CB_LetterSender = new System.Windows.Forms.ComboBox();
this.label55 = new System.Windows.Forms.Label();
this.CB_LetterType = new System.Windows.Forms.ComboBox();
this.label54 = new System.Windows.Forms.Label();
this.CB_LetterItem = new System.Windows.Forms.ComboBox();
this.label53 = new System.Windows.Forms.Label();
this.label52 = new System.Windows.Forms.Label();
this.CB_LetterFlag = new System.Windows.Forms.ComboBox();
this.label47 = new System.Windows.Forms.Label();
this.CB_LetterPaper = new System.Windows.Forms.ComboBox();
this.label46 = new System.Windows.Forms.Label();
this.CB_LetterDestination = new System.Windows.Forms.ComboBox();
this.groupBox25 = new System.Windows.Forms.GroupBox();
this.label51 = new System.Windows.Forms.Label();
this.label50 = new System.Windows.Forms.Label();
this.label49 = new System.Windows.Forms.Label();
this.label48 = new System.Windows.Forms.Label();
this.groupBox24 = new System.Windows.Forms.GroupBox();
this.TB_LetterContent = new System.Windows.Forms.TextBox();
this.TB_LetterHeader = new System.Windows.Forms.TextBox();
this.TB_LetterEnd = new System.Windows.Forms.TextBox();
this.label45 = new System.Windows.Forms.Label();
this.NUD_LetterValue = new System.Windows.Forms.NumericUpDown();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.BTN_ImportVillager = new System.Windows.Forms.Button();
this.BTN_ExportVillager = new System.Windows.Forms.Button();
@ -500,6 +526,7 @@ private void InitializeComponent()
this.CB_Item = new System.Windows.Forms.ComboBox();
this.Tool_Info = new System.Windows.Forms.ToolTip(this.components);
this.CB_Flag = new System.Windows.Forms.ComboBox();
this.label57 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.PB_JPEG0)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
@ -641,6 +668,11 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.PB_Island)).BeginInit();
this.tabPage13.SuspendLayout();
this.groupBox23.SuspendLayout();
this.tabPage14.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUD_LetterNamePos)).BeginInit();
this.groupBox25.SuspendLayout();
this.groupBox24.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUD_LetterValue)).BeginInit();
this.tabPage4.SuspendLayout();
this.groupBox11.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.PB_Villager10)).BeginInit();
@ -1548,6 +1580,7 @@ private void InitializeComponent()
this.tabControl2.Controls.Add(this.tabPage10);
this.tabControl2.Controls.Add(this.tabPage6);
this.tabControl2.Controls.Add(this.tabPage13);
this.tabControl2.Controls.Add(this.tabPage14);
this.tabControl2.Location = new System.Drawing.Point(6, 6);
this.tabControl2.Name = "tabControl2";
this.tabControl2.SelectedIndex = 0;
@ -3932,6 +3965,393 @@ private void InitializeComponent()
this.label32.TabIndex = 1;
this.label32.Text = "Main Room";
//
// tabPage14
//
this.tabPage14.Controls.Add(this.label57);
this.tabPage14.Controls.Add(this.label56);
this.tabPage14.Controls.Add(this.NUD_LetterNamePos);
this.tabPage14.Controls.Add(this.CB_LetterSender);
this.tabPage14.Controls.Add(this.label55);
this.tabPage14.Controls.Add(this.CB_LetterType);
this.tabPage14.Controls.Add(this.label54);
this.tabPage14.Controls.Add(this.CB_LetterItem);
this.tabPage14.Controls.Add(this.label53);
this.tabPage14.Controls.Add(this.label52);
this.tabPage14.Controls.Add(this.CB_LetterFlag);
this.tabPage14.Controls.Add(this.label47);
this.tabPage14.Controls.Add(this.CB_LetterPaper);
this.tabPage14.Controls.Add(this.label46);
this.tabPage14.Controls.Add(this.CB_LetterDestination);
this.tabPage14.Controls.Add(this.groupBox25);
this.tabPage14.Controls.Add(this.groupBox24);
this.tabPage14.Controls.Add(this.label45);
this.tabPage14.Controls.Add(this.NUD_LetterValue);
this.tabPage14.Location = new System.Drawing.Point(4, 22);
this.tabPage14.Name = "tabPage14";
this.tabPage14.Padding = new System.Windows.Forms.Padding(3);
this.tabPage14.Size = new System.Drawing.Size(632, 525);
this.tabPage14.TabIndex = 3;
this.tabPage14.Text = "Letters";
this.tabPage14.UseVisualStyleBackColor = true;
//
// label56
//
this.label56.AutoSize = true;
this.label56.Location = new System.Drawing.Point(159, 34);
this.label56.Name = "label56";
this.label56.Size = new System.Drawing.Size(290, 13);
this.label56.TabIndex = 22;
this.label56.Text = "Line of the position of the receiver name in the letter header:";
//
// NUD_LetterNamePos
//
this.NUD_LetterNamePos.Location = new System.Drawing.Point(455, 32);
this.NUD_LetterNamePos.Name = "NUD_LetterNamePos";
this.NUD_LetterNamePos.Size = new System.Drawing.Size(41, 20);
this.NUD_LetterNamePos.TabIndex = 21;
//
// CB_LetterSender
//
this.CB_LetterSender.FormattingEnabled = true;
this.CB_LetterSender.Items.AddRange(new object[] {
"Villager(?)",
"From your mom",
"From your dad",
"From Mom and Dad",
"From Isabelle",
"From Isabelle",
"HH Showcase",
"From unknow sender",
"From Nintendo Staff",
"From HHA",
"From the museum",
"From the post office",
"From Jack",
"From Redd\'s Gallery",
"From Gulliver",
"From Snowboy",
"Certificate",
"Certificate",
"From Katie",
"From K.K. Slider",
"From Wishy The Star",
"From Timmy Nook",
"From Tommy Nook",
"From the Nooklings",
"From Timothy Nook",
"From Blanca",
"From Jingle",
"(No one)",
"From Snowtyke",
"From Isabelle",
"From Nintendo",
"From Lottie",
"Campground",
"From Nook\'s Homes",
"From Leif"});
this.CB_LetterSender.Location = new System.Drawing.Point(404, 425);
this.CB_LetterSender.Name = "CB_LetterSender";
this.CB_LetterSender.Size = new System.Drawing.Size(121, 21);
this.CB_LetterSender.TabIndex = 20;
//
// label55
//
this.label55.AutoSize = true;
this.label55.Location = new System.Drawing.Point(401, 409);
this.label55.Name = "label55";
this.label55.Size = new System.Drawing.Size(44, 13);
this.label55.TabIndex = 19;
this.label55.Text = "Sender:";
//
// CB_LetterType
//
this.CB_LetterType.FormattingEnabled = true;
this.CB_LetterType.Items.AddRange(new object[] {
"Letter",
"Box"});
this.CB_LetterType.Location = new System.Drawing.Point(99, 425);
this.CB_LetterType.Name = "CB_LetterType";
this.CB_LetterType.Size = new System.Drawing.Size(121, 21);
this.CB_LetterType.TabIndex = 18;
//
// label54
//
this.label54.AutoSize = true;
this.label54.Location = new System.Drawing.Point(96, 409);
this.label54.Name = "label54";
this.label54.Size = new System.Drawing.Size(64, 13);
this.label54.TabIndex = 17;
this.label54.Text = "Letter Type:";
//
// CB_LetterItem
//
this.CB_LetterItem.FormattingEnabled = true;
this.CB_LetterItem.Location = new System.Drawing.Point(404, 249);
this.CB_LetterItem.Name = "CB_LetterItem";
this.CB_LetterItem.Size = new System.Drawing.Size(121, 21);
this.CB_LetterItem.TabIndex = 16;
//
// label53
//
this.label53.AutoSize = true;
this.label53.Location = new System.Drawing.Point(408, 233);
this.label53.Name = "label53";
this.label53.Size = new System.Drawing.Size(30, 13);
this.label53.TabIndex = 15;
this.label53.Text = "Item:";
//
// label52
//
this.label52.AutoSize = true;
this.label52.Location = new System.Drawing.Point(96, 104);
this.label52.Name = "label52";
this.label52.Size = new System.Drawing.Size(30, 13);
this.label52.TabIndex = 14;
this.label52.Text = "Flag:";
//
// CB_LetterFlag
//
this.CB_LetterFlag.FormattingEnabled = true;
this.CB_LetterFlag.Items.AddRange(new object[] {
"Not open",
"Has been read",
"Throw Away only",
"Rewrite possible",
"Rewrite possible (blue)",
"?"});
this.CB_LetterFlag.Location = new System.Drawing.Point(99, 120);
this.CB_LetterFlag.Name = "CB_LetterFlag";
this.CB_LetterFlag.Size = new System.Drawing.Size(121, 21);
this.CB_LetterFlag.TabIndex = 13;
//
// label47
//
this.label47.AutoSize = true;
this.label47.Location = new System.Drawing.Point(401, 104);
this.label47.Name = "label47";
this.label47.Size = new System.Drawing.Size(64, 13);
this.label47.TabIndex = 12;
this.label47.Text = "Paper used:";
//
// CB_LetterPaper
//
this.CB_LetterPaper.FormattingEnabled = true;
this.CB_LetterPaper.Items.AddRange(new object[] {
"Butterfly Paper",
"Airmail Paper",
"New Year\'s Cards",
"Lacy Paper",
"Cloudy Paper",
"Petal Paper",
"Snowy Paper",
"Maple-leaf Paper",
"Lined Paper",
"Notebook Paper",
"Flowery Paper",
"Polka-dot Paper",
"Weathered Paper",
"Ribbon Paper",
"Sparkly Paper",
"Vine Paper",
"Formal Paper",
"Snowman Paper",
"Card Paper",
"Leopard Paper",
"Cow Paper",
"Camouflage Paper",
"Hamburger Paper",
"Piano Paper",
"Nook Paper",
"Birthday Card",
"Four-leaf Paper",
"Academy Paper",
"Lovely Paper",
"Rainbow Paper",
"Hieroglyph Paper",
"Lotus Paper",
"Tile Paper",
"Mosaic Paper",
"Elegant Paper",
"Town-view Paper",
"Imperial Paper",
"Ocean Paper",
"Industrial Paper",
"Fireworks Paper",
"Floral Paper",
"Mushroom Paper",
"Star Paper",
"Composer Paper",
"Bathtub Paper",
"SMB3 Paper",
"Cool Paper",
"Forest Paper",
"Bubble Paper",
"Buttercup Paper",
"Tartan Paper",
"Plaid Paper",
"Lemon-lime Paper",
"Crater Paper",
"Bejeweled Paper",
"Geometric Paper",
"Southwest Paper",
"Night-sky Paper",
"Chic Paper",
"Goldfish Paper",
"Halloween Paper",
"Gallery Paper",
"Museum Paper",
"Post-office Paper",
"Campground Paper ",
"Nook\'s Homes Paper ",
"Nintendo Paper ",
"Melody Paper"});
this.CB_LetterPaper.Location = new System.Drawing.Point(404, 120);
this.CB_LetterPaper.Name = "CB_LetterPaper";
this.CB_LetterPaper.Size = new System.Drawing.Size(121, 21);
this.CB_LetterPaper.TabIndex = 11;
//
// label46
//
this.label46.AutoSize = true;
this.label46.Location = new System.Drawing.Point(96, 233);
this.label46.Name = "label46";
this.label46.Size = new System.Drawing.Size(23, 13);
this.label46.TabIndex = 10;
this.label46.Text = "To:";
//
// CB_LetterDestination
//
this.CB_LetterDestination.FormattingEnabled = true;
this.CB_LetterDestination.Items.AddRange(new object[] {
"No one",
"Player 1",
"Player 2",
"Player 3",
"Player 4"});
this.CB_LetterDestination.Location = new System.Drawing.Point(99, 249);
this.CB_LetterDestination.Name = "CB_LetterDestination";
this.CB_LetterDestination.Size = new System.Drawing.Size(121, 21);
this.CB_LetterDestination.TabIndex = 9;
//
// groupBox25
//
this.groupBox25.Controls.Add(this.label51);
this.groupBox25.Controls.Add(this.label50);
this.groupBox25.Controls.Add(this.label49);
this.groupBox25.Controls.Add(this.label48);
this.groupBox25.Location = new System.Drawing.Point(226, 294);
this.groupBox25.Name = "groupBox25";
this.groupBox25.Size = new System.Drawing.Size(172, 100);
this.groupBox25.TabIndex = 8;
this.groupBox25.TabStop = false;
this.groupBox25.Text = "Letter Data";
//
// label51
//
this.label51.AutoSize = true;
this.label51.Location = new System.Drawing.Point(6, 76);
this.label51.Name = "label51";
this.label51.Size = new System.Drawing.Size(58, 13);
this.label51.TabIndex = 3;
this.label51.Text = "Town SID:";
//
// label50
//
this.label50.AutoSize = true;
this.label50.Location = new System.Drawing.Point(6, 63);
this.label50.Name = "label50";
this.label50.Size = new System.Drawing.Size(37, 13);
this.label50.TabIndex = 2;
this.label50.Text = "Town:";
//
// label49
//
this.label49.AutoSize = true;
this.label49.Location = new System.Drawing.Point(6, 34);
this.label49.Name = "label49";
this.label49.Size = new System.Drawing.Size(74, 13);
this.label49.TabIndex = 1;
this.label49.Text = "Receiver SID:";
//
// label48
//
this.label48.AutoSize = true;
this.label48.Location = new System.Drawing.Point(6, 20);
this.label48.Name = "label48";
this.label48.Size = new System.Drawing.Size(53, 13);
this.label48.TabIndex = 0;
this.label48.Text = "Receiver:";
//
// groupBox24
//
this.groupBox24.Controls.Add(this.TB_LetterContent);
this.groupBox24.Controls.Add(this.TB_LetterHeader);
this.groupBox24.Controls.Add(this.TB_LetterEnd);
this.groupBox24.Location = new System.Drawing.Point(226, 104);
this.groupBox24.Name = "groupBox24";
this.groupBox24.Size = new System.Drawing.Size(172, 166);
this.groupBox24.TabIndex = 7;
this.groupBox24.TabStop = false;
this.groupBox24.Text = "Letter Content";
//
// TB_LetterContent
//
this.TB_LetterContent.Location = new System.Drawing.Point(9, 43);
this.TB_LetterContent.MaxLength = 192;
this.TB_LetterContent.Multiline = true;
this.TB_LetterContent.Name = "TB_LetterContent";
this.TB_LetterContent.Size = new System.Drawing.Size(150, 84);
this.TB_LetterContent.TabIndex = 0;
this.TB_LetterContent.TextChanged += new System.EventHandler(this.TB_LetterContent_TextChanged);
//
// TB_LetterHeader
//
this.TB_LetterHeader.Location = new System.Drawing.Point(9, 17);
this.TB_LetterHeader.MaxLength = 25;
this.TB_LetterHeader.Name = "TB_LetterHeader";
this.TB_LetterHeader.Size = new System.Drawing.Size(150, 20);
this.TB_LetterHeader.TabIndex = 2;
//
// TB_LetterEnd
//
this.TB_LetterEnd.Location = new System.Drawing.Point(9, 133);
this.TB_LetterEnd.MaxLength = 32;
this.TB_LetterEnd.Name = "TB_LetterEnd";
this.TB_LetterEnd.Size = new System.Drawing.Size(150, 20);
this.TB_LetterEnd.TabIndex = 3;
//
// label45
//
this.label45.AutoSize = true;
this.label45.Location = new System.Drawing.Point(550, 10);
this.label45.Name = "label45";
this.label45.Size = new System.Drawing.Size(38, 13);
this.label45.TabIndex = 4;
this.label45.Text = "Letter°";
//
// NUD_LetterValue
//
this.NUD_LetterValue.Location = new System.Drawing.Point(590, 6);
this.NUD_LetterValue.Maximum = new decimal(new int[] {
10,
0,
0,
0});
this.NUD_LetterValue.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NUD_LetterValue.Name = "NUD_LetterValue";
this.NUD_LetterValue.Size = new System.Drawing.Size(36, 20);
this.NUD_LetterValue.TabIndex = 1;
this.NUD_LetterValue.Value = new decimal(new int[] {
1,
0,
0,
0});
this.NUD_LetterValue.ValueChanged += new System.EventHandler(this.NUD_LetterValue_ValueChanged);
//
// tabPage4
//
this.tabPage4.Controls.Add(this.BTN_ImportVillager);
@ -6312,21 +6732,21 @@ private void InitializeComponent()
// openToolStripMenuItem
//
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
this.openToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.openToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.openToolStripMenuItem.Text = "Open";
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
//
// saveToolStripMenuItem
//
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.saveToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.saveToolStripMenuItem.Text = "Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
//
// saveAsToolStripMenuItem
//
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.saveAsToolStripMenuItem.Text = "Save As";
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
//
@ -6386,6 +6806,14 @@ private void InitializeComponent()
this.CB_Flag.TabIndex = 17;
this.CB_Flag.SelectedIndexChanged += new System.EventHandler(this.CB_Flag_SelectedIndexChanged);
//
// label57
//
this.label57.AutoSize = true;
this.label57.Location = new System.Drawing.Point(265, 69);
this.label57.Name = "label57";
this.label57.Size = new System.Drawing.Size(0, 13);
this.label57.TabIndex = 23;
//
// Garden
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -6559,6 +6987,14 @@ private void InitializeComponent()
this.tabPage13.PerformLayout();
this.groupBox23.ResumeLayout(false);
this.groupBox23.PerformLayout();
this.tabPage14.ResumeLayout(false);
this.tabPage14.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUD_LetterNamePos)).EndInit();
this.groupBox25.ResumeLayout(false);
this.groupBox25.PerformLayout();
this.groupBox24.ResumeLayout(false);
this.groupBox24.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUD_LetterValue)).EndInit();
this.tabPage4.ResumeLayout(false);
this.groupBox11.ResumeLayout(false);
this.groupBox11.PerformLayout();
@ -7169,5 +7605,32 @@ private void InitializeComponent()
private System.Windows.Forms.DataGridView dataGridView4;
private System.Windows.Forms.DataGridView dataGridView5;
private System.Windows.Forms.DataGridView dataGridView3;
private System.Windows.Forms.TabPage tabPage14;
private System.Windows.Forms.TextBox TB_LetterContent;
private System.Windows.Forms.NumericUpDown NUD_LetterValue;
private System.Windows.Forms.TextBox TB_LetterEnd;
private System.Windows.Forms.TextBox TB_LetterHeader;
private System.Windows.Forms.Label label45;
private System.Windows.Forms.GroupBox groupBox25;
private System.Windows.Forms.Label label51;
private System.Windows.Forms.Label label50;
private System.Windows.Forms.Label label49;
private System.Windows.Forms.Label label48;
private System.Windows.Forms.GroupBox groupBox24;
private System.Windows.Forms.ComboBox CB_LetterDestination;
private System.Windows.Forms.Label label46;
private System.Windows.Forms.Label label47;
private System.Windows.Forms.ComboBox CB_LetterPaper;
private System.Windows.Forms.ComboBox CB_LetterItem;
private System.Windows.Forms.Label label53;
private System.Windows.Forms.Label label52;
private System.Windows.Forms.ComboBox CB_LetterFlag;
private System.Windows.Forms.ComboBox CB_LetterType;
private System.Windows.Forms.Label label54;
private System.Windows.Forms.ComboBox CB_LetterSender;
private System.Windows.Forms.Label label55;
private System.Windows.Forms.Label label56;
private System.Windows.Forms.NumericUpDown NUD_LetterNamePos;
private System.Windows.Forms.Label label57;
}
}

View File

@ -23,7 +23,6 @@ public partial class Garden : Form
private Player[] Players;
private PlayerExterior[] PlayersExterior;
private PlayerLetter[] PlayersLetter;
private Building[] Buildings;
private MuseumContribution[] MuseumContributionsFossil;
private MuseumContribution[] MuseumContributionsArt;
@ -36,6 +35,7 @@ public partial class Garden : Form
private MuseumContributor[] MuseumContributorsInsect;
private Villager[] Villagers;
private Item[] TownItems, IslandItems;
public static Garden Instance;
#region badgepict
Image[] BadgePCH = { Properties.Resources.empty, Properties.Resources.PCH_1, Properties.Resources.PCH_2, Properties.Resources.PCH_3 };
@ -105,6 +105,7 @@ public Garden()
CB_WantedBadge.SelectedIndex = 0;
DisableControl();
loaded = false;
Instance = this;
}
private void DisableControl()
@ -142,6 +143,52 @@ private void EnableControl()
CB_Flag.SelectedIndex = 0;
}
private void CleanLetter()
{
NUD_LetterNamePos.Value = 0;
CB_LetterFlag.SelectedIndex = -1;
CB_LetterDestination.SelectedIndex = -1;
CB_LetterType.SelectedIndex = -1;
CB_LetterPaper.SelectedIndex = -1;
CB_LetterItem.SelectedIndex = -1;
CB_LetterSender.SelectedIndex = -1;
TB_LetterHeader.Text = "";
TB_LetterContent.Text = "";
TB_LetterEnd.Text = "";
label48.Text = "Receiver:";
label49.Text = "Receiver SID:";
label50.Text = "Town:";
label51.Text = "Town SID:";
}
private void LockLetterContent()
{
NUD_LetterNamePos.Enabled = false;
CB_LetterFlag.Enabled = false;
CB_LetterDestination.Enabled = false;
CB_LetterType.Enabled = false;
CB_LetterPaper.Enabled = false;
CB_LetterItem.Enabled = false;
CB_LetterSender.Enabled = false;
groupBox24.Enabled = false;
groupBox25.Enabled = false;
label57.Text = "No letter at slot " + (NUD_LetterNamePos.Value + 1);
}
private void UnlockLetterContent()
{
NUD_LetterNamePos.Enabled = true;
CB_LetterFlag.Enabled = true;
CB_LetterDestination.Enabled = true;
CB_LetterType.Enabled = true;
CB_LetterPaper.Enabled = true;
CB_LetterItem.Enabled = true;
CB_LetterSender.Enabled = true;
groupBox24.Enabled = true;
groupBox25.Enabled = true;
label57.Text = "";
}
uint GetDecryptedValue(uint player, int offset)
{
return (Util.DecryptACNLMoney(BitConverter.ToUInt64(Players[player].Data, offset)));
@ -288,13 +335,15 @@ class Player
public int RegMonth;
public uint RegYear;
public string HomeTown;
int LetterValue = (int)Instance.NUD_LetterValue.Value - 1;
public Image JPEG;
public byte[] Badges;
public byte[] Letters;
public Item[] Pockets = new Item[16];
public Item[] IslandBox = new Item[5 * 8];
public Item[] Dressers = new Item[5 * 36];
public PlayerLetter[] PlayersLetter = new PlayerLetter[1];
public Player(byte[] data)
{
@ -309,7 +358,7 @@ public Player(byte[] data)
Tan = Data[8];
U9 = Data[9];
Name = Encoding.Unicode.GetString(Data.Skip(0x55A8).Take(0x12).ToArray()).Trim('\0');
Comment = Encoding.Unicode.GetString(Data.Skip(0x6B38).Take(0x50).ToArray()).Trim('\0');
Comment = Encoding.Unicode.GetString(Data.Skip(0x6B38).Take(0x50).ToArray());
Gender = Data[0x55BA];
@ -327,8 +376,6 @@ public Player(byte[] data)
Badges = Data.Skip(0x573C - 0xA0).Take(24).ToArray();
Letters = Data.Skip(0x70A8 - 0xA0).Take(0x1900).ToArray();
for (int i = 0; i < Pockets.Length; i++)
Pockets[i] = new Item(Data.Skip(0x6BD0 + i * 4).Take(4).ToArray());
@ -337,6 +384,9 @@ public Player(byte[] data)
for (int i = 0; i < Dressers.Length; i++)
Dressers[i] = new Item(Data.Skip(0x92F0 + i * 4).Take(4).ToArray());
for (int i = 0; i < PlayersLetter.Length; i++)
PlayersLetter[i] = new PlayerLetter(Data.Skip(0x7008 + 0x280 * LetterValue).Take(0x280).ToArray());
}
public byte[] Write()
{
@ -358,7 +408,7 @@ public byte[] Write()
Data[0x55D9] = (byte)RegDay;
Data[0x55D8] = (byte)RegMonth;
Data[0x55D6] = (byte)RegYear;
Array.Copy(BitConverter.GetBytes(RegYear), 0, Data, 0x55D6, 2);
Array.Copy(Encoding.Unicode.GetBytes(HomeTown.PadRight(9, '\0')), 0, Data, 0x55BE, 0x12);
@ -373,6 +423,9 @@ public byte[] Write()
for (int i = 0; i < Dressers.Length; i++)
Array.Copy(Dressers[i].Write(), 0, Data, 0x92F0 + i * 4, 4);
for (int i = 0; i < PlayersLetter.Length; i++)
Array.Copy(PlayersLetter[i].Write(), 0, Data, 0x7008 + (0x280 * LetterValue), 0x280);
return Data;
}
@ -384,8 +437,6 @@ public byte[] getPlayerBytes()
class PlayerLetter
{
public byte[] Data;
private uint U32;
public int PlayerSID;
public string PlayerName;
public int TownSID;
@ -397,6 +448,7 @@ class PlayerLetter
public int NamePosition;
public int PaperID;
public int Flag;
public int SenderID;
public int LetterType;
public uint Item;
@ -404,26 +456,36 @@ public PlayerLetter(byte[] data)
{
Data = data;
U32 = BitConverter.ToUInt32(data, 0);
PlayerSID = BitConverter.ToUInt16(data, 0);
PlayerName = Encoding.Unicode.GetString(Data.Skip(0x2).Take(0x12).ToArray()).Trim('\0');
PlayerSID = BitConverter.ToUInt16(data, 0x16);
TownSID = BitConverter.ToUInt16(data, 0x16);
TownName = Encoding.Unicode.GetString(Data.Skip(0x18).Take(0x12).ToArray()).Trim('\0');
PlayerID = Data[0x30];
FirstWords = Encoding.Unicode.GetString(Data.Skip(0x68).Take(0x32).ToArray()).Trim('\0');
LetterContent = Encoding.Unicode.GetString(Data.Skip(0xAA).Take(0x140).ToArray()).Trim('\0');
LetterEnd = Encoding.Unicode.GetString(Data.Skip(0x22C).Take(0x40).ToArray()).Trim('\0');
FirstWords = Encoding.Unicode.GetString(Data.Skip(0x68).Take(0x32).ToArray());
LetterContent = Encoding.Unicode.GetString(Data.Skip(0xAA).Take(0x192).ToArray());
LetterEnd = Encoding.Unicode.GetString(Data.Skip(0x22C).Take(0x40).ToArray());
NamePosition = Data[0x26E];
PaperID = Data[0x26F];
Flag = Data[0x270];
Item = BitConverter.ToUInt32(data, 0x272);
SenderID = Data[0x271];
LetterType = Data[0x272];
Item = BitConverter.ToUInt16(data, 0x274);
}
public byte[] Write()
{
Array.Copy(BitConverter.GetBytes(U32), 0, Data, 0, 4);
Array.Copy(BitConverter.GetBytes(PlayerSID), 0, Data, 0x0, 2);
Array.Copy(Encoding.Unicode.GetBytes(PlayerName.PadRight(9, '\0')), 0, Data, 0x2, 0x12);
Data[0x30] = (byte)PlayerID;
Array.Copy(Encoding.Unicode.GetBytes(FirstWords.PadRight(25, '\0')), 0, Data, 0x68, 0x32);
Array.Copy(Encoding.Unicode.GetBytes(LetterContent.PadRight(192, '\0')), 0, Data, 0xAA, 0x180);
Array.Copy(Encoding.Unicode.GetBytes(LetterEnd.PadRight(32, '\0')), 0, Data, 0x22C, 0x40);
Data[0x26E] = (byte)NamePosition;
Data[0x26F] = (byte)PaperID;
Data[0x270] = (byte)Flag;
Data[0x272] = (byte)LetterType;
Array.Copy(BitConverter.GetBytes(Item), 0, Data, 0x274, 4);
return Data;
}
@ -601,9 +663,9 @@ public Villager(byte[] data, int offset, int size)
ID = BitConverter.ToInt16(Data, 0);
Type = Data[2];
Boxed = (Data[0x24E4] & 1) == 1;
CatchPhrase = Encoding.Unicode.GetString(Data.Skip(0x24C6).Take(22).ToArray()).Trim('\0');
HomeTown1 = Encoding.Unicode.GetString(Data.Skip(0x24F0).Take(0x12).ToArray()).Trim('\0');
HomeTown2 = Encoding.Unicode.GetString(Data.Skip(0x2504).Take(0x12).ToArray()).Trim('\0');
CatchPhrase = Encoding.Unicode.GetString(Data.Skip(0x24C6).Take(22).ToArray());
HomeTown1 = Encoding.Unicode.GetString(Data.Skip(0x24F0).Take(0x12).ToArray());
HomeTown2 = Encoding.Unicode.GetString(Data.Skip(0x2504).Take(0x12).ToArray());
}
public byte[] Write()
{
@ -867,9 +929,9 @@ private void loadPlayer(int i)
PB_Dresser2.Image = getItemPic(16, 5, Players[i].Dressers.Skip(Players[i].Dressers.Length / 2).ToArray());
PB_Island.Image = getItemPic(16, 5, Players[i].IslandBox);
TB_Name.Text = Players[i].Name;
TB_Comment.Text = Players[i].Comment;
loadLetter(i);
for (int j = 0; j < PlayerBadges.Length; j++)
PlayerBadges[j].SelectedIndex = Players[i].Badges[j];
@ -938,8 +1000,120 @@ private void loadPlayer(int i)
NUD_Badge22.Value = GetDecryptedValue((uint)i, 0x572C - 0xA0);
NUD_Badge23.Value = GetDecryptedValue((uint)i, 0x5734 - 0xA0);
}
private void loadLetter(int i)
{
if (Players[i].PlayersLetter[0].PlayerSID == 0 && Players[i].PlayersLetter[0].TownSID == 0)
{
CleanLetter();
LockLetterContent();
return;
}
UnlockLetterContent();
int flag = Players[i].PlayersLetter[0].Flag;
int type = Players[i].PlayersLetter[0].LetterType;
TB_LetterContent.Text = Players[i].PlayersLetter[0].LetterContent.Replace("\n", Environment.NewLine);
TB_LetterHeader.Text = Players[i].PlayersLetter[0].FirstWords;
TB_LetterEnd.Text = Players[i].PlayersLetter[0].LetterEnd;
NUD_LetterNamePos.Value = Players[i].PlayersLetter[0].NamePosition;
label48.Text = "Receiver: " + Players[i].PlayersLetter[0].PlayerName;
label49.Text = "Receiver SID: 0x" + Players[i].PlayersLetter[0].PlayerSID.ToString("X");
label50.Text = "Town: " + Players[i].PlayersLetter[0].TownName;
label51.Text = "Town: 0x" + Players[i].PlayersLetter[0].TownSID.ToString("X");
CB_LetterDestination.SelectedIndex = Players[i].PlayersLetter[0].PlayerID;
CB_LetterItem.SelectedValue = (int)Players[i].PlayersLetter[0].Item;
CB_LetterPaper.SelectedIndex = Players[i].PlayersLetter[0].PaperID;
CB_LetterSender.SelectedIndex = Players[i].PlayersLetter[0].SenderID;
if (flag >= 0x4 && flag <= 0x7 || flag == 0x00)
{
CB_LetterFlag.SelectedIndex = 2;
}
else if (flag == 0x1 || flag == 0x9)
{
CB_LetterFlag.SelectedIndex = 0;
}
else if (flag == 0xA || flag == 0x2)
{
CB_LetterFlag.SelectedIndex = 1;
}
else if (flag == 0x3)
{
CB_LetterFlag.SelectedIndex = 3;
}
else if (flag == 0xB)
{
CB_LetterFlag.SelectedIndex = 4;
}
else if (flag <= 0xC)
{
CB_LetterFlag.SelectedIndex = 5;
}
if (type >= 0x00 && type <= 0x7F)
{
CB_LetterType.SelectedIndex = 0;
}
else if (type >= 0x80 && type <= 0xFF)
{
CB_LetterType.SelectedIndex = 1;
}
}
private void saveLetter(int i)
{
if (groupBox24.Enabled == false)
return;
int a = Int32.Parse(CB_LetterItem.SelectedValue.ToString());
Players[i].PlayersLetter[0].FirstWords = TB_LetterHeader.Text;
TB_LetterContent.Text = TB_LetterContent.Text.Replace("\r\n", "\n");
Players[i].PlayersLetter[0].LetterContent = TB_LetterContent.Text;
Players[i].PlayersLetter[0].LetterEnd = TB_LetterEnd.Text;
Players[i].PlayersLetter[0].NamePosition = (byte)NUD_LetterNamePos.Value;
Players[i].PlayersLetter[0].PlayerID = (byte)CB_LetterDestination.SelectedIndex;
Players[i].PlayersLetter[0].Item = (uint)a;
Players[i].PlayersLetter[0].PaperID = (byte)CB_LetterPaper.SelectedIndex;
Players[i].PlayersLetter[0].SenderID = (byte)CB_LetterSender.SelectedIndex;
if (CB_LetterFlag.SelectedIndex == 0)
{
Players[i].PlayersLetter[0].Flag = 9;
}
else if (CB_LetterFlag.SelectedIndex == 1)
{
Players[i].PlayersLetter[0].Flag = 0xA;
}
else if (CB_LetterFlag.SelectedIndex == 2)
{
Players[i].PlayersLetter[0].Flag = 0x4;
}
else if (CB_LetterFlag.SelectedIndex == 3)
{
Players[i].PlayersLetter[0].Flag = 3;
}
else if (CB_LetterFlag.SelectedIndex == 4)
{
Players[i].PlayersLetter[0].Flag = 0xB;
}
if (CB_LetterType.SelectedIndex == 0)
{
Players[i].PlayersLetter[0].LetterType = 0;
}
else if (CB_LetterType.SelectedIndex == 1)
{
Players[i].PlayersLetter[0].LetterType = 0x80;
}
}
private void savePlayer(int i)
{
saveLetter(i);
Players[i].Name = TB_Name.Text;
Players[i].Comment = TB_Comment.Text;
@ -1216,6 +1390,7 @@ private void checkPlayer()
}
}
private void loadVillager(int i)
{
Villagers[i] = new Villager(Save.Data, 0x0292D0 + 0x2518 * i, 0x2518);
@ -1945,27 +2120,21 @@ private void populateMuseumFossilList()
dataGridView2.Rows.Add(67);
dataGridView2.CancelEdit();
try
string file = Properties.Resources.MuseumDinoNames;
string[] lines = ReadAllResourceLines(file);
for (int i = 0; i < lines.Length; i++)
{
string[] lines = File.ReadAllLines("MuseumDinoNames.txt");
for (int i = 0; i < lines.Length; i++)
{
dataGridView2.Rows[i].Cells[0].Value = lines[i].ToString();
}
for (int i = 0; i < 67; i++)
{
dataGridView2.Rows[i].Cells[1].Value = MuseumContributorsFossil[i].Plyr;
dataGridView2.Rows[i].Cells[2].Value = MuseumContributionsFossil[i].Day;
dataGridView2.Rows[i].Cells[3].Value = MuseumContributionsFossil[i].Mth;
dataGridView2.Rows[i].Cells[4].Value = MuseumContributionsFossil[i].Yrs;
}
dataGridView2.Rows[i].Cells[0].Value = lines[i].ToString();
}
catch
for (int i = 0; i < 67; i++)
{
MessageBox.Show("Unable to find MuseumDinoNames.txt");
Close();
dataGridView2.Rows[i].Cells[1].Value = MuseumContributorsFossil[i].Plyr;
dataGridView2.Rows[i].Cells[2].Value = MuseumContributionsFossil[i].Day;
dataGridView2.Rows[i].Cells[3].Value = MuseumContributionsFossil[i].Mth;
dataGridView2.Rows[i].Cells[4].Value = MuseumContributionsFossil[i].Yrs;
}
}
@ -2041,28 +2210,22 @@ private void populateMuseumFishList()
dataGridView5.Rows.Add(101);
dataGridView5.CancelEdit();
try
{
string[] lines = File.ReadAllLines("MuseumFishNames.txt");
string file = Properties.Resources.MuseumFishNames;
string[] lines = ReadAllResourceLines(file);
for (int i = 0; i < lines.Length; i++)
{
dataGridView5.Rows[i].Cells[0].Value = lines[i].ToString();
}
for (int i = 0; i < 101; i++)
{
dataGridView5.Rows[i].Cells[1].Value = MuseumContributorsFish[i].Plyr;
dataGridView5.Rows[i].Cells[2].Value = MuseumContributionsFish[i].Day;
dataGridView5.Rows[i].Cells[3].Value = MuseumContributionsFish[i].Mth;
dataGridView5.Rows[i].Cells[4].Value = MuseumContributionsFish[i].Yrs;
}
}
catch
for (int i = 0; i < lines.Length; i++)
{
MessageBox.Show("Unable to find MuseumFishNames.txt");
Close();
dataGridView5.Rows[i].Cells[0].Value = lines[i].ToString();
}
for (int i = 0; i < 101; i++)
{
dataGridView5.Rows[i].Cells[1].Value = MuseumContributorsFish[i].Plyr;
dataGridView5.Rows[i].Cells[2].Value = MuseumContributionsFish[i].Day;
dataGridView5.Rows[i].Cells[3].Value = MuseumContributionsFish[i].Mth;
dataGridView5.Rows[i].Cells[4].Value = MuseumContributionsFish[i].Yrs;
}
}
private void populateMuseumInsectList()
@ -2137,27 +2300,21 @@ private void populateMuseumInsectList()
dataGridView4.Rows.Add(72);
dataGridView4.CancelEdit();
try
string file = Properties.Resources.MuseumInsectNames;
string[] lines = ReadAllResourceLines(file);
for (int i = 0; i < lines.Length; i++)
{
string[] lines = File.ReadAllLines("MuseumInsectNames.txt");
for (int i = 0; i < lines.Length; i++)
{
dataGridView4.Rows[i].Cells[0].Value = lines[i].ToString();
}
for (int i = 0; i < 72; i++)
{
dataGridView4.Rows[i].Cells[1].Value = MuseumContributorsInsect[i].Plyr;
dataGridView4.Rows[i].Cells[2].Value = MuseumContributionsInsect[i].Day;
dataGridView4.Rows[i].Cells[3].Value = MuseumContributionsInsect[i].Mth;
dataGridView4.Rows[i].Cells[4].Value = MuseumContributionsInsect[i].Yrs;
}
dataGridView4.Rows[i].Cells[0].Value = lines[i].ToString();
}
catch
for (int i = 0; i < 72; i++)
{
MessageBox.Show("Unable to find MuseumInsectNames.txt");
Close();
dataGridView4.Rows[i].Cells[1].Value = MuseumContributorsInsect[i].Plyr;
dataGridView4.Rows[i].Cells[2].Value = MuseumContributionsInsect[i].Day;
dataGridView4.Rows[i].Cells[3].Value = MuseumContributionsInsect[i].Mth;
dataGridView4.Rows[i].Cells[4].Value = MuseumContributionsInsect[i].Yrs;
}
}
@ -2233,27 +2390,37 @@ private void populateMuseumArtList()
dataGridView3.Rows.Add(33);
dataGridView3.CancelEdit();
try
string file = Properties.Resources.MuseumArtNames;
string[] lines = ReadAllResourceLines(file);
for (int i = 0; i < lines.Length; i++)
{
string[] lines = File.ReadAllLines("MuseumArtNames.txt");
for (int i = 0; i < lines.Length; i++)
{
dataGridView3.Rows[i].Cells[0].Value = lines[i].ToString();
}
for (int i = 0; i < 33; i++)
{
dataGridView3.Rows[i].Cells[1].Value = MuseumContributorsArt[i].Plyr;
dataGridView3.Rows[i].Cells[2].Value = MuseumContributionsArt[i].Day;
dataGridView3.Rows[i].Cells[3].Value = MuseumContributionsArt[i].Mth;
dataGridView3.Rows[i].Cells[4].Value = MuseumContributionsArt[i].Yrs;
}
dataGridView3.Rows[i].Cells[0].Value = lines[i].ToString();
}
catch
for (int i = 0; i < 33; i++)
{
MessageBox.Show("Unable to find MuseumArtNames.txt");
Close();
dataGridView3.Rows[i].Cells[1].Value = MuseumContributorsArt[i].Plyr;
dataGridView3.Rows[i].Cells[2].Value = MuseumContributionsArt[i].Day;
dataGridView3.Rows[i].Cells[3].Value = MuseumContributionsArt[i].Mth;
dataGridView3.Rows[i].Cells[4].Value = MuseumContributionsArt[i].Yrs;
}
}
string[] ReadAllResourceLines(string resourceText)
{
using (StringReader reader = new StringReader(resourceText))
{
return EnumerateLines(reader).ToArray();
}
}
IEnumerable<string> EnumerateLines(TextReader reader)
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
@ -2433,6 +2600,9 @@ private void openToolStripMenuItem_Click(object sender, EventArgs e)
CB_Item.DisplayMember = "Text";
CB_Item.ValueMember = "Value";
CB_Item.DataSource = new BindingSource(Main.itemList, null);
CB_LetterItem.DisplayMember = "Text";
CB_LetterItem.ValueMember = "Value";
CB_LetterItem.DataSource = new BindingSource(Main.itemList, null);
TB_Flag1.KeyPress += EnterKey;
TB_Flag2.KeyPress += EnterKey;
@ -2534,7 +2704,6 @@ private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
File.Delete(Invisible.Text + ".bak");
}
File.Copy(Invisible.Text, Invisible.Text + ".bak");
Main.SaveData = saveData();
@ -3947,6 +4116,27 @@ private void NUD_TreeSize_ValueChanged(object sender, EventArgs e)
}
}
private void NUD_LetterValue_ValueChanged(object sender, EventArgs e)
{
savePlayer(currentPlayer);
for (int i = 0; i < Players.Length; i++)
Array.Copy(Players[i].Write(), 0, Save.Data, 0xA0 + i * 0xA480, 0xA480);
for (int i = 0; i < Players.Length; i++) // load
Players[i] = new Player(Save.Data.Skip(0xA0 + i * 0xA480).Take(0xA480).ToArray());
loadPlayer(currentPlayer);
}
private void TB_LetterContent_TextChanged(object sender, EventArgs e)
{
if (TB_LetterContent.Lines.Length > 6)
{
TB_LetterContent.Undo();
TB_LetterContent.ClearUndo();
MessageBox.Show("Only 6 lines allowed.");
}
}
private void BTN_DMPattern_Click(object sender, EventArgs e)
{
if (CB_Choice.SelectedIndex == 0)