Permalink
Switch branches/tags
Nothing to show
Commits on Oct 17, 2018
  1. Make Team Arena prevTeamMember command loop around player list

    zturtleman committed Oct 17, 2018
    Team Arena HUD's team member info box can be cycled through using
    nextTeamMember and prevTeamMember commands. nextTeamMember command loops
    around when end of list is reached but prevTeamMember command got stuck
    at last entry in list (team overview).
Commits on Oct 2, 2018
  1. Don't use host pkg-config when cross-compiling

    zturtleman committed Oct 2, 2018
    Fix cross-compiling using mingw-w64 on Ubuntu 18.04.
    
    pkg-config --cflags libcurl is now pulling in a Linux include directory
    which breaks compiling.
  2. Make s_info command display channels instead of stereo

    zturtleman committed Oct 2, 2018
    channels-1 was displayed as '# stereo', affectively a boolean for
    mono or stereo. However '3 stereo' for quad surround sound doesn't
    make sense.
  3. Fix SDL audio playback with 16-bit stereo sound

    zturtleman committed Oct 2, 2018
    My commit last month "Fix SDL audio playback with surround sound" broke
    16-bit stereo sound. S_TransferStereo16() still assumed that dma.samples
    was a power of two. I also cleaned up code related to the previously
    mentioned commit.
Commits on Sep 30, 2018
  1. Disable pulseaudio capture regardless of SDL version

    zturtleman committed Sep 30, 2018
    SDL changed version to 2.0.9 but the pulseaudio capture bug isn't fixed
    yet. Remove my version check.
Commits on Sep 15, 2018
  1. Fix predicting entity origin on rotating mover

    zturtleman committed Sep 15, 2018
    Based on G_TryPushingEntity() in code/game/g_mover.c.
Commits on Sep 13, 2018
  1. Fix SDL audio playback with surround sound

    zturtleman committed Sep 13, 2018
    If user has surround sound enabled, ioq3 would not play any sound.
    Fix painting sound buffer for 4/5.1 audio channels. Extra channels
    currently play no audio.
Commits on Sep 12, 2018
  1. Improve finding obelisk entitynum for bot AI

    zturtleman committed Sep 12, 2018
    BotSetEntityNumForGoal() was checking all entities that are not
    team_redobelisk (which is the obelisk visual entity) to find the
    untitled obelisk collision entity. This may fail in rare cases where
    there is an another entity within 10 units of the obelisk origin.
    Failing to find the correct entity may cause bots to not attack the
    obelisk.
    
    Instead add BotSetEntityNumForGoalWithActivator() for looking for the
    obelisk collision entity by activator classname (team_redobelisk) which
    should be less likely to find the wrong entity.
    
    This doesn't affect official Team Arena maps (unknown if it affects any
    others).
    
    Reversed strcmp check was reported by Thomas Köppe.
Commits on Aug 29, 2018
  1. Fix loading favorites as initial source in server browser

    zturtleman committed Aug 29, 2018
    When I added UIAS_GLOBAL0 in 2017 I missed changing ui_browserMaster
    range clamp from 6 to 7.
    
    Reported by cdev-tux.
Commits on Aug 2, 2018
  1. Calculate bounds for unanimated IQM models

    zturtleman committed Aug 2, 2018
    Bounds are optional for animated IQM models but are not possible to
    include with unanimated models (seems intended for use with separate
    model containing animations and bounds). Calculating bounds for
    unanimated IQM models fixes culling and head model on HUD which
    calculates position from model bounds.
Commits on Jul 31, 2018
  1. Fix axis returned by IQM's LerpTag

    zturtleman committed Jul 31, 2018
    The axis returned for IQM tag was the animation's joint rotation without
    the base frame joint rotation. It only worked correct for models that
    did not rotate the base frame joints.
Commits on Jul 27, 2018
  1. OpenGL2: Add GPU vertex skinning for IQM models

    zturtleman committed Jul 27, 2018
    Using GPU vertex skinning is significantly faster than CPU vertex
    skinning. Especially since OpenGL2 has to run R_VaoPackNormal() and
    R_VaoPackTangent() each vertex each frame which causes CPU vertex
    skinning to be significantly slower than OpenGL1 renderer.
  2. Improve IQM CPU vertex skinning performance

    zturtleman committed Jul 27, 2018
    Only calculate vertex blend matrix for each unique bone indexes/weights
    combination once per-surface instead of recalculating for each vertex.
    For best performance the model surfaces needs to use few vertex bone
    indexes and weights combinations.
    
    Unroll loops so GCC better optimizes them.
    
    In my tests drawing animated IQM may take 50% as long in opengl1 and
    70% as long in opengl2. It will vary by model though and might not
    help much at all.
    
    Made unanimated IQM models skip matrix math altogether.
  3. Improve IQM loading

    zturtleman committed Jul 27, 2018
    - Only allocate memory for vertex arrays that are present in the IQM
    file and are actually used (may not have colors or blend index/weights,
    don't load tangents in opengl1). (Colors is fixed to next commit.)
    - Explicitly handle loading IQM files without meshes (bones only).
    - Better IQM validation. Header data offset 0 mean data is not present
    in file. Check if required vertex arrays are present.
    
    This involved a lot of white space changes and moving code around.
  4. Fix IQM root joint backlerp when joint number is more than 0

    zturtleman committed Jul 27, 2018
    Backlerp for root joint (joint with no parent) was always applied to
    joint 0. This is an issue when a model has multiple root joints.
Commits on Jul 21, 2018
  1. OpenGL2: Misc fixes and cleanup

    zturtleman committed Jul 21, 2018
    Fix two constants in GLSL shaders. Remove f suffix from float and fix
    int to float assignment. They were causing shader compile errors in
    OpenGL ES 2 context.
    
    Remove disabling clip plane. Clip plane is unused and never enabled in
    the opengl2 renderer. Remove disabling it to avoid causing a GL error
    when using OpenGL 3.2 core profile or OpenGL ES.
    
    Make VAO cache vertex stride be size of srfVert_t since that is what
    is uploaded to the GPU. No behavior change. There is a disabled debug
    id in srfVert_t though which if enabled changes srfVert_t size.
  2. OpenGL2: Fix world VAO cache drawing when glIndex_t is unsigned short

    zturtleman committed Jul 21, 2018
    OpenGL ES is only required to support unsigned short for element buffer
    values.
    
    R_DrawElements() firstIndex argument was glIndex_t which caused element
    indexes to wrap around to 0 when glIndex_t is an unsigned short.
    (glIndex_t is an index into the vertexes buffer, not element buffer.)
    Change it to 'int' like tess.firstIndex which is passed to
    R_DrawElements().
    
    World VAO cache buffer size allowed storing more vertexes than unsigned
    short glIndex_t could reference. This resulted in the vertex indexes in
    the element buffer wrapping around to 0.
  3. Don't check fixed function GL extensions when using shader pipeline

    zturtleman committed Jul 21, 2018
    GL_TEXTURE_UNITS_ARB is not part of OpenGL ES 2 API and sets GL error.
    It's not part of OpenGL 3.2 core profile either.
  4. Load OpenGL ES 2.0 function procs

    zturtleman committed Jul 21, 2018
    Load functions procs supported by OpenGL ES 2.0, though there is not a
    compatible renderer yet. Change argument for GLimp_Init from coreContext
    to fixedFunction.
  5. Don't load non-core GL functions for OpenGL 3.2 core context

    zturtleman committed Jul 21, 2018
    Also declare the GL functions in tr_local.h so there is compile error
    for non-core GL functions instead of SEGFAULT from dereferencing a NULL
    pointer.
    
    Disable the non-functional stencil shadow code that hasn't been updated
    to use OpenGL 3.2 core compatible drawing.
  6. OpenGL1: Use RE_UploadCinematic() instead of duplicate code

    zturtleman committed Jul 21, 2018
    Already done in opengl2 renderer.
  7. Don't upload 8 bit grayscale images as 16 bit luminance

    zturtleman committed Jul 21, 2018
    Using more color bits than the source image provides shouldn't improve
    the quality.
  8. Fix renderer not clearing some GL extension variables at vid_restart

    zturtleman committed Jul 21, 2018
    If renderer is compiled into client (USE_RENDERER_DLOPEN=0) and after
    start up set r_allowExtension to 0 and run vid_restart, some extension
    were still used.
Commits on Jun 25, 2018
Commits on Jun 10, 2018
  1. Fix in_restart causing fatal error while video is shutdown

    zturtleman committed Jun 10, 2018
    Connecting to a server running a different fs_game and using a
    autoexec.cfg containing in_restart would hit a fatal error in IN_Init().
    
        IN_Init called before SDL_Init( SDL_INIT_VIDEO )
    
    Reported by smokey2k on the ioquake3 forum.
Commits on Jun 3, 2018
  1. Fix Linux uninstaller redirecting stderr to stdout in preuninstall.sh

    zturtleman committed Jun 3, 2018
    Last commit accidently made stderr redirect to stdout tty instead of
    /dev/null.
    
    Reported by @illwieckz.
  2. Fix Linux uninstaller requiring Bash

    zturtleman committed Jun 3, 2018
    Linux loki-setup uninstaller is failing on distros that have /bin/sh
    linked to Dash instead of Bash. Use standard shell method for
    redirecting stdout and stderr instead of a Bash specific method.
Commits on May 28, 2018
Commits on May 22, 2018
  1. Fix client kicked as unpure when missing the latest cgame/ui pk3s

    zturtleman committed May 22, 2018
    In 2013 ioquake3 stopped referencing the pk3 file that qagame.qvm was
    loaded from. This had the unintended side affect of causing
    non-dedicated pure servers to no longer reference a pk3 that only
    contains the three QVM files.
    
    Non-dedicated pure servers did not reference the pk3 containing the
    latest cgame.qvm so if client did not have the pk3 file they were kicked
    as unpure instead of the client trying to download the pk3 file.
    
    Also make server touch ui.qvm since it's required to pass pure check and
    may be separate from cgame.qvm.
Commits on May 14, 2018
  1. Fix console offset while Team Arena voiceMenu is open

    zturtleman committed May 14, 2018
    Fix console text being on top of the Tema Arena voice chat head in
    screen resolutions higher than 640x480.
Commits on May 12, 2018
  1. Use SDL 2.0.1 headers for macOS ppc64

    zturtleman committed May 12, 2018
    The libSDL2-2.0.0.dylib in repo doesn't support ppc64 though.
    
    Based on patch by MAN-AT-ARMS.