mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-09-03 08:08:39 +02:00
- You can now run up and down a slideblock. - NPC movement type Straight is now less random and more smooth. - When renaming the rival, the skin visible at the top changes to whatever skin is set as the rivalskin. This way, the rival is not stuck with one skin. This can be useful when the rival's skin changes based on the player's gender for example. - Text messages that contain <token.tokenname>, where tokenname is a string from the localizations files, have the part between the <> replaced with that string now. - Text messages that contain <button.buttonname>, where buttonname is one of the controls defined in "Saves\Keyboard.dat", will now have the part between the <> replaced with the key assigned to that control. - Players can now be genderless instead of only either male or female in scripts. - Which skins are available in the intro is now defined in the GameMode's definition file instead of being hard-coded - Old New Game intro now uses the player skin data from the GameMode definition file - The Pokémon in the old New Game now doesn't fall too far down anymore - Scripts adjusted to match the new gender functionality
1012 lines
38 KiB
VB.net
1012 lines
38 KiB
VB.net
Namespace GameJolt
|
|
|
|
Public Class GamejoltSave
|
|
|
|
Inherits Security.HashSecureBase
|
|
|
|
'Offset in Fields array:
|
|
Private Const ID_APRICORNS As Integer = 0
|
|
Private Const ID_BERRIES As Integer = 1
|
|
Private Const ID_BOX As Integer = 2
|
|
Private Const ID_DAYCARE As Integer = 3
|
|
Private Const ID_ITEMDATA As Integer = 4
|
|
Private Const ID_ITEMS As Integer = 5
|
|
Private Const ID_NPC As Integer = 6
|
|
Private Const ID_OPTIONS As Integer = 7
|
|
Private Const ID_PARTY As Integer = 8
|
|
Private Const ID_PLAYER As Integer = 9
|
|
Private Const ID_POKEDEX As Integer = 10
|
|
Private Const ID_REGISTER As Integer = 11
|
|
Private Const ID_HALLOFFAME As Integer = 12
|
|
Private Const ID_SECRETBASE As Integer = 13
|
|
Private Const ID_ROAMINGPOKEMON As Integer = 14
|
|
Private Const ID_STATISTICS As Integer = 15
|
|
'Extra, SAVEFILECOUNT will get added.
|
|
Private Const ID_PLAYERPOINTS As Integer = 0
|
|
Private Const ID_PLAYEREMBLEM As Integer = 1
|
|
Private Const ID_PLAYERGENDER As Integer = 2
|
|
Private Const ID_FRIENDS As Integer = 3
|
|
|
|
'The amount of files to download.
|
|
'SAVEFILEs represent the amount of files that would get stored in an offline save.
|
|
'EXTRADATA is stuff that does get saved extra and that offline profiles don't have, like global points, friends etc.
|
|
Public Const SAVEFILECOUNT As Integer = 16
|
|
Public Const EXTRADATADOWNLOADCOUNT As Integer = 4
|
|
Public Const EXTRADATAUPLOADCOUNT As Integer = 3
|
|
|
|
'The current version of the save files.
|
|
'WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
|
' Changing this will break all current online saves!
|
|
'WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
|
Public Const VERSION As String = "1"
|
|
|
|
''' <summary>
|
|
''' Apricorn data
|
|
''' </summary>
|
|
Public ReadOnly Property Apricorns() As String
|
|
Get
|
|
Return Me._apricorns
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Berry data
|
|
''' </summary>
|
|
Public ReadOnly Property Berries() As String
|
|
Get
|
|
Return Me._berries
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Box data
|
|
''' </summary>
|
|
Public ReadOnly Property Box() As String
|
|
Get
|
|
Return Me._box
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Daycare data
|
|
''' </summary>
|
|
Public ReadOnly Property Daycare() As String
|
|
Get
|
|
Return Me._daycare
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' ItemData data
|
|
''' </summary>
|
|
Public ReadOnly Property ItemData() As String
|
|
Get
|
|
Return Me._itemData
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Item data
|
|
''' </summary>
|
|
Public ReadOnly Property Items() As String
|
|
Get
|
|
Return Me._items
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' NPC data
|
|
''' </summary>
|
|
Public ReadOnly Property NPC() As String
|
|
Get
|
|
Return Me._NPC
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Option data
|
|
''' </summary>
|
|
Public ReadOnly Property Options() As String
|
|
Get
|
|
Return Me._options
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Party data
|
|
''' </summary>
|
|
Public ReadOnly Property Party() As String
|
|
Get
|
|
Return Me._party
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Player data
|
|
''' </summary>
|
|
Public ReadOnly Property Player() As String
|
|
Get
|
|
Return Me._player
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Pokedex data
|
|
''' </summary>
|
|
Public ReadOnly Property Pokedex() As String
|
|
Get
|
|
Return Me._pokedex
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Register data
|
|
''' </summary>
|
|
Public ReadOnly Property Register() As String
|
|
Get
|
|
Return Me._register
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' HallOfFame data
|
|
''' </summary>
|
|
Public ReadOnly Property HallOfFame() As String
|
|
Get
|
|
Return Me._hallOfFame
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' SecretBase data
|
|
''' </summary>
|
|
Public ReadOnly Property SecretBase() As String
|
|
Get
|
|
Return Me._secretBase
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' RoamingPokemon data
|
|
''' </summary>
|
|
Public ReadOnly Property RoamingPokemon() As String
|
|
Get
|
|
Return Me._roamingPokemon
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Statistics data
|
|
''' </summary>
|
|
Public ReadOnly Property Statistics() As String
|
|
Get
|
|
Return Me._statistics
|
|
End Get
|
|
End Property
|
|
|
|
Public _apricorns As String = ""
|
|
Public _berries As String = ""
|
|
Public _box As String = ""
|
|
Public _daycare As String = ""
|
|
Public _itemData As String = ""
|
|
Public _items As String = ""
|
|
Public _NPC As String = ""
|
|
Public _options As String = ""
|
|
Public _party As String = ""
|
|
Public _player As String = ""
|
|
Public _pokedex As String = ""
|
|
Public _register As String = ""
|
|
Public _hallOfFame As String = ""
|
|
Public _secretBase As String = ""
|
|
Public _roamingPokemon As String = ""
|
|
Public _statistics As String = ""
|
|
|
|
Public AchievedEmblems As New List(Of String)
|
|
Public DownloadedSprite As Texture2D = Nothing
|
|
|
|
Public Friends As String = ""
|
|
Public SentRequests As String = ""
|
|
Public ReceivedRequests As String = ""
|
|
|
|
Public Emblem As String = "trainer"
|
|
|
|
Public Property Points() As Integer
|
|
Get
|
|
Assert("_points", _points)
|
|
Return _points
|
|
End Get
|
|
Set(value As Integer)
|
|
Assert("_points", _points, value)
|
|
_points = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Property Gender() As String
|
|
Get
|
|
Assert("_gender", _gender)
|
|
Return _gender
|
|
End Get
|
|
Set(value As String)
|
|
Assert("_gender", _gender, value)
|
|
_gender = value
|
|
End Set
|
|
End Property
|
|
|
|
Public ReadOnly Property GameJoltID() As String
|
|
Get
|
|
Return _gameJoltID
|
|
End Get
|
|
End Property
|
|
|
|
Private _points As Integer = 0
|
|
Private _gender As String = "0"
|
|
Private _gameJoltID As String = ""
|
|
|
|
Private _downloadedFlags As New List(Of Boolean)
|
|
Private _downloadFailed As Boolean = False
|
|
|
|
''' <summary>
|
|
''' Indicates if the download finished.
|
|
''' </summary>
|
|
Public ReadOnly Property DownloadFinished() As Boolean
|
|
Get
|
|
Return DownloadProgress() = TotalDownloadItems()
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Returns the amount of downloaded items.
|
|
''' </summary>
|
|
Public ReadOnly Property DownloadProgress() As Integer
|
|
Get
|
|
Dim c As Integer = 0
|
|
For i = 0 To _downloadedFlags.Count - 1
|
|
If i <= _downloadedFlags.Count - 1 Then
|
|
Dim b As Boolean = _downloadedFlags(i)
|
|
If b = True Then
|
|
c += 1
|
|
End If
|
|
End If
|
|
Next
|
|
Return c
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' The total files to download from the server.
|
|
''' </summary>
|
|
Public ReadOnly Property TotalDownloadItems() As Integer
|
|
Get
|
|
Return SAVEFILECOUNT + EXTRADATADOWNLOADCOUNT
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' If the download of this save failed at some point.
|
|
''' </summary>
|
|
Public ReadOnly Property DownloadFailed() As Boolean
|
|
Get
|
|
Return Me._downloadFailed
|
|
End Get
|
|
End Property
|
|
|
|
''' <summary>
|
|
''' Handles the download failing.
|
|
''' </summary>
|
|
''' <param name="ex">The exception getting thrown.</param>
|
|
Private Sub DownloadFailedHandler(ByVal ex As Exception)
|
|
Me._downloadFailed = True
|
|
|
|
Logger.Log(Logger.LogTypes.Warning, "The download of a GameJolt save failed with this message: " & ex.Message)
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Starts to download a GameJolt save.
|
|
''' </summary>
|
|
''' <param name="GameJoltID">The GameJolt ID of the save to download.</param>
|
|
''' <param name="MainSave">If this save is a main save download. Disable this flag to also download additional data.</param>
|
|
Public Sub DownloadSave(ByVal GameJoltID As String, ByVal MainSave As Boolean)
|
|
Me._gameJoltID = GameJoltID
|
|
Me._downloadFailed = False
|
|
|
|
'Fill fields to contain as many items as items to download.
|
|
_downloadedFlags.Clear()
|
|
For i = 1 To SAVEFILECOUNT + EXTRADATADOWNLOADCOUNT
|
|
_downloadedFlags.Add(False)
|
|
Next
|
|
|
|
AchievedEmblems.Clear()
|
|
|
|
_apricorns = ""
|
|
_berries = ""
|
|
_box = ""
|
|
_daycare = ""
|
|
_itemData = ""
|
|
_items = ""
|
|
_NPC = ""
|
|
_options = ""
|
|
_party = ""
|
|
_player = ""
|
|
_pokedex = ""
|
|
_register = ""
|
|
_hallOfFame = ""
|
|
_secretBase = ""
|
|
_roamingPokemon = ""
|
|
_statistics = ""
|
|
|
|
Friends = ""
|
|
If MainSave = True Then
|
|
GTSSetupScreen.GTSEditTradeScreen.SelectFriendScreen.Clear() 'Clear temp friends
|
|
End If
|
|
|
|
Dim APIPublicCall As New APICall(AddressOf GotPublicKeys)
|
|
APIPublicCall.GetKeys(False, "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|*")
|
|
|
|
Dim APIPrivateCall As New APICall(AddressOf GotPrivateKeys)
|
|
APIPrivateCall.GetKeys(True, "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|*")
|
|
|
|
'If MainSave = True Then
|
|
' GameJolt.Emblem.GetAchievedEmblems()
|
|
'End If
|
|
|
|
Dim APIFriendsCall As New APICall(AddressOf SaveFriends)
|
|
APIFriendsCall.FetchFriendList(GameJoltID)
|
|
|
|
If MainSave = True Then
|
|
Dim t As New Threading.Thread(AddressOf DownloadSpriteSub)
|
|
t.IsBackground = True
|
|
t.Start()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub DownloadSpriteSub()
|
|
DownloadedSprite = GameJolt.Emblem.GetOnlineSprite(GameJoltID)
|
|
End Sub
|
|
|
|
Private Sub GotPublicKeys(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
Dim existsPoints As Boolean = False
|
|
Dim existsEmblem As Boolean = False
|
|
Dim existsGender As Boolean = False
|
|
|
|
For Each Item As API.JoltValue In list
|
|
If Item.Value = "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|points" Then
|
|
Dim APICall As New APICall(AddressOf SavePlayerPoints)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, False)
|
|
|
|
existsPoints = True
|
|
End If
|
|
If Item.Value = "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|emblem" Then
|
|
Dim APICall As New APICall(AddressOf SavePlayerEmblem)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, False)
|
|
|
|
existsEmblem = True
|
|
End If
|
|
If Item.Value = "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|gender" Then
|
|
Dim APICall As New APICall(AddressOf SavePlayerGender)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, False)
|
|
|
|
existsGender = True
|
|
End If
|
|
Next
|
|
|
|
If existsPoints = False Then
|
|
Points = 0
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYERPOINTS) = True
|
|
|
|
UpdatePlayerScore()
|
|
End If
|
|
If existsEmblem = False Then
|
|
Emblem = "trainer"
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYEREMBLEM) = True
|
|
End If
|
|
If existsGender = False Then
|
|
Gender = "0"
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYERGENDER) = True
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub UpdatePlayerScore()
|
|
Dim APICall As New APICall()
|
|
|
|
APICall.AddScore(Points & " Points", Points, "14908")
|
|
End Sub
|
|
|
|
Private Sub GotPrivateKeys(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
Dim exists() As Boolean = {}
|
|
For i = 0 To SAVEFILECOUNT - 1
|
|
Dim l As List(Of Boolean) = exists.ToList()
|
|
l.Add(False)
|
|
exists = l.ToArray()
|
|
Next
|
|
|
|
For Each Item As API.JoltValue In list
|
|
Select Case Item.Value
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|apricorns"
|
|
Dim APICall As New APICall(AddressOf SaveApricorns)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_APRICORNS) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|berries"
|
|
Dim APICall As New APICall(AddressOf SaveBerries)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_BERRIES) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|box"
|
|
Dim APICall As New APICall(AddressOf SaveBox)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_BOX) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|daycare"
|
|
Dim APICall As New APICall(AddressOf SaveDaycare)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_DAYCARE) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|itemdata"
|
|
Dim APICall As New APICall(AddressOf SaveItemData)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_ITEMDATA) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|items"
|
|
Dim APICall As New APICall(AddressOf SaveItems)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_ITEMS) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|npc"
|
|
Dim APICall As New APICall(AddressOf SaveNPC)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_NPC) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|options"
|
|
Dim APICall As New APICall(AddressOf SaveOptions)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_OPTIONS) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|party"
|
|
Dim APICall As New APICall(AddressOf SaveParty)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_PARTY) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|player"
|
|
Dim APICall As New APICall(AddressOf SavePlayer)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_PLAYER) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|pokedex"
|
|
Dim APICall As New APICall(AddressOf SavePokedex)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_POKEDEX) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|register"
|
|
Dim APICall As New APICall(AddressOf SaveRegister)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_REGISTER) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|halloffame"
|
|
Dim APICall As New APICall(AddressOf SaveHallOfFame)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_HALLOFFAME) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|secretbase"
|
|
Dim APICall As New APICall(AddressOf SaveSecretBase)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_SECRETBASE) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|roamingpokemon"
|
|
Dim APICall As New APICall(AddressOf SaveRoamingPokemon)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_ROAMINGPOKEMON) = True
|
|
Case "saveStorageV" & GameJolt.GamejoltSave.VERSION & "|" & GameJoltID & "|statistics"
|
|
Dim APICall As New APICall(AddressOf SaveStatistics)
|
|
AddHandler APICall.CallFails, AddressOf DownloadFailedHandler
|
|
APICall.GetStorageData(Item.Value, True)
|
|
|
|
exists(ID_STATISTICS) = True
|
|
End Select
|
|
Next
|
|
|
|
If exists(ID_BERRIES) = False Then
|
|
_berries = GetBerryData()
|
|
End If
|
|
If exists(ID_OPTIONS) = False Then
|
|
_options = GetOptionsData()
|
|
End If
|
|
If exists(ID_PLAYER) = False Then
|
|
_player = GetPlayerData()
|
|
End If
|
|
|
|
For i = 0 To SAVEFILECOUNT - 1
|
|
If exists(i) = False Then
|
|
_downloadedFlags(i) = True
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub SavePlayerPoints(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
Points = CInt(data.Replace("\""", """"))
|
|
Else
|
|
Points = 0
|
|
End If
|
|
|
|
UpdatePlayerScore()
|
|
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYERPOINTS) = True
|
|
End Sub
|
|
|
|
Private Sub SavePlayerEmblem(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
Emblem = data.Replace("\""", """")
|
|
Else
|
|
Emblem = "trainer"
|
|
End If
|
|
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYEREMBLEM) = True
|
|
End Sub
|
|
|
|
Private Sub SavePlayerGender(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
Gender = data.Replace("\""", """")
|
|
Else
|
|
Gender = "0"
|
|
End If
|
|
|
|
_downloadedFlags(SAVEFILECOUNT + ID_PLAYERGENDER) = True
|
|
End Sub
|
|
|
|
Private Sub SaveApricorns(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_apricorns = data.Replace("\""", """")
|
|
Else
|
|
_apricorns = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_APRICORNS) = True
|
|
End Sub
|
|
|
|
Private Sub SaveBerries(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_berries = data.Replace("\""", """")
|
|
Else
|
|
_berries = GetBerryData()
|
|
End If
|
|
|
|
_downloadedFlags(ID_BERRIES) = True
|
|
End Sub
|
|
|
|
Private Sub SaveBox(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_box = data.Replace("\""", """")
|
|
Else
|
|
_box = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_BOX) = True
|
|
End Sub
|
|
|
|
Private Sub SaveDaycare(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_daycare = data.Replace("\""", """")
|
|
Else
|
|
_daycare = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_DAYCARE) = True
|
|
End Sub
|
|
|
|
Private Sub SaveItemData(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_itemData = data.Replace("\""", """")
|
|
Else
|
|
_itemData = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_ITEMDATA) = True
|
|
End Sub
|
|
|
|
Private Sub SaveItems(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_items = data.Replace("\""", """")
|
|
Else
|
|
_items = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_ITEMS) = True
|
|
End Sub
|
|
|
|
Private Sub SaveNPC(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_NPC = data.Replace("\""", """")
|
|
Else
|
|
_NPC = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_NPC) = True
|
|
End Sub
|
|
|
|
Private Sub SaveOptions(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_options = data.Replace("\""", """")
|
|
Else
|
|
_options = GetOptionsData()
|
|
End If
|
|
|
|
_downloadedFlags(ID_OPTIONS) = True
|
|
End Sub
|
|
|
|
Private Sub SaveParty(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_party = data.Replace("\""", """")
|
|
Else
|
|
_party = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_PARTY) = True
|
|
End Sub
|
|
|
|
Private Sub SavePlayer(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_player = data.Replace("\""", """")
|
|
Else
|
|
_player = GetPlayerData()
|
|
End If
|
|
|
|
_downloadedFlags(ID_PLAYER) = True
|
|
End Sub
|
|
|
|
Private Sub SavePokedex(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_pokedex = data.Replace("\""", """")
|
|
Else
|
|
_pokedex = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_POKEDEX) = True
|
|
End Sub
|
|
|
|
Private Sub SaveRegister(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_register = data.Replace("\""", """")
|
|
Else
|
|
_register = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_REGISTER) = True
|
|
End Sub
|
|
|
|
Private Sub SaveHallOfFame(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_hallOfFame = data.Replace("\""", """")
|
|
Else
|
|
_hallOfFame = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_HALLOFFAME) = True
|
|
End Sub
|
|
|
|
Private Sub SaveSecretBase(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_secretBase = data.Replace("\""", """")
|
|
Else
|
|
_secretBase = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_SECRETBASE) = True
|
|
End Sub
|
|
|
|
Private Sub SaveRoamingPokemon(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_roamingPokemon = data.Replace("\""", """")
|
|
Else
|
|
_roamingPokemon = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_ROAMINGPOKEMON) = True
|
|
End Sub
|
|
|
|
Private Sub SaveStatistics(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If CBool(list(0).Value) = True Then
|
|
Dim data As String = result.Remove(0, 22)
|
|
data = data.Remove(data.LastIndexOf(""""))
|
|
|
|
_statistics = data.Replace("\""", """")
|
|
Else
|
|
_statistics = ""
|
|
End If
|
|
|
|
_downloadedFlags(ID_STATISTICS) = True
|
|
End Sub
|
|
|
|
Private Sub SaveFriends(ByVal result As String)
|
|
Dim list As List(Of API.JoltValue) = API.HandleData(result)
|
|
|
|
If list.Count > 1 Then
|
|
Friends = ""
|
|
|
|
For Each Item As API.JoltValue In list
|
|
If Item.Name = "friend_id" Then
|
|
If Friends <> "" Then
|
|
Friends &= ","
|
|
End If
|
|
Friends &= Item.Value
|
|
End If
|
|
Next
|
|
Else
|
|
Friends = ""
|
|
End If
|
|
|
|
_downloadedFlags(SAVEFILECOUNT + ID_FRIENDS) = True
|
|
End Sub
|
|
|
|
|
|
|
|
#Region "DefaultData"
|
|
|
|
Private Function GetPlayerData() As String
|
|
Dim GameMode As GameMode = GameModeManager.ActiveGameMode
|
|
|
|
Dim ot As String = GameJoltID
|
|
While ot.Length < 5
|
|
ot = "0" & ot
|
|
End While
|
|
|
|
Dim s As String = "Name|" & GameJolt.API.username & Environment.NewLine &
|
|
"Position|1,0.1,3" & Environment.NewLine &
|
|
"MapFile|yourroom.dat" & Environment.NewLine &
|
|
"Rotation|1.570796" & Environment.NewLine &
|
|
"RivalName|???" & Environment.NewLine &
|
|
"RivalSkin|Silver" & Environment.NewLine &
|
|
"Money|3000" & Environment.NewLine &
|
|
"Badges|0" & Environment.NewLine &
|
|
"Gender|Male" & Environment.NewLine &
|
|
"PlayTime|0,0,0,0" & Environment.NewLine &
|
|
"OT|" & ot & Environment.NewLine &
|
|
"Points|0" & Environment.NewLine &
|
|
"hasPokedex|0" & Environment.NewLine &
|
|
"hasPokegear|0" & Environment.NewLine &
|
|
"freeCamera|1" & Environment.NewLine &
|
|
"thirdPerson|0" & Environment.NewLine &
|
|
"skin|" & GameJolt.Emblem.GetPlayerSpriteFile(1, Core.GameJoltSave.GameJoltID, Core.GameJoltSave.Gender) & Environment.NewLine &
|
|
"location|Your Room" & Environment.NewLine &
|
|
"battleAnimations|1" & Environment.NewLine &
|
|
"BoxAmount|5" & Environment.NewLine &
|
|
"LastRestPlace|yourroom.dat" & Environment.NewLine &
|
|
"LastRestPlacePosition|1,0.1,3" & Environment.NewLine &
|
|
"DiagonalMovement|0" & Environment.NewLine &
|
|
"RepelSteps|0" & Environment.NewLine &
|
|
"LastSavePlace|yourroom.dat" & Environment.NewLine &
|
|
"LastSavePlacePosition|1,0.1,3" & Environment.NewLine &
|
|
"Difficulty|" & GameModeManager.GetGameRuleValue("Difficulty", "0") & Environment.NewLine &
|
|
"BattleStyle|0" & Environment.NewLine &
|
|
"saveCreated|" & GameController.GAMEDEVELOPMENTSTAGE & " " & GameController.GAMEVERSION & Environment.NewLine &
|
|
"LastPokemonPosition|999,999,999" & Environment.NewLine &
|
|
"DaycareSteps|0" & Environment.NewLine &
|
|
"GameMode|Kolben" & Environment.NewLine &
|
|
"PokeFiles|" & Environment.NewLine &
|
|
"VisitedMaps|yourroom.dat" & Environment.NewLine &
|
|
"TempSurfSkin|Hilbert" & Environment.NewLine &
|
|
"Surfing|0" & Environment.NewLine &
|
|
"ShowModels|1" & Environment.NewLine &
|
|
"GTSStars|4" & Environment.NewLine &
|
|
"SandBoxMode|0" & Environment.NewLine &
|
|
"EarnedAchievements|"
|
|
|
|
Return s
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
Public Sub ResetSave()
|
|
Points = 0
|
|
Emblem = "trainer"
|
|
Gender = "0"
|
|
|
|
_apricorns = ""
|
|
_berries = GetBerryData()
|
|
_box = ""
|
|
_daycare = ""
|
|
_itemData = ""
|
|
_items = ""
|
|
_NPC = ""
|
|
_options = GetOptionsData()
|
|
_party = ""
|
|
_player = GetPlayerData()
|
|
_pokedex = ""
|
|
_register = ""
|
|
_hallOfFame = ""
|
|
_secretBase = ""
|
|
_roamingPokemon = ""
|
|
_statistics = ""
|
|
End Sub
|
|
|
|
Public Shared Function GetOptionsData() As String
|
|
Dim s As String = "FOV|50" & Environment.NewLine &
|
|
"TextSpeed|2" & Environment.NewLine &
|
|
"MouseSpeed|12"
|
|
|
|
Return s
|
|
End Function
|
|
|
|
Public Shared Function GetBerryData() As String
|
|
Dim s As String = "{route29.dat|13,0,5|6|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route29.dat|14,0,5|6|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route29.dat|15,0,5|6|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{azalea.dat|9,0,3|0|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{azalea.dat|9,0,4|1|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{azalea.dat|9,0,5|0|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route30.dat|7,0,41|10|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route30.dat|14,0,5|2|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route30.dat|15,0,5|6|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route30.dat|16,0,5|2|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{routes\route35.dat|0,0,4|7|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{routes\route35.dat|1,0,4|8|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route36.dat|37,0,7|0|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route36.dat|38,0,7|4|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route36.dat|39,0,7|3|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route39.dat|8,0,2|9|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route39.dat|8,0,3|6|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route38.dat|13,0,12|16|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route38.dat|14,0,12|23|1|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{route38.dat|15,0,12|16|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{routes\route43.dat|13,0,45|23|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{routes\route43.dat|13,0,46|24|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{routes\route43.dat|13,0,47|25|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{safarizone\main.dat|3,0,11|5|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{safarizone\main.dat|4,0,11|0|2|0|2012,9,21,4,0,0|1}" & Environment.NewLine &
|
|
"{safarizone\main.dat|5,0,11|6|3|0|2012,9,21,4,0,0|1}"
|
|
|
|
Return s
|
|
End Function
|
|
End Class
|
|
|
|
Public Class StaffProfile
|
|
|
|
Public Shared Staff As New List(Of StaffProfile)
|
|
|
|
Public Shared Sub SetupStaff()
|
|
Staff.Add(New StaffProfile("17441", "Creator", "nilllzz", {StaffArea.GlobalAdmin, StaffArea.GTSAdmin, StaffArea.GTSDaily, StaffArea.MailManagement}))
|
|
Staff.Add(New StaffProfile("32943", "Programmator", "dracohouston", {StaffArea.GlobalAdmin}))
|
|
Staff.Add(New StaffProfile("32349", "Dark", "darkfire", {StaffArea.GlobalAdmin, StaffArea.GTSAdmin, StaffArea.GTSDaily, StaffArea.MailManagement}))
|
|
Staff.Add(New StaffProfile("33742", "Prince", "princevade", {StaffArea.GlobalAdmin, StaffArea.GTSAdmin, StaffArea.GTSDaily, StaffArea.MailManagement}))
|
|
Staff.Add(New StaffProfile("1", "GameJolt", "cros", {}))
|
|
Staff.Add(New StaffProfile("35947", "", "", {StaffArea.GTSDaily}))
|
|
Staff.Add(New StaffProfile("541732", "The Captain", "", {StaffArea.GTSDaily}))
|
|
End Sub
|
|
|
|
Public Enum StaffArea
|
|
GTSAdmin
|
|
GTSDaily
|
|
MailManagement
|
|
GlobalAdmin
|
|
End Enum
|
|
|
|
Public StaffAreas As New List(Of StaffArea)
|
|
Public RankName As String = ""
|
|
Public Sprite As String = ""
|
|
Public GameJoltID As String = ""
|
|
|
|
Public Sub New(ByVal GameJoltID As String, ByVal RankName As String, ByVal Sprite As String, ByVal StaffAreas() As StaffArea)
|
|
Me.RankName = RankName
|
|
Me.GameJoltID = GameJoltID
|
|
Me.Sprite = Sprite
|
|
Me.StaffAreas = StaffAreas.ToList()
|
|
End Sub
|
|
|
|
End Class
|
|
|
|
End Namespace
|