foxygit / doom Log in
commit 1430facdb3ae25a92d515bc1daf71c860ef20f1e
Merge: 42445b60 f30f390e
Author:     Simon Howard <fraggle@soulsphere.org>
AuthorDate: Thu Jun 4 21:07:07 2015 -0400
Commit:     Simon Howard <fraggle@soulsphere.org>
CommitDate: Thu Jun 4 21:07:07 2015 -0400

    Merge branch 'master' into sdl2-branch

    Conflicts:
            src/i_video.c
            src/setup/display.c
            textscreen/txt_sdl.c

 HACKING                         |   13 +-
 NEWS                            |  115 +++
 PHILOSOPHY                      |   32 +-
 codeblocks/doom.cbp             |    3 +
 configure.ac                    |    2 +-
 data/Makefile.am                |    4 +-
 man/Makefile.am                 |   98 ++-
 man/chocolate-server.6          |    2 +-
 man/docgen                      |    2 +
 man/environ.man                 |    2 +-
 opl/examples/Makefile.am        |    2 +-
 opl/examples/droplay.c          |    1 +
 opl/opl.c                       |   82 +-
 opl/opl.h                       |    6 +-
 opl/opl_sdl.c                   |   41 +-
 src/Makefile.am                 |    6 +-
 src/aes_prng.c                  | 1717 +++++++++++++++++-------------------
 src/d_iwad.c                    |    6 +-
 src/d_loop.c                    |   27 +-
 src/deh_io.c                    |    6 +-
 src/doom.desktop.in             |    1 +
 src/doom/Makefile.am            |    2 +-
 src/doom/d_main.c               |   36 +-
 src/doom/d_player.h             |    2 +-
 src/doom/doom.desktop.in        |    7 -
 src/doom/g_game.c               |   37 +-
 src/doom/p_inter.c              |   15 +-
 src/doom/p_map.c                |    2 +-
 src/doom/p_maputl.c             |    4 +-
 src/doom/p_saveg.c              |    4 +-
 src/doom/p_setup.c              |    5 +-
 src/doom/p_tick.c               |    8 +-
 src/doom/s_sound.c              |    4 +-
 src/doom/st_stuff.c             |   11 +-
 src/doomtype.h                  |    4 +
 src/gusconf.c                   |    2 +-
 src/gusconf.h                   |    2 +-
 src/heretic.desktop.in          |    1 +
 src/heretic/Makefile.am         |   10 +-
 src/heretic/d_main.c            |   23 +-
 src/heretic/f_finale.c          |    4 +-
 src/heretic/g_game.c            |   11 +-
 src/heretic/i_ibm.c             | 1642 ----------------------------------
 src/heretic/i_sound.c           |  426 ---------
 src/heretic/in_lude.c           |   13 +-
 src/heretic/mn_menu.c           |    1 +
 src/heretic/p_enemy.c           |    4 +-
 src/heretic/p_map.c             |    2 +-
 src/heretic/p_maputl.c          |    2 +-
 src/heretic/p_pspr.c            |    2 +-
 src/heretic/p_saveg.c           |    2 +
 src/heretic/p_tick.c            |    6 +-
 src/heretic/r_things.c          |    2 +-
 src/heretic/s_sound.c           |    1 +
 src/heretic/sb_bar.c            |    7 +-
 src/hexen.desktop.in            |    1 +
 src/hexen/Makefile.am           |   10 +-
 src/hexen/a_action.c            |    6 +-
 src/hexen/am_map.c              |   16 +-
 src/hexen/ct_chat.c             |    6 +-
 src/hexen/d_net.c               |    6 +-
 src/hexen/f_finale.c            |    5 +-
 src/hexen/g_game.c              |   45 +-
 src/hexen/h2_main.c             |   88 +-
 src/hexen/h2def.h               |    1 +
 src/hexen/i_header.h            |   92 --
 src/hexen/i_ibm.c               | 1837 ---------------------------------------
 src/hexen/i_sound.c             |  402 ---------
 src/hexen/in_lude.c             |   17 +-
 src/hexen/m_misc.c              |   21 -
 src/hexen/mn_menu.c             |    4 +-
 src/hexen/p_acs.c               |    4 +-
 src/hexen/p_enemy.c             |    8 +-
 src/hexen/p_inter.c             |    6 +
 src/hexen/p_map.c               |    2 +-
 src/hexen/p_maputl.c            |    2 +-
 src/hexen/p_mobj.c              |    6 +-
 src/hexen/p_setup.c             |   14 +-
 src/hexen/p_spec.c              |    2 +-
 src/hexen/p_switch.c            |   23 +-
 src/hexen/p_tick.c              |   14 +-
 src/hexen/p_user.c              |    4 +-
 src/hexen/r_draw.c              |    4 +-
 src/hexen/r_things.c            |    6 +-
 src/hexen/s_sound.c             |    1 +
 src/hexen/sb_bar.c              |   47 +-
 src/hexen/sv_save.c             |   52 +-
 src/i_joystick.c                |   18 +-
 src/i_main.c                    |   96 --
 src/i_oplmusic.c                |  308 ++++++-
 src/i_scale.c                   |    4 -
 src/i_sdlmusic.c                |   11 +-
 src/i_sdlsound.c                |    4 +-
 src/i_sound.c                   |   37 +-
 src/i_sound.h                   |    8 +
 src/i_video.c                   |  120 +++
 src/m_config.c                  |   69 +-
 src/m_config.h                  |    6 +-
 src/m_controls.c                |  250 +++---
 src/m_misc.c                    |   10 +-
 src/midifile.c                  |    8 +-
 src/net_client.c                |    6 +-
 src/net_sdl.c                   |   26 +-
 src/net_server.c                |    3 +-
 src/net_structrw.c              |    2 +-
 src/resource.rc.in              |    4 +-
 src/setup-res.rc.in             |    4 +-
 src/setup/Makefile.am           |    2 +-
 src/setup/compatibility.c       |   10 +-
 src/setup/display.c             |   31 +-
 src/setup/execute.c             |    1 +
 src/setup/joystick.c            |   94 +-
 src/setup/keyboard.c            |   10 +-
 src/setup/mainmenu.c            |    6 +-
 src/setup/mode.c                |   19 +-
 src/setup/mouse.c               |   18 +-
 src/setup/multiplayer.c         |   21 +-
 src/setup/sound.c               |  107 ++-
 src/setup/txt_joyaxis.c         |    4 +
 src/sha1.c                      |    6 +-
 src/strife.desktop.in           |    1 +
 src/strife/Makefile.am          |    2 +-
 src/strife/d_englsh.h           |    2 +-
 src/strife/d_main.c             |   47 +-
 src/strife/f_finale.c           |    8 +-
 src/strife/g_game.c             |   12 +-
 src/strife/p_dialog.c           |    1 +
 src/strife/p_enemy.c            |    4 +-
 src/strife/p_inter.c            |   10 +-
 src/strife/p_map.c              |    2 +-
 src/strife/p_maputl.c           |    2 +-
 src/strife/p_saveg.c            |    4 +-
 src/strife/p_setup.c            |    7 +-
 src/strife/p_tick.c             |    7 +-
 src/strife/r_things.c           |   14 +-
 src/strife/s_sound.c            |    8 +-
 src/strife/st_stuff.c           |    4 +-
 src/w_wad.c                     |   87 +-
 src/w_wad.h                     |    1 +
 src/z_zone.c                    |   86 +-
 textscreen/Makefile.am          |    2 +-
 textscreen/examples/Makefile.am |    2 +-
 textscreen/examples/guitest.c   |    2 +
 textscreen/txt_desktop.c        |   85 +-
 textscreen/txt_desktop.h        |    2 +-
 textscreen/txt_gui.c            |    4 +-
 textscreen/txt_io.c             |    4 +-
 textscreen/txt_sdl.c            |   10 +-
 textscreen/txt_window.c         |   75 +-
 textscreen/txt_window.h         |   22 +
 textscreen/txt_window_action.c  |    1 +
 151 files changed, 2875 insertions(+), 6190 deletions(-)

diff --cc src/i_video.c
index af409ba6,ec0fc58f..5e90c1df
--- a/src/i_video.c
+++ b/src/i_video.c
@@@ -433,35 -449,94 +433,121 @@@ void I_EnableLoadingDisk(void
  // Translates the SDL key
  //

 -static int TranslateKey(SDL_keysym *sym)
 +static int TranslateKey(SDL_Keysym *sym)
  {
++<<<<<<< HEAD
 +    int scancode = sym->scancode;
 +
 +    switch (scancode)
 +    {
 +        case SDL_SCANCODE_LCTRL:
 +        case SDL_SCANCODE_RCTRL:
 +            return KEY_RCTRL;
 +
 +        case SDL_SCANCODE_LSHIFT:
 +        case SDL_SCANCODE_RSHIFT:
 +            return KEY_RSHIFT;
++=======
+     switch(sym->sym)
+     {
+       case SDLK_LEFT:	return KEY_LEFTARROW;
+       case SDLK_RIGHT:	return KEY_RIGHTARROW;
+       case SDLK_DOWN:	return KEY_DOWNARROW;
+       case SDLK_UP:	return KEY_UPARROW;
+       case SDLK_ESCAPE:	return KEY_ESCAPE;
+       case SDLK_RETURN:	return KEY_ENTER;
+       case SDLK_TAB:	return KEY_TAB;
+       case SDLK_F1:	return KEY_F1;
+       case SDLK_F2:	return KEY_F2;
+       case SDLK_F3:	return KEY_F3;
+       case SDLK_F4:	return KEY_F4;
+       case SDLK_F5:	return KEY_F5;
+       case SDLK_F6:	return KEY_F6;
+       case SDLK_F7:	return KEY_F7;
+       case SDLK_F8:	return KEY_F8;
+       case SDLK_F9:	return KEY_F9;
+       case SDLK_F10:	return KEY_F10;
+       case SDLK_F11:	return KEY_F11;
+       case SDLK_F12:	return KEY_F12;
+       case SDLK_PRINT:  return KEY_PRTSCR;
+
+       case SDLK_BACKSPACE: return KEY_BACKSPACE;
+       case SDLK_DELETE:	return KEY_DEL;
+
+       case SDLK_PAUSE:	return KEY_PAUSE;
+
+       case SDLK_EQUALS: return KEY_EQUALS;
+
+       case SDLK_MINUS:          return KEY_MINUS;
+
+       case SDLK_LSHIFT:
+       case SDLK_RSHIFT:
+ 	return KEY_RSHIFT;
+
+       case SDLK_LCTRL:
+       case SDLK_RCTRL:
+ 	return KEY_RCTRL;
+
+       case SDLK_LALT:
+       case SDLK_RALT:
+       case SDLK_LMETA:
+       case SDLK_RMETA:
+         return KEY_RALT;
+
+       case SDLK_CAPSLOCK: return KEY_CAPSLOCK;
+       case SDLK_SCROLLOCK: return KEY_SCRLCK;
+       case SDLK_NUMLOCK: return KEY_NUMLOCK;
+
+       case SDLK_KP0: return KEYP_0;
+       case SDLK_KP1: return KEYP_1;
+       case SDLK_KP2: return KEYP_2;
+       case SDLK_KP3: return KEYP_3;
+       case SDLK_KP4: return KEYP_4;
+       case SDLK_KP5: return KEYP_5;
+       case SDLK_KP6: return KEYP_6;
+       case SDLK_KP7: return KEYP_7;
+       case SDLK_KP8: return KEYP_8;
+       case SDLK_KP9: return KEYP_9;
+
+       case SDLK_KP_PERIOD:   return KEYP_PERIOD;
+       case SDLK_KP_MULTIPLY: return KEYP_MULTIPLY;
+       case SDLK_KP_PLUS:     return KEYP_PLUS;
+       case SDLK_KP_MINUS:    return KEYP_MINUS;
+       case SDLK_KP_DIVIDE:   return KEYP_DIVIDE;
+       case SDLK_KP_EQUALS:   return KEYP_EQUALS;
+       case SDLK_KP_ENTER:    return KEYP_ENTER;
+
+       case SDLK_HOME: return KEY_HOME;
+       case SDLK_INSERT: return KEY_INS;
+       case SDLK_END: return KEY_END;
+       case SDLK_PAGEUP: return KEY_PGUP;
+       case SDLK_PAGEDOWN: return KEY_PGDN;
+
+ #ifdef SDL_HAVE_APP_KEYS
+         case SDLK_APP1:        return KEY_F1;
+         case SDLK_APP2:        return KEY_F2;
+         case SDLK_APP3:        return KEY_F3;
+         case SDLK_APP4:        return KEY_F4;
+         case SDLK_APP5:        return KEY_F5;
+         case SDLK_APP6:        return KEY_F6;
+ #endif
++>>>>>>> master

 -      default:
 -        return tolower(sym->sym);
 +        case SDL_SCANCODE_LALT:
 +            return KEY_LALT;
 +
 +        case SDL_SCANCODE_RALT:
 +            return KEY_RALT;
 +
 +        default:
 +            if (scancode >= 0 && scancode < arrlen(scancode_translate_table))
 +            {
 +                return scancode_translate_table[scancode];
 +            }
 +            else
 +            {
 +                return 0;
 +            }
      }
  }

@@@ -882,8 -922,8 +968,13 @@@ static void UpdateGrab(void
          // because we're at an end of level intermission screen, for
          // example.

++<<<<<<< HEAD
 +        SDL_GetWindowSize(screen, &screen_w, &screen_h);
 +        SDL_WarpMouseInWindow(screen, screen_w - 16, screen_h - 16);
++=======
+         SDL_WarpMouse(screen->w - 16, screen->h - 16);
+         SDL_PumpEvents();
++>>>>>>> master
          SDL_GetRelativeMouseState(NULL, NULL);
      }

@@@ -1934,6 -2008,12 +2025,15 @@@ void I_InitGraphics(void
          I_Error("Failed to initialize video: %s", SDL_GetError());
      }

++<<<<<<< HEAD
++=======
+     // Set up title and icon.  Windows cares about the ordering; this
+     // has to be done before the call to SDL_SetVideoMode.
+
+     I_InitWindowTitle();
+     I_InitWindowIcon();
+
++>>>>>>> master
      // Warning to OS X users... though they might never see it :(
  #ifdef __MACOSX__
      if (fullscreen)
@@@ -2052,22 -2148,44 +2152,42 @@@

  void I_BindVideoVariables(void)
  {
++<<<<<<< HEAD
 +    M_BindVariable("use_mouse",                 &usemouse);
 +    M_BindVariable("autoadjust_video_settings", &autoadjust_video_settings);
 +    M_BindVariable("fullscreen",                &fullscreen);
 +    M_BindVariable("aspect_ratio_correct",      &aspect_ratio_correct);
 +    M_BindVariable("startup_delay",             &startup_delay);
 +    M_BindVariable("screen_width",              &screen_width);
 +    M_BindVariable("screen_height",             &screen_height);
 +    M_BindVariable("grabmouse",                 &grabmouse);
 +    M_BindVariable("mouse_acceleration",        &mouse_acceleration);
 +    M_BindVariable("mouse_threshold",           &mouse_threshold);
 +    M_BindVariable("video_driver",              &video_driver);
 +    M_BindVariable("window_position",           &window_position);
 +    M_BindVariable("usegamma",                  &usegamma);
 +    M_BindVariable("vanilla_keyboard_mapping",  &vanilla_keyboard_mapping);
 +    M_BindVariable("novert",                    &novert);
 +    M_BindVariable("png_screenshots",           &png_screenshots);
++=======
+     M_BindIntVariable("use_mouse",                 &usemouse);
+     M_BindIntVariable("autoadjust_video_settings", &autoadjust_video_settings);
+     M_BindIntVariable("fullscreen",                &fullscreen);
+     M_BindIntVariable("aspect_ratio_correct",      &aspect_ratio_correct);
+     M_BindIntVariable("startup_delay",             &startup_delay);
+     M_BindIntVariable("screen_width",              &screen_width);
+     M_BindIntVariable("screen_height",             &screen_height);
+     M_BindIntVariable("screen_bpp",                &screen_bpp);
+     M_BindIntVariable("grabmouse",                 &grabmouse);
+     M_BindFloatVariable("mouse_acceleration",      &mouse_acceleration);
+     M_BindIntVariable("mouse_threshold",           &mouse_threshold);
+     M_BindStringVariable("video_driver",           &video_driver);
+     M_BindStringVariable("window_position",        &window_position);
+     M_BindIntVariable("usegamma",                  &usegamma);
+     M_BindIntVariable("vanilla_keyboard_mapping",  &vanilla_keyboard_mapping);
+     M_BindIntVariable("novert",                    &novert);
+     M_BindIntVariable("png_screenshots",           &png_screenshots);
 -
 -    // Windows Vista or later?  Set screen color depth to
 -    // 32 bits per pixel, as 8-bit palettized screen modes
 -    // don't work properly in recent versions.
 -
 -#if defined(_WIN32) && !defined(_WIN32_WCE)
 -    {
 -        OSVERSIONINFOEX version_info;
 -
 -        ZeroMemory(&version_info, sizeof(OSVERSIONINFOEX));
 -        version_info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
 -
 -        GetVersionEx((OSVERSIONINFO *) &version_info);
 -
 -        if (version_info.dwPlatformId == VER_PLATFORM_WIN32_NT
 -         && version_info.dwMajorVersion >= 6)
 -        {
 -            screen_bpp = 32;
 -        }
 -    }
 -#endif
++>>>>>>> master

      // Disable fullscreen by default on OS X, as there is an SDL bug
      // where some old versions of OS X (<= Snow Leopard) crash.
diff --cc src/setup/display.c
index 6811f37a,e94db94e..3ebdb931
--- a/src/setup/display.c
+++ b/src/setup/display.c
@@@ -464,18 -706,19 +470,17 @@@ void ConfigDisplay(void

  void BindDisplayVariables(void)
  {
-     M_BindVariable("autoadjust_video_settings", &autoadjust_video_settings);
-     M_BindVariable("aspect_ratio_correct",      &aspect_ratio_correct);
-     M_BindVariable("fullscreen",                &fullscreen);
-     M_BindVariable("screen_width",              &screen_width);
-     M_BindVariable("screen_height",             &screen_height);
-     M_BindVariable("startup_delay",             &startup_delay);
-     M_BindVariable("video_driver",              &video_driver);
-     M_BindVariable("window_position",           &window_position);
-     M_BindVariable("usegamma",                  &usegamma);
-     M_BindVariable("png_screenshots",           &png_screenshots);
-
+     M_BindIntVariable("autoadjust_video_settings", &autoadjust_video_settings);
+     M_BindIntVariable("aspect_ratio_correct",      &aspect_ratio_correct);
+     M_BindIntVariable("fullscreen",                &fullscreen);
+     M_BindIntVariable("screen_width",              &screen_width);
+     M_BindIntVariable("screen_height",             &screen_height);
 -    M_BindIntVariable("screen_bpp",                &screen_bpp);
+     M_BindIntVariable("startup_delay",             &startup_delay);
+     M_BindStringVariable("video_driver",           &video_driver);
+     M_BindStringVariable("window_position",        &window_position);
+     M_BindIntVariable("usegamma",                  &usegamma);
+     M_BindIntVariable("png_screenshots",           &png_screenshots);

 -
      if (gamemission == doom || gamemission == heretic
       || gamemission == strife)
      {
@@@ -484,9 -727,30 +489,9 @@@

      if (gamemission == heretic || gamemission == hexen || gamemission == strife)
      {
-         M_BindVariable("graphical_startup",        &graphical_startup);
+         M_BindIntVariable("graphical_startup",        &graphical_startup);
      }

 -    // Windows Vista or later?  Set screen color depth to
 -    // 32 bits per pixel, as 8-bit palettized screen modes
 -    // don't work properly in recent versions.
 -
 -#if defined(_WIN32) && !defined(_WIN32_WCE)
 -    {
 -        OSVERSIONINFOEX version_info;
 -
 -        ZeroMemory(&version_info, sizeof(OSVERSIONINFOEX));
 -        version_info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
 -
 -        GetVersionEx((OSVERSIONINFO *) &version_info);
 -
 -        if (version_info.dwPlatformId == VER_PLATFORM_WIN32_NT
 -         && version_info.dwMajorVersion >= 6)
 -        {
 -            screen_bpp = 32;
 -        }
 -    }
 -#endif
 -
      // Disable fullscreen by default on OS X, as there is an SDL bug
      // where some old versions of OS X (<= Snow Leopard) crash.

diff --cc src/setup/sound.c
index 5778e588,092a5dd8..aeb52d1c
--- a/src/setup/sound.c
+++ b/src/setup/sound.c
@@@ -55,8 -58,15 +57,14 @@@ static char *musicmode_strings[]
      "OPL (Adlib/SB)",
      "GUS (emulated)",
      "Native MIDI",
 -    "CD audio"
  };

+ static char *opltype_strings[] =
+ {
+     "OPL2",
+     "OPL3"
+ };
+
  static char *cfg_extension[] = { "cfg", NULL };

  // Config file variables: