Commit graph

1613 commits

Author SHA1 Message Date
Yamagi Burmeister
c0fac70763 Cbuf_Execute: do not change 'i' if it overflowed sizeof line.
Submitted by: Ozkan Sezer
2015-08-24 18:00:57 +02:00
Yamagi Burmeister
a4d0d89720 Fix several potential security vulnerabilties
Submitted by: Ozkan Sezer
2015-08-24 17:58:19 +02:00
Yamagi Burmeister
5ad7b1e72d Fix several printf in the client.
Submitted by: Ozkan Sezer
2015-08-24 17:52:57 +02:00
Yamagi Burmeister
cfefe0c00c Fix a divinely dumbassed mistake of global 'i' and 'corners' variables.
Submitted by: Ozkan Sezer
2015-08-24 17:48:54 +02:00
Yamagi Burmeister
19cf5a63c7 Info_RemoveKey: use memmove instead of strcpy for overlapping memory areas.
Submitted by: Ozkan Sezer
2015-08-24 17:47:18 +02:00
Yamagi Burmeister
c17126278e SV_Physics_Pusher: fix the 'memory corrupted' check
Submitted by: Ozkan Sezer
2015-08-24 17:43:22 +02:00
Yamagi Burmeister
91245e3b70 Fix several printf format string errors in games' code
Submitted by: Ozkan Sezer
2015-08-24 17:42:01 +02:00
Yamagi Burmeister
126eb09a1e Fix missplaced brackets in boss32.c
Bad braces were added back in 2001 in icculus.org/quake2:
http://svn.icculus.org/quake2/trunk/src/game/m_boss32.c?r1=2&r2=26

Submitted by: Ozkan Sezer
2015-08-24 17:35:09 +02:00
Yamagi Burmeister
6c43b2c725 Don't link game.so into quake2. That'll break everything :) 2015-08-23 18:50:48 +02:00
Yamagi Burmeister
767ec454fa Whitespace 2015-08-19 22:08:46 +02:00
Yamagi Burmeister
94ef1999b4 Introduce a CMake variable to define the libdir on Windows
As suggested by Daniel, use the same hack as dhewm3: The user defines a
path prefix and CMake does the rest. So this is enough to build on
Windows: cmake -G Unix\ Makefiles -DYQUAKE2LIBS=C:/MinGW/32/LIBS ..
2015-08-19 21:52:47 +02:00
Yamagi Burmeister
b89781d748 Support CMake on Microsoft Windows
This is a working CMake based build system for Windows:

- While this should work with system wide installed libraries, it's
  still highly recommended to use the latest version of our official
  Windows build environment.
- It was tested with out official build environment on Windows 7 with
  32 bit and 64 bit builds
- You'll need something in the lines of this nice and short command:
    cmake -G Unix\ Makefiles \
     -DSDL2_LIBRARY=C:/MinGW/32/LIBS/lib/libSDL2.dll.a \
     -DSDL2_INCLUDE_DIR=C:/MinGW/32/LIBS/include \
     -DZLIB_INCLUDE_DIR=C:/MinGW/32/LIBS/include \
     -DZLIB_LIBRARY=C:/MinGW/32/LIBS/lib/libz.a \
     -DOGG_LIBRARY=C:/MinGW/32/LIBS/lib/libogg.dll.a \
     -DOGG_INCLUDE_DIR=C:/MinGW/32/LIBS/include \
     -DVORBIS_LIBRARY=C:/MinGW/32/LIBS/lib/libvorbis.dll.a \
     -DVORBIS_INCLUDE_DIR=C:/MinGW/32/LIBS/include \
     -DVORBISFILE_LIBRARY=C:/MinGW/32/LIBS/lib/libvorbisfile.dll.a \
     -DVORBISENC_LIBRARY=C:/libvorbisenc.dll.a \
     -DOPENAL_LIBRARY=C:/MinGW/32/LIBS/lib/libOpenAL32.dll.a \
     -DOPENAL_INCLUDE_DIR=C:/MinGW/32/LIBS/include ..
 Yes, forward slashes! Backslashes will break!
2015-08-19 18:55:50 +02:00
Yamagi Burmeister
147021a89d Add header files to CMake
While headers are not required for compilation CMake need to have some
knowledge about them when used as a project management tool.
2015-08-12 19:19:37 +02:00
Yamagi Burmeister
565f7f6e67 Let the Makefile generate a game.dynlib on OS X
This should have been done years ago, .dynlib is the canocial extension
for libraries on OS X. In a broader sense this simplifies the CMake
build system a little bit, since CMake enforces .dynlib for OS X
libraries.
2015-08-12 18:55:35 +02:00
Yamagi Burmeister
870af22e75 Mention Clang for the sake of completeness. 2015-08-12 07:37:53 +02:00
Yamagi Burmeister
4eeac51574 Lower the optimization level to -O2
In the past -O3 was somewhat shaky. Quake II isn't the best and most
standard conformant code you can think of ;)
2015-08-11 21:55:29 +02:00
Yamagi Burmeister
88981bb930 Define some necessary compiler options 2015-08-11 21:55:21 +02:00
Yamagi Burmeister
dcf1fb2501 Move the new cmake directory into stuff/ to keep the top level clean 2015-08-11 21:24:17 +02:00
Yamagi Burmeister
6a059f2482 Whitespace cleanup 2015-08-11 21:21:05 +02:00
Yamagi Burmeister
ebece69254 Some minor cleanup to CMakeLists.txt
- Remove unneeded variables
- Define feature-defines without value
- Clearify some comments
2015-08-11 21:18:15 +02:00
Bradley Clemetson
567378ad50 If not specified create a debug build 2015-08-10 23:22:09 -07:00
Bradley Clemetson
2d20c5c801 Compiles on Linux with OpenAL support, SDL1/2 support.
Added build options for Zip/Ogg/OpenAL (On if available)
2015-08-10 22:55:01 -07:00
Bradley Clemetson
8211f5d497 Link to the proper DLOpen to remove linux ldl flag (Let Cmake handle it) 2015-08-10 21:53:49 -07:00
Bradley Clemetson
52ef7fe048 Added OGGVorbis support 2015-08-10 21:42:02 -07:00
Bradley Clemetson
7ffe618dc4
Updated versions to 5.3.0 2015-08-08 20:20:40 -07:00
Bradley Clemetson
e55f7e7aeb
Now builds fully on OS X 2015-08-08 20:19:03 -07:00
Bradley Clemetson
cf8f0d4787 Added OpenGL3 define to begin the transformation to modern GL!! 2015-08-08 18:10:10 -07:00
Bradley Clemetson
40cc2ee359 *Fixed building for MAC OS X 2015-08-08 18:10:10 -07:00
Bradley Clemetson
69667d9311 Added SDL2 search config 2015-08-08 18:10:10 -07:00
Bradley Clemetson
58bca4158c Added basic CMakeLists.txt configuration 2015-08-08 18:10:10 -07:00
Bradley Clemetson
bf2a0a3275 Stubbed blank cmake file 2015-08-08 18:10:10 -07:00
Yamagi Burmeister
22a321d462 Fix animated textures on transparent surfaces
As Jack Whitham noticed [0], animated textures freeze at their first
frame if they're on a transparent surface. This can be seen in base3
(Com Centre), for example. At least for the OpenGL renderer this is
caused by the fact that the animation chain is never forwarded if the
texture is bound to a transparent surface. The fix is to do exactly
that...

I can only speculate why the animations on transparent surfaces were
never used / implemented. Maybe performance issues or it was just
forgotten.

0: http://blog.jwhitham.org/2015/04/more-fun-with-floating-point-numbers.html
2015-06-22 21:10:25 +02:00
Yamagi Burmeister
7ddbedc9c5 Enable hudscaling by default
The default value is now -1 aka "auto". If someone wants to disable it
hew can do so in the menu.
2015-06-06 20:56:39 +02:00
Yamagi Burmeister
50ad12ce13 Add a video menu entry to set the HUD scaling factor 2015-06-06 20:45:05 +02:00
Daniel Gibson
b5d810e5d8 Merge pull request #74 from yquake2/fix-max_ospath
Set MAX_OSPATH to 4096 for !Windows + Fixes for that
2015-05-31 18:28:57 +02:00
Daniel Gibson
27bdaa7650 Merge pull request #73 from yquake2/console-history
Yamagi said it's ok
2015-05-31 18:28:18 +02:00
Daniel Gibson
d19cace026 Set MAX_OSPATH to 4096 for !Windows + fixes for that
sounds easy, right?
Except some genius decided to save CVAR_LATCH cvars in buffers of
MAX_OSPATH length into savegames.. so just changing MAX_OSPATH
breaks savegame compatibility.
Fortunately, this assumption only matters in SV_WriteServerFile() and
SV_ReadServerFile() so I worked around it by introducing a
platform-specific LATCH_CVAR_SAVELENGTH (because MAX_OSPATH was 256 on
Windows but 128 on other systems..)
2015-05-23 02:02:27 +02:00
Daniel Gibson
e62776fa08 global console-history instead of per-mod history 2015-05-22 23:42:23 +02:00
Daniel Gibson
c79257b5d8 Don't save consecutive duplicate commands to console history
.. I don't want to scroll through 20x /quit in the history..
2015-05-22 23:36:56 +02:00
Daniel Gibson
1ce9bdba51 Implemented a persistent, per game/mod console history
it's saved in $HOME/.yq2/$mod/history.txt

While I was at it, I made the max number of lines in the history
configurable at compiletime by introducing a NUM_KEY_LINES #define
2015-05-20 14:59:32 +02:00
Daniel Gibson
41ea8879e7 Fix bug with high velocities in vents in 32bit builds, fix #71
See https://github.com/yquake2/yquake2/issues/71
and https://github.com/yquake2/xatrix/issues/4

In ClientThink(), the float value ent->velocity[i]*8 is saved into
a short and if the value is too big for a short, in 32bit gcc builds
the short is set to SHRT_MIN, resulting in the player being pressed
down instead of up.
Now we put the result in a 32bit int first (which should be big enough)
and assign the int to the short. This still overflows, but with -fwrapv
at least in a defined way (most probably the same way the original
binaries did).

And while I was at it, when the game lib is loaded, it prints the date
it was built, this is especially interesting for our Win32 binaries.
2015-05-17 18:52:18 +02:00
Daniel Gibson
4e547feb2c *Really* support K_CAPSLOCK, K_COMMAND, K_POWER, K_PAUSE
we had constants for them in keyboard.h, but no mappings to name strings in
keynames[] in cl_keyboard.c, so they couldn't be bound.
2015-05-10 02:32:27 +02:00
Daniel Gibson
1a9c8704c7 README: It's called m_filter, not in_filter
should fix #69
2015-05-09 00:37:19 +02:00
Daniel Gibson
0b9ac6cb99 Fix "mark keys up when focus is lost" code, fixes #68
It didn't build on SDL1.2 (I though we tested that?!) and didn't work
with SDL2 either.

Now it builds and actually works with both SDL1.2 and 2.0
2015-04-14 00:51:38 +02:00
Daniel Gibson
9265dc8cbe Update README
* remove link to our debian packages, we don't do that anymore
  -> mention debian/ubuntu packages instead
* remove references to libjpeg, we don't use that anymore
* Link to retex pack was broken, replace with our mirror, mention that
  the ones in models.zip suck
* Fix some typos
2015-04-12 17:56:18 +02:00
Daniel Gibson
e6646fb1e4 Bumped version to 5.30 2015-04-11 21:16:47 +02:00
Daniel Gibson
3cd9c76052 Fix fucking misleading comment in FS_AddGameDirectory()
that's not for *numbered* pak's, but all paks starting with "pak"!
2015-04-11 21:04:37 +02:00
Daniel Gibson
544a464eea Implement gamedata loading from binary path
even if $PWD is not the same path as the executable is in, the game
will look for game data in directories next to the executable.
2015-04-11 20:11:42 +02:00
Yamagi Burmeister
d2f7d27ad0 In case of focus loss, mark all keys up
Daniel is more or less sure that a stuck Alt key can occure if the user
switches through several windows by Alt-Tab. That sounds resonable,
because the keyup event for Alt may happen when the focus is not on
Quake II. In that case SDL2 misses it and for Quake II the key stays
down. Solve this by capturing the focus loss event and mark all keys
as up.
2015-03-31 21:23:04 +02:00
Yamagi Burmeister
aff37eda16 Make sure that no key is being marked down
It's apparently not enough to clear key repeats, we'll need to clear
the down states too. Without this Alt stays pressed after toggeling
fullscreen trhough Alt-Enter.
2015-03-30 21:22:55 +02:00