ExpireSoundLoops(FALSE);
KeyboardAutoRepeatOn();
- ActivateJoystick();
audio.sound_deactivated = FALSE;
LevelStats_getSolved(i) ? FC_GREEN :
LevelStats_getPlayed(i) ? FC_YELLOW : FC_RED);
- sprintf(identifier, "%d", value);
- sprintf(name, "%03d: %s", value,
- (level.no_level_file ? "(no file)" : level.name));
+ snprintf(identifier, sizeof(identifier), "%d", value);
+ snprintf(name, sizeof(name), "%03d: %s", value,
+ (level.no_level_file ? "(no file)" : level.name));
setString(&ti->identifier, identifier);
setString(&ti->name, name);
/* (this is needed when called from GameEnd() after winning a game) */
KeyboardAutoRepeatOn();
- ActivateJoystick();
/* (this is needed when called from GameEnd() after winning a game) */
SetDrawDeactivationMask(REDRAW_NONE);
if (highlight_position < 0)
LoadScore(level_nr);
+ else
+ SetAnimStatus(GAME_MODE_PSEUDO_SCORESNEW);
FadeSetEnterScreen();
DrawSetupScreen();
}
-#if !defined(PLATFORM_ANDROID)
static void execSetupInput()
{
setup_mode = SETUP_MODE_INPUT;
DrawSetupScreen();
}
-#endif
static void execSetupShortcuts()
{
{ TYPE_ENTER_MENU, execSetupGraphics, "Graphics" },
{ TYPE_ENTER_MENU, execSetupSound, "Sound & Music" },
{ TYPE_ENTER_MENU, execSetupArtwork, "Custom Artwork" },
-#if !defined(PLATFORM_ANDROID)
{ TYPE_ENTER_MENU, execSetupInput, "Input Devices" },
{ TYPE_ENTER_MENU, execSetupTouch, "Touch Controls" },
-#else
- { TYPE_ENTER_MENU, execSetupTouch, "Touch Controls" },
-#endif
{ TYPE_ENTER_MENU, execSetupShortcuts, "Key Shortcuts" },
{ TYPE_EMPTY, NULL, "" },
{ TYPE_LEAVE_MENU, execExitSetup, "Exit" },
{
{ TYPE_SWITCH, &setup.team_mode, "Team-Mode (Multi-Player):" },
{ TYPE_YES_NO, &setup.input_on_focus, "Only Move Focussed Player:" },
+ { TYPE_SWITCH, &setup.time_limit, "Time Limit:" },
{ TYPE_SWITCH, &setup.handicap, "Handicap:" },
{ TYPE_SWITCH, &setup.skip_levels, "Skip Unsolved Levels:" },
- { TYPE_SWITCH, &setup.time_limit, "Time Limit:" },
+ { TYPE_SWITCH, &setup.increment_levels,"Increment Solved Levels:" },
{ TYPE_SWITCH, &setup.autorecord, "Auto-Record Tapes:" },
{ TYPE_ENTER_LIST, execSetupChooseGameSpeed, "Game Speed:" },
{ TYPE_STRING, &game_speed_text, "" },
DrawTextSCentered(mSY - SY + 16, FONT_TITLE_1, "Setup Input");
- DrawTextSCentered(SYSIZE - 20, FONT_TITLE_2,
- "Joysticks deactivated on this screen");
-
for (i = 0; setup_info[i].type != 0 && i < MAX_MENU_ENTRIES_ON_SCREEN; i++)
{
if (setup_info[i].type & (TYPE_ENTER_MENU|TYPE_ENTER_LIST))
};
int text_font_nr = (active ? FONT_MENU_1_ACTIVE : FONT_MENU_1);
- InitJoysticks();
-
custom_key = setup.input[player_nr].key;
DrawText(mSX + 11 * 32, mSY + 2 * 32, int2str(player_nr + 1, 1),
if (setup.input[player_nr].use_joystick)
{
char *device_name = setup.input[player_nr].joy.device_name;
- char *text = joystick_name[getJoystickNrFromDeviceName(device_name)];
- int font_nr = (joystick.fd[player_nr] < 0 ? FONT_VALUE_OLD : FONT_VALUE_1);
+ int joystick_nr = getJoystickNrFromDeviceName(device_name);
+ boolean joystick_active = CheckJoystickOpened(joystick_nr);
+ char *text = joystick_name[joystick_nr];
+ int font_nr = (joystick_active ? FONT_VALUE_1 : FONT_VALUE_OLD);
DrawText(mSX + 8 * 32, mSY + 3 * 32, text, font_nr);
DrawText(mSX + 32, mSY + 4 * 32, "Calibrate", text_font_nr);
else if (y == 2)
{
if (setup.input[input_player_nr].use_joystick)
- {
- InitJoysticks();
CalibrateJoystick(input_player_nr);
- }
else
CustomizeKeyboard(input_player_nr);
}
int new_joystick_ylower = JOYSTICK_YMIDDLE;
int new_joystick_xmiddle, new_joystick_ymiddle;
- int joystick_fd = joystick.fd[player_nr];
+ char *device_name = setup.input[player_nr].joy.device_name;
+ int joystick_nr = getJoystickNrFromDeviceName(device_name);
+ boolean joystick_active = CheckJoystickOpened(joystick_nr);
+
int x, y, last_x, last_y, xpos = 8, ypos = 3;
boolean check[3][3];
int check_remaining = 3 * 3;
if (joystick.status == JOYSTICK_NOT_AVAILABLE)
return FALSE;
- if (joystick_fd < 0 || !setup.input[player_nr].use_joystick)
+ if (!joystick_active || !setup.input[player_nr].use_joystick)
return FALSE;
FadeSetEnterMenu();
DrawTextSCentered(mSY - SY + 12 * 32, FONT_TITLE_1, "and");
DrawTextSCentered(mSY - SY + 13 * 32, FONT_TITLE_1, "press any button!");
- joy_value = Joystick(player_nr);
+ joy_value = JoystickExt(joystick_nr, TRUE);
last_x = (joy_value & JOY_LEFT ? -1 : joy_value & JOY_RIGHT ? +1 : 0);
last_y = (joy_value & JOY_UP ? -1 : joy_value & JOY_DOWN ? +1 : 0);
/* eventually uncalibrated center position (joystick could be uncentered) */
- if (!ReadJoystick(joystick_fd, &joy_x, &joy_y, NULL, NULL))
+ if (!ReadJoystick(joystick_nr, &joy_x, &joy_y, NULL, NULL))
return FALSE;
new_joystick_xmiddle = joy_x;
FadeIn(REDRAW_FIELD);
- while (Joystick(player_nr) & JOY_BUTTON); /* wait for released button */
+ /* wait for potentially still pressed button to be released */
+ while (JoystickExt(joystick_nr, TRUE) & JOY_BUTTON);
while (result < 0)
{
- if (PendingEvent()) /* got event */
+ while (PendingEvent()) /* got event */
{
Event event;
}
}
- if (!ReadJoystick(joystick_fd, &joy_x, &joy_y, NULL, NULL))
+ if (!ReadJoystick(joystick_nr, &joy_x, &joy_y, NULL, NULL))
return FALSE;
new_joystick_xleft = MIN(new_joystick_xleft, joy_x);
CheckJoystickData();
- joy_value = Joystick(player_nr);
+ joy_value = JoystickExt(joystick_nr, TRUE);
if (joy_value & JOY_BUTTON && check_remaining == 0)
result = 1;
}
/* calibrated center position (joystick should now be centered) */
- if (!ReadJoystick(joystick_fd, &joy_x, &joy_y, NULL, NULL))
+ if (!ReadJoystick(joystick_nr, &joy_x, &joy_y, NULL, NULL))
return FALSE;
new_joystick_xmiddle = joy_x;
new_joystick_ymiddle = joy_y;
/* wait until the last pressed button was released */
- while (Joystick(player_nr) & JOY_BUTTON)
+ while (JoystickExt(joystick_nr, TRUE) & JOY_BUTTON)
{
if (PendingEvent()) /* got event */
{
void DrawSetupScreen()
{
- DeactivateJoystick();
-
if (setup_mode == SETUP_MODE_INPUT)
DrawSetupScreen_Input();
else if (setup_mode == SETUP_MODE_CHOOSE_GAME_SPEED)