pax_global_header 0000666 0000000 0000000 00000000064 15157553746 0014534 g ustar 00root root 0000000 0000000 52 comment=036daaf34f055b1efbcee6a4afc4d90a325ce569
ArmagetronAd-armagetronad-deec131/ 0000775 0000000 0000000 00000000000 15157553746 0017231 5 ustar 00root root 0000000 0000000 ArmagetronAd-armagetronad-deec131/.bzrignore 0000664 0000000 0000000 00000002403 15157553746 0021232 0 ustar 00root root 0000000 0000000 src/macosx/config_common.h
src/macosx/English.lproj/InfoPlist.strings
MacOS/Armagetron Advanced.xcodeproj/*.mode1v3
MacOS/Armagetron Advanced.xcodeproj/*.pbxuser
MacOS/Armagetron Advanced.xcodeproj/project.xcworkspace/
MacOS/Armagetron Advanced.xcodeproj/xcuserdata/
MacOS/build/
macosx_build_information.yml
*.DS_Store
.gdbinit
batch/rcd_config
batch/rcd_server
batch/rcd_startstop
batch/serverstarter
./armagetronad-dedicated
COPYING
ChangeLog
EclipseBuild
./INSTALL
./compile
Makefile.in
./aclocal.m4
./autom4te.cache
./config.h.in
./config.sub
./configure
./compile
./depcomp
./install-sh
./missing
./touch
./version.m4
src/doc/commands.txt
./.changetag
Makefile
./config.h
./config.log
./config.status
./config.guess
./extrapaths
./stamp-h1
./universal_variable*
batch/relocate
batch/relocate.in
batch/sysinstall
config/Makefile
config/aiplayers.cfg
config/rc.config
desktop/armagetronad.desktop
docker/scripts/.cache
language/languages.txt
resource/included/
resource/automatic/
.deps
src/armagetronad_main
src/nTrueVersion.h
src/tUniversalVariables.h
src/tUniversalVariables.h.in
.dummy.dep
src/doc/Doxyfile
*.html
html.m4
*.dep
src/test/chat_prefix_test
leak.log
memprofile1.txt
memprofile2.txt
a.out.dSYM
src/armagetronad_main_master
src/doc/COPYING.txt
rubbish
./version.h
ArmagetronAd-armagetronad-deec131/.cdtproject 0000664 0000000 0000000 00000021662 15157553746 0021402 0 ustar 00root root 0000000 0000000
make-k -C ../../cleanfalsefalsemake-k -C ../../beautifyfalsefalsemake-k -C ../../distcleanfalsefalsemake-C ../../cvscheckfalsefalsemake-C ../../distcheckfalsefalsemake-k -C ../../defaultfalsefalsemake-k -C ../../allfalsefalsemake-k -C ../../debugfalsefalsemake-k -C ../../optimizefalsefalsemake-k -C ../../clientfalsefalsemake-k -C ../../serverfalsefalsemake-k -C ../../server_debugfalsefalsemake-k -C ../../client_debugfalsefalsemake-k -C ../../server_optimizefalsefalsemake-k -C ../../client_optimizefalsefalsemake-k -C ../../default.globalfalsefalsemake-k -C ../../all.globalfalsefalsemake-k -C ../../debug.globalfalsefalsemake-k -C ../../optimize.globalfalsefalsemake-k -C ../../distclean.globalfalsefalsemake-k -C ../../clean.globalfalsefalsemake-C ../../client_debug.globalfalsefalsemake-k -C ../../server_debug.globalfalsefalsemake -k -C ../../server_optimize.globalfalsefalsemake -k -C ../../client_optimize.globalfalsefalsemake-C ../../cvscheck.globalfalsefalse
ArmagetronAd-armagetronad-deec131/.clang-format 0000664 0000000 0000000 00000003045 15157553746 0021606 0 ustar 00root root 0000000 0000000 Language: Cpp
# to apply these settings on git commit on changed lines only, the easiest way
# is to use pre-commit; read .pre-commit-config.yaml for details.
#
# Another way is this pre-commit hook:
# https://github.com/barisione/clang-format-hooks
# clone it somewhere, run '/path/to/clone/git-pre-commit-format install'
# test diff with
# git checkout src; find . -iname '*.h' -o -iname '*.cpp' | parallel clang-format -i; git diff src | wc -l
# diff count: 118038
# closest to our legacy style...
BasedOnStyle: Microsoft
IndentWidth: 4
AccessModifierOffset: -4
TabWidth: 4
UseTab: Never
# leave line breaks alone
ColumnLimit: 0
# note: it is still recommended to leave lines short, ideally below 80; but
# letting clang-format handle that does not work well enough and one needs
# to use tricks, like empty trailing comments.
# do not mess with includes
SortIncludes: false
# the code has them more often than not, and this follows the astyle config
# f( x ) instead of f(x)
# SpacesInParentheses: true
# But, I (Z-Man) don't like it any more. It does not improve readability.
# Might be my eyes, though.
# we have more "int* x" than "int *x" (or "int * x")
PointerAlignment: Left
AllowShortFunctionsOnASingleLine: true
AllowShortBlocksOnASingleLine: true
# Alignment options
# leave to individual choice for now
# AlignAfterOpenBracket: AlwaysBreak
#AlignConsecutiveMacros: false
#AlignConsecutiveAssignments: false
#AlignConsecutiveDeclarations: false
#AlignOperands: false
#AlignTrailingComments: true
#AllowAllConstructorInitializersOnNextLine: true
ArmagetronAd-armagetronad-deec131/.dockerignore 0000664 0000000 0000000 00000000261 15157553746 0021704 0 ustar 00root root 0000000 0000000 Dockerfile
dockerbuild
.dockerignore
.gitlab-ci.yml
.git
builds
docker
#!docker/scripts/*.sh
!docker/build/*.in
!docker/build/*.am
!docker/build/context/*.in
!docker/deploy/*.in ArmagetronAd-armagetronad-deec131/.editorconfig 0000664 0000000 0000000 00000001467 15157553746 0021716 0 ustar 00root root 0000000 0000000 # editor configuration. As close to the de facto style as possible
# this is the top level file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
# default indentation for C(++) and python files is spaces, four per level
indent_style = space
indent_size = 4
# Tab indentation for Makefiles (no size specified)
[Makefile{,.am,.in}]
indent_style = tab
# Tab indentation for shell scripts
[*.{sh,sh.in}]
indent_style = tab
# map files
[*.xml]
indent_style = tab
# appstream files
[*appdata.xml.in]
indent_style = space
indent_size = 2
# special C++ settings
[*.{c,h,cpp,hpp}]
curly_bracket_next_line = true
indent_brace_style = Allman
# language files are still latin1
[deutsch.txt,french.txt,polish.txt,spanish.txt]
charset = latin1
ArmagetronAd-armagetronad-deec131/.gitignore 0000664 0000000 0000000 00000003520 15157553746 0021221 0 ustar 00root root 0000000 0000000 *.DS_Store
Armagetron Advanced Dedicated
Armagetron Advanced.app
desktop/os-x/Info.plist
.gdbinit
.cache
.lock.*
docker/images/context
docker/deploy/*.gpg
docker/deploy/ssh
batch/rcd_config
batch/rcd_server
batch/rcd_startstop
batch/serverstarter
*.digest.local
./armagetronad-dedicated
COPYING
ChangeLog
EclipseBuild
/INSTALL
/compile
Makefile.in
/aclocal.m4
/autom4te.cache
/config.h.in
/config.sub
/configure
/builds
/depcomp
/install-sh
/ylwrap
/missing
/touch
/version.m4
src/doc/commands.txt
./.changetag
Makefile
/config.h
/config.log
/config.status
/config.guess
/extrapaths
/stamp-h1
/universal_variable*
batch/relocate
batch/relocate.in
batch/sysinstall
config/Makefile
config/aiplayers.cfg
config/rc.config
desktop/armagetronad-armagetronad.desktop
language/languages.txt
language/*.bak
resource/included/
resource/automatic/
.deps
src/armagetronad_main
src/tTrueVersion.h
src/tUniversalVariables.h
src/tUniversalVariables.h.in
.dummy.dep
src/doc/Doxyfile
*.html
html.m4
*.dep
aa_config.h.in
/aa_config.h
*.pb.cc
*.pb.h
*.layout
*.depend
.objs
/build
.objs_release
desktop/armagetronad.protocol
src/vParser.cpp
src/protobuf/.dir
/armagetronad
/armagetronad-dedicated
/var
src/test/chat_prefix_test
leak.log
memprofile1.txt
memprofile2.txt
a.out.dSYM
src/tFakeVersion.h
config/settings_custom.cfg
config/server_info.cfg
src/armagetronad-serverquery
./rubbish
__pycache__
/src/armagetronad_serverquery
src/armagetronad_main_master
src/doc/COPYING.txt
rubbish
desktop/armagetronad-armagetronad-handler.desktop
desktop/armagetronad-link.xml
*.cbTemp
/version.h
*~
*.pyc
src/.cproject
src/.project
src/.settings
autogen.sh
.vscode
autogen.sh
*.o
*.a
*.dmg
*.tar.gz
*.zip
src/macosx/build_bundle.sh
desktop/armagetronad.desktop
docker/build/setup_ci_test.sh
docker/build/context/version.sh
docker/deploy/targets.sh
src/nTrueVersion.h
.changetag
fingerprint
wget-log*
ArmagetronAd-armagetronad-deec131/.gitlab-ci.yml 0000664 0000000 0000000 00000037275 15157553746 0021703 0 ustar 00root root 0000000 0000000 variables:
# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
#DOCKER_TLS_CERTDIR: "/certs"
#DOCKER_HOST: ""
HAS_ARMADEPLOY: "false"
STAGING_ENVIRONMENT: "invalid"
FINAL_ENVIRONMENT: "invalid"
PYTHONIOENCODING: "UTF-8"
# list of ubuntu releases to supply; stick to LTS ones here, not always up to date, use CI variable instead
UBUNTU_RELEASES: "noble jammy"
stages:
- minimal_build
- build_prepare
- build_base
- build_main
- build_collect
- test
- pre_stage
- stage
- pre_deploy
- deploy
default:
image: $CI_REGISTRY_IMAGE/armaroot_64@sha256:5544d2619f7ec798322f50fb7033ea4e57dbad63c2ddec17ebad4ac601c780a2
interruptible: true
retry:
max: 1
when:
- runner_system_failure
- stuck_or_timeout_failure
- unknown_failure
# common before script: bootstrap, configure, make dist, prepare docker builds
before_script:
- if ! test -d gitlab_build; then
- which docker && docker help > /dev/null
- touch timestamp.tag
- test "x${ARMAGETRONAD_FAKERELEASE}" == "x" && export ARMAGETRONAD_FAKERELEASE=false
- test -r configure || ./bootstrap.sh
- cat version.m4
- mkdir -p gitlab_build
- cd gitlab_build
- . ../docker/scripts/brand.sh .
- ../configure --prefix=/usr/local --disable-glout --disable-sysinstall --disable-desktop progname="${PROGRAM_NAME}" progtitle="${PROGRAM_TITLE}"
- test "x${ARMAGETRONAD_FAKERELEASE}" == "xtrue" && cp ../docker/build/fakerelease_proto.sh docker/build/fakerelease.sh
- cd docker/build
- make CI_prepare -j`nproc || echo 3`
- cd ../../../
- else
- find . -newer timestamp.tag ! -path "./gitlab_build" -exec touch -r timestamp.tag \{\} \;
- ./docker/scripts/fix_gits.sh || exit $?
- fi
# cache git checkouts of repositories we depend on
cache:
paths:
- docker/scripts/.cache
# template rule to maka a job only run on project runners; this implies they can
# only run on protected branches
.project_runner:
tags:
- armagetronad
- linux
rules:
- if: $CI_MERGE_REQUEST_ID
when: never
- if: $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
- when: never
# template rule for job to always run, maybe on shared runners
.merge_request:
tags:
- docker
- linux
rules:
- when: on_success
# keep image dependencies here
.merge_request_64:
extends: .merge_request
image: $CI_REGISTRY_IMAGE/armabuild_64@sha256:dfa825eba3098e88783b402dfad9f478cf71946c894764279842c37d7811188b
.merge_request_32:
extends: .merge_request
image: $CI_REGISTRY_IMAGE/armabuild_32@sha256:76467a3b59944cbe8c6b17725a7468f6df72215c3abbb3c7ee9880be6915655f
.merge_request_steam_64:
extends: .merge_request
image: $CI_REGISTRY_IMAGE/armasteam_64@sha256:fee51f47ad724a28ac1e9a35e9d22895350edfbd454b474f0b32df3fb886e97b
.merge_request_wine:
extends: .merge_request
image: $CI_REGISTRY_IMAGE/armawineblocks@sha256:f70849ff0ae55d2da655a0f2adacbe69df3743ae2b04d38a1b902bf23fa98a7d
.project_runner_64:
extends: .project_runner
image: $CI_REGISTRY_IMAGE/armabuild_64@sha256:dfa825eba3098e88783b402dfad9f478cf71946c894764279842c37d7811188b
.project_runner_steam_64:
extends: .project_runner
image: $CI_REGISTRY_IMAGE/armasteam_64@sha256:fee51f47ad724a28ac1e9a35e9d22895350edfbd454b474f0b32df3fb886e97b
.project_runner_32:
extends: .project_runner
image: $CI_REGISTRY_IMAGE/armabuild_32@sha256:76467a3b59944cbe8c6b17725a7468f6df72215c3abbb3c7ee9880be6915655f
.project_runner_wine:
extends: .project_runner
image: $CI_REGISTRY_IMAGE/armawineblocks@sha256:27c5ca729a9634fa5193aba7d7b91db2f65e4f3b75769f8db3443cee9477b2e9
.project_runner_debian:
extends: .project_runner
image: $CI_REGISTRY_IMAGE/armadeb_64@sha256:60b668c02b129d12bd4f8a3fb53c3e2ed6dc830873a4e08aa3346c446a140c5c
# template rule for deployment jobs
.deploy_base:
retry: 2 # deployments can fail temporarily for a million reasons
image: $CI_REGISTRY_IMAGE/armadeploy_24@sha256:2d1cfc664bd36041f712ff1a010ac0b20494757038ca2c3e35b3e6082976ecd3
interruptible: false
# resource_group: deployment # only ever run one deployment job at a time
tags:
- armagetronad_deploy
rules:
- if: $CI_MERGE_REQUEST_ID
when: never
- if: $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
- when: never
before_script:
- ./docker/scripts/fix_gits.sh || exit $?
- ./docker/deploy/prepare_deploy.sh || exit $?
.deploy_staged:
extends: .deploy_base
environment: $STAGING_ENVIRONMENT
dependencies:
- build_prepare
- build_collect
stage: stage
script:
# now enter the docker build directory and just invoke make there
- cd gitlab_build/docker/build
- make staged_${TARGET} -O -j$(nproc) -k
.deploy_staged_ppa:
extends: .deploy_staged
image: $CI_REGISTRY_IMAGE/armadeb_64@sha256:60b668c02b129d12bd4f8a3fb53c3e2ed6dc830873a4e08aa3346c446a140c5c
.deploy_final:
extends: .deploy_base
environment: $FINAL_ENVIRONMENT
dependencies:
- build_prepare
- build_collect
stage: deploy
script:
# check that no later pipeline already started
- docker/scripts/obsolete.sh || exit 0
# now enter the docker build directory and just invoke make there
- cd gitlab_build/docker/build
- make unstaged_${TARGET} -O -j$(nproc) -k
.deploy_final_ppa:
extends: .deploy_final
image: $CI_REGISTRY_IMAGE/armadeb_64@sha256:60b668c02b129d12bd4f8a3fb53c3e2ed6dc830873a4e08aa3346c446a140c5c
.deploy_final_steam:
extends: .deploy_final
image: $CI_REGISTRY_IMAGE/steamcmd@sha256:a00bbadd5a94d27af0c48a77472c62cc5b73bdc538f55ce4dab69067c1eec0bd
# only run on protected branches or merge requests
workflow:
rules:
- if: $CI_MERGE_REQUEST_ID
when: always
- if: '$CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_TAG'
when: always
variables:
# NOTE these two below will vary with our main branches
# these guard lines are there to prevent spurious merge conflicts
STAGING_ENVIRONMENT : "staging"
FINAL_ENVIRONMENT : "production"
# NOTE these two above will vary with our main branches
# these guard lines are there to prevent spurious merge conflicts
- if: '$CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_BRANCH'
when: always
variables:
STAGING_ENVIRONMENT : "testing_$CI_COMMIT_BRANCH"
FINAL_ENVIRONMENT : "testing_$CI_COMMIT_BRANCH"
- when: never
# very basic build
build_prepare:
stage: build_prepare
extends: .merge_request
script: [""]
artifacts:
untracked: true
expire_in: 1 day
build_server_32_raw:
stage: build_base
extends: .merge_request_32
script:
- gitlab_build/docker/build/make_ci.sh -k result.build_server_32
after_script:
- rm -rf gitlab_build/docker/build/context*.dir
artifacts:
untracked: true
expire_in: 1 day
build_server_steam_raw:
stage: build_base
extends: .merge_request_steam_64
script:
- ./bootstrap.sh
- gitlab_build/docker/build/make_ci.sh -k result.build_server_steam
artifacts:
untracked: true
expire_in: 1 day
# It seems like GitLab CI, all else being equal, schedules jobs in the order
# listed here. So list the ones that take longest first.
# Windows builds are worst because they have an additional layer of emulation,
# are not parallelized and are client and server build in one.
build_windows:
extends: .merge_request_wine
needs:
- build_server_32_raw
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_windows
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
build_windows_steam:
extends: .project_runner_wine
needs:
- build_server_steam_raw
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_windows_steam
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
# debtest is faster, but also not paralellized
build_debtest:
extends: .project_runner_debian
dependencies:
- build_prepare
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_debtest
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
# steam builds server and client in one go (the server is already pre-built), they are packed together
build_linux_steam:
extends: .project_runner_steam_64
dependencies:
- build_server_steam_raw
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_linux_steam
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
build_client_64:
extends: .merge_request_64
needs:
- build_prepare
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_linux_client_64
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
build_client_32:
extends: .project_runner_32
dependencies:
- build_prepare
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_linux_client_32
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
build_server_64:
extends: .project_runner_64
dependencies:
- build_prepare
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_linux_server_64
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
# this one is special, it can rely on previous build work
build_server_32:
extends: .project_runner_32
dependencies:
- build_server_32_raw
stage: build_main
script:
- gitlab_build/docker/build/make_ci.sh CI_linux_server_32
artifacts:
paths:
- gitlab_build/docker/build/
expire_in: 1 day
# macOS builds need a special runner, but can start early.
# it should build directly from git content, the prepared linux source directories have soft links that won't work.
build_macos:
needs: []
# the mac runner is not always available and may go down while on the job,
# be extra tolerant
retry:
max: 2
when: always
tags:
- macos
- armagetronad
stage: build_main
rules:
- if: $CI_MERGE_REQUEST_ID
when: never
- if: $CI_COMMIT_REF_PROTECTED == "true"
when: on_success
- when: never
script:
- docker/scripts/obsolete.sh || exit 0
- ./bootstrap.sh || exit 0
- date
- sntp -s time.apple.com
- gitlab_build/docker/build/make_ci.sh macOS -j`nproc || echo 3`
artifacts:
paths:
- gitlab_build/docker/build/upload
- gitlab_build/docker/build/macOS/*.tag
expire_in: 1 day
build_collect:
extends: .project_runner_64
stage: build_collect
script:
- gitlab_build/docker/build/make_ci.sh debtest.tag CI reformat.tag || exit $?
- rm -rf src
# consider mac builds newer than anything else, they must not be redone
- if test -d gitlab_build/docker/build/macOS; then touch gitlab_build/docker/build/macOS/*; fi
artifacts:
untracked: true
expire_in: 1 day
# deploy to staged environment
deploy_staged_external:
stage: pre_stage
extends: .deploy_staged
variables:
TARGET: "deploy_external"
deploy_staged_ours:
extends: .deploy_staged
image: $CI_REGISTRY_IMAGE/armadeploy_20@sha256:92af822308316e58db04547121ac1c07f0b993de00aa289f6a88311b7cfc7ee3
variables:
TARGET: "deploy_ours"
deploy_staged_ppa:
extends: .deploy_staged_ppa
script:
# now enter the docker build directory and just invoke make there
- cd gitlab_build/docker/build
- TARGETS=""
- for r in ${UBUNTU_RELEASES}; do TARGETS="${TARGETS} staged_deploy_ppa_$r"; done
- make ${TARGETS} -O -j$(nproc) -k
deploy_final_ppa:
extends: .deploy_final_ppa
script:
# check that no later pipeline already started
- docker/scripts/obsolete.sh || exit 0
# now enter the docker build directory and just invoke make there
- cd gitlab_build/docker/build
- TARGETS=""
- for r in ${UBUNTU_RELEASES}; do TARGETS="${TARGETS} unstaged_deploy_ppa_$r"; done
- make ${TARGETS} -O -j$(nproc) -k
# does not actually deploy, but tests deployment up to the final 'git push'
deploy_staged_flatpak:
extends: .deploy_staged
variables:
TARGET: "deploy_fp"
# delay full deployment
delay_release:
needs: []
stage: stage
rules:
- if: '$CI_COMMIT_REF_PROTECTED == "true"'
when: delayed
start_in: '16 hours'
- when: never
before_script: [""]
script: [""]
# do the actual release; manually for final releases, delayed to avoid spam for everyone else
deploy_final_external:
stage: pre_deploy
extends: .deploy_final
variables:
TARGET: "deploy_external"
deploy_final_steam:
extends: .deploy_final_steam
#rules:
# - when: manual
variables:
TARGET: "deploy_steam"
deploy_final_ours:
extends: .deploy_final
image: $CI_REGISTRY_IMAGE/armadeploy_20@sha256:92af822308316e58db04547121ac1c07f0b993de00aa289f6a88311b7cfc7ee3
variables:
TARGET: "deploy_ours"
deploy_gitlab:
extends: .deploy_final
variables:
TARGET: "deploy_gitlab"
deploy_itch:
extends: .deploy_final
variables:
TARGET: "deploy_itch"
deploy_final_flatpak:
extends: .deploy_final
variables:
TARGET: "deploy_fp"
# test build docker image (hopefully also initiating the cache for later deployment)
# does not really need debtest, but we want to let the Windows builds go first
build_docker:
extends: .project_runner
stage: build_collect
needs:
- job: build_prepare
- job: build_debtest
artifacts: false
after_script:
- rm -f ~/.docker/config.json
script:
- make -C gitlab_build/docker/build build_docker.tag || exit $?
# deploy docker image to staging
stage_docker:
extends: .project_runner
stage: stage
needs:
- job: build_prepare
- job: build_docker
artifacts: false
after_script:
- rm -f ~/.docker/config.json
script:
- make -C gitlab_build/docker/build staged_deploy_docker.tag || exit $?
# deploy docker image
deploy_docker:
extends: .project_runner
environment: $FINAL_ENVIRONMENT
stage: deploy
needs:
- job: build_prepare
- job: stage_docker
artifacts: false
- job: delay_release
artifacts: false
after_script:
- rm -f ~/.docker/config.json
script:
# test whether we're current
- docker/scripts/obsolete.sh || exit 0
# build
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY 2>&1 | grep -v WARNING\|credential || exit $?
- make -C gitlab_build/docker/build unstaged_deploy_docker.tag || exit $?
# post-build tests that require our own runners (or a docker upgrade on GitLab)
post_test:
retry: 2 # some tests fail spuriously for download failures, always rerun
extends: .project_runner
stage: build_collect
services:
# required for shared runners, does not hurt for our runner (just some diagnostic complaints)
- name: docker:19.03.0-dind
alias: docker
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
script:
- make -C gitlab_build/docker/build appimagetests_ci appimagetests_extra || exit $?
# pack up the downloadable build files in one handy artifact
pack:
extends: .project_runner
stage: pre_stage
needs:
- build_collect
script: [""]
before_script:
# test that everything has been prepared correctly
- if ! test -d gitlab_build; then
- echo "No build yet!"
- exit 1
- fi
- find . -newer timestamp.tag ! -path "./gitlab_build" -exec touch -r timestamp.tag \{\} \;
- if ! make -C gitlab_build/docker/build -q CI_pack.tag; then
- make -d -C gitlab_build/docker/build -q CI_pack.tag || exit $?
- exit 1
- fi
- ./docker/scripts/fix_gits.sh || exit $?
artifacts:
expire_in: 1 day
paths:
- gitlab_build/docker/build/upload
testbuild:
extends: .project_runner
stage: test
rules:
- when: never
script:
- docker build -t armagetronad_server .
# for local testing
complete_build:
extends: .project_runner
stage: build_main
rules:
- when: never
script:
- cd gitlab_build/docker/build
- make -O -j$(nproc) CI_base
- make -O -j$(nproc) CI
artifacts:
expire_in: 1 day
paths:
- gitlab_build/docker/build/upload
ArmagetronAd-armagetronad-deec131/.pre-commit-config.yaml 0000664 0000000 0000000 00000000774 15157553746 0023522 0 ustar 00root root 0000000 0000000 # install pre-commit to activate this hook:
# https://pre-commit.com/
# > pip install pre-commit
# or
# > brew install pre-commit
# or
# > pacman -S python-pre-commit
#
# activate with
# > pre-commit install
# remove with
# > pre-commit uninstall
# PURPOSE:
# do a clang-format locally on all the source code changes in the
# current commit. No global reformatting!
repos:
- repo: https://github.com/vmudrykPersonal/pre-commit-git-clang-format
rev: 1.0.0
hooks:
- id: git-clang-format
args: []
ArmagetronAd-armagetronad-deec131/.project 0000664 0000000 0000000 00000006730 15157553746 0020706 0 ustar 00root root 0000000 0000000
armagetronadorg.eclipse.cdt.make.core.makeBuilderorg.eclipse.cdt.core.errorOutputParserorg.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.make.core.fullBuildTargetclean AAdefaultorg.eclipse.cdt.make.core.incrementalBuildTargetAAdefaultorg.eclipse.cdt.make.core.buildLocation/armagetronad/EclipseBuildorg.eclipse.cdt.make.core.enableAutoBuildtrueorg.eclipse.cdt.make.core.enableFullBuildtrueorg.eclipse.cdt.make.core.enabledIncrementalBuildtrueorg.eclipse.cdt.make.core.enableCleanBuildtrueorg.eclipse.cdt.make.core.cleanBuildTargetcleanorg.eclipse.cdt.make.core.useDefaultBuildCmdtrueorg.eclipse.cdt.make.core.buildArguments-k -C EclipseBuildorg.eclipse.cdt.make.core.buildCommandmakeorg.eclipse.cdt.make.core.stopOnErrorfalseorg.eclipse.cdt.make.core.autoBuildTargetdefaultorg.eclipse.cdt.make.core.ScannerConfigBuilderorg.eclipse.cdt.make.core.ScannerConfigDiscoveryEnabledtrueorg.eclipse.cdt.make.core.makeBuilderParserIdorg.eclipse.cdt.make.core.GCCScannerInfoConsoleParserorg.eclipse.cdt.make.core.esiProviderCommandEnabledtrueorg.eclipse.cdt.make.core.siProblemGenerationEnabledfalseorg.eclipse.cdt.make.core.useDefaultESIProviderCmdtrueorg.eclipse.cdt.make.core.makeBuilderParserEnabledtrueorg.eclipse.cdt.make.core.esiProviderParserIdorg.eclipse.cdt.make.core.GCCSpecsConsoleParserorg.eclipse.cdt.core.cnatureorg.eclipse.cdt.make.core.makeNatureorg.eclipse.cdt.make.core.ScannerConfigNatureorg.eclipse.cdt.core.ccnature
ArmagetronAd-armagetronad-deec131/AUTHORS 0000664 0000000 0000000 00000003672 15157553746 0020311 0 ustar 00root root 0000000 0000000 The AA-DevTeam currently consists of (alphabetic username order):
Real name SF username Forum name (empty if identical to SF name)
Dave Fancella davidfancella Lucifer
epsy epsy
Fred guru3 Tank Program
Jochen Darley jarrt joda.bot
Peter klaxnek klax
Kurt Johnson k_at_work K
Luke-Jr luke-jr
Daniel Harple dlh3
Philippe Villeneuve philippeqc
Mathias Plichta wrtlprnft
Manuel Moos z-man
E-Mail addresses can be generated by taking the SF username and appending
"@users.sf.net". The forum is at https://forums3.armagetronad.net.
guru3, z-man and davidfancella are the Administrators, any spam goes to them.
Honored former members:
Alex E. Kelly : former Project Administrator
? ? subby : where and when did he go?
Additional contributions from:
Ben Hines : first working Mac OS X port
Fabrice Holbe : original Moviepack and font
Tomas Birraux : french accents in font
Christian Reitwiessner : contributed name rendering above cycles
Edd Keefe : contributed Mac OS X icon and the title screen
hang3r : skeleton for more accurate timer on Windows
Jonathan : Headlight (needs activation) and overhead map (will be in 0.3.X)
Meriton : Replacement for the old buggy Lag-O-Meter
Oscilloscope : Most default instant chats
Belenus : OpenBSD support sniplets
hoop : Zone rendering settings
fman23 : Console commands
Translators who aren't already cited above:
Rafal Cieslak : Polish
mygal : French
tang322 : French
External code merged in from:
ID Software : first version of the low level networking code
David McAllister : particle system API
Aladdin Enterprises : MD5 Hashsum implementation
ArmagetronAd-armagetronad-deec131/CHANGELOG.md 0000664 0000000 0000000 00000142070 15157553746 0021046 0 ustar 00root root 0000000 0000000
#### Changes since 0.2.9.2.3:
##### Fixed Bugs
* Startup freeze ([#161](https://gitlab.com/armagetronad/armagetronad/-/issues/161))
##### Other Changes
* sdl12-compat for macOS (was: Retina resolution support) ([#147](https://gitlab.com/armagetronad/armagetronad/-/issues/147))
##### Contributors
Manuel Moos
#### Changes since 0.2.9.1.1:
##### Fixed Bugs
* Sound trouble deja entendu ([#130](https://gitlab.com/armagetronad/armagetronad/-/issues/130))
* Docker/Alpine: Crash in ZThread::ThreadOps::setPriority ([#138](https://gitlab.com/armagetronad/armagetronad/-/issues/138))
* Display lists keep rim wall lowered ([#141](https://gitlab.com/armagetronad/armagetronad/-/issues/141))
* FPS display inaccurate ([#143](https://gitlab.com/armagetronad/armagetronad/-/issues/143))
* Online play suddenly stopped working. ([#145](https://gitlab.com/armagetronad/armagetronad/-/issues/145))
* Work around Ubuntu sending spurious window activation messages ([#68](https://gitlab.com/armagetronad/armagetronad/-/issues/68))
* Desktop/AppData/Icon files are installed in a wrong place during make install ([#73](https://gitlab.com/armagetronad/armagetronad/-/issues/73))
* Steam: No logging, does not work in pressure vessel ([#77](https://gitlab.com/armagetronad/armagetronad/-/issues/77))
* Retina display not working correctly ([#88](https://gitlab.com/armagetronad/armagetronad/-/issues/88))
* 0.2.9 clients lose connection on 0.4 server ([#98](https://gitlab.com/armagetronad/armagetronad/-/issues/98))
* Window title sometimes SDL_APP ([#102](https://gitlab.com/armagetronad/armagetronad/-/issues/102))
* Docker Image: Increase thread stack size ([#104](https://gitlab.com/armagetronad/armagetronad/-/issues/104))
* Client sends quickly typed chat message with last character missing ([#106](https://gitlab.com/armagetronad/armagetronad/-/issues/106))
* Backslashes not escaped when saving to user.cfg ([#110](https://gitlab.com/armagetronad/armagetronad/-/issues/110))
* Fix invulnerability bug handling ([#111](https://gitlab.com/armagetronad/armagetronad/-/issues/111))
* macOS DMG Build problems when building inside the source tree ([#119](https://gitlab.com/armagetronad/armagetronad/-/issues/119))
* error: use of undeclared identifier 'finite'; did you mean 'isfinite'? ([#120](https://gitlab.com/armagetronad/armagetronad/-/issues/120))
* User data saved in the wrong place on macOS ([#125](https://gitlab.com/armagetronad/armagetronad/-/issues/125))
##### New Features
* Make network trafic realtime priority ([#137](https://gitlab.com/armagetronad/armagetronad/-/issues/137))
* Add AppImage zsync update data ([#78](https://gitlab.com/armagetronad/armagetronad/-/issues/78))
* Provide docker image for the dedicated server ([#79](https://gitlab.com/armagetronad/armagetronad/-/issues/79))
* Add macOS dmg bundling ([#86](https://gitlab.com/armagetronad/armagetronad/-/issues/86))
* Integrate macOS build into pipeline ([#87](https://gitlab.com/armagetronad/armagetronad/-/issues/87))
* Sign the application bundle ([#89](https://gitlab.com/armagetronad/armagetronad/-/issues/89))
##### Other Changes
* Flatpak adaptions ([#75](https://gitlab.com/armagetronad/armagetronad/-/issues/75))
##### Contributors
Armanelgtron, Cosimo Cecchi, Manuel Moos
#### Changes since 0.2.9.1.0:
##### Fixed Bugs
* Crash when using sdl12-compat ([#131](https://gitlab.com/armagetronad/armagetronad/-/issues/131))
* Ubuntu versions contain ~ppa1~ppa1 ([#70](https://gitlab.com/armagetronad/armagetronad/-/issues/70))
* Website update waits for launchpad uploads that do not happen ([#71](https://gitlab.com/armagetronad/armagetronad/-/issues/71))
* Versioning script incorrectly takes current tag into account ([#72](https://gitlab.com/armagetronad/armagetronad/-/issues/72))
##### Other Changes
* Improve deployment cancellation ([#80](https://gitlab.com/armagetronad/armagetronad/-/issues/80))
* macOS Build ([#82](https://gitlab.com/armagetronad/armagetronad/-/issues/82))
##### Contributors
Christian Mäder, Manuel Moos
#### Changes since 0.2.9.0.1:
##### Fixed Bugs
* Use after free in nNetObject::ClearKnows ([#34](https://gitlab.com/armagetronad/armagetronad/-/issues/34))
* Missing null check for master server info ([#58](https://gitlab.com/armagetronad/armagetronad/-/issues/58))
* Basic screen aspect ratio failures: Text ([#59](https://gitlab.com/armagetronad/armagetronad/-/issues/59))
* Center message issues ([#62](https://gitlab.com/armagetronad/armagetronad/-/issues/62))
* AppImage library content still lacking ([#63](https://gitlab.com/armagetronad/armagetronad/-/issues/63))
* Crash in menu key repeat handling ([#66](https://gitlab.com/armagetronad/armagetronad/-/issues/66))
##### New Features
* Make AppImage builds fit for registration at AppImageHub ([#17](https://gitlab.com/armagetronad/armagetronad/-/issues/17))
* Do not show a player's own IP on the client ([#27](https://gitlab.com/armagetronad/armagetronad/-/issues/27))
* Make --playback optional so recordings can be more easily played back ([#37](https://gitlab.com/armagetronad/armagetronad/-/issues/37))
* Steam on Windows: Add playback registry keys so .aarec files automatically playback with a doubleclick ([#38](https://gitlab.com/armagetronad/armagetronad/-/issues/38))
* Make clientside playback more robust ([#56](https://gitlab.com/armagetronad/armagetronad/-/issues/56))
* user.cfg fine grained upgrade system ([#61](https://gitlab.com/armagetronad/armagetronad/-/issues/61))
* Make SIZE_ and SPEED_FACTOR floating point instead of integer ([#20](https://gitlab.com/armagetronad/armagetronad/-/issues/20))
##### Other Changes
* Make custom camera the default for new players ([#35](https://gitlab.com/armagetronad/armagetronad/-/issues/35))
* Turn down tutorial tooltip spam ([#36](https://gitlab.com/armagetronad/armagetronad/-/issues/36))
* Onboarding game improvements ([#39](https://gitlab.com/armagetronad/armagetronad/-/issues/39))
* ROUND_CENTER_MESSAGEs are still displayed in nCLIENT state ([#49](https://gitlab.com/armagetronad/armagetronad/-/issues/49))
* Make Full HD players see the small font as little as possible ([#60](https://gitlab.com/armagetronad/armagetronad/-/issues/60))
##### Contributors
Armanelgtron, Manuel Moos, SwagTron
#### Changes since 0.2.9.0:
##### Fixed Bugs
* Can't open the .appimage file. Missing libwebp.so.5 ([#54](https://gitlab.com/armagetronad/armagetronad/-/issues/54))
##### Contributors
Manuel Moos
#### Changes since 0.2.8.3.6:
##### Fixed Bugs
* Socket and unclean exit trouble due to fork(), execve() and exit() interaction ([#13](https://gitlab.com/armagetronad/armagetronad/-/issues/13))
* Language string identifier silence_player_text used twice ([#22](https://gitlab.com/armagetronad/armagetronad/-/issues/22))
* Bad video mode error recovery ([#23](https://gitlab.com/armagetronad/armagetronad/-/issues/23))
##### New Features
* Update German translation ([#2](https://gitlab.com/armagetronad/armagetronad/-/issues/2))
* Adapt ChangeLog and fingerprint generation to git ([#11](https://gitlab.com/armagetronad/armagetronad/-/issues/11))
* Make playback time display optional ([#16](https://gitlab.com/armagetronad/armagetronad/-/issues/16))
* Deploy to itch.io ([#19](https://gitlab.com/armagetronad/armagetronad/-/issues/19))
* Credit contributors in patch notes ([#21](https://gitlab.com/armagetronad/armagetronad/-/issues/21))
##### Contributors
Daniel Harple, Hugh McMaster, Luke-Jr, Manuel Moos, Uzix, fman23, zolk3ri
#### Changes since 0.2.8.3.5:
##### Fixed Bugs
* Debian builds: Documentation html files have empty last change ([#9](https://gitlab.com/armagetronad/armagetronad/-/issues/9))
* Socket and unclean exit trouble due to fork(), execve() and exit() interaction ([#13](https://gitlab.com/armagetronad/armagetronad/-/issues/13))
* Ubuntu PPA release candidate builds would overwrite previous stable releases ([#15](https://gitlab.com/armagetronad/armagetronad/-/issues/15))
* Language string identifier silence_player_text used twice ([#22](https://gitlab.com/armagetronad/armagetronad/-/issues/22))
* Bad video mode error recovery ([#23](https://gitlab.com/armagetronad/armagetronad/-/issues/23))
* AppRun script does not work if call path contains spaces ([#24](https://gitlab.com/armagetronad/armagetronad/-/issues/24))
* Included forum links outdated ([#25](https://gitlab.com/armagetronad/armagetronad/-/issues/25))
* Client segfaults on OpenBSD ([#26](https://gitlab.com/armagetronad/armagetronad/-/issues/26))
* Client compiled with clang 10.0 (optimized) sefgaults on logout ([#28](https://gitlab.com/armagetronad/armagetronad/-/issues/28))
* Valgrind reports uses of unitialized, freed or invalid memory ([#29](https://gitlab.com/armagetronad/armagetronad/-/issues/29))
* Windows: DPI scaling behavior wrong ([#33](https://gitlab.com/armagetronad/armagetronad/-/issues/33))
##### New Features
* Update German translation ([#2](https://gitlab.com/armagetronad/armagetronad/-/issues/2))
* Adapt ChangeLog and fingerprint generation to git ([#11](https://gitlab.com/armagetronad/armagetronad/-/issues/11))
* Integrated build system ([#14](https://gitlab.com/armagetronad/armagetronad/-/issues/14))
* Make playback time display optional ([#16](https://gitlab.com/armagetronad/armagetronad/-/issues/16))
* Deploy to itch.io ([#19](https://gitlab.com/armagetronad/armagetronad/-/issues/19))
* Credit contributors in patch notes ([#21](https://gitlab.com/armagetronad/armagetronad/-/issues/21))
##### Other Changes
* Make custom camera the default for new players ([#35](https://gitlab.com/armagetronad/armagetronad/-/issues/35))
##### Contributors
Daniel Harple, Hugh McMaster, Luke-Jr, Manuel Moos, Uzix, fman23, zolk3ri
##### Other changes on the 0.2.9 branch
* Added detection and reaction code for timing assist bots
* /shuffle now works before you actually join a team
* Implemented /shout command and associated settings
* Fixed suspension and silenced status not being re-applied after a player
disconnects and rejoins a server.
* Tweaks to enemy influence system.
* Ingame menu and console now are drawn on top of a semi-transparent,
darkened area for increased readability.
* New first start menu with clearer language selection and initial setup.
* Tutorial match against one AI at slower speed.
* Tutorial tooltips for the most important keybindings.
* ADD_MASTER_SERVER command to announce a server to a new master server.
Simplifies the process to list your server on a subculture.
* Team launch positions logged to ladderlog with POSITIONS event. Disabled by
default.
* New command-line option "--input" added to poll for input from a file
instead of stdin.
* Added WHITELIST_ENEMIES_[IP/USERNAME] to allow players to be enemies, even
if they come from the same IP address and ALLOW_ENEMIES_SAME_IP is
disabled (which is its default setting).
* GAME_END, NEW_MATCH, and NEW_ROUND ladderlog events include date and time.
* Added ENCODING ladderlog event, which specifies the encoding for data in
ladderlog.txt.
* "--input" now can be used more than once to read from multiple files or pipes.
* new team management ladderlog messages:
TEAM_CREATED
TEAM_DESTROYED
TEAM_RENAMED
TEAM_PLAYER_ADDED
TEAM_PLAYER_REMOVED
* Manage external scripts on Unix dedicated servers. New commands:
SPAWN_SCRIPT, RESPAWN_SCRIPT, FORCE_RESPAWN_SCRIPT, KILL_SCRIPT,
LIST_SCRIPTS, SCRIPT_ENV.
* New setting ACCESS_LEVEL_ANNOUNCE_LOGIN that determines if a player's
login/logout message can be announced.
* Authentication is now enabled by default.
#### Changes since 0.2.8.3.4:
* Security fix: Check that the remote is allowed to create an object
before creating it, not decide whether it gets to keep it after
it already has been created and potential damage has been done.
No arbitrary code could be executed, but a client could effectively
shut down a server by sending crucial objects, such as the main game
timer or the game itself.
* Compilation fixes for current systems.
#### Changes since 0.2.8.3.3:
* Eliminated undefined behavior that was fine in gcc 5, but now
(rightfully!) turned into crashes in gcc 6.
* Eliminated compilation disambiguity that was just causing a mild
performance degradation in gcc 5 and is now a compilation failure in
gcc 6.
#### Changes since 0.2.8.3.2:
* security fix: do not read ahead of the beginning of network buffer.
* security fix: don't attribute network errors from processing random
packets to the connection to the server
* security fix: while at it, don't process random packets unless they
may be important
* fix for potential crash with friend list filtering
* intel driver compatibility
* fix for rare crash with sound lock
* fix for camera turning for bizarre axis configurations
#### Changes since 0.2.8.3.1:
* security fix: old style action commands from clients no loger cause hangs and crashes
* security fix: oversized packets are ignored properly
* security fix: never read one byte outside of the received buffer
* security fix: only include .cfg files from the var subfolder
* compiler compatibility: adapted to gcc 4.60
* smaller spelling fixes
* FOV calculations now correct for widescreen and horizontal splitscreen
* Additional checks against illegal values passed to renderer
#### Changes since 0.2.8.3:
* fixed temporary sound disappearance when alt-tabbing away and back
* default subcultures are now distributed
* enable 32 bit color depth at desktop resolution
* no more display lists for SiS cards
* spelling mistakes and missing German translations
#### Changes since 0.2.8.3_rc4:
* New setting: KEEP_PLAYER_SLOT allows the server to kick (preferably) spectators
if it gets full so there is always one slot open for players
* New setting: ACCESS_LEVEL_AUTOKICK_IMMUNITY sets the access level required
to be immune from such kicks (and idle autokicks, too)
* Intercepted chat commands are now written to ladderlog.txt. Format:
COMMAND /command-intercepted player [command arguments]
* Increased default speed of server pinging
* Reordered game menus a bit
* fast finish works again
#### Changes since 0.2.8.3_rc3:
* Pinging previously popular servers earlier for quicker server
browsing
* Improved master server random polling, the second polled master now
also is random, and all masters are polled if need be
* Custom camera snaps to cycle direction once when activated if the turn speed
is zero.
* RESERVE_SCREEN_NAME now works regardless of the ALLOW_IMPOSTOR setting.
* USER_LEVEL now escapes the given authenticated name so you don't have to
guess the escaping rules. Ex: USER_LEVEL "name with spaces@forums" 2
changes user level for name\_with\_spaces@forums
#### Changes since 0.2.8.3_rc2:
* Fixed crash with server polling
* ROUND_WINNER and MATCH_WINNER ladderlog events now include the players of
the team.
* Camera switches to user preferred camera when you die in incam mode
* Better support for custom language files
* Players can no longer spam chat with /shuffle messages. Added new setting
SHUFFLE_SPAM_MESSAGES_PER_ROUND, a per round, per player limit on the number
of shuffle messages displayed.
#### Changes since 0.2.8.3_rc1:
* Fixed dark color filters, such as FILTER_DARK_COLOR_STRINGS, to not filter
the reset color.
* ASE moviepack models no longer have a vertex count limit
* Fixed endless recursion crash between rounds
#### Changes since 0.2.8.3_beta3:
* Chat prefix spam protection. Guards against prefix spam, such as when a
user always changes their chat message color, or prefixes all messages
with a clan tag. Toggle with the PREFIX_SPAM_ENABLE setting.
* Fixed VOTING_MATURITY to use the time when the player entered as its
reference time.
* Fixed single player highscore list not containing everyone.
* Fixed generation of duplicate names in highscore lists.
* Fixed camera crash when the grid is empty.
#### Changes since 0.2.8.3_beta2:
* Fixed 'invincibility' bug. It really was cycles freezing in time.
* Fixed sporadic sound related crash at round end.
* setting rename: SILENCE_ALL -> SILENCE_DEFAULT.
* Sound no longer gets muted after you switch the sound settings.
* Fixed object collision detection that would sometimes pick a wrong
wall to collide with, most likely the reason behind wrongly accredited
kills.
* Fixed inability to switch viewport assignment in four player mode.
* Better handling of lag clusterbombs.
* Server disconnects now also take immediate effect even when you're
in a menu or chatting.
#### Changes since 0.2.8.3_beta1:
* Made ready for Armatrators
* Authentication routines now use utf8 as forward- compatibility with
trunk. Previously, non-ASCII usernames simply didn't work at all.
* Better lag slide protection: clients no longer get confused when
the server sends their cycle back in time, and the server no longer
does that for old clients.
* Fixed rare wallpassing bug; it required what whould usually be an
instakill and infinte wall length.
#### Changes since 0.2.8.2:
New settings and commands:
* MIN_PLAY_TIME_*: minimal play time required before you are allowed to
play on this server.
* SPAM_AUTOKICK_COUNT: minimal number of spam warning messages you get in a
row before you get kicked.
* FORTRESS_COLLAPSE_SPEED: tune the collapse speed of fortress zones.
* VOTE_KICK_REASON: default reason given on kick votes.
* "/vote" chat interface to votes; "/vote kick " issues a kick vote.
* new vote type "/vote suspend " suspends a player for
VOTING_SUSPEND_ROUNDS rounds.
* new vote type "/vote include ", includes configuration file
vote/.
* new vote type "/vote command " executes console command
. (Both that and /vote include are by default only available
to moderators).
* VOTING_HARM_TIME: time between all harmful votes against a player
* VOTING_KICK_MINHARM: auto-transform the first few menu issued kick
votes to suspensions
* (UN)SUSPEND kicks a player to spectator mode with a timeout. Intended to
let new players watch before they play.
* VOTES_CANCEL cancels all running polls.
* VOTING_SUSPEND [] disallows voting during a specified amount of time.
* ZONE_ALPHA_TOGGLE to override the systemwide alpha blendings setting and
have zones rendered in wireframe mode even when alpha blending is on.
* ZONE_ALPHA(_SERVER) to control intensity of zone rendering.
* SCORE_HOLE for awarding sacrifice.
* SCORE_SURVIVE for player survival and FORTRESS_HELD_SCORE for not losing
each fortress zone.
* KICK_TO and MOVE_TO: redirect a client to a different server
* DEFAULT_KICK(_TO)_MESSAGE: default reason given to players for a kick
* DEFAULT_KICK_TO_SERVER/PORT: default redirection target for KICK/MOVE_TO.
* RENAME renames a player.
* If all clients support it, PING_CHARITY_MIN/MAX can be used to constrain ping charity.
* VOTE_KICK_TO_SERVER/PORT: redirection target for vote kicks.
* SILENCE and VOICE allow to control chat of annoying players.
* SILENCE_ALL can be used on the server to inhibit all cross-team communication unless specifically voiced.
* ENABLE_CHAT can be set to 0 to disable all chat. If it is set on the server it only disables public chat and logged in players can still speak.
* LAG_*: controls game level lag compensation.
* FILTER_NAME_MIDDLE: collapses multiple whitespaces to one in player names.
* FORTRESS_CONQEST_TIMEOUT: if an enemy contact with a zone happens longer ago than
this value, it is discarded from zone memory.
* TOPOLOGY_POLICE_PARALLEL, extra topology police flag to control the checks
for walls getting copied into the grid in exactly the same place.
* CAMERA_GLANCE_*: separate settings for the glancing camera, work like CAMERA_CUSTOM_*.
Likewise, CAMERA_SERVER_GLANCE_* can replace CAMERA_SERVER_CUSTOM_* when glancing.
CAMERA_*CUSTOM_GLANCE* are server side settings that can control whether server or
clientside settings are used in various situations, see settings.cfg for details.
* CYCLE_BOOST_? and CYCLE_BOOSTFACTOR_? for boosts when breaking away from walls,
see settings.cfg or config.html for details
* CYCLE_ACCEL_TUNNEL, works like CYCLE_ACCEL_SLINGSHOT, but is active when
none of the two walls you're in between is your own.
* CYCLE_WIDTH for making it impossible to squeeze through tight tunnels,
see settings.cfg for details
* VOTING_MATURITY controls how long you have to wait after login before
you can issue kick votes.
* CYCLE_DELAY_DOUBLEBIND_BONUS is an extra factor applied to CYCLE_DELAY
for turns in the same direction. Can be used to limit the advantage
doublebinders get while not punishing players who press both left and
right at the same time.
* LAG_O_METER_(TRESHOLD|BLEND|USE_OLD): Configure the minimal size of the
Lag-O-Meter, its color and whether to scrap it all and stick with the old
one.
* ALLOW_TEAM_CHANGE: if set to 0 players won't be able to join a team, create
a new team or change to another team.
* ALLOW_TEAM_CHANGE_PLAYER/DISALLOW_TEAM_CHANGE_PLAYER: allow/disallow specific
players to switch teams
* INTERCEPT_COMMANDS is a space-delimited list of chat commands that shall be
intercepted by an external script. Example value: /login /admin /teamleave
/teamshuffle /shuffle /team
* INTERCEPT_UNKNOWN_COMMANDS is a boolean specifying if an external script
wishes to handle unrecognized chat commands. This would allow hooking
arbitrary things like /foobarz or /mode ctf
* CONSOLE_LADDER_LOG boolean places the ladderlog on stdout prefixed with
"[L] "
* PLAYER_MESSAGE : Like /msg, but from the
console
* All ladderlog outputs can be enabled or disabled separately by using
LADDERLOG_WRITE_*. LADDERLOG_WRITE_ALL enables or disables all ladderlog
output alltogether.
* CHAT_LOG controls whether to write a machine-readable chatlog to
var/chatlog.txt
* CONSOLE_DECORATE_TIMESTAMP write a timestamp for every console message?
* LADDERLOG_DECORATE_TIMESTAMP prefix every ladderlog message with a timestamp?
* SLAP [points] sends a message to everyone and subtracts a number
of points (default: 1) from 's score. Negative points are
supported.
* AUTO_TEAM_SPEC_SPAM to disable the spectator join/leave messages you get
when AUTO_TEAM is enabled
If --enable-armathentication was activated:
* /lock, /unlock, /invite and /uninvite team management chat for players of
access level ACCESS_LEVEL_TEAM or better.
* /teams chat command that rougly prints team layout.
* ACCESS_LEVEL_IPS to let admins see IPs of players in the list.
* ACCESS_LEVEL_SPY_MSG/TEAM to let admins spy on team/private messages.
* CASACL to temporarily raise the access level
* ACCESS_LEVEL to modify the required access level to change settings
* AUTHORITY_WHITELIST and AUTHORITY_BLACKLIST to filter authorities you want on your server.
* GLOBAL_ID_ENABLED to toggle remote accounts
* LOCAL_USER, LOCAL_TEAM for local login accounts
* MD5_PREFIX/MD5_SUFFIX for additional password scrambling
* USER_LEVEL to grant users various access levels
* RESERVE_SCREEN_NAME to reserve a screen name to a certain player
* USER_ALIAS to bend authentication names around
* (UN)BAN_USER to ban really stupid users based on their global user ID,
BAN_USER_LIST to show a list.
* ACCESS_LEVEL_OP/ADMIN/CHAT/PLAY/PLAY_SLIDING to control who can do which things
* /login chat command then uses the more secure hashed base logins
* new chat commands /op and /deop to change other players' access rights
Featurelets:
* Added Polish language file
* clientside play time tracking and server controlled minimal required experience
to be allowed to play.
* color codes in chat increase the spam level logarithmically.
* /team messages get a reduced spam level; reduction factor is given by
(team size)/(number of total players).
* /team messages can be used by spectators to chat with other spectators only.
* Performance optimizations. Using OpenGL display lists to cache geometry.
* Removed ztrick, antialiasing and perspective correction settings. They all had only one right
setting and caused us some interesting bug reports.
* Added PLAYER_RANDOM_COLOR for lazy people who just want to have a
color that differs from everyone else on the server.
* Configuration files get reloaded on SIGHUP
* all admin commands now also accept partial name matches, like /msg, and check for case sensitive
matches in the screen name first, then the user name, then case insensitive matches in the two.
* --enable-krawallserver has been actually implemented now, and it enables secure logins
to accounts local to the server and not-so-secure logins managed by authentication servers.
* A subculture list for server groups that are not managed by our main master servers
* A friends list and filter for the server browser that shows you only servers with
your friends on them.
* The client now can handle network traffic while it is waiting for the graphics
card to swap buffers.
* The dedicated server no longer uses a fixed delay, but a select() call (that
returns when network data arrives) to idle. When data arrives, it does
the minimum amount of work before it sends out the responses, resulting in
lower latency. It is now safe to decrease DEDICATED_FPS to 20 or 10, latency
is no longer influenced by that setting.
* Game level lag compensation. When a command arrives from a client that is delayed,
it is backdated to the time it was issued, provided enough "lag credit" is left.
The client is informed of the delay so it can compensate in the future, which it does
by forging the game timer.
* Nonnormalized axes and axes with odd turning directions are now properly supported
* The camera has a memory which player you like to watch. Every time you manually switch
the camera and your favorite player is not dead, the favorite is set to the currently
watched player. The next time the camera doesn't know what to watch, your favorite
will be selected.
* Players leaving to spectator mode with <0.2.8.2 clients are handled like
spectators of 0.2.8.2 clients: they stay visible to the others.
* Kick statistics are now persistent across server runs.
* MESSAGE_OF_DAY is now displayed fullscreen if both server and client support it
* Manual fullscreen messages can be triggered with
FULLSCREEN_MESSAGE
* Axes Indicators by meriton, can be enabled using the AXES_INDICATORS
setting.
* New "About" menu item in the main menu displays the version of
Armagetron Advanced, the paths it uses, links to the main site, wiki
and forums and the names of the project admins.
* New entries in ladderlog.txt:
- GAME_TIME