PGFCreator coding is picking up

This commit is contained in:
Regnum
2020-05-23 02:11:28 -05:00
parent c94717579c
commit 9fd84bfc4e
12 changed files with 1642 additions and 766 deletions

View File

@@ -1,4 +1,6 @@
Module Common
Imports System.Text
Module Common
'Custom MsgBox
Public Function MsgB(ByVal mes As String, Optional ByVal numB As Integer = 1, Optional ByVal but1 As String = "OK", Optional ByVal but2 As String = "Cancel", Optional ByVal but3 As String = "", Optional ByVal head As String = "")
Dim msg As New CustomMessageBox(mes, numB, but1, but2, but3, head)
@@ -77,4 +79,15 @@
Next
Return txtTemp.ToString()
End Function
Public Function GetString(data As Byte(), offset As Byte, count As Byte)
Return Encoding.Unicode.GetString(data, offset, count).Replace(ChrW(&HFFFF), "").Replace(ChrW(&H0), "")
End Function
Public Function SetString(ByVal value As String, ByVal maxLength As Integer)
If value.Length > maxLength Then value = value.Substring(0, maxLength)
Do While value.Length < maxLength
value &= ChrW(&HFFFF)
Loop
Dim temp As String = value & ChrW(&HFFFF)
Return Encoding.Unicode.GetBytes(temp)
End Function
End Module

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ Public Class Main
Dim apppath As String = My.Application.Info.DirectoryPath 'Path to .exe directory
Dim res As String = Path.GetFullPath(Application.StartupPath & "\..\..\Resources\") 'Path to Project Resources
Dim TempPath As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Temp" 'Path to Temp
Dim Local As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Regnum\PKMG5DC" 'Path to Local folder
Public Shared Local As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\Regnum\PKMG5DC" 'Path to Local folder
Dim Gen As Byte = 5
Dim card1 As New Card5
Dim langCksm As UShort() = {&H83BC, &H9D36, &H39AA, &H4418, &HE061, &HF57A}

View File

@@ -1,45 +1,430 @@
Public Class PGF
Public TID As UShort
Public SID As UShort
Public Origin As Byte
Public Data(&HCB) As Byte
Public Property TID As UShort
Get
Return BitConverter.ToUInt16(Data, &H0)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H0)
End Set
End Property
Public Property SID As UShort
Get
Return BitConverter.ToUInt16(Data, &H2)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H2)
End Set
End Property
Public Property Origin As Byte
Get
Return Data(&H4)
End Get
Set(ByVal value As Byte)
Data(&H4) = CByte(value)
End Set
End Property
'00 00 00
Public PID As UInteger
Public Ribbons(1) As Byte
Public Ball As Byte
Public Property PID As UInteger
Get
Return BitConverter.ToUInt32(Data, &H8)
End Get
Set(ByVal value As UInteger)
BitConverter.GetBytes(value).CopyTo(Data, &H8)
End Set
End Property
Public Property Ribbons1 As Byte
Get
Return Data(&HC)
End Get
Set(ByVal value As Byte)
Data(&HC) = value
End Set
End Property
Public Property Ribbons2 As Byte
Get
Return Data(&HD)
End Get
Set(ByVal value As Byte)
Data(&HD) = value
End Set
End Property
#Region "Ribbons"
Public Property RibbonCountry As Boolean
Get
Return (Ribbons1 And (1 << 0)) = (1 << 0)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 0)) Or If(value, 1 << 0, 0))
End Set
End Property
Public Property RibbonNational As Boolean
Get
Return (Ribbons1 And (1 << 1)) = (1 << 1)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 1)) Or If(value, 1 << 1, 0))
End Set
End Property
Public Property RibbonEarth As Boolean
Get
Return (Ribbons1 And (1 << 2)) = (1 << 2)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 2)) Or If(value, 1 << 2, 0))
End Set
End Property
Public Property RibbonWorld As Boolean
Get
Return (Ribbons1 And (1 << 3)) = (1 << 3)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 3)) Or If(value, 1 << 3, 0))
End Set
End Property
Public Property RibbonClassic As Boolean
Get
Return (Ribbons1 And (1 << 4)) = (1 << 4)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 4)) Or If(value, 1 << 4, 0))
End Set
End Property
Public Property RibbonPremier As Boolean
Get
Return (Ribbons1 And (1 << 5)) = (1 << 5)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 5)) Or If(value, 1 << 5, 0))
End Set
End Property
Public Property RibbonEvent As Boolean
Get
Return (Ribbons1 And (1 << 6)) = (1 << 6)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 6)) Or If(value, 1 << 6, 0))
End Set
End Property
Public Property RibbonBirthday As Boolean
Get
Return (Ribbons1 And (1 << 7)) = (1 << 7)
End Get
Set(value As Boolean)
Ribbons1 = CByte((Ribbons1 And Not (1 << 7)) Or If(value, 1 << 7, 0))
End Set
End Property
Public Property RibbonSpecial As Boolean
Get
Return (Ribbons2 And (1 << 0)) = (1 << 0)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 0)) Or If(value, 1 << 0, 0))
End Set
End Property
Public Property RibbonSouvenir As Boolean
Get
Return (Ribbons2 And (1 << 1)) = (1 << 1)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 1)) Or If(value, 1 << 1, 0))
End Set
End Property
Public Property RibbonWishing As Boolean
Get
Return (Ribbons2 And (1 << 2)) = (1 << 2)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 2)) Or If(value, 1 << 2, 0))
End Set
End Property
Public Property RibbonChampionBattle As Boolean
Get
Return (Ribbons2 And (1 << 3)) = (1 << 3)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 3)) Or If(value, 1 << 3, 0))
End Set
End Property
Public Property RibbonChampionRegional As Boolean
Get
Return (Ribbons2 And (1 << 4)) = (1 << 4)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 4)) Or If(value, 1 << 4, 0))
End Set
End Property
Public Property RibbonChampionNational As Boolean
Get
Return (Ribbons2 And (1 << 5)) = (1 << 5)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 5)) Or If(value, 1 << 5, 0))
End Set
End Property
Public Property RibbonChampionWorld As Boolean
Get
Return (Ribbons2 And (1 << 6)) = (1 << 6)
End Get
Set(value As Boolean)
Ribbons2 = CByte((Ribbons2 And Not (1 << 6)) Or If(value, 1 << 6, 0))
End Set
End Property
#End Region
Public Property Ball As Byte
Get
Return Data(&HE)
End Get
Set(ByVal value As Byte)
Data(&HE) = CByte(value)
End Set
End Property
'00
Public Item As UShort
Public Moves(3) As UShort
Public Dex As UShort
Public Property Item As UShort
Get
Return BitConverter.ToUInt16(Data, &H10)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H10)
End Set
End Property
Public Property Move1 As UShort
Get
Return BitConverter.ToUInt16(Data, &H12)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H12)
End Set
End Property
Public Property Move2 As UShort
Get
Return BitConverter.ToUInt16(Data, &H14)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H14)
End Set
End Property
Public Property Move3 As UShort
Get
Return BitConverter.ToUInt16(Data, &H16)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H16)
End Set
End Property
Public Property Move4 As UShort
Get
Return BitConverter.ToUInt16(Data, &H18)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H18)
End Set
End Property
Public Property Dex As UShort
Get
Return BitConverter.ToUInt16(Data, &H1A)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &H1A)
End Set
End Property
'00
Public Language As Byte
Public Nickname As String '0x14
Public Property Language As Byte
Get
Return Data(&H1D)
End Get
Set(ByVal value As Byte)
Data(&H1D) = value
End Set
End Property
Public Property Nickname As String '0x14
Get
Return GetString(Data, &H1E, 20)
End Get
Set(ByVal value As String)
SetString(value, 10).CopyTo(Data, &H1E)
End Set
End Property
'FF FF
Public Nature As Byte
Public Gender As Byte
Public Ability As Byte
Public Shiny As Byte
Public EggMet As UShort
Public Met As UShort
Public Level As Byte
Public ContestStats As String '0x5
Public Sheen As Byte
Public IVs(5) As Byte '{HP, ATK, DEF, SPE, SpA, SpD}
Public Property Nature As Byte
Get
Return Data(&H34)
End Get
Set(value As Byte)
Data(&H34) = CByte(value)
End Set
End Property
Public Property Gender As Byte
Get
Return Data(&H35)
End Get
Set(value As Byte)
Data(&H35) = CByte(value)
End Set
End Property
Public Property Ability As Byte
Get
Return Data(&H36)
End Get
Set(ByVal value As Byte)
Data(&H36) = value
End Set
End Property
Public Property Shiny As Byte
Get
Return Data(&H37)
End Get
Set(ByVal value As Byte)
Data(&H37) = value
End Set
End Property
Public Property EggMet As UShort
Get
Return BitConverter.ToUInt16(Data, &H38)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(CUShort(value)).CopyTo(Data, &H38)
End Set
End Property
Public Property Met As UShort
Get
Return BitConverter.ToUInt16(Data, &H3A)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(CUShort(value)).CopyTo(Data, &H3A)
End Set
End Property
Public Property Level As Byte
Get
Return Data(&H5B)
End Get
Set(ByVal value As Byte)
Data(&H3C) = CByte(value)
Data(&H5B) = CByte(value)
End Set
End Property
Public Property ContestStats As String '0x5
Public Property Sheen As Byte
Public Property IV_HP As Byte
Get
Return Data(&H43)
End Get
Set(ByVal value As Byte)
Data(&H43) = value
End Set
End Property
Public Property IV_ATK As Byte
Get
Return Data(&H44)
End Get
Set(ByVal value As Byte)
Data(&H44) = value
End Set
End Property
Public Property IV_DEF As Byte
Get
Return Data(&H45)
End Get
Set(ByVal value As Byte)
Data(&H45) = value
End Set
End Property
Public Property IV_SPE As Byte
Get
Return Data(&H46)
End Get
Set(ByVal value As Byte)
Data(&H46) = value
End Set
End Property
Public Property IV_SPA As Byte
Get
Return Data(&H47)
End Get
Set(ByVal value As Byte)
Data(&H47) = value
End Set
End Property
Public Property IV_SPD As Byte
Get
Return Data(&H48)
End Get
Set(ByVal value As Byte)
Data(&H48) = value
End Set
End Property
'00
Public OT_Name As String '0xE
Public Property OT_Name As String '0xE
Get
Return GetString(Data, &H4A, &HE)
End Get
Set(ByVal value As String)
SetString(value, 7).CopyTo(Data, &H4A)
End Set
End Property
'FF FF
Public OT_Gender As Byte
Public Property OT_Gender As Byte
Get
Return Data(&H5A)
End Get
Set(ByVal value As Byte)
Data(&H5A) = value
End Set
End Property
'Level
Public Egg As Byte
Public Property Egg As Byte
Get
Return Data(&H5C)
End Get
Set(ByVal value As Byte)
Data(&H5C) = value
End Set
End Property
'00 00 00
Public EventTitle As String '0x48
Public Property EventTitle As String '0x48
Get
Return GetString(Data, &H60, &H48)
End Get
Set(ByVal value As String)
SetString(value, 36).CopyTo(Data, &H60)
End Set
End Property
'FF FF
'00 00
Public RecieveDay As Byte = 0
Public RecieveMonth As Byte = 0
Public RecieveYear As UShort = 0
Public CardID As UShort
Public CardFrom As Byte = &H44
Public CardType As Byte
Public Status As Byte = 1
Public Property RecieveDay As Byte = 0
Public Property RecieveMonth As Byte = 0
Public Property RecieveYear As UShort = 0
Public Property CardID As UShort
Get
Return BitConverter.ToUInt16(Data, &HB0)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(Data, &HB0)
End Set
End Property
Public Property CardFrom As Byte
Get
Return Data(&HB2)
End Get
Set(ByVal value As Byte)
Data(&HB2) = value
End Set
End Property
Public Property CardType As Byte
Get
Return Data(&HB3)
End Get
Set(ByVal value As Byte)
Data(&HB3) = value
End Set
End Property
Public Property Status As Byte
Get
Return Data(&HB4)
End Get
Set(ByVal value As Byte)
Data(&HB4) = value
End Set
End Property
'00 for 0x17
End Class

View File

@@ -36,14 +36,24 @@ Partial Class PGFCreator
Me.lbl_Species = New System.Windows.Forms.Label()
Me.ComboBox2 = New System.Windows.Forms.ComboBox()
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.GroupBox3 = New System.Windows.Forms.GroupBox()
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.nud_CardID = New System.Windows.Forms.NumericUpDown()
Me.Label1 = New System.Windows.Forms.Label()
Me.Button1 = New System.Windows.Forms.Button()
Me.GroupBox1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.GroupBox3.SuspendLayout()
CType(Me.nud_CardID, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'PK5Name
'
Me.PK5Name.AutoEllipsis = True
Me.PK5Name.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.PK5Name.Location = New System.Drawing.Point(35, 55)
Me.PK5Name.Location = New System.Drawing.Point(6, 28)
Me.PK5Name.Margin = New System.Windows.Forms.Padding(3, 3, 3, 0)
Me.PK5Name.Name = "PK5Name"
Me.PK5Name.Size = New System.Drawing.Size(330, 17)
@@ -53,7 +63,7 @@ Partial Class PGFCreator
'
'OpenPK5
'
Me.OpenPK5.Location = New System.Drawing.Point(367, 51)
Me.OpenPK5.Location = New System.Drawing.Point(338, 24)
Me.OpenPK5.Name = "OpenPK5"
Me.OpenPK5.Size = New System.Drawing.Size(75, 23)
Me.OpenPK5.TabIndex = 9
@@ -154,25 +164,98 @@ Partial Class PGFCreator
'
Me.ComboBox2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox2.FormattingEnabled = True
Me.ComboBox2.Location = New System.Drawing.Point(71, 233)
Me.ComboBox2.Items.AddRange(New Object() {"Pokémon", "Item"})
Me.ComboBox2.Location = New System.Drawing.Point(28, 47)
Me.ComboBox2.Name = "ComboBox2"
Me.ComboBox2.Size = New System.Drawing.Size(189, 21)
Me.ComboBox2.Size = New System.Drawing.Size(94, 21)
Me.ComboBox2.TabIndex = 13
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.PK5Name)
Me.GroupBox2.Controls.Add(Me.OpenPK5)
Me.GroupBox2.Location = New System.Drawing.Point(12, 96)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(423, 71)
Me.GroupBox2.TabIndex = 14
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "Pokemon"
'
'GroupBox3
'
Me.GroupBox3.Controls.Add(Me.ComboBox1)
Me.GroupBox3.Location = New System.Drawing.Point(18, 174)
Me.GroupBox3.Name = "GroupBox3"
Me.GroupBox3.Size = New System.Drawing.Size(417, 78)
Me.GroupBox3.TabIndex = 15
Me.GroupBox3.TabStop = False
Me.GroupBox3.Text = "Item"
'
'ComboBox1
'
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Location = New System.Drawing.Point(25, 35)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(260, 21)
Me.ComboBox1.TabIndex = 0
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(128, 33)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(46, 13)
Me.Label3.TabIndex = 17
Me.Label3.Text = "Card ID:"
'
'nud_CardID
'
Me.nud_CardID.Location = New System.Drawing.Point(128, 46)
Me.nud_CardID.Maximum = New Decimal(New Integer() {65535, 0, 0, 0})
Me.nud_CardID.Name = "nud_CardID"
Me.nud_CardID.Size = New System.Drawing.Size(60, 20)
Me.nud_CardID.TabIndex = 16
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(25, 33)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(59, 13)
Me.Label1.TabIndex = 18
Me.Label1.Text = "Card Type:"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(227, 295)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(75, 23)
Me.Button1.TabIndex = 19
Me.Button1.Text = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'PGFCreator
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.nud_CardID)
Me.Controls.Add(Me.GroupBox3)
Me.Controls.Add(Me.GroupBox2)
Me.Controls.Add(Me.ComboBox2)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.PK5Name)
Me.Controls.Add(Me.OpenPK5)
Me.Name = "PGFCreator"
Me.Text = "PGFCreator"
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox1.PerformLayout()
Me.GroupBox2.ResumeLayout(False)
Me.GroupBox3.ResumeLayout(False)
CType(Me.nud_CardID, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
@@ -189,4 +272,11 @@ Partial Class PGFCreator
Friend WithEvents lbl_Nature As Label
Friend WithEvents lbl_Ability As Label
Friend WithEvents ToolTip1 As ToolTip
Friend WithEvents GroupBox2 As GroupBox
Friend WithEvents GroupBox3 As GroupBox
Friend WithEvents ComboBox1 As ComboBox
Friend WithEvents Label3 As Label
Friend WithEvents nud_CardID As NumericUpDown
Friend WithEvents Label1 As Label
Friend WithEvents Button1 As Button
End Class

View File

@@ -120,4 +120,7 @@
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -2,21 +2,23 @@
Public Class PGFCreator
Dim WC As New PGF
Dim InputPK5 As String
Dim a As New List(Of Items)
Dim InputPK5 As New PK5
Private Sub PGFCreator_Load(sender As Object, e As EventArgs) Handles MyBase.Load
PopulateMoves(ComboBox2)
PopulateItems(ComboBox1)
ComboBox2.SelectedIndex = 0
ComboBox1.SelectedIndex = 0
End Sub
Private Sub OpenPK5_Click(sender As Object, e As EventArgs) Handles OpenPK5.Click
Dim OpenFile As New OpenFileDialog
OpenFile.Filter = "Gen 5 PKM (*.pk5)|*.pk5|All files (*.*)|*.*"
Dim OpenFile As New OpenFileDialog With {
.Filter = "Gen 5 PKM (*.pk5)|*.pk5|All files (*.*)|*.*"
}
Dim res As DialogResult = OpenFile.ShowDialog()
If res <> Windows.Forms.DialogResult.Cancel Then
Dim myFile As String = Path.GetFileName(OpenFile.FileName)
PK5Name.Text = myFile
InputPK5 = ByteArrayToHexString(OpenFile.FileName)
InputPK5.Data = File.ReadAllBytes(OpenFile.FileName)
GrabValues()
End If
End Sub
@@ -24,60 +26,83 @@ Public Class PGFCreator
Private Sub GrabValues()
Try
With WC
.TID = Convert.ToUInt16(Little_Endian(InputPK5.Remove(28).ToArray().Skip(24).ToArray(), 4), 16)
.SID = Convert.ToUInt16(Little_Endian(InputPK5.Remove(32).ToArray().Skip(28).ToArray(), 4), 16)
.Origin = Convert.ToUInt16(InputPK5.Remove(192).ToArray().Skip(190).ToArray(), 16)
.Ribbons(0) = Convert.ToUInt16(InputPK5.Remove(78).ToArray().Skip(76).ToArray(), 16)
.Ribbons(1) = Convert.ToUInt16(InputPK5.Remove(80).ToArray().Skip(78).ToArray(), 16)
.Ball = Convert.ToUInt16(InputPK5.Remove(264).ToArray().Skip(262).ToArray(), 16)
.Item = Convert.ToUInt16(Little_Endian(InputPK5.Remove(24).ToArray().Skip(20).ToArray(), 4), 16)
.Moves(0) = Convert.ToUInt16(Little_Endian(InputPK5.Remove(84).ToArray().Skip(80).ToArray(), 4), 16)
.Moves(1) = Convert.ToUInt16(Little_Endian(InputPK5.Remove(88).ToArray().Skip(84).ToArray(), 4), 16)
.Moves(2) = Convert.ToUInt16(Little_Endian(InputPK5.Remove(92).ToArray().Skip(88).ToArray(), 4), 16)
.Moves(3) = Convert.ToUInt16(Little_Endian(InputPK5.Remove(96).ToArray().Skip(92).ToArray(), 4), 16)
.Dex = Convert.ToUInt16(Little_Endian(InputPK5.Remove(20).ToArray().Skip(16).ToArray(), 4), 16)
.Language = Convert.ToUInt16(InputPK5.Remove(48).ToArray().Skip(46).ToArray(), 16)
.Nickname = InputPK5.Remove(188).ToArray().Skip(144).ToArray()
.Nature = Convert.ToUInt16(InputPK5.Remove(132).ToArray().Skip(130).ToArray(), 16)
.EggMet = Convert.ToUInt16(Little_Endian(InputPK5.Remove(256).ToArray().Skip(252).ToArray(), 4), 16)
.Met = Convert.ToUInt16(Little_Endian(InputPK5.Remove(260).ToArray().Skip(256).ToArray(), 4), 16)
Dim bloc As String = Hex_Zeros(Convert.ToString(Convert.ToUInt32(Little_Endian(InputPK5.Remove(120).ToArray().Skip(112).ToArray(), 8), 16), 2), 32)
.IVs(0) = Convert.ToInt32(bloc.Skip(27).ToArray(), 2)
.IVs(1) = Convert.ToInt32(bloc.Remove(27).ToArray().Skip(22).ToArray(), 2)
.IVs(2) = Convert.ToInt32(bloc.Remove(22).ToArray().Skip(17).ToArray(), 2)
.IVs(3) = Convert.ToInt32(bloc.Remove(17).ToArray().Skip(12).ToArray(), 2)
.IVs(4) = Convert.ToInt32(bloc.Remove(12).ToArray().Skip(7).ToArray(), 2)
.IVs(5) = Convert.ToInt32(bloc.Remove(7).ToArray().Skip(2).ToArray(), 2)
.Egg = Convert.ToUInt16(bloc.Remove(3).ToArray().Skip(1).ToArray(), 2)
.OT_Name = InputPK5.Remove(240).ToArray().Skip(208).ToArray()
.OT_Gender = Convert.ToUInt16(Hex_Zeros(Convert.ToString(Convert.ToUInt16(InputPK5.Remove(266).ToArray().Skip(264).ToArray(), 16), 2), 8).ToString.Remove(1), 2)
.Gender = Convert.ToUInt16(Hex_Zeros(Convert.ToString(Convert.ToUInt16(InputPK5.Remove(130).ToArray().Skip(128).ToArray(), 16), 2), 8).ToString.Remove(7).ToArray().Skip(6).ToArray(), 2)
Select Case WC.CardType
Case 1
.TID = InputPK5.TID
.SID = InputPK5.SID
.Origin = InputPK5.Origin
.PID = InputPK5.PID
.Ball = InputPK5.Ball
.Item = InputPK5.Item
.Move1 = InputPK5.Move1
.Move2 = InputPK5.Move2
.Move3 = InputPK5.Move3
.Move4 = InputPK5.Move4
.Dex = InputPK5.Dex
.Language = InputPK5.Language
.Nickname = InputPK5.Nickname
.Nature = InputPK5.Nature
.EggMet = InputPK5.EggMet
.Met = InputPK5.Met
.IV_HP = InputPK5.IV_HP
.IV_ATK = InputPK5.IV_ATK
.IV_DEF = InputPK5.IV_DEF
.IV_SPE = InputPK5.IV_SPE
.IV_SPA = InputPK5.IV_SPA
.IV_SPD = InputPK5.IV_SPD
.Egg = InputPK5.IsEgg
.OT_Name = InputPK5.OT_Name
.OT_Gender = InputPK5.OT_Gender
.Gender = InputPK5.Gender
.Level = InputPK5.Level
ConvertValues()
Desc()
Case 2
.TID = GetItemID(ComboBox1.Text)
Case 3
End Select
.EventTitle = "A special Zoroark!"
.CardID = CUShort(nud_CardID.Value)
.CardFrom = &H44
.Status = 1
'ability, shiny, event title, cardID, cardType
End With
ConvertValues()
Desc()
Catch ex As Exception
End Try
End Sub
Private Sub ConvertValues()
'Ribbons
Dim hr As Char() = Hex_Zeros(Convert.ToString(Convert.ToUInt16(InputPK5.Remove(128).ToArray().Skip(126).ToArray(), 16), 2), 8).ToString.ToCharArray()
Dim bits As Char() = Hex_Zeros(Convert.ToString(WC.Ribbons(0), 2), 8).ToString.ToCharArray
Dim bits2 As Char() = Hex_Zeros(Convert.ToString(WC.Ribbons(1), 2), 8).ToString.ToCharArray
WC.Ribbons(0) = Convert.ToUInt16(bits(1) & bits(4) & bits2(4) & bits2(5) & hr(0) & hr(1) & hr(2) & hr(3), 2)
WC.Ribbons(1) = Convert.ToUInt16("0" & bits(2) & hr(4) & hr(5) & hr(6) & bits2(6) & bits2(7) & bits(0), 2)
With WC
.RibbonBirthday = InputPK5.RibbonBirthday
.RibbonEvent = InputPK5.RibbonEvent
.RibbonPremier = InputPK5.RibbonPremier
.RibbonClassic = InputPK5.RibbonClassic
.RibbonWorld = InputPK5.RibbonWorld
.RibbonEarth = InputPK5.RibbonEarth
.RibbonNational = InputPK5.RibbonNational
.RibbonCountry = InputPK5.RibbonCountry
.RibbonChampionWorld = InputPK5.RibbonChampionWorld
.RibbonChampionNational = InputPK5.RibbonChampionNational
.RibbonChampionRegional = InputPK5.RibbonChampionRegional
.RibbonChampionBattle = InputPK5.RibbonChampionBattle
.RibbonWishing = InputPK5.RibbonWishing
.RibbonSouvenir = InputPK5.RibbonSouvenir
.RibbonSpecial = InputPK5.RibbonSpecial
End With
End Sub
Private Sub Desc()
With WC
With InputPK5
lbl_Species.Text = GetPokeName(.Dex) & " @ " & GetItemName(.Item)
lbl_IVs.Text = "IVs: " & .IVs(0) & "/" & .IVs(1) & "/" & .IVs(2) & "/" & .IVs(4) & "/" & .IVs(5) & "/" & .IVs(3)
Dim abl As UShort = Convert.ToUInt16(InputPK5.Remove(44).ToArray().Skip(42).ToArray(), 16)
lbl_Ability.Text = "Ability: " & GetAbilityName(abl)
lbl_IVs.Text = "IVs: " & .IV_HP & "/" & .IV_ATK & "/" & .IV_DEF & "/" & .IV_SPA & "/" & .IV_SPD & "/" & .IV_SPE
lbl_Ability.Text = "Ability: " & GetAbilityName(.Ability)
lbl_Nature.Text = "Nature: " & GetNature(.Nature)
lbl_Move1.Text = GetMoveName(.Moves(0))
lbl_Move2.Text = GetMoveName(.Moves(1))
lbl_Move3.Text = GetMoveName(.Moves(2))
lbl_Move4.Text = GetMoveName(.Moves(3))
lbl_Move1.Text = GetMoveName(.Move1)
lbl_Move2.Text = GetMoveName(.Move2)
lbl_Move3.Text = GetMoveName(.Move3)
lbl_Move4.Text = GetMoveName(.Move4)
TypeMove(lbl_Move1, lbl_Move1.Text)
TypeMove(lbl_Move2, lbl_Move2.Text)
TypeMove(lbl_Move3, lbl_Move3.Text)
@@ -91,8 +116,38 @@ Public Class PGFCreator
Return Natures(Num)
End Function
'Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
' Debug.Print(GetMoveID(ComboBox2.SelectedItem.ToString))
' TypeMove(lbl_Species, ComboBox2.SelectedItem.ToString)
'End Sub
Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
Select Case ComboBox2.Text
Case "Pokémon"
GroupBox3.Enabled = False
GroupBox2.Enabled = True
Array.Clear(WC.Data, 0, &H5F)
WC.CardType = 1
Case "Item"
GroupBox3.Enabled = True
GroupBox2.Enabled = False
Array.Clear(WC.Data, 0, &H5F)
WC.CardType = 2
Case "Power"
GroupBox3.Enabled = True
GroupBox2.Enabled = False
Array.Clear(WC.Data, 0, &H5F)
WC.CardType = 3
End Select
GrabValues()
'Debug.Print(GetMoveID(ComboBox2.SelectedItem.ToString))
'TypeMove(lbl_Species, ComboBox2.SelectedItem.ToString)
End Sub
Private Sub Nud_CardID_ValueChanged(sender As Object, e As EventArgs) Handles nud_CardID.ValueChanged
WC.CardID = nud_CardID.Value
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
My.Computer.FileSystem.WriteAllBytes(Main.Local & "\output.pgf", WC.Data, False)
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
WC.TID = GetItemID(ComboBox1.Text)
End Sub
End Class

View File

@@ -1,221 +1,221 @@
Public Class PK5
Public InputPK5 As Byte()
Public Data As Byte()
'Private Shared ReadOnly Unused As UShort() = {&H87, &H42, &H43, &H44, &H45, &H46, &H47, &H5E, &H63, &H64, &H65, &H66, &H67, &H86}
Public Property PID As UInteger
Get
Return BitConverter.ToUInt32(InputPK5, &H0)
Return BitConverter.ToUInt32(Data, &H0)
End Get
Set(ByVal value As UInteger)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H0)
BitConverter.GetBytes(value).CopyTo(Data, &H0)
End Set
End Property
'00 00
Public Property Checksum As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H6)
Return BitConverter.ToUInt16(Data, &H6)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H6)
BitConverter.GetBytes(value).CopyTo(Data, &H6)
End Set
End Property
Public Property Dex As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H8)
Return BitConverter.ToUInt16(Data, &H8)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H8)
BitConverter.GetBytes(value).CopyTo(Data, &H8)
End Set
End Property
Public Property Item As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &HA)
Return BitConverter.ToUInt16(Data, &HA)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &HA)
BitConverter.GetBytes(value).CopyTo(Data, &HA)
End Set
End Property
Public Property TID As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &HC)
Return BitConverter.ToUInt16(Data, &HC)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &HC)
BitConverter.GetBytes(value).CopyTo(Data, &HC)
End Set
End Property
Public Property SID As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &HE)
Return BitConverter.ToUInt16(Data, &HE)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &HE)
BitConverter.GetBytes(value).CopyTo(Data, &HE)
End Set
End Property
Public Property Exp As UInteger
Get
Return BitConverter.ToUInt32(InputPK5, &H10)
Return BitConverter.ToUInt32(Data, &H10)
End Get
Set(ByVal value As UInteger)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H10)
BitConverter.GetBytes(value).CopyTo(Data, &H10)
End Set
End Property
Public Property Friendship As Byte 'Egg Steps
Get
Return InputPK5(&H14)
Return Data(&H14)
End Get
Set(ByVal value As Byte)
InputPK5(&H14) = value
Data(&H14) = value
End Set
End Property
Public Property Ability As Byte
Get
Return InputPK5(&H15)
Return Data(&H15)
End Get
Set(ByVal value As Byte)
InputPK5(&H15) = value
Data(&H15) = value
End Set
End Property
Public Property Markings As Byte
Get
Return InputPK5(&H16)
Return Data(&H16)
End Get
Set(ByVal value As Byte)
InputPK5(&H16) = value
Data(&H16) = value
End Set
End Property
Public Property Language As Byte
Get
Return InputPK5(&H17)
Return Data(&H17)
End Get
Set(ByVal value As Byte)
InputPK5(&H17) = value
Data(&H17) = value
End Set
End Property
Public Property EV_HP As Byte
Get
Return InputPK5(&H18)
Return Data(&H18)
End Get
Set(ByVal value As Byte)
InputPK5(&H18) = value
Data(&H18) = value
End Set
End Property
Public Property EV_ATK As Byte
Get
Return InputPK5(&H19)
Return Data(&H19)
End Get
Set(ByVal value As Byte)
InputPK5(&H19) = value
Data(&H19) = value
End Set
End Property
Public Property EV_DEF As Byte
Get
Return InputPK5(&H1A)
Return Data(&H1A)
End Get
Set(ByVal value As Byte)
InputPK5(&H1A) = value
Data(&H1A) = value
End Set
End Property
Public Property EV_SPE As Byte
Get
Return InputPK5(&H1B)
Return Data(&H1B)
End Get
Set(ByVal value As Byte)
InputPK5(&H1B) = value
Data(&H1B) = value
End Set
End Property
Public Property EV_SPA As Byte
Get
Return InputPK5(&H1C)
Return Data(&H1C)
End Get
Set(ByVal value As Byte)
InputPK5(&H1C) = value
Data(&H1C) = value
End Set
End Property
Public Property EV_SPD As Byte
Get
Return InputPK5(&H1D)
Return Data(&H1D)
End Get
Set(ByVal value As Byte)
InputPK5(&H1D) = value
Data(&H1D) = value
End Set
End Property
Public Property CV_Cool As Byte
Get
Return InputPK5(&H1E)
Return Data(&H1E)
End Get
Set(ByVal value As Byte)
InputPK5(&H18) = value
Data(&H18) = value
End Set
End Property
Public Property CV_Beauty As Byte
Get
Return InputPK5(&H1F)
Return Data(&H1F)
End Get
Set(ByVal value As Byte)
InputPK5(&H19) = value
Data(&H19) = value
End Set
End Property
Public Property CV_Cute As Byte
Get
Return InputPK5(&H20)
Return Data(&H20)
End Get
Set(ByVal value As Byte)
InputPK5(&H20) = value
Data(&H20) = value
End Set
End Property
Public Property CV_Smart As Byte
Get
Return InputPK5(&H21)
Return Data(&H21)
End Get
Set(ByVal value As Byte)
InputPK5(&H21) = value
Data(&H21) = value
End Set
End Property
Public Property CV_Tough As Byte
Get
Return InputPK5(&H22)
Return Data(&H22)
End Get
Set(ByVal value As Byte)
InputPK5(&H22) = value
Data(&H22) = value
End Set
End Property
Public Property CV_Sheen As Byte
Get
Return InputPK5(&H23)
Return Data(&H23)
End Get
Set(ByVal value As Byte)
InputPK5(&H23) = value
Data(&H23) = value
End Set
End Property
Public Property Sinnoh1_Ribbons1 As Byte
Get
Return InputPK5(&H24)
Return Data(&H24)
End Get
Set(ByVal value As Byte)
InputPK5(&H24) = value
Data(&H24) = value
End Set
End Property
Public Property Sinnoh1_Ribbons2 As Byte
Get
Return InputPK5(&H25)
Return Data(&H25)
End Get
Set(ByVal value As Byte)
InputPK5(&H25) = value
Data(&H25) = value
End Set
End Property
Public Property Unova_Ribbons1 As Byte
Get
Return InputPK5(&H26)
Return Data(&H26)
End Get
Set(ByVal value As Byte)
InputPK5(&H26) = value
Data(&H26) = value
End Set
End Property
Public Property Unova_Ribbons2 As Byte
Get
Return InputPK5(&H27)
Return Data(&H27)
End Get
Set(ByVal value As Byte)
InputPK5(&H27) = value
Data(&H27) = value
End Set
End Property
#Region "Ribbons"
@@ -446,106 +446,106 @@
#End Region
Public Property Move1 As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H28)
Return BitConverter.ToUInt16(Data, &H28)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H28)
BitConverter.GetBytes(value).CopyTo(Data, &H28)
End Set
End Property
Public Property Move2 As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H2A)
Return BitConverter.ToUInt16(Data, &H2A)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H2A)
BitConverter.GetBytes(value).CopyTo(Data, &H2A)
End Set
End Property
Public Property Move3 As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H2C)
Return BitConverter.ToUInt16(Data, &H2C)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H2C)
BitConverter.GetBytes(value).CopyTo(Data, &H2C)
End Set
End Property
Public Property Move4 As UShort
Get
Return BitConverter.ToUInt16(InputPK5, &H2E)
Return BitConverter.ToUInt16(Data, &H2E)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H2E)
BitConverter.GetBytes(value).CopyTo(Data, &H2E)
End Set
End Property
Public Property Move1_PP As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H30)
Return BitConverter.ToUInt16(Data, &H30)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H30)
BitConverter.GetBytes(value).CopyTo(Data, &H30)
End Set
End Property
Public Property Move2_PP As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H31)
Return BitConverter.ToUInt16(Data, &H31)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H31)
BitConverter.GetBytes(value).CopyTo(Data, &H31)
End Set
End Property
Public Property Move3_PP As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H32)
Return BitConverter.ToUInt16(Data, &H32)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H32)
BitConverter.GetBytes(value).CopyTo(Data, &H32)
End Set
End Property
Public Property Move4_PP As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H33)
Return BitConverter.ToUInt16(Data, &H33)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H33)
BitConverter.GetBytes(value).CopyTo(Data, &H33)
End Set
End Property
Public Property Move1_PPUps As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H34)
Return BitConverter.ToUInt16(Data, &H34)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H34)
BitConverter.GetBytes(value).CopyTo(Data, &H34)
End Set
End Property
Public Property Move2_PPUps As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H35)
Return BitConverter.ToUInt16(Data, &H35)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H35)
BitConverter.GetBytes(value).CopyTo(Data, &H35)
End Set
End Property
Public Property Move3_PPUps As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H36)
Return BitConverter.ToUInt16(Data, &H36)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H36)
BitConverter.GetBytes(value).CopyTo(Data, &H36)
End Set
End Property
Public Property Move4_PPUps As Byte
Get
Return BitConverter.ToUInt16(InputPK5, &H37)
Return BitConverter.ToUInt16(Data, &H37)
End Get
Set(ByVal value As Byte)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H37)
BitConverter.GetBytes(value).CopyTo(Data, &H37)
End Set
End Property
Public Property BlocIV As UInteger
Get
Return BitConverter.ToUInt32(InputPK5, &H38)
Return BitConverter.ToUInt32(Data, &H38)
End Get
Set(ByVal value As UInteger)
BitConverter.GetBytes(value).CopyTo(InputPK5, &H38)
BitConverter.GetBytes(value).CopyTo(Data, &H38)
End Set
End Property
Public Property IV_HP As Byte
@@ -614,34 +614,34 @@
End Property
Public Property Hoenn1_Ribbons1 As Byte
Get
Return InputPK5(&H3C)
Return Data(&H3C)
End Get
Set(ByVal value As Byte)
InputPK5(&H3C) = value
Data(&H3C) = value
End Set
End Property
Public Property Hoenn1_Ribbons2 As Byte
Get
Return InputPK5(&H3D)
Return Data(&H3D)
End Get
Set(ByVal value As Byte)
InputPK5(&H3D) = value
Data(&H3D) = value
End Set
End Property
Public Property Hoenn2_Ribbons1 As Byte
Get
Return InputPK5(&H3E)
Return Data(&H3E)
End Get
Set(ByVal value As Byte)
InputPK5(&H3E) = value
Data(&H3E) = value
End Set
End Property
Public Property Hoenn2_Ribbons2 As Byte
Get
Return InputPK5(&H3F)
Return Data(&H3F)
End Get
Set(ByVal value As Byte)
InputPK5(&H3F) = value
Data(&H3F) = value
End Set
End Property
#Region "Hoenn Ribbons"
@@ -904,82 +904,411 @@
#End Region
Public Property FatefulEncounter As Boolean
Get
Return (InputPK5(&H40) And 1) = 1
Return (Data(&H40) And 1) = 1
End Get
Set(value As Boolean)
InputPK5(&H40) = CByte((InputPK5(&H40) And Not (&H1)) Or If(value, 1, 0))
Data(&H40) = CByte((Data(&H40) And Not (&H1)) Or If(value, 1, 0))
End Set
End Property
Public Property Gender As Byte
Get
Return (InputPK5(&H40) >> 1) And &H3
Return (Data(&H40) >> 1) And &H3
End Get
Set(value As Byte)
InputPK5(&H40) = CByte((InputPK5(&H40) And Not (&H6)) Or (value << 1))
Data(&H40) = CByte((Data(&H40) And Not (&H6)) Or (value << 1))
End Set
End Property
Public Property Forms As Byte '{ set => Data[0x40] = (byte)((Data[0x40] & 0x07) | (value << 3)); }
Get
Return (InputPK5(&H40) >> 3)
Return (Data(&H40) >> 3)
End Get
Set(value As Byte)
InputPK5(&H40) = CByte((InputPK5(&H40) And (&H7)) Or (value << 3))
Data(&H40) = CByte((Data(&H40) And (&H7)) Or (value << 3))
End Set
End Property
Public Property Nature As Byte
Get
Return InputPK5(&H41)
Return Data(&H41)
End Get
Set(value As Byte)
InputPK5(&H41) = CByte(value)
Data(&H41) = CByte(value)
End Set
End Property
Public Property HA As Boolean
Get
Return (InputPK5(&H42) And 1) = 1
Return (Data(&H42) And 1) = 1
End Get
Set(value As Boolean)
InputPK5(&H42) = CByte((InputPK5(&H40) And Not (&H1)) Or If(value, 1, 0))
Data(&H42) = CByte((Data(&H40) And Not (&H1)) Or If(value, 1, 0))
End Set
End Property
Public Property N As Boolean
Get
Return (InputPK5(&H42) And 2) = 2
Return (Data(&H42) And 2) = 2
End Get
Set(value As Boolean)
InputPK5(&H42) = CByte((InputPK5(&H40) And Not (&H2)) Or If(value, 2, 0))
Data(&H42) = CByte((Data(&H40) And Not (&H2)) Or If(value, 2, 0))
End Set
End Property
'00
'00 00 00 00
Public Property Nickname As String '0x14
Get
Return GetString(Data, &H48, 20)
End Get
Set(ByVal value As String)
SetString(value, 10).CopyTo(Data, &H48)
End Set
End Property
'FF FF
'00
Public Property Origin As Byte
Public Property SinnohRibbons3(1) As Byte
Public Property SinnohRibbons4(1) As Byte
Get
Return Data(&H5F)
End Get
Set(ByVal value As Byte)
Data(&H5F) = CByte(value)
End Set
End Property
Public Property Sinnoh3_Ribbons1 As Byte
Get
Return Data(&H60)
End Get
Set(ByVal value As Byte)
Data(&H60) = value
End Set
End Property
Public Property Sinnoh3_Ribbons2 As Byte
Get
Return Data(&H61)
End Get
Set(ByVal value As Byte)
Data(&H61) = value
End Set
End Property
Public Property Sinnoh4_Ribbons1 As Byte
Get
Return Data(&H62)
End Get
Set(ByVal value As Byte)
Data(&H62) = value
End Set
End Property
Public Property Sinnoh4_Ribbons2 As Byte
Get
Return Data(&H63)
End Get
Set(ByVal value As Byte)
Data(&H63) = value
End Set
End Property
#Region "Sinnoh Ribbons"
Public Property RibbonG4Cool As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 0)) = (1 << 0)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 0)) Or If(value, 1 << 0, 0))
End Set
End Property
Public Property RibbonG4CoolGreat As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 1)) = (1 << 1)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 1)) Or If(value, 1 << 1, 0))
End Set
End Property
Public Property RibbonG4CoolUltra As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 2)) = (1 << 2)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 2)) Or If(value, 1 << 2, 0))
End Set
End Property
Public Property RibbonG4CoolMaster As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 3)) = (1 << 3)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 3)) Or If(value, 1 << 3, 0))
End Set
End Property
Public Property RibbonG4Beauty As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 4)) = (1 << 4)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 4)) Or If(value, 1 << 4, 0))
End Set
End Property
Public Property RibbonG4BeautyGreat As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 5)) = (1 << 5)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 5)) Or If(value, 1 << 5, 0))
End Set
End Property
Public Property RibbonG4BeautyUltra As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 6)) = (1 << 6)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 6)) Or If(value, 1 << 6, 0))
End Set
End Property
Public Property RibbonG4BeautyMaster As Boolean
Get
Return (Sinnoh3_Ribbons1 And (1 << 7)) = (1 << 7)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons1 = CByte((Sinnoh3_Ribbons1 And Not (1 << 7)) Or If(value, 1 << 7, 0))
End Set
End Property
Public Property RibbonG4Cute As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 0)) = (1 << 0)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 0)) Or If(value, 1 << 0, 0))
End Set
End Property
Public Property RibbonG4CuteGreat As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 1)) = (1 << 1)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 1)) Or If(value, 1 << 1, 0))
End Set
End Property
Public Property RibbonG4CuteUltra As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 2)) = (1 << 2)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 2)) Or If(value, 1 << 2, 0))
End Set
End Property
Public Property RibbonG4CuteMaster As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 3)) = (1 << 3)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 3)) Or If(value, 1 << 3, 0))
End Set
End Property
Public Property RibbonG4Smart As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 4)) = (1 << 4)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 4)) Or If(value, 1 << 4, 0))
End Set
End Property
Public Property RibbonG4SmartGreat As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 5)) = (1 << 5)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 5)) Or If(value, 1 << 5, 0))
End Set
End Property
Public Property RibbonG4SmartUltra As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 6)) = (1 << 6)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 6)) Or If(value, 1 << 6, 0))
End Set
End Property
Public Property RibbonG4SmartMaster As Boolean
Get
Return (Sinnoh3_Ribbons2 And (1 << 7)) = (1 << 7)
End Get
Set(value As Boolean)
Sinnoh3_Ribbons2 = CByte((Sinnoh3_Ribbons2 And Not (1 << 7)) Or If(value, 1 << 7, 0))
End Set
End Property
Public Property RibbonG4Tough As Boolean
Get
Return (Sinnoh4_Ribbons1 And (1 << 0)) = (1 << 0)
End Get
Set(value As Boolean)
Sinnoh4_Ribbons1 = CByte((Sinnoh4_Ribbons1 And Not (1 << 0)) Or If(value, 1 << 0, 0))
End Set
End Property
Public Property RibbonG4ToughGreat As Boolean
Get
Return (Sinnoh4_Ribbons1 And (1 << 1)) = (1 << 1)
End Get
Set(value As Boolean)
Sinnoh4_Ribbons1 = CByte((Sinnoh4_Ribbons1 And Not (1 << 1)) Or If(value, 1 << 1, 0))
End Set
End Property
Public Property RibbonG4ToughUltra As Boolean
Get
Return (Sinnoh4_Ribbons1 And (1 << 2)) = (1 << 2)
End Get
Set(value As Boolean)
Sinnoh4_Ribbons1 = CByte((Sinnoh4_Ribbons1 And Not (1 << 2)) Or If(value, 1 << 2, 0))
End Set
End Property
Public Property RibbonG4ToughMaster As Boolean
Get
Return (Sinnoh4_Ribbons1 And (1 << 3)) = (1 << 3)
End Get
Set(value As Boolean)
Sinnoh4_Ribbons1 = CByte((Sinnoh4_Ribbons1 And Not (1 << 3)) Or If(value, 1 << 3, 0))
End Set
End Property
#End Region
'00 00 00 00
Public Property OT_Name As String '0xE
Get
Return GetString(Data, &H68, &HE)
End Get
Set(ByVal value As String)
SetString(value, 7).CopyTo(Data, &H68)
End Set
End Property
'FF FF
Public Property EggYear As Byte
Get
Return Data(&H78)
End Get
Set(ByVal value As Byte)
Data(&H78) = CByte(value)
End Set
End Property
Public Property EggMonth As Byte
Get
Return Data(&H79)
End Get
Set(ByVal value As Byte)
Data(&H79) = CByte(value)
End Set
End Property
Public Property EggDay As Byte
Get
Return Data(&H7A)
End Get
Set(ByVal value As Byte)
Data(&H7A) = CByte(value)
End Set
End Property
Public Property MetYear As Byte
Get
Return Data(&H7B)
End Get
Set(ByVal value As Byte)
Data(&H7B) = CByte(value)
End Set
End Property
Public Property MetMonth As Byte
Get
Return Data(&H7C)
End Get
Set(ByVal value As Byte)
Data(&H7C) = CByte(value)
End Set
End Property
Public Property MetDay As Byte
Get
Return Data(&H7D)
End Get
Set(ByVal value As Byte)
Data(&H7D) = CByte(value)
End Set
End Property
Public Property EggMet As UShort
Get
Return BitConverter.ToUInt16(Data, &H7E)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(CUShort(value)).CopyTo(Data, &H7E)
End Set
End Property
Public Property Met As UShort
Public Property Pokerus As Boolean
Get
Return BitConverter.ToUInt16(Data, &H80)
End Get
Set(ByVal value As UShort)
BitConverter.GetBytes(CUShort(value)).CopyTo(Data, &H80)
End Set
End Property
Public Property Pokerus As Byte
Get
Return Data(&H82)
End Get
Set(ByVal value As Byte)
Data(&H82) = CByte(value)
End Set
End Property
Public Property Pokerus_Strain As Byte
Get
Return Pokerus >> 4
End Get
Set(ByVal value As Byte)
Pokerus = CByte((Pokerus And &HF) Or (value << 4))
End Set
End Property
Public Property Pokerus_Days As Byte
Get
Return (Pokerus And &HF)
End Get
Set(ByVal value As Byte)
Pokerus = CByte((Pokerus And Not (&HF)) And value)
End Set
End Property
Public Property Ball As Byte
Public Property BlocOTG As Byte
Get
Return Data(&H83)
End Get
Set(ByVal value As Byte)
Data(&H83) = CByte(value)
End Set
End Property
Public Property OT_Gender As Byte
Get
Return Data(&H84) >> 7
End Get
Set(ByVal value As Byte)
Data(&H84) = CByte((Data(&H84) And Not &H80) Or (value << 7))
End Set
End Property
Public Property Met_Level As Byte
Get
Return Data(&H84) And Not (&H80)
End Get
Set(ByVal value As Byte)
Data(&H84) = CByte((Data(&H84) And &H80) Or value)
End Set
End Property
Public Property EncounterType As Byte
Get
Return Data(&H85)
End Get
Set(ByVal value As Byte)
Data(&H85) = CByte(value)
End Set
End Property
'00 00
Public Property Status As Byte
'00
'00 00
'Public Property Status As Byte
''00
''00 00
Public Property Level As Byte
Public Property Seals As Byte
Public Property CurrentStats(5) As UShort '{Current HP, Max HP, Atk, Def, Spe, SpA, SpD}
Public Property Mail As String '0x2A + OT_Name
'00 00 00 00 00 00 00 00
Get
Return Data(&H8C)
End Get
Set(ByVal value As Byte)
Data(&H8C) = CByte(value)
End Set
End Property
'Public Property Seals As Byte
'Public Property CurrentStats(5) As UShort '{Current HP, Max HP, Atk, Def, Spe, SpA, SpD}
'Public Property Mail As String '0x2A + OT_Name
''00 00 00 00 00 00 00 00
End Class

View File

@@ -10,3 +10,4 @@ C:\Users\Kochen Family\source\repos\New folder\PKMG5DC\Gen5 Distribution Creator
C:\Users\Kochen Family\source\repos\New folder\PKMG5DC\Gen5 Distribution Creator\obj\Debug\PKMG5DC.vbproj.CoreCompileInputs.cache
C:\Users\Kochen Family\source\repos\New folder\PKMG5DC\Gen5 Distribution Creator\obj\Debug\PKMG5DC.exe
C:\Users\Kochen Family\source\repos\New folder\PKMG5DC\Gen5 Distribution Creator\obj\Debug\PKMG5DC.pdb
C:\Users\Kochen Family\source\repos\New folder\PKMG5DC\Gen5 Distribution Creator\obj\Debug\PKMG5DC.vbprojAssemblyReference.cache