summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2014-10-15 07:10:54 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2014-10-15 07:10:54 +0000
commita4dd32afb6cbfaae0e452c90486060682ab1c31c (patch)
tree2924ad38d4b5bd277091b0df42c00d0a9bd28f7f
parent35dee95edf34c15f2b88de38136bdb59b98d45e4 (diff)
Better fix for init order on software item load (nw)
-rw-r--r--src/emu/ui/imgcntrl.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/emu/ui/imgcntrl.c b/src/emu/ui/imgcntrl.c
index 0c50f1adb27..09848dcedc3 100644
--- a/src/emu/ui/imgcntrl.c
+++ b/src/emu/ui/imgcntrl.c
@@ -132,7 +132,6 @@ void ui_menu_control_device_image::test_create(bool &can_create, bool &need_conf
void ui_menu_control_device_image::load_software_part()
{
astring temp_name(sld->list_name(), ":", swi->shortname(), ":", swp->name());
- image->set_init_phase();
hook_load(temp_name, true);
}
@@ -143,6 +142,7 @@ void ui_menu_control_device_image::load_software_part()
void ui_menu_control_device_image::hook_load(astring name, bool softlist)
{
+ if (image->is_reset_on_load()) image->set_init_phase();
image->load(name);
ui_menu::stack_pop(machine());
}
@@ -205,15 +205,15 @@ void ui_menu_control_device_image::handle()
case SELECT_PARTLIST:
swi = sld->find(software_info_name);
if (!swi)
- state = START_SOFTLIST;
- else if(swi->has_multiple_parts(image->image_interface()))
+ state = START_SOFTLIST;
+ else if(swi->has_multiple_parts(image->image_interface()))
{
submenu_result = -1;
swp = 0;
ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_software_parts(machine(), container, swi, image->image_interface(), &swp, false, &submenu_result)));
state = SELECT_ONE_PART;
- }
- else
+ }
+ else
{
swp = swi->first_part();
load_software_part();
@@ -256,7 +256,7 @@ void ui_menu_control_device_image::handle()
state = START_SOFTLIST;
handle();
break;
-
+
case -1: // return to system
ui_menu::stack_pop(machine());
break;