Permalink
Commits on Jun 18, 2016
  1. @DanielGibson

    Version 1.4.1

    DanielGibson committed Jun 18, 2016
Commits on Dec 23, 2015
  1. @DanielGibson

    1.4.1 Release Candidate 1

    DanielGibson committed Dec 23, 2015
Commits on Dec 17, 2015
  1. @DanielGibson

    Fix new[]/delete missmatches and memory leaks found by clang's ASAN

    Sometimes memory was allocated with new[] but freed with delete instead
    of delete[], which is wrong.
    And there were some small memory leaks, too.
    Furtunately clang's AddressSanitizer detected all that so I could easily
    fix it.
    
    (There seem to be some more small memory leaks which are harder to fix,
    though)
    DanielGibson committed Dec 17, 2015
  2. @DanielGibson

    Fix heap corruption when loading (broken?) .ma models

    On FreeBSD, the game used to crash when loading the last level of RoE
    (d3xp), while loading models/david/hell_h7.ma.
    The problem could be reproduced on Linux whith #define USE_LIBC_MALLOC 1
    and clang's AddressSanitizer.
    Turns out that this file specifies a vertex transform for a non-existent
    vertex (index 31, while we only have 0-30) and thus the bounds of
    pMesh->vertexes[] are violated.
    I added a check to ensure the index is within the bounds and a Warning
    if it isn't.
    It should work now. If however it turns out that more files have this
    problem, maybe .ma is parsed incorrectly and we need a differently fix.
    
    (Should) fix #138
    DanielGibson committed Dec 17, 2015
Commits on Dec 13, 2015
  1. @DanielGibson

    small improvement for handling up to 8 mouse buttons

    as we do int buttonIndex = ev.button.button - SDL_BUTTON_LEFT;
    it's only consistent to do if(ev.button.button < SDL_BUTTON_LEFT + 8)
    
    it doesn't really make any difference as long as SDL_BUTTON_LEFT is 1,
    but this way it's safe for SDL3 or whatever future version might break
    the ABI.
    DanielGibson committed Dec 13, 2015
  2. @twolife @DanielGibson

    handle up to 8 buttons with SDL2 based on RobertBeckebans/RBDOOM-3-BF…

    …G#213
    
    it's buggy on Linux/X11 before 2.0.4, but it works fine on other platforms
    extra bonus: don't generate garbage events for unknown mouse buttons
    twolife committed with DanielGibson Oct 11, 2015
  3. @DanielGibson

    Unix: On failed assertion, break gracefully into debugger

    __builtin_trap() causes an illegal instruction and thus the process
    can't resume afterwards.
    raise(SIGTRAP) only breaks into the debugger and thus allows to
    "ignore" the assertion while debugging.
    DanielGibson committed Dec 13, 2015
  4. @DanielGibson

    Fix crash by assert in last RoE level (and maybe elsewhere)

    The assertion in idBounds::operator-(const idBounds&) was triggered
    from idWeapon::Event_LaunchProjectiles() (ownerBounds - projBounds)
    It only happened when using the BFG.
    So I added a check to make sure calling operator- is legal.
    
    I guess this also caused #122
    DanielGibson committed Dec 13, 2015
Commits on Nov 22, 2015
  1. @DanielGibson

    Workaround to better support AZERTY keyboards

    The first row of AZERTY-Keyboards (used in France and Belgium) doesn't
    have numbers as keys but ², &, é, ", ', (, -, è, _, ç, à, ), =
    (with small differences between France and Belgium).
    For some of those keys we don't have keycodes - and neither does SDL2.
    See also https://bugzilla.libsdl.org/show_bug.cgi?id=3188
    
    As a workaround, just map those keys to 1, 2, ..., 9, 0 anyway, as those
    are keys Quake2 already knows (and those chars are printed on the keys
    too, for typing they're reachable via shift).
    This workaround only works for SDL2, as SDL1.2 doesn't have Scancodes
    which we need to identify the keys.
    
    This should obsolete one part of pull request #135
    DanielGibson committed Nov 22, 2015
Commits on Oct 30, 2015
  1. @DanielGibson

    Sort vidmodes in menu, add 2880x1800

    it's the native resolution of "Macbook Pro retina 15-inch mid 2014"
    DanielGibson committed Oct 30, 2015
Commits on Oct 23, 2015
  1. @DanielGibson

    ignore unknown SDL events

    they just spam the console and don't matter anyway.
    for example, on OS X you get lots of SDL_FINGER* events that spam
    the console.
    DanielGibson committed Oct 23, 2015
  2. @DanielGibson

    README: changed cmake example command line for OSX

    .. to the directories that seem to be used by brew on OSX 10.11
    DanielGibson committed Oct 23, 2015
Commits on Oct 20, 2015
  1. @DanielGibson

    README: mention that there are still shadows

    .. despite the lack of depth-fail ("Carmack's Reverse"), which doesn't really matter for that reason.
    
    I have the impression that some people didn't get this.
    DanielGibson committed Oct 20, 2015
Commits on Oct 14, 2015
  1. @DanielGibson

    README: call it "source port", mention OSX

    "source port" is the usual term for this and what people will probably google for.
    mentioning the tested platforms right at beginning might also be helpful for people.
    
    also (hopefully) clarified what EFX/EAX is about, some people who wrote comments
    about the release seemed confused about that.
    DanielGibson committed Oct 14, 2015
Commits on Oct 11, 2015
  1. @DanielGibson

    Win32: Don't access FILE::_file, use _fileno() instead

    It has always been ugly to do that with and MSVC2015 doesn't seem to
    work at all.
    DanielGibson committed Oct 11, 2015
  2. @leffmann @DanielGibson
  3. @leffmann @DanielGibson
  4. @leffmann @DanielGibson
Commits on Oct 10, 2015
  1. @DanielGibson

    make idlib build with Visual Studio 14

    leffmann committed with DanielGibson Oct 10, 2015
  2. @DanielGibson

    change version number to 1.4.1pre

    so hopefully people trying code from git won't report problems (that
    might be new) as bugs in 1.4.0
    DanielGibson committed Oct 10, 2015
Commits on Oct 9, 2015
  1. @DanielGibson
  2. @DanielGibson

    Version 1.4.0

    Thanks to all the testers!
    Especially from http://idtechforums.fuzzylogicinc.com/
    http://www.holarse-linuxgaming.de/ (special thanks to NoXPhasma!)
    http://www.quakehaus.com/ and #iodoom3.
    
    Also many thanks to everyone reporting bugs and sending pull requests
    over the years.
    And dhewg of course for starting this and doing all the hard work :-)
    DanielGibson committed Oct 9, 2015
Commits on Oct 5, 2015
  1. @DanielGibson

    Get rid of "WARNING: unknown event 770" on Windows

    It's an SDL_TEXTEDITING event which we seem to get on Windows whenever
    the Window gains focus (or is created). I think it can be safely
    ignored, so that's what I do.
    
    I also changed how those warnings are printed - as a hex number now,
    because they're defined as hex numbers in the SDL source and it's easier
    to find out what kind of event it is this way.
    DanielGibson committed Oct 5, 2015
Commits on Oct 3, 2015
  1. @DanielGibson
  2. @DanielGibson

    Esc should only open menu if shift isn't pressed (=> shift+esc for co…

    …nsole)
    
    When ingame, Shift-Esc would open the menu and another Shift-Esc the
    console. Now it immediately opens the console and only Esc without
    Shift opens the menu.
    DanielGibson committed Oct 3, 2015
  3. @DanielGibson

    Merge pull request #121 from svdijk/master

    Win32: Add an icon to the dhewm3 executable
    
    + changes to CMakeLists.txt to make it possible by preventing that all kinds of C/C++ compiler flags
    are set for windres which doesn't like them
    DanielGibson committed Oct 3, 2015
  4. @svdijk
Commits on Sep 30, 2015
  1. @DanielGibson

    Update README: Use Homebrew instead of MacPorts for dependencies on OS X

    I heard MacPorts is dead and the cool kids use Homebrew now.
    DanielGibson committed Sep 30, 2015
  2. @DanielGibson

    Fix mouse cursor moving to fast in fullscreen GUIs (main menu, PDA)

    The fullscreen guis pretend to be 640x480 internally, also for the mouse
    cursor position. So adding the actually moved pixels (when playing the
    game at a higher resolution) to the GUIs cursor position makes it move
    too fast.
    To fix that I detect (hopefully that check is reliable!) if the
    idUserInterfaceLocal instance is a fullscreen GUI and if so scale the
    reported mouse moved pixels with 640/actual_window_width and
    480/actual_window_height.
    DanielGibson committed Sep 30, 2015
  3. @DanielGibson

    Sys_GetEvent(): Don't return res_none when more events are available

    If res_none (event with .evType == EV_NONE) is returned,
    idEventLoop::RunEventLoop() will assume there are no more events this
    frame => pending events will be delayed til next frame (or later if
    again res_none is returned in the meantime).
    So res_none shouldn't be returned just because there was an SDL event
    we didn't care about or we did care about but don't generate a doom3
    event for (but toggle fullscreen or something).
    Instead we should just fetch and handle the next SDL event.
    DanielGibson committed Sep 30, 2015
  4. @DanielGibson

    no allocation per SDL_TEXTINPUT event

    those event have a max size (SDL_TEXTINPUTEVENT_TEXT_SIZE) so we can
    just use a static buffer.
    DanielGibson committed Sep 30, 2015
  5. @franmagneto @DanielGibson
  6. @DanielGibson

    Linux: Fix fallback to look for gamedata in /usr/local/games/doom3/

    Before checking there I look for gamedata next to the executable, but
    the check was broken: I got the directory the executable is in and
    checked if it exists.. well.. of course it does, but that doesn't mean
    there's game data in it..
    So now I check if that directory actually has a "base/" subdirectory
    (or whatever is #defined in BASE_GAMEDIR) and if that fails
    /usr/local/games/doom3/ is tried instead.
    
    Thanks chungy for pointing the bug out in #97 !
    DanielGibson committed Sep 30, 2015
Commits on Sep 29, 2015
  1. @DanielGibson

    Change default values for some video and sound (EAX) CVars

    * r_mode defaults to 5 (1024x768), I think that's more sane than 640x480
    * r_fullscreen defaults to 0 (=> windowed mode) because fullscreen in
      the wrong resolution sucks.. let people do their initial configuration
      in windowed mode
    * r_swapInterval defaults to 1 (=> VSync active by default) because that
      makes the game feel more smooth and most PCs should be able to 60fps
      in this 11years old game anyway
    
    * s_useEAXReverb defaults to 1 (=> use EAX/EFX effects by default),
      because OpenAL-soft supports them on all platforms/hardware and if
      for some reason the used OpenAL implementation doesn't support it,
      it's deactivated automatically anyway.
    
    All these things can be configured in the Options Menu.
    DanielGibson committed Sep 29, 2015
Commits on Sep 28, 2015
  1. @DanielGibson

    Nasty hack to show more default resolutions in menu

    the resolutions are really hardcoded in an ugly combination of the
    values r_mode supports, a string in strings/*.lang ("#str_04222")
    describing the resolutions r_mode supports
    ("640x480;800x600;1024x768;1152x864;1280x1024;1600x1200")
    and a string in mainmenu.gui with the corresponding r_mode values
    ("3;4;5;6;7;8").. as neither the strings nor mainmenu.gui are GPL'ed
    I can't really redistribute a changed version of them.
    
    So I added lots of resolutions to r_vidModes and wrote two functions
    that generate the resolutions list string and r_mode value
    string for the GUI.
    Then I added a hack in the code that detects when the "window" for the
    system options ("choiceDef OS2Primary") is created and overwrites the
    hardcoded strings with custom ones from my new functions.
    
    This is tested with both the main game and the official d3xp
    (Resurrection of Evil) Addon.
    No idea if it works with other mods, depends on whether they just copied
    that part of the menu or wrote their own.
    DanielGibson committed Sep 27, 2015