else
button_status = MB_RELEASED;
- HandleButton(event->x, event->y, button_status);
+ HandleButton(event->x, event->y, button_status, event->button);
}
void HandleMotionEvent(MotionEvent *event)
motion_status = TRUE;
- HandleButton(event->x, event->y, button_status);
+ HandleButton(event->x, event->y, button_status, button_status);
}
void HandleKeyEvent(KeyEvent *event)
CloseAllAndExit(0);
}
-void HandleButton(int mx, int my, int button)
+void HandleButton(int mx, int my, int button, int button_nr)
{
static int old_mx = 0, old_my = 0;
mx = my = -32; /* force mouse event to be outside screen tiles */
}
- switch(game_status)
+ /* do not use scroll wheel button events for anything other than gadgets */
+ if (button_nr > 3)
+ return;
+
+ switch (game_status)
{
+ case GAME_MODE_TITLE:
+ HandleTitleScreen(mx, my, 0, 0, button);
+ break;
+
case GAME_MODE_MAIN:
- HandleMainMenu(mx,my, 0,0, button);
+ HandleMainMenu(mx, my, 0, 0, button);
break;
case GAME_MODE_PSEUDO_TYPENAME:
break;
case GAME_MODE_LEVELS:
- HandleChooseLevel(mx,my, 0,0, button);
+ HandleChooseLevel(mx, my, 0, 0, button);
break;
case GAME_MODE_SCORES:
- HandleHallOfFame(0,0, 0,0, button);
+ HandleHallOfFame(0, 0, 0, 0, button);
break;
case GAME_MODE_EDITOR:
break;
case GAME_MODE_INFO:
- HandleInfoScreen(mx,my, 0,0, button);
+ HandleInfoScreen(mx, my, 0, 0, button);
break;
case GAME_MODE_SETUP:
- HandleSetupScreen(mx,my, 0,0, button);
+ HandleSetupScreen(mx, my, 0, 0, button);
break;
case GAME_MODE_PLAYING:
if (suffix_len > string_len)
return FALSE;
- return (strcmp(&string[string_len - suffix_len], suffix) == 0);
+ return (strEqual(&string[string_len - suffix_len], suffix));
}
#define MAX_CHEAT_INPUT_LEN 32
TapeTogglePause(TAPE_TOGGLE_MANUAL);
}
- if (game_status == GAME_MODE_PLAYING)
+ if (game_status == GAME_MODE_PLAYING && !network_playing)
{
int centered_player_nr_next = -999;
HandleTypeName(0, key);
break;
+ case GAME_MODE_TITLE:
case GAME_MODE_MAIN:
case GAME_MODE_LEVELS:
case GAME_MODE_SETUP:
case KSYM_space:
#endif
case KSYM_Return:
- if (game_status == GAME_MODE_MAIN)
+ if (game_status == GAME_MODE_TITLE)
+ HandleTitleScreen(0,0, 0,0, MB_MENU_CHOICE);
+ else if (game_status == GAME_MODE_MAIN)
HandleMainMenu(0,0, 0,0, MB_MENU_CHOICE);
else if (game_status == GAME_MODE_LEVELS)
HandleChooseLevel(0,0, 0,0, MB_MENU_CHOICE);
break;
case KSYM_Escape:
- if (game_status == GAME_MODE_LEVELS)
+ if (game_status == GAME_MODE_TITLE)
+ HandleTitleScreen(0,0, 0,0, MB_MENU_LEAVE);
+ else if (game_status == GAME_MODE_LEVELS)
HandleChooseLevel(0,0, 0,0, MB_MENU_LEAVE);
else if (game_status == GAME_MODE_SETUP)
HandleSetupScreen(0,0, 0,0, MB_MENU_LEAVE);
{
if (button_status && game_status != GAME_MODE_PLAYING)
{
- HandleButton(0, 0, -button_status);
+ HandleButton(0, 0, -button_status, button_status);
+
return;
}
switch(game_status)
{
+ case GAME_MODE_TITLE:
case GAME_MODE_MAIN:
case GAME_MODE_LEVELS:
case GAME_MODE_SETUP:
!DelayReached(&joystickmove_delay, GADGET_FRAME_DELAY))
newbutton = dx = dy = 0;
- if (game_status == GAME_MODE_MAIN)
+ if (game_status == GAME_MODE_TITLE)
+ HandleTitleScreen(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);
+ else if (game_status == GAME_MODE_MAIN)
HandleMainMenu(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);
else if (game_status == GAME_MODE_LEVELS)
HandleChooseLevel(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);