From 6a7c3d158975fdab961813cae1cd113d321414aa Mon Sep 17 00:00:00 2001 From: Nathan Woods Date: Mon, 17 Mar 2008 12:47:22 +0000 Subject: [PATCH] Added a crosshair_set_screen() to allow drivers to control which screen(s) on which crosshairs are displayed. --- src/emu/crsshair.c | 14 +++++++++++++- src/emu/crsshair.h | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/emu/crsshair.c b/src/emu/crsshair.c index 298db143a70..da6d084abee 100644 --- a/src/emu/crsshair.c +++ b/src/emu/crsshair.c @@ -332,7 +332,8 @@ void crosshair_render(const device_config *screen) for (player = 0; player < MAX_PLAYERS; player++) /* draw if visible and the right screen */ - if (global.visible[player] && (global.screen[player] == screen)) + if (global.visible[player] && + ((global.screen[player] == screen) || (global.screen[player] == CROSSHAIR_SCREEN_ALL))) { /* add a quad assuming a 4:3 screen (this is not perfect) */ render_screen_add_quad(screen, @@ -342,3 +343,14 @@ void crosshair_render(const device_config *screen) global.texture[player], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA)); } } + + +/*------------------------------------------------- + crosshair_set_screen - sets the screen(s) for a + given player's crosshair +-------------------------------------------------*/ + +void crosshair_set_screen(running_machine *machine, int player, const device_config *screen) +{ + global.screen[player] = screen; +} diff --git a/src/emu/crsshair.h b/src/emu/crsshair.h index 48418ef2e2f..691784546b1 100644 --- a/src/emu/crsshair.h +++ b/src/emu/crsshair.h @@ -15,6 +15,19 @@ #define __CRSSHAIR_H__ +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define CROSSHAIR_SCREEN_NONE ((const device_config *) 0) +#define CROSSHAIR_SCREEN_ALL ((const device_config *) ~0) + + + +/*************************************************************************** + FUNCTION PROTOTYPES +***************************************************************************/ + /* initializes the crosshair system */ void crosshair_init(running_machine *machine); @@ -24,5 +37,9 @@ void crosshair_render(const device_config *screen); /* toggles crosshair visibility */ void crosshair_toggle(running_machine *machine); +/* sets the screen(s) for a given player's crosshair */ +void crosshair_set_screen(running_machine *machine, int player, const device_config *screen); + + #endif /* __CRSSHAIR_H__ */