Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better pause menu: #192

Open
wants to merge 10 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified GFX/menu/pausemenu.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
174 changes: 93 additions & 81 deletions Main.bb
Original file line number Diff line number Diff line change
Expand Up @@ -3822,11 +3822,11 @@ Function DrawEnding()
x = x+width/2
y = y+height-100*MenuScale

If DrawButton(x-145*MenuScale,y-200*MenuScale,390*MenuScale,60*MenuScale,"ACHIEVEMENTS", True) Then
If DrawButton(x-170*MenuScale,y-200*MenuScale,430*MenuScale,60*MenuScale,"ACHIEVEMENTS", True) Then
AchievementsMenu = 1
EndIf

; If DrawButton(x-145*MenuScale,y-100*MenuScale,390*MenuScale,60*MenuScale,"MAIN MENU", True) Then
; If DrawButton(x-170*MenuScale,y-100*MenuScale,430*MenuScale,60*MenuScale,"MAIN MENU", True) Then
; NullGame()
; StopStream_Strict(MusicCHN)
; ;Music(21) = LoadSound_Strict("SFX\Ending\MenuBreath.ogg")
Expand All @@ -3838,7 +3838,7 @@ Function DrawEnding()
; FlushKeys()
; EndIf

If DrawButton(x-145*MenuScale,y-100*MenuScale,390*MenuScale,60*MenuScale,"MAIN MENU", True)
If DrawButton(x-170*MenuScale,y-100*MenuScale,430*MenuScale,60*MenuScale,"MAIN MENU", True)
ShouldPlay = 24
NowPlaying = ShouldPlay
For i=0 To 9
Expand Down Expand Up @@ -7224,9 +7224,18 @@ Function DrawMenu()
AASetFont Font1
AAText x, y, "Difficulty: "+SelectedDifficulty\name
AAText x, y+20*MenuScale, "Save: "+CurrSave
AAText x, y+40*MenuScale, "Map seed: "+RandomSeed
If SelectedMap = "" Then
TempStr$ = "Map seed: "+RandomSeed
Else
If Len(SelectedMap) > 15 Then
TempStr$ = "Selected map: "+Left(SelectedMap,14)+"..."
Else
TempStr$ = "Selected map: "+SelectedMap
EndIf
EndIf
AAText x, y+40*MenuScale,TempStr$
ElseIf AchievementsMenu <= 0 And OptionsMenu > 0 And QuitMSG <= 0 And KillTimer >= 0
If DrawButton(x + 101 * MenuScale, y + 390 * MenuScale, 230 * MenuScale, 60 * MenuScale, "Back") Then
If DrawButton(x + 101 * MenuScale, y + 430 * MenuScale, 230 * MenuScale, 60 * MenuScale, "Back") Then
AchievementsMenu = 0
OptionsMenu = 0
QuitMSG = 0
Expand All @@ -7239,19 +7248,19 @@ Function DrawMenu()

Color 0,255,0
If OptionsMenu = 1
Rect(x-10*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
Rect(x-5*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
ElseIf OptionsMenu = 2
Rect(x+100*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
Rect(x+105*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
ElseIf OptionsMenu = 3
Rect(x+210*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
Rect(x+215*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
ElseIf OptionsMenu = 4
Rect(x+320*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
Rect(x+325*MenuScale,y-5*MenuScale,110*MenuScale,40*MenuScale,True)
EndIf

If DrawButton(x-5*MenuScale,y,100*MenuScale,30*MenuScale,"GRAPHICS",False) Then OptionsMenu = 1
If DrawButton(x+105*MenuScale,y,100*MenuScale,30*MenuScale,"AUDIO",False) Then OptionsMenu = 2
If DrawButton(x+215*MenuScale,y,100*MenuScale,30*MenuScale,"CONTROLS",False) Then OptionsMenu = 3
If DrawButton(x+325*MenuScale,y,100*MenuScale,30*MenuScale,"ADVANCED",False) Then OptionsMenu = 4
If DrawButton(x,y,100*MenuScale,30*MenuScale,"GRAPHICS",False) Then OptionsMenu = 1
If DrawButton(x+110*MenuScale,y,100*MenuScale,30*MenuScale,"AUDIO",False) Then OptionsMenu = 2
If DrawButton(x+220*MenuScale,y,100*MenuScale,30*MenuScale,"CONTROLS",False) Then OptionsMenu = 3
If DrawButton(x+330*MenuScale,y,100*MenuScale,30*MenuScale,"ADVANCED",False) Then OptionsMenu = 4

Local tx# = (GraphicWidth/2)+(width/2)
Local ty# = y
Expand Down Expand Up @@ -7530,7 +7539,7 @@ Function DrawMenu()
DrawOptionsTooltip(tx,ty,tw,th,"consoleerror")
EndIf

y = y + 50*MenuScale
y = y + 30*MenuScale

Color 255,255,255
AAText(x, y, "Achievement popups:")
Expand All @@ -7539,7 +7548,7 @@ Function DrawMenu()
DrawOptionsTooltip(tx,ty,tw,th,"achpopup")
EndIf

y = y + 50*MenuScale
y = y + 30*MenuScale

Color 255,255,255
AAText(x, y, "Show FPS:")
Expand Down Expand Up @@ -7610,15 +7619,15 @@ Function DrawMenu()
;[End Block]
End Select
ElseIf AchievementsMenu <= 0 And OptionsMenu <= 0 And QuitMSG > 0 And KillTimer >= 0
Local QuitButton% = 60
Local QuitButton% = 85
If SelectedDifficulty\saveType = SAVEONQUIT Or SelectedDifficulty\saveType = SAVEANYWHERE Then
Local RN$ = PlayerRoom\RoomTemplate\Name$
Local AbleToSave% = True
If RN$ = "173" Or RN$ = "exit1" Or RN$ = "gatea" Then AbleToSave = False
If (Not CanSave) Then AbleToSave = False
If AbleToSave
QuitButton = 140
If DrawButton(x, y + 60*MenuScale, 390*MenuScale, 60*MenuScale, "Save & Quit") Then
QuitButton = 160
If DrawButton(x, y + 85*MenuScale, 430*MenuScale, 60*MenuScale, "SAVE & QUIT") Then
DropSpeed = 0
SaveGame(SavePath + CurrSave + "\")
NullGame()
Expand All @@ -7631,7 +7640,7 @@ Function DrawMenu()
EndIf
EndIf

If DrawButton(x, y + QuitButton*MenuScale, 390*MenuScale, 60*MenuScale, "Quit") Then
If DrawButton(x, y + QuitButton*MenuScale, 430*MenuScale, 60*MenuScale, "QUIT") Then
NullGame()
MenuOpen = False
MainMenuOpen = True
Expand All @@ -7640,14 +7649,14 @@ Function DrawMenu()
FlushKeys()
EndIf

If DrawButton(x+101*MenuScale, y + 344*MenuScale, 230*MenuScale, 60*MenuScale, "Back") Then
If DrawButton(x+101*MenuScale, y + 385*MenuScale, 230*MenuScale, 60*MenuScale, "BACK") Then
AchievementsMenu = 0
OptionsMenu = 0
QuitMSG = 0
MouseHit1 = False
EndIf
Else
If DrawButton(x+101*MenuScale, y + 344*MenuScale, 230*MenuScale, 60*MenuScale, "Back") Then
If DrawButton(x+101*MenuScale, y + 385*MenuScale, 230*MenuScale, 60*MenuScale, "BACK") Then
AchievementsMenu = 0
OptionsMenu = 0
QuitMSG = 0
Expand All @@ -7657,12 +7666,12 @@ Function DrawMenu()
If AchievementsMenu>0 Then
;DebugLog AchievementsMenu
If AchievementsMenu <= Floor(Float(MAXACHIEVEMENTS-1)/12.0) Then
If DrawButton(x+341*MenuScale, y + 344*MenuScale, 50*MenuScale, 60*MenuScale, ">") Then
If DrawButton(x+341*MenuScale, y + 385*MenuScale, 50*MenuScale, 60*MenuScale, ">") Then
AchievementsMenu = AchievementsMenu+1
EndIf
EndIf
If AchievementsMenu > 1 Then
If DrawButton(x+41*MenuScale, y + 344*MenuScale, 50*MenuScale, 60*MenuScale, "<") Then
If DrawButton(x+41*MenuScale, y + 385*MenuScale, 50*MenuScale, 60*MenuScale, "<") Then
AchievementsMenu = AchievementsMenu-1
EndIf
EndIf
Expand All @@ -7689,14 +7698,14 @@ Function DrawMenu()
EndIf
EndIf

y = y+10
y = y+10*MenuScale

If AchievementsMenu<=0 And OptionsMenu<=0 And QuitMSG<=0 Then
If KillTimer >= 0 Then

y = y+ 72*MenuScale
y = y+ 75*MenuScale

If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Resume", True, True) Then
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "RESUME", True, True) Then
MenuOpen = False
ResumeSounds()
MouseXSpeed() : MouseYSpeed() : MouseZSpeed() : mouse_x_speed_1#=0.0 : mouse_y_speed_1#=0.0
Expand All @@ -7705,7 +7714,7 @@ Function DrawMenu()
y = y + 75*MenuScale
If (Not SelectedDifficulty\permaDeath) Then
If GameSaved Then
If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Load Game") Then
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "LOAD GAME") Then
DrawLoading(0)

MenuOpen = False
Expand Down Expand Up @@ -7746,85 +7755,88 @@ Function DrawMenu()
ResetInput()
EndIf
Else
DrawFrame(x,y,390*MenuScale, 60*MenuScale)
DrawFrame(x,y,430*MenuScale, 60*MenuScale)
Color (100, 100, 100)
AASetFont Font2
AAText(x + (390*MenuScale) / 2, y + (60*MenuScale) / 2, "Load Game", True, True)
AAText(x + (430*MenuScale) / 2, y + (60*MenuScale) / 2, "LOAD GAME", True, True)
EndIf
y = y + 75*MenuScale
EndIf
EndIf

If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Achievements") Then AchievementsMenu = 1
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "ACHIEVEMENTS") Then AchievementsMenu = 1
y = y + 75*MenuScale
If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Options") Then OptionsMenu = 1
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "OPTIONS") Then OptionsMenu = 1
y = y + 75*MenuScale
Else
y = y+104*MenuScale
If GameSaved And (Not SelectedDifficulty\permaDeath) Then
If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Load Game") Then
DrawLoading(0)

MenuOpen = False
LoadGameQuick(SavePath + CurrSave + "\")

MoveMouse viewport_center_x,viewport_center_y
AASetFont Font1
HidePointer ()

FlushKeys()
FlushMouse()
Playable=True

UpdateRooms()

For r.Rooms = Each Rooms
x = Abs(EntityX(Collider) - EntityX(r\obj))
z = Abs(EntityZ(Collider) - EntityZ(r\obj))
y = y+75*MenuScale
If (Not SelectedDifficulty\permaDeath) Then
If GameSaved Then
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "LOAD GAME") Then
DrawLoading(0)

If x < 12.0 And z < 12.0 Then
MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)) = Max(MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)), 1)
If x < 4.0 And z < 4.0 Then
If Abs(EntityY(Collider) - EntityY(r\obj)) < 1.5 Then PlayerRoom = r
MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)) = 1
EndIf
End If
Next

DrawLoading(100)

DropSpeed=0

UpdateWorld 0.0

PrevTime = MilliSecs()
FPSfactor = 0

ResetInput()
MenuOpen = False
LoadGameQuick(SavePath + CurrSave + "\")

MoveMouse viewport_center_x,viewport_center_y
AASetFont Font1
HidePointer ()

FlushKeys()
FlushMouse()
Playable=True

UpdateRooms()

For r.Rooms = Each Rooms
x = Abs(EntityX(Collider) - EntityX(r\obj))
z = Abs(EntityZ(Collider) - EntityZ(r\obj))

If x < 12.0 And z < 12.0 Then
MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)) = Max(MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)), 1)
If x < 4.0 And z < 4.0 Then
If Abs(EntityY(Collider) - EntityY(r\obj)) < 1.5 Then PlayerRoom = r
MapFound(Floor(EntityX(r\obj) / 8.0), Floor(EntityZ(r\obj) / 8.0)) = 1
EndIf
End If
Next

DrawLoading(100)

DropSpeed=0

UpdateWorld 0.0

PrevTime = MilliSecs()
FPSfactor = 0

ResetInput()
EndIf
Else
DrawFrame(x,y,430*MenuScale, 60*MenuScale)
Color (100, 100, 100)
AASetFont Font2
AAText(x + (430*MenuScale) / 2, y + (60*MenuScale) / 2, "LOAD GAME", True, True)
EndIf
Else
DrawButton(x, y, 390*MenuScale, 60*MenuScale, "")
Color 50,50,50
AAText(x + 185*MenuScale, y + 30*MenuScale, "Load Game", True, True)
y = y + 75*MenuScale
EndIf
If DrawButton(x, y + 80*MenuScale, 390*MenuScale, 60*MenuScale, "Quit to Menu") Then
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "QUIT TO MENU") Then
NullGame()
MenuOpen = False
MainMenuOpen = True
MainMenuTab = 0
CurrSave = ""
FlushKeys()
EndIf
y= y + 80*MenuScale
EndIf

If KillTimer >= 0 And (Not MainMenuOpen)
If DrawButton(x, y, 390*MenuScale, 60*MenuScale, "Quit") Then
If DrawButton(x, y, 430*MenuScale, 60*MenuScale, "QUIT") Then
QuitMSG = 1
EndIf
EndIf

AASetFont Font1
If KillTimer < 0 Then RowText(DeathMSG$, x, y + 80*MenuScale, 390*MenuScale, 600*MenuScale)
If KillTimer < 0 Then RowText(DeathMSG$, x, y + 75*MenuScale, 430*MenuScale, 600*MenuScale)
EndIf

If Fullscreen Then DrawImage CursorIMG, ScaledMouseX(),ScaledMouseY()
Expand Down Expand Up @@ -12121,6 +12133,6 @@ End Function


;~IDEal Editor Parameters:
;~F#39#D8#DCD#162D#242C#2B2A
;~F#39#D8
;~B#11E0#145E#1C07
;~C#Blitz3D