/***********************************************************
* Rocks'n'Diamonds -- McDuffin Strikes Back! *
*----------------------------------------------------------*
-* ©1995 Artsoft Development *
-* Holger Schemel *
-* 33659 Bielefeld-Senne *
-* Telefon: (0521) 493245 *
-* eMail: aeglos@valinor.owl.de *
-* aeglos@uni-paderborn.de *
-* q99492@pbhrzx.uni-paderborn.de *
+* (c) 1995-98 Artsoft Entertainment *
+* Holger Schemel *
+* Oststrasse 11a *
+* 33604 Bielefeld *
+* phone: ++49 +521 290471 *
+* email: aeglos@valinor.owl.de *
*----------------------------------------------------------*
* buttons.c *
***********************************************************/
#include "tools.h"
#include "misc.h"
#include "editor.h"
+#include "tape.h"
/****************************************************************/
/********** drawing buttons and corresponding displays **********/
void DrawVideoDisplay(unsigned long state, unsigned long value)
{
int i;
- int part1 = 0, part2 = 1;
+ int part_label = 0, part_symbol = 1;
int xpos = 0, ypos = 1, xsize = 2, ysize = 3;
static char *monatsname[12] =
{
};
static int video_pos[10][2][4] =
{
- VIDEO_PLAY_LABEL_XPOS, VIDEO_PLAY_LABEL_YPOS,
- VIDEO_PLAY_LABEL_XSIZE,VIDEO_PLAY_LABEL_YSIZE,
- VIDEO_PLAY_SYMBOL_XPOS, VIDEO_PLAY_SYMBOL_YPOS,
- VIDEO_PLAY_SYMBOL_XSIZE,VIDEO_PLAY_SYMBOL_YSIZE,
-
- VIDEO_REC_LABEL_XPOS, VIDEO_REC_LABEL_YPOS,
- VIDEO_REC_LABEL_XSIZE,VIDEO_REC_LABEL_YSIZE,
- VIDEO_REC_SYMBOL_XPOS, VIDEO_REC_SYMBOL_YPOS,
- VIDEO_REC_SYMBOL_XSIZE,VIDEO_REC_SYMBOL_YSIZE,
-
- VIDEO_PAUSE_LABEL_XPOS, VIDEO_PAUSE_LABEL_YPOS,
- VIDEO_PAUSE_LABEL_XSIZE,VIDEO_PAUSE_LABEL_YSIZE,
- VIDEO_PAUSE_SYMBOL_XPOS, VIDEO_PAUSE_SYMBOL_YPOS,
- VIDEO_PAUSE_SYMBOL_XSIZE,VIDEO_PAUSE_SYMBOL_YSIZE,
-
- VIDEO_DATE_LABEL_XPOS, VIDEO_DATE_LABEL_YPOS,
- VIDEO_DATE_LABEL_XSIZE,VIDEO_DATE_LABEL_YSIZE,
- VIDEO_DATE_XPOS, VIDEO_DATE_YPOS,
- VIDEO_DATE_XSIZE,VIDEO_DATE_YSIZE,
-
- 0,0,
- 0,0,
- VIDEO_TIME_XPOS, VIDEO_TIME_YPOS,
- VIDEO_TIME_XSIZE,VIDEO_TIME_YSIZE,
-
- VIDEO_BUTTON_PLAY_XPOS, VIDEO_BUTTON_ANY_YPOS,
- VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE,
- 0,0,
- 0,0,
-
- VIDEO_BUTTON_REC_XPOS, VIDEO_BUTTON_ANY_YPOS,
- VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE,
- 0,0,
- 0,0,
-
- VIDEO_BUTTON_PAUSE_XPOS, VIDEO_BUTTON_ANY_YPOS,
- VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE,
- 0,0,
- 0,0,
-
- VIDEO_BUTTON_STOP_XPOS, VIDEO_BUTTON_ANY_YPOS,
- VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE,
- 0,0,
- 0,0,
-
- VIDEO_BUTTON_EJECT_XPOS, VIDEO_BUTTON_ANY_YPOS,
- VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE,
- 0,0,
- 0,0
+ {{ VIDEO_PLAY_LABEL_XPOS, VIDEO_PLAY_LABEL_YPOS,
+ VIDEO_PLAY_LABEL_XSIZE,VIDEO_PLAY_LABEL_YSIZE },
+ { VIDEO_PLAY_SYMBOL_XPOS, VIDEO_PLAY_SYMBOL_YPOS,
+ VIDEO_PLAY_SYMBOL_XSIZE,VIDEO_PLAY_SYMBOL_YSIZE }},
+
+ {{ VIDEO_REC_LABEL_XPOS, VIDEO_REC_LABEL_YPOS,
+ VIDEO_REC_LABEL_XSIZE,VIDEO_REC_LABEL_YSIZE },
+ { VIDEO_REC_SYMBOL_XPOS, VIDEO_REC_SYMBOL_YPOS,
+ VIDEO_REC_SYMBOL_XSIZE,VIDEO_REC_SYMBOL_YSIZE }},
+
+ {{ VIDEO_PAUSE_LABEL_XPOS, VIDEO_PAUSE_LABEL_YPOS,
+ VIDEO_PAUSE_LABEL_XSIZE,VIDEO_PAUSE_LABEL_YSIZE },
+ { VIDEO_PAUSE_SYMBOL_XPOS, VIDEO_PAUSE_SYMBOL_YPOS,
+ VIDEO_PAUSE_SYMBOL_XSIZE,VIDEO_PAUSE_SYMBOL_YSIZE }},
+
+ {{ VIDEO_DATE_LABEL_XPOS, VIDEO_DATE_LABEL_YPOS,
+ VIDEO_DATE_LABEL_XSIZE,VIDEO_DATE_LABEL_YSIZE },
+ { VIDEO_DATE_XPOS, VIDEO_DATE_YPOS,
+ VIDEO_DATE_XSIZE,VIDEO_DATE_YSIZE }},
+
+ {{ 0,0,
+ 0,0 },
+ { VIDEO_TIME_XPOS, VIDEO_TIME_YPOS,
+ VIDEO_TIME_XSIZE,VIDEO_TIME_YSIZE }},
+
+ {{ VIDEO_BUTTON_PLAY_XPOS, VIDEO_BUTTON_ANY_YPOS,
+ VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE },
+ { 0,0,
+ 0,0 }},
+
+ {{ VIDEO_BUTTON_REC_XPOS, VIDEO_BUTTON_ANY_YPOS,
+ VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE },
+ { 0,0,
+ 0,0 }},
+
+ {{ VIDEO_BUTTON_PAUSE_XPOS, VIDEO_BUTTON_ANY_YPOS,
+ VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE },
+ { 0,0,
+ 0,0 }},
+
+ {{ VIDEO_BUTTON_STOP_XPOS, VIDEO_BUTTON_ANY_YPOS,
+ VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE },
+ { 0,0,
+ 0,0 }},
+
+ {{ VIDEO_BUTTON_EJECT_XPOS, VIDEO_BUTTON_ANY_YPOS,
+ VIDEO_BUTTON_XSIZE,VIDEO_BUTTON_YSIZE },
+ { 0,0,
+ 0,0 }}
};
+ if (state & VIDEO_STATE_PBEND_OFF)
+ {
+ int cx = DOOR_GFX_PAGEX3, cy = DOOR_GFX_PAGEY2;
+
+ XCopyArea(display,pix[PIX_DOOR],drawto,gc,
+ cx + VIDEO_REC_LABEL_XPOS,
+ cy + VIDEO_REC_LABEL_YPOS,
+ VIDEO_PBEND_LABEL_XSIZE,
+ VIDEO_PBEND_LABEL_YSIZE,
+ VX + VIDEO_REC_LABEL_XPOS,
+ VY + VIDEO_REC_LABEL_YPOS);
+ }
+
for(i=0;i<20;i++)
{
if (state & (1<<i))
else
cx = DOOR_GFX_PAGEX3; /* i gerade => STATE_OFF / PRESS_ON */
- if (video_pos[pos][part1][0])
+ if (video_pos[pos][part_label][0] && value != VIDEO_DISPLAY_SYMBOL_ONLY)
XCopyArea(display,pix[PIX_DOOR],drawto,gc,
- cx + video_pos[pos][part1][xpos],
- cy + video_pos[pos][part1][ypos],
- video_pos[pos][part1][xsize],
- video_pos[pos][part1][ysize],
- VX + video_pos[pos][part1][xpos],
- VY + video_pos[pos][part1][ypos]);
- if (video_pos[pos][part2][0])
+ cx + video_pos[pos][part_label][xpos],
+ cy + video_pos[pos][part_label][ypos],
+ video_pos[pos][part_label][xsize],
+ video_pos[pos][part_label][ysize],
+ VX + video_pos[pos][part_label][xpos],
+ VY + video_pos[pos][part_label][ypos]);
+ if (video_pos[pos][part_symbol][0] && value != VIDEO_DISPLAY_LABEL_ONLY)
XCopyArea(display,pix[PIX_DOOR],drawto,gc,
- cx + video_pos[pos][part2][xpos],
- cy + video_pos[pos][part2][ypos],
- video_pos[pos][part2][xsize],
- video_pos[pos][part2][ysize],
- VX + video_pos[pos][part2][xpos],
- VY + video_pos[pos][part2][ypos]);
+ cx + video_pos[pos][part_symbol][xpos],
+ cy + video_pos[pos][part_symbol][ypos],
+ video_pos[pos][part_symbol][xsize],
+ video_pos[pos][part_symbol][ysize],
+ VX + video_pos[pos][part_symbol][xpos],
+ VY + video_pos[pos][part_symbol][ypos]);
}
}
+ if (state & VIDEO_STATE_FFWD_ON)
+ {
+ int cx = DOOR_GFX_PAGEX4, cy = DOOR_GFX_PAGEY2;
+
+ XCopyArea(display,pix[PIX_DOOR],drawto,gc,
+ cx + VIDEO_PLAY_SYMBOL_XPOS,
+ cy + VIDEO_PLAY_SYMBOL_YPOS,
+ VIDEO_PLAY_SYMBOL_XSIZE - 2,
+ VIDEO_PLAY_SYMBOL_YSIZE,
+ VX + VIDEO_PLAY_SYMBOL_XPOS - 9,
+ VY + VIDEO_PLAY_SYMBOL_YPOS);
+ }
+
+ if (state & VIDEO_STATE_PBEND_ON)
+ {
+ int cx = DOOR_GFX_PAGEX6, cy = DOOR_GFX_PAGEY1;
+
+ XCopyArea(display,pix[PIX_DOOR],drawto,gc,
+ cx + VIDEO_PBEND_LABEL_XPOS,
+ cy + VIDEO_PBEND_LABEL_YPOS,
+ VIDEO_PBEND_LABEL_XSIZE,
+ VIDEO_PBEND_LABEL_YSIZE,
+ VX + VIDEO_REC_LABEL_XPOS,
+ VY + VIDEO_REC_LABEL_YPOS);
+ }
+
if (state & VIDEO_STATE_DATE_ON)
{
int tag = value % 100;
if (tape.date && tape.length)
{
DrawVideoDisplay(VIDEO_STATE_DATE_ON,tape.date);
- DrawVideoDisplay(VIDEO_STATE_TIME_ON,0);
+ DrawVideoDisplay(VIDEO_STATE_TIME_ON,tape.length_seconds);
}
XCopyArea(display,drawto,pix[PIX_DB_DOOR],gc,
pos = (state & BUTTON_SOUND_MUSIC ? SOUND_BUTTON_MUSIC_XPOS :
state & BUTTON_SOUND_LOOPS ? SOUND_BUTTON_LOOPS_XPOS :
- SOUND_BUTTON_SOUND_XPOS);
+ SOUND_BUTTON_SIMPLE_XPOS);
if (state & BUTTON_ON)
cy -= SOUND_BUTTON_YSIZE;
redraw_mask |= REDRAW_DOOR_1;
}
-void DrawChooseButton(unsigned long state)
+void DrawYesNoButton(unsigned long state, int mode)
{
- int pos, cx = DOOR_GFX_PAGEX4, cy = 0;
+ Drawable dest_drawto;
+ int dest_xoffset, dest_yoffset;
+ int xpos, cx = DOOR_GFX_PAGEX4;
- pos = (state & BUTTON_OK ? OK_BUTTON_XPOS : NO_BUTTON_XPOS);
+ if (mode == DB_INIT)
+ {
+ dest_drawto = pix[PIX_DB_DOOR];
+ dest_xoffset = DOOR_GFX_PAGEX1;
+ dest_yoffset = 0;
+ }
+ else
+ {
+ dest_drawto = drawto;
+ dest_xoffset = DX;
+ dest_yoffset = DY;
+ }
+
+ xpos = (state & BUTTON_OK ? OK_BUTTON_XPOS : NO_BUTTON_XPOS);
if (state & BUTTON_PRESSED)
cx = DOOR_GFX_PAGEX3;
- XCopyArea(display,pix[PIX_DOOR],drawto,gc,
- cx + pos,cy + OK_BUTTON_GFX_YPOS,
- OK_BUTTON_XSIZE,OK_BUTTON_YSIZE,
- DX + pos,DY + OK_BUTTON_YPOS);
+ XCopyArea(display, pix[PIX_DOOR], dest_drawto, gc,
+ cx + xpos, OK_BUTTON_GFX_YPOS,
+ OK_BUTTON_XSIZE, OK_BUTTON_YSIZE,
+ dest_xoffset + xpos, dest_yoffset + OK_BUTTON_YPOS);
redraw_mask |= REDRAW_DOOR_1;
}
-void DrawConfirmButton(unsigned long state)
+void DrawConfirmButton(unsigned long state, int mode)
{
+ Drawable dest_drawto;
+ int dest_xoffset, dest_yoffset;
+ int cx = DOOR_GFX_PAGEX4;
+
+ if (mode == DB_INIT)
+ {
+ dest_drawto = pix[PIX_DB_DOOR];
+ dest_xoffset = DOOR_GFX_PAGEX1;
+ dest_yoffset = 0;
+ }
+ else
+ {
+ dest_drawto = drawto;
+ dest_xoffset = DX;
+ dest_yoffset = DY;
+ }
+
+ if (state & BUTTON_PRESSED)
+ cx = DOOR_GFX_PAGEX3;
+
+ XCopyArea(display, pix[PIX_DOOR], dest_drawto, gc,
+ cx + CONFIRM_BUTTON_XPOS, CONFIRM_BUTTON_GFX_YPOS,
+ CONFIRM_BUTTON_XSIZE, CONFIRM_BUTTON_YSIZE,
+ dest_xoffset + CONFIRM_BUTTON_XPOS,
+ dest_yoffset + CONFIRM_BUTTON_YPOS);
+
+ redraw_mask |= REDRAW_DOOR_1;
+}
+
+void DrawPlayerButton(unsigned long state, int mode)
+{
+ Drawable dest_drawto;
+ int dest_xoffset, dest_yoffset;
+ int graphic;
+ int graphic_offset = (PLAYER_BUTTON_XSIZE - TILEX/2)/2;
+ int xpos, ypos;
int cx = DOOR_GFX_PAGEX4, cy = 0;
+ if (mode == DB_INIT)
+ {
+ dest_drawto = pix[PIX_DB_DOOR];
+ dest_xoffset = DOOR_GFX_PAGEX1;
+ dest_yoffset = 0;
+ }
+ else
+ {
+ dest_drawto = drawto;
+ dest_xoffset = DX;
+ dest_yoffset = DY;
+ }
+
+ if (state & BUTTON_PLAYER_1)
+ graphic = GFX_SPIELER1;
+ else if (state & BUTTON_PLAYER_2)
+ graphic = GFX_SPIELER2;
+ else if (state & BUTTON_PLAYER_3)
+ graphic = GFX_SPIELER3;
+ else if (state & BUTTON_PLAYER_4)
+ graphic = GFX_SPIELER4;
+
+ xpos = (state & BUTTON_PLAYER_1 || state & BUTTON_PLAYER_3 ?
+ PLAYER_BUTTON_1_XPOS : PLAYER_BUTTON_2_XPOS);
+ ypos = (state & BUTTON_PLAYER_1 || state & BUTTON_PLAYER_2 ?
+ PLAYER_BUTTON_1_YPOS : PLAYER_BUTTON_3_YPOS);
+
if (state & BUTTON_PRESSED)
+ {
cx = DOOR_GFX_PAGEX3;
+ graphic_offset += 1;
+ }
- XCopyArea(display,pix[PIX_DOOR],drawto,gc,
- cx + CONFIRM_BUTTON_XPOS,cy + CONFIRM_BUTTON_GFX_YPOS,
- CONFIRM_BUTTON_XSIZE,CONFIRM_BUTTON_YSIZE,
- DX + CONFIRM_BUTTON_XPOS,DY + CONFIRM_BUTTON_YPOS);
+ XCopyArea(display, pix[PIX_DOOR], dest_drawto, gc,
+ cx + PLAYER_BUTTON_GFX_XPOS, cy + PLAYER_BUTTON_GFX_YPOS,
+ PLAYER_BUTTON_XSIZE, PLAYER_BUTTON_YSIZE,
+ dest_xoffset + xpos, dest_yoffset + ypos);
+ DrawMiniGraphicExt(dest_drawto,gc,
+ dest_xoffset + xpos + graphic_offset,
+ dest_yoffset + ypos + graphic_offset,
+ graphic);
redraw_mask |= REDRAW_DOOR_1;
}
int cx = DOOR_GFX_PAGEX6, cy = DOOR_GFX_PAGEY2;
static int edit_pos[6][4] =
{
- ED_BUTTON_CTRL_XPOS,ED_BUTTON_CTRL_YPOS,
- ED_BUTTON_CTRL_XSIZE,ED_BUTTON_CTRL_YSIZE,
+ {ED_BUTTON_CTRL_XPOS,ED_BUTTON_CTRL_YPOS,
+ ED_BUTTON_CTRL_XSIZE,ED_BUTTON_CTRL_YSIZE},
- ED_BUTTON_FILL_XPOS,ED_BUTTON_FILL_YPOS,
- ED_BUTTON_FILL_XSIZE,ED_BUTTON_FILL_YSIZE,
+ {ED_BUTTON_FILL_XPOS,ED_BUTTON_FILL_YPOS,
+ ED_BUTTON_FILL_XSIZE,ED_BUTTON_FILL_YSIZE},
- ED_BUTTON_LEFT_XPOS,ED_BUTTON_LEFT_YPOS,
- ED_BUTTON_LEFT_XSIZE,ED_BUTTON_LEFT_YSIZE,
+ {ED_BUTTON_LEFT_XPOS,ED_BUTTON_LEFT_YPOS,
+ ED_BUTTON_LEFT_XSIZE,ED_BUTTON_LEFT_YSIZE},
- ED_BUTTON_UP_XPOS,ED_BUTTON_UP_YPOS,
- ED_BUTTON_UP_XSIZE,ED_BUTTON_UP_YSIZE,
+ {ED_BUTTON_UP_XPOS,ED_BUTTON_UP_YPOS,
+ ED_BUTTON_UP_XSIZE,ED_BUTTON_UP_YSIZE},
- ED_BUTTON_DOWN_XPOS,ED_BUTTON_DOWN_YPOS,
- ED_BUTTON_DOWN_XSIZE,ED_BUTTON_DOWN_YSIZE,
+ {ED_BUTTON_DOWN_XPOS,ED_BUTTON_DOWN_YPOS,
+ ED_BUTTON_DOWN_XSIZE,ED_BUTTON_DOWN_YSIZE},
- ED_BUTTON_RIGHT_XPOS,ED_BUTTON_RIGHT_YPOS,
- ED_BUTTON_RIGHT_XSIZE,ED_BUTTON_RIGHT_YSIZE
+ {ED_BUTTON_RIGHT_XPOS,ED_BUTTON_RIGHT_YPOS,
+ ED_BUTTON_RIGHT_XSIZE,ED_BUTTON_RIGHT_YSIZE}
};
if (state & ED_BUTTON_PRESSED)
int cx = DOOR_GFX_PAGEX4, cy = DOOR_GFX_PAGEY1+80;
static int edit_pos[4][4] =
{
- ED_BUTTON_EDIT_XPOS,ED_BUTTON_EDIT_YPOS,
- ED_BUTTON_EDIT_XSIZE,ED_BUTTON_EDIT_YSIZE,
+ {ED_BUTTON_EDIT_XPOS,ED_BUTTON_EDIT_YPOS,
+ ED_BUTTON_EDIT_XSIZE,ED_BUTTON_EDIT_YSIZE},
- ED_BUTTON_CLEAR_XPOS,ED_BUTTON_CLEAR_YPOS,
- ED_BUTTON_CLEAR_XSIZE,ED_BUTTON_CLEAR_YSIZE,
+ {ED_BUTTON_CLEAR_XPOS,ED_BUTTON_CLEAR_YPOS,
+ ED_BUTTON_CLEAR_XSIZE,ED_BUTTON_CLEAR_YSIZE},
- ED_BUTTON_UNDO_XPOS,ED_BUTTON_UNDO_YPOS,
- ED_BUTTON_UNDO_XSIZE,ED_BUTTON_UNDO_YSIZE,
+ {ED_BUTTON_UNDO_XPOS,ED_BUTTON_UNDO_YPOS,
+ ED_BUTTON_UNDO_XSIZE,ED_BUTTON_UNDO_YSIZE},
- ED_BUTTON_EXIT_XPOS,ED_BUTTON_EXIT_YPOS,
- ED_BUTTON_EXIT_XSIZE,ED_BUTTON_EXIT_YSIZE
+ {ED_BUTTON_EXIT_XPOS,ED_BUTTON_EXIT_YPOS,
+ ED_BUTTON_EXIT_XSIZE,ED_BUTTON_EXIT_YSIZE}
};
if (state & ED_BUTTON_PRESSED)
int from_x, from_y, to_x,to_y, size_x, size_y;
static int edit_pos[3][4] =
{
- ED_BUTTON_EUP_XPOS,ED_BUTTON_EUP_YPOS,
- ED_BUTTON_EUP_XSIZE,ED_BUTTON_EUP_YSIZE,
+ {ED_BUTTON_EUP_XPOS,ED_BUTTON_EUP_YPOS,
+ ED_BUTTON_EUP_XSIZE,ED_BUTTON_EUP_YSIZE},
- ED_BUTTON_EDOWN_XPOS,ED_BUTTON_EDOWN_YPOS,
- ED_BUTTON_EDOWN_XSIZE,ED_BUTTON_EDOWN_YSIZE,
+ {ED_BUTTON_EDOWN_XPOS,ED_BUTTON_EDOWN_YPOS,
+ ED_BUTTON_EDOWN_XSIZE,ED_BUTTON_EDOWN_YSIZE},
- ED_BUTTON_ELEM_XPOS,ED_BUTTON_ELEM_YPOS,
- ED_BUTTON_ELEM_XSIZE,ED_BUTTON_ELEM_YSIZE
+ {ED_BUTTON_ELEM_XPOS,ED_BUTTON_ELEM_YPOS,
+ ED_BUTTON_ELEM_XSIZE,ED_BUTTON_ELEM_YSIZE}
};
if (button_nr<ED_BUTTON_ELEM)
XCopyArea(display,pix[PIX_DOOR],drawto,gc,
from_x,from_y, size_x,size_y, to_x,to_y);
- DrawMiniGraphicExtHiRes(drawto,gc,
- DX+ED_BUTTON_ELEM_XPOS+3+shift +
- (elem_pos % MAX_ELEM_X)*ED_BUTTON_ELEM_XSIZE,
- DY+ED_BUTTON_ELEM_YPOS+3-shift +
- (elem_pos / MAX_ELEM_X)*ED_BUTTON_ELEM_YSIZE,
- graphic);
+ DrawMiniGraphicExt(drawto,gc,
+ DX+ED_BUTTON_ELEM_XPOS+3+shift +
+ (elem_pos % MAX_ELEM_X)*ED_BUTTON_ELEM_XSIZE,
+ DY+ED_BUTTON_ELEM_YPOS+3-shift +
+ (elem_pos / MAX_ELEM_X)*ED_BUTTON_ELEM_YSIZE,
+ graphic);
}
redraw_mask |= REDRAW_DOOR_1;
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
static int video_button[5] =
{
VIDEO_PRESS_EJECT_ON,
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
int sound_state[3];
- sound_state[0] = BUTTON_SOUND_MUSIC | (BUTTON_ON * sound_music_on);
- sound_state[1] = BUTTON_SOUND_LOOPS | (BUTTON_ON * sound_loops_on);
- sound_state[2] = BUTTON_SOUND_SOUND | (BUTTON_ON * sound_on);
+ sound_state[0] = BUTTON_SOUND_MUSIC | (BUTTON_ON * setup.sound_music);
+ sound_state[1] = BUTTON_SOUND_LOOPS | (BUTTON_ON * setup.sound_loops);
+ sound_state[2] = BUTTON_SOUND_SIMPLE | (BUTTON_ON * setup.sound_simple);
if (button)
{
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
int game_state[3] =
{
BUTTON_GAME_STOP,
return(return_code);
}
-int CheckChooseButtons(int mx, int my, int button)
+int CheckYesNoButtons(int mx, int my, int button)
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
- static int choose_button[5] =
+ static boolean pressed = FALSE;
+ static int yesno_button[5] =
{
BUTTON_OK,
BUTTON_NO
{
if (!motion_status) /* Maustaste neu gedrückt */
{
- if (ON_CHOOSE_BUTTON(mx,my))
+ if (ON_YESNO_BUTTON(mx,my))
{
- choice = CHOOSE_BUTTON(mx);
+ choice = YESNO_BUTTON(mx);
pressed = TRUE;
- DrawChooseButton(choose_button[choice] | BUTTON_PRESSED);
+ DrawYesNoButton(yesno_button[choice] | BUTTON_PRESSED, DB_NORMAL);
}
}
else /* Mausbewegung bei gedrückter Maustaste */
{
- if ((!ON_CHOOSE_BUTTON(mx,my) || CHOOSE_BUTTON(mx)!=choice) &&
+ if ((!ON_YESNO_BUTTON(mx,my) || YESNO_BUTTON(mx)!=choice) &&
choice>=0 && pressed)
{
pressed = FALSE;
- DrawChooseButton(choose_button[choice] | BUTTON_RELEASED);
+ DrawYesNoButton(yesno_button[choice] | BUTTON_RELEASED, DB_NORMAL);
}
- else if (ON_CHOOSE_BUTTON(mx,my) &&CHOOSE_BUTTON(mx)==choice && !pressed)
+ else if (ON_YESNO_BUTTON(mx,my) && YESNO_BUTTON(mx)==choice && !pressed)
{
pressed = TRUE;
- DrawChooseButton(choose_button[choice] | BUTTON_PRESSED);
+ DrawYesNoButton(yesno_button[choice] | BUTTON_PRESSED, DB_NORMAL);
}
}
}
else /* Maustaste wieder losgelassen */
{
- if (ON_CHOOSE_BUTTON(mx,my) && CHOOSE_BUTTON(mx)==choice && pressed)
+ if (ON_YESNO_BUTTON(mx,my) && YESNO_BUTTON(mx)==choice && pressed)
{
- DrawChooseButton(choose_button[choice] | BUTTON_RELEASED);
+ DrawYesNoButton(yesno_button[choice] | BUTTON_RELEASED, DB_NORMAL);
return_code = choice+1;
choice = -1;
pressed = FALSE;
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
if (button)
{
{
choice = 0;
pressed = TRUE;
- DrawConfirmButton(BUTTON_PRESSED);
+ DrawConfirmButton(BUTTON_PRESSED, DB_NORMAL);
}
}
else /* Mausbewegung bei gedrückter Maustaste */
if (!ON_CONFIRM_BUTTON(mx,my) && choice>=0 && pressed)
{
pressed = FALSE;
- DrawConfirmButton(BUTTON_RELEASED);
+ DrawConfirmButton(BUTTON_RELEASED, DB_NORMAL);
}
else if (ON_CONFIRM_BUTTON(mx,my) && !pressed)
{
pressed = TRUE;
- DrawConfirmButton(BUTTON_PRESSED);
+ DrawConfirmButton(BUTTON_PRESSED, DB_NORMAL);
}
}
}
{
if (ON_CONFIRM_BUTTON(mx,my) && pressed)
{
- DrawConfirmButton(BUTTON_RELEASED);
+ DrawConfirmButton(BUTTON_RELEASED, DB_NORMAL);
return_code = BUTTON_CONFIRM;
choice = -1;
pressed = FALSE;
return(return_code);
}
+int CheckPlayerButtons(int mx, int my, int button)
+{
+ int return_code = 0;
+ static int choice = -1;
+ static boolean pressed = FALSE;
+ int player_state[4] =
+ {
+ BUTTON_PLAYER_1,
+ BUTTON_PLAYER_2,
+ BUTTON_PLAYER_3,
+ BUTTON_PLAYER_4
+ };
+
+ if (button)
+ {
+ if (!motion_status) /* Maustaste neu gedrückt */
+ {
+ if (ON_PLAYER_BUTTON(mx,my))
+ {
+ choice = PLAYER_BUTTON(mx,my);
+ pressed = TRUE;
+ DrawPlayerButton(player_state[choice] | BUTTON_PRESSED, DB_NORMAL);
+ }
+ }
+ else /* Mausbewegung bei gedrückter Maustaste */
+ {
+ if ((!ON_PLAYER_BUTTON(mx,my) || PLAYER_BUTTON(mx,my)!=choice) &&
+ choice>=0 && pressed)
+ {
+ pressed = FALSE;
+ DrawPlayerButton(player_state[choice] | BUTTON_RELEASED, DB_NORMAL);
+ }
+ else if (ON_PLAYER_BUTTON(mx,my) && PLAYER_BUTTON(mx,my)==choice && !pressed)
+ {
+ pressed = TRUE;
+ DrawPlayerButton(player_state[choice] | BUTTON_PRESSED, DB_NORMAL);
+ }
+ }
+ }
+ else /* Maustaste wieder losgelassen */
+ {
+ if (ON_PLAYER_BUTTON(mx,my) && PLAYER_BUTTON(mx,my)==choice && pressed)
+ {
+ DrawPlayerButton(player_state[choice] | BUTTON_RELEASED, DB_NORMAL);
+ return_code = player_state[choice];
+ choice = -1;
+ pressed = FALSE;
+ }
+ else
+ {
+ choice = -1;
+ pressed = FALSE;
+ }
+ }
+
+ BackToFront();
+ return(return_code);
+}
+
/* several buttons in the level editor */
int CheckEditButtons(int mx, int my, int button)
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
static int edit_button[6] =
{
ED_BUTTON_CTRL,
{
int return_code = 0;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
static int ctrl_button[4] =
{
ED_BUTTON_EDIT,
{
int return_code = -1;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
if (button)
{
{
int return_code = -1;
static int choice = -1;
- static BOOL pressed = FALSE;
+ static boolean pressed = FALSE;
if (button)
{