Cleans up some code.

This commit is contained in:
Kamron Batman 2019-03-20 13:53:55 -07:00
parent 5c64989a29
commit 626b63d755
39 changed files with 11906 additions and 11534 deletions

View File

@ -7,7 +7,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
@ -81,7 +80,7 @@ namespace WC3_TOOL
}
if(sav3file.isjap == true)
if(sav3file.isjap)
region_lab.Text = "JAP";
else
region_lab.Text = "USA/EUR";
@ -91,7 +90,7 @@ namespace WC3_TOOL
language_box.SelectedIndex = sav3file.language-1;
game_box.SelectedIndex = sav3file.game;
if (sav3file.isjap == true && sav3file.language != 1)
if (sav3file.isjap && sav3file.language != 1)
{
DialogResult dialogResult = MessageBox.Show("Region/language autodetection inconsistency.\n\nIs this a japanesse savegame?", "Region Input", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
@ -127,7 +126,7 @@ namespace WC3_TOOL
}
void Inject_wc3_butClick(object sender, EventArgs e)
{
if(sav3file.has_WC == true)
if(sav3file.has_WC)
{
DialogResult dialogResult = MessageBox.Show("Savefile already has a WonderCard. Overwrite?", "WonderCard Injection", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.No)
@ -135,11 +134,11 @@ namespace WC3_TOOL
return;
}
}
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
string path = null;
int filesize = FileIO.load_file(ref wc3new, ref path, wc3filter);
if( (filesize == wc3.SIZE_WC3 && sav3file.isjap == false) || (filesize == wc3.SIZE_WC3_jap && sav3file.isjap == true) )
if( filesize == wc3.SIZE_WC3 && sav3file.isjap == false || filesize == wc3.SIZE_WC3_jap && sav3file.isjap )
{
sav3file.set_WC3(wc3new);
//custom_script.Checked = true;
@ -167,11 +166,11 @@ namespace WC3_TOOL
}
void Inject_wcnClick(object sender, EventArgs e)
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
string path = null;
int filesize = FileIO.load_file(ref wcnnew, ref path, wcnfilter);
if( (filesize == SAV3.WCN_SIZE && sav3file.isjap == false) || (filesize == SAV3.WCN_SIZE_jap && sav3file.isjap == true) )
if( filesize == SAV3.WCN_SIZE && sav3file.isjap == false || filesize == SAV3.WCN_SIZE_jap && sav3file.isjap )
{
sav3file.set_WCN(wcnnew);
//custom_script.Checked = true;
@ -208,7 +207,7 @@ namespace WC3_TOOL
}
void Inject_me3_butClick(object sender, EventArgs e)
{
if (sav3file.has_mystery_event == true || sav3file.game == 1)
if (sav3file.has_mystery_event || sav3file.game == 1)
{
if (sav3file.game == 1)
MessageBox.Show("Mystery Event was removed from non Japanesse Emerald.\n\tYou can still inject the data at your own risk.");
@ -394,7 +393,7 @@ namespace WC3_TOOL
else
sav3file.isjap = false;
if(sav3file.isjap == true)
if(sav3file.isjap)
region_lab.Text = "JAP";
else
region_lab.Text = "USA/EUR";
@ -458,9 +457,9 @@ namespace WC3_TOOL
switch (language_box.SelectedIndex)
{
case 0://JAP
if (jap_eon.Checked == true)
if (jap_eon.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -481,11 +480,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (jap_aurora.Checked == true)
else if (jap_aurora.Checked)
{
if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("JAP_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -499,11 +498,11 @@ namespace WC3_TOOL
}
}
else if (jap_mystic.Checked == true)
else if (jap_mystic.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("JAP_MYSTIC_E_FILE"));
sav3file.update_section_chk(4);
@ -518,7 +517,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("JAP_MYSTIC_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -532,11 +531,11 @@ namespace WC3_TOOL
}
}
else if (jap_old.Checked == true)
else if (jap_old.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("JAP_OLDMAP_E_FILE"));
sav3file.update_section_chk(4);
@ -552,9 +551,9 @@ namespace WC3_TOOL
}
break;
case 1://English
if (usa_eon_ecard.Checked == true)
if (usa_eon_ecard.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -569,9 +568,9 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (usa_eon_italy.Checked == true)
else if (usa_eon_italy.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -586,11 +585,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (usa_aurora.Checked == true)
else if (usa_aurora.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("USA_AURORA_E_FILE"));
sav3file.update_section_chk(4);
@ -605,7 +604,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("USA_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -619,11 +618,11 @@ namespace WC3_TOOL
}
}
else if (usa_mystic.Checked == true)
else if (usa_mystic.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("USA_MYSTIC_E_FILE"));
sav3file.update_section_chk(4);
@ -639,7 +638,7 @@ namespace WC3_TOOL
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("USA_MYSTIC_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -655,9 +654,9 @@ namespace WC3_TOOL
}
break;
case 2://French
if (eur_eon.Checked == true)
if (eur_eon.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -672,11 +671,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (eur_aurora.Checked == true)
else if (eur_aurora.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("FR_AURORA_E_FILE"));
sav3file.update_section_chk(4);
@ -691,7 +690,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("FR_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -707,9 +706,9 @@ namespace WC3_TOOL
}
break;
case 3://Italian
if (eur_eon.Checked == true)
if (eur_eon.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -724,11 +723,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (eur_aurora.Checked == true)
else if (eur_aurora.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("IT_AURORA_E_FILE"));
sav3file.update_section_chk(4);
@ -743,7 +742,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("IT_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -759,9 +758,9 @@ namespace WC3_TOOL
}
break;
case 4://German
if (eur_eon.Checked == true)
if (eur_eon.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -776,11 +775,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (eur_aurora.Checked == true)
else if (eur_aurora.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("DE_AURORA_E_FILE"));
sav3file.update_section_chk(4);
@ -795,7 +794,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("DE_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);
@ -813,9 +812,9 @@ namespace WC3_TOOL
case 5://Korean
break;
case 6://Spanish
if (eur_eon.Checked == true)
if (eur_eon.Checked)
{
if (sav3file.has_mystery_event == true)
if (sav3file.has_mystery_event)
{
if (game_box.SelectedIndex == 0) //RS
{
@ -830,11 +829,11 @@ namespace WC3_TOOL
MessageBox.Show("Please enable Mystery Event in the savefile.");
}
}
else if (eur_aurora.Checked == true)
else if (eur_aurora.Checked)
{
if (game_box.SelectedIndex == 1) //E
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("SP_AURORA_E_FILE"));
sav3file.update_section_chk(4);
@ -849,7 +848,7 @@ namespace WC3_TOOL
}
else if (game_box.SelectedIndex == 2) //FRLG
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
sav3file.set_WC3((byte[]) Tickets.GetObject("SP_AURORA_FRLG_FILE"));
sav3file.update_section_chk(4);

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,7 +7,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
@ -20,9 +19,9 @@ namespace WC3_TOOL
{
public string version()
{
var version = Assembly.GetExecutingAssembly().GetName().Version;
Version version = Assembly.GetExecutingAssembly().GetName().Version;
DateTime buildDate = new DateTime(2000, 1, 1).AddDays(version.Build).AddSeconds(version.Revision*2);
return "BUILD "+buildDate.Year.ToString()+buildDate.Month.ToString()+buildDate.Day.ToString()+"_"+buildDate.Hour.ToString()+buildDate.Minute.ToString()+buildDate.Second.ToString();
return $"BUILD {buildDate.Year}{buildDate.Month}{buildDate.Day}_{buildDate.Hour}{buildDate.Minute}{buildDate.Second}";
}
public MainScreen()
@ -122,10 +121,7 @@ namespace WC3_TOOL
export_ect_but.Enabled = true;
inject_ect_but.Enabled = true;
if(sav3file.isjap == true)
region_lab.Text = "JAP";
else
region_lab.Text = "USA/EUR";
region_lab.Text = sav3file.isjap ? "JAP" : "USA/EUR";
region_but.Enabled = true;
}
@ -143,7 +139,7 @@ namespace WC3_TOOL
language_box.SelectedIndex = sav3file.language-1;
game_box.SelectedIndex = sav3file.game;
if (sav3file.isjap == true && sav3file.language != 1)
if (sav3file.isjap && sav3file.language != 1)
{
DialogResult dialogResult = MessageBox.Show("Region/language autodetection inconsistency.\n\nIs this a japanese savegame?", "Region Input", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
@ -161,7 +157,6 @@ namespace WC3_TOOL
sav3file.updateOffsets();
}else if (filesize == -1){
;
}else{
MessageBox.Show("Invalid file.");
}
@ -179,7 +174,7 @@ namespace WC3_TOOL
}
void Inject_wc3_butClick(object sender, EventArgs e)
{
if(sav3file.has_WC == true)
if(sav3file.has_WC)
{
DialogResult dialogResult = MessageBox.Show("Savefile already has a WonderCard. Overwrite?", "WonderCard Injection", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.No)
@ -187,11 +182,11 @@ namespace WC3_TOOL
return;
}
}
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
string path = null;
int filesize = FileIO.load_file(ref wc3new, ref path, wc3filter);
if( (filesize == wc3.SIZE_WC3 && sav3file.isjap == false) || (filesize == wc3.SIZE_WC3_jap && sav3file.isjap == true) )
if( filesize == wc3.SIZE_WC3 && sav3file.isjap == false || filesize == wc3.SIZE_WC3_jap && sav3file.isjap )
{
sav3file.set_WC3(wc3new);
//custom_script.Checked = true;
@ -219,11 +214,11 @@ namespace WC3_TOOL
}
void Inject_wcnClick(object sender, EventArgs e)
{
if (sav3file.has_mystery_gift == true)
if (sav3file.has_mystery_gift)
{
string path = null;
int filesize = FileIO.load_file(ref wcnnew, ref path, wcnfilter);
if( (filesize == SAV3.WCN_SIZE && sav3file.isjap == false) || (filesize == SAV3.WCN_SIZE_jap && sav3file.isjap == true) )
if( filesize == SAV3.WCN_SIZE && sav3file.isjap == false || filesize == SAV3.WCN_SIZE_jap && sav3file.isjap )
{
sav3file.set_WCN(wcnnew);
//custom_script.Checked = true;
@ -260,7 +255,7 @@ namespace WC3_TOOL
}
void Inject_me3_butClick(object sender, EventArgs e)
{
if (sav3file.has_mystery_event == true || sav3file.game == 1)
if (sav3file.has_mystery_event || sav3file.game == 1)
{
if (sav3file.game == 1)
MessageBox.Show("Mystery Event was removed from non Japanese Emerald.\n\tYou can still inject the data at your own risk.");
@ -283,7 +278,6 @@ namespace WC3_TOOL
}
}else if (filesize == -1){
;
}else{
MessageBox.Show("Invalid file size.");
}
@ -396,7 +390,7 @@ namespace WC3_TOOL
else
sav3file.isjap = false;
if(sav3file.isjap == true)
if(sav3file.isjap)
region_lab.Text = "JAP";
else
region_lab.Text = "USA/EUR";
@ -425,7 +419,7 @@ namespace WC3_TOOL
}
void Export_eberryClick(object sender, EventArgs e)
{
if(sav3file.has_berry() == true)
if(sav3file.has_berry())
{
FileIO.save_data(sav3file.get_ECB(), berryfilter);
}else

View File

@ -1,123 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
</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>
<metadata name="menuStrip1.TrayLocation"
type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -1,6 +1,5 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
@ -153,8 +146,8 @@ namespace WC3_TOOL
if(item==reference[i]){
decorationbox.SelectedIndex = i + 1;
break;
}else
decorationbox.SelectedIndex = 0;
}
decorationbox.SelectedIndex = 0;
}
}
int[] desk_ref = {1,2,3,4,5,6,7,8,9};

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -41,8 +34,6 @@ namespace WC3_TOOL
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
isjap = false;
return;
}
public byte[] getData(int Offset, int Length)
{
@ -127,8 +118,8 @@ namespace WC3_TOOL
public byte HITEM { get { return Data[0x528]; } set { Data[0x528] = (byte) value; } }
public byte TR_0 { get { return Data[0x516]; } set { Data[0x516] = (byte) value; } }
public bool TR_0_healinfatuation { get { return Convert.ToBoolean((TR_0 >> 07) & 0x01); } set { TR_0 = (byte)((TR_0 & ~(0x01 << 07)) | (byte)((value == true ? 0x01 : 0x00) << 07)); } }
public bool TR_0_firstpkm { get { return Convert.ToBoolean((TR_0 >> 06) & 0x01); } set { TR_0 = (byte)((TR_0 & ~(0x01 << 06)) | (byte)((value == true ? 0x01 : 0x00) << 06)); } }
public bool TR_0_healinfatuation { get { return Convert.ToBoolean((TR_0 >> 07) & 0x01); } set { TR_0 = (byte)((TR_0 & ~(0x01 << 07)) | (byte)((value ? 0x01 : 0x00) << 07)); } }
public bool TR_0_firstpkm { get { return Convert.ToBoolean((TR_0 >> 06) & 0x01); } set { TR_0 = (byte)((TR_0 & ~(0x01 << 06)) | (byte)((value ? 0x01 : 0x00) << 06)); } }
public int TR_0_direhit { get { return (int)(TR_0 >> 05) & 0x03; } set { TR_0 = (byte)((TR_0 & ~(0x03 << 05)) | (byte)((value > 3 ? 3 : value) << 05)); } }
public int TR_0_attackUP { get { return (int)(TR_0 >> 00) & 0x0f; } set { TR_0 = (byte)((TR_0 & ~(0x0f << 00)) | (byte)((value > 0xf ? 0xf : value) << 00)); } }
@ -141,35 +132,35 @@ namespace WC3_TOOL
public int TR_2_accUP { get { return (int)(TR_2 >> 04) & 0x0f; } set { TR_2 = (byte)((TR_2 & ~(0x0f << 04)) | (byte)((value > 0xf ? 0xf : value) << 04)); } }
public byte TR_3 { get { return Data[0x519]; } set { Data[0x519] = (byte) value; } }
public bool TR_3_guardspec { get { return Convert.ToBoolean((TR_3 >> 07) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 07)) | (byte)((value == true ? 0x01 : 0x00) << 07)); } }
public bool TR_3_lvlUP { get { return Convert.ToBoolean((TR_3 >> 06) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 06)) | (byte)((value == true ? 0x01 : 0x00) << 06)); } }
public bool TR_3_clearSleep { get { return Convert.ToBoolean((TR_3 >> 05) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 05)) | (byte)((value == true ? 0x01 : 0x00) << 05)); } }
public bool TR_3_clearPoison { get { return Convert.ToBoolean((TR_3 >> 04) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 04)) | (byte)((value == true ? 0x01 : 0x00) << 04)); } }
public bool TR_3_clearBurn { get { return Convert.ToBoolean((TR_3 >> 03) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 03)) | (byte)((value == true ? 0x01 : 0x00) << 03)); } }
public bool TR_3_clearIce { get { return Convert.ToBoolean((TR_3 >> 02) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 02)) | (byte)((value == true ? 0x01 : 0x00) << 02)); } }
public bool TR_3_clearPar { get { return Convert.ToBoolean((TR_3 >> 01) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 01)) | (byte)((value == true ? 0x01 : 0x00) << 01)); } }
public bool TR_3_clearConf { get { return Convert.ToBoolean((TR_3 >> 00) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 00)) | (byte)((value == true ? 0x01 : 0x00) << 00)); } }
public bool TR_3_guardspec { get { return Convert.ToBoolean((TR_3 >> 07) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 07)) | (byte)((value ? 0x01 : 0x00) << 07)); } }
public bool TR_3_lvlUP { get { return Convert.ToBoolean((TR_3 >> 06) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 06)) | (byte)((value ? 0x01 : 0x00) << 06)); } }
public bool TR_3_clearSleep { get { return Convert.ToBoolean((TR_3 >> 05) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 05)) | (byte)((value ? 0x01 : 0x00) << 05)); } }
public bool TR_3_clearPoison { get { return Convert.ToBoolean((TR_3 >> 04) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 04)) | (byte)((value ? 0x01 : 0x00) << 04)); } }
public bool TR_3_clearBurn { get { return Convert.ToBoolean((TR_3 >> 03) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 03)) | (byte)((value ? 0x01 : 0x00) << 03)); } }
public bool TR_3_clearIce { get { return Convert.ToBoolean((TR_3 >> 02) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 02)) | (byte)((value ? 0x01 : 0x00) << 02)); } }
public bool TR_3_clearPar { get { return Convert.ToBoolean((TR_3 >> 01) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 01)) | (byte)((value ? 0x01 : 0x00) << 01)); } }
public bool TR_3_clearConf { get { return Convert.ToBoolean((TR_3 >> 00) & 0x01); } set { TR_3 = (byte)((TR_3 & ~(0x01 << 00)) | (byte)((value ? 0x01 : 0x00) << 00)); } }
public byte TR_4 { get { return Data[0x51A]; } set { Data[0x51A] = (byte) value; } }
public bool TR_4_stone { get { return Convert.ToBoolean((TR_4 >> 07) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 07)) | (byte)((value == true ? 0x01 : 0x00) << 07)); } }
public bool TR_4_revive { get { return Convert.ToBoolean((TR_4 >> 06) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 06)) | (byte)((value == true ? 0x01 : 0x00) << 06)); } }
public bool TR_4_maxPPUP { get { return Convert.ToBoolean((TR_4 >> 05) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 05)) | (byte)((value == true ? 0x01 : 0x00) << 05)); } }
public bool TR_4_onlyatack { get { return Convert.ToBoolean((TR_4 >> 04) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 04)) | (byte)((value == true ? 0x01 : 0x00) << 04)); } }
public bool TR_4_healPP { get { return Convert.ToBoolean((TR_4 >> 03) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 03)) | (byte)((value == true ? 0x01 : 0x00) << 03)); } }
public bool TR_4_healHP { get { return Convert.ToBoolean((TR_4 >> 02) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 02)) | (byte)((value == true ? 0x01 : 0x00) << 02)); } }
public bool TR_4_atkEVUP { get { return Convert.ToBoolean((TR_4 >> 01) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 01)) | (byte)((value == true ? 0x01 : 0x00) << 01)); } }
public bool TR_4_hpEVUP { get { return Convert.ToBoolean((TR_4 >> 00) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 00)) | (byte)((value == true ? 0x01 : 0x00) << 00)); } }
public bool TR_4_stone { get { return Convert.ToBoolean((TR_4 >> 07) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 07)) | (byte)((value ? 0x01 : 0x00) << 07)); } }
public bool TR_4_revive { get { return Convert.ToBoolean((TR_4 >> 06) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 06)) | (byte)((value ? 0x01 : 0x00) << 06)); } }
public bool TR_4_maxPPUP { get { return Convert.ToBoolean((TR_4 >> 05) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 05)) | (byte)((value ? 0x01 : 0x00) << 05)); } }
public bool TR_4_onlyatack { get { return Convert.ToBoolean((TR_4 >> 04) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 04)) | (byte)((value ? 0x01 : 0x00) << 04)); } }
public bool TR_4_healPP { get { return Convert.ToBoolean((TR_4 >> 03) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 03)) | (byte)((value ? 0x01 : 0x00) << 03)); } }
public bool TR_4_healHP { get { return Convert.ToBoolean((TR_4 >> 02) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 02)) | (byte)((value ? 0x01 : 0x00) << 02)); } }
public bool TR_4_atkEVUP { get { return Convert.ToBoolean((TR_4 >> 01) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 01)) | (byte)((value ? 0x01 : 0x00) << 01)); } }
public bool TR_4_hpEVUP { get { return Convert.ToBoolean((TR_4 >> 00) & 0x01); } set { TR_4 = (byte)((TR_4 & ~(0x01 << 00)) | (byte)((value ? 0x01 : 0x00) << 00)); } }
public byte TR_5 { get { return Data[0x51B]; } set { Data[0x51B] = (byte) value; } }
public bool TR_5_happy200 { get { return Convert.ToBoolean((TR_5 >> 07) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 07)) | (byte)((value == true ? 0x01 : 0x00) << 07)); } }
public bool TR_5_happy100 { get { return Convert.ToBoolean((TR_5 >> 06) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 06)) | (byte)((value == true ? 0x01 : 0x00) << 06)); } }
public bool TR_5_happy0 { get { return Convert.ToBoolean((TR_5 >> 05) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 05)) | (byte)((value == true ? 0x01 : 0x00) << 05)); } }
public bool TR_5_ppMax { get { return Convert.ToBoolean((TR_5 >> 04) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 04)) | (byte)((value == true ? 0x01 : 0x00) << 04)); } }
public bool TR_5_spdefEVUP { get { return Convert.ToBoolean((TR_5 >> 03) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 03)) | (byte)((value == true ? 0x01 : 0x00) << 03)); } }
public bool TR_5_spatkEVUP { get { return Convert.ToBoolean((TR_5 >> 02) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 02)) | (byte)((value == true ? 0x01 : 0x00) << 02)); } }
public bool TR_5_spEVUP { get { return Convert.ToBoolean((TR_5 >> 01) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 01)) | (byte)((value == true ? 0x01 : 0x00) << 01)); } }
public bool TR_5_defEVUP { get { return Convert.ToBoolean((TR_5 >> 00) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 00)) | (byte)((value == true ? 0x01 : 0x00) << 00)); } }
public bool TR_5_happy200 { get { return Convert.ToBoolean((TR_5 >> 07) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 07)) | (byte)((value ? 0x01 : 0x00) << 07)); } }
public bool TR_5_happy100 { get { return Convert.ToBoolean((TR_5 >> 06) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 06)) | (byte)((value ? 0x01 : 0x00) << 06)); } }
public bool TR_5_happy0 { get { return Convert.ToBoolean((TR_5 >> 05) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 05)) | (byte)((value ? 0x01 : 0x00) << 05)); } }
public bool TR_5_ppMax { get { return Convert.ToBoolean((TR_5 >> 04) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 04)) | (byte)((value ? 0x01 : 0x00) << 04)); } }
public bool TR_5_spdefEVUP { get { return Convert.ToBoolean((TR_5 >> 03) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 03)) | (byte)((value ? 0x01 : 0x00) << 03)); } }
public bool TR_5_spatkEVUP { get { return Convert.ToBoolean((TR_5 >> 02) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 02)) | (byte)((value ? 0x01 : 0x00) << 02)); } }
public bool TR_5_spEVUP { get { return Convert.ToBoolean((TR_5 >> 01) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 01)) | (byte)((value ? 0x01 : 0x00) << 01)); } }
public bool TR_5_defEVUP { get { return Convert.ToBoolean((TR_5 >> 00) & 0x01); } set { TR_5 = (byte)((TR_5 & ~(0x01 << 00)) | (byte)((value ? 0x01 : 0x00) << 00)); } }
public byte TR_6 { get { return Data[0x51C]; } set { Data[0x51C] = (byte) value; } }
public sbyte TR_7 { get { return (sbyte)Data[0x51D]; } set { Data[0x51D] = (byte) value; } }
@ -177,87 +168,84 @@ namespace WC3_TOOL
public sbyte TR_9 { get { return (sbyte)Data[0x51F]; } set { Data[0x51F] = (byte) value; } }
public byte HPRecovery {
get {
if(TR_4_revive == true || TR_4_healHP == true)
get
{
if(TR_4_revive || TR_4_healHP)
return TR_6;
else
return 0;
}
return 0;
}
set {
if(TR_4_revive == true || TR_4_healHP == true)
if(TR_4_revive || TR_4_healHP)
TR_6 = (byte) value;
} }
public byte PPRecovery {
get {
if(TR_4_healPP == true)
get
{
if(TR_4_healPP)
return TR_6;
else
return 0;
}
return 0;
}
set {
if(TR_4_healPP == true)
if(TR_4_healPP)
TR_6 = (byte) value;
} }
public sbyte EVchange {
get {
if(TR_5_spEVUP == true || TR_5_defEVUP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true )
get
{
if(TR_5_spEVUP || TR_5_defEVUP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP )
return (sbyte)TR_6;
else
return 0;
}
return 0;
}
set {
if(TR_5_spEVUP == true || TR_5_defEVUP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true )
if(TR_5_spEVUP || TR_5_defEVUP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP )
TR_6 = (byte) value;
} }
public sbyte Happy200 {
get {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
get
{
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
return (sbyte)TR_7;
else
return (sbyte)TR_6;
} set {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
return (sbyte)TR_6;
} set {
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
TR_7 = (sbyte) value;
else
TR_6 = (byte) value;
} }
public sbyte Happy100 {
get {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
{
if(TR_5_happy200 == true)
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
{
if(TR_5_happy200)
return (sbyte)TR_8;
else
return (sbyte)TR_7;
}
else{
if(TR_5_happy200 == true)
return (sbyte)TR_7;
else
return (sbyte)TR_6;
}
} set {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
return (sbyte)TR_7;
}
if(TR_5_happy200)
return (sbyte)TR_7;
return (sbyte)TR_6;
} set {
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
{
if(TR_5_happy200 == true)
if(TR_5_happy200)
TR_8 = (sbyte) value;
else
TR_7 = (sbyte) value;
}
else{
if(TR_5_happy200 == true)
if(TR_5_happy200)
TR_7 = (sbyte) value;
else
TR_6 = (byte) value;
@ -266,48 +254,46 @@ namespace WC3_TOOL
} }
public sbyte Happy0 {
get {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
{
if(TR_5_happy200 == true){
if(TR_5_happy100 == true){
if(TR_5_happy200)
{
if(TR_5_happy100){
return (sbyte)TR_9;
}else{
return (sbyte)TR_8;}
}else{
if(TR_5_happy100 == true){
return (sbyte)TR_8;}
else{
return (sbyte)TR_7;
}
}
}
else{
if(TR_5_happy200 == true){
if(TR_5_happy100 == true){
return (sbyte)TR_8;}
else{
return (sbyte)TR_7;}
}else{
if(TR_5_happy100 == true){
return (sbyte)TR_7;}
else{
return (sbyte)TR_6;}
}
}
} set {
if(TR_4_revive == true || TR_4_healHP == true || TR_4_healPP == true || TR_4_atkEVUP == true ||
TR_4_hpEVUP == true || TR_5_spdefEVUP == true || TR_5_spatkEVUP == true ||
TR_5_spEVUP == true || TR_5_defEVUP == true)
return (sbyte)TR_8;
}
if(TR_5_happy100){
return (sbyte)TR_8;}
return (sbyte)TR_7;
}
if(TR_5_happy200)
{
if(TR_5_happy100){
return (sbyte)TR_8;}
return (sbyte)TR_7;
}
if(TR_5_happy100){
return (sbyte)TR_7;}
return (sbyte)TR_6;
} set {
if(TR_4_revive || TR_4_healHP || TR_4_healPP || TR_4_atkEVUP ||
TR_4_hpEVUP || TR_5_spdefEVUP || TR_5_spatkEVUP ||
TR_5_spEVUP || TR_5_defEVUP)
{
if(TR_5_happy200 == true){
if(TR_5_happy100 == true)
if(TR_5_happy200){
if(TR_5_happy100)
TR_9 = (sbyte) value;
else
TR_8 = (sbyte) value;
}else{
if(TR_5_happy100 == true)
if(TR_5_happy100)
TR_8 = (sbyte) value;
else
TR_7 = (sbyte) value;
@ -315,13 +301,13 @@ namespace WC3_TOOL
}
else{
if(TR_5_happy200 == true){
if(TR_5_happy100 == true)
if(TR_5_happy200){
if(TR_5_happy100)
TR_8 = (sbyte) value;
else
TR_7 = (sbyte) value;
}else{
if(TR_5_happy100 == true)
if(TR_5_happy100)
TR_7 = (sbyte) value;
else
TR_6 = (byte) value;

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -147,15 +140,15 @@ namespace WC3_TOOL
happy100.Checked = ecbfile.TR_5_happy100;
happy0.Checked = ecbfile.TR_5_happy0;
if (happy200.Checked == true)
if (happy200.Checked)
hap200.Value = ecbfile.Happy200;
else
hap200.Value = 0;
if (happy100.Checked == true)
if (happy100.Checked)
hap100.Value = ecbfile.Happy100;
else
hap100.Value = 0;
if (happy0.Checked == true)
if (happy0.Checked)
happ0.Value = ecbfile.Happy0;
else
happ0.Value = 0;
@ -218,11 +211,11 @@ namespace WC3_TOOL
ecbfile.TR_5_ppMax = ppup.Checked;
//Only put the first value found
if (heal_hp.Checked == true)
if (heal_hp.Checked)
ecbfile.HPRecovery = (byte)tr6_val.Value;
else if (heal_pp.Checked == true)
else if (heal_pp.Checked)
ecbfile.PPRecovery = (byte)tr6_val.Value;
else if (ev_hp.Checked == true || ev_atk.Checked == true || ev_def.Checked == true || ev_speed.Checked == true || ev_speatk.Checked == true || ev_spedef.Checked == true)
else if (ev_hp.Checked || ev_atk.Checked || ev_def.Checked || ev_speed.Checked || ev_speatk.Checked || ev_spedef.Checked)
ecbfile.EVchange = (sbyte)tr6_val.Value;
ecbfile.TR_5_happy200 = happy200.Checked;

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -37,8 +30,6 @@ namespace WC3_TOOL
Data = (byte[])(data ?? new byte[SIZE_ECT]).Clone();
BAK = (byte[])Data.Clone();
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
return;
}
public byte[] getData(int Offset, int Length)
{
@ -92,11 +83,9 @@ namespace WC3_TOOL
{
if (value == 0xFF)
break;
else{
string newtext = texto + SYMBOL[value].ToString();
texto = newtext;
}
}
string newtext = texto + SYMBOL[value];
texto = newtext;
}
return texto;
}
public byte[] text2gba(string input, int len)
@ -116,12 +105,10 @@ namespace WC3_TOOL
gbatext[count] = 0;
break;
}
else
{
gbatext[count] = i;
break;
}
}
gbatext[count] = i;
break;
}
}

View File

@ -7,16 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Resources;
namespace WC3_TOOL
{
@ -64,19 +56,19 @@ namespace WC3_TOOL
void update_easychat()
{
object[] easychat = ECT_editor_text.easy_chat_eng;
if (ita.Checked == true)
if (ita.Checked)
{
easychat = ECT_editor_text.easy_chat_ita;
}else if (ger.Checked == true)
}else if (ger.Checked)
{
easychat = ECT_editor_text.easy_chat_ger;
}else if (fre.Checked == true)
}else if (fre.Checked)
{
easychat = ECT_editor_text.easy_chat_fre;
}else if (esp.Checked == true)
}else if (esp.Checked)
{
easychat = ECT_editor_text.easy_chat_esp;
}else if (jap.Checked == true)
}else if (jap.Checked)
{
easychat = ECT_editor_text.easy_chat_jap;
}
@ -189,7 +181,7 @@ namespace WC3_TOOL
ectfile.Data[0x1] = (byte) trainer_class_value.Value;
ectfile.Data[0x2] = (byte) tower_floor.Value;
ECT_editor.ectfile.setData(PKHeX.PKM.setG3Str(name.Text, jap_check.Checked), (int)0x04);
ectfile.setData(PKHeX.PKM.setG3Str(name.Text, jap_check.Checked), (int)0x04);
ectfile.setData(BitConverter.GetBytes((UInt16)TID.Value).ToArray(), (int)0xC);
ectfile.setData(BitConverter.GetBytes((UInt16)SID.Value).ToArray(), (int)0xC);
@ -275,7 +267,7 @@ namespace WC3_TOOL
void Jap_checkCheckedChanged(object sender, EventArgs e)
{
name.Text = PKHeX.PKM.getG3Str(ectfile.getData(0x4, 8), jap_check.Checked);
if (jap_check.Checked == true)
if (jap_check.Checked)
MessageBox.Show("Remember Japanese names have a maximum of 5 characters.");
}
object[] trainer_index_RS_other = {
@ -673,9 +665,9 @@ namespace WC3_TOOL
void update_trainer_list()
{
trainer_class.Items.Clear();
if (radio_e.Checked == true)
if (radio_e.Checked)
trainer_class.Items.AddRange(trainer_index_E);
else if(radio_FRLG.Checked == true)
else if(radio_FRLG.Checked)
trainer_class.Items.AddRange(trainer_index_FRLG);
else
trainer_class.Items.AddRange(trainer_index_RS);
@ -698,18 +690,18 @@ namespace WC3_TOOL
}
void Trainer_class_valueValueChanged(object sender, EventArgs e)
{
if(trainer_class_value.Value <= 0x4C && radio_rs.Checked == true)
if(trainer_class_value.Value <= 0x4C && radio_rs.Checked)
trainer_class.SelectedIndex = (int)trainer_class_value.Value;
else if(trainer_class_value.Value <= 0x4F && radio_e.Checked == true)
else if(trainer_class_value.Value <= 0x4F && radio_e.Checked)
trainer_class.SelectedIndex = (int)trainer_class_value.Value;
else if(trainer_class_value.Value <= 0x92 && radio_FRLG.Checked == true)
else if(trainer_class_value.Value <= 0x92 && radio_FRLG.Checked)
trainer_class.SelectedIndex = (int)trainer_class_value.Value;
if(trainer_class_value.Value > 0x4C && radio_rs.Checked == true)
if(trainer_class_value.Value > 0x4C && radio_rs.Checked)
trainer_class.SelectedIndex = 0x4D;
else if(trainer_class_value.Value > 0x4F && radio_e.Checked == true)
else if(trainer_class_value.Value > 0x4F && radio_e.Checked)
trainer_class.SelectedIndex = 0x50;
else if(trainer_class_value.Value > 0x92 && radio_FRLG.Checked == true)
else if(trainer_class_value.Value > 0x92 && radio_FRLG.Checked)
trainer_class.SelectedIndex = 0x93;

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -6,7 +6,6 @@
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace WC3_TOOL
{

View File

@ -7,14 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -30,7 +24,7 @@ namespace WC3_TOOL
//
InitializeComponent();
pid.Maximum = 0xFFFFFFFF;
pk = 0x34+(index*44);
pk = 0x34+index*44;
populate();
//
@ -142,12 +136,12 @@ namespace WC3_TOOL
void CancelClick(object sender, EventArgs e)
{
this.Close();
Close();
}
void SaveClick(object sender, EventArgs e)
{
save_edits();
this.Close();
Close();
}
void Jap_checkCheckedChanged(object sender, EventArgs e)
{

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -6,13 +6,8 @@
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
@ -23,86 +18,91 @@ namespace WC3_TOOL
/// </summary>
public class FileIO
{
/// <summary>
/// Reads data into a complete array, throwing an EndOfStreamException
/// if the stream runs out of data first, or if an IOException
/// naturally occurs.
/// </summary>
/// <param name="stream">The stream to read data from</param>
/// <param name="data">The array to read bytes into. The array
/// will be completely filled from the stream, so an appropriate
/// size must be given.</param>
private static void ReadWholeArray (Stream stream, ref byte[] data)
/// <summary>
/// Reads data into a complete array, throwing an EndOfStreamException
/// if the stream runs out of data first, or if an IOException
/// naturally occurs.
/// </summary>
/// <param name="stream">The stream to read data from</param>
/// <param name="data">The array to read bytes into. The array
/// will be completely filled from the stream, so an appropriate
/// size must be given.</param>
private static void ReadWholeArray(Stream stream, ref byte[] data)
{
int offset = 0;
int remaining = data.Length;
while (remaining > 0)
{
int offset=0;
int remaining = data.Length;
while (remaining > 0)
{
int read = stream.Read(data, offset, remaining);
if (read <= 0)
throw new EndOfStreamException
(String.Format("End of stream reached with {0} bytes left to read", remaining));
remaining -= read;
offset += read;
}
int read = stream.Read(data, offset, remaining);
if (read <= 0)
throw new EndOfStreamException
($"End of stream reached with {remaining} bytes left to read");
remaining -= read;
offset += read;
}
private static void _read_data(ref byte [] buffer, string path)
}
private static void _read_data(ref byte[] buffer, string path)
{
FileStream saveFile;
saveFile = new FileStream(path, FileMode.Open);
if (saveFile.Length < 1)
{
System.IO.FileStream saveFile;
saveFile = new FileStream(path, FileMode.Open);
if (saveFile.Length < 1){
MessageBox.Show("Invalid file length", "Error");
return;
}
buffer = new byte[saveFile.Length];
//MessageBox.Show(buffer.Length.ToString());
ReadWholeArray(saveFile, ref buffer);
saveFile.Close();
return;
MessageBox.Show("Invalid file length", "Error");
return;
}
public static int load_file(ref byte[] buffer, ref string path, string filter)
{
if (path == null)
buffer = new byte[saveFile.Length];
//MessageBox.Show(buffer.Length.ToString());
ReadWholeArray(saveFile, ref buffer);
saveFile.Close();
}
public static int load_file(ref byte[] buffer, ref string path, string filter)
{
if (path == null)
{
OpenFileDialog openFD = new OpenFileDialog();
//openFD.InitialDirectory = "c:\\";
openFD.Filter = filter;
DialogResult result = openFD.ShowDialog();
if (result == DialogResult.OK)
{
OpenFileDialog openFD = new OpenFileDialog();
//openFD.InitialDirectory = "c:\\";
openFD.Filter = filter;
DialogResult result = openFD.ShowDialog();
if ( result == DialogResult.OK)
{
#region filename
path = openFD.FileName;
//MessageBox.Show(path.ToString());
#endregion
_read_data(ref buffer, path);
//MessageBox.Show(buffer.Length.ToString());
return buffer.Length;
}else{
return -1;
}
}else
{
_read_data(ref buffer, path);
//MessageBox.Show(buffer.Length.ToString());
return buffer.Length;
#region filename
path = openFD.FileName;
//MessageBox.Show(path.ToString());
#endregion
_read_data(ref buffer, path);
//MessageBox.Show(buffer.Length.ToString());
return buffer.Length;
}
}
public static void save_data(byte[] buffer, string filter)
{ //if (savegamename.Text.Length < 1) return;
if (buffer == null) return;
SaveFileDialog saveFD = new SaveFileDialog();
//saveFD.InitialDirectory = "c:\\";
saveFD.Filter = filter;
if (saveFD.ShowDialog() == DialogResult.OK)
{
System.IO.FileStream saveFile;
saveFile = new FileStream(saveFD.FileName, FileMode.Create);
//Write file
saveFile.Write(buffer, 0, buffer.Length);
saveFile.Close();
MessageBox.Show("File Saved.", "Save file");
}
return -1;
}
_read_data(ref buffer, path);
//MessageBox.Show(buffer.Length.ToString());
return buffer.Length;
}
public static void save_data(byte[] buffer, string filter)
{
//if (savegamename.Text.Length < 1) return;
if (buffer == null) return;
SaveFileDialog saveFD = new SaveFileDialog();
//saveFD.InitialDirectory = "c:\\";
saveFD.Filter = filter;
if (saveFD.ShowDialog() == DialogResult.OK)
{
FileStream saveFile = new FileStream(saveFD.FileName, FileMode.Create);
//Write file
saveFile.Write(buffer, 0, buffer.Length);
saveFile.Close();
MessageBox.Show("File Saved.", "Save file");
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -43,8 +37,6 @@ namespace WC3_TOOL
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
isEmerald();
return;
}
public int isEmerald()
@ -62,22 +54,22 @@ namespace WC3_TOOL
{
isemerald = 0;
return isemerald;
}else if (chk_scr == chk_E)
{
isemerald = 1;
return isemerald;
}else{
DialogResult dialogResult = MessageBox.Show("ME3 file script has wrong checksum. Is this a Ruby/Sapphire mystery event?", "Wrong checksum", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
isemerald = 0;
}
else if (dialogResult == DialogResult.No)
{
isemerald = 1;
}
return isemerald;
}
if (chk_scr == chk_E)
{
isemerald = 1;
return isemerald;
}
DialogResult dialogResult = MessageBox.Show("ME3 file script has wrong checksum. Is this a Ruby/Sapphire mystery event?", "Wrong checksum", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
isemerald = 0;
}
else if (dialogResult == DialogResult.No)
{
isemerald = 1;
}
return isemerald;
}
public byte[] getData(int Offset, int Length)
@ -100,12 +92,11 @@ namespace WC3_TOOL
int scriptsize=0;
int i = 0;
for (i=0; i<me3_size-4-4-8; i++) //Leave out checksum (4), header(4) and item structure (8)
{
if(Data[me3_size-8-i-1] == 0xFF)
{
if(Data[me3_size-8-i-1] == 0xFF)
break;
else
scriptsize++;
}
scriptsize++;
}
return getData(8, 996-scriptsize);
}
@ -219,8 +210,8 @@ namespace WC3_TOOL
if (header != 0x00){
return true;
}else{
return false;}
}
return false;
}
public void removeScript()
{

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -75,9 +68,9 @@ namespace WC3_TOOL
me3file.MAP_MAP = (byte)map_num.Value;
me3file.MAP_PERSON = (byte)map_npc.Value;
if (radio_E.Checked == true)
if (radio_E.Checked)
me3file.isemerald = 1;
else if (radio_RS.Checked == true)
else if (radio_RS.Checked)
me3file.isemerald = 0;
}

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,14 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -91,15 +85,15 @@ namespace WC3_TOOL
public bool isvalid = true;
public int game = -1;
public bool has_WC = false;
public bool has_WCN = false;
public bool has_mystery_gift = false;
public bool has_mystery_event = false;
public bool has_WC;
public bool has_WCN;
public bool has_mystery_gift;
public bool has_mystery_event;
public bool isjap = false;
public int language = 0;
public bool isjap;
public int language;
byte[] boxbuffer = new byte[(3968*8)+2000];
byte[] boxbuffer = new byte[3968*8+2000];
/*
0x0201 Japanese
0x0202 English
@ -122,8 +116,8 @@ namespace WC3_TOOL
private int tv_outbreak_data_offset;
private UInt16 noCash;
private UInt32 oldSav = 0;
private UInt32 currentSav = 0;
private UInt32 oldSav;
private UInt32 currentSav;
private UInt32 sec0, s0, sx, x;
private UInt32[] sec = new UInt32[14];
@ -141,7 +135,7 @@ namespace WC3_TOOL
sec0 = Data[0x0FF4 + 0x1000 * s0 + currentSav];
if (sec0 == 0x0){
for(sx = 0; sx <=13; sx++){
if((s0 + sx) <= 13){
if(s0 + sx <= 13){
sec[sx] = s0 + sx;
}
else {
@ -180,10 +174,9 @@ namespace WC3_TOOL
}
public byte[] getDataFromBlock_old(int Offset, int Length, int block)
{
if (block == 0)
if (block == 0)
return Data.Skip((int)(Offset + 0x1000 * sec[13] + oldSav)).Take(Length).ToArray();
else
return Data.Skip((int)(Offset + 0x1000 * sec[block-1] + oldSav)).Take(Length).ToArray();
return Data.Skip((int)(Offset + 0x1000 * sec[block-1] + oldSav)).Take(Length).ToArray();
}
public void setData(byte[] input, int Offset)
{
@ -248,9 +241,7 @@ namespace WC3_TOOL
if(isjap) //Todo different offsets in jap version???
{
}
else
{
}
me3_offset = ME3_OFFSET_RS;
me3_size = ME3_SIZE_RS;
@ -345,7 +336,7 @@ namespace WC3_TOOL
{
byte[] pkm = new byte[0x50];
boxbuffer.Skip(4+index*0x50+(0x50*30*box)).Take(0x50).ToArray().CopyTo(pkm, 0);
boxbuffer.Skip(4+index*0x50+0x50*30*box).Take(0x50).ToArray().CopyTo(pkm, 0);
return pkm;
}
@ -363,7 +354,7 @@ namespace WC3_TOOL
for (i = 0; i < teamSize; i++)
{
lang = BitConverter.ToUInt16(getDataFromBlock((team_offset+4) + (0x64*i) + 0x12, 2, 1), 0);
lang = BitConverter.ToUInt16(getDataFromBlock(team_offset+4 + 0x64*i + 0x12, 2, 1), 0);
switch (lang)
{
case 0x0201:
@ -453,7 +444,6 @@ namespace WC3_TOOL
break;
}
}
return;
}
public void hasWCN()
@ -528,7 +518,7 @@ namespace WC3_TOOL
break;
case 1: //Emerald
if (isjap == true) // Mystery event. Save gets deleted if enabled in EUR/USA version
if (isjap) // Mystery event. Save gets deleted if enabled in EUR/USA version
{
check = getDataFromBlock(0x405, 1, 2);
if ( (check[0]&0x10) == 0){
@ -660,8 +650,7 @@ namespace WC3_TOOL
byte[] check = getDataFromBlock(BERRY_OFFSET_RS, 1, 4);
if (check[0] == 0x00)
return false;
else
return true;
return true;
}
public int has_ME3()
@ -670,14 +659,14 @@ namespace WC3_TOOL
//MessageBox.Show(me3.Length.ToString());
if (BitConverter.ToInt32(me3, 0) == 0) // No script
{ //MessageBox.Show(BitConverter.ToInt32(me3, 0).ToString());
{
//MessageBox.Show(BitConverter.ToInt32(me3, 0).ToString());
//MessageBox.Show(BitConverter.ToInt32(me3, me3_size-ME3_ITEM_SIZE).ToString());
//MessageBox.Show(me3[1004].ToString());
if (BitConverter.ToInt32(me3, me3_size-ME3_ITEM_SIZE) == 0) //No item either
return 0; //No me3
else
return 2; //No me3, but item data is present
}
return 2; //No me3, but item data is present
}
return 1;
}
@ -918,7 +907,7 @@ namespace WC3_TOOL
check = getDataFromBlock(0x32C, 1, 2);
if ( (check[0]&0x10) != 0)
{
check[0] = (byte)(check[0]&(~0x10));
check[0] = (byte)(check[0]&~0x10);
setDataToBlock(check, 0x32C, 2);
update_section_chk(2);
}
@ -927,7 +916,7 @@ namespace WC3_TOOL
check = getDataFromBlock(0xf5B, 1, 1);
if ( (check[0]&0x01) != 0)
{
check[0] = (byte)(check[0]&(~0x01));
check[0] = (byte)(check[0]&~0x01);
setDataToBlock(check, 0xf5b, 1);
update_section_chk(1);
}

View File

@ -7,14 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WC3_TOOL
{
@ -29,8 +22,6 @@ namespace WC3_TOOL
Data = (byte[])(data ?? new byte[tv_event_size]).Clone();
load_events();
return;
}
public byte[] getData(int Offset, int Length)
{
@ -70,8 +61,6 @@ namespace WC3_TOOL
Data = (byte[])(data ?? new byte[tv_size]).Clone();
load_shows();
return;
}
public byte[] getData(int Offset, int Length)
{

View File

@ -7,7 +7,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WC3_TOOL

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

File diff suppressed because it is too large Load Diff

View File

@ -7,17 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using PKHeX;
using System.Reflection;
using System.Resources;
@ -36,7 +27,7 @@ namespace WC3_TOOL
InitializeComponent();
faketoogle.Checked = true;
regionlab.Text = "";
GFX = this.CreateGraphics();
GFX = CreateGraphics();
colorbox.SelectedIndex = 0;
icon_num.Value = 0;
@ -51,8 +42,8 @@ namespace WC3_TOOL
public byte[] wc3script_new;
public static wc3 wc3file;
public bool japanese = false;
public static bool script_injected = false;
public bool japanese;
public static bool script_injected;
private Graphics GFX;
@ -75,7 +66,7 @@ namespace WC3_TOOL
}
string fill_line(string line, int index) //Fills string with spaces to "erase" old content.
{
if (japanese == true)
if (japanese)
{
switch (index)
{
@ -237,15 +228,15 @@ namespace WC3_TOOL
}
void Save_wc3_butClick(object sender, EventArgs e)
{
if (faketoogle.Checked == true)
if (faketoogle.Checked)
wc3file.fakeWC();
//wc3file.fakeSCript();
//wc3file.clean_trash();
wc3file.set_wc_icon((UInt16)icon_num.Value);
int distro = 0;
if (distro_but_always.Checked == true)
if (distro_but_always.Checked)
distro = 1;
else if (distro_but_one.Checked == true)
else if (distro_but_one.Checked)
distro = 2;
else
distro = 0;
@ -297,7 +288,7 @@ namespace WC3_TOOL
{
Form giveEeg = new WC3_editor_givegg();
giveEeg.ShowDialog();
if (script_injected == true)
if (script_injected)
{
script_injected = false;
custom_script.Checked = true;
@ -314,14 +305,14 @@ namespace WC3_TOOL
Image bitmap;
void drawCard()
{
bitmap = (Image)resources.GetObject("Card_"+colorbox.SelectedIndex.ToString());
bitmap = (Image)resources.GetObject("Card_"+colorbox.SelectedIndex);
GFX.DrawImage(bitmap, 501, 141, 238, 158);
if (icon_num.Value <= 251 || (icon_num.Value >= 277 && icon_num.Value <= 411))
if (icon_num.Value <= 251 || icon_num.Value >= 277 && icon_num.Value <= 411)
{
bitmap2 = (Image)resources2.GetObject(PKHeX.PKM.getG4Species((int)icon_num.Value).ToString());
GFX.DrawImage(bitmap2, 700, 140, 40, 40);
}else if ((icon_num.Value >= 412 && icon_num.Value <= 439)) // Egg and unown forms
}else if (icon_num.Value >= 412 && icon_num.Value <= 439) // Egg and unown forms
{
bitmap2 = (Bitmap)resources2.GetObject(icon_num.Value.ToString());
GFX.DrawImage(bitmap2, 700, 140, 40, 40);
@ -404,7 +395,7 @@ namespace WC3_TOOL
{
Form giveEegExt = new WC3_editor_giveggExt();
giveEegExt.ShowDialog();
if (script_injected == true)
if (script_injected)
{
script_injected = false;
custom_script.Checked = true;

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,15 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Resources;
@ -96,11 +89,11 @@ Bitmap bitmap = (Bitmap)ResourceManager.GetObject("Image");
WC3_editor.wc3file.set_script(egg_script);
WC3_editor.script_injected = true;
this.Close();
Close();
}
void Cancel_butClick(object sender, EventArgs e)
{
this.Close();
Close();
}
}
}

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,15 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Resources;
@ -83,7 +76,7 @@ Bitmap bitmap = (Bitmap)ResourceManager.GetObject("Image");
ResourceManager EggScripts = new ResourceManager("WC3_tool.WC3.GiveEggOrg", Assembly.GetExecutingAssembly());
byte[] egg_script;
if (killscript.Checked == true)
if (killscript.Checked)
egg_script =(byte[]) EggScripts.GetObject("ROM_"+game+"_GiveEgg_"+lang+"_4moves_kill");
else
egg_script = (byte[]) EggScripts.GetObject("ROM_"+game+"_GiveEgg_"+lang+"_4moves");
@ -94,7 +87,7 @@ Bitmap bitmap = (Bitmap)ResourceManager.GetObject("Image");
UInt16 move_4;
int offset = 4;//Embedded scripts have a 4 byte padding
if (killscript.Checked == true)
if (killscript.Checked)
{
egg_script[0x5+offset] = 0x00; //Remove jumpram command, I should technically update the embedded script files instead of doing this...
offset -= 0xF;//Killscript version is 0xF bytes shorter
@ -132,7 +125,7 @@ Bitmap bitmap = (Bitmap)ResourceManager.GetObject("Image");
UInt16 species;
species = (UInt16)species_box.SelectedIndex;
if (killscript.Checked == true)
if (killscript.Checked)
BitConverter.GetBytes(species).ToArray().CopyTo(egg_script, 0x5D+4);
else
BitConverter.GetBytes(species).ToArray().CopyTo(egg_script, 0x6C+4);
@ -141,11 +134,11 @@ Bitmap bitmap = (Bitmap)ResourceManager.GetObject("Image");
WC3_editor.wc3file.set_script(egg_script.Skip(4).Take(996).ToArray());
WC3_editor.script_injected = true;
this.Close();
Close();
}
void Cancel_butClick(object sender, EventArgs e)
{
this.Close();
Close();
}
void Script_helpClick(object sender, EventArgs e)
{

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -7,15 +7,8 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Resources;
@ -33,7 +26,7 @@ namespace WC3_TOOL
//
InitializeComponent();
regionlab.Text = "";
GFX = this.CreateGraphics();
GFX = CreateGraphics();
colorbox.SelectedIndex = 0;
//
@ -44,7 +37,7 @@ namespace WC3_TOOL
public byte[] wcnbuffer = new byte[SAV3.WCN_SIZE];
public static wc3 wcnfile;
public bool japanese = false;
public bool japanese;
private Graphics GFX;
@ -167,22 +160,22 @@ namespace WC3_TOOL
void drawCard()
{
//ResourceManager resources = new ResourceManager("WC3_TOOL.WC3.Image.Cards", Assembly.GetExecutingAssembly());
bitmap = (Image)resources.GetObject("News_"+colorbox.SelectedIndex.ToString());
bitmap = (Image)resources.GetObject("News_"+colorbox.SelectedIndex);
GFX.DrawImage(bitmap, 500, 140+26, 260, 140);
GFX.DrawImage(bitmap, 500, 140, 260, 140);
GFX.DrawString(header1.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+4);
GFX.DrawString(body1.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21);
GFX.DrawString(body2.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*1));
GFX.DrawString(body3.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*2));
GFX.DrawString(body4.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*3));
GFX.DrawString(body5.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*4));
GFX.DrawString(body6.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*5));
GFX.DrawString(body7.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*6));
GFX.DrawString(body8.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*7));
GFX.DrawString(body9.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*8));
GFX.DrawString(body10.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+(14*9));
GFX.DrawString(body2.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*1);
GFX.DrawString(body3.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*2);
GFX.DrawString(body4.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*3);
GFX.DrawString(body5.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*4);
GFX.DrawString(body6.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*5);
GFX.DrawString(body7.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*6);
GFX.DrawString(body8.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*7);
GFX.DrawString(body9.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*8);
GFX.DrawString(body10.Text, new Font("Calibri", 8), Brushes.Black, 500+7, 140+21+14*9);
}
void ColorboxSelectedIndexChanged(object sender, EventArgs e)

View File

@ -1,120 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
<!--
Microsoft ResX Schema
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<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">
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
xmlns="">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:element name="root" msdata:IsDataSet="true">
<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: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: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>
</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>

View File

@ -3,20 +3,12 @@
* User: suloku
* Date: 28/04/2016
* Time: 21:32
*
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using PKHeX;
namespace WC3_TOOL
{
@ -27,26 +19,26 @@ namespace WC3_TOOL
{
private static UInt16[] lookup_table = new UInt16[256];
private static void init_table()
{
//Sorry, this is not public for now.
}
private static UInt16 swap(UInt16 value)
{
int b1 = value & 0xFF;
int b2 = value >> 8 & 0xFF;
return (UInt16)(b1 << 8 | b2 << 0);
}
public static UInt16 wc_checksum(byte[] buffer, int fSize, int offset)
{
init_table();
UInt16 iSeed = 0;//Also not public...sorry again
UInt16 tabNum;
UInt16 tabVal;
int curByte = 0;
int curByte;
for (curByte=0; curByte<fSize; curByte++)
{
tabNum = (UInt16)((iSeed ^ buffer[curByte+offset]) & 0xFF);
@ -57,10 +49,10 @@ namespace WC3_TOOL
iSeed = (UInt16)((tabVal ^ (iSeed >> 8)) & 0xFFFF);
}
iSeed = (UInt16)((iSeed ^ 0xFFFF) & 0xFFFF);
return iSeed;
}
char[] SYMBOL = {
' ', 'À', 'Á', 'Â', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'こ', 'Î', 'Ï', 'Ò', 'Ó', 'Ô',
'Œ', 'Ù', 'Ú', 'Û', 'Ñ', 'ß', 'à', 'á', 'ね', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'ま',
@ -84,20 +76,20 @@ namespace WC3_TOOL
public const int SIZE_WC3_jap = 0x4 + 0xA4 + 0x28 + 0x28 + 0x3E8 + 4;
public const int ICON_WC3 = 0x4 + 0x14C + 10;
public const int ICON_WC3_jap = 0x4 + 0xA4 + 10;
public const int SIZE_WN3 = 4+4+440; //Checksum + header + Data (40bytes*11 lines)
public const int SIZE_WN3_jap = 4+4+220; //Checksum + header + Data (20bytes*11 lines)
public const int WC_TEXT_START = 14;
public const int WCN_TEXT_START = 8;
public byte cardcolor;
public int distributable;
private int text_start = 0;
private int wc3_size = 0;
private int wn_size = 0;
public bool japanese = false;
private int text_start;
private int wc3_size;
private int wn_size;
public bool japanese;
// Global Settings
// Save Data Attributes
@ -108,57 +100,55 @@ namespace WC3_TOOL
public string FileName, FilePath;
public wc3(byte[] data)
{
if(data.Length == SIZE_WN3 || data.Length == SIZE_WN3_jap) //WN3
{
Data = (byte[])(data ?? new byte[data.Length]).Clone();
Data = (byte[])data.Clone();
BAK = (byte[])Data.Clone();
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
if ( Data[0x06] == 0x1)
distributable = 1;
else
distributable = 0;
cardcolor = Data[0x07];
text_start = WCN_TEXT_START;
if(data.Length == SIZE_WN3_jap)
japanese = true;
if (japanese == true)
if (japanese)
wn_size = SIZE_WN3_jap;
else
wn_size = SIZE_WN3;
}
else //WC3
{
Data = (byte[])(data ?? new byte[data.Length]).Clone();
BAK = (byte[])Data.Clone();
Exportable = !Data.SequenceEqual(new byte[Data.Length]);
if(data.Length == SIZE_WC3_jap)
japanese = true;
if (japanese == true)
if (japanese)
wc3_size = SIZE_WC3_jap;
else
wc3_size = SIZE_WC3;
if ( (Data[0xC] & 0x80) == 0x80)
distributable = 1;
else if ( (Data[0xC] & 0x40) == 0x40)
distributable = 2;
else
distributable = 0;
cardcolor = (byte)(Data[0xC] & ~0x80);
cardcolor = (byte)(Data[0xC] & ~0x80);
text_start = WC_TEXT_START;
}
return;
}
/* public wc3(byte[] data, int wcn)
{
@ -170,13 +160,13 @@ namespace WC3_TOOL
distributable = 1;
else
distributable = 0;
cardcolor = Data[0x07];
text_start = WCN_TEXT_START;
if (japanese == true)
wn_size = WCN
return;
}
*/
@ -195,7 +185,7 @@ namespace WC3_TOOL
texto = "";
foreach (byte value in input)
{
string newtext = texto + SYMBOL[value].ToString();
string newtext = texto + SYMBOL[value];
texto = newtext;
}
return texto;
@ -203,11 +193,10 @@ namespace WC3_TOOL
public byte[] text2gba(string input)
{
byte[] gbatext = new byte[40];
byte i = 0;
int count = 0;
int count = 0;
foreach (char value in input)
{
for(i=0;i<0xFF;i++)
for(byte i=0;i<0xFF;i++)
{
if (value == SYMBOL[i])
{
@ -216,13 +205,11 @@ namespace WC3_TOOL
gbatext[count] = 0;
break;
}
else
{
gbatext[count] = i;
break;
}
}
gbatext[count] = i;
break;
}
}
//MessageBox.Show(gbatext[count].ToString("X"));
@ -233,10 +220,9 @@ namespace WC3_TOOL
public UInt16 get_wc_icon()
{
if(japanese == true)
if(japanese)
return BitConverter.ToUInt16(getData(ICON_WC3_jap, 2), 0);
else
return BitConverter.ToUInt16(getData(ICON_WC3, 2), 0);
return BitConverter.ToUInt16(getData(ICON_WC3, 2), 0);
}
public int get_wc_color()
{
@ -296,12 +282,12 @@ namespace WC3_TOOL
colorgui = 0;
break;
}
return colorgui;
}
public void set_wc_icon(int newicon)
{
if (japanese == true)
if (japanese)
{
setData(BitConverter.GetBytes((UInt16)newicon), ICON_WC3_jap);
}
@ -309,7 +295,7 @@ namespace WC3_TOOL
{
setData(BitConverter.GetBytes((UInt16)newicon), ICON_WC3);
}
}
public void set_wcn_color_distro(int color, int distro)
{
@ -319,7 +305,7 @@ namespace WC3_TOOL
Data[0x06] = 0x02;//Does not allow distribution either. More testing needed.
else
Data[0x06] = 0x00;
Data[0x07] = (byte)(color&0xFF);
}
public void set_wc_color_distro(int color, int distro)
@ -355,23 +341,23 @@ namespace WC3_TOOL
output = 0x00;
break;
}
if (distro == 1)
output = (byte)(output + 0x80);
else if (distro == 2)
output = (byte)(output + 0x40);
Data[0xC] = output;
}
public string get_wc_text(int index)
{
return gba2text(Data.Skip(text_start+(index * 0x28)).Take(0x28).ToArray());
return gba2text(Data.Skip(text_start+index * 0x28).Take(0x28).ToArray());
}
public string get_wc_text_2(int index)
{
int size = 0x28;
int[] offset = {0,40,80,120,160,200,240,280};
if (japanese == true)
if (japanese)
{
offset[0]=0;offset[1]=18;offset[2]=18+13;offset[3]=18+13+20;
offset[4]=18+13+40;offset[5]=18+13+60;offset[6]=18+13+80;offset[7]=18+13+100;
@ -388,16 +374,16 @@ namespace WC3_TOOL
break;
}
}
return PKHeX.PKM.getG3Str(Data.Skip(text_start+(offset[index])).Take(size).ToArray(), japanese);
return PKHeX.PKM.getG3Str(Data.Skip(text_start+offset[index]).Take(size).ToArray(), japanese);
}
public void insert_wc_text(string text, int index)
{
setData(text2gba(text), text_start+(index * 0x28));
setData(text2gba(text), text_start+index * 0x28);
}
public void insert_wc_text_2(string text, int index)
{
int[] offset = {0,40,80,120,160,200,240,280};
if (japanese == true)
if (japanese)
{
offset[0]=0;offset[1]=18;offset[2]=18+13;offset[3]=18+13+20;
offset[4]=18+13+40;offset[5]=18+13+60;offset[6]=18+13+80;offset[7]=18+13+100;
@ -407,26 +393,26 @@ namespace WC3_TOOL
public void clear_wc_text()
{
int i;
if (japanese == true)
if (japanese)
{
for(i=0;i<(18+13+(20*6));i++)
for(i=0;i<18+13+20*6;i++)
Data[text_start+i]=0x00;
}else
{
for(i=0;i<(40*8);i++)
for(i=0;i<40*8;i++)
Data[text_start+i]=0x00;
}
}
public void clear_wn_text()
{
int i;
if (japanese == true)
if (japanese)
{
for(i=0;i<(20*11);i++)
for(i=0;i<20*11;i++)
Data[text_start+i]=0x00;
}else
{
for(i=0;i<(40*11);i++)
for(i=0;i<40*11;i++)
Data[text_start+i]=0x00;
}
}
@ -434,24 +420,24 @@ namespace WC3_TOOL
{
int size = 0x28;
int[] offset = {0,40,80,120,160,200,240,280,320,360,400};
if (japanese == true)
if (japanese)
{
size = 0x14;
int i;
for (i=0;i<11;i++){
offset[i]=(0x14*i);
offset[i]=0x14*i;
}
}
return PKHeX.PKM.getG3Str(Data.Skip(text_start+(offset[index])).Take(size).ToArray(), japanese);
return PKHeX.PKM.getG3Str(Data.Skip(text_start+offset[index]).Take(size).ToArray(), japanese);
}
public void insert_wn_text_2(string text, int index)
{
int[] offset = {0,40,80,120,160,200,240,280,320,360,400};
if (japanese == true)
if (japanese)
{
int i;
for (i=0;i<11;i++){
offset[i]=(0x14*i);
offset[i]=0x14*i;
}
}
setData(PKHeX.PKM.setG3Str_WONDER(text, japanese), text_start+offset[index]);
@ -470,14 +456,13 @@ namespace WC3_TOOL
}
public void clean_trash()
{
int i = 0;
int i;
for (i=0; i<996; i++)
{
if(Data[wc3_size-i-1] == 0xFF)
{
if(Data[wc3_size-i-1] == 0xFF)
break;
else
Data[wc3_size-i-1] = 0;
}
Data[wc3_size-i-1] = 0;
}
}
public void fix_wcn_checksum()
{
@ -487,7 +472,7 @@ namespace WC3_TOOL
public void fix_wc_checksum()
{
UInt16 chk;
if(japanese == true)
if(japanese)
{
chk = wc_checksum(getData(4, 0xA4), 0xA4, 0);
}
@ -495,7 +480,7 @@ namespace WC3_TOOL
{
chk = wc_checksum(getData(4, 0x14C), 0x14C, 0);
}
setData(BitConverter.GetBytes(chk), 0);
}
public void fix_script_checksum()
@ -553,7 +538,7 @@ namespace WC3_TOOL
Data[wc3_size-i-1] = 0x00;
}
//Get address to script
UInt32 address = BitConverter.ToUInt32(newscript, 0);
UInt32 address = BitConverter.ToUInt32(newscript, 0);
setData(newscript.Skip((int)address).Take(996).ToArray(), wc3_size-996);
}
public byte ID { get { return Data[wc3_size-1000]; } set { Data[wc3_size-1000] = value; } }

View File

@ -1,169 +1,169 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{1E65C335-2DE3-410B-B713-5F7B023106CD}</ProjectGuid>
<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>WC3_TOOL</RootNamespace>
<AssemblyName>WC3_TOOL</AssemblyName>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>7.1</LangVersion>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp">
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="EventTool.cs" />
<Compile Include="EventTool.Designer.cs">
<DependentUpon>EventTool.cs</DependentUpon>
</Compile>
<Compile Include="MainScreen.cs" />
<Compile Include="MainScreen.Designer.cs">
<DependentUpon>MainScreen.cs</DependentUpon>
</Compile>
<Compile Include="WC3\Decor_editor.cs" />
<Compile Include="WC3\Decor_editor.Designer.cs">
<DependentUpon>Decor_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECB.cs" />
<Compile Include="WC3\ECB_editor.cs" />
<Compile Include="WC3\ECB_editor.Designer.cs">
<DependentUpon>ECB_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECT.cs" />
<Compile Include="WC3\ECT_editor.cs" />
<Compile Include="WC3\ECT_editor.Designer.cs">
<DependentUpon>ECT_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECT_editor_text.cs" />
<Compile Include="WC3\ECT_pkedit.cs" />
<Compile Include="WC3\ECT_pkedit.Designer.cs">
<DependentUpon>ECT_pkedit.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ME3.cs" />
<Compile Include="WC3\ME3_editor.cs" />
<Compile Include="WC3\ME3_editor.Designer.cs">
<DependentUpon>ME3_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\PKHEX\PKM.cs" />
<Compile Include="WC3\SAV3.cs" />
<Compile Include="WC3\TV.cs" />
<Compile Include="WC3\TV_editor.cs" />
<Compile Include="WC3\TV_editor.Designer.cs">
<DependentUpon>TV_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WC3_editor.cs" />
<Compile Include="WC3\WC3_editor.Designer.cs">
<DependentUpon>WC3_editor.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="WC3\FILEIO.cs" />
<Compile Include="WC3\wc3.cs" />
<Compile Include="WC3\WC3_editor_givegg.cs" />
<Compile Include="WC3\WC3_editor_givegg.Designer.cs">
<DependentUpon>WC3_editor_givegg.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WC3_editor_giveggExt.cs" />
<Compile Include="WC3\WC3_editor_giveggExt.Designer.cs">
<DependentUpon>WC3_editor_giveggExt.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WCN_editor.cs" />
<Compile Include="WC3\WCN_editor.Designer.cs">
<DependentUpon>WCN_editor.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="WC3" />
<Folder Include="WC3\Image" />
<Folder Include="WC3\PKHEX" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="EventTool.resx">
<DependentUpon>EventTool.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainScreen.resx">
<DependentUpon>MainScreen.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\Decor_editor.resx">
<DependentUpon>Decor_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECB_editor.resx">
<DependentUpon>ECB_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECT_editor.resx">
<DependentUpon>ECT_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECT_pkedit.resx">
<DependentUpon>ECT_pkedit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\GiveEggOrg.resx" />
<EmbeddedResource Include="WC3\Image\Cards.resx" />
<EmbeddedResource Include="WC3\Image\Icons.resx" />
<EmbeddedResource Include="WC3\ME3_editor.resx">
<DependentUpon>ME3_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\Tickets.resx" />
<EmbeddedResource Include="WC3\TV_editor.resx">
<DependentUpon>TV_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor.resx">
<DependentUpon>WC3_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor_givegg.resx">
<DependentUpon>WC3_editor_givegg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor_giveggExt.resx">
<DependentUpon>WC3_editor_giveggExt.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WCN_editor.resx">
<DependentUpon>WCN_editor.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
<PropertyGroup>
<ProjectGuid>{1E65C335-2DE3-410B-B713-5F7B023106CD}</ProjectGuid>
<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<OutputType>WinExe</OutputType>
<RootNamespace>WC3_TOOL</RootNamespace>
<AssemblyName>WC3_TOOL</AssemblyName>
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
<AppDesignerFolder>Properties</AppDesignerFolder>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
<DebugSymbols>True</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<LangVersion>7.1</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>7.1</LangVersion>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp">
</Reference>
<Reference Include="System"/>
<Reference Include="System.Core">
</Reference>
<Reference Include="System.Data"/>
<Reference Include="System.Data.DataSetExtensions">
</Reference>
<Reference Include="System.Drawing"/>
<Reference Include="System.Windows.Forms"/>
<Reference Include="System.Xml"/>
<Reference Include="System.Xml.Linq">
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="EventTool.cs"/>
<Compile Include="EventTool.Designer.cs">
<DependentUpon>EventTool.cs</DependentUpon>
</Compile>
<Compile Include="MainScreen.cs"/>
<Compile Include="MainScreen.Designer.cs">
<DependentUpon>MainScreen.cs</DependentUpon>
</Compile>
<Compile Include="WC3\Decor_editor.cs"/>
<Compile Include="WC3\Decor_editor.Designer.cs">
<DependentUpon>Decor_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECB.cs"/>
<Compile Include="WC3\ECB_editor.cs"/>
<Compile Include="WC3\ECB_editor.Designer.cs">
<DependentUpon>ECB_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECT.cs"/>
<Compile Include="WC3\ECT_editor.cs"/>
<Compile Include="WC3\ECT_editor.Designer.cs">
<DependentUpon>ECT_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ECT_editor_text.cs"/>
<Compile Include="WC3\ECT_pkedit.cs"/>
<Compile Include="WC3\ECT_pkedit.Designer.cs">
<DependentUpon>ECT_pkedit.cs</DependentUpon>
</Compile>
<Compile Include="WC3\ME3.cs"/>
<Compile Include="WC3\ME3_editor.cs"/>
<Compile Include="WC3\ME3_editor.Designer.cs">
<DependentUpon>ME3_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\PKHEX\PKM.cs"/>
<Compile Include="WC3\SAV3.cs"/>
<Compile Include="WC3\TV.cs"/>
<Compile Include="WC3\TV_editor.cs"/>
<Compile Include="WC3\TV_editor.Designer.cs">
<DependentUpon>TV_editor.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WC3_editor.cs"/>
<Compile Include="WC3\WC3_editor.Designer.cs">
<DependentUpon>WC3_editor.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs"/>
<Compile Include="Properties\AssemblyInfo.cs"/>
<Compile Include="WC3\FILEIO.cs"/>
<Compile Include="WC3\wc3.cs"/>
<Compile Include="WC3\WC3_editor_givegg.cs"/>
<Compile Include="WC3\WC3_editor_givegg.Designer.cs">
<DependentUpon>WC3_editor_givegg.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WC3_editor_giveggExt.cs"/>
<Compile Include="WC3\WC3_editor_giveggExt.Designer.cs">
<DependentUpon>WC3_editor_giveggExt.cs</DependentUpon>
</Compile>
<Compile Include="WC3\WCN_editor.cs"/>
<Compile Include="WC3\WCN_editor.Designer.cs">
<DependentUpon>WCN_editor.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="app.config"/>
</ItemGroup>
<ItemGroup>
<Folder Include="WC3"/>
<Folder Include="WC3\Image"/>
<Folder Include="WC3\PKHEX"/>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="EventTool.resx">
<DependentUpon>EventTool.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainScreen.resx">
<DependentUpon>MainScreen.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\Decor_editor.resx">
<DependentUpon>Decor_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECB_editor.resx">
<DependentUpon>ECB_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECT_editor.resx">
<DependentUpon>ECT_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\ECT_pkedit.resx">
<DependentUpon>ECT_pkedit.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\GiveEggOrg.resx"/>
<EmbeddedResource Include="WC3\Image\Cards.resx"/>
<EmbeddedResource Include="WC3\Image\Icons.resx"/>
<EmbeddedResource Include="WC3\ME3_editor.resx">
<DependentUpon>ME3_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\Tickets.resx"/>
<EmbeddedResource Include="WC3\TV_editor.resx">
<DependentUpon>TV_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor.resx">
<DependentUpon>WC3_editor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor_givegg.resx">
<DependentUpon>WC3_editor_givegg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WC3_editor_giveggExt.resx">
<DependentUpon>WC3_editor_giveggExt.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="WC3\WCN_editor.resx">
<DependentUpon>WCN_editor.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>
</Project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>