Previous 15994 Revisions Next

r2011 Monday 17th March, 2008 at 12:40:50 UTC by Nathan Woods
Readded ability to control crosshair screens, and fixed CoCo code that relied on
this ability.
[src/emu]crsshair.c crsshair.h
[src/mess/drivers]coco.c
[src/mess/includes]coco.h
[src/mess/machine]coco.c

src/emu/crsshair.c
r2010r2011
329329
330330   for (player = 0; player < MAX_PLAYERS; player++)
331331      /* 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)))
333334      {
334335         /* add a quad assuming a 4:3 screen (this is not perfect) */
335336         render_screen_add_quad(screen,
r2010r2011
339340                  global.texture[player], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
340341      }
341342}
343
344
345/*-------------------------------------------------
346    crosshair_set_screen - sets the screen(s) for a
347    given player's crosshair
348-------------------------------------------------*/
349
350void crosshair_set_screen(running_machine *machine, int player, const device_config *screen)
351{
352   global.screen[player] = screen;
353}
src/emu/crsshair.h
r2010r2011
1515#define __CRSSHAIR_H__
1616
1717
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
1831/* initializes the crosshair system */
1932void crosshair_init(running_machine *machine);
2033
r2010r2011
2437/* toggles crosshair visibility */
2538void crosshair_toggle(running_machine *machine);
2639
40/* sets the screen(s) for a given player's crosshair */
41void crosshair_set_screen(running_machine *machine, int player, const device_config *screen);
2742
43
44
2845#endif   /* __CRSSHAIR_H__ */
src/mess/includes/coco.h
r2010r2011
5656DEVICE_UNLOAD(coco3_rom);
5757
5858INPUT_CHANGED(coco_keyboard_changed);
59INPUT_CHANGED(coco_joystick_mode_changed);
5960
6061SNAPSHOT_LOAD ( coco_pak );
6162SNAPSHOT_LOAD ( coco3_pak );
src/mess/machine/coco.c
r2010r2011
30063006   coco3_mmu_update(0, 8);
30073007}
30083008
3009static UINT32 crosshairs_get_screen(int player)
3009INPUT_CHANGED( coco_joystick_mode_changed )
30103010{
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);
30123013}
30133014
30143015MACHINE_START( coco3 )
r2010r2011
30443045   state_save_register_global(gime_irq);
30453046   state_save_register_global(gime_firq);
30463047   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);
30523048}
30533049
3050
3051
30543052/***************************************************************************
30553053  OS9 Syscalls for disassembly
30563054****************************************************************************/
src/mess/drivers/coco.c
r2010r2011
538538
539539   PORT_START_TAG("joystick_mode")
540540   PORT_CONFNAME( 0x70, 0x00, "Joystick Type" )
541   PORT_CHANGED( coco_joystick_mode_changed, 0 )
541542   PORT_CONFSETTING(   0x00, DEF_STR( Normal ) )
542543   PORT_CONFSETTING(   0x10, "Hi-Res Interface" )
543544   PORT_CONFSETTING(   0x30, "Hi-Res Interface (CoCoMax 3 Style)" )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team