Page 1 of 1
Hiding & Showing the Quick Menu
Posted: Fri Apr 05, 2019 2:03 pm
by sasquatchii
There are certain parts in my game where I want to hide and show the quick menu. I've tried
Code: Select all
hide screen quick_menu
show screen quick_menu
But it's not working. What is the best way to hide and show the quick menu in my game?
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 3:06 am
by Imperf3kt
The quick menu is shown via a variable
Code: Select all
#Hide the quick menu
$ quick_menu = False
#Show the quick menu
$ quick_menu = True
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 2:23 pm
by sasquatchii
Imperf3kt wrote: ↑Sat Apr 06, 2019 3:06 am
The quick menu is shown via a variable
Code: Select all
#Hide the quick menu
$ quick_menu = False
#Show the quick menu
$ quick_menu = True
Thanks, Imperf3kt! I tried implementing this in my game, but it still shows up unfortunately
Here's the script of my game:
Code: Select all
label start:
stop music fadeout 5.6
$ pcname = "Chelsea"
$ quick_menu = False
window hide
centered "Three years ago, you and your parents were in a terrible car accident while on vacation. Miraculously, you survived - but your parents were not so lucky." with fade
centered "With no other relatives to speak of, you spent a year getting your life back together." with fade
And here's the quick menu screen code itself:
Code: Select all
screen quick_menu():
imagemap:
ground "gui/quick-menu-inactive.png"
hover "gui/quick-menu-active.png"
selected_idle "gui/quick-menu-active.png"
hotspot (552, 720, 148, 59) action Rollback()
hotspot (711, 720, 177, 59) action ShowMenu('history')
hotspot (899, 720, 146, 59) action Skip()
hotspot (1057, 720, 150, 59) action Preference("auto-forward", "toggle")
hotspot (1217, 720, 160, 59) action ShowMenu('load')
hotspot (1388, 720, 160, 59) action ShowMenu('save')
hotspot (1558, 720, 174, 59) action ShowMenu('preferences')
## This code ensures that the quick_menu screen is displayed in-game, whenever
## the player has not explicitly hidden the interface.
init python:
config.overlay_screens.append("quick_menu")
default quick_menu = False
style quick_button is default
style quick_button_text is button_text
style quick_button:
properties gui.button_properties("quick_button")
style quick_button_text:
properties gui.button_text_properties("quick_button")
I think it might have something to do with this bit, maybe?:
Code: Select all
init python:
config.overlay_screens.append("quick_menu")
I got rid of that bit, but the entire screen was gone/wouldn't show up
So I'm pretty stumped!
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 3:13 pm
by Imperf3kt
That's unusual. Not least to mention you have the quick menu set to False by default.
Im not sure why this would happen.
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 3:36 pm
by sasquatchii
I thought so too, Imperf3kt!! I've definitely hidden quick menus & other screens before and have never encountered this kind of issue. I've tried a couple of other things but nothing seems to be working.
I will say that this is definitely a more complex game and has lots of code I've not dealt with before (like a wardrobe screen, a cellphone text type of menu, stats, a calendar, etc) - so it's possible that has something to do with it?
The file where the screens are located is the screens.rpy folder and the script folder where I'm trying to hide the quick menu screen is called ASEscript.rpy!
I should also add that the game is adult/NSFW! Just a warning.
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 5:24 pm
by XxrenxX
I'm not sure if this will change anything but I know the base NVL code (or mine at least) uses the quick menu. Could this possibly interfere with the variable?
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 5:28 pm
by sasquatchii
XxrenxX wrote: ↑Sat Apr 06, 2019 5:24 pm
I'm not sure if this will change anything but I know the base NVL code (or mine at least) uses the quick menu. Could this possibly interfere with the variable?
That was good thinking!! I checked the NVL screen and it doesn't seem to be using the quick menu. It shows up throughout the game even when I hide the textbox
Here is the code for my NVL screen though, it's possible I missed something but I don't think that's the case!
Code: Select all
## NVL screen ##################################################################
##
## This screen is used for NVL-mode dialogue and menus.
##
## https://www.renpy.org/doc/html/screen_special.html#nvl
screen nvl(dialogue, items=None):
window:
style "nvl_window"
has vbox:
spacing gui.nvl_spacing
## Displays dialogue in either a vpgrid or the vbox.
if gui.nvl_height:
vpgrid:
cols 1
yinitial 1.0
use nvl_dialogue(dialogue)
else:
use nvl_dialogue(dialogue)
## Displays the menu, if given. The menu may be displayed incorrectly if
## config.narrator_menu is set to True, as it is above.
for i in items:
textbutton i.caption:
action i.action
style "nvl_button"
add SideImage() xalign 0.0 yalign 1.0
screen nvl_dialogue(dialogue):
for d in dialogue:
window:
id d.window_id
fixed:
yfit gui.nvl_height is None
if d.who is not None:
text d.who:
id d.who_id
text d.what:
id d.what_id
## This controls the maximum number of NVL-mode entries that can be displayed at
## once.
define config.nvl_list_length = gui.nvl_list_length
style nvl_window is default
style nvl_entry is default
style nvl_label is say_label
style nvl_dialogue is say_dialogue
style nvl_button is button
style nvl_button_text is button_text
style nvl_window:
xfill True
yfill True
background "gui/nvl.png"
padding gui.nvl_borders.padding
style nvl_entry:
xfill True
ysize gui.nvl_height
style nvl_label:
xpos gui.nvl_name_xpos
xanchor gui.nvl_name_xalign
ypos gui.nvl_name_ypos
yanchor 0.0
xsize gui.nvl_name_width
min_width gui.nvl_name_width
text_align gui.nvl_name_xalign
style nvl_dialogue:
xpos gui.nvl_text_xpos
xanchor gui.nvl_text_xalign
ypos gui.nvl_text_ypos
xsize gui.nvl_text_width
min_width gui.nvl_text_width
text_align gui.nvl_text_xalign
layout ("subtitle" if gui.nvl_text_xalign else "tex")
style nvl_thought:
xpos gui.nvl_thought_xpos
xanchor gui.nvl_thought_xalign
ypos gui.nvl_thought_ypos
xsize gui.nvl_thought_width
min_width gui.nvl_thought_width
text_align gui.nvl_thought_xalign
layout ("subtitle" if gui.nvl_text_xalign else "tex")
style nvl_button:
properties gui.button_properties("nvl_button")
xpos gui.nvl_button_xpos
xanchor gui.nvl_button_xalign
style nvl_button_text:
properties gui.button_text_properties("nvl_button")
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 7:12 pm
by XxrenxX
Nothing seems off, it was worth a shot. I wonder if there's a way to hide the imagemap instead of the whole screen. Kind of like a cheat?
Something like this but I'm not sure how to go about editing or implementing it. Note that article is really old so It would probably need to be updated.
Just trying to think of ideas. Probably won't work but can be hopeful x.x
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 8:23 pm
by Matalla
I downloaded it and I see two problems that can actually be summarized in one: what you (and me) are watching, is not the quick menu. It's just part of the textbox.
First, edit your textbox image and delete that part.
Second, the inactive image on your imagemap is fully transparent. Substitute it for the image you want when the buttons are not hovered.
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 9:07 pm
by sasquatchii
Matalla wrote: ↑Sat Apr 06, 2019 8:23 pm
I downloaded it and I see two problems that can actually be summarized in one: what you (and me) are watching, is not the quick menu. It's just part of the textbox.
First, edit your textbox image and delete that part.
Second, the inactive image on your imagemap is fully transparent. Substitute it for the image you want when the buttons are not hovered.
I believe what we're seeing
is part of the quick menu.... If what we were seeing was the textbox, wouldn't we be seeing the whole textbox?
The reason I ended up doing it the way it is is because I wanted the textbox + quick menu to look like they were seamlessly together/one unit.
I'm able to hide the textbox without any problems. It is the quick menu that stubbornly shows up. I don't really understand your advice here - how would editing the image map hide the quick menu?
I've tried what you are suggesting (before posting here) and I still saw the quick menu screen and was unable to hide it. I don't think the issue here is how the menus & screens have been done. Just that I am unable to successfully hide the quick menu.
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 9:36 pm
by Matalla
Hiding the quick menu is the next step, before you must know if the quick menu is indeed there. If the image of the textbox includes the image of the buttons, you can't really hide them. You could quite posible have been hiding the quick menu all the time, but you would still see the buttons in the textbox.
I just did a quick edit to your images and throw some "$ quick_menu = True" and "$ quick_menu = False" here and there and it works, believe me. Did you delete or coment these lines? Do it and try again.
Code: Select all
init python:
config.overlay_screens.append("quick_menu")
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 9:55 pm
by sasquatchii
Matalla wrote: ↑Sat Apr 06, 2019 9:36 pm
Hiding the quick menu is the next step, before you must know if the quick menu is indeed there. If the image of the textbox includes the image of the buttons, you can't really hide them. You could quite posible have been hiding the quick menu all the time, but you would still see the buttons in the textbox.
I just did a quick edit to your images and throw some "$ quick_menu = True" and "$ quick_menu = False" here and there and it works, believe me. Did you delete or coment these lines? Do it and try again.
Code: Select all
init python:
config.overlay_screens.append("quick_menu")
I'm just really confused and don't understand what I need to do. Any chance you could zip up & share the game file folder of my game that you tweaked so I could take a look to better understand how you edited the images & got it to work?
Re: Hiding & Showing the Quick Menu
Posted: Sat Apr 06, 2019 11:30 pm
by Matalla
Put this images in the gui folder (I just did a quick cut in the textbox, you'll have to do it properly, it's just for testing):
Use this code for the quick menu screen:
Code: Select all
screen quick_menu():
zorder 100
imagemap:
ground "gui/quick-menu-inactive.png"
hover "gui/quick-menu-active.png"
selected_idle "gui/quick-menu-selected.png"
hotspot (552, 720, 148, 59) action Rollback()
hotspot (711, 720, 177, 59) action ShowMenu('history')
hotspot (899, 720, 146, 59) action Skip()
hotspot (1057, 720, 150, 59) action Preference("auto-forward", "toggle")
hotspot (1217, 720, 160, 59) action ShowMenu('load')
hotspot (1388, 720, 160, 59) action ShowMenu('save')
hotspot (1558, 720, 174, 59) action ShowMenu('preferences')
## This code ensures that the quick_menu screen is displayed in-game, whenever
## the player has not explicitly hidden the interface.
#init python:
# config.overlay_screens.append("quick_menu")
default quick_menu = False
I found that there are indeed some weird things happening when changing the quick_menu variable, sometimes it changes, sometimes not. Using show screen quick_menu (or hide) seems to work, however. I did the tests here (after chosing to play the intro):
Code: Select all
scene bg Home with fade
show screen quick_menu
"You just finished putting the rest of your stuff away, and have decided to relax on the nice, warm, and comfy couch."
show Relaxed Happy at right with moveinright
hide screen quick_menu
pcname "*Yawn*"
show Relaxed Blank at right
pcname "Ugh, I can't believe I start school tomorrow..."
show screen quick_menu
"Your phone vibrates."
Judging by your design, the best solution would be to show it only when the say screen is present, which can be done with this code in the say screen (just below the side image code, same indentation would work). I think you should also change the default state of the quick menu to true.
Code: Select all
# Use the quick menu.
if say:
use quick_menu
The problem is the quick menu shows when you use the centered character (like in the splashscreen), and apparently can't be hidden even with the hide screen thing. If you change that for text images or some other mehod, I think it would work fine.