Commit Graph
100 Commits
Author SHA1 Message Date
Zack Middleton d62dfd87f9 Set float rounding mode on non-Windows platforms
Sys_SetFloatEnv in sys_unix.c existed but was not called. It sets the
rounding mode to "to nearest" which is the default on Linux. Might be
required on other platforms, I don't know.
2015-01-12 17:03:13 -06:00
Zack Middleton 1ff28f2389 Merge pull request #22 from zturtleman/cvar_modified
Add cvar_modified command
2015-01-07 19:48:16 -06:00
Zack Middleton e7c7ca1309 Merge pull request #100 from Pan7/q3lcc
q3lcc option -lcppdir and -lrccdir.

Enabled using `q3lcc -Wo-lrccdir=/path/to/dir -Wo-cppdir=/path/to/dir`.
2015-01-07 19:45:12 -06:00
Zack Middleton bd2af6e4ea Use MSVC mode marcos for creat in q3cpp on Windows
Using unix mode 0666 for creat was causing crashes when compiled with MSVC.
So use the marcos recommended by MSDN. MinGW also has the marcos, so apply
to Windows builds in general.
2015-01-07 19:27:59 -06:00
Zack Middleton aa1aad928e Merge pull request #98 from Pan7/lcc
Windows header files for q3lcc
2015-01-07 19:31:51 -06:00
Zack Middleton 010821384c Merge pull request #97 from Pan7/outp
Renaming outp to outbufp because outp() is an existing function
2015-01-07 19:27:53 -06:00
Zack Middleton 044060274e Merge pull request #104 from smcv/mbstowcs
Ensure that mbstowcs does not overflow its buffer
2015-01-07 18:10:17 -06:00
Zack Middleton 458ab7716c Make travis do all the builds again
Travis was only using the last env section, not merged them and was only doing
one build using gcc instead of six builds (gcc, clang, mingw, ..).
2014-12-28 15:38:22 -06:00
Zack Middleton 7de09c3490 Include stdint.h instead of inttypes.h in libmumblelink.c
MSVC 2010 has stdint.h but not inttypes.h.
Debian (GCC, MinGW) and OS X (Clang) can compile using stdint.h.
2014-12-28 15:08:02 -06:00
Zack Middleton 3cc16d6b92 Merge pull request #94 from wombat23/asmfix
Fix compile error with ml64 assembler
2014-12-28 15:06:29 -06:00
Zack Middleton 70e3d61006 Fix cg.intermissionStarted only being enabled at first intermission
Game sets CS_INTERMISSION to 1 at intermission, but does not clear it at
map_restart so it's only sent the first time. CG_MapRestart manually clears
cg.intermissionStarted (which is set to value of CS_INTERMISSION when it's
modified). So subsequent intermissions do not have cg.intermissionStarted
enabled.

Now CS_INTERMISSION is cleared and sent each time intermission is started
and cg.intermissionStarted is enabled each time.

This makes subsequent intermissions not play sounds in CG_CheckLocalSounds
during the 1 second between intermission starting and switching to scoreboard
(PM_INTERMISSION) and makes Team Arena voice chats not play.
2014-12-27 18:32:49 -06:00
Zack Middleton 4463af85fb When player stops following a player, keep view angles
Now player keeps looking the same direction instead of facing somewhere else
which is slightly disorienting.
2014-12-19 22:09:26 -06:00
Zack Middleton 5cf45c5937 Don't use dead view angles after stop following a dead player
If ps.stats[STAT_HEALTH] is less or equal to 0, cgame uses fixed view angles.
When stop following a player, make sure health isn't less or equal to 0.
2014-12-19 22:08:06 -06:00
Zack Middleton a700b76722 Fix reading 4 byte UTF-8 text input 2014-12-19 21:56:54 -06:00
Zack Middleton 65121c62c9 Add weapon barrel to gauntlet/mg/bfg items in baseq3 too 2014-12-10 19:29:36 -06:00
Zack Middleton b0561e5fb4 Fix weapon barrel angle on Gauntlet and BFG items in Team Arena
The barrels were rotated 90 degrees from what they should be.
Used barrel code from CG_AddPlayerWeapon to fix them.
2014-12-10 19:23:35 -06:00
Zack Middleton 424122c366 Fix bot's teamleader name field being too short
Players using names with 32 to 35 characters could not be recognized as
the team leader.

Reported by Razor.
2014-12-04 16:50:28 -06:00
Zack Middleton b21a59af8c Fix negative glyph index in Team Arena text functions
Team Arena's text functions cast signed char values to int and use as an array index.
This works fine for values 0 to 127, but not for -128 to -1 which are a negative array index.
Instead use "character & 255" like client and original Q3 ui/cgame string drawing code.
2014-12-01 22:14:58 -06:00
Zack Middleton 08ddb99732 Fix saving/loading glyph 255 in RegisterFont
The glyph for character 255 (lower case y with two dots above it) was
rendered, but it's glyph information was not stored in fontInfo_t and
not saved into .dat file (including the ones in Team Arena).

Attempting to load it from existing .dat font files is fine because
shader name is "" and gets 0 handle. The handle was already 0 anyway.
2014-12-01 22:04:40 -06:00
Zack Middleton c787cf3aef Fix stencil shadows not drawing if has 500 or more vertexes
Stencil shadow is not drawn if a mesh, or multiple meshes with the same
entity and shader, have more than 500 vertexes. The issue is caused by storing
the projected positions in the tess vertex buffer. Use a new array instead.
2014-11-16 21:21:30 -06:00
Zack Middleton d06deb41c8 Don't set fog image border color
GL1's R_CreateImage sets GL texture to 0 before it ends, so border color is not
applied to the fog image. GL_CLAMP is not used for fog image (in either renderer),
so it would presumably not be used even if applied to the fog image.
2014-11-16 14:59:09 -06:00
Zack Middleton 60d28722ef Remove unfinished OpenGL display list code
It seems unlikely anyone is going to do anything with this aside from stub
it out in OpenGLES ports.
2014-11-16 14:57:13 -06:00
Zack Middleton 22bcda018b Correct a few OpenGL variable types
Affectly no change for desktop OpenGL.
Use correct types for OpenGLES support.
2014-11-16 14:56:43 -06:00
Zack Middleton 1d016e6ff5 Clear window buffer when it's created
When starting the game in windowed mode, the window buffer used whatever
was on the screen before running the game. Kind of like you could see
through the window, but it doesn't update what happens behind it.

It makes it look like something is broken or non-responsive.

So clear the window opengl buffer to black.

Credit to theinvsblman for the code.
2014-11-07 21:50:00 -06:00
Zack Middleton 1ba9e7a45e Always use GL_Cull to change cull state
Manually changing cull state can cause later GL_Cull calls to not change
the cull state.
2014-10-29 01:32:50 -05:00
Zack Middleton 39cf21bf54 Fix pid file ignoring user set fs_homepath
Create pid file in fs_homepath instead of (always) default homepath.
If not manually set, fs_homepath is set to Sys_DefaultHomePath().
2014-10-29 00:03:49 -05:00
Zack Middleton 3273df14af Add missing EV_USE_ITEM15 cases
Add EV_USE_ITEM15 to cg_event.c and ai_dmq3.c for consistency.
2014-10-29 00:03:49 -05:00
Zack Middleton 918eed9295 OpenGL2: Don't segfault if r_ext_multitexture is disabled 2014-09-29 01:02:13 -05:00
Zack Middleton 0e5835a86e Remove r_softOverbright from opengl2-readme.txt
The cvar was removed and forced enabled.
2014-09-29 01:02:13 -05:00
Zack Middleton a955d975b7 Add function for clearing global shader instead of duplicating the code 2014-09-27 01:35:35 -05:00
Zack Middleton 24923615b7 Don't add duplicate resolutions to r_availableModes
SDL can give the same resolution with different refresh rates.
The refresh rate isn't used, so only add resolution to mode list once.
2014-09-20 19:23:33 -05:00
Zack Middleton 9fbbf4214d Fix Windows key bind name on non-Mac using SDL2
SDL 1.2 sends SDKL_*META (command) and SDLK_*SUPER (windows key).
SDL2 sends SDLK_*GUI for both.
2014-09-11 20:04:28 -05:00
Zack Middleton 878cda6a20 Fix binding 'context menu' key using SDL2
SDL 1.2 converted Windows' VK_APPS and X11 XK_Hyper_R to SDLK_MENU.
SDL2 has it as a separate SDLK_APPLICATION key, so convert it to K_MENU too.
2014-09-11 20:03:54 -05:00
Zack Middleton 4529f124d6 Merge pull request #29 from inolen/shader_tidying
misc shader fixes
2014-09-09 19:18:59 -05:00
Zack Middleton a5d641b3d0 Merge pull request #84 from MAN-AT-ARMS/openal_speedsound
Change default value for s_alDopplerSpeed
2014-09-09 18:05:08 -05:00
Zack Middleton d5ddb72502 Merge pull request #85 from MAN-AT-ARMS/curl_fixes
Fix building with curl on Linux PPC and Sparc
2014-09-09 18:03:36 -05:00
Zack Middleton c621589157 Fix 6155: OpenGL2: some shader stages remains visible through fog volumes
Fix CalcFog in generic_vp.glsl to fog fogged surfaces.
Now it's the same as CalcFog in fogpass_vp.glsl.

Fixes shaders that use adjustColorsForFog. Impact wallmarks, blood sprites, flame textures and so on.
2014-08-29 02:50:02 -05:00
Zack Middleton de3062623a Use ColorIndexForNumber in Con_DrawSolidConsole 2014-08-29 01:55:47 -05:00
Zack Middleton e742952db8 Port COM_ParseExt fixes to CommaParse 2014-08-28 20:34:05 -05:00
Zack Middleton 1d95ef210e SDL 2 scroll/caps/num lock keys send KEYUP event when key is released 2014-08-28 20:09:37 -05:00
Zack Middleton eeef7cbae7 Don't scale cinematic time by timescale twice
Reported by Ensiform.
2014-08-28 20:09:37 -05:00
Zack Middleton f17f58705c Remove a numIboIndexes=0 that is not read from GL2 tr_bsp.c
numIboIndexes is set to 0 inside the loop for each surface. Does not need to be set before loop.
2014-08-27 20:47:45 -05:00
Zack Middleton e5f54c584a Fix incorrect rgbGen const reading uninitialized memory
If ParseVector fails, color isn't fully set.
2014-08-27 20:35:16 -05:00
Zack Middleton 0853c85e19 Fix incorrect strncat usage in CL_ServerInfoPacket 2014-08-27 20:35:16 -05:00
Zack Middleton b0596248ff Remove unused functions from null_main.c and null_input.c
Sys_mkdir is suppose to have a capital M, which is also in null_main.c.
2014-08-27 20:35:16 -05:00
Zack Middleton 137ddb9dc6 Get clipboard data from SDL
This makes pasting in client console and UI edit fields work on X11 and OS X.

Sys_GetClipboardData is only used by client, so returning NULL in dedicated is fine.
2014-08-27 04:32:05 -05:00
Zack Middleton 077f6bd068 Fix binding KP_NUMLOCK
Restore mapping SDL numlock to quake3 numlock.
2014-08-26 23:01:18 -05:00
Zack Middleton 75cce50a9c Don't load external GLSL files by default
External GLSL should probably only be used for development testing,
not released products. The GLSL files are tied to the code, and the
code changes some what often.

Fixes using OpenArena 0.8.8 which has incompatible GLSL files in a pk3.
2014-07-25 23:57:53 -05:00
Zack Middleton 48738599a0 Allow user override of cURL, OpenAL, and SDL libs/cflags 2014-07-20 17:39:27 -05:00
Zack Middleton 574f6d1f31 Allow overriding external opus libs/cflags in Makefile
Pointed out by @MAN-AT-ARMS.
2014-07-20 16:55:45 -05:00
Zack Middleton b02b54883b Fix up vorbis handling in Makefile 2014-07-20 06:14:44 -05:00
Zack Middleton efa9555d74 Merge branch 'pkg-config' of github.com:smcv/ioq3 into master
Conflicts:
	Makefile
2014-07-20 05:51:17 -05:00
Zack Middleton 7afb433e20 Fix fast-math optimize flag for MinGW x86_64 build
Found by /dev/humancontroller.
2014-07-15 00:23:02 -05:00
Zack Middleton 0fe2e8d224 Restore drawing a cut off client console line in 1920x1080
The text lines don't meet at top of the sceen in 1920x1080, restore
drawing a cut off line across the top. In 640x480 this line isn't seen
at all. This is still better then trying to draw twice as many lines
than are actually seen (the way it was before the last commit).
2014-07-13 02:07:45 -05:00
Zack Middleton b9e0398244 Don't draw client console buffer past top of screen
Thanks @Pan7.
2014-07-12 21:57:03 -05:00
Zack Middleton d9309ac6db Fix overstrike/insert logic being reversed in q3_ui 2014-07-03 21:06:05 -05:00
Zack Middleton 1d664a3a10 Remove unused cvar in_joystickDebug 2014-07-03 20:59:54 -05:00
Zack Middleton 5994564537 Remove unused array joy_pressed 2014-06-19 20:48:54 -05:00
Zack Middleton 5c1091b414 Fix SkipRestOfLine going past end of string
If string data starts with a 0 (string terminator), don't skip over it at p++.

Not causing any problems in ioq3 as far as I know.
2014-06-17 21:31:29 -05:00
Zack Middleton 95b241b8ba OpenGL2 don't try to dlight surfaces that had all dlights culled
In the renderers, dlightbits are never cleared from world surfaces.
The dlight image does not repeat, so if it draws on extra surfaces it's
not visible.

However if using a repeating image (tr.defaultImage instead of tr.dlightImage);

  * In OpenGL1 image is only drawn on surfaces close to dlight origin.
  * In OpenGL2 image is draw on surfaces clearly outside the dlight radius, including past non-dlighted surfaces.

It seems there was a similar issue with pshadowBits. So update surface
dlightBits even if 0, like already done for pshadowBits. This causes
only surfaces close to origin to be affected. (Though it is a little
farther than in OpenGL1.)

I have no idea why this isn't a problem in OpenGL1.
2014-06-10 21:34:31 -05:00
Zack Middleton 107cae63d6 Merge branch 'master' into sdl2
Conflicts:
	.travis.yml
2014-06-03 00:52:49 -05:00
Zack Middleton cd3b7133ae Skip merging a SDL 1.2 commit into sdl2 2014-06-03 00:51:31 -05:00
Zack Middleton b12a9acf4d Merge branch 'master' (early part 2) into sdl2 2014-06-03 00:50:50 -05:00
Zack Middleton b5a17f3058 Skip merging a SDL 1.2 commit into sdl2 2014-06-03 00:50:00 -05:00
Zack Middleton b87d889af8 Merge branch 'master' (early part 1) into sdl2 2014-06-03 00:49:05 -05:00
Zack Middleton 347b429fdb Fix potential OOB in Windows Dedicated TTY CON_Show
Found by Coverity.
2014-05-26 23:11:56 -05:00
Zack Middleton 077ab4cbd1 Fix OOB access in CM_EdgePlaneNum without erroring in CM_GridPlane
I changed warning to error in 9d74227559,
which broke JA's mp/ctf4 map and probably others.
2014-05-25 23:03:42 -05:00
Zack Middleton eeeaf3f125 Fix potential buffer overflow caused by long tcMod args
Found by Coverity.
2014-05-25 18:44:17 -05:00
Zack Middleton 9c99cf29db Have OpenGL2 "map $lightmap" check for NULL tr.lightmaps too
Zero length lightmap lump will have NULL tr.lightmaps.

OpenGL1 already has this check, because r_vertexLight 1
would crash Team Arena. OpenGL2 does not disable loading lightmaps
when r_vertexLight is 1 though, so it does not have that issue.
2014-05-25 18:41:57 -05:00
Zack Middleton 7a4ef47476 Fix max bans range check in SV_AddBanToList
Adding too many bans would write out of bounds. Found by Coverity.
2014-05-25 18:41:51 -05:00
Zack Middleton eea9fbdb61 Fix unchecked buffer size issues in l_script.c and l_precomp.c
Found by Coverity.
2014-05-25 18:41:24 -05:00
Zack Middleton 078d004dc2 Fix potential buffer overflow in PS_ReadPrimitive
Found by Coverity.
2014-05-25 16:28:38 -05:00
Zack Middleton e21ff01946 Don't use memset with non-zero value to fill ints
Coverity reported using value -2 as a bad memset. Really doesn't make sense when filling ints and not bytes too.
2014-05-25 16:10:01 -05:00
Zack Middleton 9d74227559 Fix potential out of bounds access caused by CM_GridPlane
Coverity doesn't care if there is a warning, out of bounds access is bad.
2014-05-25 15:59:09 -05:00
Zack Middleton 494789664e Try to fix Travis CI MinGW builds
Listing i686-w64-mingw32-gcc as a compiler stopped working.
Travis tries to print version before installing it.

$ i686-w64-mingw32-gcc --version

/home/travis/build.sh: line 201: i686-w64-mingw32-gcc: command not found

The command "i686-w64-mingw32-gcc --version" failed and exited with 127 during setup.
2014-05-19 17:28:06 -05:00
Zack Middleton 6a33a69795 Disable key repeat if key catcher is 0
SDL1.2 branch disables key repeat when key catcher is 0.
Presumably to prevent binds from executing multiple times.

SDL2 replaced being able to disabled key repeat using SDL_EnableKeyRepeat
with a non-zero repeat value in the key event.
2014-05-19 03:45:44 -05:00
Zack Middleton a3c2f77236 Fix Gauntlet barrel axis in UI
UI's PositionRotatedEntityOnTag is different than CGame's and
UI has switched pitch/roll for Gauntlet/BFG axis to get it to
look like /close to/ how it looks in CGame.

Making UI use the same *PositionRotatedEntityOnTag and axis as
CGame fixes the Gauntlet blade being wobbly in controls menu.
2014-05-18 20:38:14 -05:00
Zack Middleton daa570c193 Fix always switching back to mgun in Q3 controls menu
Caused by 120e296a74.
2014-05-18 20:27:18 -05:00
Zack Middleton 5c4e429471 Merge branch 'features/add-x86_64-travis-ci-support' of github.com:xhairball/ioq3 2014-05-12 21:34:40 -05:00
Zack Middleton 6d47ff88a6 Don't install libvorbis-dev on Travis
The in-tree copy of vorbis is used. No reason to install the package anymore.
2014-05-12 21:30:39 -05:00
Zack Middleton 3a7298d6ae Make R_LerpTag return qfalse if MDR tag does not exist
Elite Force SDK has trap_R_LerpTag return void, so this shouldn't cause issues for iostvef.
Allows new games to check if a tag exists in a MDR model.
2014-05-06 21:10:16 -05:00
Zack Middleton b9061c8447 Fix cg.skulltrails out of bounds access in Team Arena Harvester mode
In Team Arena's Harvester mode, players corrupt your memory from beyond
the grave. Gib the players to stop the corruption!

CG_PlayerTokens is called for player entities, including corpses.
The entity number is used for the index in cg.skulltrails which only has
MAX_CLIENTS elements. This results in incorrect memory being overwritten
for corpse entities (as the entity number is >= MAX_CLIENTS).

So limit skull trails to valid entities (entity number < MAX_CLIENTS).
2014-05-01 21:32:21 -05:00
Zack Middleton cfcd2d2d7f Merge pull request #65 from MAN-AT-ARMS/sdl2_203
Update SDL2 to 2.0.3
2014-03-24 19:37:46 -05:00
Zack Middleton c55df2c9aa Merge branch 'master' into sdl2 2014-03-24 17:53:08 -05:00
Zack Middleton 8b06986a9f Skip merging sdl1.2 commit into sdl2 2014-03-24 17:52:32 -05:00
Zack Middleton 73aa7ef2c7 Merge branch 'master' (early part) into sdl2 2014-03-24 17:51:57 -05:00
Zack Middleton cf7d8ef9cf Remove -falign-loops and -falign-jumps from Makefile
Clang warns and errors because of them on various platforms.

Based on pull request #43 by @xhairball.
2014-03-24 13:09:49 -05:00
Zack Middleton 9f3fd12501 Remove unused extern qboolean charSet
No variable even exists.
2014-03-24 12:47:14 -05:00
Zack Middleton 67d9ecd070 Fix FS_FOpenFileReadDir non-zero file handle when file not found in pk3
If a pk3 search path is passed to FS_FOpenFileReadDir, a non-zero
file handle is returned if file is not found. This causes incorrect
behavior in FS_ReadFileDir (when a pk3 search path is passed in)
which only checks file handle, not length, for seeing if file exists.

I don't know of any issues in ioq3 caused by this.
2014-03-18 20:49:52 -05:00
Zack Middleton 0861d3c583 Revert "DMA 44100Hz needs more memory for sound buffers"
This reverts commit 0e6632f464.

Cause crashes if com_soundMegs is 32.
2014-03-17 13:44:30 -05:00
Zack Middleton 9f22ae9cb2 Fix ctrl-c etc codes for edit fields 2014-03-17 12:46:09 -05:00
Zack Middleton 344ff23164 Fix multisampling on X11
Setting SDL_GL_ACCELERATED_VISUAL was disabled for ioq3 SDL 1.2
for other reasons. However, it causes creating GL context to fail
if multisampling is enabled on X11 for both SDL1.2 and SDL2.

Tested using nVidia proprietary driver on Debian 7.
2014-03-17 12:24:59 -05:00
Zack Middleton 8455b5a833 Don't crash when fail to create SDL window 2014-03-15 17:54:00 -05:00
Zack Middleton d0d1883895 Merge pull request #60 from smokin-guns/master
Bunch of comment fixes
2014-03-12 20:28:49 -05:00
Zack Middleton 0e6632f464 DMA 44100Hz needs more memory for sound buffers
It doubles the size of the data compared to the default (22050),
so increase the buffer automatically. Likewise, decreasing speed
doesn't need as much (though that doesn't really matter).
2014-03-11 17:16:03 -05:00
Zack Middleton a167110f43 Don't mix sfx with NULL soundData
Caused a crash. Already done for looping sounds.
2014-03-11 16:44:50 -05:00
Zack Middleton 63d1911c18 Parse q3map_sunExt in OpenGL1 too
Used for drawing sun, which is supported by both OpenGL1 and OpenGL2.
OpenGL2 already parses it.
2014-03-11 12:38:53 -05:00
Zack Middleton 07290a7d52 Fix typo in animMap and videoMap warnings 2014-03-10 19:58:55 -05:00
Zack Middleton c8c7bb1dc3 Fix R_GetEntityToken ending prematurely
If spawn var key or value is "" it caused R_GetEntityToken (available to
cgame, used by opengl2) to stop parsing, whereas game VM would continue.

Changed it to match parsing used for game VM
(see G_GET_ENTITY_TOKEN in code/server/sv_game.c).

The map poq3dm5 has a "wait" key with value "".
2014-03-10 16:27:31 -05:00
Zack Middleton 5a3e10d716 Don't say cubemap is outside lightgrid 6 times 2014-03-10 16:12:49 -05:00