src/emu/crsshair.c
| r2010 | r2011 | |
| 329 | 329 | |
| 330 | 330 | for (player = 0; player < MAX_PLAYERS; player++) |
| 331 | 331 | /* draw if visible and the right screen */ |
| 332 | | if (global.visible[player] && (global.screen[player] == screen)) |
| 332 | if (global.visible[player] && |
| 333 | ((global.screen[player] == screen) || (global.screen[player] == CROSSHAIR_SCREEN_ALL))) |
| 333 | 334 | { |
| 334 | 335 | /* add a quad assuming a 4:3 screen (this is not perfect) */ |
| 335 | 336 | render_screen_add_quad(screen, |
| r2010 | r2011 | |
| 339 | 340 | global.texture[player], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA)); |
| 340 | 341 | } |
| 341 | 342 | } |
| 343 | |
| 344 | |
| 345 | /*------------------------------------------------- |
| 346 | crosshair_set_screen - sets the screen(s) for a |
| 347 | given player's crosshair |
| 348 | -------------------------------------------------*/ |
| 349 | |
| 350 | void crosshair_set_screen(running_machine *machine, int player, const device_config *screen) |
| 351 | { |
| 352 | global.screen[player] = screen; |
| 353 | } |
src/emu/crsshair.h
| r2010 | r2011 | |
| 15 | 15 | #define __CRSSHAIR_H__ |
| 16 | 16 | |
| 17 | 17 | |
| 18 | /*************************************************************************** |
| 19 | CONSTANTS |
| 20 | ***************************************************************************/ |
| 21 | |
| 22 | #define CROSSHAIR_SCREEN_NONE ((const device_config *) 0) |
| 23 | #define CROSSHAIR_SCREEN_ALL ((const device_config *) ~0) |
| 24 | |
| 25 | |
| 26 | |
| 27 | /*************************************************************************** |
| 28 | FUNCTION PROTOTYPES |
| 29 | ***************************************************************************/ |
| 30 | |
| 18 | 31 | /* initializes the crosshair system */ |
| 19 | 32 | void crosshair_init(running_machine *machine); |
| 20 | 33 | |
| r2010 | r2011 | |
| 24 | 37 | /* toggles crosshair visibility */ |
| 25 | 38 | void crosshair_toggle(running_machine *machine); |
| 26 | 39 | |
| 40 | /* sets the screen(s) for a given player's crosshair */ |
| 41 | void crosshair_set_screen(running_machine *machine, int player, const device_config *screen); |
| 27 | 42 | |
| 43 | |
| 44 | |
| 28 | 45 | #endif /* __CRSSHAIR_H__ */ |
src/mess/machine/coco.c
| r2010 | r2011 | |
| 3006 | 3006 | coco3_mmu_update(0, 8); |
| 3007 | 3007 | } |
| 3008 | 3008 | |
| 3009 | | static UINT32 crosshairs_get_screen(int player) |
| 3009 | INPUT_CHANGED( coco_joystick_mode_changed ) |
| 3010 | 3010 | { |
| 3011 | | return readinputportbytag_safe("joystick_mode", 0x00) == 0x40 ? 0x03 : 0x00; |
| 3011 | int is_lightgun = readinputportbytag_safe("joystick_mode", 0x00) == 0x40; |
| 3012 | crosshair_set_screen(machine, 0, is_lightgun ? CROSSHAIR_SCREEN_ALL : CROSSHAIR_SCREEN_NONE); |
| 3012 | 3013 | } |
| 3013 | 3014 | |
| 3014 | 3015 | MACHINE_START( coco3 ) |
| r2010 | r2011 | |
| 3044 | 3045 | state_save_register_global(gime_irq); |
| 3045 | 3046 | state_save_register_global(gime_firq); |
| 3046 | 3047 | state_save_register_func_postload(coco3_state_postload); |
| 3047 | | |
| 3048 | | /* NPW 15-Mar-2008 - FIX THIS */ |
| 3049 | | if (0) |
| 3050 | | crosshairs_get_screen(0); |
| 3051 | | //video_crosshair_set_screenmask_callback(machine, crosshairs_get_screen); |
| 3052 | 3048 | } |
| 3053 | 3049 | |
| 3050 | |
| 3051 | |
| 3054 | 3052 | /*************************************************************************** |
| 3055 | 3053 | OS9 Syscalls for disassembly |
| 3056 | 3054 | ****************************************************************************/ |
src/mess/drivers/coco.c
| r2010 | r2011 | |
| 538 | 538 | |
| 539 | 539 | PORT_START_TAG("joystick_mode") |
| 540 | 540 | PORT_CONFNAME( 0x70, 0x00, "Joystick Type" ) |
| 541 | PORT_CHANGED( coco_joystick_mode_changed, 0 ) |
| 541 | 542 | PORT_CONFSETTING( 0x00, DEF_STR( Normal ) ) |
| 542 | 543 | PORT_CONFSETTING( 0x10, "Hi-Res Interface" ) |
| 543 | 544 | PORT_CONFSETTING( 0x30, "Hi-Res Interface (CoCoMax 3 Style)" ) |