X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=cb715f420688cae2f69bccc3dd841872c606e127;hb=a8b2caa1d373c84c1b3fc2f615370c2a319051ca;hp=ddd4def814d661eba2e1ade1a6ff5d63753a01e9;hpb=b9c7e4a42762c8526702726f1404d3e75dbc29f5;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index ddd4def8..cb715f42 100644 --- a/src/screens.c +++ b/src/screens.c @@ -60,7 +60,7 @@ void DrawHeadline() int x = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING) * FONT1_XSIZE) / 2; DrawText(x, SY + 8, PROGRAM_TITLE_STRING, FS_BIG, FC_YELLOW); - DrawTextFCentered(46, FC_RED, COPYRIGHT_STRING); + DrawTextFCentered(46, FC_RED, WINDOW_SUBTITLE_STRING); } void DrawMainMenu() @@ -84,6 +84,12 @@ void DrawMainMenu() /* needed if last screen was the editor screen */ UndrawSpecialEditorDoor(); + /* needed if last screen was the setup screen and fullscreen state changed */ + ChangeVideoModeIfNeeded(); +#ifdef TARGET_SDL + SetDrawtoField(DRAW_BACKBUFFER); +#endif + /* map gadgets for main menu screen */ MapTapeButtons(); @@ -327,7 +333,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) if (setup.autorecord) TapeStartRecording(); -#ifndef MSDOS +#if !defined(MSDOS) && !defined(WIN32) if (options.network) SendToServer_StartPlaying(); else @@ -686,7 +692,7 @@ void DrawHelpScreenCreditsText() DrawTextFCentered(100, FC_GREEN, "Credits:"); DrawTextFCentered(ystart + 0 * ystep, FC_YELLOW, - "DOS/Windows port of the game:"); + "DOS port of the game:"); DrawTextFCentered(ystart + 1 * ystep, FC_RED, "Guido Schulz"); DrawTextFCentered(ystart + 2 * ystep, FC_YELLOW, @@ -716,13 +722,13 @@ void DrawHelpScreenContactText() DrawTextFCentered(ystart + 1 * ystep, FC_YELLOW, "If you like it, send e-mail to:"); DrawTextFCentered(ystart + 2 * ystep, FC_RED, - "aeglos@valinor.owl.de"); + "info@artsoft.org"); DrawTextFCentered(ystart + 3 * ystep, FC_YELLOW, "or SnailMail to:"); DrawTextFCentered(ystart + 4 * ystep + 0, FC_RED, "Holger Schemel"); DrawTextFCentered(ystart + 4 * ystep + 20, FC_RED, - "Oststrasse 11a"); + "Detmolder Strasse 189"); DrawTextFCentered(ystart + 4 * ystep + 40, FC_RED, "33604 Bielefeld"); DrawTextFCentered(ystart + 4 * ystep + 60, FC_RED, @@ -1283,7 +1289,10 @@ void DrawSetupScreen() #endif { &setup.scroll_delay, "Scroll Delay:" }, { &setup.soft_scrolling, "Soft Scroll.:" }, +#if 0 { &setup.fading, "Fading:" }, +#endif + { &setup.fullscreen, "Fullscreen:" }, { &setup.quick_doors, "Quick Doors:" }, { &setup.autorecord, "Auto-Record:" }, { &setup.team_mode, "Team-Mode:" }, @@ -1480,6 +1489,7 @@ void HandleSetupScreen(int mx, int my, int dx, int dy, int button) DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW); setup.soft_scrolling = !setup.soft_scrolling; } +#if 0 else if (y==8) { if (setup.fading) @@ -1488,6 +1498,15 @@ void HandleSetupScreen(int mx, int my, int dx, int dy, int button) DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW); setup.fading = !setup.fading; } +#endif + else if (y==8 && fullscreen_available) + { + if (setup.fullscreen) + DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE); + else + DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW); + setup.fullscreen = !setup.fullscreen; + } else if (y==9) { if (setup.quick_doors) @@ -1904,8 +1923,12 @@ void CustomizeKeyboard(int player_nr) break; } + /* all keys configured -- wait for "Escape" or "Return" key */ + if (step_nr == 6) + break; + /* press 'Enter' to keep the existing key binding */ - if (key == KEY_Return || step_nr == 6) + if (key == KEY_Return) key = *customize_step[step_nr].key; /* check if key already used */ @@ -2087,11 +2110,17 @@ void CalibrateJoystick(int player_nr) } #ifndef MSDOS + +#ifdef USE_SDL_JOYSTICK + joy_ctrl.x = Get_SDL_Joystick_Axis(joystick_fd, 0); + joy_ctrl.y = Get_SDL_Joystick_Axis(joystick_fd, 1); +#else if (read(joystick_fd, &joy_ctrl, sizeof(joy_ctrl)) != sizeof(joy_ctrl)) { joystick_status = JOYSTICK_OFF; goto error_out; } +#endif new_joystick_xleft = MIN(new_joystick_xleft, joy_ctrl.x); new_joystick_xright = MAX(new_joystick_xright, joy_ctrl.x); @@ -2199,7 +2228,20 @@ void CalibrateJoystick(int player_nr) StopAnimation(); DrawSetupInputScreen(); - while(Joystick(player_nr) & JOY_BUTTON); + + /* wait until the last pressed button was released */ + while(Joystick(player_nr) & JOY_BUTTON) + { + if (PendingEvent()) /* got event */ + { + Event event; + + NextEvent(&event); + HandleOtherEvents(&event); + + Delay(10); + } + } return; error_out: