From ec3c591023f0633efbec79ef07576c8154ad9116 Mon Sep 17 00:00:00 2001 From: Gerry Rosen Date: Thu, 28 May 2020 13:13:23 -0700 Subject: [PATCH] Alpha 6 New: Added Editing of GearBits for Superchargers Vehicles Added VERY Early Alpha of Crystals Editor. This only identifies ONE small part that is not changeable on the Crystal. The Crystal Editor should ONLY work in Debug Builds on this program, for now. Fixed: Writing to Portal for all figures Area A/B Form not actually being committed in Alpha 5 Reading Vehicle's Neon and Shout for Area B. Fixed Portal.vb not being committed in Alpha 5 Changed: Allow Unicode Names on Any Figure that has a Nickname. This should be error resistant. Make Unified Reading and Writing Methods. No more Split Behavior between Portal and File. Created FigureIO.vb to act as the Unified Figure Input and Output Module. Moved Traps, Vehicles and Crystals to their own Game in cmbGame. Renamed "Read SwapForce Second Half" and "Write SwapForce Second Half" to "Read Second Figure" and "Write Second Figure" for more accurate reflection of what this does. Removed Auto Portal Connect. Linux and OSX Users, you can edit figures locally now. Sorry, no Universal HID solution yet. --- .vs/SkyReader-GUI/v16/.suo | Bin 157184 -> 177152 bytes SkyReader-GUI/AES.vb | 2 +- SkyReader-GUI/Area.Designer.vb | 91 ++ SkyReader-GUI/Area.resx | 120 ++ SkyReader-GUI/Area.vb | 30 + SkyReader-GUI/CRC16CCITT.vb | 2 +- SkyReader-GUI/Challenges.vb | 25 +- SkyReader-GUI/Exp.vb | 3 +- SkyReader-GUI/FigureIO.vb | 656 ++++++++++ SkyReader-GUI/Figures.vb | 580 +++++---- SkyReader-GUI/Gold.vb | 6 +- SkyReader-GUI/Hats.vb | 3 +- SkyReader-GUI/Hero.vb | 3 +- SkyReader-GUI/MiFare.vb | 2 +- SkyReader-GUI/Nickname.vb | 5 +- SkyReader-GUI/Portal.vb | 183 +++ SkyReader-GUI/Skills.vb | 3 +- SkyReader-GUI/SkyReader-GUI.vbproj | 11 +- SkyReader-GUI/System_ID.vb | 3 +- SkyReader-GUI/Web_Code.vb | 2 +- SkyReader-GUI/frmMain.Designer.vb | 1732 +++++++++++++------------ SkyReader-GUI/frmMain.resx | 19 +- SkyReader-GUI/frmMain.vb | 827 +++--------- SkyReader-GUI/frmTraps.vb | 11 +- SkyReader-GUI/frmVehicles.Designer.vb | 2 +- SkyReader-GUI/frmVehicles.vb | 47 +- 26 files changed, 2556 insertions(+), 1812 deletions(-) create mode 100644 SkyReader-GUI/Area.Designer.vb create mode 100644 SkyReader-GUI/Area.resx create mode 100644 SkyReader-GUI/Area.vb create mode 100644 SkyReader-GUI/FigureIO.vb create mode 100644 SkyReader-GUI/Portal.vb diff --git a/.vs/SkyReader-GUI/v16/.suo b/.vs/SkyReader-GUI/v16/.suo index 34ca8d359d0063d4fa158025af5f071a41147a0f..98b781bfc1b7a2ca5b399a99fb1e98501c87b400 100644 GIT binary patch literal 177152 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 Rzdo-`kv;xvOXKf%{r}P;CyD?7 delta 14460 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 _ +Partial Class frmArea + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.picB = New System.Windows.Forms.PictureBox() + Me.picA = New System.Windows.Forms.PictureBox() + CType(Me.picB, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picA, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(70, 11) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(14, 13) + Me.Label6.TabIndex = 19 + Me.Label6.Text = "B" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(21, 11) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(14, 13) + Me.Label1.TabIndex = 18 + Me.Label1.Text = "A" + ' + 'picB + ' + Me.picB.Location = New System.Drawing.Point(61, 27) + Me.picB.Name = "picB" + Me.picB.Size = New System.Drawing.Size(32, 29) + Me.picB.TabIndex = 17 + Me.picB.TabStop = False + ' + 'picA + ' + Me.picA.Location = New System.Drawing.Point(12, 27) + Me.picA.Name = "picA" + Me.picA.Size = New System.Drawing.Size(32, 29) + Me.picA.TabIndex = 16 + Me.picA.TabStop = False + ' + 'frmArea + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(120, 87) + Me.Controls.Add(Me.picA) + Me.Controls.Add(Me.Label6) + Me.Controls.Add(Me.picB) + Me.Controls.Add(Me.Label1) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmArea" + Me.Text = "Area?" + CType(Me.picB, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picA, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents Label6 As Label + Friend WithEvents Label1 As Label + Friend WithEvents picB As PictureBox + Friend WithEvents picA As PictureBox +End Class diff --git a/SkyReader-GUI/Area.resx b/SkyReader-GUI/Area.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SkyReader-GUI/Area.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SkyReader-GUI/Area.vb b/SkyReader-GUI/Area.vb new file mode 100644 index 0000000..3a7f128 --- /dev/null +++ b/SkyReader-GUI/Area.vb @@ -0,0 +1,30 @@ +Imports SkyReader_GUI.frmMain +Public Class frmArea + Private Sub frmArea_Load(sender As Object, e As EventArgs) Handles MyBase.Load + End Sub + Sub Clear() + picA.BackColor = Color.Gray + picB.BackColor = Color.Gray + End Sub + Sub Area0_1() + Application.DoEvents() + If Area0 > Area1 Then + picA.BackColor = Color.Green + picB.BackColor = Color.Gray + ElseIf Area1 > Area0 Then + picA.BackColor = Color.Gray + picB.BackColor = Color.Green + ElseIf Area0 = Area1 Then + picA.BackColor = Color.Green + picB.BackColor = Color.Gray + End If + End Sub + Private Sub frmArea_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing + picA.BackColor = Color.Gray + picB.BackColor = Color.Gray + 'Hide Form + Hide() + 'Don't actually close this Form. + e.Cancel = True + End Sub +End Class \ No newline at end of file diff --git a/SkyReader-GUI/CRC16CCITT.vb b/SkyReader-GUI/CRC16CCITT.vb index d0771c9..c975098 100644 --- a/SkyReader-GUI/CRC16CCITT.vb +++ b/SkyReader-GUI/CRC16CCITT.vb @@ -1,4 +1,4 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO Public Class CRC16CCITT 'Our Checksum that will be generated. diff --git a/SkyReader-GUI/Challenges.vb b/SkyReader-GUI/Challenges.vb index a402b2c..b97aefb 100644 --- a/SkyReader-GUI/Challenges.vb +++ b/SkyReader-GUI/Challenges.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Challenges Shared Sub GetChallenges() Dim HeroicChallengesArea0(3) As Byte @@ -55,18 +56,18 @@ Public Class Challenges Dim Counter As Integer = 0 - 'ReCheck this write + 'ReCheck this write - Do Until Counter = 4 - WholeFile(&HD6 + Counter) = HeroicChallenges(Counter) - Counter += 1 - Loop + Do Until Counter = 4 + WholeFile(&HD6 + Counter) = HeroicChallenges(Counter) + Counter += 1 + Loop - Counter = 0 - Do Until Counter = 4 - WholeFile(&H296 + Counter) = HeroicChallenges(Counter) - Counter += 1 - Loop + Counter = 0 + Do Until Counter = 4 + WholeFile(&H296 + Counter) = HeroicChallenges(Counter) + Counter += 1 + Loop - End Sub + End Sub End Class diff --git a/SkyReader-GUI/Exp.vb b/SkyReader-GUI/Exp.vb index 9e9f04b..f00aed9 100644 --- a/SkyReader-GUI/Exp.vb +++ b/SkyReader-GUI/Exp.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain 'WARNING: 'We don't Try and Catch here. Due to complexity of the values Public Class Exp diff --git a/SkyReader-GUI/FigureIO.vb b/SkyReader-GUI/FigureIO.vb new file mode 100644 index 0000000..4ff02fc --- /dev/null +++ b/SkyReader-GUI/FigureIO.vb @@ -0,0 +1,656 @@ +Imports System.IO +Imports SkyReader_GUI.frmMain +'This Class will Handle all the Figure Input and Output Functionality. And will call the Portal I/O as well. +Public Class FigureIO + 'Shared Variables + 'We need to make BR and FS public shared so other Classes can access it + Public Shared fs As FileStream + Public Shared br As BinaryReader + Public Shared WholeFile(1023) As Byte + Public Shared blnEncrypted As Boolean = False + Public Shared File As String + + + 'These three are the Unique trio. They are not like other figures + Public Shared blnTrap As Boolean = False + Public Shared BlnVehicle As Boolean = False + Public Shared blnCrystal As Boolean = False + + 'Call all the Functions for the Figure, when relevant. + 'TODO: + 'Improve Figure Identification and Handling. + + Public Shared Sub Load_File() + Dim result As DialogResult = frmMain.ofdSky.ShowDialog() + If result = DialogResult.OK Then + ' Test result. + File = frmMain.ofdSky.FileName + Else + 'Do Nothing + Exit Sub + End If + + Try + fs = New FileStream(File, FileMode.Open) + Catch ex As Exception + 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "Unable to Open " & File + 'frmLog.Show() + Exit Sub + End Try + + If fs.Length = 1024 Then + ElseIf fs.Length = 2048 Then + 'SWAP + 'MessageBox.Show("Sorry, this program does not handle a Maxlander Swap Force Dump.") + frmMain.SaldeStatus.Text = "Sorry, this program does not handle a Maxlander Swap Force Dump." + 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "Sorry, this program does not handle a Maxlander Swap Force Dump." + 'frmLog.Show() + Exit Sub + Else + 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "The Figure must be 1 Kilobyte." + 'frmLog.Show() + frmMain.SaldeStatus.Text = "The Figure must be 1 Kilobyte." + fs.Close() + Exit Sub + End If + 'Reset the Form, Just in Case + frmMain.cmbGame.SelectedIndex = 0 + frmMain.cmbHat.SelectedIndex = 0 + br = New BinaryReader(fs) + 'Put the whole file into an array. + WholeFile = br.ReadBytes(1024) + br.Close() 'close the Binary Reader + fs.Close() ' close the FileStream + + Parse_Figure() + End Sub + Public Shared Sub Parse_Figure() + 'We set the Decrypted Flag here + blnEncrypted = False + 'We set the Unique Trio Booleans to False. + BlnVehicle = False + blnTrap = False + blnCrystal = False + 'We Reset WebCode here and early. + frmMain.lblWebCode.Text = "" + 'We can get the Figure's ID and Variant ID without Needing Encryption/Decryption + 'Get Figure ID and Alter Ego/Variant + Figures.GetFigureID_AlterEgo_Variant() + + 'Because Traps, Vehciles and Crystals are writing bytes to where the Nickname would normally show up, we Do NOT attempt to Decrypt here. + 'Though, Crystals may write here? + If blnTrap = False And blnCrystal = False And BlnVehicle = False Then + blnEncrypted = Enc_Fig() + ElseIf blnTrap = True Then + blnEncrypted = Enc_Trap() + ElseIf BlnVehicle = True Then + blnEncrypted = Enc_Veh() + ElseIf blnCrystal = True Then + 'Not Implimented Yet. + End If + If blnEncrypted = True Then + Decrypt() + End If + + 'Calculate the Checksums + 'Does NOT handle Traps or Crystals, yet. + CRC16CCITT.Checksums() + 'Determine if we are going to use Area 0 or Area 1 + Figures.Area0orArea1() + frmArea.Area0_1() + + 'We break here if Vehicle, Crystal, Item or Trap + If BlnVehicle = True Then + Application.DoEvents() + Dim frmVehicles As New frmVehicles + frmVehicles.Show() + frmMain.Hide() + Exit Sub + ElseIf blnTrap = True Then + Application.DoEvents() + Dim frmTraps As New frmTraps + frmTraps.Show() + frmMain.Hide() + Exit Sub + ElseIf blnCrystal = True Then +#If DEBUG Then + Application.DoEvents() + Dim FrmCrystals As New frmCrystals + FrmCrystals.Show() + frmMain.Hide() + Exit Sub +#Else + frmMain.SaldeStatus.Text = "Crystals are not supported, yet." + Exit Sub +#End If + + End If + + 'Get the Current Skill Path. + Skills.GetSkillPath() + + 'Get the Current Hero Points value for Areas A and B. Show the Larger Value. + Hero.GetHero() + + 'Get the Current Gold values for Areas A and B. Show the Larger Value. + Gold.GetGold() + + 'Get EXP + Exp.GetEXP() + + 'Get the Current Heroic Challenges value for Areas A and B. Show the Larger Value. + Challenges.GetChallenges() + + 'Show us what Figure we got. + 'Show us the Figures ID and Variant ID + 'Figures.ShowID() + + 'Mostly complete Detection + Figures.FigureItOut() + + 'Select the Hat + Hats.ReadHats() + 'btnSaveAs.Enabled = True + 'btnWrite.Enabled = True + + Web_Code.Load() + 'btnSaveAs.Enabled = True + 'btnWrite.Enabled = True + + System_ID.ReadSystem_ID() + End Sub + + 'Write_Data write's Data to the Figures. + 'Note that Traps, Vehicles and Crystals do NOT use this because they have their own Editor that is used. + Public Shared Sub Write_Data() + If BlnVehicle = False And blnTrap = False And blnCrystal = False Then + 'Set Data that changed. + Challenges.WriteChallenges() + Exp.WriteEXP() + Gold.WriteGold() + Hero.WriteHero() + Nickname.SetNickname() + Hats.WriteHats() + If frmMain.numLevel.Value >= 10 Then + Skills.WriteSkillPath() + End If + End If + If blnTrap = True Then + 'Special Byte Data Writes + Dim ZeroTrap As Integer = 0 + 'Add 13 to reach End of Block + '194 = 0C2 + '258 = 102 + '322 = 142 + '386 = 182 + '450 = 1C2 + '515 = 202 + + 'Then we do Area 2 + '+1C0 + '642 = 282 + '706 = 2C2 + '770 = 302 + '834 = 342 + '898 = 382 + '962 = 3C2 + + Dim Trap_Name() As Integer = {194, 258, 322, 386, 450, 515, 642, 706, 770, 834, 898, 962} + Dim TrapCounter As Integer = 0 + + Do Until TrapCounter = 12 + WholeFile(Trap_Name(TrapCounter) + ZeroTrap) = &H0 + If ZeroTrap = 13 Then + ZeroTrap = 0 + TrapCounter += 1 + Else + ZeroTrap += 1 + End If + Loop + ElseIf BlnVehicle = True Then + 'Special Byte Data Writes + Dim ZeroVehicle As Integer = 0 + '192 = 0C0 + '+1C0 + '640 = 280 + Do Until ZeroVehicle = 14 + WholeFile(192 + ZeroVehicle) = &H0 + ZeroVehicle += 1 + Loop + ZeroVehicle = 0 + Do Until ZeroVehicle = 14 + WholeFile(640 + ZeroVehicle) = &H0 + ZeroVehicle += 1 + Loop + ElseIf blnCrystal = True Then + 'Special Byte Data Writes + 'Not Implimented, Yet. + End If + 'All Figures need these Functions still. + 'Write the System ID + System_ID.WriteSystem() + 'Fix Read/Write Blocks + Figures.Fixing_Bytes() + 'In theory, this will fix any issues with the Edited Dumps. + Figures.SetArea0AndArea1() + 'Fix the Checksums. + CRC16CCITT.WriteCheckSums() + End Sub + Public Shared Sub Write_Decrypted_Figure() + 'Save As + Dim dialog As New SaveFileDialog With { + .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", + .FilterIndex = 1, + .RestoreDirectory = True, + .Title = "Save Decrypted Dump", + .FileName = frmMain.lstCharacters.SelectedItem + } + If (dialog.ShowDialog = DialogResult.OK) Then + Dim NewFile As String = dialog.FileName + + If frmMain.chkSerial.Checked = True Then + CRC16CCITT.GenerateNewSerial() + End If + Figures.EditCharacterIDVariant() + Write_Data() + 'Now we write the file. + fs = New FileStream(NewFile, FileMode.OpenOrCreate) + fs.Write(WholeFile, 0, WholeFile.Length) + fs.Flush() + fs.Close() + End If + End Sub + + Public Shared Sub Write_Encrypted_Figure() + 'Save As + Dim dialog As New SaveFileDialog With { + .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", + .FilterIndex = 1, + .RestoreDirectory = True, + .Title = "Save Encrypted Dump", + .FileName = frmMain.lstCharacters.SelectedItem + } + If (dialog.ShowDialog = DialogResult.OK) Then + Dim NewFile As String = dialog.FileName + + If frmMain.chkSerial.Checked = True Then + CRC16CCITT.GenerateNewSerial() + End If + Figures.EditCharacterIDVariant() + Write_Data() + 'Since we are Writing an Encrypted Figure, I need to Re-Encrypt it. + Encrypt() + 'Now we write the file. + fs = New FileStream(NewFile, FileMode.OpenOrCreate) + fs.Write(WholeFile, 0, WholeFile.Length) + fs.Flush() + fs.Close() + 'We Decrypt after we are done. + Decrypt() + End If + End Sub + + Public Shared Sub Raw_Write() + 'Save As + Dim dialog As New SaveFileDialog With { + .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", + .FilterIndex = 1, + .RestoreDirectory = True, + .Title = "Save Decrypted Dump", + .FileName = frmMain.lstCharacters.SelectedItem + } + + If (dialog.ShowDialog = DialogResult.OK) Then + Dim NewFile As String = dialog.FileName + fs = New FileStream(NewFile, FileMode.OpenOrCreate) + fs.Write(WholeFile, 0, WholeFile.Length) + fs.Flush() + fs.Close() + End If + End Sub + 'We Put Decryption and Encrytion in this Module due to being Relevant to Figure I/O + + Public Shared Sub Decrypt() + 'Get Header Bytes + AES.Header() +#Region " Blocks " + 'The Following blocks (Offsets) are NOT encrypted + 'All Offsets are in Hex and counted as such. + '0x000 Through 0x70 + '0x0B0 + '0x0F0 + '0x130 + '0x170 + '0x1B0 + '0x1F0 + '0x230 + '0x270 + '0x2B0 + '0x2F0 + '0x330 + '0x370 + '0x3B0 + '0X3F0 + + 'Offsets that are Encrypted: (All 16 Bytes in Length) + '0x080 '128 'Need 08 + '0x090 '144 'Need 09 + '0x0A0 'Nickname A '160 'Need 0A Not A0 '150 Diff + + '0x0C0 '192 + '0x0D0 '208 + '0x0E0 '224 + + '0x100 '256 + '0x110 '272 + '0x120 '288 + + '0x140 '320 + '0x150 '336 + '0x160 '352 + + '0x180 '384 + '0x190 '400 + '0x1A0 '416 + + '0x1C0 '448 + '0x1D0 '464 + '0x1E0 '480 + + '0x200 '512 + '0x210 '528 + '0x220 '544 + + '0x240 '576 + '0x250 '592 + '0x260 'Nickname B '608 + + '0x280 '640 + '0x290 '656 + '0x2A0 '672 + + '0x2C0 '704 + '0x2D0 '720 + '0x2E0 '736 + + '0x300 '768 + '0x310 '784 + '0x320 '800 + + '0x340 '832 + '0x350 '848 + '0x360 '864 + + '0x380 '896 + '0x390 '912 + '0x3A0 '928 + + '0x3C0 '960 + '0x3D0 '976 + '0x3E0 '992 +#End Region + + Dim Offsets = New Integer() {128, 144, 160, 192, 208, 224, 256, 272, 288, 320, 336, 352, 384, 400, 416, 448, 464, 480, 512, 528, 544, 576, 592, 608, 640, 656, 672, 704, 720, 736, 768, 784, 800, 832, 848, 864, 896, 912, 928, 960, 976, 992} + Dim AreaKey = New Byte() {&H8, &H9, &HA, &HC, &HD, &HE, &H10, &H11, &H12, &H14, &H15, &H16, &H18, &H19, &H1A, &H1C, &H1D, &H1E, &H20, &H21, &H22, &H24, &H25, &H26, &H28, &H29, &H2A, &H2C, &H2D, &H2E, &H30, &H31, &H32, &H34, &H35, &H36, &H38, &H39, &H3A, &H3C, &H3D, &H3E} + 'MessageBox.Show(AreaKey.Length) + Dim AreaBytes(15) As Byte + + 'MessageBox.Show(Offsets.Length) '42 + + Dim OffsetCounter As Integer = 0 + + Dim Counter As Integer = 0 'Necessary to add one to the Byte array Offset + Dim HeadByteCounter As Integer = 0 '= 160 'Use Integer, FTW! + Do Until OffsetCounter = 42 + HeadByteCounter = Offsets(OffsetCounter) + 'MessageBox.Show(HeadByteCounter) + 'Get Bytes from the Encrypted Offset + Do Until Counter = 16 + 'Fill areaBytes, with WholeFile. + 'AreaBytes(0-15) = WholeFile(HeadByteCounter) + AreaBytes(Counter) = WholeFile(HeadByteCounter) + HeadByteCounter += 1 + Counter += 1 + Loop + + 'MessageBox.Show("ValueBytes " & BitConverter.ToString(AreaBytes)) + 'MessageBox.Show("AreaKey " & AreaKey(OffsetCounter)) + AES.GetKey(AreaKey(OffsetCounter)) + + Dim Output As Byte() = AES.AESD(AreaBytes, AES.FullKey) + + 'Fillback Loop + Counter = 0 + HeadByteCounter = Offsets(OffsetCounter) 'Use Integer, FTW! + 'Data back in + Do Until Counter = 16 + WholeFile(HeadByteCounter) = Output(Counter) + HeadByteCounter += 1 + Counter += 1 + Loop + + 'MessageBox.Show("Output " & BitConverter.ToString(Output)) + + Counter = 0 + OffsetCounter += 1 + Loop + 'MessageBox.Show("Nickname") + 'We get Nickname here, to see if it's still Encrypted. + Nickname.GetNickname() + End Sub + Public Shared Sub Encrypt() + 'Get Header Bytes + AES.Header() +#Region " Blocks " + 'The Following blocks (Offsets) are NOT encrypted + 'All Offsets are in Hex and counted as such. + '0x000 Through 0x70 + '0x0B0 + '0x0F0 + '0x130 + '0x170 + '0x1B0 + '0x1F0 + '0x230 + '0x270 + '0x2B0 + '0x2F0 + '0x330 + '0x370 + '0x3B0 + '0X3F0 + + 'Offsets that are Encrypted: (All 16 Bytes in Length) + '0x080 '128 'Need 08 + '0x090 '144 'Need 09 + '0x0A0 'Nickname A '160 'Need 0A Not A0 '150 Diff + + '0x0C0 '192 + '0x0D0 '208 + '0x0E0 '224 + + '0x100 '256 + '0x110 '272 + '0x120 '288 + + '0x140 '320 + '0x150 '336 + '0x160 '352 + + '0x180 '384 + '0x190 '400 + '0x1A0 '416 + + '0x1C0 '448 + '0x1D0 '464 + '0x1E0 '480 + + '0x200 '512 + '0x210 '528 + '0x220 '544 + + '0x240 '576 + '0x250 '592 + '0x260 'Nickname B '608 + + '0x280 '640 + '0x290 '656 + '0x2A0 '672 + + '0x2C0 '704 + '0x2D0 '720 + '0x2E0 '736 + + '0x300 '768 + '0x310 '784 + '0x320 '800 + + '0x340 '832 + '0x350 '848 + '0x360 '864 + + '0x380 '896 + '0x390 '912 + '0x3A0 '928 + + '0x3C0 '960 + '0x3D0 '976 + '0x3E0 '992 +#End Region + + Dim Offsets = New Integer() {128, 144, 160, 192, 208, 224, 256, 272, 288, 320, 336, 352, 384, 400, 416, 448, 464, 480, 512, 528, 544, 576, 592, 608, 640, 656, 672, 704, 720, 736, 768, 784, 800, 832, 848, 864, 896, 912, 928, 960, 976, 992} + Dim AreaKey = New Byte() {&H8, &H9, &HA, &HC, &HD, &HE, &H10, &H11, &H12, &H14, &H15, &H16, &H18, &H19, &H1A, &H1C, &H1D, &H1E, &H20, &H21, &H22, &H24, &H25, &H26, &H28, &H29, &H2A, &H2C, &H2D, &H2E, &H30, &H31, &H32, &H34, &H35, &H36, &H38, &H39, &H3A, &H3C, &H3D, &H3E} + 'MessageBox.Show(AreaKey.Length) + Dim AreaBytes(15) As Byte + + 'MessageBox.Show(Offsets.Length) '42 + + Dim OffsetCounter As Integer = 0 + + Dim Counter As Integer = 0 'Necessary to add one to the Byte array Offset + Dim HeadByteCounter As Integer = 0 '= 160 'Use Integer, FTW! + Do Until OffsetCounter = 42 + HeadByteCounter = Offsets(OffsetCounter) + 'MessageBox.Show(HeadByteCounter) + 'Get Bytes from the Encrypted Offset + Do Until Counter = 16 + 'Fill areaBytes, with WholeFile. + 'AreaBytes(0-15) = WholeFile(HeadByteCounter) + AreaBytes(Counter) = WholeFile(HeadByteCounter) + HeadByteCounter += 1 + Counter += 1 + Loop + + 'MessageBox.Show("ValueBytes " & BitConverter.ToString(AreaBytes)) + 'MessageBox.Show("AreaKey " & AreaKey(OffsetCounter)) + AES.GetKey(AreaKey(OffsetCounter)) + + Dim Output As Byte() = AES.AESE(AreaBytes, AES.FullKey) + + 'Fillback Loop + Counter = 0 + HeadByteCounter = Offsets(OffsetCounter) 'Use Integer, FTW! + 'Data back in + Do Until Counter = 16 + WholeFile(HeadByteCounter) = Output(Counter) + HeadByteCounter += 1 + Counter += 1 + Loop + + 'MessageBox.Show("Output " & BitConverter.ToString(Output)) + + Counter = 0 + OffsetCounter += 1 + Loop + End Sub + + Public Shared Function Enc_Fig() + 'We do a special Check for Bytes Being Set in the wrong places. + 'Check 0x150 through 0x15F + 'Check 0x310 through 0x31F + '336 = 150 + '784 = 310 + Dim ZeroFigure As Integer = 0 + Do Until ZeroFigure = 16 + If WholeFile(336 + ZeroFigure) <> &H0 Then + Return True + Else + ZeroFigure += 1 + End If + Loop + ZeroFigure = 0 + Do Until ZeroFigure = 16 + If WholeFile(784 + ZeroFigure) <> &H0 Then + Return True + Else + ZeroFigure += 1 + End If + Loop + Return False + End Function + Public Shared Function Enc_Trap() + 'We do a Clean Check for If the Trap is Encrypted, by checking places we KNOW should be blank. + 'Special Byte Data Writes + Dim ZeroTrap As Integer = 0 + 'Add 13 to reach End of Block + '194 = 0C2 + '258 = 102 + '322 = 142 + '386 = 182 + '450 = 1C2 + '515 = 202 + + 'Then we do Area 2 + '+1C0 + '642 = 282 + '706 = 2C2 + '770 = 302 + '834 = 342 + '898 = 382 + '962 = 3C2 + + Dim Trap_Name() As Integer = {194, 258, 322, 386, 450, 515, 642, 706, 770, 834, 898, 962} + Dim TrapCounter As Integer = 0 + Do Until TrapCounter = 12 + If WholeFile(Trap_Name(TrapCounter) + ZeroTrap) <> &H0 Then + Return True + Else + If ZeroTrap = 13 Then + ZeroTrap = 0 + TrapCounter += 1 + Else + ZeroTrap += 1 + End If + End If + + Loop + Return False + End Function + Public Shared Function Enc_Veh() + 'We do a Clean Check for If the Vehicle is Encrypted, by checking places we KNOW should be blank. + 'Special Byte Data Checks + Dim ZeroVehicle As Integer = 0 + '192 = 0C0 + '+1C0 + '640 = 280 + Do Until ZeroVehicle = 14 + 'WholeFile(192 + ZeroVehicle) = &H0 + If WholeFile(192 + ZeroVehicle) <> &H0 Then + Return True + Else + ZeroVehicle += 1 + End If + Loop + ZeroVehicle = 0 + Do Until ZeroVehicle = 14 + 'WholeFile(640 + ZeroVehicle) = &H0 + If WholeFile(640 + ZeroVehicle) <> &H0 Then + blnEncrypted = True + Else + ZeroVehicle += 1 + End If + Loop + 'Default Action + Return False + End Function +End Class diff --git a/SkyReader-GUI/Figures.vb b/SkyReader-GUI/Figures.vb index 4a10f8f..0cd9926 100644 --- a/SkyReader-GUI/Figures.vb +++ b/SkyReader-GUI/Figures.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Figures 'This handles all the Figure data Public Shared Var As String @@ -54,14 +55,16 @@ Public Class Figures frmMain.Save_Enc_ToolStripMenuItem.Enabled = False frmMain.Save_Dec_ToolStripMenuItem.Enabled = False frmMain.WriteSkylanderToolStripMenuItem.Enabled = False - frmMain.WriteSwapperOtherHalfToolStripMenuItem.Enabled = False + frmMain.WriteSecondFigureToolStripMenuItem.Enabled = False End Sub Shared Sub EnableWrite() frmMain.SaldeStatus.Text = "Ready" frmMain.Save_Enc_ToolStripMenuItem.Enabled = True frmMain.Save_Dec_ToolStripMenuItem.Enabled = True - frmMain.WriteSkylanderToolStripMenuItem.Enabled = True - frmMain.WriteSwapperOtherHalfToolStripMenuItem.Enabled = True + If Portal.blnPortal = True Then + frmMain.WriteSkylanderToolStripMenuItem.Enabled = True + frmMain.WriteSecondFigureToolStripMenuItem.Enabled = True + End If End Sub #Region " Write Methods " Shared Sub EditCharacterIDVariant() @@ -3658,9 +3661,8 @@ Public Class Figures Public Shared Sub FigureItOut() 'MessageBox.Show(Var & " " & Fig) If Var = "0000" Then - 'Adventures - frmMain.cmbGame.SelectedIndex = 0 - 'Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Spyro's Adventure" + ''Application.DoEvents() Select Case Fig Case "0400" 'Bash @@ -3774,73 +3776,72 @@ Public Class Figures 'Zook frmMain.lstCharacters.SelectedIndex = 36 Case "2F01" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" 'Darklight Crypt frmMain.lstCharacters.SelectedItem = "Darklight Crypt" Case "2C01" 'Dragon's Peak - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Dragon's Peak" Case "F901" 'Terrabite - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" frmMain.lstCharacters.SelectedItem = "Terrabite" Case "0E02" 'Whisper Elf - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" frmMain.lstCharacters.SelectedItem = "Whisper Elf" Case "0202" 'Gill Runt - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" frmMain.lstCharacters.SelectedItem = "Gill Runt" Case "0702" 'Trigger Snappy - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" frmMain.lstCharacters.SelectedItem = "Trigger Snappy" Case "E700" 'Piggy Bank - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Piggy Bank" Case "E800" 'Rocket Ram - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Rocket Ram" Case "E900" 'Tiki Speaky - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Tiki Speaky" Case "E600" 'Hand of Fate - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Hand of Fate" Case "C900" 'Hidden Treasure (Platinum) - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Platinum Hidden Treasure" Case "CE00" 'Winged Boots - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Winged Boots" Case "CA00" 'Healing Elixir - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Healing Elixir" Case "CF00" 'Sparks the Dragonfly - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Sparx the Dragonfly" Case "CC00" 'Time Twister - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Time Twister Hourglass" End Select ElseIf Var = "0010" Then - 'Giants - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "1C02" 'Barkley - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" frmMain.lstCharacters.SelectedItem = "Barkley" Case "6A00" 'Chill @@ -3868,7 +3869,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Sprocket" End Select ElseIf Var = "0118" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "0400" 'Series 2 Bash @@ -3944,14 +3945,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Series 2 Zook" End Select ElseIf Var = "021C" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "1200" 'Royal Double Trouble frmMain.lstCharacters.SelectedItem = "Royal Double Trouble" End Select ElseIf Var = "0214" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "6700" 'Jade Flashwing @@ -3964,7 +3965,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Punch Pop Fizz" End Select ElseIf Var = "0216" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "7000" 'Gnarly Tree Rex @@ -3979,14 +3980,12 @@ Public Class Figures 'Scarlet Ninjini frmMain.lstCharacters.SelectedItem = "Scarlet Ninjini" Case "D000" - ' MessageBox.Show("Figure D000") 'Golden Dragonfire Cannon - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Golden Dragonfire Cannon" End Select ElseIf Var = "0354" Then - 'Imaginators - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "5D02" frmMain.lstCharacters.SelectedItem = "Legendary Pit Boss" @@ -3994,7 +3993,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Legendary Tri-Tip" End Select ElseIf Var = "031C" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "0F00" 'Legendary Slam Bam @@ -4004,14 +4003,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Legendary Stealth Elf" End Select ElseIf Var = "0314" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "6400" 'Legendary Jet-Vac frmMain.lstCharacters.SelectedItem = "Legendary Jet-Vac" End Select ElseIf Var = "0316" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "6E00" 'Legendary Bouncer @@ -4024,15 +4023,15 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Legendary Ignitor" End Select ElseIf Var = "0612" Then - frmMain.cmbGame.SelectedIndex = 1 + frmMain.cmbGame.SelectedItem = "Giants" Select Case Fig Case "D100" 'Scorpion Striker - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Scorpion Striker" Case "D000" 'Dragonfire Cannon - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Dragonfire Cannon" Case "6E00" frmMain.lstCharacters.SelectedItem = "Bouncer" @@ -4083,38 +4082,37 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Tree Rex" End Select ElseIf Var = "0020" Then - frmMain.cmbGame.SelectedIndex = 2 - 'Swap Force + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "E40C" 'Sheep Wreck Island - frmMain.cmbGame.SelectedIndex = 8 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Adventure Packs" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "Sheep Wreck Island" Case "E50C" 'Tower of Time - frmMain.cmbGame.SelectedIndex = 8 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Adventure Packs" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "Tower of Time" Case "830C" 'Groove Machine - frmMain.cmbGame.SelectedIndex = 6 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Items" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "Groove Machine" Case "820C" 'Platinum Sheep - frmMain.cmbGame.SelectedIndex = 6 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Items" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "Platinum Sheep" Case "810C" 'Sky Diamond - frmMain.cmbGame.SelectedIndex = 6 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Items" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "Sky Diamond" Case "840C" 'UFO Hat - frmMain.cmbGame.SelectedIndex = 6 - Application.DoEvents() + frmMain.cmbGame.SelectedItem = "Items" + 'Application.DoEvents() frmMain.lstCharacters.SelectedItem = "UFO Hat" Case "EC03" 'Blast Zone (Bottom) @@ -4262,39 +4260,39 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Zoo Lou" Case "2D01" 'Empire of Ice - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Empire of Ice" Case "2E01" 'Pirate Seas - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Pirate Seas" Case "C800" 'Anvil Rain - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Anvil Rain" Case "3001" 'Volcanic Vault - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Volcanic Vault" Case "800C" 'Battle Hammer - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Battle Hammer" Case "C900" 'Hidden Treasure - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Hidden Treasure" Case "CB00" 'Ghost Swords - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Ghost Pirate Swords" Case "CD00" 'Sky Iron Shield - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Sky-Iron Shield" End Select ElseIf Var = "022C" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "1A00" 'Dark Stealth Elf @@ -4307,7 +4305,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Volcanic Eruptor" End Select ElseIf Var = "0224" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "EC03" 'Dark Blast Zone (Bottom) @@ -4362,14 +4360,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Quickdraw Rattle Shake (Top)" End Select ElseIf Var = "0226" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "C10B" 'Enchanted Star Strike frmMain.lstCharacters.SelectedItem = "Enchanted Star Strike" End Select ElseIf Var = "0324" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "E903" 'Legendary Free Ranger (Bottom) @@ -4388,14 +4386,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Legendary Zoo Lou" End Select ElseIf Var = "0326" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "C50B" 'Legendary Grim Creeper frmMain.lstCharacters.SelectedItem = "Legendary Grim Creeper" End Select ElseIf Var = "0528" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "0E00" 'Anchors Away Gill Grunt @@ -4450,7 +4448,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Twin Blade Chop Chop" End Select ElseIf Var = "0622" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "BE0B" 'LightCore Bumble Blast @@ -4478,16 +4476,15 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "LightCore Wham-Shell" Case "E70C" 'Arkeyan Crossbow - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Arkeyan Crossbow" Case "E60C" 'Fiery Forge - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Fiery Forge" End Select ElseIf Var = "0030" Then - 'Trap Team - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "1C02" 'Barkley @@ -4646,13 +4643,13 @@ Public Class Figures 'Wildfire frmMain.lstCharacters.SelectedItem = "Wildfire" Case "3401" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Midnight Museum" Case "3101" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Mirror of Mystery" Case "3201" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Nightmare Express" End Select ElseIf Var = "1D30" Then @@ -4662,7 +4659,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Clear Thunderbolt" End Select ElseIf Var = "0138" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "BC0B" 'Hog Wild Fryno @@ -4672,14 +4669,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Sure Shot Shroomboom" End Select ElseIf Var = "023C" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "6C00" 'Love Potion Pop Fizz frmMain.lstCharacters.SelectedItem = "Love Potion Pop Fizz" End Select ElseIf Var = "0234" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "DC01" 'Dark Food Fight @@ -4713,7 +4710,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Winterfest Lob-Star" End Select ElseIf Var = "0334" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "C501" 'Legendary Blades @@ -4730,11 +4727,11 @@ Public Class Figures Case "E600" ' MessageBox.Show("L. Hand") 'Legendary Hand of Fate - frmMain.cmbGame.SelectedIndex = 6 + frmMain.cmbGame.SelectedItem = "Items" frmMain.lstCharacters.SelectedItem = "Legendary Hand of Fate" End Select ElseIf Var = "0538" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "6C00" 'Fizzy Frenzy Pop Fizz @@ -4744,7 +4741,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Full Blast Jet-Vac" End Select ElseIf Var = "0632" Then - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" Select Case Fig Case "3401" 'Midnight Museum (Proper?) @@ -4754,14 +4751,14 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Sunscraper Spire" End Select ElseIf Var = "0938" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "0E00" 'Tidal Wave Gill Grunt frmMain.lstCharacters.SelectedItem = "Tidal Wave Gill Grunt" End Select ElseIf Var = "1038" Then - frmMain.cmbGame.SelectedIndex = 3 + frmMain.cmbGame.SelectedItem = "Trap Team" Select Case Fig Case "1E00" 'Elite Chop Chop @@ -4788,9 +4785,8 @@ Public Class Figures 'Elite Whirlwind frmMain.lstCharacters.SelectedItem = "Elite Whirlwind" End Select - 'SuperChargers ElseIf Var = "0041" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "620D" frmMain.lstCharacters.SelectedItem = "Astroblast" @@ -4834,8 +4830,8 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Turbo Charge Donkey Kong" End Select ElseIf Var = "0040" Then - frmMain.cmbGame.SelectedIndex = 4 - frmMain.BlnVehicle = True + frmMain.cmbGame.SelectedItem = "Vehicles" + BlnVehicle = True Select Case Fig Case "A80C" frmMain.lstCharacters.SelectedItem = "Barrel Blaster" @@ -4888,7 +4884,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Tomb Buggy" End Select ElseIf Var = "0E45" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "5C0D" frmMain.lstCharacters.SelectedItem = "Birthday Bash Big Bubble Pop Fizz" @@ -4896,8 +4892,8 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Missile-Tow Dive-Clops" End Select ElseIf Var = "0244" Then - frmMain.cmbGame.SelectedIndex = 4 - frmMain.BlnVehicle = True + frmMain.cmbGame.SelectedItem = "SuperChargers" + BlnVehicle = True Select Case Fig Case "A80C" frmMain.lstCharacters.SelectedItem = "Dark Barrel Blaster" @@ -4919,7 +4915,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Spring Ahead Dive Bomber" End Select ElseIf Var = "0245" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "600D" frmMain.lstCharacters.SelectedItem = "Dark Hammer Slam Bowser" @@ -4937,8 +4933,8 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Steel Plated Smash Hit" End Select ElseIf Var = "0440" Then - frmMain.cmbGame.SelectedIndex = 4 - frmMain.BlnVehicle = True + frmMain.cmbGame.SelectedItem = "SuperChargers" + BlnVehicle = True Select Case Fig Case "970C" frmMain.lstCharacters.SelectedItem = "E3 Hot Streak" @@ -4946,13 +4942,13 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Hot Streak" End Select ElseIf Var = "0D45" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "640D" frmMain.lstCharacters.SelectedItem = "Eggcited Thrillipede" End Select ElseIf Var = "1048" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "1600" frmMain.lstCharacters.SelectedItem = "Elite Boomer" @@ -4966,25 +4962,26 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Elite Zook" End Select ElseIf Var = "1138" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "1100" frmMain.lstCharacters.SelectedItem = "Elite Voodood" End Select ElseIf Var = "1545" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "480D" frmMain.lstCharacters.SelectedItem = "Frightful Fiesta" End Select ElseIf Var = "1E44" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "Vehicle" + BlnVehicle = True Select Case Fig Case "980C" frmMain.lstCharacters.SelectedItem = "Golden Hot Streak" End Select ElseIf Var = "0345" Then - frmMain.cmbGame.SelectedIndex = 4 + frmMain.cmbGame.SelectedItem = "SuperChargers" Select Case Fig Case "620D" frmMain.lstCharacters.SelectedItem = "Legendary Astroblast" @@ -4994,15 +4991,15 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Legendary Hurricane Jet-Vac" End Select ElseIf Var = "0344" Then - frmMain.cmbGame.SelectedIndex = 4 - frmMain.BlnVehicle = True + frmMain.cmbGame.SelectedItem = "Vehicle" + BlnVehicle = True Select Case Fig Case "A40C" frmMain.lstCharacters.SelectedItem = "Legendary Sun Runner" End Select 'Imaginators ElseIf Var = "0050" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "5F02" frmMain.lstCharacters.SelectedItem = "Air Strike" @@ -5102,16 +5099,16 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Wolfgang" Case "3601" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Gryphon Park Observatory" Case "3701" - frmMain.cmbGame.SelectedIndex = 8 + frmMain.cmbGame.SelectedItem = "Adventure Packs" frmMain.lstCharacters.SelectedItem = "Enchanted Elven Forest" End Select ElseIf Var = "0330" Then 'Toucan Trap Vars - frmMain.cmbGame.SelectedIndex = 7 - frmMain.blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + blnTrap = True Select Case Fig Case "D400" frmMain.lstCharacters.SelectedItem = "Breezy Bird (Toucan)" @@ -5122,8 +5119,9 @@ Public Class Figures End Select ElseIf Var = "1030" Then 'Snake Trap Vars - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D400" frmMain.lstCharacters.SelectedItem = "Cloudy Cobra (Snake)" @@ -5133,8 +5131,9 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Spooky Snake (Snake)" End Select ElseIf Var = "1830" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig 'Sword Trap Vars Case "D400" @@ -5145,9 +5144,9 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Jade Blade (Sword)" End Select ElseIf Var = "0630" Then - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" 'Jughead Trap Vars - frmMain.blnTrap = True + blnTrap = True Select Case Fig Case "D400" frmMain.lstCharacters.SelectedItem = "Drafty Decanter (Jughead)" @@ -5155,8 +5154,8 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Flood Flask (Jughead)" End Select ElseIf Var = "1130" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" 'Screamer Trap Vars Select Case Fig Case "D400" @@ -5165,8 +5164,9 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Scorching Stopper (Screamer)" End Select ElseIf Var = "0E30" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig 'Hourglas Trap Vars Case "D400" @@ -5178,8 +5178,9 @@ Public Class Figures End Select ElseIf Var = "1A30" Then 'Handstand Trap Vars - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "DA00" frmMain.lstCharacters.SelectedItem = "Ghastly Grimace (Handstand)" @@ -5190,16 +5191,18 @@ Public Class Figures End Select ElseIf Var = "1430" Then 'Spider Trap Vars - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "DA00" frmMain.lstCharacters.SelectedItem = "Shadow Spider (Spider)" End Select ElseIf Var = "0430" Then 'Orb Trap Vars - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D800" frmMain.lstCharacters.SelectedItem = "Banded Boulder (Orb)" @@ -5207,16 +5210,18 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Spirit Sphere (Orb)" End Select ElseIf Var = "0434" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "0434" frmMain.lstCharacters.SelectedItem = "Legendary Spirit Sphere (Orb)" End Select ElseIf Var = "0A30" Then - frmMain.blnTrap = True + blnTrap = True 'Hammer Trap Figures - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D800" frmMain.lstCharacters.SelectedItem = "Slag Hammer (Hammer)" @@ -5224,9 +5229,10 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Weed Whacker (Hammer)" End Select ElseIf Var = "1230" Then - frmMain.blnTrap = True + blnTrap = True 'Totem Trap Figures - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D800" frmMain.lstCharacters.SelectedItem = "Spinning Sandstorm (Totem)" @@ -5237,9 +5243,9 @@ Public Class Figures End Select ElseIf Var = "1B30" Then 'Yawn Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 - Application.DoEvents() + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + 'Application.DoEvents() Select Case Fig Case "D700" @@ -5251,8 +5257,9 @@ Public Class Figures End Select ElseIf Var = "0530" Then 'Torch Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D700" frmMain.lstCharacters.SelectedItem = "Eternal Flame (Torch)" @@ -5261,8 +5268,9 @@ Public Class Figures End Select ElseIf Var = "0130" Then 'Septer/Log Holder/Tiki Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D700" frmMain.lstCharacters.SelectedItem = "Fire Flower (Scepter)" @@ -5275,8 +5283,9 @@ Public Class Figures End Select ElseIf Var = "1730" Then 'Captain's Hat Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D700" frmMain.lstCharacters.SelectedItem = "Spark Spear (Captain's Hat)" @@ -5284,15 +5293,17 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Dream Piercer (Captain's Hat)" End Select ElseIf Var = "0F30" Then - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "DB00" frmMain.lstCharacters.SelectedItem = "Heavenly Hawk (Hawk)" End Select ElseIf Var = "1530" Then 'Rocket Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "DB00" frmMain.lstCharacters.SelectedItem = "Shining Ship (Rocket)" @@ -5301,8 +5312,9 @@ Public Class Figures End Select ElseIf Var = "0B30" Then 'Axe Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D200" frmMain.lstCharacters.SelectedItem = "Axe of Illusion (Axe)" @@ -5312,9 +5324,10 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Aqua Axe (Axe)" End Select ElseIf Var = "0830" Then - frmMain.blnTrap = True + blnTrap = True 'Skull Trap Figures - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D200" frmMain.lstCharacters.SelectedItem = "Sorcerous Skull (Skull)" @@ -5323,8 +5336,9 @@ Public Class Figures End Select ElseIf Var = "0C30" Then 'Hand Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D600" frmMain.lstCharacters.SelectedItem = "Grabbing Gadget (Hand)" @@ -5333,8 +5347,9 @@ Public Class Figures End Select ElseIf Var = "1630" Then 'Flying Helmet Trap Figures - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D600" frmMain.lstCharacters.SelectedItem = "Makers Mana (Flying Helmet)" @@ -5342,9 +5357,10 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Frost Helm (Flying Helmet)" End Select ElseIf Var = "0730" Then - frmMain.blnTrap = True + blnTrap = True 'Angel Trap Figures - frmMain.cmbGame.SelectedIndex = 7 + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D600" frmMain.lstCharacters.SelectedItem = "Automatic Angel (Angel)" @@ -5352,50 +5368,55 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Soaking Staff (Angel)" End Select ElseIf Var = "0230" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D300" frmMain.lstCharacters.SelectedItem = "Wet Walter (Log Holder)" End Select ElseIf Var = "0930" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D600" frmMain.lstCharacters.SelectedItem = "Factory Flower (Scepter)" End Select ElseIf Var = "0634" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D300" frmMain.lstCharacters.SelectedItem = "Legendary Flood Flask (Jughead)" End Select ElseIf Var = "0834" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "D500" frmMain.lstCharacters.SelectedItem = "Legendary Spectral Skull (Skull)" End Select ElseIf Var = "1E30" Then - frmMain.blnTrap = True - frmMain.cmbGame.SelectedIndex = 7 + blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + Select Case Fig Case "DC00" frmMain.lstCharacters.SelectedItem = "The Kaos Trap" End Select ElseIf Var = "1F35" Then - frmMain.cmbGame.SelectedIndex = 7 - frmMain.blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + blnTrap = True Select Case Fig Case "DC00" frmMain.lstCharacters.SelectedItem = "Ultimate Kaos Trap" End Select ElseIf Var = "D800" Then - frmMain.cmbGame.SelectedIndex = 7 - frmMain.blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + blnTrap = True Select Case Fig Case "1B30" frmMain.lstCharacters.SelectedItem = "Beam Scream (Yawn)" @@ -5403,116 +5424,126 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Heavenly Hawk (Hawk)" End Select ElseIf Var = "1750" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "EB00" frmMain.lstCharacters.SelectedItem = "Blue Mystery Chest" End Select ElseIf Var = "0150" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "EB00" frmMain.lstCharacters.SelectedItem = "Bronze Mystery Chest" End Select ElseIf Var = "0250" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "EB00" frmMain.lstCharacters.SelectedItem = "Silver Mystery Chest" End Select ElseIf Var = "D400" Then - frmMain.cmbGame.SelectedIndex = 7 - frmMain.blnTrap = True + frmMain.cmbGame.SelectedItem = "Traps" + blnTrap = True Select Case Fig Case "D400" frmMain.lstCharacters.SelectedItem = "Breezy Bird (Toucan)" End Select ElseIf Var = "0304" Then - frmMain.cmbGame.SelectedIndex = 2 + frmMain.cmbGame.SelectedItem = "Swap Force" Select Case Fig Case "F403" frmMain.lstCharacters.SelectedItem = "Legendary Night Shift (Bottom)" End Select ElseIf Var = "0350" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "EB00" frmMain.lstCharacters.SelectedItem = "Gold Mystery Chest" End Select ElseIf Var = "1950" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "EB00" frmMain.lstCharacters.SelectedItem = "Platnium Mystery Chest" End Select ElseIf Var = "0752" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" + blnCrystal = True Select Case Fig Case "AA02" frmMain.lstCharacters.SelectedItem = "Air Crystal" End Select ElseIf Var = "0652" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "B002" frmMain.lstCharacters.SelectedItem = "Dark Crystal" End Select ElseIf Var = "1D52" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "AE02" frmMain.lstCharacters.SelectedItem = "Earth Crystal" End Select ElseIf Var = "0F52" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "AD02" frmMain.lstCharacters.SelectedItem = "Fire Crystal" End Select ElseIf Var = "1E52" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "AF02" frmMain.lstCharacters.SelectedItem = "Life Crystal" End Select ElseIf Var = "0B52" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "B102" frmMain.lstCharacters.SelectedItem = "Light Crystal" End Select ElseIf Var = "0852" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "A802" frmMain.lstCharacters.SelectedItem = "Magic Crystal" End Select ElseIf Var = "1552" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "AC02" frmMain.lstCharacters.SelectedItem = "Tech Crystal" End Select ElseIf Var = "0952" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "AB02" frmMain.lstCharacters.SelectedItem = "Undead Crystal" End Select ElseIf Var = "1C52" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators Crystals" + blnCrystal = True Select Case Fig Case "A902" frmMain.lstCharacters.SelectedItem = "Water Crystal" End Select ElseIf Var = "1554" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "5B02" frmMain.lstCharacters.SelectedItem = "Candy-Coated Chopscotch" End Select ElseIf Var = "0254" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "6502" frmMain.lstCharacters.SelectedItem = "Dark Golden Queen" @@ -5532,7 +5563,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "WolfGang Dark" End Select ElseIf Var = "0D54" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "5F02" frmMain.lstCharacters.SelectedItem = "Egg Bomber Air Strike" @@ -5540,7 +5571,7 @@ Public Class Figures frmMain.lstCharacters.SelectedItem = "Hard-Boiled Flarewolf" End Select ElseIf Var = "0E54" Then - frmMain.cmbGame.SelectedIndex = 5 + frmMain.cmbGame.SelectedItem = "Imaginators" Select Case Fig Case "6D02" frmMain.lstCharacters.SelectedItem = "Jingle Bell Chompy Mage" @@ -5899,44 +5930,6 @@ Public Class Figures frmMain.lstCharacters.Items.Add("Thrillipede") frmMain.lstCharacters.Items.Add("Turbo Charge Donkey Kong") - frmMain.lstCharacters.Items.Add("--Land Vehicles--") - frmMain.lstCharacters.Items.Add("Barrel Blaster") - frmMain.lstCharacters.Items.Add("Burn-Cycle") - frmMain.lstCharacters.Items.Add("Crypt Crusher") - frmMain.lstCharacters.Items.Add("Dark Barrel Blaster") - frmMain.lstCharacters.Items.Add("Dark Hot Streak") - frmMain.lstCharacters.Items.Add("E3 Hot Streak") - frmMain.lstCharacters.Items.Add("Gold Rusher") - frmMain.lstCharacters.Items.Add("Golden Hot Streak") - frmMain.lstCharacters.Items.Add("Hot Streak") - frmMain.lstCharacters.Items.Add("Power Blue Gold Rusher") - frmMain.lstCharacters.Items.Add("Shark Tank") - frmMain.lstCharacters.Items.Add("Shield Striker") - frmMain.lstCharacters.Items.Add("Thump Truck") - frmMain.lstCharacters.Items.Add("Tomb Buggy") - - frmMain.lstCharacters.Items.Add("--Sea Vehicles--") - frmMain.lstCharacters.Items.Add("Dark Sea Shadow") - frmMain.lstCharacters.Items.Add("Dive Bomber") - frmMain.lstCharacters.Items.Add("Nitro Soda Skimmer") - frmMain.lstCharacters.Items.Add("Power Blue Splatter Splasher") - frmMain.lstCharacters.Items.Add("Reef Ripper") - frmMain.lstCharacters.Items.Add("Sea Shadow") - frmMain.lstCharacters.Items.Add("Soda Skimmer") - frmMain.lstCharacters.Items.Add("Splatter Splasher") - frmMain.lstCharacters.Items.Add("Spring Ahead Dive Bomber") - - frmMain.lstCharacters.Items.Add("--Sky Vehicles--") - frmMain.lstCharacters.Items.Add("Buzz Wing") - frmMain.lstCharacters.Items.Add("Clown Cruiser") - frmMain.lstCharacters.Items.Add("Dark Clown Cruiser") - frmMain.lstCharacters.Items.Add("Jet Stream") - frmMain.lstCharacters.Items.Add("Nitro Stealth Stinger") - frmMain.lstCharacters.Items.Add("Sky Slicer") - frmMain.lstCharacters.Items.Add("Stealth Stinger") - frmMain.lstCharacters.Items.Add("Sun Runner") - - 'frmMain.lstCharacters.Items.Add("--Villain Vehicles--") 'frmMain.lstCharacters.Items.Add("--Pandergast Vehicles--") frmMain.lstCharacters.Items.Add("--Trophies--") @@ -5997,56 +5990,6 @@ Public Class Figures frmMain.lstCharacters.Items.Add("Tri-Tip") frmMain.lstCharacters.Items.Add("Wild Storm") frmMain.lstCharacters.Items.Add("Wolfgang") - - frmMain.lstCharacters.Items.Add("--Crystals--") - 'NOTE: - 'Apparently these Figures ARE Unique Variant but I have NO information on them. :( - frmMain.lstCharacters.Items.Add("Air Crystal") - 'frmMain.lstCharacters.Items.Add("Air Acorn") - 'frmMain.lstCharacters.Items.Add("Air Angel") - 'frmMain.lstCharacters.Items.Add("Air Lantern") - frmMain.lstCharacters.Items.Add("Dark Crystal") - 'frmMain.lstCharacters.Items.Add("Dark Pyramid") - 'frmMain.lstCharacters.Items.Add("Dark Reactor") - 'frmMain.lstCharacters.Items.Add("Dark Rune") - frmMain.lstCharacters.Items.Add("Earth Crystal") - 'frmMain.lstCharacters.Items.Add("Earth Armor") - 'frmMain.lstCharacters.Items.Add("Earth Rocket") - 'frmMain.lstCharacters.Items.Add("Earth Rune") - frmMain.lstCharacters.Items.Add("Fire Crystal") - 'frmMain.lstCharacters.Items.Add("Fire Acorn") - 'frmMain.lstCharacters.Items.Add("Fire Angel") - 'frmMain.lstCharacters.Items.Add("Fire Reactor") - frmMain.lstCharacters.Items.Add("Life Crystal") - 'frmMain.lstCharacters.Items.Add("Life Acorn") - 'frmMain.lstCharacters.Items.Add("Life Claw") - 'frmMain.lstCharacters.Items.Add("Life Rocket") - 'frmMain.lstCharacters.Items.Add("Life Rune") - frmMain.lstCharacters.Items.Add("Light Crystal") - 'frmMain.lstCharacters.Items.Add("Light Angel") - 'frmMain.lstCharacters.Items.Add("Light Fanged") - 'frmMain.lstCharacters.Items.Add("Light Rune") - frmMain.lstCharacters.Items.Add("Magic Crystal") - 'frmMain.lstCharacters.Items.Add("Magic Claw") - 'frmMain.lstCharacters.Items.Add("Magic Lantern") - 'frmMain.lstCharacters.Items.Add("Magic Pyramid") - frmMain.lstCharacters.Items.Add("Tech Crystal") - 'frmMain.lstCharacters.Items.Add("Tech Armor") - 'frmMain.lstCharacters.Items.Add("Tech Pyramid") - 'frmMain.lstCharacters.Items.Add("Tech Reactor") - frmMain.lstCharacters.Items.Add("Undead Crystal") - 'frmMain.lstCharacters.Items.Add("Undead Claw") - 'frmMain.lstCharacters.Items.Add("Undead Fanged") - 'frmMain.lstCharacters.Items.Add("Undead Lantern") - frmMain.lstCharacters.Items.Add("Water Crystal") - 'frmMain.lstCharacters.Items.Add("Water Armor") - 'frmMain.lstCharacters.Items.Add("Water Fanged") - 'frmMain.lstCharacters.Items.Add("Water Rocket") - 'frmMain.lstCharacters.Items.Add("Legendary Life Acorn") - 'frmMain.lstCharacters.Items.Add("Legendary Light Fanged") - 'frmMain.lstCharacters.Items.Add("Legendary Magic Lantern") - - End Sub Shared Sub Traps() @@ -6121,10 +6064,94 @@ Public Class Figures frmMain.lstCharacters.Items.Add("The Kaos Trap") frmMain.lstCharacters.Items.Add("Ultimate Kaos Trap") End Sub + Shared Sub Vehicles() + frmMain.lstCharacters.Items.Add("--Land Vehicles--") + frmMain.lstCharacters.Items.Add("Barrel Blaster") + frmMain.lstCharacters.Items.Add("Burn-Cycle") + frmMain.lstCharacters.Items.Add("Crypt Crusher") + frmMain.lstCharacters.Items.Add("Dark Barrel Blaster") + frmMain.lstCharacters.Items.Add("Dark Hot Streak") + frmMain.lstCharacters.Items.Add("E3 Hot Streak") + frmMain.lstCharacters.Items.Add("Gold Rusher") + frmMain.lstCharacters.Items.Add("Golden Hot Streak") + frmMain.lstCharacters.Items.Add("Hot Streak") + frmMain.lstCharacters.Items.Add("Power Blue Gold Rusher") + frmMain.lstCharacters.Items.Add("Shark Tank") + frmMain.lstCharacters.Items.Add("Shield Striker") + frmMain.lstCharacters.Items.Add("Thump Truck") + frmMain.lstCharacters.Items.Add("Tomb Buggy") + + frmMain.lstCharacters.Items.Add("--Sea Vehicles--") + frmMain.lstCharacters.Items.Add("Dark Sea Shadow") + frmMain.lstCharacters.Items.Add("Dive Bomber") + frmMain.lstCharacters.Items.Add("Nitro Soda Skimmer") + frmMain.lstCharacters.Items.Add("Power Blue Splatter Splasher") + frmMain.lstCharacters.Items.Add("Reef Ripper") + frmMain.lstCharacters.Items.Add("Sea Shadow") + frmMain.lstCharacters.Items.Add("Soda Skimmer") + frmMain.lstCharacters.Items.Add("Splatter Splasher") + frmMain.lstCharacters.Items.Add("Spring Ahead Dive Bomber") + + frmMain.lstCharacters.Items.Add("--Sky Vehicles--") + frmMain.lstCharacters.Items.Add("Buzz Wing") + frmMain.lstCharacters.Items.Add("Clown Cruiser") + frmMain.lstCharacters.Items.Add("Dark Clown Cruiser") + frmMain.lstCharacters.Items.Add("Jet Stream") + frmMain.lstCharacters.Items.Add("Nitro Stealth Stinger") + frmMain.lstCharacters.Items.Add("Sky Slicer") + frmMain.lstCharacters.Items.Add("Stealth Stinger") + frmMain.lstCharacters.Items.Add("Sun Runner") + End Sub + Shared Sub Crystals() + 'Apparently these Figures ARE Unique Variant but I have NO information on them. :( + frmMain.lstCharacters.Items.Add("Air Crystal") + 'frmMain.lstCharacters.Items.Add("Air Acorn") + 'frmMain.lstCharacters.Items.Add("Air Angel") + 'frmMain.lstCharacters.Items.Add("Air Lantern") + frmMain.lstCharacters.Items.Add("Dark Crystal") + 'frmMain.lstCharacters.Items.Add("Dark Pyramid") + 'frmMain.lstCharacters.Items.Add("Dark Reactor") + 'frmMain.lstCharacters.Items.Add("Dark Rune") + frmMain.lstCharacters.Items.Add("Earth Crystal") + 'frmMain.lstCharacters.Items.Add("Earth Armor") + 'frmMain.lstCharacters.Items.Add("Earth Rocket") + 'frmMain.lstCharacters.Items.Add("Earth Rune") + frmMain.lstCharacters.Items.Add("Fire Crystal") + 'frmMain.lstCharacters.Items.Add("Fire Acorn") + 'frmMain.lstCharacters.Items.Add("Fire Angel") + 'frmMain.lstCharacters.Items.Add("Fire Reactor") + frmMain.lstCharacters.Items.Add("Life Crystal") + 'frmMain.lstCharacters.Items.Add("Life Acorn") + 'frmMain.lstCharacters.Items.Add("Life Claw") + 'frmMain.lstCharacters.Items.Add("Life Rocket") + 'frmMain.lstCharacters.Items.Add("Life Rune") + frmMain.lstCharacters.Items.Add("Light Crystal") + 'frmMain.lstCharacters.Items.Add("Light Angel") + 'frmMain.lstCharacters.Items.Add("Light Fanged") + 'frmMain.lstCharacters.Items.Add("Light Rune") + frmMain.lstCharacters.Items.Add("Magic Crystal") + 'frmMain.lstCharacters.Items.Add("Magic Claw") + 'frmMain.lstCharacters.Items.Add("Magic Lantern") + 'frmMain.lstCharacters.Items.Add("Magic Pyramid") + frmMain.lstCharacters.Items.Add("Tech Crystal") + 'frmMain.lstCharacters.Items.Add("Tech Armor") + 'frmMain.lstCharacters.Items.Add("Tech Pyramid") + 'frmMain.lstCharacters.Items.Add("Tech Reactor") + frmMain.lstCharacters.Items.Add("Undead Crystal") + 'frmMain.lstCharacters.Items.Add("Undead Claw") + 'frmMain.lstCharacters.Items.Add("Undead Fanged") + 'frmMain.lstCharacters.Items.Add("Undead Lantern") + frmMain.lstCharacters.Items.Add("Water Crystal") + 'frmMain.lstCharacters.Items.Add("Water Armor") + 'frmMain.lstCharacters.Items.Add("Water Fanged") + 'frmMain.lstCharacters.Items.Add("Water Rocket") + 'frmMain.lstCharacters.Items.Add("Legendary Life Acorn") + 'frmMain.lstCharacters.Items.Add("Legendary Light Fanged") + 'frmMain.lstCharacters.Items.Add("Legendary Magic Lantern") + End Sub 'These Items are mostly, universal. 'As such, not going to restrict them based on game. Shared Sub Items() - frmMain.lstCharacters.Items.Add("--Adventures--") frmMain.lstCharacters.Items.Add("Anvil Rain") frmMain.lstCharacters.Items.Add("Ghost Pirate Swords") @@ -6159,7 +6186,6 @@ Public Class Figures frmMain.lstCharacters.Items.Add("Sea Trophy") frmMain.lstCharacters.Items.Add("Sky Trophy") 'Chests - 'I need to do more with these. Can I Clone them by editing Serial? frmMain.lstCharacters.Items.Add("--Imaginators--") frmMain.lstCharacters.Items.Add("Blue Imaginite Mystery Chest") frmMain.lstCharacters.Items.Add("Bronze Imaginite Mystery Chest") diff --git a/SkyReader-GUI/Gold.vb b/SkyReader-GUI/Gold.vb index 7252b7a..6740942 100644 --- a/SkyReader-GUI/Gold.vb +++ b/SkyReader-GUI/Gold.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Gold 'Remember all values are offset 1C0 Shared Sub GetGold() @@ -25,7 +26,6 @@ Public Class Gold Catch ex As Exception GoldValueArea1 = 0 End Try - If GoldValueArea0 > 65000 Then GoldValueArea0 = 65000 End If @@ -46,6 +46,8 @@ Public Class Gold Shared Sub WriteGold() Dim intGold As UShort = frmMain.numGold.Value Dim Gold As Byte() = BitConverter.GetBytes(intGold) + 'MessageBox.Show("G0: " & Gold(0)) + 'MessageBox.Show("G1: " & Gold(1)) 'If Area0 > Area1 Then 'Area 0 Gold WholeFile(&H83) = Gold(0) diff --git a/SkyReader-GUI/Hats.vb b/SkyReader-GUI/Hats.vb index 2436e2a..5d78707 100644 --- a/SkyReader-GUI/Hats.vb +++ b/SkyReader-GUI/Hats.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Hats Shared AdventureHat(1) As Byte Shared GiantHat(1) As Byte diff --git a/SkyReader-GUI/Hero.vb b/SkyReader-GUI/Hero.vb index 1080012..d52f99e 100644 --- a/SkyReader-GUI/Hero.vb +++ b/SkyReader-GUI/Hero.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Hero Shared Sub GetHero() Dim HeroArea0(1) As Byte diff --git a/SkyReader-GUI/MiFare.vb b/SkyReader-GUI/MiFare.vb index a056f11..a7f713e 100644 --- a/SkyReader-GUI/MiFare.vb +++ b/SkyReader-GUI/MiFare.vb @@ -1,5 +1,5 @@ Imports System.IO -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO Public Class MiFare Shared Sub Detection() 'As such this will only work so far. diff --git a/SkyReader-GUI/Nickname.vb b/SkyReader-GUI/Nickname.vb index cc43643..00e4b5e 100644 --- a/SkyReader-GUI/Nickname.vb +++ b/SkyReader-GUI/Nickname.vb @@ -1,5 +1,6 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO Imports System.Text +Imports SkyReader_GUI.frmMain Public Class Nickname @@ -59,7 +60,7 @@ Public Class Nickname BadName1 = IsUnicode(FullName1) If BadName1 = True And BadName0 = True Then - MessageBox.Show("Loaded Encrypted Figure") + 'MessageBox.Show("Loaded Encrypted Figure") blnEncrypted = True End If diff --git a/SkyReader-GUI/Portal.vb b/SkyReader-GUI/Portal.vb new file mode 100644 index 0000000..e7c432d --- /dev/null +++ b/SkyReader-GUI/Portal.vb @@ -0,0 +1,183 @@ +Imports System.Threading +Imports Microsoft.Win32.SafeHandles + +Imports SkyReader_GUI.FigureIO +Public Class Portal + + Shared outRepoBytes(32) As Byte + Shared inRepoBytes(32) As Byte + Public Shared blnAccess As Boolean = False + Public Shared BlnPortalUsed As Boolean = False + + Public Shared portalHandle As SafeFileHandle + 'Connect to the Portal, using HID + + + + Public Shared blnPortal As Boolean = False + + Shared Sub ReadPortal() + 'reads skylander data from the portal + Dim timeout As Integer + Dim readBlock As Integer + blnAccess = False + + 'Reset portal + outRepoBytes(1) = &H52 'R + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(50) + + outRepoBytes(1) = &H41 'A + outRepoBytes(2) = 1 + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(500) + + 'set to "read first skylander" mode + outRepoBytes(1) = &H51 'Q + outRepoBytes(2) = &H20 'First Figure + readBlock = 0 + Do + 'send report and flush hid queue + outRepoBytes(3) = readBlock + outputReport(portalHandle, outRepoBytes) + flushHid(portalHandle) + timeout = 0 + Do + 'read the reply from the portal, the portal replies between 1 and 2 reports later + inputReport(portalHandle, inRepoBytes) + timeout = timeout + 1 + Loop Until inRepoBytes(1) <> &H53 Or timeout = 4 '53 is S + + If timeout <> 4 Then + 'if we didn't time out we copy the the bytes into the array + Array.Copy(inRepoBytes, 4, WholeFile, readBlock * 16, 16) + readBlock = readBlock + 1 + End If + 'MessageBox.Show(AES.ByteArrayToString(inRepoBytes).ToUpper) + Loop While readBlock <= &H3F 'Last Block + frmMain.Save_Enc_ToolStripMenuItem.Enabled = True + frmMain.Save_Dec_ToolStripMenuItem.Enabled = True + MiFare.Detection() + If blnAccess = True Then + MessageBox.Show("Error. Invalid Control Blocks found.") + Exit Sub + End If + + BlnPortalUsed = True + End Sub + + Shared Sub Portal_Write() + + 'Magic. + 'write data to skylander in portal + Dim writeBlock As Integer + 'reset portal + outRepoBytes(1) = &H52 'R + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(50) + + outRepoBytes(1) = &H41 'A + outRepoBytes(2) = 1 + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(500) + + 'set to "write first skylander" mode + outRepoBytes(1) = &H57 'W + outRepoBytes(2) = &H20 'First Figure + writeBlock = 5 + Do + outRepoBytes(3) = writeBlock + 'we get the bytes from the data array and put out the report, we need to wait a bit before sending another write report too + Array.Copy(WholeFile, writeBlock * 16, outRepoBytes, 4, 16) + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(100) + writeBlock = writeBlock + 1 + Loop While writeBlock <= &H3F 'Last Block + frmMain.SaldeStatus.Text = "Save Completed to portal" + End Sub + + Shared Sub Portal_Duo_Read() + 'Same as read from portal, but reads the second position skylander (usually the Top half of a Swap Force) + Dim timeout As Integer + Dim readBlock As Integer + + outRepoBytes(1) = &H52 'R + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(50) + + outRepoBytes(1) = &H41 'A + outRepoBytes(2) = 1 + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(500) + + outRepoBytes(1) = &H51 'Q + outRepoBytes(2) = &H21 'Second Figure + readBlock = 0 + Do + outRepoBytes(3) = readBlock + outputReport(portalHandle, outRepoBytes) + flushHid(portalHandle) + timeout = 0 + Do + inputReport(portalHandle, inRepoBytes) + timeout = timeout + 1 + Loop Until inRepoBytes(1) <> &H53 Or timeout = 4 '53 is S + + If timeout <> 4 Then + Array.Copy(inRepoBytes, 4, WholeFile, readBlock * 16, 16) + readBlock = readBlock + 1 + End If + + Loop While readBlock <= &H3F 'Final Block + 'Parse_Figure() + + BlnPortalUsed = True + End Sub + + Shared Sub Portal_Duo_Write() + 'Magic. + 'write data to skylander in portal + Dim writeBlock As Integer + 'reset portal + outRepoBytes(1) = &H52 'R + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(50) + + outRepoBytes(1) = &H41 'A + outRepoBytes(2) = 1 + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(500) + + 'set to "write first skylander" mode + outRepoBytes(1) = &H57 'W + outRepoBytes(2) = &H21 'Second Figure + writeBlock = 5 + + 'I need to look into this further + 'I need to and Write ALL bytes/Blocks + Do + outRepoBytes(3) = writeBlock + 'we get the bytes from the data array and put out the report, we need to wait a bit before sending another write report too + + Array.Copy(WholeFile, writeBlock * 16, outRepoBytes, 4, 16) + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(100) + writeBlock = writeBlock + 1 + Loop While writeBlock <= &H3F 'Last Block 63 + + frmMain.SaldeStatus.Text = "Save Completed to portal" + End Sub + + Shared Sub Portal_Rainbow(Red As Byte, Green As Byte, Blue As Byte) + blnAccess = False + + 'Reset portal + outRepoBytes(1) = &H43 'C + outRepoBytes(2) = Red 'Red + outRepoBytes(3) = Green 'Green + outRepoBytes(4) = Blue 'Blue + + outputReport(portalHandle, outRepoBytes) + Thread.Sleep(50) + End Sub +End Class diff --git a/SkyReader-GUI/Skills.vb b/SkyReader-GUI/Skills.vb index 2826dfe..e20c332 100644 --- a/SkyReader-GUI/Skills.vb +++ b/SkyReader-GUI/Skills.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class Skills Shared Sub GetSkillPath() Dim SkillPathArea0(1) As Byte diff --git a/SkyReader-GUI/SkyReader-GUI.vbproj b/SkyReader-GUI/SkyReader-GUI.vbproj index d1fdd4a..9f118ac 100644 --- a/SkyReader-GUI/SkyReader-GUI.vbproj +++ b/SkyReader-GUI/SkyReader-GUI.vbproj @@ -107,12 +107,13 @@ + - - frmCrystal.vb + + frmCrystals.vb - + Form @@ -173,8 +174,8 @@ Area.vb - - frmCrystal.vb + + frmCrystals.vb frmLog.vb diff --git a/SkyReader-GUI/System_ID.vb b/SkyReader-GUI/System_ID.vb index abae1d5..6860e65 100644 --- a/SkyReader-GUI/System_ID.vb +++ b/SkyReader-GUI/System_ID.vb @@ -1,4 +1,5 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class System_ID Shared System_One(1) As Byte Shared System_Two(1) As Byte diff --git a/SkyReader-GUI/Web_Code.vb b/SkyReader-GUI/Web_Code.vb index 39658b5..0652e59 100644 --- a/SkyReader-GUI/Web_Code.vb +++ b/SkyReader-GUI/Web_Code.vb @@ -1,4 +1,4 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO Public Class Web_Code Dim blnLoading_Web_Code As Boolean = False Shared Sub Load() diff --git a/SkyReader-GUI/frmMain.Designer.vb b/SkyReader-GUI/frmMain.Designer.vb index f516385..9e85c80 100644 --- a/SkyReader-GUI/frmMain.Designer.vb +++ b/SkyReader-GUI/frmMain.Designer.vb @@ -22,831 +22,900 @@ Partial Class frmMain 'Do not modify it using the code editor. Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) - Me.ofdSky = New System.Windows.Forms.OpenFileDialog() - Me.lblGame = New System.Windows.Forms.Label() - Me.lblHeader = New System.Windows.Forms.Label() - Me.picHeader = New System.Windows.Forms.PictureBox() - Me.grpChecksums = New System.Windows.Forms.GroupBox() - Me.picSerial = New System.Windows.Forms.PictureBox() - Me.lblSerial = New System.Windows.Forms.Label() - Me.picArea1Type4 = New System.Windows.Forms.PictureBox() - Me.lblArea2Type4 = New System.Windows.Forms.Label() - Me.picArea0Type4 = New System.Windows.Forms.PictureBox() - Me.lblArea1Type4 = New System.Windows.Forms.Label() - Me.picArea1Type3 = New System.Windows.Forms.PictureBox() - Me.picArea1Type2 = New System.Windows.Forms.PictureBox() - Me.lblArea2Type3 = New System.Windows.Forms.Label() - Me.lblArea2Type2 = New System.Windows.Forms.Label() - Me.picArea1Type1 = New System.Windows.Forms.PictureBox() - Me.lblArea2Type1 = New System.Windows.Forms.Label() - Me.picArea0Type3 = New System.Windows.Forms.PictureBox() - Me.picArea0Type2 = New System.Windows.Forms.PictureBox() - Me.lblArea1Type3 = New System.Windows.Forms.Label() - Me.lblArea1Type2 = New System.Windows.Forms.Label() - Me.picArea0Type1 = New System.Windows.Forms.PictureBox() - Me.lblArea1Type1 = New System.Windows.Forms.Label() - Me.lblGold = New System.Windows.Forms.Label() - Me.numGold = New System.Windows.Forms.NumericUpDown() - Me.numHeroicChallenges = New System.Windows.Forms.NumericUpDown() - Me.lblChallenge = New System.Windows.Forms.Label() - Me.lblHeroPoints = New System.Windows.Forms.Label() - Me.numHero = New System.Windows.Forms.NumericUpDown() - Me.grpSkillPath = New System.Windows.Forms.GroupBox() - Me.radNone = New System.Windows.Forms.RadioButton() - Me.radRight = New System.Windows.Forms.RadioButton() - Me.radLeft = New System.Windows.Forms.RadioButton() - Me.numLevel = New System.Windows.Forms.NumericUpDown() - Me.lblLevel = New System.Windows.Forms.Label() - Me.cmbGame = New System.Windows.Forms.ComboBox() - Me.lstCharacters = New System.Windows.Forms.ListBox() - Me.lblHat = New System.Windows.Forms.Label() - Me.cmbHat = New System.Windows.Forms.ComboBox() - Me.lblName = New System.Windows.Forms.Label() - Me.txtName = New System.Windows.Forms.TextBox() - Me.mnuPurp = New System.Windows.Forms.MenuStrip() - Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.OpenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.Save_Enc_ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.Save_Dec_ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ClearToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CloseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.PortalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ReadSkylanderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.WriteSkylanderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ReadSwapperOtherHalfToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.WriteSwapperOtherHalfToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ConnectToPortalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.StatusPurp = New System.Windows.Forms.StatusStrip() - Me.SaldeStatus = New System.Windows.Forms.ToolStripStatusLabel() - Me.btnReset = New System.Windows.Forms.Button() - Me.bgWritePortal = New System.ComponentModel.BackgroundWorker() - Me.bgReadPortal = New System.ComponentModel.BackgroundWorker() - Me.tmrPortal = New System.Windows.Forms.Timer(Me.components) - Me.btnShowData = New System.Windows.Forms.Button() - Me.chkSerial = New System.Windows.Forms.CheckBox() - Me.lblData = New System.Windows.Forms.Label() - Me.btnClearData = New System.Windows.Forms.Button() - Me.tmrSkyKey = New System.Windows.Forms.Timer(Me.components) - Me.lblWebCode_Text = New System.Windows.Forms.Label() - Me.lblWebCode = New System.Windows.Forms.Label() - Me.lblSystem = New System.Windows.Forms.Label() - Me.cmbSystem = New System.Windows.Forms.ComboBox() - Me.btnTraps = New System.Windows.Forms.Button() - Me.btnVehicles = New System.Windows.Forms.Button() - Me.btnRaw = New System.Windows.Forms.Button() - Me.grpDebug = New System.Windows.Forms.GroupBox() - Me.btnArea = New System.Windows.Forms.Button() - Me.bgReadPortalDuo = New System.ComponentModel.BackgroundWorker() - Me.bgWritePortalDuo = New System.ComponentModel.BackgroundWorker() - CType(Me.picHeader, System.ComponentModel.ISupportInitialize).BeginInit() - Me.grpChecksums.SuspendLayout() - CType(Me.picSerial, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea1Type4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea0Type4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea1Type3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea1Type2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea1Type1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea0Type3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea0Type2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.picArea0Type1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.numGold, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.numHeroicChallenges, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.numHero, System.ComponentModel.ISupportInitialize).BeginInit() - Me.grpSkillPath.SuspendLayout() - CType(Me.numLevel, System.ComponentModel.ISupportInitialize).BeginInit() - Me.mnuPurp.SuspendLayout() - Me.StatusPurp.SuspendLayout() - Me.grpDebug.SuspendLayout() - Me.SuspendLayout() - ' - 'ofdSky - ' - Me.ofdSky.Title = "Choose File" - ' - 'lblGame - ' - Me.lblGame.AutoSize = True - Me.lblGame.Location = New System.Drawing.Point(16, 36) - Me.lblGame.Name = "lblGame" - Me.lblGame.Size = New System.Drawing.Size(35, 13) - Me.lblGame.TabIndex = 3 - Me.lblGame.Text = "Game" - ' - 'lblHeader - ' - Me.lblHeader.AutoSize = True - Me.lblHeader.Location = New System.Drawing.Point(18, 18) - Me.lblHeader.Name = "lblHeader" - Me.lblHeader.Size = New System.Drawing.Size(42, 13) - Me.lblHeader.TabIndex = 7 - Me.lblHeader.Text = "Header" - ' - 'picHeader - ' - Me.picHeader.BackColor = System.Drawing.Color.Yellow - Me.picHeader.Location = New System.Drawing.Point(28, 34) - Me.picHeader.Name = "picHeader" - Me.picHeader.Size = New System.Drawing.Size(22, 24) - Me.picHeader.TabIndex = 8 - Me.picHeader.TabStop = False - ' - 'grpChecksums - ' - Me.grpChecksums.BackColor = System.Drawing.SystemColors.Control - Me.grpChecksums.Controls.Add(Me.picSerial) - Me.grpChecksums.Controls.Add(Me.lblSerial) - Me.grpChecksums.Controls.Add(Me.picArea1Type4) - Me.grpChecksums.Controls.Add(Me.lblArea2Type4) - Me.grpChecksums.Controls.Add(Me.picArea0Type4) - Me.grpChecksums.Controls.Add(Me.lblArea1Type4) - Me.grpChecksums.Controls.Add(Me.picArea1Type3) - Me.grpChecksums.Controls.Add(Me.picArea1Type2) - Me.grpChecksums.Controls.Add(Me.lblArea2Type3) - Me.grpChecksums.Controls.Add(Me.lblArea2Type2) - Me.grpChecksums.Controls.Add(Me.picArea1Type1) - Me.grpChecksums.Controls.Add(Me.lblArea2Type1) - Me.grpChecksums.Controls.Add(Me.picArea0Type3) - Me.grpChecksums.Controls.Add(Me.picArea0Type2) - Me.grpChecksums.Controls.Add(Me.lblArea1Type3) - Me.grpChecksums.Controls.Add(Me.lblArea1Type2) - Me.grpChecksums.Controls.Add(Me.picArea0Type1) - Me.grpChecksums.Controls.Add(Me.lblArea1Type1) - Me.grpChecksums.Controls.Add(Me.picHeader) - Me.grpChecksums.Controls.Add(Me.lblHeader) - Me.grpChecksums.Location = New System.Drawing.Point(12, 315) - Me.grpChecksums.Name = "grpChecksums" - Me.grpChecksums.Size = New System.Drawing.Size(394, 113) - Me.grpChecksums.TabIndex = 9 - Me.grpChecksums.TabStop = False - Me.grpChecksums.Text = "Checksums" - ' - 'picSerial - ' - Me.picSerial.BackColor = System.Drawing.Color.Yellow - Me.picSerial.Location = New System.Drawing.Point(28, 78) - Me.picSerial.Name = "picSerial" - Me.picSerial.Size = New System.Drawing.Size(22, 24) - Me.picSerial.TabIndex = 26 - Me.picSerial.TabStop = False - ' - 'lblSerial - ' - Me.lblSerial.AutoSize = True - Me.lblSerial.Location = New System.Drawing.Point(23, 62) - Me.lblSerial.Name = "lblSerial" - Me.lblSerial.Size = New System.Drawing.Size(33, 13) - Me.lblSerial.TabIndex = 25 - Me.lblSerial.Text = "Serial" - ' - 'picArea1Type4 - ' - Me.picArea1Type4.BackColor = System.Drawing.Color.Yellow - Me.picArea1Type4.Location = New System.Drawing.Point(326, 78) - Me.picArea1Type4.Name = "picArea1Type4" - Me.picArea1Type4.Size = New System.Drawing.Size(22, 24) - Me.picArea1Type4.TabIndex = 24 - Me.picArea1Type4.TabStop = False - ' - 'lblArea2Type4 - ' - Me.lblArea2Type4.AutoSize = True - Me.lblArea2Type4.Location = New System.Drawing.Point(300, 62) - Me.lblArea2Type4.Name = "lblArea2Type4" - Me.lblArea2Type4.Size = New System.Drawing.Size(74, 13) - Me.lblArea2Type4.TabIndex = 23 - Me.lblArea2Type4.Text = "Area 1 Type 4" - ' - 'picArea0Type4 - ' - Me.picArea0Type4.BackColor = System.Drawing.Color.Yellow - Me.picArea0Type4.Location = New System.Drawing.Point(326, 34) - Me.picArea0Type4.Name = "picArea0Type4" - Me.picArea0Type4.Size = New System.Drawing.Size(22, 24) - Me.picArea0Type4.TabIndex = 22 - Me.picArea0Type4.TabStop = False - ' - 'lblArea1Type4 - ' - Me.lblArea1Type4.AutoSize = True - Me.lblArea1Type4.Location = New System.Drawing.Point(300, 18) - Me.lblArea1Type4.Name = "lblArea1Type4" - Me.lblArea1Type4.Size = New System.Drawing.Size(74, 13) - Me.lblArea1Type4.TabIndex = 21 - Me.lblArea1Type4.Text = "Area 0 Type 4" - ' - 'picArea1Type3 - ' - Me.picArea1Type3.BackColor = System.Drawing.Color.Yellow - Me.picArea1Type3.Location = New System.Drawing.Point(247, 78) - Me.picArea1Type3.Name = "picArea1Type3" - Me.picArea1Type3.Size = New System.Drawing.Size(22, 24) - Me.picArea1Type3.TabIndex = 20 - Me.picArea1Type3.TabStop = False - ' - 'picArea1Type2 - ' - Me.picArea1Type2.BackColor = System.Drawing.Color.Yellow - Me.picArea1Type2.Location = New System.Drawing.Point(167, 78) - Me.picArea1Type2.Name = "picArea1Type2" - Me.picArea1Type2.Size = New System.Drawing.Size(22, 24) - Me.picArea1Type2.TabIndex = 19 - Me.picArea1Type2.TabStop = False - ' - 'lblArea2Type3 - ' - Me.lblArea2Type3.AutoSize = True - Me.lblArea2Type3.Location = New System.Drawing.Point(221, 62) - Me.lblArea2Type3.Name = "lblArea2Type3" - Me.lblArea2Type3.Size = New System.Drawing.Size(74, 13) - Me.lblArea2Type3.TabIndex = 18 - Me.lblArea2Type3.Text = "Area 1 Type 3" - ' - 'lblArea2Type2 - ' - Me.lblArea2Type2.AutoSize = True - Me.lblArea2Type2.Location = New System.Drawing.Point(141, 62) - Me.lblArea2Type2.Name = "lblArea2Type2" - Me.lblArea2Type2.Size = New System.Drawing.Size(74, 13) - Me.lblArea2Type2.TabIndex = 17 - Me.lblArea2Type2.Text = "Area 1 Type 2" - ' - 'picArea1Type1 - ' - Me.picArea1Type1.BackColor = System.Drawing.Color.Yellow - Me.picArea1Type1.Location = New System.Drawing.Point(88, 78) - Me.picArea1Type1.Name = "picArea1Type1" - Me.picArea1Type1.Size = New System.Drawing.Size(22, 24) - Me.picArea1Type1.TabIndex = 16 - Me.picArea1Type1.TabStop = False - ' - 'lblArea2Type1 - ' - Me.lblArea2Type1.AutoSize = True - Me.lblArea2Type1.Location = New System.Drawing.Point(62, 62) - Me.lblArea2Type1.Name = "lblArea2Type1" - Me.lblArea2Type1.Size = New System.Drawing.Size(74, 13) - Me.lblArea2Type1.TabIndex = 15 - Me.lblArea2Type1.Text = "Area 1 Type 1" - ' - 'picArea0Type3 - ' - Me.picArea0Type3.BackColor = System.Drawing.Color.Yellow - Me.picArea0Type3.Location = New System.Drawing.Point(247, 34) - Me.picArea0Type3.Name = "picArea0Type3" - Me.picArea0Type3.Size = New System.Drawing.Size(22, 24) - Me.picArea0Type3.TabIndex = 14 - Me.picArea0Type3.TabStop = False - ' - 'picArea0Type2 - ' - Me.picArea0Type2.BackColor = System.Drawing.Color.Yellow - Me.picArea0Type2.Location = New System.Drawing.Point(167, 34) - Me.picArea0Type2.Name = "picArea0Type2" - Me.picArea0Type2.Size = New System.Drawing.Size(22, 24) - Me.picArea0Type2.TabIndex = 13 - Me.picArea0Type2.TabStop = False - ' - 'lblArea1Type3 - ' - Me.lblArea1Type3.AutoSize = True - Me.lblArea1Type3.Location = New System.Drawing.Point(221, 18) - Me.lblArea1Type3.Name = "lblArea1Type3" - Me.lblArea1Type3.Size = New System.Drawing.Size(74, 13) - Me.lblArea1Type3.TabIndex = 12 - Me.lblArea1Type3.Text = "Area 0 Type 3" - ' - 'lblArea1Type2 - ' - Me.lblArea1Type2.AutoSize = True - Me.lblArea1Type2.Location = New System.Drawing.Point(141, 18) - Me.lblArea1Type2.Name = "lblArea1Type2" - Me.lblArea1Type2.Size = New System.Drawing.Size(74, 13) - Me.lblArea1Type2.TabIndex = 11 - Me.lblArea1Type2.Text = "Area 0 Type 2" - ' - 'picArea0Type1 - ' - Me.picArea0Type1.BackColor = System.Drawing.Color.Yellow - Me.picArea0Type1.Location = New System.Drawing.Point(88, 34) - Me.picArea0Type1.Name = "picArea0Type1" - Me.picArea0Type1.Size = New System.Drawing.Size(22, 24) - Me.picArea0Type1.TabIndex = 10 - Me.picArea0Type1.TabStop = False - ' - 'lblArea1Type1 - ' - Me.lblArea1Type1.AutoSize = True - Me.lblArea1Type1.Location = New System.Drawing.Point(62, 18) - Me.lblArea1Type1.Name = "lblArea1Type1" - Me.lblArea1Type1.Size = New System.Drawing.Size(74, 13) - Me.lblArea1Type1.TabIndex = 9 - Me.lblArea1Type1.Text = "Area 0 Type 1" - ' - 'lblGold - ' - Me.lblGold.AutoSize = True - Me.lblGold.Location = New System.Drawing.Point(30, 105) - Me.lblGold.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblGold.Name = "lblGold" - Me.lblGold.Size = New System.Drawing.Size(29, 13) - Me.lblGold.TabIndex = 12 - Me.lblGold.Text = "Gold" - ' - 'numGold - ' - Me.numGold.Location = New System.Drawing.Point(14, 120) - Me.numGold.Margin = New System.Windows.Forms.Padding(2) - Me.numGold.Maximum = New Decimal(New Integer() {65000, 0, 0, 0}) - Me.numGold.Name = "numGold" - Me.numGold.Size = New System.Drawing.Size(83, 20) - Me.numGold.TabIndex = 13 - ' - 'numHeroicChallenges - ' - Me.numHeroicChallenges.Location = New System.Drawing.Point(14, 163) - Me.numHeroicChallenges.Margin = New System.Windows.Forms.Padding(2) - Me.numHeroicChallenges.Maximum = New Decimal(New Integer() {-1, 0, 0, 0}) - Me.numHeroicChallenges.Name = "numHeroicChallenges" - Me.numHeroicChallenges.Size = New System.Drawing.Size(83, 20) - Me.numHeroicChallenges.TabIndex = 16 - ' - 'lblChallenge - ' - Me.lblChallenge.AutoSize = True - Me.lblChallenge.Location = New System.Drawing.Point(9, 147) - Me.lblChallenge.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblChallenge.Name = "lblChallenge" - Me.lblChallenge.Size = New System.Drawing.Size(93, 13) - Me.lblChallenge.TabIndex = 17 - Me.lblChallenge.Text = "Heroic Challenges" - ' - 'lblHeroPoints - ' - Me.lblHeroPoints.AutoSize = True - Me.lblHeroPoints.Location = New System.Drawing.Point(112, 147) - Me.lblHeroPoints.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblHeroPoints.Name = "lblHeroPoints" - Me.lblHeroPoints.Size = New System.Drawing.Size(62, 13) - Me.lblHeroPoints.TabIndex = 19 - Me.lblHeroPoints.Text = "Hero Points" - ' - 'numHero - ' - Me.numHero.Location = New System.Drawing.Point(101, 163) - Me.numHero.Margin = New System.Windows.Forms.Padding(2) - Me.numHero.Name = "numHero" - Me.numHero.Size = New System.Drawing.Size(90, 20) - Me.numHero.TabIndex = 20 - ' - 'grpSkillPath - ' - Me.grpSkillPath.Controls.Add(Me.radNone) - Me.grpSkillPath.Controls.Add(Me.radRight) - Me.grpSkillPath.Controls.Add(Me.radLeft) - Me.grpSkillPath.Location = New System.Drawing.Point(14, 190) - Me.grpSkillPath.Margin = New System.Windows.Forms.Padding(2) - Me.grpSkillPath.Name = "grpSkillPath" - Me.grpSkillPath.Padding = New System.Windows.Forms.Padding(2) - Me.grpSkillPath.Size = New System.Drawing.Size(178, 41) - Me.grpSkillPath.TabIndex = 21 - Me.grpSkillPath.TabStop = False - Me.grpSkillPath.Text = "Skill Path" - ' - 'radNone - ' - Me.radNone.AutoSize = True - Me.radNone.Location = New System.Drawing.Point(112, 18) - Me.radNone.Name = "radNone" - Me.radNone.Size = New System.Drawing.Size(51, 17) - Me.radNone.TabIndex = 24 - Me.radNone.TabStop = True - Me.radNone.Text = "None" - Me.radNone.UseVisualStyleBackColor = True - ' - 'radRight - ' - Me.radRight.AutoSize = True - Me.radRight.Location = New System.Drawing.Point(57, 18) - Me.radRight.Margin = New System.Windows.Forms.Padding(2) - Me.radRight.Name = "radRight" - Me.radRight.Size = New System.Drawing.Size(50, 17) - Me.radRight.TabIndex = 23 - Me.radRight.TabStop = True - Me.radRight.Text = "Right" - Me.radRight.UseVisualStyleBackColor = True - ' - 'radLeft - ' - Me.radLeft.AutoSize = True - Me.radLeft.Location = New System.Drawing.Point(13, 18) - Me.radLeft.Margin = New System.Windows.Forms.Padding(2) - Me.radLeft.Name = "radLeft" - Me.radLeft.Size = New System.Drawing.Size(43, 17) - Me.radLeft.TabIndex = 22 - Me.radLeft.TabStop = True - Me.radLeft.Text = "Left" - Me.radLeft.UseVisualStyleBackColor = True - ' - 'numLevel - ' - Me.numLevel.Location = New System.Drawing.Point(101, 120) - Me.numLevel.Margin = New System.Windows.Forms.Padding(2) - Me.numLevel.Maximum = New Decimal(New Integer() {20, 0, 0, 0}) - Me.numLevel.Minimum = New Decimal(New Integer() {1, 0, 0, 0}) - Me.numLevel.Name = "numLevel" - Me.numLevel.Size = New System.Drawing.Size(90, 20) - Me.numLevel.TabIndex = 25 - Me.numLevel.Value = New Decimal(New Integer() {1, 0, 0, 0}) - ' - 'lblLevel - ' - Me.lblLevel.AutoSize = True - Me.lblLevel.Location = New System.Drawing.Point(128, 104) - Me.lblLevel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblLevel.Name = "lblLevel" - Me.lblLevel.Size = New System.Drawing.Size(33, 13) - Me.lblLevel.TabIndex = 26 - Me.lblLevel.Text = "Level" - ' - 'cmbGame - ' - Me.cmbGame.FormattingEnabled = True - Me.cmbGame.Items.AddRange(New Object() {"Spyro's Adventure", "Giants", "Swap Force", "Trap Team", "SuperChargers", "Imaginators", "Items", "Traps", "Adventure Packs"}) - Me.cmbGame.Location = New System.Drawing.Point(56, 33) - Me.cmbGame.Margin = New System.Windows.Forms.Padding(2) - Me.cmbGame.Name = "cmbGame" - Me.cmbGame.Size = New System.Drawing.Size(135, 21) - Me.cmbGame.TabIndex = 25 - ' - 'lstCharacters - ' - Me.lstCharacters.FormattingEnabled = True - Me.lstCharacters.Location = New System.Drawing.Point(203, 36) - Me.lstCharacters.Margin = New System.Windows.Forms.Padding(2) - Me.lstCharacters.Name = "lstCharacters" - Me.lstCharacters.Size = New System.Drawing.Size(202, 277) - Me.lstCharacters.TabIndex = 27 - ' - 'lblHat - ' - Me.lblHat.AutoSize = True - Me.lblHat.Location = New System.Drawing.Point(16, 75) - Me.lblHat.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblHat.Name = "lblHat" - Me.lblHat.Size = New System.Drawing.Size(24, 13) - Me.lblHat.TabIndex = 25 - Me.lblHat.Text = "Hat" - ' - 'cmbHat - ' - Me.cmbHat.FormattingEnabled = True - Me.cmbHat.Location = New System.Drawing.Point(56, 72) - Me.cmbHat.Margin = New System.Windows.Forms.Padding(2) - Me.cmbHat.Name = "cmbHat" - Me.cmbHat.Size = New System.Drawing.Size(135, 21) - Me.cmbHat.TabIndex = 28 - ' - 'lblName - ' - Me.lblName.AutoSize = True - Me.lblName.Location = New System.Drawing.Point(11, 274) - Me.lblName.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.lblName.Name = "lblName" - Me.lblName.Size = New System.Drawing.Size(55, 13) - Me.lblName.TabIndex = 29 - Me.lblName.Text = "Nickname" - ' - 'txtName - ' - Me.txtName.Location = New System.Drawing.Point(14, 290) - Me.txtName.Margin = New System.Windows.Forms.Padding(2) - Me.txtName.MaxLength = 15 - Me.txtName.Name = "txtName" - Me.txtName.Size = New System.Drawing.Size(178, 20) - Me.txtName.TabIndex = 30 - ' - 'mnuPurp - ' - Me.mnuPurp.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.PortalToolStripMenuItem}) - Me.mnuPurp.Location = New System.Drawing.Point(0, 0) - Me.mnuPurp.Name = "mnuPurp" - Me.mnuPurp.Size = New System.Drawing.Size(648, 24) - Me.mnuPurp.TabIndex = 35 - Me.mnuPurp.Text = "MenuStrip1" - ' - 'FileToolStripMenuItem - ' - Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenToolStripMenuItem, Me.Save_Enc_ToolStripMenuItem, Me.Save_Dec_ToolStripMenuItem, Me.ClearToolStripMenuItem, Me.CloseToolStripMenuItem}) - Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" - Me.FileToolStripMenuItem.Size = New System.Drawing.Size(37, 20) - Me.FileToolStripMenuItem.Text = "&File" - ' - 'OpenToolStripMenuItem - ' - Me.OpenToolStripMenuItem.Name = "OpenToolStripMenuItem" - Me.OpenToolStripMenuItem.Size = New System.Drawing.Size(155, 22) - Me.OpenToolStripMenuItem.Text = "&Open" - ' - 'Save_Enc_ToolStripMenuItem - ' - Me.Save_Enc_ToolStripMenuItem.Name = "Save_Enc_ToolStripMenuItem" - Me.Save_Enc_ToolStripMenuItem.Size = New System.Drawing.Size(155, 22) - Me.Save_Enc_ToolStripMenuItem.Text = "&Save Encrypted" - ' - 'Save_Dec_ToolStripMenuItem - ' - Me.Save_Dec_ToolStripMenuItem.Name = "Save_Dec_ToolStripMenuItem" - Me.Save_Dec_ToolStripMenuItem.Size = New System.Drawing.Size(155, 22) - Me.Save_Dec_ToolStripMenuItem.Text = "Save &Decrypted" - ' - 'ClearToolStripMenuItem - ' - Me.ClearToolStripMenuItem.Name = "ClearToolStripMenuItem" - Me.ClearToolStripMenuItem.Size = New System.Drawing.Size(155, 22) - Me.ClearToolStripMenuItem.Text = "Clear" - ' - 'CloseToolStripMenuItem - ' - Me.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem" - Me.CloseToolStripMenuItem.Size = New System.Drawing.Size(155, 22) - Me.CloseToolStripMenuItem.Text = "&Close" - ' - 'PortalToolStripMenuItem - ' - Me.PortalToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ReadSkylanderToolStripMenuItem, Me.WriteSkylanderToolStripMenuItem, Me.ReadSwapperOtherHalfToolStripMenuItem, Me.WriteSwapperOtherHalfToolStripMenuItem, Me.ConnectToPortalToolStripMenuItem}) - Me.PortalToolStripMenuItem.Name = "PortalToolStripMenuItem" - Me.PortalToolStripMenuItem.Size = New System.Drawing.Size(50, 20) - Me.PortalToolStripMenuItem.Text = "Portal" - ' - 'ReadSkylanderToolStripMenuItem - ' - Me.ReadSkylanderToolStripMenuItem.Enabled = False - Me.ReadSkylanderToolStripMenuItem.Name = "ReadSkylanderToolStripMenuItem" - Me.ReadSkylanderToolStripMenuItem.Size = New System.Drawing.Size(223, 22) - Me.ReadSkylanderToolStripMenuItem.Text = "Read Skylander from Portal" - ' - 'WriteSkylanderToolStripMenuItem - ' - Me.WriteSkylanderToolStripMenuItem.Enabled = False - Me.WriteSkylanderToolStripMenuItem.Name = "WriteSkylanderToolStripMenuItem" - Me.WriteSkylanderToolStripMenuItem.Size = New System.Drawing.Size(223, 22) - Me.WriteSkylanderToolStripMenuItem.Text = "Write Skylander to Portal" - ' - 'ReadSwapperOtherHalfToolStripMenuItem - ' - Me.ReadSwapperOtherHalfToolStripMenuItem.Enabled = False - Me.ReadSwapperOtherHalfToolStripMenuItem.Name = "ReadSwapperOtherHalfToolStripMenuItem" - Me.ReadSwapperOtherHalfToolStripMenuItem.Size = New System.Drawing.Size(223, 22) - Me.ReadSwapperOtherHalfToolStripMenuItem.Text = "Read Swap Force Other Half" - ' - 'WriteSwapperOtherHalfToolStripMenuItem - ' - Me.WriteSwapperOtherHalfToolStripMenuItem.Enabled = False - Me.WriteSwapperOtherHalfToolStripMenuItem.Name = "WriteSwapperOtherHalfToolStripMenuItem" - Me.WriteSwapperOtherHalfToolStripMenuItem.Size = New System.Drawing.Size(223, 22) - Me.WriteSwapperOtherHalfToolStripMenuItem.Text = "Write Swap Force Other Half" - ' - 'ConnectToPortalToolStripMenuItem - ' - Me.ConnectToPortalToolStripMenuItem.Name = "ConnectToPortalToolStripMenuItem" - Me.ConnectToPortalToolStripMenuItem.Size = New System.Drawing.Size(223, 22) - Me.ConnectToPortalToolStripMenuItem.Text = "Connect to Portal" - ' - 'StatusPurp - ' - Me.StatusPurp.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaldeStatus}) - Me.StatusPurp.Location = New System.Drawing.Point(0, 493) - Me.StatusPurp.Name = "StatusPurp" - Me.StatusPurp.Size = New System.Drawing.Size(648, 22) - Me.StatusPurp.TabIndex = 36 - Me.StatusPurp.Text = "StatusStrip1" - ' - 'SaldeStatus - ' - Me.SaldeStatus.Name = "SaldeStatus" - Me.SaldeStatus.Size = New System.Drawing.Size(0, 17) - ' - 'btnReset - ' - Me.btnReset.Location = New System.Drawing.Point(116, 238) - Me.btnReset.Name = "btnReset" - Me.btnReset.Size = New System.Drawing.Size(75, 34) - Me.btnReset.TabIndex = 37 - Me.btnReset.Text = "Reset Figure" - Me.btnReset.UseVisualStyleBackColor = True - ' - 'bgWritePortal - ' - Me.bgWritePortal.WorkerReportsProgress = True - ' - 'bgReadPortal - ' - ' - 'tmrPortal - ' - Me.tmrPortal.Enabled = True - Me.tmrPortal.Interval = 2500 - ' - 'btnShowData - ' - Me.btnShowData.Location = New System.Drawing.Point(355, 438) - Me.btnShowData.Name = "btnShowData" - Me.btnShowData.Size = New System.Drawing.Size(75, 23) - Me.btnShowData.TabIndex = 38 - Me.btnShowData.Text = "Show Data" - Me.btnShowData.UseVisualStyleBackColor = True - ' - 'chkSerial - ' - Me.chkSerial.AutoSize = True - Me.chkSerial.Location = New System.Drawing.Point(14, 438) - Me.chkSerial.Name = "chkSerial" - Me.chkSerial.Size = New System.Drawing.Size(108, 17) - Me.chkSerial.TabIndex = 39 - Me.chkSerial.Text = "Randomize Serial" - Me.chkSerial.UseVisualStyleBackColor = True - ' - 'lblData - ' - Me.lblData.AutoSize = True - Me.lblData.Location = New System.Drawing.Point(128, 438) - Me.lblData.Name = "lblData" - Me.lblData.Size = New System.Drawing.Size(33, 13) - Me.lblData.TabIndex = 43 - Me.lblData.Text = "Data:" - ' - 'btnClearData - ' - Me.btnClearData.Location = New System.Drawing.Point(355, 467) - Me.btnClearData.Name = "btnClearData" - Me.btnClearData.Size = New System.Drawing.Size(75, 23) - Me.btnClearData.TabIndex = 44 - Me.btnClearData.Text = "Clear Data" - Me.btnClearData.UseVisualStyleBackColor = True - ' - 'tmrSkyKey - ' - Me.tmrSkyKey.Interval = 1500 - ' - 'lblWebCode_Text - ' - Me.lblWebCode_Text.AutoSize = True - Me.lblWebCode_Text.Location = New System.Drawing.Point(16, 238) - Me.lblWebCode_Text.Name = "lblWebCode_Text" - Me.lblWebCode_Text.Size = New System.Drawing.Size(55, 13) - Me.lblWebCode_Text.TabIndex = 54 - Me.lblWebCode_Text.Text = "WebCode" - ' - 'lblWebCode - ' - Me.lblWebCode.AutoSize = True - Me.lblWebCode.Location = New System.Drawing.Point(16, 251) - Me.lblWebCode.Name = "lblWebCode" - Me.lblWebCode.Size = New System.Drawing.Size(0, 13) - Me.lblWebCode.TabIndex = 57 - ' - 'lblSystem - ' - Me.lblSystem.AutoSize = True - Me.lblSystem.Location = New System.Drawing.Point(9, 467) - Me.lblSystem.Name = "lblSystem" - Me.lblSystem.Size = New System.Drawing.Size(41, 13) - Me.lblSystem.TabIndex = 58 - Me.lblSystem.Text = "System" - ' - 'cmbSystem - ' - Me.cmbSystem.FormattingEnabled = True - Me.cmbSystem.Items.AddRange(New Object() {"Wii", "Xbox 360", "PS3", "PC", "3DS", "Wii U", "Xbox One", "PS4", "Tablet"}) - Me.cmbSystem.Location = New System.Drawing.Point(54, 464) - Me.cmbSystem.Name = "cmbSystem" - Me.cmbSystem.Size = New System.Drawing.Size(121, 21) - Me.cmbSystem.TabIndex = 59 - ' - 'btnTraps - ' - Me.btnTraps.Location = New System.Drawing.Point(274, 467) - Me.btnTraps.Name = "btnTraps" - Me.btnTraps.Size = New System.Drawing.Size(75, 23) - Me.btnTraps.TabIndex = 60 - Me.btnTraps.Text = "Traps" - Me.btnTraps.UseVisualStyleBackColor = True - ' - 'btnVehicles - ' - Me.btnVehicles.Location = New System.Drawing.Point(193, 467) - Me.btnVehicles.Name = "btnVehicles" - Me.btnVehicles.Size = New System.Drawing.Size(75, 23) - Me.btnVehicles.TabIndex = 61 - Me.btnVehicles.Text = "Vehicles" - Me.btnVehicles.UseVisualStyleBackColor = True - ' - 'btnRaw - ' - Me.btnRaw.Location = New System.Drawing.Point(6, 34) - Me.btnRaw.Name = "btnRaw" - Me.btnRaw.Size = New System.Drawing.Size(75, 23) - Me.btnRaw.TabIndex = 62 - Me.btnRaw.Text = "Raw Write" - Me.btnRaw.UseVisualStyleBackColor = True - ' - 'grpDebug - ' - Me.grpDebug.Controls.Add(Me.btnArea) - Me.grpDebug.Controls.Add(Me.btnRaw) - Me.grpDebug.Location = New System.Drawing.Point(436, 36) - Me.grpDebug.Name = "grpDebug" - Me.grpDebug.Size = New System.Drawing.Size(200, 454) - Me.grpDebug.TabIndex = 64 - Me.grpDebug.TabStop = False - Me.grpDebug.Text = "Debug" - ' - 'btnArea - ' - Me.btnArea.Location = New System.Drawing.Point(6, 64) - Me.btnArea.Name = "btnArea" - Me.btnArea.Size = New System.Drawing.Size(75, 23) - Me.btnArea.TabIndex = 63 - Me.btnArea.Text = "Area" - Me.btnArea.UseVisualStyleBackColor = True - ' - 'bgReadPortalDuo - ' - ' - 'bgWritePortalDuo - ' - ' - 'frmMain - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(648, 515) - Me.Controls.Add(Me.grpDebug) - Me.Controls.Add(Me.btnVehicles) - Me.Controls.Add(Me.btnTraps) - Me.Controls.Add(Me.cmbSystem) - Me.Controls.Add(Me.lblSystem) - Me.Controls.Add(Me.lblWebCode) - Me.Controls.Add(Me.lblWebCode_Text) - Me.Controls.Add(Me.btnClearData) - Me.Controls.Add(Me.lblData) - Me.Controls.Add(Me.chkSerial) - Me.Controls.Add(Me.btnShowData) - Me.Controls.Add(Me.btnReset) - Me.Controls.Add(Me.StatusPurp) - Me.Controls.Add(Me.mnuPurp) - Me.Controls.Add(Me.txtName) - Me.Controls.Add(Me.lblName) - Me.Controls.Add(Me.cmbHat) - Me.Controls.Add(Me.lblHat) - Me.Controls.Add(Me.lstCharacters) - Me.Controls.Add(Me.cmbGame) - Me.Controls.Add(Me.lblLevel) - Me.Controls.Add(Me.numLevel) - Me.Controls.Add(Me.grpSkillPath) - Me.Controls.Add(Me.numHero) - Me.Controls.Add(Me.lblHeroPoints) - Me.Controls.Add(Me.lblChallenge) - Me.Controls.Add(Me.numHeroicChallenges) - Me.Controls.Add(Me.numGold) - Me.Controls.Add(Me.lblGold) - Me.Controls.Add(Me.grpChecksums) - Me.Controls.Add(Me.lblGame) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MainMenuStrip = Me.mnuPurp - Me.MaximizeBox = False - Me.Name = "frmMain" - Me.Text = "SkyReader-GUI ALPHA-5" - CType(Me.picHeader, System.ComponentModel.ISupportInitialize).EndInit() - Me.grpChecksums.ResumeLayout(False) - Me.grpChecksums.PerformLayout() - CType(Me.picSerial, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea1Type4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea0Type4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea1Type3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea1Type2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea1Type1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea0Type3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea0Type2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.picArea0Type1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.numGold, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.numHeroicChallenges, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.numHero, System.ComponentModel.ISupportInitialize).EndInit() - Me.grpSkillPath.ResumeLayout(False) - Me.grpSkillPath.PerformLayout() - CType(Me.numLevel, System.ComponentModel.ISupportInitialize).EndInit() - Me.mnuPurp.ResumeLayout(False) - Me.mnuPurp.PerformLayout() - Me.StatusPurp.ResumeLayout(False) - Me.StatusPurp.PerformLayout() - Me.grpDebug.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) + Me.ofdSky = New System.Windows.Forms.OpenFileDialog() + Me.lblGame = New System.Windows.Forms.Label() + Me.lblHeader = New System.Windows.Forms.Label() + Me.picHeader = New System.Windows.Forms.PictureBox() + Me.grpChecksums = New System.Windows.Forms.GroupBox() + Me.picSerial = New System.Windows.Forms.PictureBox() + Me.lblSerial = New System.Windows.Forms.Label() + Me.picArea1Type4 = New System.Windows.Forms.PictureBox() + Me.lblArea2Type4 = New System.Windows.Forms.Label() + Me.picArea0Type4 = New System.Windows.Forms.PictureBox() + Me.lblArea1Type4 = New System.Windows.Forms.Label() + Me.picArea1Type3 = New System.Windows.Forms.PictureBox() + Me.picArea1Type2 = New System.Windows.Forms.PictureBox() + Me.lblArea2Type3 = New System.Windows.Forms.Label() + Me.lblArea2Type2 = New System.Windows.Forms.Label() + Me.picArea1Type1 = New System.Windows.Forms.PictureBox() + Me.lblArea2Type1 = New System.Windows.Forms.Label() + Me.picArea0Type3 = New System.Windows.Forms.PictureBox() + Me.picArea0Type2 = New System.Windows.Forms.PictureBox() + Me.lblArea1Type3 = New System.Windows.Forms.Label() + Me.lblArea1Type2 = New System.Windows.Forms.Label() + Me.picArea0Type1 = New System.Windows.Forms.PictureBox() + Me.lblArea1Type1 = New System.Windows.Forms.Label() + Me.lblGold = New System.Windows.Forms.Label() + Me.numGold = New System.Windows.Forms.NumericUpDown() + Me.numHeroicChallenges = New System.Windows.Forms.NumericUpDown() + Me.lblChallenge = New System.Windows.Forms.Label() + Me.lblHeroPoints = New System.Windows.Forms.Label() + Me.numHero = New System.Windows.Forms.NumericUpDown() + Me.grpSkillPath = New System.Windows.Forms.GroupBox() + Me.radNone = New System.Windows.Forms.RadioButton() + Me.radRight = New System.Windows.Forms.RadioButton() + Me.radLeft = New System.Windows.Forms.RadioButton() + Me.numLevel = New System.Windows.Forms.NumericUpDown() + Me.lblLevel = New System.Windows.Forms.Label() + Me.cmbGame = New System.Windows.Forms.ComboBox() + Me.lstCharacters = New System.Windows.Forms.ListBox() + Me.lblHat = New System.Windows.Forms.Label() + Me.cmbHat = New System.Windows.Forms.ComboBox() + Me.lblName = New System.Windows.Forms.Label() + Me.txtName = New System.Windows.Forms.TextBox() + Me.mnuPurp = New System.Windows.Forms.MenuStrip() + Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.OpenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Save_Enc_ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Save_Dec_ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ClearToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CloseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PortalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ReadSkylanderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WriteSkylanderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ReadSecondFigureToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WriteSecondFigureToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ConnectToPortalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EditorsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrapsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.VehiclesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CrystalsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StatusPurp = New System.Windows.Forms.StatusStrip() + Me.SaldeStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.btnReset = New System.Windows.Forms.Button() + Me.bgWritePortal = New System.ComponentModel.BackgroundWorker() + Me.bgReadPortal = New System.ComponentModel.BackgroundWorker() + Me.btnShowData = New System.Windows.Forms.Button() + Me.chkSerial = New System.Windows.Forms.CheckBox() + Me.lblData = New System.Windows.Forms.Label() + Me.btnClearData = New System.Windows.Forms.Button() + Me.lblWebCode_Text = New System.Windows.Forms.Label() + Me.lblWebCode = New System.Windows.Forms.Label() + Me.lblSystem = New System.Windows.Forms.Label() + Me.cmbSystem = New System.Windows.Forms.ComboBox() + Me.btnTraps = New System.Windows.Forms.Button() + Me.btnVehicles = New System.Windows.Forms.Button() + Me.btnRaw = New System.Windows.Forms.Button() + Me.grpDebug = New System.Windows.Forms.GroupBox() + Me.btnCrystals = New System.Windows.Forms.Button() + Me.btnRainbow = New System.Windows.Forms.Button() + Me.btnArea = New System.Windows.Forms.Button() + Me.bgReadPortalDuo = New System.ComponentModel.BackgroundWorker() + Me.bgWritePortalDuo = New System.ComponentModel.BackgroundWorker() + Me.tmrRainbow = New System.Windows.Forms.Timer(Me.components) + Me.grpEditor = New System.Windows.Forms.GroupBox() + Me.btnGame = New System.Windows.Forms.Button() + CType(Me.picHeader, System.ComponentModel.ISupportInitialize).BeginInit() + Me.grpChecksums.SuspendLayout() + CType(Me.picSerial, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea1Type4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea0Type4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea1Type3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea1Type2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea1Type1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea0Type3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea0Type2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.picArea0Type1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.numGold, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.numHeroicChallenges, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.numHero, System.ComponentModel.ISupportInitialize).BeginInit() + Me.grpSkillPath.SuspendLayout() + CType(Me.numLevel, System.ComponentModel.ISupportInitialize).BeginInit() + Me.mnuPurp.SuspendLayout() + Me.StatusPurp.SuspendLayout() + Me.grpDebug.SuspendLayout() + Me.grpEditor.SuspendLayout() + Me.SuspendLayout() + ' + 'ofdSky + ' + Me.ofdSky.Title = "Choose File" + ' + 'lblGame + ' + Me.lblGame.AutoSize = True + Me.lblGame.Location = New System.Drawing.Point(16, 36) + Me.lblGame.Name = "lblGame" + Me.lblGame.Size = New System.Drawing.Size(35, 13) + Me.lblGame.TabIndex = 3 + Me.lblGame.Text = "Game" + ' + 'lblHeader + ' + Me.lblHeader.AutoSize = True + Me.lblHeader.Location = New System.Drawing.Point(18, 18) + Me.lblHeader.Name = "lblHeader" + Me.lblHeader.Size = New System.Drawing.Size(42, 13) + Me.lblHeader.TabIndex = 7 + Me.lblHeader.Text = "Header" + ' + 'picHeader + ' + Me.picHeader.BackColor = System.Drawing.Color.Yellow + Me.picHeader.Location = New System.Drawing.Point(28, 34) + Me.picHeader.Name = "picHeader" + Me.picHeader.Size = New System.Drawing.Size(22, 24) + Me.picHeader.TabIndex = 8 + Me.picHeader.TabStop = False + ' + 'grpChecksums + ' + Me.grpChecksums.BackColor = System.Drawing.SystemColors.Control + Me.grpChecksums.Controls.Add(Me.picSerial) + Me.grpChecksums.Controls.Add(Me.lblSerial) + Me.grpChecksums.Controls.Add(Me.picArea1Type4) + Me.grpChecksums.Controls.Add(Me.lblArea2Type4) + Me.grpChecksums.Controls.Add(Me.picArea0Type4) + Me.grpChecksums.Controls.Add(Me.lblArea1Type4) + Me.grpChecksums.Controls.Add(Me.picArea1Type3) + Me.grpChecksums.Controls.Add(Me.picArea1Type2) + Me.grpChecksums.Controls.Add(Me.lblArea2Type3) + Me.grpChecksums.Controls.Add(Me.lblArea2Type2) + Me.grpChecksums.Controls.Add(Me.picArea1Type1) + Me.grpChecksums.Controls.Add(Me.lblArea2Type1) + Me.grpChecksums.Controls.Add(Me.picArea0Type3) + Me.grpChecksums.Controls.Add(Me.picArea0Type2) + Me.grpChecksums.Controls.Add(Me.lblArea1Type3) + Me.grpChecksums.Controls.Add(Me.lblArea1Type2) + Me.grpChecksums.Controls.Add(Me.picArea0Type1) + Me.grpChecksums.Controls.Add(Me.lblArea1Type1) + Me.grpChecksums.Controls.Add(Me.picHeader) + Me.grpChecksums.Controls.Add(Me.lblHeader) + Me.grpChecksums.Location = New System.Drawing.Point(12, 315) + Me.grpChecksums.Name = "grpChecksums" + Me.grpChecksums.Size = New System.Drawing.Size(394, 113) + Me.grpChecksums.TabIndex = 9 + Me.grpChecksums.TabStop = False + Me.grpChecksums.Text = "Checksums" + ' + 'picSerial + ' + Me.picSerial.BackColor = System.Drawing.Color.Yellow + Me.picSerial.Location = New System.Drawing.Point(28, 78) + Me.picSerial.Name = "picSerial" + Me.picSerial.Size = New System.Drawing.Size(22, 24) + Me.picSerial.TabIndex = 26 + Me.picSerial.TabStop = False + ' + 'lblSerial + ' + Me.lblSerial.AutoSize = True + Me.lblSerial.Location = New System.Drawing.Point(23, 62) + Me.lblSerial.Name = "lblSerial" + Me.lblSerial.Size = New System.Drawing.Size(33, 13) + Me.lblSerial.TabIndex = 25 + Me.lblSerial.Text = "Serial" + ' + 'picArea1Type4 + ' + Me.picArea1Type4.BackColor = System.Drawing.Color.Yellow + Me.picArea1Type4.Location = New System.Drawing.Point(326, 78) + Me.picArea1Type4.Name = "picArea1Type4" + Me.picArea1Type4.Size = New System.Drawing.Size(22, 24) + Me.picArea1Type4.TabIndex = 24 + Me.picArea1Type4.TabStop = False + ' + 'lblArea2Type4 + ' + Me.lblArea2Type4.AutoSize = True + Me.lblArea2Type4.Location = New System.Drawing.Point(300, 62) + Me.lblArea2Type4.Name = "lblArea2Type4" + Me.lblArea2Type4.Size = New System.Drawing.Size(74, 13) + Me.lblArea2Type4.TabIndex = 23 + Me.lblArea2Type4.Text = "Area 1 Type 4" + ' + 'picArea0Type4 + ' + Me.picArea0Type4.BackColor = System.Drawing.Color.Yellow + Me.picArea0Type4.Location = New System.Drawing.Point(326, 34) + Me.picArea0Type4.Name = "picArea0Type4" + Me.picArea0Type4.Size = New System.Drawing.Size(22, 24) + Me.picArea0Type4.TabIndex = 22 + Me.picArea0Type4.TabStop = False + ' + 'lblArea1Type4 + ' + Me.lblArea1Type4.AutoSize = True + Me.lblArea1Type4.Location = New System.Drawing.Point(300, 18) + Me.lblArea1Type4.Name = "lblArea1Type4" + Me.lblArea1Type4.Size = New System.Drawing.Size(74, 13) + Me.lblArea1Type4.TabIndex = 21 + Me.lblArea1Type4.Text = "Area 0 Type 4" + ' + 'picArea1Type3 + ' + Me.picArea1Type3.BackColor = System.Drawing.Color.Yellow + Me.picArea1Type3.Location = New System.Drawing.Point(247, 78) + Me.picArea1Type3.Name = "picArea1Type3" + Me.picArea1Type3.Size = New System.Drawing.Size(22, 24) + Me.picArea1Type3.TabIndex = 20 + Me.picArea1Type3.TabStop = False + ' + 'picArea1Type2 + ' + Me.picArea1Type2.BackColor = System.Drawing.Color.Yellow + Me.picArea1Type2.Location = New System.Drawing.Point(167, 78) + Me.picArea1Type2.Name = "picArea1Type2" + Me.picArea1Type2.Size = New System.Drawing.Size(22, 24) + Me.picArea1Type2.TabIndex = 19 + Me.picArea1Type2.TabStop = False + ' + 'lblArea2Type3 + ' + Me.lblArea2Type3.AutoSize = True + Me.lblArea2Type3.Location = New System.Drawing.Point(221, 62) + Me.lblArea2Type3.Name = "lblArea2Type3" + Me.lblArea2Type3.Size = New System.Drawing.Size(74, 13) + Me.lblArea2Type3.TabIndex = 18 + Me.lblArea2Type3.Text = "Area 1 Type 3" + ' + 'lblArea2Type2 + ' + Me.lblArea2Type2.AutoSize = True + Me.lblArea2Type2.Location = New System.Drawing.Point(141, 62) + Me.lblArea2Type2.Name = "lblArea2Type2" + Me.lblArea2Type2.Size = New System.Drawing.Size(74, 13) + Me.lblArea2Type2.TabIndex = 17 + Me.lblArea2Type2.Text = "Area 1 Type 2" + ' + 'picArea1Type1 + ' + Me.picArea1Type1.BackColor = System.Drawing.Color.Yellow + Me.picArea1Type1.Location = New System.Drawing.Point(88, 78) + Me.picArea1Type1.Name = "picArea1Type1" + Me.picArea1Type1.Size = New System.Drawing.Size(22, 24) + Me.picArea1Type1.TabIndex = 16 + Me.picArea1Type1.TabStop = False + ' + 'lblArea2Type1 + ' + Me.lblArea2Type1.AutoSize = True + Me.lblArea2Type1.Location = New System.Drawing.Point(62, 62) + Me.lblArea2Type1.Name = "lblArea2Type1" + Me.lblArea2Type1.Size = New System.Drawing.Size(74, 13) + Me.lblArea2Type1.TabIndex = 15 + Me.lblArea2Type1.Text = "Area 1 Type 1" + ' + 'picArea0Type3 + ' + Me.picArea0Type3.BackColor = System.Drawing.Color.Yellow + Me.picArea0Type3.Location = New System.Drawing.Point(247, 34) + Me.picArea0Type3.Name = "picArea0Type3" + Me.picArea0Type3.Size = New System.Drawing.Size(22, 24) + Me.picArea0Type3.TabIndex = 14 + Me.picArea0Type3.TabStop = False + ' + 'picArea0Type2 + ' + Me.picArea0Type2.BackColor = System.Drawing.Color.Yellow + Me.picArea0Type2.Location = New System.Drawing.Point(167, 34) + Me.picArea0Type2.Name = "picArea0Type2" + Me.picArea0Type2.Size = New System.Drawing.Size(22, 24) + Me.picArea0Type2.TabIndex = 13 + Me.picArea0Type2.TabStop = False + ' + 'lblArea1Type3 + ' + Me.lblArea1Type3.AutoSize = True + Me.lblArea1Type3.Location = New System.Drawing.Point(221, 18) + Me.lblArea1Type3.Name = "lblArea1Type3" + Me.lblArea1Type3.Size = New System.Drawing.Size(74, 13) + Me.lblArea1Type3.TabIndex = 12 + Me.lblArea1Type3.Text = "Area 0 Type 3" + ' + 'lblArea1Type2 + ' + Me.lblArea1Type2.AutoSize = True + Me.lblArea1Type2.Location = New System.Drawing.Point(141, 18) + Me.lblArea1Type2.Name = "lblArea1Type2" + Me.lblArea1Type2.Size = New System.Drawing.Size(74, 13) + Me.lblArea1Type2.TabIndex = 11 + Me.lblArea1Type2.Text = "Area 0 Type 2" + ' + 'picArea0Type1 + ' + Me.picArea0Type1.BackColor = System.Drawing.Color.Yellow + Me.picArea0Type1.Location = New System.Drawing.Point(88, 34) + Me.picArea0Type1.Name = "picArea0Type1" + Me.picArea0Type1.Size = New System.Drawing.Size(22, 24) + Me.picArea0Type1.TabIndex = 10 + Me.picArea0Type1.TabStop = False + ' + 'lblArea1Type1 + ' + Me.lblArea1Type1.AutoSize = True + Me.lblArea1Type1.Location = New System.Drawing.Point(62, 18) + Me.lblArea1Type1.Name = "lblArea1Type1" + Me.lblArea1Type1.Size = New System.Drawing.Size(74, 13) + Me.lblArea1Type1.TabIndex = 9 + Me.lblArea1Type1.Text = "Area 0 Type 1" + ' + 'lblGold + ' + Me.lblGold.AutoSize = True + Me.lblGold.Location = New System.Drawing.Point(30, 105) + Me.lblGold.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblGold.Name = "lblGold" + Me.lblGold.Size = New System.Drawing.Size(29, 13) + Me.lblGold.TabIndex = 12 + Me.lblGold.Text = "Gold" + ' + 'numGold + ' + Me.numGold.Location = New System.Drawing.Point(14, 120) + Me.numGold.Margin = New System.Windows.Forms.Padding(2) + Me.numGold.Maximum = New Decimal(New Integer() {65000, 0, 0, 0}) + Me.numGold.Name = "numGold" + Me.numGold.Size = New System.Drawing.Size(83, 20) + Me.numGold.TabIndex = 13 + ' + 'numHeroicChallenges + ' + Me.numHeroicChallenges.Location = New System.Drawing.Point(14, 163) + Me.numHeroicChallenges.Margin = New System.Windows.Forms.Padding(2) + Me.numHeroicChallenges.Maximum = New Decimal(New Integer() {-1, 0, 0, 0}) + Me.numHeroicChallenges.Name = "numHeroicChallenges" + Me.numHeroicChallenges.Size = New System.Drawing.Size(83, 20) + Me.numHeroicChallenges.TabIndex = 16 + ' + 'lblChallenge + ' + Me.lblChallenge.AutoSize = True + Me.lblChallenge.Location = New System.Drawing.Point(9, 147) + Me.lblChallenge.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblChallenge.Name = "lblChallenge" + Me.lblChallenge.Size = New System.Drawing.Size(93, 13) + Me.lblChallenge.TabIndex = 17 + Me.lblChallenge.Text = "Heroic Challenges" + ' + 'lblHeroPoints + ' + Me.lblHeroPoints.AutoSize = True + Me.lblHeroPoints.Location = New System.Drawing.Point(112, 147) + Me.lblHeroPoints.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblHeroPoints.Name = "lblHeroPoints" + Me.lblHeroPoints.Size = New System.Drawing.Size(62, 13) + Me.lblHeroPoints.TabIndex = 19 + Me.lblHeroPoints.Text = "Hero Points" + ' + 'numHero + ' + Me.numHero.Location = New System.Drawing.Point(101, 163) + Me.numHero.Margin = New System.Windows.Forms.Padding(2) + Me.numHero.Name = "numHero" + Me.numHero.Size = New System.Drawing.Size(90, 20) + Me.numHero.TabIndex = 20 + ' + 'grpSkillPath + ' + Me.grpSkillPath.Controls.Add(Me.radNone) + Me.grpSkillPath.Controls.Add(Me.radRight) + Me.grpSkillPath.Controls.Add(Me.radLeft) + Me.grpSkillPath.Location = New System.Drawing.Point(14, 190) + Me.grpSkillPath.Margin = New System.Windows.Forms.Padding(2) + Me.grpSkillPath.Name = "grpSkillPath" + Me.grpSkillPath.Padding = New System.Windows.Forms.Padding(2) + Me.grpSkillPath.Size = New System.Drawing.Size(178, 41) + Me.grpSkillPath.TabIndex = 21 + Me.grpSkillPath.TabStop = False + Me.grpSkillPath.Text = "Skill Path" + ' + 'radNone + ' + Me.radNone.AutoSize = True + Me.radNone.Location = New System.Drawing.Point(112, 18) + Me.radNone.Name = "radNone" + Me.radNone.Size = New System.Drawing.Size(51, 17) + Me.radNone.TabIndex = 24 + Me.radNone.TabStop = True + Me.radNone.Text = "None" + Me.radNone.UseVisualStyleBackColor = True + ' + 'radRight + ' + Me.radRight.AutoSize = True + Me.radRight.Location = New System.Drawing.Point(57, 18) + Me.radRight.Margin = New System.Windows.Forms.Padding(2) + Me.radRight.Name = "radRight" + Me.radRight.Size = New System.Drawing.Size(50, 17) + Me.radRight.TabIndex = 23 + Me.radRight.TabStop = True + Me.radRight.Text = "Right" + Me.radRight.UseVisualStyleBackColor = True + ' + 'radLeft + ' + Me.radLeft.AutoSize = True + Me.radLeft.Location = New System.Drawing.Point(13, 18) + Me.radLeft.Margin = New System.Windows.Forms.Padding(2) + Me.radLeft.Name = "radLeft" + Me.radLeft.Size = New System.Drawing.Size(43, 17) + Me.radLeft.TabIndex = 22 + Me.radLeft.TabStop = True + Me.radLeft.Text = "Left" + Me.radLeft.UseVisualStyleBackColor = True + ' + 'numLevel + ' + Me.numLevel.Location = New System.Drawing.Point(101, 120) + Me.numLevel.Margin = New System.Windows.Forms.Padding(2) + Me.numLevel.Maximum = New Decimal(New Integer() {20, 0, 0, 0}) + Me.numLevel.Minimum = New Decimal(New Integer() {1, 0, 0, 0}) + Me.numLevel.Name = "numLevel" + Me.numLevel.Size = New System.Drawing.Size(90, 20) + Me.numLevel.TabIndex = 25 + Me.numLevel.Value = New Decimal(New Integer() {1, 0, 0, 0}) + ' + 'lblLevel + ' + Me.lblLevel.AutoSize = True + Me.lblLevel.Location = New System.Drawing.Point(128, 104) + Me.lblLevel.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblLevel.Name = "lblLevel" + Me.lblLevel.Size = New System.Drawing.Size(33, 13) + Me.lblLevel.TabIndex = 26 + Me.lblLevel.Text = "Level" + ' + 'cmbGame + ' + Me.cmbGame.FormattingEnabled = True + Me.cmbGame.Items.AddRange(New Object() {"Spyro's Adventure", "Giants", "Swap Force", "Trap Team", "Traps", "SuperChargers", "Vehicles", "Imaginators", "Imaginators Crystals", "Items", "Adventure Packs"}) + Me.cmbGame.Location = New System.Drawing.Point(56, 33) + Me.cmbGame.Margin = New System.Windows.Forms.Padding(2) + Me.cmbGame.Name = "cmbGame" + Me.cmbGame.Size = New System.Drawing.Size(135, 21) + Me.cmbGame.TabIndex = 25 + ' + 'lstCharacters + ' + Me.lstCharacters.FormattingEnabled = True + Me.lstCharacters.Location = New System.Drawing.Point(203, 36) + Me.lstCharacters.Margin = New System.Windows.Forms.Padding(2) + Me.lstCharacters.Name = "lstCharacters" + Me.lstCharacters.Size = New System.Drawing.Size(202, 277) + Me.lstCharacters.TabIndex = 27 + ' + 'lblHat + ' + Me.lblHat.AutoSize = True + Me.lblHat.Location = New System.Drawing.Point(16, 75) + Me.lblHat.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblHat.Name = "lblHat" + Me.lblHat.Size = New System.Drawing.Size(24, 13) + Me.lblHat.TabIndex = 25 + Me.lblHat.Text = "Hat" + ' + 'cmbHat + ' + Me.cmbHat.FormattingEnabled = True + Me.cmbHat.Location = New System.Drawing.Point(56, 72) + Me.cmbHat.Margin = New System.Windows.Forms.Padding(2) + Me.cmbHat.Name = "cmbHat" + Me.cmbHat.Size = New System.Drawing.Size(135, 21) + Me.cmbHat.TabIndex = 28 + ' + 'lblName + ' + Me.lblName.AutoSize = True + Me.lblName.Location = New System.Drawing.Point(11, 274) + Me.lblName.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblName.Name = "lblName" + Me.lblName.Size = New System.Drawing.Size(55, 13) + Me.lblName.TabIndex = 29 + Me.lblName.Text = "Nickname" + ' + 'txtName + ' + Me.txtName.Location = New System.Drawing.Point(14, 290) + Me.txtName.Margin = New System.Windows.Forms.Padding(2) + Me.txtName.MaxLength = 15 + Me.txtName.Name = "txtName" + Me.txtName.Size = New System.Drawing.Size(178, 20) + Me.txtName.TabIndex = 30 + ' + 'mnuPurp + ' + Me.mnuPurp.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.PortalToolStripMenuItem, Me.EditorsToolStripMenuItem}) + Me.mnuPurp.Location = New System.Drawing.Point(0, 0) + Me.mnuPurp.Name = "mnuPurp" + Me.mnuPurp.Size = New System.Drawing.Size(648, 24) + Me.mnuPurp.TabIndex = 35 + Me.mnuPurp.Text = "MenuStrip1" + ' + 'FileToolStripMenuItem + ' + Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenToolStripMenuItem, Me.Save_Enc_ToolStripMenuItem, Me.Save_Dec_ToolStripMenuItem, Me.ClearToolStripMenuItem, Me.CloseToolStripMenuItem}) + Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" + Me.FileToolStripMenuItem.Size = New System.Drawing.Size(37, 20) + Me.FileToolStripMenuItem.Text = "&File" + ' + 'OpenToolStripMenuItem + ' + Me.OpenToolStripMenuItem.Name = "OpenToolStripMenuItem" + Me.OpenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.OpenToolStripMenuItem.Text = "&Open" + ' + 'Save_Enc_ToolStripMenuItem + ' + Me.Save_Enc_ToolStripMenuItem.Name = "Save_Enc_ToolStripMenuItem" + Me.Save_Enc_ToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.Save_Enc_ToolStripMenuItem.Text = "&Save Encrypted" + ' + 'Save_Dec_ToolStripMenuItem + ' + Me.Save_Dec_ToolStripMenuItem.Name = "Save_Dec_ToolStripMenuItem" + Me.Save_Dec_ToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.Save_Dec_ToolStripMenuItem.Text = "Save &Decrypted" + ' + 'ClearToolStripMenuItem + ' + Me.ClearToolStripMenuItem.Name = "ClearToolStripMenuItem" + Me.ClearToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ClearToolStripMenuItem.Text = "Clear" + ' + 'CloseToolStripMenuItem + ' + Me.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem" + Me.CloseToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.CloseToolStripMenuItem.Text = "&Close" + ' + 'PortalToolStripMenuItem + ' + Me.PortalToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ReadSkylanderToolStripMenuItem, Me.WriteSkylanderToolStripMenuItem, Me.ReadSecondFigureToolStripMenuItem, Me.WriteSecondFigureToolStripMenuItem, Me.ConnectToPortalToolStripMenuItem}) + Me.PortalToolStripMenuItem.Name = "PortalToolStripMenuItem" + Me.PortalToolStripMenuItem.Size = New System.Drawing.Size(50, 20) + Me.PortalToolStripMenuItem.Text = "Portal" + ' + 'ReadSkylanderToolStripMenuItem + ' + Me.ReadSkylanderToolStripMenuItem.Enabled = False + Me.ReadSkylanderToolStripMenuItem.Name = "ReadSkylanderToolStripMenuItem" + Me.ReadSkylanderToolStripMenuItem.Size = New System.Drawing.Size(217, 22) + Me.ReadSkylanderToolStripMenuItem.Text = "Read Skylander from Portal" + ' + 'WriteSkylanderToolStripMenuItem + ' + Me.WriteSkylanderToolStripMenuItem.Enabled = False + Me.WriteSkylanderToolStripMenuItem.Name = "WriteSkylanderToolStripMenuItem" + Me.WriteSkylanderToolStripMenuItem.Size = New System.Drawing.Size(217, 22) + Me.WriteSkylanderToolStripMenuItem.Text = "Write Skylander to Portal" + ' + 'ReadSecondFigureToolStripMenuItem + ' + Me.ReadSecondFigureToolStripMenuItem.Enabled = False + Me.ReadSecondFigureToolStripMenuItem.Name = "ReadSecondFigureToolStripMenuItem" + Me.ReadSecondFigureToolStripMenuItem.Size = New System.Drawing.Size(217, 22) + Me.ReadSecondFigureToolStripMenuItem.Text = "Read Second Figure" + ' + 'WriteSecondFigureToolStripMenuItem + ' + Me.WriteSecondFigureToolStripMenuItem.Enabled = False + Me.WriteSecondFigureToolStripMenuItem.Name = "WriteSecondFigureToolStripMenuItem" + Me.WriteSecondFigureToolStripMenuItem.Size = New System.Drawing.Size(217, 22) + Me.WriteSecondFigureToolStripMenuItem.Text = "Write Second Figure" + ' + 'ConnectToPortalToolStripMenuItem + ' + Me.ConnectToPortalToolStripMenuItem.Name = "ConnectToPortalToolStripMenuItem" + Me.ConnectToPortalToolStripMenuItem.Size = New System.Drawing.Size(217, 22) + Me.ConnectToPortalToolStripMenuItem.Text = "Connect to Portal" + ' + 'EditorsToolStripMenuItem + ' + Me.EditorsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrapsToolStripMenuItem, Me.VehiclesToolStripMenuItem, Me.CrystalsToolStripMenuItem}) + Me.EditorsToolStripMenuItem.Name = "EditorsToolStripMenuItem" + Me.EditorsToolStripMenuItem.Size = New System.Drawing.Size(55, 20) + Me.EditorsToolStripMenuItem.Text = "Editors" + ' + 'TrapsToolStripMenuItem + ' + Me.TrapsToolStripMenuItem.Name = "TrapsToolStripMenuItem" + Me.TrapsToolStripMenuItem.Size = New System.Drawing.Size(116, 22) + Me.TrapsToolStripMenuItem.Text = "Traps" + ' + 'VehiclesToolStripMenuItem + ' + Me.VehiclesToolStripMenuItem.Name = "VehiclesToolStripMenuItem" + Me.VehiclesToolStripMenuItem.Size = New System.Drawing.Size(116, 22) + Me.VehiclesToolStripMenuItem.Text = "Vehicles" + ' + 'CrystalsToolStripMenuItem + ' + Me.CrystalsToolStripMenuItem.Name = "CrystalsToolStripMenuItem" + Me.CrystalsToolStripMenuItem.Size = New System.Drawing.Size(116, 22) + Me.CrystalsToolStripMenuItem.Text = "Crystals" + ' + 'StatusPurp + ' + Me.StatusPurp.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaldeStatus}) + Me.StatusPurp.Location = New System.Drawing.Point(0, 493) + Me.StatusPurp.Name = "StatusPurp" + Me.StatusPurp.Size = New System.Drawing.Size(648, 22) + Me.StatusPurp.TabIndex = 36 + Me.StatusPurp.Text = "StatusStrip1" + ' + 'SaldeStatus + ' + Me.SaldeStatus.Name = "SaldeStatus" + Me.SaldeStatus.Size = New System.Drawing.Size(0, 17) + ' + 'btnReset + ' + Me.btnReset.Location = New System.Drawing.Point(116, 238) + Me.btnReset.Name = "btnReset" + Me.btnReset.Size = New System.Drawing.Size(75, 34) + Me.btnReset.TabIndex = 37 + Me.btnReset.Text = "Reset Figure" + Me.btnReset.UseVisualStyleBackColor = True + ' + 'bgWritePortal + ' + Me.bgWritePortal.WorkerReportsProgress = True + ' + 'bgReadPortal + ' + ' + 'btnShowData + ' + Me.btnShowData.Location = New System.Drawing.Point(249, 462) + Me.btnShowData.Name = "btnShowData" + Me.btnShowData.Size = New System.Drawing.Size(75, 23) + Me.btnShowData.TabIndex = 38 + Me.btnShowData.Text = "Show Data" + Me.btnShowData.UseVisualStyleBackColor = True + ' + 'chkSerial + ' + Me.chkSerial.AutoSize = True + Me.chkSerial.Location = New System.Drawing.Point(14, 438) + Me.chkSerial.Name = "chkSerial" + Me.chkSerial.Size = New System.Drawing.Size(108, 17) + Me.chkSerial.TabIndex = 39 + Me.chkSerial.Text = "Randomize Serial" + Me.chkSerial.UseVisualStyleBackColor = True + ' + 'lblData + ' + Me.lblData.AutoSize = True + Me.lblData.Location = New System.Drawing.Point(128, 438) + Me.lblData.Name = "lblData" + Me.lblData.Size = New System.Drawing.Size(33, 13) + Me.lblData.TabIndex = 43 + Me.lblData.Text = "Data:" + ' + 'btnClearData + ' + Me.btnClearData.Location = New System.Drawing.Point(330, 462) + Me.btnClearData.Name = "btnClearData" + Me.btnClearData.Size = New System.Drawing.Size(75, 23) + Me.btnClearData.TabIndex = 44 + Me.btnClearData.Text = "Clear Data" + Me.btnClearData.UseVisualStyleBackColor = True + ' + 'lblWebCode_Text + ' + Me.lblWebCode_Text.AutoSize = True + Me.lblWebCode_Text.Location = New System.Drawing.Point(16, 238) + Me.lblWebCode_Text.Name = "lblWebCode_Text" + Me.lblWebCode_Text.Size = New System.Drawing.Size(55, 13) + Me.lblWebCode_Text.TabIndex = 54 + Me.lblWebCode_Text.Text = "WebCode" + ' + 'lblWebCode + ' + Me.lblWebCode.AutoSize = True + Me.lblWebCode.Location = New System.Drawing.Point(16, 251) + Me.lblWebCode.Name = "lblWebCode" + Me.lblWebCode.Size = New System.Drawing.Size(0, 13) + Me.lblWebCode.TabIndex = 57 + ' + 'lblSystem + ' + Me.lblSystem.AutoSize = True + Me.lblSystem.Location = New System.Drawing.Point(9, 467) + Me.lblSystem.Name = "lblSystem" + Me.lblSystem.Size = New System.Drawing.Size(41, 13) + Me.lblSystem.TabIndex = 58 + Me.lblSystem.Text = "System" + ' + 'cmbSystem + ' + Me.cmbSystem.FormattingEnabled = True + Me.cmbSystem.Items.AddRange(New Object() {"Wii", "Xbox 360", "PS3", "PC", "3DS", "Wii U", "Xbox One", "PS4", "Tablet"}) + Me.cmbSystem.Location = New System.Drawing.Point(54, 464) + Me.cmbSystem.Name = "cmbSystem" + Me.cmbSystem.Size = New System.Drawing.Size(121, 21) + Me.cmbSystem.TabIndex = 59 + ' + 'btnTraps + ' + Me.btnTraps.Location = New System.Drawing.Point(55, 81) + Me.btnTraps.Name = "btnTraps" + Me.btnTraps.Size = New System.Drawing.Size(75, 23) + Me.btnTraps.TabIndex = 60 + Me.btnTraps.Text = "Traps" + Me.btnTraps.UseVisualStyleBackColor = True + ' + 'btnVehicles + ' + Me.btnVehicles.Location = New System.Drawing.Point(55, 156) + Me.btnVehicles.Name = "btnVehicles" + Me.btnVehicles.Size = New System.Drawing.Size(75, 23) + Me.btnVehicles.TabIndex = 61 + Me.btnVehicles.Text = "Vehicles" + Me.btnVehicles.UseVisualStyleBackColor = True + ' + 'btnRaw + ' + Me.btnRaw.Location = New System.Drawing.Point(6, 34) + Me.btnRaw.Name = "btnRaw" + Me.btnRaw.Size = New System.Drawing.Size(75, 23) + Me.btnRaw.TabIndex = 62 + Me.btnRaw.Text = "Raw Write" + Me.btnRaw.UseVisualStyleBackColor = True + ' + 'grpDebug + ' + Me.grpDebug.Controls.Add(Me.btnGame) + Me.grpDebug.Controls.Add(Me.btnRainbow) + Me.grpDebug.Controls.Add(Me.btnArea) + Me.grpDebug.Controls.Add(Me.btnRaw) + Me.grpDebug.Location = New System.Drawing.Point(436, 36) + Me.grpDebug.Name = "grpDebug" + Me.grpDebug.Size = New System.Drawing.Size(200, 104) + Me.grpDebug.TabIndex = 64 + Me.grpDebug.TabStop = False + Me.grpDebug.Text = "Debug" + ' + 'btnCrystals + ' + Me.btnCrystals.Location = New System.Drawing.Point(55, 230) + Me.btnCrystals.Name = "btnCrystals" + Me.btnCrystals.Size = New System.Drawing.Size(75, 23) + Me.btnCrystals.TabIndex = 65 + Me.btnCrystals.Text = "Crystals" + Me.btnCrystals.UseVisualStyleBackColor = True + ' + 'btnRainbow + ' + Me.btnRainbow.Location = New System.Drawing.Point(87, 34) + Me.btnRainbow.Name = "btnRainbow" + Me.btnRainbow.Size = New System.Drawing.Size(75, 23) + Me.btnRainbow.TabIndex = 64 + Me.btnRainbow.Text = "Rainbow!" + Me.btnRainbow.UseVisualStyleBackColor = True + ' + 'btnArea + ' + Me.btnArea.Location = New System.Drawing.Point(6, 64) + Me.btnArea.Name = "btnArea" + Me.btnArea.Size = New System.Drawing.Size(75, 23) + Me.btnArea.TabIndex = 63 + Me.btnArea.Text = "Area" + Me.btnArea.UseVisualStyleBackColor = True + ' + 'bgReadPortalDuo + ' + ' + 'bgWritePortalDuo + ' + ' + 'tmrRainbow + ' + Me.tmrRainbow.Interval = 1000 + ' + 'grpEditor + ' + Me.grpEditor.Controls.Add(Me.btnTraps) + Me.grpEditor.Controls.Add(Me.btnCrystals) + Me.grpEditor.Controls.Add(Me.btnVehicles) + Me.grpEditor.Location = New System.Drawing.Point(436, 147) + Me.grpEditor.Name = "grpEditor" + Me.grpEditor.Size = New System.Drawing.Size(200, 333) + Me.grpEditor.TabIndex = 66 + Me.grpEditor.TabStop = False + Me.grpEditor.Text = "Editors" + ' + 'btnGame + ' + Me.btnGame.Location = New System.Drawing.Point(87, 63) + Me.btnGame.Name = "btnGame" + Me.btnGame.Size = New System.Drawing.Size(75, 23) + Me.btnGame.TabIndex = 65 + Me.btnGame.Text = "Game" + Me.btnGame.UseVisualStyleBackColor = True + ' + 'frmMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(648, 515) + Me.Controls.Add(Me.grpEditor) + Me.Controls.Add(Me.grpDebug) + Me.Controls.Add(Me.cmbSystem) + Me.Controls.Add(Me.lblSystem) + Me.Controls.Add(Me.lblWebCode) + Me.Controls.Add(Me.lblWebCode_Text) + Me.Controls.Add(Me.btnClearData) + Me.Controls.Add(Me.lblData) + Me.Controls.Add(Me.chkSerial) + Me.Controls.Add(Me.btnShowData) + Me.Controls.Add(Me.btnReset) + Me.Controls.Add(Me.StatusPurp) + Me.Controls.Add(Me.mnuPurp) + Me.Controls.Add(Me.txtName) + Me.Controls.Add(Me.lblName) + Me.Controls.Add(Me.cmbHat) + Me.Controls.Add(Me.lblHat) + Me.Controls.Add(Me.lstCharacters) + Me.Controls.Add(Me.cmbGame) + Me.Controls.Add(Me.lblLevel) + Me.Controls.Add(Me.numLevel) + Me.Controls.Add(Me.grpSkillPath) + Me.Controls.Add(Me.numHero) + Me.Controls.Add(Me.lblHeroPoints) + Me.Controls.Add(Me.lblChallenge) + Me.Controls.Add(Me.numHeroicChallenges) + Me.Controls.Add(Me.numGold) + Me.Controls.Add(Me.lblGold) + Me.Controls.Add(Me.grpChecksums) + Me.Controls.Add(Me.lblGame) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MainMenuStrip = Me.mnuPurp + Me.MaximizeBox = False + Me.Name = "frmMain" + Me.Text = "SkyReader-GUI ALPHA-6" + CType(Me.picHeader, System.ComponentModel.ISupportInitialize).EndInit() + Me.grpChecksums.ResumeLayout(False) + Me.grpChecksums.PerformLayout() + CType(Me.picSerial, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea1Type4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea0Type4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea1Type3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea1Type2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea1Type1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea0Type3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea0Type2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.picArea0Type1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.numGold, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.numHeroicChallenges, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.numHero, System.ComponentModel.ISupportInitialize).EndInit() + Me.grpSkillPath.ResumeLayout(False) + Me.grpSkillPath.PerformLayout() + CType(Me.numLevel, System.ComponentModel.ISupportInitialize).EndInit() + Me.mnuPurp.ResumeLayout(False) + Me.mnuPurp.PerformLayout() + Me.StatusPurp.ResumeLayout(False) + Me.StatusPurp.PerformLayout() + Me.grpDebug.ResumeLayout(False) + Me.grpEditor.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub - Friend WithEvents ofdSky As OpenFileDialog + End Sub + Friend WithEvents ofdSky As OpenFileDialog Friend WithEvents lblGame As Label Friend WithEvents lblHeader As Label Friend WithEvents picHeader As PictureBox @@ -893,8 +962,8 @@ Partial Class frmMain Friend WithEvents PortalToolStripMenuItem As ToolStripMenuItem Friend WithEvents ReadSkylanderToolStripMenuItem As ToolStripMenuItem Friend WithEvents WriteSkylanderToolStripMenuItem As ToolStripMenuItem - Friend WithEvents ReadSwapperOtherHalfToolStripMenuItem As ToolStripMenuItem - Friend WithEvents WriteSwapperOtherHalfToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ReadSecondFigureToolStripMenuItem As ToolStripMenuItem + Friend WithEvents WriteSecondFigureToolStripMenuItem As ToolStripMenuItem Friend WithEvents ConnectToPortalToolStripMenuItem As ToolStripMenuItem Friend WithEvents StatusPurp As StatusStrip Friend WithEvents SaldeStatus As ToolStripStatusLabel @@ -902,7 +971,6 @@ Partial Class frmMain Friend WithEvents btnReset As Button Friend WithEvents bgWritePortal As System.ComponentModel.BackgroundWorker Friend WithEvents bgReadPortal As System.ComponentModel.BackgroundWorker - Friend WithEvents tmrPortal As Timer Friend WithEvents ClearToolStripMenuItem As ToolStripMenuItem Friend WithEvents btnShowData As Button Friend WithEvents picSerial As PictureBox @@ -910,7 +978,6 @@ Partial Class frmMain Friend WithEvents chkSerial As CheckBox Friend WithEvents lblData As Label Friend WithEvents btnClearData As Button - Friend WithEvents tmrSkyKey As Timer Friend WithEvents lblWebCode_Text As Label Friend WithEvents lblWebCode As Label Friend WithEvents lblSystem As Label @@ -922,4 +989,13 @@ Partial Class frmMain Friend WithEvents btnArea As Button Friend WithEvents bgReadPortalDuo As System.ComponentModel.BackgroundWorker Friend WithEvents bgWritePortalDuo As System.ComponentModel.BackgroundWorker + Friend WithEvents btnRainbow As Button + Friend WithEvents tmrRainbow As Timer + Friend WithEvents btnCrystals As Button + Friend WithEvents EditorsToolStripMenuItem As ToolStripMenuItem + Friend WithEvents TrapsToolStripMenuItem As ToolStripMenuItem + Friend WithEvents VehiclesToolStripMenuItem As ToolStripMenuItem + Friend WithEvents CrystalsToolStripMenuItem As ToolStripMenuItem + Friend WithEvents grpEditor As GroupBox + Friend WithEvents btnGame As Button End Class diff --git a/SkyReader-GUI/frmMain.resx b/SkyReader-GUI/frmMain.resx index 3860db0..4fb09d6 100644 --- a/SkyReader-GUI/frmMain.resx +++ b/SkyReader-GUI/frmMain.resx @@ -118,13 +118,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 481, 17 + 785, 17 - 570, 17 + 874, 17 - 672, 17 + 976, 17 142, 17 @@ -132,17 +132,14 @@ 17, 17 - - 378, 17 - - - 269, 17 - - 782, 17 + 269, 17 - 930, 17 + 417, 17 + + + 567, 17 diff --git a/SkyReader-GUI/frmMain.vb b/SkyReader-GUI/frmMain.vb index a7d1a42..532ecc5 100644 --- a/SkyReader-GUI/frmMain.vb +++ b/SkyReader-GUI/frmMain.vb @@ -1,18 +1,12 @@ Imports System.ComponentModel -Imports System.IO Imports SkyReader_GUI.DeviceManagement +Imports SkyReader_GUI.FigureIO 'TODO Chart -'Determine how Traps are Different. -'Edit Trap contents. +'Fix Trap CRC -'Determine how Vehicles are Different -'Edit Vehicles +'Finish Vehicle Editor -'Stop the message box for Unknown Figure from happening twice. - -'Test the Imaginator Chest. In Particular the Serial Changing like Amiibos do. Does that allow for Endless Items? - -'Crystals Editing and Cloning +'Crystals Editing 'Properly set the Imaginator Figure Bytes that are required to be 0x0. @@ -54,481 +48,17 @@ Imports SkyReader_GUI.DeviceManagement Public Class frmMain 'The AES and CRC16CCIT functions have been seperated into classes for clarity. 'The Skylander Methods were put into seperate classes for clarity. - - 'We need to make BR and FS public shared so other Classes can access it - Public Shared fs As FileStream - Public Shared br As BinaryReader - Public Shared WholeFile(1023) As Byte - Public Shared blnEncrypted As Boolean = False - Dim File As String - 'Dim frmLog As New frmLog + 'Should these be here? Probably not. Probably in Figure or FigureIO Public Shared Area0 As Byte Public Shared Area1 As Byte - Public Shared blnTrap As Boolean = False - Public Shared BlnVehicle As Boolean = False - #Region " File Read/Write " - Sub Load_File() - 'AES.HexMath() - 'AES.Header() - 'Exit Sub - BlnVehicle = False - blnTrap = False - lblWebCode.Text = "" - 'Let's test Decryption - Dim result As DialogResult = ofdSky.ShowDialog() - If result = DialogResult.OK Then - ' Test result. - File = ofdSky.FileName - Else - 'Do Nothing - Exit Sub - End If - - Try - fs = New FileStream(File, FileMode.Open) - Catch ex As Exception - 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "Unable to Open " & File - 'frmLog.Show() - Exit Sub - End Try - - If fs.Length = 1024 Then - ElseIf fs.Length = 2048 Then - 'SWAP - 'MessageBox.Show("Sorry, this program does not handle a Maxlander Swap Force Dump.") - 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "Sorry, this program does not handle a Maxlander Swap Force Dump." - 'frmLog.Show() - Exit Sub - Else - 'frmLog.rtxLog.Text = frmLog.rtxLog.Text & Date.Now & "The Figure must be 1 Kilobyte." - 'frmLog.Show() - fs.Close() - Exit Sub - End If - 'Reset the Form, Just in Case - cmbGame.SelectedIndex = 0 - cmbHat.SelectedIndex = 0 - br = New BinaryReader(fs) - 'Put the whole file into an array. - WholeFile = br.ReadBytes(1024) - br.Close() 'close the Binary Reader - fs.Close() ' close the FileStream - blnEncrypted = False - - 'We can get the Figure's ID and Variant ID without Needing Encryption/Decryption - 'Get Figure ID and Alter Ego/Variant - Figures.GetFigureID_AlterEgo_Variant() - - 'Because traps are writing bytes to where the Nickname would normally show up, we Do NOT attempt to Decrypt here. - If blnTrap = False Then - 'Get Nickname - 'We also verify if Encrypted or not. - Nickname.GetNickname() - End If - - - - If blnEncrypted = True Then - Decrypt() - End If - - 'Calculate the Checksums - CRC16CCITT.Checksums() - - - - 'Determine if we are going to use Area 0 or Area 1 - Figures.Area0orArea1() - - frmArea.Area0_1() - - 'We break here if Vehicle, Crystal, Item or Trap - - If BlnVehicle = True Then - Dim frmVehicles As New frmVehicles - frmVehicles.Show() - Hide() - Exit Sub - End If - If blnTrap = True Then - Application.DoEvents() - Dim frmTraps As New frmTraps - frmTraps.Show() - Hide() - Exit Sub - End If - 'Get the Current Skill Path. - Skills.GetSkillPath() - - 'Get the Current Hero Points value for Areas A and B. Show the Larger Value. - Hero.GetHero() - - 'Get the Current Gold values for Areas A and B. Show the Larger Value. - Gold.GetGold() - - 'Get EXP - Exp.GetEXP() - - 'Get the Current Heroic Challenges value for Areas A and B. Show the Larger Value. - Challenges.GetChallenges() - - 'Show us what Figure we got. - 'Show us the Figures ID and Variant ID - 'Figures.ShowID() - - 'Mostly complete Detection - Figures.FigureItOut() - - 'Select the Hat - Hats.ReadHats() - 'btnSaveAs.Enabled = True - 'btnWrite.Enabled = True - - Web_Code.Load() - 'btnSaveAs.Enabled = True - 'btnWrite.Enabled = True - - System_ID.ReadSystem_ID() - - End Sub - Sub LoadData() - blnEncrypted = False - 'Get Nickname - 'We also verify if Encrypted or not. - Nickname.GetNickname() - - If blnEncrypted = True Then - Decrypt() - End If - cmbHat.SelectedIndex = 0 - - 'Calculate the Checksums - CRC16CCITT.Checksums() - - 'Determine if we are going to use Area 0 or Area 1 - Figures.Area0orArea1() - - frmArea.Area0_1() - 'Get the Current Skill Path. - Skills.GetSkillPath() - - - - 'Get the Current Hero Points value for Areas A and B. Show the Larger Value. - Hero.GetHero() - - 'Get the Current Gold values for Areas A and B. Show the Larger Value. - Gold.GetGold() - - 'Get EXP - Exp.GetEXP() - - 'Get the Current Heroic Challenges value for Areas A and B. Show the Larger Value. - Challenges.GetChallenges() - - 'Get Figure ID and Alter Ego/Variant - Figures.GetFigureID_AlterEgo_Variant() - - 'Show us what Figure we got. - 'Show us the Figures ID and Variant ID - 'Figures.ShowID() - 'Mostly complete Detection - Figures.FigureItOut() - 'Select the Hat - Hats.ReadHats() - 'btnSaveAs.Enabled = True - 'btnWrite.Enabled = True - Web_Code.Load() - - System_ID.ReadSystem_ID() - End Sub - Sub ReEncrypt() - 'Get Header Bytes - AES.Header() - - 'The Following blocks (Offsets) are NOT encrypted - 'All Offsets are in Hex and counted as such. - '0x000 Through 0x70 - '0x0B0 - '0x0F0 - '0x130 - '0x170 - '0x1B0 - '0x1F0 - '0x230 - '0x270 - '0x2B0 - '0x2F0 - '0x330 - '0x370 - '0x3B0 - '0X3F0 - - 'Offsets that are Encrypted: (All 16 Bytes in Length) - '0x080 '128 'Need 08 - '0x090 '144 'Need 09 - '0x0A0 'Nickname A '160 'Need 0A Not A0 '150 Diff - - '0x0C0 '192 - '0x0D0 '208 - '0x0E0 '224 - - '0x100 '256 - '0x110 '272 - '0x120 '288 - - '0x140 '320 - '0x150 '336 - '0x160 '352 - - '0x180 '384 - '0x190 '400 - '0x1A0 '416 - - '0x1C0 '448 - '0x1D0 '464 - '0x1E0 '480 - - '0x200 '512 - '0x210 '528 - '0x220 '544 - - '0x240 '576 - '0x250 '592 - '0x260 'Nickname B '608 - - '0x280 '640 - '0x290 '656 - '0x2A0 '672 - - '0x2C0 '704 - '0x2D0 '720 - '0x2E0 '736 - - '0x300 '768 - '0x310 '784 - '0x320 '800 - - '0x340 '832 - '0x350 '848 - '0x360 '864 - - '0x380 '896 - '0x390 '912 - '0x3A0 '928 - - '0x3C0 '960 - '0x3D0 '976 - '0x3E0 '992 - - Dim Offsets = New Integer() {128, 144, 160, 192, 208, 224, 256, 272, 288, 320, 336, 352, 384, 400, 416, 448, 464, 480, 512, 528, 544, 576, 592, 608, 640, 656, 672, 704, 720, 736, 768, 784, 800, 832, 848, 864, 896, 912, 928, 960, 976, 992} - Dim AreaKey = New Byte() {&H8, &H9, &HA, &HC, &HD, &HE, &H10, &H11, &H12, &H14, &H15, &H16, &H18, &H19, &H1A, &H1C, &H1D, &H1E, &H20, &H21, &H22, &H24, &H25, &H26, &H28, &H29, &H2A, &H2C, &H2D, &H2E, &H30, &H31, &H32, &H34, &H35, &H36, &H38, &H39, &H3A, &H3C, &H3D, &H3E} - 'MessageBox.Show(AreaKey.Length) - Dim AreaBytes(15) As Byte - - 'MessageBox.Show(Offsets.Length) '42 - - Dim OffsetCounter As Integer = 0 - - Dim Counter As Integer = 0 'Necessary to add one to the Byte array Offset - Dim HeadByteCounter As Integer = 0 '= 160 'Use Integer, FTW! - Do Until OffsetCounter = 42 - HeadByteCounter = Offsets(OffsetCounter) - 'MessageBox.Show(HeadByteCounter) - 'Get Bytes from the Encrypted Offset - Do Until Counter = 16 - 'Fill areaBytes, with WholeFile. - 'AreaBytes(0-15) = WholeFile(HeadByteCounter) - AreaBytes(Counter) = WholeFile(HeadByteCounter) - HeadByteCounter += 1 - Counter += 1 - Loop - - 'MessageBox.Show("ValueBytes " & BitConverter.ToString(AreaBytes)) - 'MessageBox.Show("AreaKey " & AreaKey(OffsetCounter)) - AES.GetKey(AreaKey(OffsetCounter)) - - Dim Output As Byte() = AES.AESE(AreaBytes, AES.FullKey) - - 'Fillback Loop - Counter = 0 - HeadByteCounter = Offsets(OffsetCounter) 'Use Integer, FTW! - 'Data back in - Do Until Counter = 16 - WholeFile(HeadByteCounter) = Output(Counter) - HeadByteCounter += 1 - Counter += 1 - Loop - - 'MessageBox.Show("Output " & BitConverter.ToString(Output)) - - Counter = 0 - OffsetCounter += 1 - Loop - End Sub - Sub Decrypt() - 'Get Header Bytes - AES.Header() - - 'The Following blocks (Offsets) are NOT encrypted - 'All Offsets are in Hex and counted as such. - '0x000 Through 0x70 - '0x0B0 - '0x0F0 - '0x130 - '0x170 - '0x1B0 - '0x1F0 - '0x230 - '0x270 - '0x2B0 - '0x2F0 - '0x330 - '0x370 - '0x3B0 - '0X3F0 - - 'Offsets that are Encrypted: (All 16 Bytes in Length) - '0x080 '128 'Need 08 - '0x090 '144 'Need 09 - '0x0A0 'Nickname A '160 'Need 0A Not A0 '150 Diff - - '0x0C0 '192 - '0x0D0 '208 - '0x0E0 '224 - - '0x100 '256 - '0x110 '272 - '0x120 '288 - - '0x140 '320 - '0x150 '336 - '0x160 '352 - - '0x180 '384 - '0x190 '400 - '0x1A0 '416 - - '0x1C0 '448 - '0x1D0 '464 - '0x1E0 '480 - - '0x200 '512 - '0x210 '528 - '0x220 '544 - - '0x240 '576 - '0x250 '592 - '0x260 'Nickname B '608 - - '0x280 '640 - '0x290 '656 - '0x2A0 '672 - - '0x2C0 '704 - '0x2D0 '720 - '0x2E0 '736 - - '0x300 '768 - '0x310 '784 - '0x320 '800 - - '0x340 '832 - '0x350 '848 - '0x360 '864 - - '0x380 '896 - '0x390 '912 - '0x3A0 '928 - - '0x3C0 '960 - '0x3D0 '976 - '0x3E0 '992 - - Dim Offsets = New Integer() {128, 144, 160, 192, 208, 224, 256, 272, 288, 320, 336, 352, 384, 400, 416, 448, 464, 480, 512, 528, 544, 576, 592, 608, 640, 656, 672, 704, 720, 736, 768, 784, 800, 832, 848, 864, 896, 912, 928, 960, 976, 992} - Dim AreaKey = New Byte() {&H8, &H9, &HA, &HC, &HD, &HE, &H10, &H11, &H12, &H14, &H15, &H16, &H18, &H19, &H1A, &H1C, &H1D, &H1E, &H20, &H21, &H22, &H24, &H25, &H26, &H28, &H29, &H2A, &H2C, &H2D, &H2E, &H30, &H31, &H32, &H34, &H35, &H36, &H38, &H39, &H3A, &H3C, &H3D, &H3E} - 'MessageBox.Show(AreaKey.Length) - Dim AreaBytes(15) As Byte - - 'MessageBox.Show(Offsets.Length) '42 - - Dim OffsetCounter As Integer = 0 - - Dim Counter As Integer = 0 'Necessary to add one to the Byte array Offset - Dim HeadByteCounter As Integer = 0 '= 160 'Use Integer, FTW! - Do Until OffsetCounter = 42 - HeadByteCounter = Offsets(OffsetCounter) - 'MessageBox.Show(HeadByteCounter) - 'Get Bytes from the Encrypted Offset - Do Until Counter = 16 - 'Fill areaBytes, with WholeFile. - 'AreaBytes(0-15) = WholeFile(HeadByteCounter) - AreaBytes(Counter) = WholeFile(HeadByteCounter) - HeadByteCounter += 1 - Counter += 1 - Loop - - 'MessageBox.Show("ValueBytes " & BitConverter.ToString(AreaBytes)) - 'MessageBox.Show("AreaKey " & AreaKey(OffsetCounter)) - AES.GetKey(AreaKey(OffsetCounter)) - - Dim Output As Byte() = AES.AESD(AreaBytes, AES.FullKey) - - 'Fillback Loop - Counter = 0 - HeadByteCounter = Offsets(OffsetCounter) 'Use Integer, FTW! - 'Data back in - Do Until Counter = 16 - WholeFile(HeadByteCounter) = Output(Counter) - HeadByteCounter += 1 - Counter += 1 - Loop - - 'MessageBox.Show("Output " & BitConverter.ToString(Output)) - - Counter = 0 - OffsetCounter += 1 - Loop - 'MessageBox.Show("Nickname") - Nickname.GetNickname() - End Sub - - Sub Write_Data() - If BlnVehicle = False And blnTrap = False Then - 'Set Data that changed. - Figures.EditCharacterIDVariant() - Challenges.WriteChallenges() - Exp.WriteEXP() - Gold.WriteGold() - Hero.WriteHero() - Nickname.SetNickname() - Hats.WriteHats() - - If numLevel.Value >= 10 Then - Skills.WriteSkillPath() - End If - End If - 'Fix Read/Write Blocks - Figures.Fixing_Bytes() - 'In theory, this will fix any issues with the Edited Dumps. - Figures.SetArea0AndArea1() - 'Fix the Checksums. - CRC16CCITT.WriteCheckSums() + Private Sub btnRaw_Click(sender As Object, e As EventArgs) Handles btnRaw.Click + Raw_Write() End Sub - Sub Write_Vehicle() - End Sub - Sub Write_File() - Write_Data() - fs = New FileStream(File, FileMode.OpenOrCreate) - fs.Write(WholeFile, 0, WholeFile.Length) - fs.Flush() - fs.Close() - End Sub #End Region @@ -545,12 +75,14 @@ Public Class frmMain lstCharacters.SelectedIndex += 1 Exit Sub End If + Figures.SelectFigure() End Sub 'Set the Bytes here, whenever I figure it out. Private Sub cmbHat_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbHat.SelectedIndexChanged Hats.SelectHat() End Sub + 'Dim CMB As Integer = 0 Private Sub cmbGame_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbGame.SelectedIndexChanged lstCharacters.Items.Clear() chkSerial.Enabled = True @@ -561,44 +93,35 @@ Public Class frmMain lblArea2Type3.Visible = True picArea0Type3.Visible = True picArea1Type3.Visible = True - 'cmbHat.Items.Clear() - 'btnWrite.Enabled = True - If cmbGame.SelectedIndex = 0 Then + + If blnTrap = True And cmbGame.SelectedItem <> "Traps" Then + cmbGame.SelectedItem = "Traps" + ' Exit Sub + End If + If BlnVehicle = True And cmbGame.SelectedItem <> "Vehicles" Then + cmbGame.SelectedItem = "Vehicles" + 'Exit Sub + ElseIf blnCrystal = True And cmbGame.SelectedItem <> "Crystals" Then + cmbGame.SelectedItem = "Crystals" + 'Exit Sub + End If + + 'Adventure Packs + + If cmbGame.SelectedItem = "Spyro's Adventure" Then 'Spyro's Adventure Figures.SpyroAdventure() - 'Hats.SpyroAdventureHats() - ElseIf cmbGame.SelectedIndex = 1 Then + + ElseIf cmbGame.SelectedItem = "Giants" Then 'Giants Figures.Giants() - 'Hats.GiantsHats() - ElseIf cmbGame.SelectedIndex = 2 Then + ElseIf cmbGame.SelectedItem = "Swap Force" Then 'Swap Force Figures.SwapForce() - 'Hats.SwapForceHats() - ElseIf cmbGame.SelectedIndex = 3 Then + ElseIf cmbGame.SelectedItem = "Trap Team" Then 'Trap Team Figures.TrapTeam() - 'Hats.TrapTeamHats() - ElseIf cmbGame.SelectedIndex = 4 Then - 'SuperChargers - Figures.SuperChargers() - 'Hats.TrapTeamHats() - ElseIf cmbGame.SelectedIndex = 5 Then - 'Imaginators - 'Partially Disabled due to issues and complications. - 'lstCharacters.Items.Clear() - Figures.Imaginators() - 'Hats.TrapTeamHats() - 'btnWrite.Enabled = False - chkSerial.Checked = False - chkSerial.Enabled = False - 'Exit Sub - ElseIf cmbGame.SelectedIndex = 6 Then - 'Items - 'We don't populate the Hats since items and Traps can't wear them. - Figures.Items() - Disable_Controls() - ElseIf cmbGame.SelectedIndex = 7 Then + ElseIf cmbGame.SelectedItem = "Traps" Then 'Traps Disable_Controls() Figures.Traps() @@ -610,7 +133,30 @@ Public Class frmMain lblArea2Type3.Visible = False picArea0Type3.Visible = False picArea1Type3.Visible = False - ElseIf cmbGame.SelectedIndex = 8 Then + ElseIf cmbGame.SelectedItem = "SuperChargers" Then + 'SuperChargers + Figures.SuperChargers() + ElseIf cmbGame.SelectedItem = "Vehicles" Then + 'SaldeStatus.Text = "TODO: FIX" + Figures.Vehicles() + ElseIf cmbGame.SelectedItem = "Imaginators" Then + 'Imaginators + Figures.Imaginators() + 'Due to the Extra Layer of Security, changing the Figure's Serial is Disabled. + chkSerial.Checked = False + chkSerial.Enabled = False + ElseIf cmbGame.SelectedItem = "Imaginators Crystals" Then + 'SaldeStatus.Text = "TODO: FIX" + Figures.Crystals() + 'Due to the Extra Layer of Security, changing the Figure's Serial is Disabled. + chkSerial.Checked = False + chkSerial.Enabled = False + ElseIf cmbGame.SelectedItem = "Items" Then + 'Items + 'We don't populate the Hats since items and Traps can't wear them. + Figures.Items() + Disable_Controls() + ElseIf cmbGame.SelectedItem = "Adventure Packs" Then 'Adventure Packs Disable_Controls() Figures.AdventurePacks() @@ -619,7 +165,7 @@ Public Class frmMain If cmbGame.SelectedIndex < 6 Then 'cmbHat.SelectedIndex = 0 End If - + Application.DoEvents() 'lstCharacters.SelectedIndex = 0 End Sub 'Hats don't need these Controls. @@ -635,6 +181,7 @@ Public Class frmMain txtName.Text = "" txtName.Enabled = False End Sub + Sub Enable_Controls() numGold.Enabled = True numLevel.Enabled = True @@ -654,105 +201,26 @@ Public Class frmMain Dim frmLog As New frmLog Hats.cmbHatFill() cmbSystem.SelectedIndex = 0 +#If DEBUG Then +#Else + cmbGame.Items.Remove("Imaginators Crystals") + CrystalsToolStripMenuItem.Dispose() + btnCrystals.Dispose +#End If End Sub #End Region #Region " Menu " Private Sub OpenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenToolStripMenuItem.Click + 'Goes to FigureIO to Load File Load_File() End Sub Private Sub Save_Enc_ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles Save_Enc_ToolStripMenuItem.Click - 'Save As - Dim dialog As New SaveFileDialog With { - .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", - .FilterIndex = 1, - .RestoreDirectory = True, - .Title = "Save Encrypted Dump" - } - If (dialog.ShowDialog = DialogResult.OK) Then - Dim NewFile As String = dialog.FileName - - If chkSerial.Checked = True Then - CRC16CCITT.GenerateNewSerial() - End If - Figures.EditCharacterIDVariant() - 'We need to not break Traps if Saving a trap. - If blnTrap = False Then - Challenges.WriteChallenges() - Exp.WriteEXP() - Gold.WriteGold() - Hero.WriteHero() - Nickname.SetNickname() - Hats.WriteHats() - If numLevel.Value >= 10 Then - Skills.WriteSkillPath() - End If - End If - - System_ID.WriteSystem() - - 'In theory, this will fix any issues with the Edited Dumps. - Figures.SetArea0AndArea1() - 'This corrects the Access Control Blocks and the Imaginator Byte checks - Figures.Fixing_Bytes() - 'Fix the Checksums. - CRC16CCITT.WriteCheckSums() - 'I need to Calculate Trap Checksums differently. - 'And Gen 6 Crystals too. - ReEncrypt() - fs = New FileStream(NewFile, FileMode.OpenOrCreate) - fs.Write(WholeFile, 0, WholeFile.Length) - fs.Flush() - fs.Close() - End If - - 'Write_File() + Write_Encrypted_Figure() End Sub Private Sub SaveDecryptedToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles Save_Dec_ToolStripMenuItem.Click - 'Save As - Dim dialog As New SaveFileDialog With { - .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", - .FilterIndex = 1, - .RestoreDirectory = True, - .Title = "Save Decrypted Dump", - .FileName = lstCharacters.SelectedItem - } - If (dialog.ShowDialog = DialogResult.OK) Then - Dim NewFile As String = dialog.FileName - 'DO NOT FORGET THIS - If chkSerial.Checked = True Then - CRC16CCITT.GenerateNewSerial() - End If - Figures.EditCharacterIDVariant() - 'We need to not break Traps if Saving a trap. - If blnTrap = False Then - Challenges.WriteChallenges() - Exp.WriteEXP() - Gold.WriteGold() - Hero.WriteHero() - Nickname.SetNickname() - Hats.WriteHats() - If numLevel.Value >= 10 Then - Skills.WriteSkillPath() - End If - End If - - System_ID.WriteSystem() - - 'In theory, this will fix any issues with the Edited Dumps. - Figures.SetArea0AndArea1() - 'This corrects the Access Control Blocks and the Imaginator Byte checks - Figures.Fixing_Bytes() - 'Fix the Checksums. - CRC16CCITT.WriteCheckSums() - 'ReEncrypt() - - fs = New FileStream(NewFile, FileMode.OpenOrCreate) - fs.Write(WholeFile, 0, WholeFile.Length) - fs.Flush() - fs.Close() - End If + Write_Decrypted_Figure() End Sub Private Sub CloseToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CloseToolStripMenuItem.Click Close() @@ -768,11 +236,28 @@ Public Class frmMain End If End Sub Private Sub WriteSkylanderToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WriteSkylanderToolStripMenuItem.Click + If lstCharacters.SelectedIndex = -1 Then + SaldeStatus.Text = "No figure Selected" + Exit Sub + End If + 'If we use Background Worker, it creates a Seperate Instance of the GUI. + 'We actually need to SET Data here + If blnCrystal = False And blnTrap = False And BlnVehicle = False Then + Write_Data() + End If + + 'We need to Encrypt the Array Before we write + Encrypt() + SaldeStatus.Text = "Writing to Portal." + If bgWritePortal.IsBusy Then + SaldeStatus.Text = "Still Writing to Portal" + Exit Sub + End If bgWritePortal.RunWorkerAsync() End Sub 'I may want see/check for a Swap Force Figure. - Private Sub ReadSwapperOtherHalfToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReadSwapperOtherHalfToolStripMenuItem.Click + Private Sub ReadSecondFigureToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReadSecondFigureToolStripMenuItem.Click If bgReadPortalDuo.IsBusy = False Then bgReadPortalDuo.RunWorkerAsync() Else @@ -780,16 +265,52 @@ Public Class frmMain Exit Sub End If End Sub - Private Sub WriteSwapperOtherHalfToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WriteSwapperOtherHalfToolStripMenuItem.Click + Private Sub WriteSecondFigureToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WriteSecondFigureToolStripMenuItem.Click + If lstCharacters.SelectedIndex = -1 Then + SaldeStatus.Text = "No figure Selected" + Exit Sub + End If + 'If we use Background Worker, it creates a Seperate Instance of the GUI. + 'We actually need to SET Data here + If blnCrystal = False And blnTrap = False And BlnVehicle = False Then + Write_Data() + End If + 'We need to Encrypt the Array Before we write + Encrypt() + SaldeStatus.Text = "Writing to Portal" + If bgWritePortalDuo.IsBusy Then + SaldeStatus.Text = "Still Writing to Portal" + Exit Sub + End If bgWritePortalDuo.RunWorkerAsync() End Sub Private Sub ConnectToPortalToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ConnectToPortalToolStripMenuItem.Click Portal.portalHandle = FindThePortal() End Sub + Private Sub TrapsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TrapsToolStripMenuItem.Click + If cmbGame.SelectedItem <> "Traps" Then + SaldeStatus.Text = "Please Read a Trap Figure in First." + Exit Sub + End If + Dim frmTraps As New frmTraps + frmTraps.Show() + Hide() + End Sub + + Private Sub VehiclesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VehiclesToolStripMenuItem.Click + Dim frmVehicles As New frmVehicles + Hide() + frmVehicles.Show() + End Sub - Private Sub tmrSkyKey_Tick(sender As Object, e As EventArgs) Handles tmrSkyKey.Tick - DisableControls() + Private Sub CrystalsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CrystalsToolStripMenuItem.Click + If cmbGame.SelectedItem <> "Imaginators Crystals" Then + Exit Sub + End If + Dim frmCrystals As New frmCrystals + frmCrystals.Show() + Hide() End Sub @@ -808,6 +329,13 @@ Public Class frmMain radNone.Checked = True txtName.Text = "" cmbSystem.SelectedIndex = 0 + 'Since we may be resetting from Trap + lblArea1Type4.Text = "Area 0 Type 4" + lblArea2Type4.Text = "Area 1 Type 4" + lblArea1Type3.Visible = True + lblArea2Type3.Visible = True + picArea0Type3.Visible = True + picArea1Type3.Visible = True picHeader.BackColor = Color.Yellow picSerial.BackColor = Color.Yellow @@ -836,7 +364,6 @@ Public Class frmMain SaldeStatus.Text = "Portal Removed!" DisablePortalControls() Portal.blnPortal = False - tmrPortal.Enabled = True End If End If End If @@ -849,23 +376,18 @@ Public Class frmMain Private Sub bgReadPortal_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles bgReadPortal.RunWorkerCompleted SaldeStatus.Text = "Figure Read from Portal" - LoadData() + Parse_Figure() End Sub Private Sub BgWritePortal_DoWork(sender As Object, e As DoWorkEventArgs) Handles bgWritePortal.DoWork + SaldeStatus.Text = "Writing to Portal" - If bgWritePortal.IsBusy Then - SaldeStatus.Text = "Still Writing to Portal" - Exit Sub - End If 'write data to skylander in portal Portal.Portal_Write() End Sub Private Sub bgWritePortal_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles bgWritePortal.RunWorkerCompleted SaldeStatus.Text = "Figure written to Portal" - 'We Decrypt the Figure's data again because it had to be written encrypted but we edit decrypted data. - Decrypt() End Sub Private Sub bgReadPortalDuo_DoWork(sender As Object, e As DoWorkEventArgs) Handles bgReadPortalDuo.DoWork @@ -873,15 +395,11 @@ Public Class frmMain End Sub Private Sub bgReadPortalDuo_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles bgReadPortalDuo.RunWorkerCompleted SaldeStatus.Text = "Figure Read from Portal" - LoadData() + Parse_Figure() End Sub Private Sub bgWritePortalDuo_DoWork(sender As Object, e As DoWorkEventArgs) Handles bgWritePortalDuo.DoWork - SaldeStatus.Text = "Writing to Portal" - If bgWritePortalDuo.IsBusy Then - SaldeStatus.Text = "Still Writing to Portal" - Exit Sub - End If + Portal.Portal_Duo_Write() 'write data to skylander in portal End Sub 'Disable the Portal Menu Controls except for Connect. @@ -890,38 +408,22 @@ Public Class frmMain DisablePortalControls() End Sub Sub DisableControls() - 'btnClearData.Enabled = False - 'btnReset.Enabled = False Save_Enc_ToolStripMenuItem.Enabled = False DisablePortalControls() End Sub Sub DisablePortalControls() ReadSkylanderToolStripMenuItem.Enabled = False WriteSkylanderToolStripMenuItem.Enabled = False - ReadSwapperOtherHalfToolStripMenuItem.Enabled = False - WriteSwapperOtherHalfToolStripMenuItem.Enabled = False + ReadSecondFigureToolStripMenuItem.Enabled = False + WriteSecondFigureToolStripMenuItem.Enabled = False End Sub Public Sub unlockPortalControls() 'SaldeStatus.Text = "Unlocked" ReadSkylanderToolStripMenuItem.Enabled = True WriteSkylanderToolStripMenuItem.Enabled = True - ReadSwapperOtherHalfToolStripMenuItem.Enabled = True - WriteSwapperOtherHalfToolStripMenuItem.Enabled = True - End Sub - - Dim tmrFail As Integer = 0 - Private Sub TmrPortal_Tick(sender As Object, e As EventArgs) Handles tmrPortal.Tick - - If Portal.blnPortal = False Then - Portal.portalHandle = FindThePortal() - ElseIf Portal.blnPortal = True Then - tmrPortal.Enabled = False - tmrFail += 1 - End If - If tmrFail = 10 Then - tmrPortal.Enabled = False - End If + ReadSecondFigureToolStripMenuItem.Enabled = True + WriteSecondFigureToolStripMenuItem.Enabled = True End Sub #End Region @@ -955,6 +457,10 @@ Public Class frmMain End Sub Private Sub btnTraps_Click(sender As Object, e As EventArgs) Handles btnTraps.Click + If cmbGame.SelectedItem <> "Traps" Then + SaldeStatus.Text = "Please Read a Trap Figure in First." + Exit Sub + End If Dim frmTraps As New frmTraps frmTraps.Show() Hide() @@ -968,23 +474,13 @@ Public Class frmMain End Sub - Private Sub btnRaw_Click(sender As Object, e As EventArgs) Handles btnRaw.Click - 'Save As - Dim dialog As New SaveFileDialog With { - .Filter = "Dump File (*.bin)|*.bin|All files (*.*)|*.*", - .FilterIndex = 1, - .RestoreDirectory = True, - .Title = "Save Decrypted Dump", - .FileName = lstCharacters.SelectedItem - } - - If (dialog.ShowDialog = DialogResult.OK) Then - Dim NewFile As String = dialog.FileName - fs = New FileStream(NewFile, FileMode.OpenOrCreate) - fs.Write(WholeFile, 0, WholeFile.Length) - fs.Flush() - fs.Close() + Private Sub btnCrystals_Click(sender As Object, e As EventArgs) Handles btnCrystals.Click + If cmbGame.SelectedItem <> "Imaginators Crystals" Then + Exit Sub End If + Dim frmCrystals As New frmCrystals + frmCrystals.Show() + Hide() End Sub ReadOnly frmArea As New frmArea @@ -992,4 +488,33 @@ Public Class frmMain frmArea.Visible = True frmArea.Show() End Sub + +#Region "Rainbow!" + Private Sub btnRainbow_Click(sender As Object, e As EventArgs) Handles btnRainbow.Click + 'We do a Rainbow function. Because Debugging can be fun. + If Portal.blnPortal = False Then + Exit Sub + End If + If btnRainbow.Text = "Rainbow!" Then + tmrRainbow.Enabled = True + btnRainbow.Text = "Stop!" + Else + tmrRainbow.Enabled = False + btnRainbow.Text = "Rainbow!" + End If + End Sub + Shared random As New Random() + Private Sub tmrRainbow_Tick(sender As Object, e As EventArgs) Handles tmrRainbow.Tick + random.Next() + Dim Red As Byte = random.Next(0, 255) + Dim Blue As Byte = random.Next(0, 255) + Dim Green As Byte = random.Next(0, 255) + Portal.Portal_Rainbow(Red, Blue, Green) + End Sub + + Private Sub btnGame_Click(sender As Object, e As EventArgs) Handles btnGame.Click + MessageBox.Show(cmbGame.Items.Count) + End Sub +#End Region + End Class \ No newline at end of file diff --git a/SkyReader-GUI/frmTraps.vb b/SkyReader-GUI/frmTraps.vb index be3d1a0..8aac001 100644 --- a/SkyReader-GUI/frmTraps.vb +++ b/SkyReader-GUI/frmTraps.vb @@ -1,4 +1,5 @@ Imports System.Text +Imports SkyReader_GUI.FigureIO Imports SkyReader_GUI.frmMain Public Class frmTraps Private Sub cmbVillian1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbVillian1.SelectedIndexChanged @@ -48,8 +49,6 @@ Public Class frmTraps Sub Save_Area_A() 'Write Quanity Trapped - - If cmbVillian1.SelectedItem = "(None)" Then WholeFile(&H80) = &H0 WholeFile(&H81) = &H0 @@ -1194,7 +1193,6 @@ Public Class frmTraps 'Load Name from Byte 0x1D4 txtVillian6Name.Text = Load_Name(&H1D4) End Sub - Sub Load_Area_1() 'Add 1C0 'This only gets applied to the first villian @@ -1743,7 +1741,6 @@ Public Class frmTraps Dim NameBytes(29) As Byte Dim Adder As Integer = 0 Dim Full_Name As String - Dim Bad_Name As Boolean Do Until Adder = 28 'MessageBox.Show(Hex(offset)) NameBytes(Adder) = WholeFile(offset) @@ -1759,11 +1756,6 @@ Public Class frmTraps Adder += 1 Loop Full_Name = Encoding.Unicode.GetString(NameBytes) - Bad_Name = Nickname.IsUnicode(Full_Name) - If Bad_Name = True Then - MessageBox.Show("Did you load an Encrypted Trap?", "Unicode Name Detected") - End If - 'MessageBox.Show(Encoding.BigEndianUnicode.GetString(NameBytes)) Return Encoding.Unicode.GetString(NameBytes) End Function @@ -1964,6 +1956,5 @@ Public Class frmTraps MessageBox.Show("Evolved? " & Hex(WholeFile(&H91))) MessageBox.Show("Hat ID: " & Hex(WholeFile(&H92))) MessageBox.Show("Trinket ID: " & Hex(WholeFile(&H93))) - End Sub End Class \ No newline at end of file diff --git a/SkyReader-GUI/frmVehicles.Designer.vb b/SkyReader-GUI/frmVehicles.Designer.vb index 13cda17..5e14999 100644 --- a/SkyReader-GUI/frmVehicles.Designer.vb +++ b/SkyReader-GUI/frmVehicles.Designer.vb @@ -161,7 +161,7 @@ Partial Class frmVehicles 'numGearbits ' Me.numGearbits.Location = New System.Drawing.Point(13, 182) - Me.numGearbits.Maximum = New Decimal(New Integer() {255, 0, 0, 0}) + Me.numGearbits.Maximum = New Decimal(New Integer() {65535, 0, 0, 0}) Me.numGearbits.Name = "numGearbits" Me.numGearbits.Size = New System.Drawing.Size(120, 20) Me.numGearbits.TabIndex = 14 diff --git a/SkyReader-GUI/frmVehicles.vb b/SkyReader-GUI/frmVehicles.vb index 5edee27..4f803b2 100644 --- a/SkyReader-GUI/frmVehicles.vb +++ b/SkyReader-GUI/frmVehicles.vb @@ -1,6 +1,9 @@ -Imports SkyReader_GUI.frmMain +Imports SkyReader_GUI.FigureIO +Imports SkyReader_GUI.frmMain Public Class frmVehicles Private Sub frmVehicles_Load(sender As Object, e As EventArgs) Handles MyBase.Load + 'We want to NOT edit the Vehicle as a Figure. So we Disable Controls here. + frmMain.Disable_Controls() 'Initial Values. cmbDecoration.SelectedIndex = 0 @@ -16,10 +19,30 @@ Public Class frmVehicles Dim Topper_Two As Byte = WholeFile(&H259) Dim Neon_One As Byte = WholeFile(&H9A) - Dim Neon_Two As Byte + Dim Neon_Two As Byte = WholeFile(&H25A) Dim Shout_One As Byte = WholeFile(&H9B) - Dim Shout_Two As Byte + Dim Shout_Two As Byte = WholeFile(&H25B) + + Dim GearBits_One(1) As Byte 'WholeFile(&H118) & WholeFile(&H119) + Dim Int_GearBits_One As UShort + Dim GearBits_Two(1) As Byte 'WholeFile(&H2D8) & WHoleFile(&H2D9) + Dim Int_GearBits_Two As UShort + + GearBits_One(0) = WholeFile(&H118) + GearBits_One(1) = WholeFile(&H119) + + GearBits_Two(0) = WholeFile(&H2D8) + GearBits_Two(1) = WholeFile(&H2D9) + + 'DO Math: + 'Why do we do this? + 'Because Unsigned Integer is 4 Bytes. Not Two. + ReDim Preserve GearBits_One(3) + ReDim Preserve GearBits_Two(3) + Int_GearBits_One = BitConverter.ToUInt32(GearBits_One, 0) + Int_GearBits_Two = BitConverter.ToUInt32(GearBits_Two, 0) + 'I need to read data here: @@ -29,16 +52,19 @@ Public Class frmVehicles Topper_One = Topper_One Neon_One = Neon_One Shout_One = Shout_One + Int_GearBits_One = Int_GearBits_One ElseIf Area1 > Area0 Then Deco_One = Deco_Two Topper_One = Topper_Two Neon_One = Neon_Two Shout_One = Shout_Two + Int_GearBits_One = Int_GearBits_Two ElseIf Area0 = Area1 Then Deco_One = Deco_One Topper_One = Topper_One Neon_One = Neon_One Shout_One = Shout_One + Int_GearBits_One = Int_GearBits_One End If 'We wait for the Application to load all the Values into their Comboboxes. Application.DoEvents() @@ -60,7 +86,11 @@ Public Class frmVehicles End Try Try cmbShout.SelectedIndex = Convert.ToInt32(Shout_One) - 'MessageBox.Show(Shout_One) + Catch ex As Exception + + End Try + Try + numGearbits.Value = Int_GearBits_One Catch ex As Exception End Try @@ -1046,6 +1076,15 @@ Public Class frmVehicles Case Else MessageBox.Show("This is what it's like to go FURTHER BEYOND!") End Select + + Dim intGearBits As UShort = numGearbits.Value + Dim GearBits As Byte() = BitConverter.GetBytes(intGearBits) + WholeFile(&H118) = GearBits(0) + WholeFile(&H119) = GearBits(1) + + WholeFile(&H2D8) = GearBits(0) + WholeFile(&H2D9) = GearBits(1) + End Sub Private Sub frmVehicles_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing