First Main Menu rework almost done

The options row buttons in the Main Menu now open their respective tab in the Options Menu when selected

The Content Pack Menu is positioned correctly

The Content Pack & Language Menus now fade in and out
This commit is contained in:
JappaWakka 2021-09-28 17:20:51 +02:00
parent ee42876afa
commit 166a150ce4
2 changed files with 199 additions and 149 deletions

View File

@ -364,52 +364,76 @@ Public Class NewMainMenuScreen
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
If Controls.Accept(True, False, False) Then
' Click on profiles.
For x = 0 To _MainProfiles.Count - 1
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + x * 180 + ((x + 1) * 100 * (1 - _fadeInMain))
Select Case _menuIndex
Case 0
For x = 0 To _MainProfiles.Count - 1
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + x * 180 + ((x + 1) * 100 * (1 - _fadeInMain))
If New Rectangle(CInt(xOffset), CInt(_screenOrigin.Y + _screenOffset.Y), 160, 160).Contains(MouseHandler.MousePosition) Then
If _selectedProfile = x Then
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
ClickedProfile()
SoundManager.PlaySound("select")
If New Rectangle(CInt(xOffset), CInt(_screenOrigin.Y + _screenOffset.Y), 160, 160).Contains(MouseHandler.MousePosition) Then
If _selectedProfile = x Then
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
ClickedProfile()
SoundManager.PlaySound("select")
End If
Else
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
Dim diff As Integer = x - _selectedProfile
_screenOffsetTarget.X -= diff * 180
_selectedProfile = x
End If
Exit For
End If
End If
Else
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
Dim diff As Integer = x - _selectedProfile
_screenOffsetTarget.X -= diff * 180
_selectedProfile = x
Next
If _MainProfiles(_selectedProfile).IsGameJolt AndAlso _MainProfiles(_selectedProfile).Loaded Then
' Click on gamejolt buttons
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + (100 * (1 - _fadeInMain))
Dim r As New Vector2(xOffset + 400, _screenOrigin.Y + _screenOffset.Y + 200)
If New Rectangle(CInt(r.X), CInt(r.Y), 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonChangeMale()
ElseIf New Rectangle(CInt(r.X), CInt(r.Y) + 48, 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonChangeFemale()
ElseIf New Rectangle(CInt(r.X), CInt(r.Y) + 48 + 48, 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonResetSave()
End If
Exit For
End If
End If
Next
If _MainProfiles(_selectedProfile).IsGameJolt AndAlso _MainProfiles(_selectedProfile).Loaded Then
' Click on gamejolt buttons
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + (100 * (1 - _fadeInMain))
Dim r As New Vector2(xOffset + 400, _screenOrigin.Y + _screenOffset.Y + 200)
If New Rectangle(CInt(r.X), CInt(r.Y), 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonChangeMale()
ElseIf New Rectangle(CInt(r.X), CInt(r.Y) + 48, 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonChangeFemale()
ElseIf New Rectangle(CInt(r.X), CInt(r.Y) + 48 + 48, 32, 32).Contains(MouseHandler.MousePosition) Then
ButtonResetSave()
End If
End If
End If
If Controls.Dismiss(True, False, False) Then
' Click on profiles.
For x = 0 To _MainProfiles.Count - 1
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + x * 180 + ((x + 1) * 100 * (1 - _fadeInMain))
If Controls.Dismiss(True, False, False) Then
' Click on profiles.
For x = 0 To _MainProfiles.Count - 1
Dim xOffset As Single = _screenOrigin.X + _screenOffset.X + x * 180 + ((x + 1) * 100 * (1 - _fadeInMain))
If New Rectangle(CInt(xOffset), CInt(_screenOrigin.Y + _screenOffset.Y), 160, 160).Contains(MouseHandler.MousePosition) Then
If _selectedProfile = x Then
SoundManager.PlaySound("select")
DismissProfile()
If New Rectangle(CInt(xOffset), CInt(_screenOrigin.Y + _screenOffset.Y), 160, 160).Contains(MouseHandler.MousePosition) Then
If _selectedProfile = x Then
SoundManager.PlaySound("select")
DismissProfile()
End If
Exit For
End If
Next
End If
Exit For
End If
Next
Case 2, 3
For x = 0 To _OptionsProfiles.Count - 1
Dim xOffset As Single = _screenOrigin.X + _optionsOffset.X + x * 180 + ((x + 1) * 100 * (1 - _fadeInMain))
If New Rectangle(CInt(xOffset), CInt(_screenOrigin.Y + _optionsOffset.Y), 160, 160).Contains(MouseHandler.MousePosition) Then
If _selectedProfile = x Then
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
ClickedProfile()
SoundManager.PlaySound("select")
End If
Else
If CurrentScreen.Identification = Identifications.MainMenuScreen Then
Dim diff As Integer = x - _selectedProfile
_optionsOffsetTarget.X -= diff * 180
_selectedProfile = x
End If
Exit For
End If
End If
Next
End Select
End If
If CurrentScreen.Identification = Screen.Identifications.MainMenuScreen Then
Select Case _menuIndex
@ -570,11 +594,16 @@ Public Class NewMainMenuScreen
Private Sub ClickedProfile()
If _selectedProfile = 1 And Security.FileValidation.IsValid(False) = False Then
_messageBox.Show("File validation failed!" & Environment.NewLine & "Redownload the game's files to solve this problem.")
Else
_MainProfiles(_selectedProfile).SelectProfile()
End If
Select Case _menuIndex
Case 0
If _selectedProfile = 1 And Security.FileValidation.IsValid(False) = False Then
_messageBox.Show("File validation failed!" & Environment.NewLine & "Redownload the game's files to solve this problem.")
Else
_MainProfiles(_selectedProfile).SelectProfile()
End If
Case 2, 3
_OptionsProfiles(_selectedProfile).SelectProfile()
End Select
End Sub
Private Sub DismissProfile()
@ -655,12 +684,6 @@ Public Class NewMainMenuScreen
Case Else
DrawGradients(CInt(255 * _fadeInMain), False)
End Select
If _selectedProfile = 1 Then
DrawGradients(CInt(255 * _fadeInMain), True)
Else
DrawGradients(CInt(255 * _fadeInMain), False)
End If
End If
If IsCurrentScreen() Then
@ -669,10 +692,10 @@ Public Class NewMainMenuScreen
GetFontRenderer().DrawString(FontManager.InGameFont, "Please wait" & LoadingDots.Dots, New Vector2(windowSize.Width / 2.0F - textSize.X / 2.0F, windowSize.Height / 2.0F - textSize.Y / 2.0F + 100), Color.White)
Else
Select Case _menuIndex
Case 2
DrawOptionsProfiles(False)
Case 3
Case 1, 3
DrawOptionsProfiles(True)
Case Else
DrawOptionsProfiles(False)
End Select
DrawMainProfiles()
End If
@ -1171,7 +1194,7 @@ Public Class NewMainMenuScreen
Case 2
text = "Controls"
Case 3
text = "Content Packs"
text = "Content" & Environment.NewLine & "Packs"
End Select
If alpha >= 250 And CurrentScreen.Identification = Identifications.MainMenuScreen Then
@ -1188,7 +1211,7 @@ Public Class NewMainMenuScreen
_logoBounce = 0F
End If
End If
SpriteBatch.Draw(_sprite, New Rectangle(CInt(offset.X + 40), CInt(offset.Y + 36 + Math.Sin(_logoBounce) * 8.0F), 80, 80), New Color(255, 255, 255, alpha))
SpriteBatch.Draw(_sprite, New Rectangle(CInt(offset.X + 40), CInt(offset.Y + 24 + Math.Sin(_logoBounce) * 8.0F), 80, 80), New Color(255, 255, 255, alpha))
Else
If _loaded Then
@ -1280,51 +1303,55 @@ Public Class NewMainMenuScreen
End Sub
Public Sub SelectProfile()
If _isGameJolt And _loaded = False And GameJolt.API.LoggedIn = False Then
SetScreen(New GameJolt.LogInScreen(CurrentScreen))
ElseIf _isNewGameButton Then
World.IsMainMenu = False
If GameModeManager.GameModeCount = 1 Then
' There's only the default GameMode available, so just load that one.
GameModeManager.SetGameModePointer("Kolben")
SetScreen(New Screens.MainMenu.NewNewGameScreen(CurrentScreen))
Else
' There is more than one GameMode, prompt a selection screen:
SetScreen(New GameModeSelectionScreen(CurrentScreen))
End If
Else
If _gameModeExists Then
GameModeManager.SetGameModePointer(_gameMode)
World.IsMainMenu = False
If _isGameJolt Then
Core.Player.IsGameJoltSave = True
Core.Player.LoadGame("GAMEJOLTSAVE")
GameJolt.Emblem.GetAchievedEmblems()
SetScreen(New JoinServerScreen(CurrentScreen))
Select Case _menuIndex
Case 0
If _isGameJolt And _loaded = False And GameJolt.API.LoggedIn = False Then
SetScreen(New GameJolt.LogInScreen(CurrentScreen))
ElseIf _isNewGameButton Then
World.IsMainMenu = False
If GameModeManager.GameModeCount = 1 Then
' There's only the default GameMode available, so just load that one.
GameModeManager.SetGameModePointer("Kolben")
SetScreen(New Screens.MainMenu.NewNewGameScreen(CurrentScreen))
Else
' There is more than one GameMode, prompt a selection screen:
SetScreen(New GameModeSelectionScreen(CurrentScreen))
End If
Else
Core.Player.IsGameJoltSave = False
Core.Player.LoadGame(IO.Path.GetFileName(_path))
If _gameModeExists Then
GameModeManager.SetGameModePointer(_gameMode)
World.IsMainMenu = False
If _isGameJolt Then
Core.Player.IsGameJoltSave = True
Core.Player.LoadGame("GAMEJOLTSAVE")
GameJolt.Emblem.GetAchievedEmblems()
SetScreen(New JoinServerScreen(CurrentScreen))
End If
Else
If Me.IsGameJolt Then
_loaded = False
_sprite = TextureManager.GetTexture("Textures\UI\GameJolt\gameJoltIcon")
LoadGameJolt()
ElseIf IsOptionsMenuButton = False Then
Dim messageBox As New UI.MessageBox(CurrentScreen)
messageBox.Show("The required GameMode does not exist." & Environment.NewLine & "Reaquire the GameMode to play on this profile.")
Else
_menuIndex = 2
_selectedProfileTemp = _selectedProfile
_selectedProfile = 0
'SetScreen(New NewOptionScreen(CurrentScreen))
SetScreen(New JoinServerScreen(CurrentScreen))
Else
Core.Player.IsGameJoltSave = False
Core.Player.LoadGame(IO.Path.GetFileName(_path))
SetScreen(New JoinServerScreen(CurrentScreen))
End If
Else
If Me.IsGameJolt Then
_loaded = False
_sprite = TextureManager.GetTexture("Textures\UI\GameJolt\gameJoltIcon")
LoadGameJolt()
ElseIf IsOptionsMenuButton = False Then
Dim messageBox As New UI.MessageBox(CurrentScreen)
messageBox.Show("The required GameMode does not exist." & Environment.NewLine & "Reaquire the GameMode to play on this profile.")
Else
_menuIndex = 2
_selectedProfileTemp = _selectedProfile
_selectedProfile = 0
'SetScreen(New NewOptionScreen(CurrentScreen))
End If
End If
End If
End If
Case 2, 3
SetScreen(New NewOptionScreen(CurrentScreen, _OptionsMenuIndex + 1))
End Select
End Sub
End Class

View File

@ -19,6 +19,7 @@
Dim Muted As Integer = 0
Dim GamePadEnabled As Boolean = True
Dim PreferMultiSampling As Boolean = True
Private _subMenu As Integer = 0
Private Languages As New List(Of String)
Private LanguageNames As New List(Of String)
@ -86,7 +87,8 @@
End If
SetFunctionality()
If Submenu > 0 Then
Select Case Submenu
_subMenu = Submenu
Select Case _subMenu
Case 1
SwitchToLanguage()
Case 2
@ -153,15 +155,15 @@
Private Sub DrawLanguageMenu()
For i = 0 To 3
Dim c As Color = New Color(255, 255, 255, CInt(255 * _pageFade))
Dim c As Color = New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade))
If i + languageMenuIndex(2) = languageMenuIndex(0) Then
c = New Color(77, 147, 198, CInt(255 * _pageFade))
c = New Color(77, 147, 198, CInt(255 * _interfaceFade * _pageFade))
End If
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2 - 258), CInt(Core.windowSize.Height / 2 - 128 + i * 50), 480, 48), c, True)
Next
Canvas.DrawScrollBar(New Vector2(CInt(ScreenSize.Width / 2 + 250), CInt(Core.windowSize.Height / 2 - 128)), Languages.Count, 4, languageMenuIndex(2), New Size(4, 200), False, New Color(77, 147, 198, CInt(255 * _pageFade)), New Color(255, 255, 255, CInt(255 * _pageFade)), True)
Canvas.DrawScrollBar(New Vector2(CInt(ScreenSize.Width / 2 + 250), CInt(Core.windowSize.Height / 2 - 128)), Languages.Count, 4, languageMenuIndex(2), New Size(4, 200), False, New Color(77, 147, 198, CInt(255 * _interfaceFade * _pageFade)), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)), True)
Dim x As Integer = Languages.Count - 1
x = CInt(MathHelper.Clamp(x, 0, 3))
@ -170,10 +172,10 @@
Dim Name As String = LanguageNames(i + languageMenuIndex(2))
If i + languageMenuIndex(2) = languageMenuIndex(0) Then
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 246), CInt(Core.windowSize.Height / 2 - 128 + 8 + 2 + i * 50)), New Color(0, 0, 0, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 248), CInt(Core.windowSize.Height / 2 - 128 + 8 + i * 50)), New Color(255, 255, 255, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 246), CInt(Core.windowSize.Height / 2 - 128 + 8 + 2 + i * 50)), New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 248), CInt(Core.windowSize.Height / 2 - 128 + 8 + i * 50)), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)))
Else
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 248), CInt(Core.windowSize.Height / 2 - 128 + 8 + i * 50)), New Color(0, 0, 0, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2 - 248), CInt(Core.windowSize.Height / 2 - 128 + 8 + i * 50)), New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade)))
End If
Next
@ -269,12 +271,11 @@
#Region "PacksMenu"
Private Sub DrawPacksMenu()
Dim CanvasTexture As Texture2D
For i = 0 To 3
Dim c As Color = New Color(255, 255, 255, 255 * _pageFade)
Dim c As Color = New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade))
If i + packsMenuIndex(2) = packsMenuIndex(0) Then
c = New Color(77, 147, 198, CInt(255 * _pageFade))
c = New Color(77, 147, 198, CInt(255 * _interfaceFade * _pageFade))
If EnabledPackNames.Count > 0 Then
If EnabledPackNames.Contains(PackNames(i + packsMenuIndex(2))) = True Then
@ -285,36 +286,32 @@
End If
End If
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 328, 212 + i * 50, 500, 48), c, True)
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 328, CInt(Core.windowSize.Height / 2 - 128 + i * 50), 500, 48), c, True)
Next
Canvas.DrawScrollBar(New Vector2(CInt(ScreenSize.Width / 2) + 188, 204), PackNames.Count, 4, packsMenuIndex(2), New Size(4, 200), False, New Color(77, 147, 198, CInt(255 * _pageFade)), New Color(255, 255, 255, CInt(255 * _pageFade)), True)
Canvas.DrawScrollBar(New Vector2(CInt(ScreenSize.Width / 2) + 188, CInt(Core.windowSize.Height / 2 - 128)), PackNames.Count, 4, packsMenuIndex(2), New Size(4, 200), False, New Color(77, 147, 198, CInt(255 * _interfaceFade * _pageFade)), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)), True)
Dim x As Integer = PackNames.Count - 1
x = CInt(MathHelper.Clamp(x, 0, 3))
Dim textColor As Color = New Color(0, 0, 0, CInt(255 * _pageFade))
Dim textColor As Color = New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade))
If PackNames.Count > 0 Then
For i = 0 To x
Dim Name As String = PackNames(i + packsMenuIndex(2))
If EnabledPackNames.Contains(Name) = True Then
Name &= " (" & Localization.GetString("pack_menu_enabled") & ")"
textColor = New Color(0, 0, 0, CInt(255 * _pageFade))
textColor = New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade))
End If
If i + packsMenuIndex(2) = packsMenuIndex(0) Then
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2) - 318, 220 + 2 + i * 50), textColor)
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2) - 320, 220 + i * 50), New Color(255, 255, 255, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2) - 320, 220 + i * 50), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)))
Else
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Name, New Vector2(CInt(ScreenSize.Width / 2) - 320, 220 + i * 50), textColor)
End If
Next
End If
CanvasTexture = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
Dim buttonRectangle = New Rectangle(0, 0, 16, 16)
Dim buttonColor = Color.White
End Sub
Private Sub UpdatePacksMenu()
@ -482,12 +479,12 @@
Dim CanvasTexture As Texture2D = TextureManager.GetTexture("GUI\Menus\Menu", New Rectangle(0, 0, 48, 48), "")
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 240 + 4, 196, 480, 64), New Color(77, 147, 198, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_name") & ": " & PInfoName, New Vector2(CInt(ScreenSize.Width / 2) - CInt(FontManager.InGameFont.MeasureString(Localization.GetString("pack_menu_name") & ": " & PInfoName).X / 2) + 2, 212 + 2), New Color(0, 0, 0, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_name") & ": " & PInfoName, New Vector2(CInt(ScreenSize.Width / 2) - CInt(FontManager.InGameFont.MeasureString(Localization.GetString("pack_menu_name") & ": " & PInfoName).X / 2), 212), New Color(255, 255, 255, CInt(255 * _pageFade)))
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 240 + 4, 196, 480, 64), New Color(77, 147, 198, CInt(255 * _interfaceFade * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_name") & ": " & PInfoName, New Vector2(CInt(ScreenSize.Width / 2) - CInt(FontManager.InGameFont.MeasureString(Localization.GetString("pack_menu_name") & ": " & PInfoName).X / 2) + 2, 212 + 2), New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_name") & ": " & PInfoName, New Vector2(CInt(ScreenSize.Width / 2) - CInt(FontManager.InGameFont.MeasureString(Localization.GetString("pack_menu_name") & ": " & PInfoName).X / 2), 212), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)))
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 272 + 4, 272, 544, 196), New Color(255, 255, 255, CInt(255 * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_version") & ": " & PInfoVersion & Environment.NewLine & Localization.GetString("pack_menu_by") & ": " & PInfoAuthor & Environment.NewLine & Localization.GetString("pack_menu_content") & ": " & PInfoContent & Environment.NewLine & Localization.GetString("pack_menu_description") & ": " & Environment.NewLine & PInfoDescription.Replace("<br>", Environment.NewLine), New Vector2(CInt(ScreenSize.Width / 2) - 272 + 16, 280), New Color(0, 0, 0, CInt(255 * _pageFade)))
Canvas.DrawRectangle(New Rectangle(CInt(ScreenSize.Width / 2) - 272 + 4, 272, 544, 196), New Color(255, 255, 255, CInt(255 * _interfaceFade * _pageFade)))
SpriteBatch.DrawInterfaceString(FontManager.InGameFont, Localization.GetString("pack_menu_version") & ": " & PInfoVersion & Environment.NewLine & Localization.GetString("pack_menu_by") & ": " & PInfoAuthor & Environment.NewLine & Localization.GetString("pack_menu_content") & ": " & PInfoContent & Environment.NewLine & Localization.GetString("pack_menu_description") & ": " & Environment.NewLine & PInfoDescription.Replace("<br>", Environment.NewLine), New Vector2(CInt(ScreenSize.Width / 2) - 272 + 16, 280), New Color(0, 0, 0, CInt(255 * _interfaceFade * _pageFade)))
For i = 0 To 1
If i = packInfoIndex Then
@ -710,14 +707,16 @@
End If
If _pageClosing = True Then
If _pageFade >= 0F Then
_pageFade -= 0.07F
If _pageFade <= 0F Then
_pageFade = 0F
_pageClosing = False
_pageOpening = True
ScreenIndex = _nextIndex
InitializeControls()
If PreScreen.Identification = Identifications.MainMenuScreen Then
If _pageFade >= 0F Then
_pageFade -= 0.07F
If _pageFade <= 0F Then
_pageFade = 0F
_pageClosing = False
_pageOpening = True
ScreenIndex = _nextIndex
InitializeControls()
End If
End If
End If
End If
@ -768,7 +767,7 @@
If KeyBoardHandler.KeyPressed(KeyBindings.EscapeKey) Or KeyBoardHandler.KeyPressed(KeyBindings.BackKey1) Or KeyBoardHandler.KeyPressed(KeyBindings.BackKey2) Or MouseHandler.ButtonPressed(MouseHandler.MouseButtons.RightButton) Or ControllerHandler.ButtonPressed(Buttons.B) Then
If _pageClosing = False And _pageOpening = False Then
SoundManager.PlaySound("select")
If ScreenIndex = 0 Then
If ScreenIndex = 0 Or _subMenu <> 0 Then
_closing = True
Else
SwitchToMain()
@ -929,15 +928,12 @@
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 90, Delta_Y + 80), 1, 64, "Game", AddressOf SwitchToGame, 1))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 310, Delta_Y + 80), 1, 64, "Graphics", AddressOf SwitchToGraphics, 2))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530, Delta_Y + 80), 1, 64, "Battle", AddressOf SwitchToBattle, 3))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 90, Delta_Y + 168), 1, 64, "Controls", AddressOf SwitchToControls, 4))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 310, Delta_Y + 168), 1, 64, "Audio", AddressOf SwitchToAudio, 5))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530, Delta_Y + 168), 1, 64, "Language", AddressOf SwitchToLanguage, 6))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 310 - 32, Delta_Y + 256), 2, 64, "Content Packs", AddressOf SwitchToContentPacks, 7))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 90 + 24, Delta_Y + 336), 1, 48, "Apply", AddressOf Apply, 8))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 286 + 24, Delta_Y + 336), 2, 48, "Reset Options", AddressOf Reset, 9))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 336), 1, 48, "Close", AddressOf Close, 10))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 200, Delta_Y + 168), 1, 64, "Controls", AddressOf SwitchToControls, 4))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 420, Delta_Y + 168), 1, 64, "Audio", AddressOf SwitchToAudio, 5))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 90 + 24, Delta_Y + 336), 1, 48, "Apply", AddressOf Apply, 6))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 286 + 24, Delta_Y + 336), 2, 48, "Reset Options", AddressOf Reset, 7))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 336), 1, 48, "Close", AddressOf Close, 8))
Case 1 ' "Game" from the Options menu.
Me.ControlList.Add(New ScrollBar(New Vector2(Delta_X + 100, Delta_Y + 60), 400, "Text Speed", Me.TextSpeed, 1, 3, AddressOf ChangeTextspeed, 1))
If CBool(GameModeManager.GetGameRuleValue("LockDifficulty", "0")) = False Then
@ -987,24 +983,34 @@
Me.ControlList.Add(New ScrollBar(New Vector2(Delta_X + 100, Delta_Y + 60), 400, "Mouse Speed", Me.MouseSpeed, 1, 50, AddressOf ChangeMouseSpeed, d, 1))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 100, Delta_Y + 200), 3, 64, "Reset Key Bindings", AddressOf ResetKeyBindings, 2))
Me.ControlList.Add(New ToggleButton(New Vector2(Delta_X + 100, Delta_Y + 120), 5, 64, "Xbox 360 Gamepad", Me.GamePadEnabled, AddressOf ToggleXBOX360Controller, {"Disabled", "Enabled"}.ToList(), 3))
If PreScreen.Identification = Identifications.MainMenuScreen Then
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf Close, 4))
Else
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf SwitchToMain, 4))
End If
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf SwitchToMain, 4))
Case 5 ' "Audio" from the Options menu.
Me.ControlList.Add(New ScrollBar(New Vector2(Delta_X + 100, Delta_Y + 60), 400, "Music Volume", Me.Music, 0, 100, AddressOf ChangeMusicVolume, 1))
Me.ControlList.Add(New ScrollBar(New Vector2(Delta_X + 100, Delta_Y + 120), 400, "Sound Volume", Me.Sound, 0, 100, AddressOf ChangeSoundVolume, 2))
Me.ControlList.Add(New ToggleButton(New Vector2(Delta_X + 100, Delta_Y + 200), 1, 64, "Muted", CBool(Me.Muted), AddressOf ToggleMute, {"No", "Yes"}.ToList(), 3))
If PreScreen.Identification = Identifications.MainMenuScreen Then
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf Close, 4))
Else
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf SwitchToMain, 4))
End If
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf SwitchToMain, 4))
Case 6 ' "Language" from the Options menu.
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 286 + 24, Delta_Y + 336), 1, 48, "Back", AddressOf LanguageApply, 1))
Case 7 ' "ContentPacks" from the Options menu.
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 56), 2, 48, Localization.GetString("pack_menu_up"), AddressOf ButtonUp, 1))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 112), 2, 48, Localization.GetString("pack_menu_down"), AddressOf ButtonDown, 2))
Me.ControlList.Add(New ToggleButton(New Vector2(Delta_X + 604, Delta_Y + 168), 2, 48, Localization.GetString("pack_menu_enabled"), isSelectedEnabled, AddressOf PackEnabledToggle, {Localization.GetString("global_no"), Localization.GetString("global_yes")}.ToList(), 3))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 222), 2, 48, Localization.GetString("pack_menu_information"), AddressOf SwitchToPackInformation, 4))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 64), 2, 48, Localization.GetString("pack_menu_up"), AddressOf ButtonUp, 1))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 120), 2, 48, Localization.GetString("pack_menu_down"), AddressOf ButtonDown, 2))
Me.ControlList.Add(New ToggleButton(New Vector2(Delta_X + 604, Delta_Y + 176), 2, 48, Localization.GetString("pack_menu_enabled"), isSelectedEnabled, AddressOf PackEnabledToggle, {Localization.GetString("global_no"), Localization.GetString("global_yes")}.ToList(), 3))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 604, Delta_Y + 232), 2, 48, Localization.GetString("pack_menu_information"), AddressOf SwitchToPackInformation, 4))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 90 + 24, Delta_Y + 327), 1, 48, "Apply", AddressOf PacksApply, 5))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 310 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf SwitchToMain, 6))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 310 + 24, Delta_Y + 327), 1, 48, "Back", AddressOf Close, 6))
Case 8 ' "Information" from the ContentPacks menu.
Me.ControlList.Add(New ToggleButton(New Vector2(Delta_X + 90 + 24, Delta_Y + 336), 2, 48, Localization.GetString("pack_menu_enabled"), isSelectedEnabled, AddressOf PackEnabledToggle, {Localization.GetString("global_no"), Localization.GetString("global_yes")}.ToList(), 1))
Me.ControlList.Add(New CommandButton(New Vector2(Delta_X + 530 + 24, Delta_Y + 336), 1, 48, "Back", AddressOf SwitchToContentPacks, 2))
@ -1114,12 +1120,22 @@
Private Sub SwitchToControls()
Me._nextIndex = 4
Me._pageClosing = True
If PreScreen.Identification = Identifications.MainMenuScreen Then
ScreenIndex = _nextIndex
InitializeControls()
Else
Me._pageClosing = True
End If
End Sub
Private Sub SwitchToAudio()
Me._nextIndex = 5
Me._pageClosing = True
If PreScreen.Identification = Identifications.MainMenuScreen Then
ScreenIndex = _nextIndex
InitializeControls()
Else
Me._pageClosing = True
End If
End Sub
Private Sub SwitchToLanguage()
@ -1130,7 +1146,8 @@
languageMenuIndex(1) = 0
languageMenuIndex(2) = 0
Me._nextIndex = 6
Me._pageClosing = True
ScreenIndex = _nextIndex
InitializeControls()
End Sub
Private Sub SwitchToContentPacks()
@ -1141,7 +1158,12 @@
packsMenuIndex(2) = 0
End If
Me._nextIndex = 7
Me._pageClosing = True
If ScreenIndex = 8 Then
Me._pageClosing = True
Else
ScreenIndex = _nextIndex
InitializeControls()
End If
End Sub
Private Sub SwitchToPackInformation()
Me._nextIndex = 8
@ -1274,6 +1296,7 @@
If currentLanguage <> Languages(languageMenuIndex(0)) Then
currentLanguage = Languages(languageMenuIndex(0))
End If
_closing = True
End Sub
#End Region
#End Region