Giter VIP home page Giter VIP logo

etlegacy / etlegacy Goto Github PK

View Code? Open in Web Editor NEW
519.0 23.0 92.0 163.87 MB

ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.

Home Page: https://www.etlegacy.com

License: GNU General Public License v3.0

CMake 0.77% Shell 0.26% Batchfile 0.06% ShaderLab 3.00% GLSL 1.73% C 90.46% Objective-C 0.04% Dockerfile 0.04% C++ 2.24% Ruby 0.01% Makefile 0.01% Java 1.40%
etlegacy enemy-territory wolfenstein game fps-game fps game-development game-engine multiplayer-game network-game

etlegacy's Introduction

ET: Legacy Build status etlegacy Analysis status CodeQL status chat

A second breath of life for Wolfenstein: Enemy Territory

INTRODUCTION

ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3.

There are two aspects to this project:

  • An updated game engine, ET: Legacy, which aims to fix bugs and security exploits, remove old dependencies, add useful features and modernize its graphics while still remaining compatible with ET 2.60b and as many of its mods as possible.
  • A new mod, Legacy, which aims to add many useful features and improvements while staying close to the original gameplay, as well as being lightweight and extensible through Lua scripts.

For more information consult our wiki.

CONTRIBUTING

See CONTRIBUTING.

SECURITY POLICY

See SECURITY.

GENERAL NOTES

Game data

Wolfenstein: Enemy Territory is a free release, and can be downloaded from Splash Damage.

This source release contains only the engine and mod code but not any game data, which is still covered by the original EULA and must be obeyed as usual.

In order to run ET: Legacy you will need to copy the original pak0.pk3 assets file to the etmain folder. In addition, third party mods might also require the pak1.pk3 and pak2.pk3 assets files.

Compatibility with Enemy Territory 2.60b

ET: Legacy remains compatible with the ET 2.60b version as much as possible.

Please note that ET: Legacy is not compatible with PunkBuster enabled servers. ET: Legacy clients also cannot connect to servers running the ETPro mod.

Linux 64 bit

Please remember that 64 bit ET: Legacy clients can only connect to servers running mods providing a 64 bit version. You will be able to play 32 bit-only mods only if you compile ET: Legacy on a 32 bit system or cross-compile it for 32 bit architecture on a 64 bit system.

At the moment, only the ETrun, ETJump, N!tmod and Legacy mods are available in 64 bit version, while all other existing mods are available in 32 bit only version. Read more on the Compatible mods wiki page.

In case you are a running a 64 bit system, you probably might want to use the bundled libraries which are located in a separate etlegacy-libs repository and can be automatically downloaded using the git submodule command. See the next section for more details.

DEPENDENCIES

Required:

  • CMake (compile-time only)
  • OpenGL
  • GLEW
  • SDL
  • ZLib
  • MiniZip
  • libjpeg-turbo or libjpeg

Optional, enabled by default:

  • libcurl
  • WolfSSL or OpenSSL
  • Lua
  • Ogg Vorbis
  • Theora
  • Freetype
  • libpng
  • SQLite
  • OpenAL

Grab info about current lib versions from our Libs Changelog wiki page.

To get the latest source code install git and clone our repository hosted at Github.com:

$ git clone [email protected]:etlegacy/etlegacy.git

If the required dependencies are not installed on your system run:

$ git submodule init
$ git submodule update

This downloads the essential dependencies into the libs/directory. You can choose whether to use bundled libraries instead of the system ones by changing the BUNDLED_LIBS variable in the CMakeList.txt configuration file. You can then select which bundled libraries to use by toggling the respective BUNDLED_XXX variable.

COMPILE AND INSTALL

To install the binaries system-wide, you need to compile ET: Legacy with hardcoded fs_basepath.

The following variables can be adjusted in CMake:

  • INSTALL_DEFAULT_BASEDIR: sets default fs_basepath, i.e. where etl and etlded executables look for data files. In most cases it is CMAKE_INSTALL_PREFIX+INSTALL_DEFAULT_MODDIR. Defaults to empty value, because we want fs_basepath to be the current working directory when not installing the game system-wide.

  • (optional) INSTALL_DEFAULT_BINDIR: Location for executables. Appended to CMAKE_INSTALL_PREFIX. Defaults to bin.

  • (optional) INSTALL_DEFAULT_SHAREDIR: Location for shared data. Appended to CMAKE_INSTALL_PREFIX. Defaults to share.

  • (optional) INSTALL_DEFAULT_MODDIR: Location for libraries and paks. Appended to CMAKE_INSTALL_PREFIX. Defaults to lib/etlegacy and then legacy is appended to it.

  • (optional) DOCDIR: Location for documentation. Defaults to INSTALL_DEFAULT_SHAREDIR/doc/etlegacy.

Linux

Install required dependencies.

  • option A: easybuild

In terminal, run one of the following:

$ ./easybuild.sh        # for compiling a 32 bit version or
$ ./easybuild.sh -64    # for compiling a 64 bit version

ET: Legacy will be installed in ~/etlegacy.

  • option B: command line

In terminal, run:

$ mkdir build && cd build && cmake ..

To compile, run:

$ make

If you wish to install ET: Legacy system-wide, run:

$ make install

Be sure to set the CMake variables (see above) beforehand.

NOTES:

  • Even if you have a 64 bit linux distribution which provides 32 bit versions of all the required libraries, you might also need the development libraries (-devel packages) installed on your system.

  • In order to compile the jpeg-turbo library properly you will need the nasm assembler.

  • On some systems, CMake might have trouble locating 32-bit libraries and tries to use 64-bit ones when building 32-bit. This can be fixed by setting the following enviromental variables before running CMake (note: running easybuild takes care of this for you)

$ export CC="gcc -m32"
$ export CXX="g++ -m32"

# or simply run cmake with
$ CC="gcc -m32" CXX="g++ -m32" cmake ..

Crosscompiling on Linux with MinGW-w64

In terminal, run:

$ mkdir build && cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw-linux.cmake ..
$ make

By default, MinGW name is set to i686-w64-mingw32. You may have to change it in cmake/Toolchain-cross-mingw-linux.cmake depending on how it is called on your system.

Windows

Install:

  1. Visual Studio Community with the Desktop Development with C++ workload
  2. CMake and make sure it is added to your system PATH
  • option A: easybuild

    1. run easybuild.bat

ET: Legacy will be installed in My Documents\ETLegacy-Build.

  • option B: Visual Studio

    1. create a build directory inside the directory which contains ET: Legacy sources
    2. open Visual Studio Command Prompt in the Start menu
    3. change directory with cd to the newly created build directory

In the command prompt, run:

$ cmake -G "NMake Makefiles" -DBUNDLED_LIBS=YES .. && nmake

or

$ cmake -G "Visual Studio 16" -A Win32 -DBUNDLED_LIBS=YES .. # Visual Studio 2019
# or "Visual Studio 17" for Visual Studio 2022

and open the resulting project in Visual Studio.

NOTES:

  • If compilation of bundled libraries is aborted for any reason, you will probably need to clean the libs directory and start over. This can be done by executing git clean -df && git reset --hard HEAD inside libs/ directory.

  • If the build fails during libcurl compilation because of missing sed utility, download it from GnuWin and place it into your system path or copy it into MSVC/VC/bin. It also comes with Git and can be placed into your system path automatically if you select that option during Git installation.

macOS

Install:

  1. Xcode:
  1. Homebrew (https://brew.sh/)

Then brew the following packages in the terminal app:

# all compilation tools needed
$ brew install cmake autoconf nasm automake libtool

# Libraries if you do not wish to compile and use the provided sources (BUNDLED_LIBS)
$ brew install glew sdl2 minizip jpeg-turbo curl lua libogg libvorbis theora freetype libpng sqlite openal-soft

Alternative way to install the dependencies is to run

$ brew bundle
$ brew bundle --file=misc/macos/libs.Brewfile

Depending on what brew version you're using (mostly older ones), you have to specify brew install --universal to get both 32bit and 64bit libs. If it throws an error, just use the command listed above. Although your system curl library supports both architectures, you also need to install its headers.

  • option A: easybuild

There are many flags and options provided by easybuild.sh. The ET: Legacy version you can compile depends on the used macOS version.

If you're running up to macOS 10.14 (Mojave), use one the following flags in Terminal.app:

$ ./easybuild.sh        # for compiling a 32 bit version or
$ ./easybuild.sh -64    # for compiling a 64 bit version

This will put an 'etlegacy' folder with the selected arch into your user folder.

With macOS 10.15 (Catalina) and above, your only option is to compile and run a 64 bit client. Therefore you need to use the following flags:

$ ./easybuild.sh -64 --osx=10.15    #watch out for the double dash at --osx !

Take a look into easybuild.sh for more information and further options/flags.

  • option B: command line

In terminal, run:

$ mkdir build && cd build && cmake ..

Look into easybuild.sh for all available CMake options.

To compile, run:

$ make

If you wish to install ET: Legacy system-wide, run:

$ make install

Be sure to set the CMake variables (see above) beforehand.

NOTES:

  • In the legacy mod folder, the cgame_mac and ui_mac files are redundant since they are in the mod .pk3 and will be extracted at runtime, so you can delete those. The client is named "ET Legacy.app" (and can safely be renamed), while the dedicated server is just a command-line binary named "etlded".

Raspberry Pi / Others that run on aarch64 architecture

ET: Legacy supports both OpenGL and OpenGL ES.

Required Devices

RPI 4+ (64bit Operating System) or any that runs aarch64 arch

Required dependencies

$ sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev \
libasound2-dev libjpeg8-dev libwebp-dev automake libgl1-mesa-glx libjpeg62-turbo libogg0 libopenal1 libvorbis0a \
libvorbisfile3 zlib1g libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libglew-dev libegl1-mesa-dev \
nasm autoconf git cmake zip gcc g++ libtool libxrandr-dev x11proto-randr-dev

Pi 4+ install instructions

The OpenGL driver used is the Fake KMS driver and currently both OpenGL and GLES are ran within an X11 session. If you want to switch between OpenGL and GLES when installing ET: Legacy on the Pi 4, simply set the FEATURE_RENDERER_GLES flag to 0 or 1 under the RPI section within the easybuild.sh script and run ./easybuild.sh -RPI -j4.

Others

If you want to switch between OpenGL and GLES when installing ET: Legacy, simply set the FEATURE_RENDERER_GLES flag to 0 or 1 under the RPI section within the easybuild.sh script and run ./easybuild.sh -RPI -j4.

Snap Store/Snapcraft

To install ET Legacy using Snap Store/Snapcraft follow instructions in: etlegacy-snap repo

LICENSE

ET: Legacy

Wolfenstein: Enemy Territory GPL Source Code Copyright (C) 1999-2010 id Software LLC, a ZeniMax Media company.

OpenWolf GPL Source Code Copyright (C) 2011 Dusan Jocic

XreaL GPL Source Code (renderer2) Copyright (C) 2010-2011 Robert Beckebans

ET: Legacy Copyright (C) 2012-2024 ET:Legacy Team [email protected]

ET: Legacy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ET: Legacy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with ET: Legacy (see COPYING.txt). If not, see https://www.gnu.org/licenses/.

ADDITIONAL TERMS: The Wolfenstein: Enemy Territory GPL Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU GPL which accompanied the Wolf ET Source Code. If not, please request a copy in writing from id Software at id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.

EXCLUDED CODE: The code described below and contained in the Wolfenstein: Enemy Territory GPL Source Code release is not part of the Program covered by the GPL and is expressly excluded from its terms. You are solely responsible for obtaining from the copyright holder a license for such code and complying with the applicable license terms.

MD4 Message-Digest Algorithm

Copyright (C) 1991-1992, RSA Data Security, Inc. Created 1991. All rights reserved.

License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD4 Message-Digest Algorithm" in all mater ial mentioning or referencing this software or this function.

License is also granted to make and use derivative works provided that such work s are identified as "derived from the RSA Data Security, Inc. MD4 Message-Digest Algorithm" in all material mentioning or referencing the derived work.

RSA Data Security, Inc. makes no representations concerning either the merchanta bility of this software or the suitability of this software for any particular p urpose. It is provided "as is" without express or implied warranty of any kind.

MD5 Message-Digest Algorithm

The MD5 algorithm was developed by Ron Rivest. The public domain C language implementation used in this program was written by Colin Plumb in 1993, no copyright is claimed.

This software is in the public domain. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, without any conditions or restrictions. This software is provided "as is" without express or implied warranty.

etlegacy's People

Contributors

aciz avatar aranud avatar boutetnico avatar bszili avatar core-c avatar dimhotepus avatar ensiform avatar etlegacytransifexrobot avatar exagone313 avatar harleking avatar helldembez avatar ir4t4 avatar isryven avatar jackeri avatar jansimek avatar laaksonel avatar mittermichal avatar morsik avatar raedwulf avatar rafal1137 avatar reinerh avatar rmarquis avatar ryzyk-krzysiek avatar suburbski avatar swillits avatar thedushan avatar thunderpwn avatar timosmit avatar x0rnn avatar zturtleman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etlegacy's Issues

Alt+Tab minimize

Author: acqu (acqu)
Date: 2012-03-11
Redmine Issue: 21, https://dev.etlegacy.com/issues/21


The ALT+TAB shortcut standardly minimizes the game on Windows (on Linux i didn't test yet). Two issues, after minimize (from fullscreen mode) and then maximize again:

a) the game still thinks tab key is held down (tab menu gets displayed without tab key pressed)
b) the client's crosshair will 'zip', that means the player will unintentionally move his crosshair from one point to another (this is similar behaviour as with 'extended ascii userinfo bug', where a player who connects with bad chars in userinfo will make all clients on the server zip their crosshair)

b is very interesting. Maybe you can debug command buffer to see what is happening there.

Nightly builds

Author: @JanSimek (Radegast)
Date: 2012-05-08
Redmine Issue: 46, https://dev.etlegacy.com/issues/46


Set up buildbot for nightly builds

The objective is to make testing easier and have realtime build reports on our irc channel. This process should be completely automated and new builds added to the files section through "Redmine REST api":http://www.redmine.org/projects/redmine/wiki/Rest_api if possible or a dedicated wiki page and or http://mirror.etlegacy.com

Build bot: http://trac.buildbot.net

Automatically replace test server with nightly builds

Test server running at etlegacy.com should be replaced every day at 2:00 CET or alternatively by manually executing a script for immediate replacement.

Movement slowed down after HW usage

Author: @IR4T4 (IR4T4)
Date: 2012-03-15
Redmine Issue: 23, https://dev.etlegacy.com/issues/23


Can't reproduce it but for some reasons movement slowed down (HW speed) and stays after HW usage (unskilled). Weapon/class change etc doesn't help here to get normal speed again.


Related issue(s): #317


Related commit(s):
3ac5602 - client: do not bind +speed to the CAPSLOCK key by ..
c7fd8d3 - mod: bind +speed to CAPSLOCK again - revertshttp:..

Fix compiler warnings

Author: @IR4T4 (IR4T4)
Date: 2012-04-24
Redmine Issue: 33, https://dev.etlegacy.com/issues/33


There are tons of warnings ... improve the code quality and fix them!

Note: ignore AI - see #3


Related commit(s):
38c01ed - trivial warning fixes - refs 33
72c08ef - housecleaning of common.c - refs 33
d7a7290 - ugly warning fix for 64b - refs 33
9c8e3e8 - warning fix refs 33
7517b31 - bg_animation refs 33
f3442dd - cg_sound refs 33
a6e32cf - game fixed to use OB refs 33
86a0b2c - OB fix refs 33
47c4ffc - be_ea.h refs 33
55b1352 - botai path removed from project refs 33
4320d2c - botlib clean up refs 33
2dc8a0c - server: all warnings fixed, refs 33
72aeb86 - game code cleanup refs 31 - fixed warnings depend..
44124e4 - warning fix refs 33 . some formatting
b8b8e7c - generic: clang compilation and warning fixes, refs..
f7d8c33 - misc: ported ioquake3 'noreturn' warning fix, refs..
8537ebf - misc: fixed a few compiler warnings, refs 33
5d69b39 - misc: warning fixes, unsigned cannot be < 0, refs ..
5c03a71 - misc: compiler warning fixes, refs 33
940900b - cgame: fixed 'implicit declaration' warning, refs ..
bf3d69f - game: removed duplicate variables, refs 33
a3a428b - misc: fixed a couple of compiler warnings, refs 3..
6b88f75 - generic: compiler warning fixes, refs 33
e4278e5 - generic: fixed implicit declaration warnings, refs..
e52bda7 - generic: minor clean up and warning fixes, refs 3..
8a63c9c - server: comment formatting and removed one forgott..
7061fcf - mod: no need to use va() in G_LogPrintf, clean up,..
856b228 - client: resolve ET:L update server, refs 32, refs..
1db996a - misc: fixed several 'set but not used' warnings, r..

Remove AI scripting from the botlib

Author: @IR4T4 (IR4T4)
Date: 2012-03-02
Redmine Issue: 3, https://dev.etlegacy.com/issues/3


As far as I know the botlib isn't used by any ET mod. Please remove.

Note: Keep in mind some 'botlib' traps are still required:
BOTLIB_PC_LOAD_SOURCE = 579,
BOTLIB_PC_FREE_SOURCE,
BOTLIB_PC_READ_TOKEN,
BOTLIB_PC_SOURCE_FILE_AND_LINE,
BOTLIB_PC_UNREAD_TOKEN

Here is a list of used system traps:

//
 // system traps provided by the main engine
 //
 typedef enum {
 //============== general Quake services ==================
G_PRINT = 0,        // ( const char *string );
// print message on the local console

G_ERROR,        // ( const char *string );
// abort the game

G_MILLISECONDS, // ( void );
// get current time for profiling reasons
// this should NOT be used for any game related tasks,
// because it is not journaled

// console variable interaction
G_CVAR_REGISTER,    // ( vmCvar_t *vmCvar, const char *varName, const char *defaultValue, int flags );
G_CVAR_UPDATE,  // ( vmCvar_t *vmCvar );
G_CVAR_SET,     // ( const char *var_name, const char *value );
G_CVAR_VARIABLE_INTEGER_VALUE,  // ( const char *var_name );

G_CVAR_VARIABLE_STRING_BUFFER,  // ( const char *var_name, char *buffer, int bufsize );

G_CVAR_LATCHEDVARIABLESTRINGBUFFER,

G_ARGC,         // ( void );
// ClientCommand and ServerCommand parameter access

G_ARGV,         // ( int n, char *buffer, int bufferLength );

G_FS_FOPEN_FILE,    // ( const char *qpath, fileHandle_t *file, fsMode_t mode );
G_FS_READ,      // ( void *buffer, int len, fileHandle_t f );
G_FS_WRITE,     // ( const void *buffer, int len, fileHandle_t f );
G_FS_RENAME,
G_FS_FCLOSE_FILE,       // ( fileHandle_t f );

G_SEND_CONSOLE_COMMAND, // ( const char *text );
// add commands to the console as if they were typed in
// for map changing, etc


//=========== server specific functionality =============

G_LOCATE_GAME_DATA,     // ( gentity_t *gEnts, int numGEntities, int sizeofGEntity_t,
//                          playerState_t *clients, int sizeofGameClient );
// the game needs to let the server system know where and how big the gentities
// are, so it can look at them directly without going through an interface

G_DROP_CLIENT,      // ( int clientNum, const char *reason );
// kick a client off the server with a message

G_SEND_SERVER_COMMAND,  // ( int clientNum, const char *fmt, ... );
// reliably sends a command string to be interpreted by the given
// client.  If clientNum is -1, it will be sent to all clients

G_SET_CONFIGSTRING, // ( int num, const char *string );
// config strings hold all the index strings, and various other information
// that is reliably communicated to all clients
// All of the current configstrings are sent to clients when
// they connect, and changes are sent to all connected clients.
// All confgstrings are cleared at each level start.

G_GET_CONFIGSTRING, // ( int num, char *buffer, int bufferSize );

G_GET_USERINFO,     // ( int num, char *buffer, int bufferSize );
// userinfo strings are maintained by the server system, so they
// are persistant across level loads, while all other game visible
// data is completely reset

G_SET_USERINFO,     // ( int num, const char *buffer );

G_GET_SERVERINFO,   // ( char *buffer, int bufferSize );
// the serverinfo info string has all the cvars visible to server browsers

G_SET_BRUSH_MODEL,  // ( gentity_t *ent, const char *name );
// sets mins and maxs based on the brushmodel name

G_TRACE,    // ( trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentmask );
// collision detection against all linked entities

G_POINT_CONTENTS,   // ( const vec3_t point, int passEntityNum );
// point contents against all linked entities

G_IN_PVS,           // ( const vec3_t p1, const vec3_t p2 );

G_IN_PVS_IGNORE_PORTALS,    // ( const vec3_t p1, const vec3_t p2 );

G_ADJUST_AREA_PORTAL_STATE, // ( gentity_t *ent, qboolean open );

G_AREAS_CONNECTED,  // ( int area1, int area2 );

G_LINKENTITY,       // ( gentity_t *ent );
// an entity will never be sent to a client or used for collision
// if it is not passed to linkentity.  If the size, position, or
// solidity changes, it must be relinked.

G_UNLINKENTITY,     // ( gentity_t *ent );
// call before removing an interactive entity

G_ENTITIES_IN_BOX,  // ( const vec3_t mins, const vec3_t maxs, gentity_t **list, int maxcount );
// EntitiesInBox will return brush models based on their bounding box,
// so exact determination must still be done with EntityContact

G_ENTITY_CONTACT,   // ( const vec3_t mins, const vec3_t maxs, const gentity_t *ent );
// perform an exact check against inline brush models of non-square shape

    #ifdef OMNIBOTS
// IRATA: used by OmniBot
G_BOT_ALLOCATE_CLIENT = 36, // ( int clientNum );
    .#endif

G_GET_USERCMD = 38, // ( int clientNum, usercmd_t *cmd )

G_GET_ENTITY_TOKEN, // qboolean ( char *buffer, int bufferSize )
// Retrieves the next string token from the entity spawn text, returning
// false when all tokens have been parsed.
// This should only be done at GAME_INIT time.

G_FS_GETFILELIST,
G_DEBUG_POLYGON_CREATE,
G_DEBUG_POLYGON_DELETE,
G_REAL_TIME,
G_SNAPVECTOR,
    // MrE:

G_TRACECAPSULE, // ( trace_t *results, const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int passEntityNum, int contentmask );
// collision detection using capsule against all linked entities

G_ENTITY_CONTACTCAPSULE,    // ( const vec3_t mins, const vec3_t maxs, const gentity_t *ent );
// perform an exact check against inline brush models of non-square shape
   // done.

G_GETTAG,

G_REGISTERTAG,
// Gordon: load a serverside tag

G_REGISTERSOUND,    // xkan, 10/28/2002 - register the sound
G_GET_SOUND_LENGTH, // xkan, 10/28/2002 - get the length of the sound

   #ifdef OMNIBOTS
// 200
BOTLIB_GET_CONSOLE_MESSAGE = 210, // ( int client, char *message, int size );
BOTLIB_USER_COMMAND = 211,           // ( int client, usercmd_t *ucmd );

// 400
BOTLIB_EA_COMMAND = 407,
    #endif

// 500
// files
BOTLIB_PC_LOAD_SOURCE = 579,
BOTLIB_PC_FREE_SOURCE,
BOTLIB_PC_READ_TOKEN,
BOTLIB_PC_SOURCE_FILE_AND_LINE,
BOTLIB_PC_UNREAD_TOKEN,
   #ifdef PUNKBUSTER
// PB_STAT_REPORT = 584,
   #endif
// zinx
G_SENDMESSAGE = 585,
G_MESSAGESTATUS,
// -zinx

} gameImport_t;


Related issue(s): #31


Related commit(s):
1e50d88 - partially removed botlib, fixes 3
8558c91 - Revert "partially removed botlib, fixes 3"This ..
96f272a - first stage of botlib code removal, refs 3
994b3f0 - game bot removal refs 3
1ca1c5f - premake updade bot removal refs 3
ffef98b - botlib removal refs 3
b4fec65 - botlib removal refs 3
ee6e151 - botlib fixes refs 3
7dedf7d - botlib fixes refs 3
5d6768e - botlib issues refs 3
8955356 - missing function added refs 3
9090305 - let's use Q_stristr refs 3
2554250 - botlib issues refs 3
f7ce4ed - constructible functions refs 3
aa6519c - botlib ... refs 3
dcf4f48 - botlib ... refs 3
b201104 - botlib ... refs 3
10a0785 - botlib removal, refs 3
05d95c5 - botlib removal ditched obsolete files refs 3
4926f66 - botlib kicked out of BOTLIB_EA_COMMAND case refs ..
e5ea880 - botlib removal refs 3
9f12761 - botlib shrinked refs 3
f796c99 - botlib is no longer required for game refs 3

Import fixes from the "Project: Bug fix"

Author: @JanSimek (Radegast)
Date: 2012-03-10
Redmine Issue: 18, https://dev.etlegacy.com/issues/18


[[http://games.chruker.dk/enemy_territory/modding_project_bugfix.php]]

??The goal of this project is to provide modders in the ET community with a SDK code base that contains fixes for various bugs which are present in the stock etmain game (version 2.60).??


Related commit(s):
f2d9bf4 - imported fixes from the Project: Bug Fix (1/2), re..
c5c1180 - imported fixes from the Project: Bug Fix (2/2), fi..

Remove unused engine code

Author: @JanSimek (Radegast)
Date: 2012-05-16
Redmine Issue: 31, https://dev.etlegacy.com/issues/31


Get rid of deprecated and redundant code inside Enemy Territory.


Related issue(s): #33
Child issue(s): #50, #51, #52


Related commit(s):
5643bb3 - commented code removal refs 31
d8566e6 - client side single player removal refs 31
0364a57 - server single player code removal - refs 31
5d3ee60 - clean up of ui_gameinfo.c - refs 31
07bcb39 - clean up of cl_main.c - refs 31
e4ad0c2 - clean up refs 31
cef8ac6 - unused code removal refs 31
af1cc4c - server AUTHORIZE_SUPPORT code removal refs 31
0e40c0c - qcommon AUTHORIZE_SUPPORT code removal refs 31
231152c - daily clean up refs 31
f4c3887 - common savegame_loading cvar removed refs 31
ae8ad84 - client savegame_loading cvar removed refs 31
1a4bcf0 - SAVEGAME_SUPPORT removal refs 31
aceb450 - single player and savegame support code removed re..
cfdd5b2 - small clean up of cg_view.c refs 31
b388879 - unused code removal/better code quality refs 31
b9973f9 - renderer small clean up refs 31
72aeb86 - game code cleanup refs 31 - fixed warnings depend..
d3f9524 - cgame removal of unused bits and pieces refs 31 /..
ee705ed - extern void SV_BotFrame removed from cl_main.c ref..
dfeeadd - netchan scramble code removal refs 31
88559e4 - cl_notebook is unused refs 31
eef7d7e - general: removed several unused cvars, refs 31
19d7e75 - server: removed unused code, refs 31
8cd723f - misc: removed unused assembler code, refs 31
b161ca7 - removal of unused cvars in renderer refs 31
091ab20 - removed unused command "which", formatting, someth..
c42498e - clean up refs 31
b16370c - Don't exec non implemented system calls, some clea..
795cef2 - changed config file entry "generated by" so we (an..
0c22035 - renderer code clean up, formating, minor optimizat..
58dd4f2 - clean up refs 31
ad72248 - version and build info, some clean up refs 31
58032e2 - some files in sys slightly optimized, clean up, fo..
38c1674 - client: removed obsolete driver detection, refs 5..
ccb8acd - bot_input_t isn't used anymore refs 31
a95f6f1 - refs 31
39ccbb5 - general: useless code removal refs 31
f940735 - generic: "cropimages" cmd is unknown refs 31
debb1b1 - misc: removed unused cvar fs_apppath, refs 31
f0015f0 - client: removed unused function and variables, ref..
c8a2477 - client: cl_visibleClients is unused refs 31
ad84b4b - misc: marked unused functions, cleaned up comments..
7b35191 - misc: removed unused cvars com_cameraMode and com_..
e32322e - client: removed com_logosPlaying, prepared com_int..
b65f57c - client: unused code removal refs 31
1b8a4b2 - client: unused SCR_DrawNamedPic() removed refs 31
c2e1db0 - client: removed several unused renderer cvars, ref..
3e5a737 - misc: removed unused cvar fs_copyfiles, refs 31
7bd8dea - misc: removed unused and useless functions, refs ..
a207a6f - client: renderer clean ups, refs 31
6e6c2d0 - generic: removed unused filesystem functions, refs..
99f39a2 - generic: clean up and removal of unused cvars, ref..
b7402fe - client: code style (var scope)/removal/clean up re..
8a45b4e - client: unused code removed, notes refs 31
e52bda7 - generic: minor clean up and warning fixes, refs 3..
7e6624a - generic: removed gameInfo, refs 31
1e1de96 - server: fixed date in SV_WriteAttackLog, removed s..
3cdf6d8 - server: SV_GamePrint() removed refs 31
e0cc55c - generic: removed ERR_NEED_CD, refs 31
508b68a - generic: removed the rest of cdkey, refs 50, refs..
027c8f9 - client: do not set unused mp_ cvars, refs 31
1e9d7ff - renderer: r_showmodelbounds is unused refs 31
2923f20 - client: removed unused cvar cl_anonymous, clean up..
ab3ec05 - general: clean up, refs 31
74d37ea - generic vm: obsolete vm_ cvars removed (we don't l..
b88044b - client: warning and comment fixes, code clean up, ..
cf4f814 - misc: unused code removed, refs 31Credit goes to..
cd66177 - misc: removed DO_LIGHT_DEDICATED code, refs 31
5bf8be3 - misc: removed unused file streaming, refs 31
fe46584 - misc: clean up patch by DevHC, refs 31
70552ac - misc: removed set but not used variables, refs 31
fe18ef6 - general: removed unused code and renamed Sys_GetPa..
99ee1ee - generic: unused functions MSG_WriteDeltaUsercmd an..
dc2a144 - misc: removed unneeded variable, refs 31
b20a968 - generic: clean up of botlib.h refs 31
aec87c5 - client: removed con_restricted relic, refs 31
550be7d - misc: remove Q_strrchr (ioq3), refs 31
0d5fcf5 - client: hunk_soundadjust cvar (rtcw relic) usage r..
f1f1737 - client: removed unused cvars r_displayRefresh and ..
42574dd - sys: no need for MEM_THRESHOLD on linux refs 31
b02e240 - client: WRITE_1BYTES is unused refs 31
5a547d9 - misc: removed left over of MD4 model format, refs ..
e96774a - misc: removed left over of MD4 model format, refs ..
2a67aac - botlib: cleanup/separate botlib logger removed ref..
95d1f55 - botlib: bot libvar removal refs 31
20e3cd3 - generic: removed obsolete cvar sv_allowAnonymous, ..
9ce0a3f - botlib: clean up refs 31
43f8907 - botlib: clean up refs 31
3cf814a - botlib: clean up refs 31
aef5632 - qcommon: MRE_OPTIMIZE macro removed refs 31
fa8357f - client: unused functions/code and commented or rem..
377d17c - botlib: unused functions commented, header paths a..
7feea52 - client: cl.cameraMode removed refs 31
3b17e5f - renderers: removed unused r_ext_compiled_vertex_ar..
70370cc36c00e50443a5b8dc2d7f66b4c083f374 - client: removed unused client message mode, refs ..
9057860c76b246cc1f1dd9d7f8cc9e587fc270bc - client: removed unused client notification drawing..
b3fdd9d - client: removed unused client message mode, refs ..
7dfd3dd - client: removed unused client notification drawing..
5a45eff - renderers: dead code removal refs 31
eb3bbde - client: removed spammy client debug message, refs ..

Backport AVI recording from ET-Xreal

Author: @JanSimek (Radegast)
Date: 2012-04-30
Redmine Issue: 40, https://dev.etlegacy.com/issues/40


ET-Xreal introduced this feature in "this commit":http://xreal.git.sourceforge.net/git/gitweb.cgi?p=xreal/ET-XreaL;a=commit;h=6e378e6fd9e4895439ad3936a26b8287466e7f67. It was originally written by Tim Angus for ioquake.


Related commit(s):
f1981cc - client: fixed avi sound recording partially, some ..
0bf2404 - client: Avi recording now works and fixed the soun..

Trackbase Statistic Tracking

Author: Trackbase (Trackbase)
Date: 2012-04-21
Redmine Issue: 27, https://dev.etlegacy.com/issues/27


The idea is to create a feature where you can set an ID in the server config.
Something like tb_trackguid "someguid". If this is filled in, the server will send the results of

  • statsall (= weaponstats of all players)
  • gamestate
  • the normal 'getinfo' request

To Trackbase, so TB will not suffer from problems it has now with the new tracking method, also there is no seperate slot needed anymore and in total uses less bandwidth.

About the format we still need to discuss.


Related commit(s):
3375ded - server: added trackbase support, closes 27

Remove single player code

Author: @IR4T4 (IR4T4)
Date: 2012-04-22
Redmine Issue: 28, https://dev.etlegacy.com/issues/28


As far as I know there is no need for single player code aynmore. Time to remove it?

  • see occurrence of SV_GameIsSinglePlayer()

  • there are related vars like savegame_loading, savegame_filename which might be removed as well


Related issue(s): #31


Related commit(s):
aceb450 - single player and savegame support code removed re..
4eee78b - client SAVEGAME_SUPPORT removal refs 28
a054a21 - cgame SAVEGAME_SUPPORT code removal refs 28
e971b93 - game SAVEGAME_SUPPORT code removal refs 28
283759a - server SAVEGAME_SUPPORT code removal refs 28
fa59711 - ui single player/bot code removal refs 28
c041380 - warning fix refs 28
189d82e - cgame single player snippets removed refs 28 - sm..
0d98246 - mod: BG_IsSinglePlayerGame() removed, some unused ..
72f7c26 - generic: removed single player references from gam..
5204bb7 - ui: removed ui_singlePlayerActive and startSinglep..
c1af50f - general: single player code removal and clean up, ..

Test NET_AdrToString and associated code for IPv6 addresses / fix q3 net code merge

Author: Trackbase (Trackbase)
Date: 2012-05-13
Redmine Issue: 49, https://dev.etlegacy.com/issues/49


The NET_AdrToString function is different then the one from ET:GPL (no port is added)
This results in problems with several mods that rely on an ip:port format in the userinfo.

This issue has been fixed by manually adding it, the main question stays however, does this affect more code? This needs checking...


Related issue(s): #501


Related commit(s):
d6ade04 - general: NET_AdrToString returns address with port..
48a14a3 - general: removed all occurrences of NET_AdrToStrin..
8bf9bc9 - generic: show IPv6 addresses using NET_AdrToString..
a2833e8 - client: NET_AdrToStringwPort replaced by NET_AdrTo..

Server hung after some maps.

Author: @morsik (morsik)
Date: 2012-05-09
Redmine Issue: 47, https://dev.etlegacy.com/issues/47


For unknown reason server hung after some maps. Not on some specific - it's randomly.

This problem exists on: NQ 1.3, Nitmod 2.2, ETPub 1.0.

Latest log (with +set developer 1):

Cvar_Set2: timelimit 0.0001
broadcast: print "Server: timelimit changed to 0.0001\n"
broadcast: print "Timelimit hit.\n"
Exit: Timelimit hit.
score: 36  ping: 0  client: 2 =BOT=Vokur
score: 26  ping: 0  client: 1 =BOT=Halfwit
score: 22  ping: 0  client: 9 =BOT=Brad
score: 21  ping: 0  client: 5 =BOT=Nohope
score: 16  ping: 0  client: 8 =BOT=Zarna
score: 10  ping: 0  client: 3 =BOT=Cledus
score: 15  ping: 0  client: 10 =BOT=Stinger
score: 7  ping: 0  client: 4 =BOT=Kaolin
score: 3  ping: 0  client: 6 =BOT=CraigChrist
score: 0  ping: 0  client: 7 =BOT=Razor
red:79  blue:77
Cvar_Set2: etpub_axismapxp0  22 16 10 0 24 0 7
Cvar_Set2: etpub_alliedmapxp0  0 30 4 3 32 3 5
Cvar_Set2: g_reset 0
Sending gameCompleteStatus to etmaster.idsoftware.com


Related commit(s):
5957b5d - server: fixed infiniteloop, fixes 47
5123596 - Don't limit game complete messages to master serve..

Fix autoupdater

Author: @JanSimek (Radegast)
Date: 2013-01-08
Redmine Issue: 32, https://dev.etlegacy.com/issues/32


Currently, it is only possible to update files located inside @fs_homepath@ and not the client and server executables.


Related issue(s): #73
Child issue(s): #147


Related commit(s):
693f448 - client: auto-update URL changed to "updates.etlega..
856b228 - client: resolve ET:L update server, refs 32, refs..
da0f7cf - client: changed getUpdateInfo format, refs 32
fe4eae2 - client: use the old update popup again - update se..
1335d5a - client: autoupdate is able to initiate downloads, ..
e113b60 - client: encapsulated autoupdate in FEATURE_AUTOUPD..
e9b64de - client: update is copied to the appropriate direct..
11e2ee5 - client: autoupdate supports multiple file download..
10a54f0 - client: send list of files and their md5 checksums..
1a3e8fb - client: display correct port of MOTD and update se..
f7d9383 - generic: separated autoupdate variables from clien..
b38f562 - client: fixed autoupdate server address comparison..
a5fc000 - client: fixed autoupdate server address comparison..
9ea3427 - fixed the update downloading and launching the upd..
cd65cd5 - if we have update data then actually update the ga..
f98b5ba - pass over the original etl commandline arguments t..
5fdab7d - download the update binary zip from a different lo..
c6691ac - the update system now works, but the spam on the u..
d9d8536 - autoupdate now works without actually trying to op..
8e3a929 - clean up the cvar values also on the update system..
dff3393 - fixed the update download progress not showing
20072f0 - added missing cvarset on update code and uncrustif..
71f7f0a - remove the old updater before unpacking the new on..
68e0196 - the client will check for updates every 5 minutes,..
4b6bf1d - minor fix to update checking, refs 32
e3233e8 - fixed the issue of multiple popups, refs 32
8acdd20 - ui: make update option visible only for vanilla cl..
449084a - removed the autoupdate cvar, refs 32
643c687 - misc: fixes to ded update sytem, refs 32

Improve 'error' message output for models, shader & co (developer 1)

Author: @IR4T4 (IR4T4)
Date: 2012-03-02
Redmine Issue: 5, https://dev.etlegacy.com/issues/5


If a valid file is found & used the engine still nags about other optional file formats with "Can't find "
Example: existing file is jpg format -> Can't find .tga


Related commit(s):
2d7b65b - client: simplified R_LoadImage function, fixed bog..
402d4b4 - client: filename comparison fails if one starts wi..
fab90d7 - client: check nonessential files exist before open..
ba2c352 - client: improved sound warnings, refs 5
78379b6 - client: let us know when RE_RegisterModel is calle..
f517c30 - cgame: don't register empty item world_models ... ..
5092f93 - cgame: don't register empty or null item icon shad..
5c87716 - cgame: improved messages for register calls (_DEBU..

Remove unused UI code

Author: @IR4T4 (IR4T4)
Date: 2012-05-16
Redmine Issue: 50, https://dev.etlegacy.com/issues/50


Remove useless code
See #31 - reference for ui


Related commit(s):
af37fb5 - clean up refs 50
d825871 - misc: removed unused variables in UI code, refs 5..
6736135 - obsolete ui bot cvars removal refs 50
8745910 - mod ui: unreachable and unused code removed refs ..
b0632fa - mod ui: obsolete PB syscalls deactivated, clean up..
e057e09 - ui: removed forgotten semicolon from code clean up..
ee04dd0 - general: removed support for ancient Macs, refs 5..
2b570b8 - ui: removed unused defines and variables, refs 50
10d60c7 - mod: print number of used cvars, ui: ui_notebookCu..
3292e8d - UI: cvars removal refs 50
5c602c0 - mod: some clean up/optimizations refs 50, refs 5..
90d13d3 - UI: button focus adjusted / clean up fixes 144 re..
8adb7e8 - ui: relics removed refs 50
c8caaba - ui: unused function removed refs 50
269f734 - ui: code style var scope/clean up refs 50
fe698bd - client: unused cvars/code removed refs 50 refs 5..
1ef53ed - ui: no need for player models in ui refs 50
b5dd1d0 - ui: some clean up in ui refs 50
508b68a - generic: removed the rest of cdkey, refs 50, refs..
97f0c22 - ui: clean up refs 50
5204bb7 - ui: removed ui_singlePlayerActive and startSinglep..
9683ab8 - ui: removed unused code, refs 50
44b81d9 - UI: unused function UI_GetIndexFromSelection remov..
a6ffc3b - ui: inGameLoad is unused refs 50
329e16a - ui: unused UI_MapCountByCampaign() function remove..
df43963 - cgame/ui: unused ui/cg cvars removal (smallFont/bi..
eb90296 - ui: removed set but not used variable 'inHandler',..
6dab138 - ui: unsed functions removed refs 50
e267779 - ui: clean up of ui_local.h refs 50
21c0a6b - ui: unused cvars removal refs 50
142107e - ui: some clean up refs 50 , print a message for b..
72eb32d - ui: no high score sound in ET refs 50
a28fd72 - ui: unused code commented refs 50
e0129a1 - ui: unused code commented, refs 50
2e2b4a9 - ui: removed unused defines, refs 50

breakable Glasses

Author: StoerFaktoR (StoerFaktoR)
Date: 2012-03-20
Redmine Issue: 25, https://dev.etlegacy.com/issues/25


Game is crashing if shooting on breakable glasses like windows.

----- CL_Shutdown -----
Sys_LoadDll(C:\Dokumente und Einstellungen\ChrisS\Anwendungsdaten\WolfET\etmain\ui_mp_x86.dll)...
Sys_LoadDll(C:\Dokumente und Einstellungen\ChrisS\Anwendungsdaten\WolfET\etmain\ui_mp_x86.dll): succeeded ...
Sys_LoadDll(ui) found vmMain function at 40011C20
^1ERROR: Could not open "sound/misc/menu2.wav"
Closing SDL audio device...
SDL audio device shut down.
RE_Shutdown( 1 )

----- Server Shutdown -----
==== ShutdownGame ====


Related issue(s): #19

Id master getservers request

Author: acqu (acqu)
Date: 2012-04-25
Redmine Issue: 37, https://dev.etlegacy.com/issues/37


The current id masterserver has options to which it replies, e.g. "getservers %s", where %s is the protocol, e.g. 84. Sending him just that, will make him reply with a reduced set of servers, i.e. you will get only those not totally empty/not totally full. However, id masterserver has also the following option:

@getservers %s empty full@

Sending him that, will make him reply with (to my knowledge) full masterlist. I found out about this, when i studied replies from ms. There were only 400 servers i got on each request. After changing the getservers request i got slightly above 1000 (protocol 84). Almost half the list was not send.

Current et client 2.6b and also etlegacy do just send the reduced string. For receiving full masterlist the following needs to be changed in CL_GlobalServers_f:

@sprintf(command, "%s %s empty full", cmdname, Cmd_Argv(2));@


Related commit(s):
52ac4aa - acqu's fix to get get all servers fixes 37

Configurable Masterlist

Author: acqu (acqu)
Date: 2012-04-17
Redmine Issue: 26, https://dev.etlegacy.com/issues/26


Hi, it is probably better to make the masterserverlist configurable, that is removing

@#define MASTER_SERVER_NAME "etmaster.idsoftware.com"@

and adding making it a client cvar. I am not sure though if it is possible (depends on the starting process i guess, haven't looked much further into it), but if it is possible, i do not see any disadvantages of doing it.

P.S. provided the case the client does not find any address, there should be a fallback address.

Remove SMP code

Author: @JanSimek (Radegast)
Date: 2012-05-04
Redmine Issue: 44, https://dev.etlegacy.com/issues/44


SMP support is present but broken in the vanilla Enemy Territory.

Although it is disputable if there will be any benefits to it (see below), we should backport SMP support from ioquake.

Zachary from the ioquake project:

Regular (id software) Quake 3 supported this, and it worked "ok" on old SMP Pentium 500 Machines back in the day.
So all the SMP code in Quake 3 when the source code was released was designed to improve the game on ancient hardware.
On modern hardware the built-in SMP support on the id software Quake 3 gives little benefit to, none, or degrades, performance.


Related commit(s):
0b6e387 - client: added experimental SMP support, fixes 44..
0f1edbd - excluding some code when --enable-smp is not set b..
475a93c - non SMP_SUPPORT build fix refs 44
fcea630 - client: let users experiment with FEATURE_SMP, ref..
dde53aa - renderer: more FEATURE_SMP macros for related code..
f3b840b - client: removed SMP, fixes 44
47b6b09 - ui: removed smp code refs 44
50e9fbd - qcommon: SMP code removal refs 44

Adding support of compressed file formats?

Author: @IR4T4 (IR4T4)
Date: 2012-04-30
Redmine Issue: 34, https://dev.etlegacy.com/issues/34


wav files are huuuuge ... implement support of Ogg/Vorbis, Matroska or other free formats ... mp3 might cause trouble because of licence issues.


Child issue(s): #40


Related commit(s):
0596e04 - premake: added option to use OGG Vorbis codec (--w..
26af6ec - game: playsound command from ETPub/NQ refs 34
fad2154 - client: merged and modified S_Play_f function base..
13f1030 - cgame: ET sounds are not compressed refs 34
09acb25 - ui: ET sounds are not compressed refs 34
cbad2b5 - cgame/ui: pass the compressed param for register s..
139b5af - misc: removed readline support from Lua, added OGG..
9af53da - client: ogg vorbis is armed now refs 34
ef15707 - misc: FEATURE OGG VORBIS enabled by default refs ..
e3d315b - cgame: added a warning for non wav sounds refs 34

Enable translation support

Author: @JanSimek (Radegast)
Date: 2012-05-05
Redmine Issue: 45, https://dev.etlegacy.com/issues/45


Adapt ET's localisation system to use "gettext":http://www.gnu.org/software/gettext/.


Related commit(s):
93c2a6f - translation cfg file refs 45 - make sure characte..
f985e8c - language support for polish, dutch, czech, russian..
789a30e - client: enabled additional languages, refs 45
4b00f90 - rest of german translations refs 45
4da858e - Mod pak3.pk3: option to set cl_language added to '..
16f0178 - ui: translations for ui - LOCALIZATION_SUPPORT mac..

Refactor SVC_BucketForAddress

Author: @IR4T4 (IR4T4)
Date: 2012-05-10
Redmine Issue: 48, https://dev.etlegacy.com/issues/48


Morsik's change to fix ticket #47 caused my attention ...

To clarify:

  1. Do we have to put NA_BAD (and other non explicitly dealed ) types into the bucket? Looks like a waste here ... NA_BAD should always be rejected?!

  1. Do we have to execute the loops if param address is of type NA_BAD, (and other types like NA_BOT( should never happen) ... ? - see also 1)

  1. Do we deal with all bucket types (netaddress types) ... what about remote cmds from local network?


Related commit(s):
5123596 - Don't limit game complete messages to master serve..
1888b72 - prevent using getinfo as an amplifier for DDOS att..

Set default value of sv_timeout to 40 seconds and create a new timeout cvar for clients not in game

Author: @IR4T4 (IR4T4)
Date: 2012-04-22
Redmine Issue: 29, https://dev.etlegacy.com/issues/29


As mentioned in the chat - decrease the default value of sv_timeout to 15 seconds (15). 4 min (240) is a long time! In the past this was done by PB before sv_timeout got active. There are several reasons to use a short period of time here (f.e. w/o additional code in the mod clients stay 'connected' after a client crash)


Related commit(s):
c471628 - set sv_timeout to 15 seconds, fixes 29
dc57d5c - better value for sv_timeout refs 29
ed2f70a - extended time out message refs 29
69561e8 - new cvar sv_dl_timeout - timeout value for clients..
8d65c9f - sv_timeout default value changed to 40 refs 29
2862f09 - comment update see refs 29

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.