Spyhawks notes

Skill rating

Various Legacy mod ideas

Ideas/Todo:
  • follow cvar: FT member first, only , or objective carrier first
  • revealed landmines notifications options
  • construct/destruct pm message + icon
  • add name of objective doers
  • improved compass indicator
  • allow map mortar icon when fieldops has no power bar
  • landmine spot location
  • spec label flash when in revive state
  • cvar gameplay change annoucement
  • ingame documentation
  • sound for blown cover, construction aera warning

Various stuff

SDL in OpenJK:

< Ensiform> i dunno if you checked our sdl/sys code now
23:24 < Ensiform> we did some differences from ioq3
23:24 < spyhawk> not really
23:25 < spyhawk> k, I’ll add this to my todo list
23:25 < Ensiform> error dialog code etc
23:25 < Ensiform> uses the SDL messagebox where possible
23:25 < Ensiform> and copies the log to homepath
23:25 < Ensiform> if possible
23:25 < Ensiform> if all else fails it will print to stder

Temp stuff:

[16:08] <Viech> I see. you could use exponential fading to have the recoil state linger around/reset smoothly without keeping much state. set a target recoil intensity when shooting or stopping to shoot and fade to that value framerate-independently
[16:09] <Ensiform> is unvanq planning on adding recoil for humans?
[16:09] <Viech> not currently planning to do that, but we use that for visible weapon inertia, hud alpha fading and the like
[16:10] <Viech> void ExponentialFade( float *value, float target, float lambda, float timedelta ) { *value = target + ( *value - target ) * exp( - lambda * timedelta ); }
[16:10] <Viech> the nice thing is that the timedelta allows you to use it in shared code and be in sync even with different framerates
[16:12] <Ensiform> hm
[16:12] <Viech> (weapon inertia means the weapon lags a bit when you turn around similiar to e.g. dayz, though it has no effect on the actual aim in unv)
[16:12] <spyhawk> Viech: thx. I guess that’s what we need to implement for FPS independant recoil\
[16:13] <Ensiform> possibly
[16:13] <Ensiform> using the cmd.serverTime ?
[16:14] <Viech> no problem timedelta is the frame time
[16:14] <Viech> #define CG_ExponentialFade( value, target, lambda ) ExponentialFade( (value), (target), (lambda), (float)cg.frametime * 0.001 );

Open Build Service

Provide packages for various Linux distributions.

Debug mode

Note: Optionally add +set developer 1 to the command line for more debug output.

# gdb --args ./etl +set r_fullscreen 0
# run
... wait until it crashes ...
# backtrace
... this will print useful info ...

Omnibot update

#!/bin/bash
# update-omnibot.sh

function getRevision {
    svn info $1 | sed -ne 's/^Revision: //p'
}

REPO_URL=https://subversion.assembla.com/svn/omnibot/Enemy-Territory/0.8
REVISION_REMOTE=$(getRevision ${REPO_URL})

echo "Latest Omni-bot revision is" ${REVISION_REMOTE}

if [ -d omni-bot ]; then
    REVISION_LOCAL=$(getRevision omni-bot)
    echo "Local Omni-bot revision is" ${REVISION_LOCAL} 

    if [ ${REVISION_REMOTE} -le ${REVISION_LOCAL} ]; then
    echo "Nothing to do." 
    exit 
    fi
fi

svn checkout --depth empty ${REPO_URL} omni-bot
svn update --set-depth infinity omni-bot/et
svn update -q --set-depth=exclude omni-bot/et/incomplete_navs
svn update --set-depth infinity omni-bot/global_scripts
svn update omni-bot/omnibot_et.so
svn update omni-bot/omnibot_et.x86_64.so
svn update omni-bot/omnibot_et.dll

rm -rf omni-bot/et/incomplete_navs

rm omnibot-linux-latest.tar.gz
tar --exclude '.svn/*' --exclude '.svn' --exclude '*.dll' -zcvf omnibot-linux-latest.tar.gz omni-bot

rm omnibot-windows-latest.zip
zip -r omnibot-windows-latest.zip omni-bot -x '*.svn*' -x '*.so'

Coverity scan script

#!/bin/bash

srcdir="$HOME/dev/etlegacy" 
covdir="$HOME/dev/etlegacy-cov" 
covver="linux64-8.5.0.5" 

token=xxxxxxxxxxxxxxxxxxxxxxxxxx
email=email@domain.tld

# ensure we are on master branch
cd $srcdir
git stash
git checkout master

# cleanup
[[ -e $srcdir/build ]] && rm -rf $srcdir/build

# build
[[ ! -e $srcdir/build ]] && mkdir -p $srcdir/build
cd "$srcdir/build" 

cmake .. \
    -DCMAKE_BUILD_TYPE='Debug' \
    -DCMAKE_INSTALL_PREFIX= \
    -DCMAKE_LIBRARY_PATH=/usr/lib \
    -DCMAKE_INCLUDE_PATH=/usr/include \
    -DCROSS_COMPILE32=0 \
    -DINSTALL_DEFAULT_BASEDIR=. \
    -DINSTALL_DEFAULT_BINDIR=. \
    -DINSTALL_DEFAULT_MODDIR=. \
    -DBUNDLED_LIBS=0 \
    -DINSTALL_OMNIBOT=0

# version check
version=$(git describe --always | sed -r 's/^v//;s/-/./g;')
version=${version:${#version} - 7}

# build
$covdir/cov-analysis-${covver}/bin/cov-build --dir ../../cov-int make -j 4

cd $srcdir/..
tar -czvf etlegacy-${version}.tgz cov-int

# upload
curl -k \
     --form token=${token} \
     --form email=${email} \
     --form file=@etlegacy-${version}.tgz \
     --form version="${version}" \
     --form description="development" \
    https://scan.coverity.com/builds?project=etlegacy%2Fetlegacy

# cleanup
rm $HOME/dev/etlegacy-${version}.tgz
[[ -e "$HOME/dev/cov-int" ]] &&  rm -rf "$HOME/dev/cov-int" 

# vim:set ts=4 sw=2 et: