New Shiftorium Upgrades, Better Save System.

I've added some new Shiftorium upgrades, as well as some save engine
fixes. If you add to the engine, and try to load, say a Boolean value
from a line containing a blank String value, it'll detect that and tell
you it'll rewrite that line. It preserves what it has already loaded.

I've also added some new terminal commands, and some Shiftorium
bugfixes.
This commit is contained in:
TheUltimateHacker 2015-05-18 15:46:07 -04:00
parent 37c68cce0c
commit 1fcbee8dab
10 changed files with 716 additions and 305 deletions

View file

@ -1,13 +1,18 @@
Public Class Terminal
Public currentdir As String = root
Public prompttoupdatesave As Boolean = False
Dim trackpos As Integer = 0
Public Sub terminal_Innitiate(sender As Object, e As EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized
AddLine("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
loadgame()
AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
SelectBottom()
If prompttoupdatesave = True Then
AddLine("ShiftOS has encountered an error loading configuration files. Press any key to reset damaged files.")
End If
End Sub
Public Sub SelectBottom()
@ -19,67 +24,209 @@
If command Like "help" Then
ShowHelp()
ElseIf command Like "cd *" Then
Dim folder As String = command.Replace("cd ", "")
If boughtdirectorysurfing = True Then
Dim folder As String = command.Replace("cd ", "")
If folder = ".." Then
If currentdir.ToLower = "c:\shiftos" Then
AddLine("cd: Error! You are at the root of your drive.")
If folder = ".." Then
If currentdir.ToLower = "c:\shiftos" Then
AddLine("cd: Error! You are at the root of your drive.")
Else
currentdir = IO.Directory.GetParent(currentdir).ToString
End If
Else
currentdir = IO.Directory.GetParent(currentdir).ToString
If IO.Directory.Exists(currentdir + "\" + folder) Then
currentdir = currentdir & "\" & folder
ElseIf IO.Directory.Exists(folder) Then
currentdir = folder
Else
AddLine("cd: Directory """ & folder & """ doesn't exist.")
End If
End If
Else
If IO.Directory.Exists(currentdir + "\" + folder) Then
currentdir = currentdir & "\" & folder
ElseIf IO.Directory.Exists(folder) Then
currentdir = folder
Else
AddLine("cd: Directory """ & folder & """ doesn't exist.")
End If
wrongcommand()
End If
ElseIf command = "dir" Or command = "ls" Then
AddLine("Type | Name ")
AddLine("-------+-------------------------------------------")
For Each Dir As String In IO.Directory.GetDirectories(currentdir)
Dim dirinf As New IO.DirectoryInfo(Dir)
AddLine("[DIR] | " & dirinf.Name)
Next
For Each file As String In IO.Directory.GetFiles(currentdir)
Dim filinf As New IO.FileInfo(file)
AddLine(filinf.Extension & " | " & filinf.Name)
Next
ElseIf command Like "mkdir *" Then
Dim foldertomake As String = command.Replace("mkdir ", "")
If IO.Directory.Exists(currentdir + "\" + foldertomake) Then
AddLine("Directory already exists!")
If boughtdirectorysurfing Then
AddLine("Type | Name ")
AddLine("-------+-------------------------------------------")
For Each Dir As String In IO.Directory.GetDirectories(currentdir)
Dim dirinf As New IO.DirectoryInfo(Dir)
AddLine("[DIR] | " & dirinf.Name)
Next
For Each file As String In IO.Directory.GetFiles(currentdir)
Dim filinf As New IO.FileInfo(file)
AddLine(filinf.Extension & " | " & filinf.Name)
Next
Else
IO.Directory.CreateDirectory(currentdir + "\" + foldertomake)
AddLine("mkdir: Directory created successfully.")
wrongcommand()
End If
ElseIf command Like "mkdir *" Then
If boughtdirectorysurfing = True Then
Dim foldertomake As String = command.Replace("mkdir ", "")
If IO.Directory.Exists(currentdir + "\" + foldertomake) Then
AddLine("Directory already exists!")
Else
IO.Directory.CreateDirectory(currentdir + "\" + foldertomake)
AddLine("mkdir: Directory created successfully.")
End If
Else
wrongcommand()
End If
ElseIf command Like "give me * codepoints" Then
Dim args() As String = command.Split(" ")
Dim cp As String = args(2)
AddCP(cp)
AddLine("Added " & cp & " to your existing ammount of Codepoints.")
ElseIf command Like "set * *" Then
Dim args() As String = command.Split(" ")
Select Case args(1)
Case "username"
If boughtcustomusername Then
username = args(2)
Else
wrongcommand()
End If
Case "textcolor"
If boughtterminalsettextcolor Then
Select Case args(2)
Case "black"
AddLine("Error! Black and black don't go too well...")
Case "white"
txtterm.ForeColor = Color.White
Case "gray"
If boughtgray Then
txtterm.ForeColor = Color.Gray
Else
AddLine("Error! Unsupported color.")
End If
Case "red"
If boughtred Then
txtterm.ForeColor = Color.Red
Else
AddLine("Error! Unsupported color.")
End If
Case "green"
If boughtgreen Then
txtterm.ForeColor = Color.Green
Else
AddLine("Error! Unsupported color.")
End If
Case "blue"
If boughtblue Then
txtterm.ForeColor = Color.Blue
Else
AddLine("Error! Unsupported color.")
End If
Case "yellow"
If boughtyellow Then
txtterm.ForeColor = Color.Yellow
Else
AddLine("Error! Unsupported color.")
End If
Case "orange"
If boughtorange Then
txtterm.ForeColor = Color.Orange
Else
AddLine("Error! Unsupported color.")
End If
Case "pink"
If boughtpink Then
txtterm.ForeColor = Color.Pink
Else
AddLine("Error! Unsupported color.")
End If
Case "purple"
If boughtpurple Then
txtterm.ForeColor = Color.Purple
Else
AddLine("Error! Unsupported color.")
End If
Case "brown"
If boughtbrown Then
txtterm.ForeColor = Color.Brown
Else
AddLine("Error! Unsupported color.")
End If
Case Else
AddLine("Error! Unsupported color, check 'colors' for a list of supported colors.")
End Select
End If
Case Else
AddLine("set: No valid setting node in configuration file for """ & args(1) & """.")
End Select
ElseIf command Like "open *" Then
Dim progtoopen As String = command.Replace("open ", "")
Select Case progtoopen
Case "shiftorium", "packages", "pacman", "code shop"
shiftorium_cmd.Show()
Case Else
AddLine("open: Invalid program """ & progtoopen & """.")
End Select
ElseIf command Like "shutdown" Then
savegame()
Me.Close()
ElseIf command = "colors" Then
ShowTerminalColors()
ElseIf command Like "" Then
'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything.
'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything.
Else
AddLine("Invalid command! Type ""help"" for a list of commands.")
wrongcommand()
End If
End Sub
Public Sub wrongcommand()
AddLine("Invalid command! Type ""help"" for a list of commands.")
End Sub
Public Sub showterminalcolors()
AddLine(" ==== SUPPORTED TERMINAL COLORS ==== " & vbNewLine)
AddLine("Below is a list of values that you can specify in <colorname> arguments. Note that only certain colors are supported; and if the video driver can output a color but it isn't on this list, it is not supported by the Terminal display engine." & vbNewLine)
If boughtgray Then AddLine("gray")
AddLine("white")
AddLine("black")
If boughtred Then AddLine("red")
If boughtgreen Then AddLine("green")
If boughtblue Then AddLine("blue")
If boughtyellow Then AddLine("yellow")
If boughtorange Then AddLine("orange")
If boughtpink Then AddLine("pink")
If boughtpurple Then AddLine("purple")
If boughtbrown Then AddLine("brown")
End Sub
Public Sub ShowHelp()
AddLine("ShiftOS Help" & vbNewLine)
AddLine("Usage tips: " & vbNewLine)
AddLine(" - The terminal runs in full-screen.")
AddLine(" - There are no window managers or desktop environments.")
AddLine(" - Applications are fully text-based.")
AddLine(" - Terminal commands are case-insensitive.")
AddLine(" - The screen can only display Black and White." & vbNewLine)
If boughtbasicgui = True Then
AddLine(" - Applications can use the GUI server to display a proper GUI.")
Else
AddLine(" - Applications are fully text-based.")
End If
AddLine(" - Terminal commands are case-insensitive." & vbNewLine)
AddLine("Commands: " & vbNewLine)
AddLine(" - cd: Change to the specified directory.")
AddLine(" - mkdir: Create a directory inside the current directory (marked before the %)")
AddLine(" - ls, dir: View the contents of the current directory.")
If boughtdirectorysurfing Then
AddLine(" - cd: Change to the specified directory.")
AddLine(" - mkdir: Create a directory inside the current directory (marked before the %)")
AddLine(" - ls, dir: View the contents of the current directory.")
End If
If boughtbasicsettings Then
AddLine(" - set <setting> <value>: Change some minimal settings in ShiftOS.")
If boughtcustomusername Then
AddLine(" Settings: ")
AddLine(" username <string>: Set the username of the OS.")
End If
If boughtterminalsettextcolor = True Then
AddLine(" textcolor <colorname>: Set the terminal text color.")
End If
End If
AddLine(" - shutdown: Shuts the system down.")
AddLine(" - help: Shows this screen.")
AddLine(" - colors: Shows the colors supported by both the Terminal display engine, and the video driver.")
AddLine(" - help: Shows this screen." & vbNewLine)
AddLine("Installed Programs:" & vbNewLine)
AddLine("Below is a list of all the programs on your computer, followed by what they do. You can open one by typing ""open <name>""." & vbNewLine)
AddLine(" - shiftorium: Upgrade the OS with Codepoints using this application.")
End Sub
Public Sub AddLine(text As String)
@ -90,77 +237,79 @@
Dim firstuseconversation As Integer = 0
Private Sub tmrfirstuse_Tick(sender As Object, e As EventArgs) Handles tmrfirstuse.Tick
Select Case firstuseconversation
Case 0
txtterm.ReadOnly = True
AddLine("IP Address 170.245.12.80 is connecting as ""DevX"".")
Case 1
AddLine("DevX: It seems my updates have completly installed.")
Case 2
AddLine("DevX: Unfortunately, due to your hard drive being formatted, you have lost all your data.")
Case 3
AddLine("DevX: However, Don't worry! I've added some pretty cool features to the Terminal to make up for this.")
Case 4
AddLine("DevX: I can't tell you much, except for ""Type Help for a list of commands"".")
Case 5
AddLine("DevX: I've got to go, but I'll contact you as I develop more updates; and you test the OS.")
Case 6
AddLine("User ""DevX"" has disconnected.")
Case 7
txtterm.ResetText()
AddLine("user@shiftos ~$> ")
txtterm.ReadOnly = False
tmrfirstuse.Stop()
End Select
firstuseconversation += 1
Select Case firstuseconversation
Case 0
txtterm.ReadOnly = True
AddLine("IP Address 170.245.12.80 is connecting as ""DevX"".")
Case 1
AddLine("DevX: It seems my updates have completly installed.")
Case 2
AddLine("DevX: Unfortunately, due to your hard drive being formatted, you have lost all your data.")
Case 3
AddLine("DevX: However, Don't worry! I've added some pretty cool features to the Terminal to make up for this.")
Case 4
AddLine("DevX: I can't tell you much, except for ""Type Help for a list of commands"".")
Case 5
AddLine("DevX: I've got to go, but I'll contact you as I develop more updates; and you test the OS.")
Case 6
AddLine("User ""DevX"" has disconnected.")
Case 7
txtterm.ResetText()
AddLine("user@shiftos ~$> ")
txtterm.ReadOnly = False
tmrfirstuse.Stop()
End Select
firstuseconversation += 1
End Sub
Private Sub txtterm_KeyDown(sender As Object, e As KeyEventArgs) Handles txtterm.KeyDown
Select Case e.KeyCode
Case Keys.ShiftKey
trackpos = trackpos - 1
Case Keys.Alt
trackpos = trackpos - 1
Case Keys.CapsLock
trackpos = trackpos - 1
Case Keys.ControlKey
trackpos = trackpos - 1
Case Keys.LWin
trackpos = trackpos - 1
Case Keys.RWin
trackpos = trackpos - 1
Case Keys.Right
If txtterm.SelectionStart = txtterm.TextLength Then
If prompttoupdatesave = False Then
Select Case e.KeyCode
Case Keys.ShiftKey
trackpos = trackpos - 1
End If
Case Keys.Left
If trackpos < 1 Then
Case Keys.Alt
trackpos = trackpos - 1
Case Keys.CapsLock
trackpos = trackpos - 1
Case Keys.ControlKey
trackpos = trackpos - 1
Case Keys.LWin
trackpos = trackpos - 1
Case Keys.RWin
trackpos = trackpos - 1
Case Keys.Right
If txtterm.SelectionStart = txtterm.TextLength Then
trackpos = trackpos - 1
End If
Case Keys.Left
If trackpos < 1 Then
e.SuppressKeyPress = True
trackpos = trackpos - 1
Else
trackpos = trackpos - 2
End If
Case Keys.Up
e.SuppressKeyPress = True
trackpos = trackpos - 1
Case Keys.Down
e.SuppressKeyPress = True
trackpos = trackpos - 1
End Select
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ", "").ToLower
Interpret(command)
If command = "clear" Then
txtterm.Text = username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> "
txtterm.Select(txtterm.Text.Length, 0)
Else
trackpos = trackpos - 2
AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
txtterm.Select(txtterm.Text.Length, 0)
End If
Case Keys.Up
e.SuppressKeyPress = True
trackpos = trackpos - 1
Case Keys.Down
e.SuppressKeyPress = True
trackpos = trackpos - 1
End Select
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ", "").ToLower
Interpret(command)
If command = "clear" Then
txtterm.Text = "user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> "
txtterm.Select(txtterm.Text.Length, 0)
Else
AddLine("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
txtterm.Select(txtterm.Text.Length, 0)
End If
trackpos = 0
Else
@ -170,18 +319,26 @@
End If
End If
If e.KeyCode = Keys.Back Then
If trackpos < 1 Then
e.SuppressKeyPress = True
Else
If txtterm.SelectedText.Length < 1 Then
trackpos = trackpos - 1
Else
If e.KeyCode = Keys.Back Then
If trackpos < 1 Then
e.SuppressKeyPress = True
Else
If txtterm.SelectedText.Length < 1 Then
trackpos = trackpos - 1
Else
e.SuppressKeyPress = True
End If
End If
End If
End If
SelectBottom()
SelectBottom()
Else
e.SuppressKeyPress = True
savegame()
loadgame()
AddLine("Self-repair complete with no errors.")
prompttoupdatesave = False
AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
End If
End Sub
End Class

View file

@ -2,7 +2,21 @@
'Core for Save Engine
Public username As String = "user"
Public osname As String = "shiftos"
'
' NEWER UPGRADES: These are partly from UltraDOS, partially from Orion, and a few others created just for this project.
'
Public boughtdirectorysurfing As Boolean = False
Public boughtbasicsettings As Boolean = False
Public boughtbasicgui As Boolean = False
Public boughtterminalsettextcolor As Boolean = False
'
' OLD SHIFTOS UPGRADES: These upgrades may be useful, so I've added them.
'
'Shiftorium Upgrades
Public boughttitlebar As Boolean = False
@ -273,6 +287,13 @@
If boughtpink2 = True Then savelines(81) = 11 Else savelines(81) = 10
If boughtpink3 = True Then savelines(82) = 11 Else savelines(82) = 10
If boughtpink4 = True Then savelines(83) = 11 Else savelines(83) = 10
If boughtdirectorysurfing = True Then savelines(84) = 11 Else savelines(84) = 10
savelines(85) = osname
If boughtbasicsettings = True Then savelines(86) = 11 Else savelines(86) = 10
If boughtbasicgui = True Then savelines(87) = 11 Else savelines(87) = 10
If boughtterminalsettextcolor = True Then savelines(88) = 11 Else savelines(88) = 10
'Large gap in file. Add new features here.
@ -382,193 +403,208 @@
Private Sub loadgame()
Dim loadlines() As String = IO.File.ReadAllLines(save)
If loadlines(0) = 11 Then boughttitlebar = True Else boughttitlebar = False
If loadlines(1) = 11 Then boughtgray = True Else boughtgray = False
If loadlines(2) = 11 Then boughtsecondspastmidnight = True Else boughtsecondspastmidnight = False
If loadlines(3) = 11 Then boughtminutespastmidnight = True Else boughtminutespastmidnight = False
If loadlines(4) = 11 Then boughthourspastmidnight = True Else boughthourspastmidnight = False
If loadlines(5) = 11 Then boughtcustomusername = True Else boughtcustomusername = False
If loadlines(6) = 11 Then boughtwindowsanywhere = True Else boughtwindowsanywhere = False
If loadlines(7) = 11 Then boughtmultitasking = True Else boughtmultitasking = False
If loadlines(8) = 11 Then boughtautoscrollterminal = True Else boughtautoscrollterminal = False
codepoints = loadlines(9)
If loadlines(10) = 11 Then boughtmovablewindows = True Else boughtmovablewindows = False
If loadlines(11) = 11 Then boughtdraggablewindows = True Else boughtdraggablewindows = False
If loadlines(12) = 11 Then boughtwindowborders = True Else boughtwindowborders = False
If loadlines(13) = 11 Then boughtpmandam = True Else boughtpmandam = False
If loadlines(14) = 11 Then boughtminuteaccuracytime = True Else boughtminuteaccuracytime = False
If loadlines(15) = 11 Then boughtsplitsecondtime = True Else boughtsplitsecondtime = False
If loadlines(16) = 11 Then boughttitletext = True Else boughttitletext = False
If loadlines(17) = 11 Then boughtclosebutton = True Else boughtclosebutton = False
If loadlines(18) = 11 Then boughtdesktoppanel = True Else boughtdesktoppanel = False
If loadlines(19) = 11 Then boughtclock = True Else boughtclock = False
If loadlines(20) = 11 Then boughtwindowedterminal = True Else boughtwindowedterminal = False
If loadlines(21) = 11 Then boughtapplaunchermenu = True Else boughtapplaunchermenu = False
If loadlines(22) = 11 Then boughtalknowledgeinput = True Else boughtalknowledgeinput = False
If loadlines(23) = 11 Then boughtalclock = True Else boughtalclock = False
If loadlines(24) = 11 Then boughtalshiftorium = True Else boughtalshiftorium = False
If loadlines(25) = 11 Then boughtapplaunchershutdown = True Else boughtapplaunchershutdown = False
If loadlines(26) = 11 Then boughtdesktoppanelclock = True Else boughtdesktoppanelclock = False
If loadlines(27) = 11 Then boughtterminalscrollbar = True Else boughtterminalscrollbar = False
If loadlines(28) = 11 Then boughtkiaddons = True Else boughtkiaddons = False
If loadlines(29) = 11 Then boughtkicarbrands = True Else boughtkicarbrands = False
If loadlines(30) = 11 Then boughtkigameconsoles = True Else boughtkigameconsoles = False
username = loadlines(31)
If loadlines(33) = 11 Then boughtshifter = True Else boughtshifter = False
If loadlines(34) = 11 Then boughtalshifter = True Else boughtalshifter = False
If loadlines(35) = 11 Then boughtrollupcommand = True Else boughtrollupcommand = False
If loadlines(36) = 11 Then boughtrollupbutton = True Else boughtrollupbutton = False
If loadlines(37) = 11 Then boughtshiftdesktop = True Else boughtshiftdesktop = False
If loadlines(38) = 11 Then boughtshiftpanelclock = True Else boughtshiftpanelclock = False
If loadlines(39) = 11 Then boughtshiftapplauncher = True Else boughtshiftapplauncher = False
If loadlines(40) = 11 Then boughtshiftdesktoppanel = True Else boughtshiftdesktoppanel = False
If loadlines(41) = 11 Then boughtshifttitlebar = True Else boughtshifttitlebar = False
If loadlines(42) = 11 Then boughtshifttitletext = True Else boughtshifttitletext = False
If loadlines(43) = 11 Then boughtshifttitlebuttons = True Else boughtshifttitlebuttons = False
If loadlines(44) = 11 Then boughtshiftborders = True Else boughtshiftborders = False
If loadlines(45) = 11 Then boughtgray2 = True Else boughtgray2 = False
If loadlines(46) = 11 Then boughtgray3 = True Else boughtgray3 = False
If loadlines(47) = 11 Then boughtgray4 = True Else boughtgray4 = False
If loadlines(48) = 11 Then boughtanycolour = True Else boughtanycolour = False
If loadlines(49) = 11 Then boughtanycolour2 = True Else boughtanycolour2 = False
If loadlines(50) = 11 Then boughtanycolour3 = True Else boughtanycolour3 = False
If loadlines(51) = 11 Then boughtanycolour4 = True Else boughtanycolour4 = False
If loadlines(52) = 11 Then boughtpurple = True Else boughtpurple = False
If loadlines(53) = 11 Then boughtpurple2 = True Else boughtpurple2 = False
If loadlines(54) = 11 Then boughtpurple3 = True Else boughtpurple3 = False
If loadlines(55) = 11 Then boughtpurple4 = True Else boughtpurple4 = False
If loadlines(56) = 11 Then boughtblue = True Else boughtblue = False
If loadlines(57) = 11 Then boughtblue2 = True Else boughtblue2 = False
If loadlines(58) = 11 Then boughtblue3 = True Else boughtblue3 = False
If loadlines(59) = 11 Then boughtblue4 = True Else boughtblue4 = False
If loadlines(60) = 11 Then boughtgreen = True Else boughtgreen = False
If loadlines(61) = 11 Then boughtgreen2 = True Else boughtgreen2 = False
If loadlines(62) = 11 Then boughtgreen3 = True Else boughtgreen3 = False
If loadlines(63) = 11 Then boughtgreen4 = True Else boughtgreen4 = False
If loadlines(64) = 11 Then boughtyellow = True Else boughtyellow = False
If loadlines(65) = 11 Then boughtyellow2 = True Else boughtyellow2 = False
If loadlines(66) = 11 Then boughtyellow3 = True Else boughtyellow3 = False
If loadlines(67) = 11 Then boughtyellow4 = True Else boughtyellow4 = False
If loadlines(68) = 11 Then boughtorange = True Else boughtorange = False
If loadlines(69) = 11 Then boughtorange2 = True Else boughtorange2 = False
If loadlines(70) = 11 Then boughtorange3 = True Else boughtorange3 = False
If loadlines(71) = 11 Then boughtorange4 = True Else boughtorange4 = False
If loadlines(72) = 11 Then boughtbrown = True Else boughtbrown = False
If loadlines(73) = 11 Then boughtbrown2 = True Else boughtbrown2 = False
If loadlines(74) = 11 Then boughtbrown3 = True Else boughtbrown3 = False
If loadlines(75) = 11 Then boughtbrown4 = True Else boughtbrown4 = False
If loadlines(76) = 11 Then boughtred = True Else boughtred = False
If loadlines(77) = 11 Then boughtred2 = True Else boughtred2 = False
If loadlines(78) = 11 Then boughtred3 = True Else boughtred3 = False
If loadlines(79) = 11 Then boughtred4 = True Else boughtred4 = False
If loadlines(80) = 11 Then boughtpink = True Else boughtpink = False
If loadlines(81) = 11 Then boughtpink2 = True Else boughtpink2 = False
If loadlines(82) = 11 Then boughtpink3 = True Else boughtpink3 = False
If loadlines(83) = 11 Then boughtpink4 = True Else boughtpink4 = False
Public Sub loadgame()
Try
Dim loadlines() As String = IO.File.ReadAllLines(save)
If loadlines(0) = 11 Then boughttitlebar = True Else boughttitlebar = False
If loadlines(1) = 11 Then boughtgray = True Else boughtgray = False
If loadlines(2) = 11 Then boughtsecondspastmidnight = True Else boughtsecondspastmidnight = False
If loadlines(3) = 11 Then boughtminutespastmidnight = True Else boughtminutespastmidnight = False
If loadlines(4) = 11 Then boughthourspastmidnight = True Else boughthourspastmidnight = False
If loadlines(5) = 11 Then boughtcustomusername = True Else boughtcustomusername = False
If loadlines(6) = 11 Then boughtwindowsanywhere = True Else boughtwindowsanywhere = False
If loadlines(7) = 11 Then boughtmultitasking = True Else boughtmultitasking = False
If loadlines(8) = 11 Then boughtautoscrollterminal = True Else boughtautoscrollterminal = False
codepoints = loadlines(9)
If loadlines(10) = 11 Then boughtmovablewindows = True Else boughtmovablewindows = False
If loadlines(11) = 11 Then boughtdraggablewindows = True Else boughtdraggablewindows = False
If loadlines(12) = 11 Then boughtwindowborders = True Else boughtwindowborders = False
If loadlines(13) = 11 Then boughtpmandam = True Else boughtpmandam = False
If loadlines(14) = 11 Then boughtminuteaccuracytime = True Else boughtminuteaccuracytime = False
If loadlines(15) = 11 Then boughtsplitsecondtime = True Else boughtsplitsecondtime = False
If loadlines(16) = 11 Then boughttitletext = True Else boughttitletext = False
If loadlines(17) = 11 Then boughtclosebutton = True Else boughtclosebutton = False
If loadlines(18) = 11 Then boughtdesktoppanel = True Else boughtdesktoppanel = False
If loadlines(19) = 11 Then boughtclock = True Else boughtclock = False
If loadlines(20) = 11 Then boughtwindowedterminal = True Else boughtwindowedterminal = False
If loadlines(21) = 11 Then boughtapplaunchermenu = True Else boughtapplaunchermenu = False
If loadlines(22) = 11 Then boughtalknowledgeinput = True Else boughtalknowledgeinput = False
If loadlines(23) = 11 Then boughtalclock = True Else boughtalclock = False
If loadlines(24) = 11 Then boughtalshiftorium = True Else boughtalshiftorium = False
If loadlines(25) = 11 Then boughtapplaunchershutdown = True Else boughtapplaunchershutdown = False
If loadlines(26) = 11 Then boughtdesktoppanelclock = True Else boughtdesktoppanelclock = False
If loadlines(27) = 11 Then boughtterminalscrollbar = True Else boughtterminalscrollbar = False
If loadlines(28) = 11 Then boughtkiaddons = True Else boughtkiaddons = False
If loadlines(29) = 11 Then boughtkicarbrands = True Else boughtkicarbrands = False
If loadlines(30) = 11 Then boughtkigameconsoles = True Else boughtkigameconsoles = False
username = loadlines(31)
If loadlines(33) = 11 Then boughtshifter = True Else boughtshifter = False
If loadlines(34) = 11 Then boughtalshifter = True Else boughtalshifter = False
If loadlines(35) = 11 Then boughtrollupcommand = True Else boughtrollupcommand = False
If loadlines(36) = 11 Then boughtrollupbutton = True Else boughtrollupbutton = False
If loadlines(37) = 11 Then boughtshiftdesktop = True Else boughtshiftdesktop = False
If loadlines(38) = 11 Then boughtshiftpanelclock = True Else boughtshiftpanelclock = False
If loadlines(39) = 11 Then boughtshiftapplauncher = True Else boughtshiftapplauncher = False
If loadlines(40) = 11 Then boughtshiftdesktoppanel = True Else boughtshiftdesktoppanel = False
If loadlines(41) = 11 Then boughtshifttitlebar = True Else boughtshifttitlebar = False
If loadlines(42) = 11 Then boughtshifttitletext = True Else boughtshifttitletext = False
If loadlines(43) = 11 Then boughtshifttitlebuttons = True Else boughtshifttitlebuttons = False
If loadlines(44) = 11 Then boughtshiftborders = True Else boughtshiftborders = False
If loadlines(45) = 11 Then boughtgray2 = True Else boughtgray2 = False
If loadlines(46) = 11 Then boughtgray3 = True Else boughtgray3 = False
If loadlines(47) = 11 Then boughtgray4 = True Else boughtgray4 = False
If loadlines(48) = 11 Then boughtanycolour = True Else boughtanycolour = False
If loadlines(49) = 11 Then boughtanycolour2 = True Else boughtanycolour2 = False
If loadlines(50) = 11 Then boughtanycolour3 = True Else boughtanycolour3 = False
If loadlines(51) = 11 Then boughtanycolour4 = True Else boughtanycolour4 = False
If loadlines(52) = 11 Then boughtpurple = True Else boughtpurple = False
If loadlines(53) = 11 Then boughtpurple2 = True Else boughtpurple2 = False
If loadlines(54) = 11 Then boughtpurple3 = True Else boughtpurple3 = False
If loadlines(55) = 11 Then boughtpurple4 = True Else boughtpurple4 = False
If loadlines(56) = 11 Then boughtblue = True Else boughtblue = False
If loadlines(57) = 11 Then boughtblue2 = True Else boughtblue2 = False
If loadlines(58) = 11 Then boughtblue3 = True Else boughtblue3 = False
If loadlines(59) = 11 Then boughtblue4 = True Else boughtblue4 = False
If loadlines(60) = 11 Then boughtgreen = True Else boughtgreen = False
If loadlines(61) = 11 Then boughtgreen2 = True Else boughtgreen2 = False
If loadlines(62) = 11 Then boughtgreen3 = True Else boughtgreen3 = False
If loadlines(63) = 11 Then boughtgreen4 = True Else boughtgreen4 = False
If loadlines(64) = 11 Then boughtyellow = True Else boughtyellow = False
If loadlines(65) = 11 Then boughtyellow2 = True Else boughtyellow2 = False
If loadlines(66) = 11 Then boughtyellow3 = True Else boughtyellow3 = False
If loadlines(67) = 11 Then boughtyellow4 = True Else boughtyellow4 = False
If loadlines(68) = 11 Then boughtorange = True Else boughtorange = False
If loadlines(69) = 11 Then boughtorange2 = True Else boughtorange2 = False
If loadlines(70) = 11 Then boughtorange3 = True Else boughtorange3 = False
If loadlines(71) = 11 Then boughtorange4 = True Else boughtorange4 = False
If loadlines(72) = 11 Then boughtbrown = True Else boughtbrown = False
If loadlines(73) = 11 Then boughtbrown2 = True Else boughtbrown2 = False
If loadlines(74) = 11 Then boughtbrown3 = True Else boughtbrown3 = False
If loadlines(75) = 11 Then boughtbrown4 = True Else boughtbrown4 = False
If loadlines(76) = 11 Then boughtred = True Else boughtred = False
If loadlines(77) = 11 Then boughtred2 = True Else boughtred2 = False
If loadlines(78) = 11 Then boughtred3 = True Else boughtred3 = False
If loadlines(79) = 11 Then boughtred4 = True Else boughtred4 = False
If loadlines(80) = 11 Then boughtpink = True Else boughtpink = False
If loadlines(81) = 11 Then boughtpink2 = True Else boughtpink2 = False
If loadlines(82) = 11 Then boughtpink3 = True Else boughtpink3 = False
If loadlines(83) = 11 Then boughtpink4 = True Else boughtpink4 = False
If loadlines(84) = 11 Then boughtdirectorysurfing = True Else boughtdirectorysurfing = False
osname = loadlines(85)
If loadlines(86) = 11 Then boughtbasicsettings = True Else boughtbasicsettings = False
If loadlines(87) = 11 Then boughtbasicgui = True Else boughtbasicgui = False
If loadlines(88) = 11 Then boughtterminalsettextcolor = True Else boughtterminalsettextcolor = False
'Add appropriate features here.
If loadlines(285) = 11 Then boughtpong = True Else boughtpong = False
If loadlines(286) = 11 Then boughtknowledgeinputicon = True Else boughtknowledgeinputicon = False
If loadlines(287) = 11 Then boughtshiftericon = True Else boughtshiftericon = False
If loadlines(288) = 11 Then boughtshiftoriumicon = True Else boughtshiftoriumicon = False
If loadlines(289) = 11 Then boughtclockicon = True Else boughtclockicon = False
If loadlines(290) = 11 Then boughtshutdownicon = True Else boughtshutdownicon = False
If loadlines(291) = 11 Then boughtpongicon = True Else boughtpongicon = False
If loadlines(292) = 11 Then boughtterminalicon = True Else boughtterminalicon = False
If loadlines(293) = 11 Then boughtalpong = True Else boughtalpong = False
If loadlines(294) = 11 Then boughtfileskimmer = True Else boughtfileskimmer = False
If loadlines(295) = 11 Then boughtalfileskimmer = True Else boughtalfileskimmer = False
If loadlines(296) = 11 Then boughttextpad = True Else boughttextpad = False
If loadlines(297) = 11 Then boughtaltextpad = True Else boughtaltextpad = False
If loadlines(298) = 11 Then boughtfileskimmericon = True Else boughtfileskimmericon = False
If loadlines(299) = 11 Then boughttextpadicon = True Else boughttextpadicon = False
If loadlines(300) = 11 Then boughttextpadnew = True Else boughttextpadnew = False
If loadlines(301) = 11 Then boughttextpadsave = True Else boughttextpadsave = False
If loadlines(302) = 11 Then boughttextpadopen = True Else boughttextpadopen = False
If loadlines(303) = 11 Then boughtfileskimmernewfolder = True Else boughtfileskimmernewfolder = False
If loadlines(304) = 11 Then boughtfileskimmerdelete = True Else boughtfileskimmerdelete = False
If loadlines(305) = 11 Then boughtkielements = True Else boughtkielements = False
If loadlines(306) = 11 Then boughtcolourpickericon = True Else boughtcolourpickericon = False
If loadlines(307) = 11 Then boughtinfoboxicon = True Else boughtinfoboxicon = False
'Add appropriate features here
If loadlines(314) = 11 Then boughtskinloader = True Else boughtskinloader = False
If loadlines(315) = 11 Then boughtminimizebutton = True Else boughtminimizebutton = False
If loadlines(316) = 11 Then boughtpanelbuttons = True Else boughtpanelbuttons = False
If loadlines(317) = 11 Then boughtshiftpanelbuttons = True Else boughtshiftpanelbuttons = False
If loadlines(318) = 11 Then boughtartpad = True Else boughtartpad = False
If loadlines(319) = 11 Then boughtalartpad = True Else boughtalartpad = False
If loadlines(320) = 11 Then boughtartpadicon = True Else boughtartpadicon = False
If loadlines(321) = 11 Then boughtskinning = True Else boughtskinning = False
If loadlines(322) = 11 Then boughtminimizecommand = True Else boughtminimizecommand = False
If loadlines(323) = 11 Then boughtusefulpanelbuttons = True Else boughtusefulpanelbuttons = False
If loadlines(324) = 11 Then boughtunitymode = True Else boughtunitymode = False
If loadlines(325) = 11 Then boughtartpadpixellimit4 = True Else boughtartpadpixellimit4 = False
If loadlines(326) = 11 Then boughtartpadpixellimit8 = True Else boughtartpadpixellimit8 = False
If loadlines(327) = 11 Then boughtartpadpixellimit16 = True Else boughtartpadpixellimit16 = False
If loadlines(328) = 11 Then boughtartpadpixellimit64 = True Else boughtartpadpixellimit64 = False
If loadlines(329) = 11 Then boughtartpadpixellimit256 = True Else boughtartpadpixellimit256 = False
If loadlines(330) = 11 Then boughtartpadpixellimit1024 = True Else boughtartpadpixellimit1024 = False
If loadlines(331) = 11 Then boughtartpadpixellimit4096 = True Else boughtartpadpixellimit4096 = False
If loadlines(332) = 11 Then boughtartpadpixellimit16384 = True Else boughtartpadpixellimit16384 = False
If loadlines(333) = 11 Then boughtartpadpixellimit65536 = True Else boughtartpadpixellimit65536 = False
If loadlines(334) = 11 Then boughtartpadlimitlesspixels = True Else boughtartpadlimitlesspixels = False
If loadlines(335) = 11 Then boughtartpad4colorpallets = True Else boughtartpad4colorpallets = False
If loadlines(336) = 11 Then boughtartpad8colorpallets = True Else boughtartpad8colorpallets = False
If loadlines(337) = 11 Then boughtartpad16colorpallets = True Else boughtartpad16colorpallets = False
If loadlines(338) = 11 Then boughtartpad32colorpallets = True Else boughtartpad32colorpallets = False
If loadlines(339) = 11 Then boughtartpad64colorpallets = True Else boughtartpad64colorpallets = False
If loadlines(340) = 11 Then boughtartpad128colorpallets = True Else boughtartpad128colorpallets = False
If loadlines(341) = 11 Then boughtartpadcustompallets = True Else boughtartpadcustompallets = False
If loadlines(342) = 11 Then boughtartpadpixelplacer = True Else boughtartpadpixelplacer = False
If loadlines(343) = 11 Then boughtartpadpixelplacermovementmode = True Else boughtartpadpixelplacermovementmode = False
If loadlines(344) = 11 Then boughtartpadpencil = True Else boughtartpadpencil = False
If loadlines(345) = 11 Then boughtartpadpaintbrush = True Else boughtartpadpaintbrush = False
If loadlines(346) = 11 Then boughtartpadlinetool = True Else boughtartpadlinetool = False
If loadlines(347) = 11 Then boughtartpadovaltool = True Else boughtartpadovaltool = False
If loadlines(348) = 11 Then boughtartpadrectangletool = True Else boughtartpadrectangletool = False
If loadlines(349) = 11 Then boughtartpaderaser = True Else boughtartpaderaser = False
If loadlines(350) = 11 Then boughtartpadfilltool = True Else boughtartpadfilltool = False
If loadlines(351) = 11 Then boughtartpadtexttool = True Else boughtartpadtexttool = False
If loadlines(352) = 11 Then boughtartpadundo = True Else boughtartpadundo = False
If loadlines(353) = 11 Then boughtartpadredo = True Else boughtartpadredo = False
If loadlines(354) = 11 Then boughtartpadsave = True Else boughtartpadsave = False
If loadlines(355) = 11 Then boughtartpadload = True Else boughtartpadload = False
If loadlines(484) = "" Then Else If loadlines(484) = 11 Then boughtartpadnew = True Else boughtartpadnew = False
'Not yet implemented! ingameversion = loadlines(485)
If loadlines(486) = 11 Then boughtresizablewindows = True Else boughtresizablewindows = False
If loadlines(487) = 11 Then boughtcalculator = True Else boughtcalculator = False
If loadlines(488) = 11 Then boughtaudioplayer = True Else boughtaudioplayer = False
If loadlines(489) = 11 Then boughtchangeosnamecommand = True Else boughtchangeosnamecommand = False
If loadlines(490) = 11 Then boughtwebbrowser = True Else boughtwebbrowser = False
If loadlines(491) = 11 Then boughtvideoplayer = True Else boughtvideoplayer = False
If loadlines(492) = 11 Then boughtnamechanger = True Else boughtnamechanger = False
If loadlines(493) = 11 Then boughticonmanager = True Else boughticonmanager = False
If loadlines(494) = 11 Then boughtbitnotewallet = True Else boughtbitnotewallet = False
If loadlines(495) = 11 Then boughtbitnotedigger = True Else boughtbitnotedigger = False
If loadlines(496) = 11 Then boughtskinshifter = True Else boughtskinshifter = False
If loadlines(497) = 11 Then boughtshiftnet = True Else boughtshiftnet = False
If loadlines(498) = 11 Then boughtshiftneticon = True Else boughtshiftneticon = False
If loadlines(499) = 11 Then boughtalshiftnet = True Else boughtalshiftnet = False
If loadlines(500) = 11 Then boughtdodge = True Else boughtdodge = False
If loadlines(501) = 11 Then boughtdownloadmanager = True Else boughtdownloadmanager = False
If loadlines(502) = 11 Then boughtinstaller = True Else boughtinstaller = False
If loadlines(503) = 11 Then boughtsysinfoicon = True Else boughtsysinfoicon = False
If loadlines(504) = 11 Then boughtorcwrite = True Else boughtorcwrite = False
If loadlines(505) = 11 Then boughtfloodgate = True Else boughtfloodgate = False
If loadlines(506) = 11 Then boughtmaze = True Else boughtmaze = False
If loadlines(507) = 11 Then boughtunitymodetoggle = True Else boughtunitymodetoggle = False
If loadlines(508) = 11 Then boughtunitytoggleicon = True Else boughtunitytoggleicon = False
bitnotediggergrade = loadlines(509)
If loadlines(510) = 11 Then boughtvirusscannericon = True Else boughtvirusscannericon = False
virusscannergrade = loadlines(511)
If loadlines(512) = 11 Then boughttextpadtrm = True Else boughttextpadtrm = False
If loadlines(513) = 11 Then boughtshiftapplauncheritems = True Else boughtshiftapplauncheritems = False
'Add appropriate features here.
If loadlines(285) = 11 Then boughtpong = True Else boughtpong = False
If loadlines(286) = 11 Then boughtknowledgeinputicon = True Else boughtknowledgeinputicon = False
If loadlines(287) = 11 Then boughtshiftericon = True Else boughtshiftericon = False
If loadlines(288) = 11 Then boughtshiftoriumicon = True Else boughtshiftoriumicon = False
If loadlines(289) = 11 Then boughtclockicon = True Else boughtclockicon = False
If loadlines(290) = 11 Then boughtshutdownicon = True Else boughtshutdownicon = False
If loadlines(291) = 11 Then boughtpongicon = True Else boughtpongicon = False
If loadlines(292) = 11 Then boughtterminalicon = True Else boughtterminalicon = False
If loadlines(293) = 11 Then boughtalpong = True Else boughtalpong = False
If loadlines(294) = 11 Then boughtfileskimmer = True Else boughtfileskimmer = False
If loadlines(295) = 11 Then boughtalfileskimmer = True Else boughtalfileskimmer = False
If loadlines(296) = 11 Then boughttextpad = True Else boughttextpad = False
If loadlines(297) = 11 Then boughtaltextpad = True Else boughtaltextpad = False
If loadlines(298) = 11 Then boughtfileskimmericon = True Else boughtfileskimmericon = False
If loadlines(299) = 11 Then boughttextpadicon = True Else boughttextpadicon = False
If loadlines(300) = 11 Then boughttextpadnew = True Else boughttextpadnew = False
If loadlines(301) = 11 Then boughttextpadsave = True Else boughttextpadsave = False
If loadlines(302) = 11 Then boughttextpadopen = True Else boughttextpadopen = False
If loadlines(303) = 11 Then boughtfileskimmernewfolder = True Else boughtfileskimmernewfolder = False
If loadlines(304) = 11 Then boughtfileskimmerdelete = True Else boughtfileskimmerdelete = False
If loadlines(305) = 11 Then boughtkielements = True Else boughtkielements = False
If loadlines(306) = 11 Then boughtcolourpickericon = True Else boughtcolourpickericon = False
If loadlines(307) = 11 Then boughtinfoboxicon = True Else boughtinfoboxicon = False
'Add appropriate features here
If loadlines(314) = 11 Then boughtskinloader = True Else boughtskinloader = False
If loadlines(315) = 11 Then boughtminimizebutton = True Else boughtminimizebutton = False
If loadlines(316) = 11 Then boughtpanelbuttons = True Else boughtpanelbuttons = False
If loadlines(317) = 11 Then boughtshiftpanelbuttons = True Else boughtshiftpanelbuttons = False
If loadlines(318) = 11 Then boughtartpad = True Else boughtartpad = False
If loadlines(319) = 11 Then boughtalartpad = True Else boughtalartpad = False
If loadlines(320) = 11 Then boughtartpadicon = True Else boughtartpadicon = False
If loadlines(321) = 11 Then boughtskinning = True Else boughtskinning = False
If loadlines(322) = 11 Then boughtminimizecommand = True Else boughtminimizecommand = False
If loadlines(323) = 11 Then boughtusefulpanelbuttons = True Else boughtusefulpanelbuttons = False
If loadlines(324) = 11 Then boughtunitymode = True Else boughtunitymode = False
If loadlines(325) = 11 Then boughtartpadpixellimit4 = True Else boughtartpadpixellimit4 = False
If loadlines(326) = 11 Then boughtartpadpixellimit8 = True Else boughtartpadpixellimit8 = False
If loadlines(327) = 11 Then boughtartpadpixellimit16 = True Else boughtartpadpixellimit16 = False
If loadlines(328) = 11 Then boughtartpadpixellimit64 = True Else boughtartpadpixellimit64 = False
If loadlines(329) = 11 Then boughtartpadpixellimit256 = True Else boughtartpadpixellimit256 = False
If loadlines(330) = 11 Then boughtartpadpixellimit1024 = True Else boughtartpadpixellimit1024 = False
If loadlines(331) = 11 Then boughtartpadpixellimit4096 = True Else boughtartpadpixellimit4096 = False
If loadlines(332) = 11 Then boughtartpadpixellimit16384 = True Else boughtartpadpixellimit16384 = False
If loadlines(333) = 11 Then boughtartpadpixellimit65536 = True Else boughtartpadpixellimit65536 = False
If loadlines(334) = 11 Then boughtartpadlimitlesspixels = True Else boughtartpadlimitlesspixels = False
If loadlines(335) = 11 Then boughtartpad4colorpallets = True Else boughtartpad4colorpallets = False
If loadlines(336) = 11 Then boughtartpad8colorpallets = True Else boughtartpad8colorpallets = False
If loadlines(337) = 11 Then boughtartpad16colorpallets = True Else boughtartpad16colorpallets = False
If loadlines(338) = 11 Then boughtartpad32colorpallets = True Else boughtartpad32colorpallets = False
If loadlines(339) = 11 Then boughtartpad64colorpallets = True Else boughtartpad64colorpallets = False
If loadlines(340) = 11 Then boughtartpad128colorpallets = True Else boughtartpad128colorpallets = False
If loadlines(341) = 11 Then boughtartpadcustompallets = True Else boughtartpadcustompallets = False
If loadlines(342) = 11 Then boughtartpadpixelplacer = True Else boughtartpadpixelplacer = False
If loadlines(343) = 11 Then boughtartpadpixelplacermovementmode = True Else boughtartpadpixelplacermovementmode = False
If loadlines(344) = 11 Then boughtartpadpencil = True Else boughtartpadpencil = False
If loadlines(345) = 11 Then boughtartpadpaintbrush = True Else boughtartpadpaintbrush = False
If loadlines(346) = 11 Then boughtartpadlinetool = True Else boughtartpadlinetool = False
If loadlines(347) = 11 Then boughtartpadovaltool = True Else boughtartpadovaltool = False
If loadlines(348) = 11 Then boughtartpadrectangletool = True Else boughtartpadrectangletool = False
If loadlines(349) = 11 Then boughtartpaderaser = True Else boughtartpaderaser = False
If loadlines(350) = 11 Then boughtartpadfilltool = True Else boughtartpadfilltool = False
If loadlines(351) = 11 Then boughtartpadtexttool = True Else boughtartpadtexttool = False
If loadlines(352) = 11 Then boughtartpadundo = True Else boughtartpadundo = False
If loadlines(353) = 11 Then boughtartpadredo = True Else boughtartpadredo = False
If loadlines(354) = 11 Then boughtartpadsave = True Else boughtartpadsave = False
If loadlines(355) = 11 Then boughtartpadload = True Else boughtartpadload = False
If loadlines(484) = "" Then Else If loadlines(484) = 11 Then boughtartpadnew = True Else boughtartpadnew = False
'Not yet implemented! ingameversion = loadlines(485)
If loadlines(486) = 11 Then boughtresizablewindows = True Else boughtresizablewindows = False
If loadlines(487) = 11 Then boughtcalculator = True Else boughtcalculator = False
If loadlines(488) = 11 Then boughtaudioplayer = True Else boughtaudioplayer = False
If loadlines(489) = 11 Then boughtchangeosnamecommand = True Else boughtchangeosnamecommand = False
If loadlines(490) = 11 Then boughtwebbrowser = True Else boughtwebbrowser = False
If loadlines(491) = 11 Then boughtvideoplayer = True Else boughtvideoplayer = False
If loadlines(492) = 11 Then boughtnamechanger = True Else boughtnamechanger = False
If loadlines(493) = 11 Then boughticonmanager = True Else boughticonmanager = False
If loadlines(494) = 11 Then boughtbitnotewallet = True Else boughtbitnotewallet = False
If loadlines(495) = 11 Then boughtbitnotedigger = True Else boughtbitnotedigger = False
If loadlines(496) = 11 Then boughtskinshifter = True Else boughtskinshifter = False
If loadlines(497) = 11 Then boughtshiftnet = True Else boughtshiftnet = False
If loadlines(498) = 11 Then boughtshiftneticon = True Else boughtshiftneticon = False
If loadlines(499) = 11 Then boughtalshiftnet = True Else boughtalshiftnet = False
If loadlines(500) = 11 Then boughtdodge = True Else boughtdodge = False
If loadlines(501) = 11 Then boughtdownloadmanager = True Else boughtdownloadmanager = False
If loadlines(502) = 11 Then boughtinstaller = True Else boughtinstaller = False
If loadlines(503) = 11 Then boughtsysinfoicon = True Else boughtsysinfoicon = False
If loadlines(504) = 11 Then boughtorcwrite = True Else boughtorcwrite = False
If loadlines(505) = 11 Then boughtfloodgate = True Else boughtfloodgate = False
If loadlines(506) = 11 Then boughtmaze = True Else boughtmaze = False
If loadlines(507) = 11 Then boughtunitymodetoggle = True Else boughtunitymodetoggle = False
If loadlines(508) = 11 Then boughtunitytoggleicon = True Else boughtunitytoggleicon = False
bitnotediggergrade = loadlines(509)
If loadlines(510) = 11 Then boughtvirusscannericon = True Else boughtvirusscannericon = False
virusscannergrade = loadlines(511)
If loadlines(512) = 11 Then boughttextpadtrm = True Else boughttextpadtrm = False
If loadlines(513) = 11 Then boughtshiftapplauncheritems = True Else boughtshiftapplauncheritems = False
Catch ex As Exception
Terminal.prompttoupdatesave = True
End Try
End Sub

View file

@ -1,6 +1,7 @@
Module shiftorium_api
'API for Shiftorium Applications.
Public listboxtoaddto As ListBox
Public codepoints As Integer
Public Sub DeductCP(ammount As Integer)
@ -12,4 +13,9 @@
codepoints += ammount
savegame()
End Sub
Public Sub AddItem(name As String, CP As Integer)
listboxtoaddto.Items.Add(name & " - " & CP & " CP")
End Sub
End Module

View file

@ -25,12 +25,19 @@ Partial Class shiftorium_cmd
Me.pnltop = New System.Windows.Forms.Panel()
Me.Label1 = New System.Windows.Forms.Label()
Me.pnlbottom = New System.Windows.Forms.Panel()
Me.lbcontrols = New System.Windows.Forms.Label()
Me.lbcodepoints = New System.Windows.Forms.Label()
Me.lbcontrols = New System.Windows.Forms.Label()
Me.pnldetails = New System.Windows.Forms.Panel()
Me.lbitems = New System.Windows.Forms.ListBox()
Me.lbitemname = New System.Windows.Forms.Label()
Me.lbdescription = New System.Windows.Forms.Label()
Me.pnlbuy = New System.Windows.Forms.Panel()
Me.lbprice = New System.Windows.Forms.Label()
Me.btnbuy = New System.Windows.Forms.Button()
Me.pnltop.SuspendLayout()
Me.pnlbottom.SuspendLayout()
Me.pnldetails.SuspendLayout()
Me.pnlbuy.SuspendLayout()
Me.SuspendLayout()
'
'pnltop
@ -62,16 +69,6 @@ Partial Class shiftorium_cmd
Me.pnlbottom.Size = New System.Drawing.Size(1007, 22)
Me.pnlbottom.TabIndex = 1
'
'lbcontrols
'
Me.lbcontrols.Dock = System.Windows.Forms.DockStyle.Left
Me.lbcontrols.Location = New System.Drawing.Point(0, 0)
Me.lbcontrols.Name = "lbcontrols"
Me.lbcontrols.Size = New System.Drawing.Size(815, 22)
Me.lbcontrols.TabIndex = 0
Me.lbcontrols.Text = "Controls: UP/DOWN - Choose item, ENTER - View details, SPACE: Download"
Me.lbcontrols.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'lbcodepoints
'
Me.lbcodepoints.Dock = System.Windows.Forms.DockStyle.Fill
@ -82,8 +79,21 @@ Partial Class shiftorium_cmd
Me.lbcodepoints.Text = "Codepoints: {0}"
Me.lbcodepoints.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'lbcontrols
'
Me.lbcontrols.Dock = System.Windows.Forms.DockStyle.Left
Me.lbcontrols.Location = New System.Drawing.Point(0, 0)
Me.lbcontrols.Name = "lbcontrols"
Me.lbcontrols.Size = New System.Drawing.Size(815, 22)
Me.lbcontrols.TabIndex = 0
Me.lbcontrols.Text = "Controls: UP/DOWN - Choose item, ENTER - View details, SPACE: Download"
Me.lbcontrols.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'pnldetails
'
Me.pnldetails.Controls.Add(Me.pnlbuy)
Me.pnldetails.Controls.Add(Me.lbdescription)
Me.pnldetails.Controls.Add(Me.lbitemname)
Me.pnldetails.Dock = System.Windows.Forms.DockStyle.Top
Me.pnldetails.Location = New System.Drawing.Point(0, 30)
Me.pnldetails.Name = "pnldetails"
@ -103,6 +113,60 @@ Partial Class shiftorium_cmd
Me.lbitems.Size = New System.Drawing.Size(1007, 335)
Me.lbitems.TabIndex = 3
'
'lbitemname
'
Me.lbitemname.Dock = System.Windows.Forms.DockStyle.Top
Me.lbitemname.Location = New System.Drawing.Point(0, 0)
Me.lbitemname.Name = "lbitemname"
Me.lbitemname.Size = New System.Drawing.Size(1007, 28)
Me.lbitemname.TabIndex = 0
Me.lbitemname.Text = "Welcome to the Shiftorium!"
Me.lbitemname.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'lbdescription
'
Me.lbdescription.Dock = System.Windows.Forms.DockStyle.Fill
Me.lbdescription.Location = New System.Drawing.Point(0, 28)
Me.lbdescription.Name = "lbdescription"
Me.lbdescription.Size = New System.Drawing.Size(1007, 177)
Me.lbdescription.TabIndex = 1
Me.lbdescription.Text = "The Shiftorium lets you upgrade different aspects of ShiftOS using Codepoints. Yo" & _
"u can download anything from color support, terminal commands, programs, and eve" & _
"n desktop environments."
Me.lbdescription.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'pnlbuy
'
Me.pnlbuy.Controls.Add(Me.btnbuy)
Me.pnlbuy.Controls.Add(Me.lbprice)
Me.pnlbuy.Dock = System.Windows.Forms.DockStyle.Bottom
Me.pnlbuy.Location = New System.Drawing.Point(0, 176)
Me.pnlbuy.Name = "pnlbuy"
Me.pnlbuy.Size = New System.Drawing.Size(1007, 29)
Me.pnlbuy.TabIndex = 2
'
'lbprice
'
Me.lbprice.Dock = System.Windows.Forms.DockStyle.Left
Me.lbprice.Location = New System.Drawing.Point(0, 0)
Me.lbprice.Name = "lbprice"
Me.lbprice.Size = New System.Drawing.Size(815, 29)
Me.lbprice.TabIndex = 0
Me.lbprice.Text = "This item costs {0} Codepoints."
Me.lbprice.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'btnbuy
'
Me.btnbuy.Dock = System.Windows.Forms.DockStyle.Fill
Me.btnbuy.FlatAppearance.BorderSize = 0
Me.btnbuy.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnbuy.Location = New System.Drawing.Point(815, 0)
Me.btnbuy.Name = "btnbuy"
Me.btnbuy.Size = New System.Drawing.Size(192, 29)
Me.btnbuy.TabIndex = 1
Me.btnbuy.Text = "Press SPACE to buy"
Me.btnbuy.UseVisualStyleBackColor = True
'
'shiftorium_cmd
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 14.0!)
@ -121,6 +185,8 @@ Partial Class shiftorium_cmd
Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
Me.pnltop.ResumeLayout(False)
Me.pnlbottom.ResumeLayout(False)
Me.pnldetails.ResumeLayout(False)
Me.pnlbuy.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
@ -131,4 +197,9 @@ Partial Class shiftorium_cmd
Friend WithEvents lbcontrols As System.Windows.Forms.Label
Friend WithEvents pnldetails As System.Windows.Forms.Panel
Friend WithEvents lbitems As System.Windows.Forms.ListBox
Friend WithEvents pnlbuy As System.Windows.Forms.Panel
Friend WithEvents btnbuy As System.Windows.Forms.Button
Friend WithEvents lbprice As System.Windows.Forms.Label
Friend WithEvents lbdescription As System.Windows.Forms.Label
Friend WithEvents lbitemname As System.Windows.Forms.Label
End Class

View file

@ -1,3 +1,144 @@
Public Class shiftorium_cmd
Public Sub shiftorium_load(s As Object, e As EventArgs) Handles MyBase.Load
listboxtoaddto = lbitems
determineitems()
lbitems.SelectedItem = 0
lbprice.Hide()
btnbuy.Hide()
lbcodepoints.Text = "Codepoints: " & codepoints
End Sub
Public Sub determineitems()
lbitems.DrawMode = DrawMode.Normal
lbitems.Items.Clear()
Try
If boughtbasicsettings = False Then
AddItem("Basic Terminal Settings", 5)
Else
If boughtcustomusername = False Then
AddItem("Custom Username", 10)
End If
End If
If boughtdirectorysurfing = False Then
AddItem("Directory Surfing", 10)
Else
End If
If boughtgray = False Then
AddItem("Gray", 25)
Else
If boughtbasicgui = False Then
AddItem("Basic GUI Server", 100)
End If
If boughtterminalsettextcolor = False Then
AddItem("Set Terminal Text Color", 10)
End If
End If
lbitems.SelectedIndex = 1
Catch ex As Exception
lbitems.Items.Add("No items available.")
End Try
lbitems.DrawMode = DrawMode.OwnerDrawFixed
End Sub
Public Sub lbitems_keydown(sender As System.Object, e As KeyEventArgs) Handles lbitems.KeyDown
Select Case e.KeyCode
Case Keys.Escape
e.SuppressKeyPress = True
Me.Close()
Terminal.Focus()
Case Keys.Down
e.SuppressKeyPress = True
If Not lbitems.SelectedIndex = lbitems.Items.Count - 1 Then
lbitems.SelectedIndex += 1
End If
Case Keys.Up
e.SuppressKeyPress = True
If Not lbitems.SelectedIndex = 0 Then
lbitems.SelectedIndex -= 1
End If
Case Keys.Enter
handleitemdescription("Set Terminal Text Color - 10 CP", "Having a black and white color scheme on a Terminal is ibfact quite a cliche. This upgrade allows you to set the text color of the Terminal. It only allows for the basic colors, but it's better than just white!")
handleitemdescription("Basic GUI Server - 100 CP", "Well, we've got Gray, and we've got the ability to write GUIs. Now, let's allow the users to run GUIs, and open a lot of possibilities up.")
handleitemdescription("Gray - 25 CP", "Black, and white. Such a bland choice of colors. Black for the background, white for the text. What a hard way to develop an app. With this upgrade, the video card driver in ShiftOS will support the output of Gray (R=127, G=127, B=127) allowing for some better capabilities in application programming.")
handleitemdescription("Directory Surfing - 10 CP", "ShiftOS came with a file system update. Instead of ShiftFS, we have ShiftFS Ultra. However, there's no point in using it... yet. This upgrade allows you to browse the filesystem in the terminal.")
handleitemdescription("Custom Username - 10 CP", "Hello, user! Isn't that wierd that that's all we know you as? Buy this upgrade to change yourr name from ""user"" to anything you want!")
handleitemdescription("Basic Terminal Settings - 5 CP", "Ever wanted to customize the terminal to act the way you'd like it to? This upgrade is for you. You won't be able to use it until you buy settings, but hey! The command is there.")
Case Keys.Space
handlebuy("Set Terminal Text Color - 10 CP", boughtterminalsettextcolor, "Awesome! Now, you can use 'set textcolor <colorname>' to set the Terminal text color. For a reference on supported colors, you can also type 'colors'.")
handlebuy("Basic GUI Server - 100 CP", boughtbasicgui, "Amazing. Come time, and money, we may be able to collaborate with other companies to develop applications, upgrades, and eventually a window manager.")
handlebuy("Gray - 25 CP", boughtgray, "Great. Right away, the Shiftorium is easier to use! Look at that amazing gray highlight.")
handlebuy("Directory Surfing - 10 CP", boughtdirectorysurfing, "Now we can do basic file navigation using the cd, dir, and mkdir commands. Hopefully, with more research, we may be able to create some apps to handle files, like a text editor.")
handlebuy("Custom Username - 10 CP", boughtcustomusername, "Amazing! Just type ""set username <value>"" into the Terminal, and presto!")
handlebuy("Basic Terminal Settings - 5 CP", boughtbasicsettings, "Great! Now, a new command has been added to the terminal. Use it with ""set <setting> <value>"". There are no settings to set, though.")
Case Else
e.SuppressKeyPress = True
End Select
End Sub
Private Sub handlebuy(ByVal name As String, ByRef bought As Boolean, ByVal boughttutorial As String)
On Error Resume Next
Dim pricegrab As String
If lbitems.SelectedItem = name Then
If btnbuy.Text = "Press SPACE to download." Then
pricegrab = lbitems.SelectedItem.ToString.Substring(lbitems.SelectedItem.ToString.IndexOf("-") + 2, lbitems.SelectedItem.ToString.Length - lbitemname.Text.Length - 5)
codepoints -= Convert.ToInt32(pricegrab)
bought = True
lbdescription.Text = boughttutorial
btnbuy.Text = "Upgrade """ & name & """ installed, deducting " & pricegrab & " Codepoints."
lbprice.Hide()
determineitems()
lbcodepoints.Text = "Codepoints: " & codepoints
savegame()
End If
End If
End Sub
'UltraDOS Upgrade List renderer
Private Sub udos_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles lbitems.DrawItem
e.DrawBackground()
If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
If boughtgray Then
e.Graphics.FillRectangle(Brushes.Gray, e.Bounds)
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(lbitems.GetItemText(lbitems.Items(e.Index)), e.Font, b, e.Bounds)
End Using
Else
e.Graphics.FillRectangle(Brushes.White, e.Bounds)
Using b As New SolidBrush(Color.Black)
e.Graphics.DrawString(lbitems.GetItemText(lbitems.Items(e.Index)), e.Font, b, e.Bounds)
End Using
End If
Else
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(lbitems.GetItemText(lbitems.Items(e.Index)), e.Font, b, e.Bounds)
End Using
End If
e.DrawFocusRectangle()
End Sub
Private Sub handleitemdescription(ByVal itemname As String, ByVal itemdescription As String)
On Error Resume Next
If lbitems.SelectedItem.ToString = itemname Then
lbitemname.Text = lbitems.SelectedItem.ToString.Substring(0, lbitems.SelectedItem.ToString.IndexOf("-"))
lbdescription.Text = itemdescription
lbprice.Text = "This item costs " & lbitems.SelectedItem.ToString.Substring(lbitems.SelectedItem.ToString.IndexOf("-") + 2, lbitems.SelectedItem.ToString.Length - lbitemname.Text.Length - 5) & " Codepoints"
lbprice.Show()
btnbuy.Show()
If codepoints > Convert.ToInt32(lbitems.SelectedItem.ToString.Substring(lbitems.SelectedItem.ToString.IndexOf("-") + 2, lbitems.SelectedItem.ToString.Length - lbitemname.Text.Length - 5)) Then
btnbuy.Text = "Press SPACE to download."
Else
btnbuy.Text = "Insufficient Codepoints!"
End If
End If
End Sub
End Class