Attract-Mode Support Forum
Attract-Mode Support => Scripting => Topic started by: mahuti on March 07, 2017, 10:08:10 AM
-
Is it the case that if you use a layout in 2 different displays that the layout options saved in one display carry over into the other display? That's what I'm seeing, and I did not assume that was the case when I was developing my current theme.
What I assumed was when I went to
nintendo-nes -> display-edit -> layout-options and changed the options those options would not also save for
genesis -> display-edit -> layout-options
When I change one display's layout options, it's changing the other displays as well. Is this a feature? Or flaw? Poor coding? Any thoughts?
-
I think it is a default behavior, since you are changing the same file even though it is being used in different emulators. If you want a any combination for each emulator it is best to copy it (the layout.nut) and put it in another folder with another name and then change the settings
-
Sigh. Lame. Sigh
Thanks for confirming hah hah. Sigh.... :'(
-
Well if you have some coding skills, you could do this
switch ( fe.list.name )
{
case "Atari Lynx":
logo = fe.add_image( "atarilynx.png", 10, 22, fe.layout.width / 5, height / 5);
break;
.
.
.
case "Bandai Wonderswan Color": <<<--- try to match you emulator alias
etc,etc,etc
and in that way you could use the same layout but with another behavior for each emulator
-
That's what I ended up doing. Something like that anyway. The trick was that I had to figure out how to reload when switching to another display. Without doing a reload you end up with the same backgrounds and variables spread across all uses.
Still looking for a little more flexibility, but I'm getting close.
-
Im trying to do the same, still untested but i thing you need to add
fe.add_transition_callback( this, "reload_settings" );
function reload_settings( ttype, var, ttime )
{
switch ( ttype )
{
case Transition.StartLayout:
case Transition.FromGame:
// your code goes here
-
The following was the only thing that could get a full reload that I found without also putting the reload in an infinite loop.
local console = fe.list.name;
fe.add_transition_callback(this, "on_transition");
function on_transition(ttype, var, ttime) {
local last_console = console;
switch( ttype)
{
case Transition.ToNewList:
console = fe.list.name;
if (last_console != console)
{
fe.signal("reload");
}
break;
default:
console = fe.list.name;
}
return false;
}