summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES81
-rw-r--r--INSTALL67
-rw-r--r--README9
-rw-r--r--README.lirc94
-rw-r--r--debian/control10
-rw-r--r--debian/docs2
-rwxr-xr-xdebian/rules3
-rw-r--r--q2pro.625
8 files changed, 246 insertions, 45 deletions
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..4578311
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,81 @@
+Changes since r396
+==================
+
+Features:
+---------
+
+* Added support for HTTP downloads using libCURL.
+
+* Added OpenAL 1.1 sound engine with Linear Distance Model support,
+ which should be very close to the original Q2 sound with useful
+ features like 5.1 channel output.
+
+* Added support for receiving input from the LIRC daemon on Linux.
+
+* Added ‘scr_lag_max’ cvar for controlling lagometer scale.
+
+* Added ‘r_fps’, ‘cl_mps’ and ‘cl_pps’ macros displaying current
+ rendering FPS, moves per second and packets per second rates.
+
+* High gl_modulate values now completely cancel entity glowing effect,
+ just like original Q2 renderer does.
+
+* Added support for loading monochrome JPEG images.
+
+* MVD channels menu is now automatically refreshed.
+
+* MVD channels are no longer destroyed when GTV server fails to
+ load the map, they are used with null visibility info instead.
+
+* Server ‘status p’ command now lists various protocol details like
+ maxmsglen, netchan type, zlib support, etc.
+
+* On Linux, Path MTU Discovery is now disabled on UDP sockets, so that
+ kernel allows IP level fragmentation of outgoing packets, allowing clients
+ with smaller MTU sizes to connect.
+
+* Improved IO handling: use only single select() call per frame.
+
+* More efficient custom code for reading ZIP packfiles is now used
+ instead of PKZIP library.
+
+* Implemented new error reporting framework based on errno and custom error codes.
+
+
+Bugfixes:
+---------
+
+* Improved ‘oldscores’ GTV client command handling with OpenTDM.
+
+* Fixed off-by-one error when printing argument to the ‘!’ chase target escape.
+
+* Fixed floating point division by zero in packet loss ratio calculations.
+
+* Fixed a memory leak in ‘mvdstop’ GTV server command.
+
+* Fixed improper handling of status responses from servers client is connecting to.
+
+* Removed ‘Server rejected loopback connection’ error message.
+
+* Fixed off-by-one errors in lightstyle and muzzle flash parsing code.
+
+* Fixed integer overflow in sound loading code.
+
+* Fixed possible access to uninitialized memory in BSP loading code.
+
+* Fixed old Q2 bug in Netchan_Transmit causing reliable retransmits to be
+ delayed one ack longer than needed.
+
+* Empty files and directories inside ZIP packfiles are now skipped.
+
+* Fixed endianess issues in sound and image loading code.
+
+* Maximum loadable file size is now limited to 64 MiB to protect
+ against malicious paks causing memory exhaustion.
+
+* Fixed ‘mvdskip’ command not working properly.
+
+* Fixed a crash in ‘mvdplay’ command possible when demo file is invalid.
+
+* Fixed a memory leak in JPEG and PNG image reading and writing functions.
+
diff --git a/INSTALL b/INSTALL
index 965314d..3b8a9cb 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,9 +1,9 @@
Prerequisities
------------------
-Q2PRO client currently uses OSS for sound output and libSDL for video output.
+On Linux, Q2PRO client currently depends on libSDL for video output.
Both client and dedicated server require zlib support for full network
-protocol compatibility. OpenGL refresh library recommends libjpeg and
-libpng+zlib for 32 bit textures support.
+protocol compatibility. Evdev mouse input is recommended, since the way SDL
+works around non-existent X11 relative mouse input support is horrible.
Installation
@@ -27,6 +27,10 @@ Generic configuration
Prepend PREFIX to compile tools names. Use for cross-compiling,
for example: `./configure --cross-prefix=i586-mingw32-msvc'.
+--enable-mingw
+ Force MinGW build environment (use for cross-compiling) instead of
+ autodetecting host environment.
+
--disable-client
Do not build graphical client.
@@ -39,56 +43,65 @@ Generic configuration
--disable-asm
Do not use optimized i386 assembly code.
+
+Server configuration
+------------------
+
--enable-anticheat
Enable r1ch.net anticheat server interface.
+--disable-mvd-server
+ Disable local MVD recording and accepting remote GTV connections from relay nodes.
-MinGW specific
-------------------
+--disable-mvd-client
+ Disable GTV relay node functionality.
---enable-mingw
- Force MinGW build environment (use for cross-compiling) instead of
- autodetecting host environment.
+
+Client configuration
+------------------
--enable-dsound
- Enable DirectSound driver (need dsound.h from DirectX SDK).
+ Enable `direct' sound driver (DirectSound on Win32, OSS on Linux).
--enable-dinput
- Enable DirectInput driver (need dinput.h from DirectX SDK).
+ Enable `direct' input driver (DirectInput on Win32, Evdev on Linux).
---disable-wave
- Disable WAVE sound driver.
+--enable-openal
+ Enable OpenAL sound engine (OpenAL driver will be dynamically loaded
+ at run time, just like OpenGL driver).
+--disable-snddma
+ Disable DMA sound engine. Can't be used without `--enable-openal'.
-Linux specific
-------------------
---disable-oss
- Disable OSS sound driver.
---disable-evdev
- Disable Evdev input driver.
-
-
-External libraries
+External libraries (mostly client)
------------------
--disable-zlib
Do not link against zlib. Not recommended for client builds, as
- this will break network protocol compatibility with some servers,
+ this will break network protocol compatibility with some servers.
--enable-png
- Link against PNG library.
+ Enable PNG textures by linking against libpng.
+
+--enable-jpg
+ Enable JPEG textures by linking against libjpeg.
+
+--enable-curl
+ Enable HTTP downloads by linking against libcurl.
---enable-jpeg
- Link against JPEG library.
+--enable-lirc
+ Enable LIRC input by linking against liblirc_client.
Paths configuration
------------------
--single-user
- Build single user executables meant to be manually installed into user
- home directory, just like the original Quake 2 release did.
+ Build single user executables meant to be manually installed into the user
+ home directory, just like the original Quake 2 release did. Useful for running
+ Quake 2 server under the limited user account, and not recommended for anything
+ else.
--prefix=PREFIX [/usr/local]
Prepend PREFIX to the all paths specified below (except of --homedir).
diff --git a/README b/README
index 7b6a85e..0f3764b 100644
--- a/README
+++ b/README
@@ -1 +1,8 @@
-Please see Q2PRO wiki at http://q2pro.sf.net/ for more information.
+For building Q2PRO, consult the INSTALL file.
+
+For information on using and configuring Q2PRO, please see the Q2PRO wiki.
+
+Wiki is availabe in the plain text format in the wiki/ subdirectory
+of Q2PRO source distribution, or in the HTML format at the following URL:
+
+http://skuller.net/q2pro/
diff --git a/README.lirc b/README.lirc
new file mode 100644
index 0000000..7e8af10
--- /dev/null
+++ b/README.lirc
@@ -0,0 +1,94 @@
+# Example of .lircrc file for controlling Q2PRO.
+#
+# Commands prefixed with @ simulate Quake 2 keypresses,
+# and are useful for menu navigation. Commands without @ prefix
+# are just executed directly as if typed manually at the console.
+#
+# Config example below is already useful for some simple MVD
+# playback or GTV watching, just replace mceusb with your remote
+# contol name and fix the button names.
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Up
+ config = @UPARROW
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Down
+ config = @DOWNARROW
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Left
+ config = @LEFTARROW
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Right
+ config = @RIGHTARROW
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Back
+ config = @ESCAPE
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Home
+ config = cmd score
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Guide
+ config = cmd menu
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Star
+ config = pushmenu game
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Stop
+ config = killserver
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Record
+ config = screenshot
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Pause
+ config = pause
+end
+
+begin
+ prog = q2pro
+ remote = mceusb
+ button = Power
+ config = quit
+end
+
diff --git a/debian/control b/debian/control
index a99e1c4..b34f7db 100644
--- a/debian/control
+++ b/debian/control
@@ -1,15 +1,17 @@
Source: q2pro
Section: contrib/games
Priority: optional
-Maintainer: Andrey Nazarov <skuller@skuller.ath.cx>
-Build-Depends: cdbs, debhelper (>= 7), libx11-dev, libsdl1.2-dev,
- libpng12-dev, libjpeg62-dev, zlib1g-dev, mesa-common-dev
+Maintainer: Andrey Nazarov <skuller@skuller.net>
+Build-Depends: cdbs, debhelper (>= 7), libx11-dev, libsdl1.2-dev, libopenal-dev,
+ libpng12-dev, libjpeg62-dev, zlib1g-dev, mesa-common-dev, liblircclient-dev,
+ libcurl4-gnutls-dev | libcurl4-openssl-dev
Standards-Version: 3.8.1
-Homepage: http://skuller.ath.cx/q2pro/
+Homepage: http://skuller.net/q2pro/
Package: q2pro-client
Architecture: any
Depends: ${shlibs:Depends}, q2pro-common (= ${binary:Version})
+Recommends: libopenal1, libgl1-mesa-glx | nvidia-glx
Description: Enhanced Quake 2 engine (graphical client)
Q2PRO is a Quake 2 engine modification designed for online play,
fully compatible with original Quake 2 clients and servers.
diff --git a/debian/docs b/debian/docs
index e845566..1506838 100644
--- a/debian/docs
+++ b/debian/docs
@@ -1 +1,3 @@
README
+README.lirc
+CHANGES
diff --git a/debian/rules b/debian/rules
index 33ae652..bef08f8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,5 +6,6 @@ include /usr/share/cdbs/1/class/autotools.mk
DEB_DH_INSTALL_SOURCEDIR := debian/tmp
DEB_CONFIGURE_NORMAL_ARGS := --prefix=$(DEB_CONFIGURE_PREFIX) --cpu=$(DEB_HOST_GNU_CPU) \
- --enable-png --enable-jpg --enable-dsound --enable-dinput --enable-server --enable-anticheat --enable-baseq2
+ --enable-png --enable-jpg --enable-dinput --enable-openal --enable-lirc --enable-curl \
+ --enable-server --enable-anticheat --enable-baseq2
diff --git a/q2pro.6 b/q2pro.6
index 152efe5..130846a 100644
--- a/q2pro.6
+++ b/q2pro.6
@@ -17,7 +17,7 @@ increased security and overall performance, basic built-in demo editing
capabilities, built-in server and demo browsers.
.PP
This version of Q2PRO requires a 3D graphics accelerator to play.
-Q2PRO uses SDL for video output and SDL/OSS for sound output.
+Q2PRO uses SDL/OpenGL for video output and SDL/OSS/OpenAL for sound output.
.SH "OPTIONS"
.PP
Commands given on the command line start with a `+', and continue until
@@ -38,14 +38,15 @@ Show version and exit.
.PP
.IP "\fB/etc/default/q2pro\fP" 7
System wide configuration file. The first one to be executed.
-.IP "\fB/usr/share/games/quake2\fP" 7
-Root of the static Quake 2 game data hierarchy.
-.IP "\fB/usr/lib/games/quake2\fP" 7
-Quake 2 game mod shared libraries.
-.IP "\fB~/.q2pro\fP" 7
-User's local data hierarchy. Overrides system hierarchy.
-Any dynamic data Q2PRO produces (savegames, screenshots, demos, etc)
-is written here.
+.IP "\fB/usr/share/games/q2pro/\fP" 7
+Root of the static Quake 2 game data hierarchy. Various game media is installed
+here, either as individual files, or in form of (possibly compressed) packfiles.
+.IP "\fB/usr/lib/games/q2pro/\fP" 7
+Quake 2 game mod shared libraries are installed here.
+.IP "\fB~/.q2pro/\fP" 7
+User's local data hierarchy. Overrides system hierarchy. Any dynamic
+data Q2PRO produces (savegames, screenshots, demos, downloads, etc) is written here.
+Game mod libraries are \fBnever\fP loaded from here for security reasons.
.SH "BUGS"
.PP
@@ -55,10 +56,10 @@ various subsystems are loaded. They are not yet documented here.
Q2PRO graphical menu subsystem is incomplete.
.SH "AUTHOR"
.PP
-Quake 2 engine was written by ID Software, Inc.
-Q2PRO was written by Andrey Nazarov <skuller@skuller.ath.cx>.
+Quake 2 engine is Copyright (C) 1997-2001 Id Software, Inc.
+Q2PRO is Copyright (C) 2003-2010 Andrey Nazarov <skuller@skuller.net>.
.PP
-This manual page was written by Andrey Nazarov <skuller@skuller.ath.cx> for
+This manual page was written by Andrey Nazarov <skuller@skuller.net> for
the \fBDebian\fP system (but may be used by others). Permission is
granted to copy, distribute and/or modify this document under
the terms of the GNU General Public License, Version 2 any