mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
Fix for MT#5620: Crosshair: Selected graphic does not display properly from QMC2
This commit is contained in:
parent
a6810eeb41
commit
dee629429b
@ -154,9 +154,10 @@ static void create_bitmap(running_machine &machine, int player)
|
|||||||
rgb_t color = crosshair_colors[player];
|
rgb_t color = crosshair_colors[player];
|
||||||
|
|
||||||
/* if we have a bitmap and texture for this player, kill it */
|
/* if we have a bitmap and texture for this player, kill it */
|
||||||
if (global.bitmap[player] == NULL)
|
if (global.bitmap[player] == NULL) {
|
||||||
global.bitmap[player] = global_alloc(bitmap_argb32);
|
global.bitmap[player] = global_alloc(bitmap_argb32);
|
||||||
machine.render().texture_free(global.texture[player]);
|
global.texture[player] = machine.render().texture_alloc(render_texture::hq_scale);
|
||||||
|
}
|
||||||
|
|
||||||
emu_file crossfile(machine.options().crosshair_path(), OPEN_FLAG_READ);
|
emu_file crossfile(machine.options().crosshair_path(), OPEN_FLAG_READ);
|
||||||
if (global.name[player][0] != 0)
|
if (global.name[player][0] != 0)
|
||||||
@ -197,8 +198,7 @@ static void create_bitmap(running_machine &machine, int player)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create a texture to reference the bitmap */
|
/* reference the new bitmap */
|
||||||
global.texture[player] = machine.render().texture_alloc(render_texture::hq_scale);
|
|
||||||
global.texture[player]->set_bitmap(*global.bitmap[player], global.bitmap[player]->cliprect(), TEXFORMAT_ARGB32);
|
global.texture[player]->set_bitmap(*global.bitmap[player], global.bitmap[player]->cliprect(), TEXFORMAT_ARGB32);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,8 +303,6 @@ void crosshair_get_user_settings(running_machine &machine, UINT8 player, crossha
|
|||||||
|
|
||||||
void crosshair_set_user_settings(running_machine &machine, UINT8 player, crosshair_user_settings *settings)
|
void crosshair_set_user_settings(running_machine &machine, UINT8 player, crosshair_user_settings *settings)
|
||||||
{
|
{
|
||||||
int changed = FALSE;
|
|
||||||
|
|
||||||
global.auto_time = settings->auto_time;
|
global.auto_time = settings->auto_time;
|
||||||
global.used[player] = settings->used;
|
global.used[player] = settings->used;
|
||||||
global.mode[player] = settings->mode;
|
global.mode[player] = settings->mode;
|
||||||
@ -314,9 +312,9 @@ void crosshair_set_user_settings(running_machine &machine, UINT8 player, crossha
|
|||||||
global.visible[player] = (settings->mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE;
|
global.visible[player] = (settings->mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE;
|
||||||
|
|
||||||
/* update bitmap if name has changed */
|
/* update bitmap if name has changed */
|
||||||
changed = strcmp(settings->name, global.name[player]);
|
int changed = strcmp(settings->name, global.name[player]);
|
||||||
strcpy(global.name[player], settings->name);
|
strcpy(global.name[player], settings->name);
|
||||||
if (changed)
|
if (changed != 0)
|
||||||
create_bitmap(machine, player);
|
create_bitmap(machine, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1931,7 +1931,7 @@ void ui_menu_crosshair::handle()
|
|||||||
{
|
{
|
||||||
crosshair_user_settings settings;
|
crosshair_user_settings settings;
|
||||||
crosshair_item_data *data = (crosshair_item_data *)menu_event->itemref;
|
crosshair_item_data *data = (crosshair_item_data *)menu_event->itemref;
|
||||||
int changed = false;
|
bool changed = false;
|
||||||
//int set_def = false;
|
//int set_def = false;
|
||||||
int newval = data->cur;
|
int newval = data->cur;
|
||||||
|
|
||||||
@ -1985,21 +1985,23 @@ void ui_menu_crosshair::handle()
|
|||||||
/* crosshair graphic name */
|
/* crosshair graphic name */
|
||||||
if (data->type == CROSSHAIR_ITEM_PIC)
|
if (data->type == CROSSHAIR_ITEM_PIC)
|
||||||
{
|
{
|
||||||
if (menu_event->iptkey == IPT_UI_SELECT)
|
switch (menu_event->iptkey)
|
||||||
{
|
{
|
||||||
/* clear the name string to reset to default crosshair */
|
case IPT_UI_SELECT:
|
||||||
settings.name[0] = 0;
|
/* clear the name string to reset to default crosshair */
|
||||||
changed = true;
|
settings.name[0] = 0;
|
||||||
}
|
changed = true;
|
||||||
else if (menu_event->iptkey == IPT_UI_LEFT)
|
break;
|
||||||
{
|
|
||||||
strcpy(settings.name, data->last_name);
|
case IPT_UI_LEFT:
|
||||||
changed = true;
|
strcpy(settings.name, data->last_name);
|
||||||
}
|
changed = true;
|
||||||
else if (menu_event->iptkey == IPT_UI_RIGHT)
|
break;
|
||||||
{
|
|
||||||
strcpy(settings.name, data->next_name);
|
case IPT_UI_RIGHT:
|
||||||
changed = true;
|
strcpy(settings.name, data->next_name);
|
||||||
|
changed = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user