Commit Graph
100 Commits
Author SHA1 Message Date
Zack Middleton 5f743bdb22 Disable DPI scaling on Windows
Windows DPI scaling prevents using full monitor resolution in
fullscreen mode.
2017-09-07 21:17:44 -05:00
Zack Middleton aeaecb4ae5 Add Windows application manifest
- Use common controls 6 so error dialogs use correct visuals on
Windows XP or later!
- Specify running as invoker so Windows doesn't guess if it should
prompt for admin permission on Vista or later.
- Specify compatible with Vista through Windows 10. Tells Windows
not to emulate Vista behavior, not sure if it affects anything.

Makefile automatically runs windres when manifest changes.
2017-09-07 21:04:52 -05:00
Zack Middleton 6f0736ce9a Fix loading renderer DLLs on Windows x86
After 'Fix floating point precision loss in renderer', Windows x86
client won't load the renderer DLLs. The problem is a 64 bit modulus.
I couldn't find any reports of this online. However, client with
built-in renderer worked with the 64 bit modulus.

Only tested with mingw-w64.
2017-09-07 20:42:31 -05:00
Zack Middleton 1c1e1f61f1 Allow overriding platform in NSIS installer
MSYS2 and some mingw builds use mingw64 instead of mingw32. If you run
`make installer` from the top-level, PLATFORM should be set correctly
when building the installer.
2016-11-01 17:53:25 -05:00
Zack Middleton 7a73646157 Prefer mingw-w64 for cross-compiling 2016-11-01 17:44:40 -05:00
Zack Middleton 10f33b892b Fix removing/creating PID file for base game when switching to/from mods 2016-10-27 22:54:33 -05:00
Zack Middleton c80f341711 Handle ERR_DROP during Com_GameRestart
If ERR_DROP during Com_GameRestart after shutting down client, Com_Error
needs to restart the client otherwise there is just a black window. Also,
clear the game restarting flag in Com_Error otherwise it's not possible to
run Com_GameRestart again later.

I don't know of a way to trigger ERR_DROP, in FS_Restart for instance,
without engine changes however.
2016-10-09 19:17:58 -05:00
Zack Middleton 978afd7590 Avoid shuting down opus voip codec multiple times 2016-10-09 18:30:19 -05:00
Zack Middleton 755b2f38f0 Offer post-crash safe settings on a per-mod basis
Offer to restore settings when loading a mod that crashed, not the first
mod that gets loaded after a crash. Before the first mod loaded (usually
baseq3) would get the option even if missionpack or some other mod crashed.

- Make pid files separate for each fs_game.
- Remove/write pid every time switching fs_game.
- Create path before writing pid file otherwise it fails on first run.
- Show mod description.txt or fs_game instead of engine name in abnormal
  exit message.
- Check com_fullyInitialized in Com_Error before removing PID,
  otherwise "ioquake3 --version" segfaults when accessing fs_gamevar->string
  (plus not fully initialized isn't really a normal shutdown).
2016-10-09 18:18:08 -05:00
Zack Middleton 0ad4381a11 Make using Yacc optional, disabled by default
A built-in GNU Make rule causes code/tools/lcc/lburg/gram.y to replace
gram.c if gram.y has a newer modified time. This causes git diff to
pick up changes to gram.c, which seems to have been manually modified
to fix warnings and may vary by Yacc used to create it. It also
requires installing a program to generate a file that already exists
in a usable state in the code repository.

So replace the built-in rule so it is only used if USE_YACC is 1
(defaults to 0). The Yacc executable name can be overriden using
`make YACC=yacc` like before.

I preferred to touch gram.c instead of installing Yacc because of the
problems it causes. It doesn't really seem like a good idea to recommend
others do that instead of disabling Yacc the Makefile though.
2016-07-11 07:51:34 -05:00
Zack Middleton 4474297af8 Fix bot team order to kill last player it killed
Bot's lastkilledplayer was set to -1 after carrying out an ordered kill.
Later in BotChat_Random() the PlayerName function was passed -1 which
caused a "Error: PlayerName: playernum out of range" message.

I think the reason it was set to negative one is so that if the bot is
ordered to kill the player again, the bot will not say it's done and
drop the goal. Though, if the bot killed the player based on it's own
decision, it will just say it's done and drop the goal (bug?).

Let's check the time of the last kill to see if it happened since the
team order was received instead of setting lastkilledplayer to -1
after completing the team ordered kill. This fixes bot dropping goal
if target player was the last player they killed and the PlayerName
out of range error.
2016-07-11 05:20:36 -05:00
Zack Middleton 274fa898b1 Fix typo of empty in ai_main.c 2016-06-27 21:13:27 -05:00
Zack Middleton 9f6c4942ee Remove note that r_allowResize requires SDL backend 2016-06-15 14:01:13 -05:00
Zack Middleton 780f0a5d3e Prevent CL_RunCinematic from reading cinTable[-1]
At the end of CL_RunCinematic, RoQShutdown sets currentHandle to -1.
This causes the return at the end to be return cinTable[-1].status.
Use return FMV_EOF when RoQShutdown is called.

I think FMV_EOF should be returned instead of FMV_IDLE which is set in
RoQShutdown because RoQShutdown is clearing out state so it can be reused
for a new cinematic.

The return value isn't actually read by the ioq3 client, renderers,
cgame, or ui.
2016-06-15 13:58:26 -05:00
Zack Middleton 0334f4a59b OpenGL2: Remove duplicate textureFloat = qfalse
glRefConfig.textureFloat is set to qfalse near wrong extension and then
farther down by the correct extension. Removing this has no effect.
2016-06-15 13:58:26 -05:00
Zack Middleton 420bd09164 OpenGL2: Remove loading (unused) glDrawBuffersARB 2016-06-15 13:58:26 -05:00
Zack Middleton e0b2256043 Include SDL2 dll from repository in NSIS installer
Before it required manually copying SDL 1.2 dll into misc/nsis/ which the
engine no longer uses.
2016-05-27 00:44:13 -05:00
Zack Middleton 7811b2acb2 Fix iamamonkey printing 'levels' instead of 'awards' 2016-05-23 10:23:14 -05:00
Zack Middleton d875c1f03c Improve keyboard/joystick input in Team Arena UI
Make Yes/No, Multi, Slider, and Bind items allow enter key to change
value without mouse over item. Add support for left and right arrow keys
and joystick button 1-4 to Yes/No, Multi, and Slider and many item
specific 'ownerdraw' key handlers.

Listbox still requires mouse hover and Team Arena main menu requires
mouse hover to get anywhere...

Enabling K_JOY1-4 to select in default key handler also caused additional
mouse button (K_AUX1-16) to select, which is done in q3_ui as well. Both
handle K_AUX equally badly (not treated as a mouse button and not handled
by item specific key handlers), so it's probably fine.
2016-05-23 09:06:34 -05:00
Zack Middleton 2dcc5719e3 Explicitly set cull type for skybox
Explicitly set cull type for skybox to front, instead of using whatever
cull type the previous shader used (which could result in the skybox
not being visible due to only drawing back faces). The sky cloud stages
set the cull type so they are not affected by previous cull type.
2016-05-16 03:17:03 -05:00
Zack Middleton acd659b05a OpenGL2: Fix specularScale override not being used in RB_IterateStagesGeneric 2016-05-09 10:47:34 -05:00
Zack Middleton 8b458e5457 Fix warnings that names passed to Name_PlayerNameCompletion is not const 2016-05-09 10:41:58 -05:00
Zack Middleton d8afce6805 Cross-compiling using mingw should only pick one gcc executable
If multiple mingw toolchains are installed, the Makefile set CC to all
present gcc executables. Pick only the first one instead of passing the
others as arguments.

"CC: /usr/bin/i686-w64-mingw32-gcc /usr/bin/i686-pc-mingw32-gcc"
2016-05-08 20:17:39 -05:00
Zack Middleton 80357ff1f2 Remove incorrect documentation from q3a.service
rate, snaps, and cl_maxpackets cvars only affect client.
2016-04-04 12:19:17 -05:00
Zack Middleton 11668bb1f0 Fix typo of SDL_Has3DNow() in Sys_GetProcessorFeatures() 2016-03-27 12:02:12 -05:00
Zack Middleton 8d38e2307c Fix some opus_decode issues
It was able to fail the assert before. I was using opus_decode wrong.
2016-01-06 05:19:10 -06:00
Zack Middleton 615b73288f Use Opus for VoIP
Server/client VoIP protocol is handled by adding new cvars
cl_voipProtocol and sv_voipProtocol, sv_voip and cl_voip
are used to auto set/clear them. All users need to touch
are cl/sv_voip as 0 or 1 just like before.

Old Speex VoIP packets in demos are skipped.
New VoIP packets are skipped in demos if sv_voipProtocol
doesn't match cl_voipProtocol.

Notable difference between usage of speex and opus codecs,
when using Speex client would be sent 80ms at a time.
Using Opus, 60ms is sent at a time. This was changed because
the Opus codec supports encoding up to 60ms at a time.
(Simpler to send only one codec frame in a packet.)
2016-01-06 05:19:10 -06:00
Zack Middleton 41f83ac8b0 Replace 4 with sizeof( int ) in R_GetCommandBufferReserved 2015-10-17 21:58:11 -05:00
Zack Middleton 81e2b6c0cf Fix reserved size for swap buffer command being too small on x86_64 2015-10-16 20:50:25 -05:00
Zack Middleton e6209f3b7c Fix crash from reading past end of tr.refdef.drawSurfs
The number of draw surfaces was range checked against number of surfaces for
the current view but needs to check total for the frame otherwise can read
past the end of the tr.refdef.drawSurfs array when there are multiple views.
2015-10-16 20:21:15 -05:00
Zack Middleton 8531162bd9 Fix not swapping buffers because out of cmd buffer space
Reserve space for end of list and swap buffer commands. These are absolutely
required and cannot be dropped. Dropping swap buffer command causes screen
to not update and possible crash from drawsurf buffer overflow if not enough
cmd buffer space for many continous frames.
2015-10-16 19:38:49 -05:00
Zack Middleton ce35188acd Add support for uncompressed image upload flag to OpenGL1 2015-10-16 03:29:27 -05:00
Zack Middleton fad66ae222 Maybe fix old MSYS when there is an empty for loop
Based on ioquake3 svn r1485.
2015-10-04 17:20:56 -05:00
Zack Middleton 7f4b34bf09 Remove unused define MAC_EVENT_PUMP_MSEC 2015-10-04 17:20:56 -05:00
Zack Middleton 1902b6e659 Fix compiling on Windows without Steam path/appid 2015-09-26 19:26:21 -05:00
Zack Middleton 7e96fd9cb6 Make steam path optional at compile time for standalone games 2015-09-22 19:25:16 -05:00
Zack Middleton 750fdc0e43 Align indent of defines at top of q_shared.h to 4 space tabs 2015-09-22 19:05:46 -05:00
Zack Middleton 68ab4e9548 Early out of Cmd_CompleteArgument and Cmd_SetCommandCompletionFunc
Reported by Ensiform.
2015-09-20 18:51:20 -05:00
Zack Middleton 5e09f20cd4 Use correct array size for facets in cm_patch.c 2015-09-17 18:46:01 -05:00
Zack Middleton 3001cacf89 Make add bots menu use standard menu drawing
Made add bots menu draw banner and background like remove bots menu.
2015-09-16 01:43:28 -05:00
Zack Middleton b85935d30c Fix glyph width calculation in Text_Paint_Limit
Text_Width's scale argument will be multiplied by glyphScale, so don't
pass useScale that is already multiplied by glyphScale as this makes
the scale too big.
2015-09-15 16:56:03 -05:00
Zack Middleton f4aa39adc1 Remove unused define CG_FONT_THRESHOLD 2015-08-25 16:23:06 -05:00
Zack Middleton 1c628c0fe5 Update headers in VS (10 and 11) projects
So VS doesn't always want to rebuild.

Reported by @shearer12345.
2015-08-19 13:50:39 -05:00
Zack Middleton b5e9e1357a Make msvc10/11 x86_64 copy SDL264.dll 2015-08-18 20:03:59 -05:00
Zack Middleton 24c7563478 Copy msvc11 build changes to msvc10 2015-08-18 19:27:29 -05:00
Zack Middleton d021150e04 Fix mscv11 libcurl include path 2015-08-18 19:27:27 -05:00
Zack Middleton beddd710d2 Fix msvc11 x86_64 runtime 2015-08-18 19:27:26 -05:00
Zack Middleton af30a0e70a Update msvc10 renderer filenames (copied from msvc11) 2015-08-18 19:27:25 -05:00
Zack Middleton 4ad0e516f5 Ignore MSVC non-project files
Ignore auto generated or user configuration for MSVC projects.
Note: .user is ignored in Xcode section but applies to MSVC too.

Patch by @shearer12345.
2015-08-18 19:27:23 -05:00
Zack Middleton eaaaf62a16 Remove MSVC user configuation files 2015-08-18 19:27:22 -05:00
Zack Middleton 2a8bf94de1 Fix 'Invalid architecture' message in make-macosx-app.sh 2015-07-26 21:27:25 -05:00
Zack Middleton c91fe0bcfe Fix handling too many teams in Team Arena UI 2015-07-13 00:09:22 -05:00
Zack Middleton b4b68b8e80 Remove logically dead code from CL_GetServerStatus
Found by Coverity.
2015-07-12 21:14:04 -05:00
Zack Middleton 604b63f00f Fix cgs.teamVoteString buffer overflow in CG_ConfigStringModified
Found by Coverity.
2015-07-12 21:08:16 -05:00
Zack Middleton a5fbc1bfc4 Fix alloc size for default skin and single shader skin
Found by Coverity.
2015-07-12 20:41:47 -05:00
Zack Middleton 4473924636 Remove logically dead code in R_CheckFBO
Found by Coverity.
2015-07-12 20:35:22 -05:00
Zack Middleton c7500bb28e Don't segfault in FS_CreatePath when there are no path seperators 2015-07-12 20:06:24 -05:00
Zack Middleton 2e904141ff Make more vm_x86 macros use braces so they work with if blah run macro
MASK_REG in EmitMovEDXStack would incorrectly emit asm if 'andit' was 0.
'andit' would never be 0 though so it wasn't causing issues.

Found by Coverity.
2015-07-12 19:11:13 -05:00
Zack Middleton ee2541efee Fix range checks for numBorders in CM_AddFacetBevels
Found by Coverity.
2015-07-12 18:39:54 -05:00
Zack Middleton 9f57fea0ee Backport ignoring values outside lightgrid to OpenGL1
Fixes possibly of reading memory past end of lightGridData or reading
wrong light grid data (wrapping around to next row).
2015-07-12 18:17:57 -05:00
Zack Middleton 1bb2bc370d Fix OpenGL2 ignoring last light grid point on each axis
Also change light grid bounds clamping to make it more clear what invalid
values are.
2015-07-09 22:42:01 -05:00
Zack Middleton 5768e2316a Remove unused fpucw from snapvector.asm
It's usage was removed in commit 8a500d71.
2015-07-09 18:35:45 -05:00
Zack Middleton e79af0d1a0 Fix server_compile.sh to exit after completed
Also, convert '\n's to real new lines because the literal '\n's were
printed.
2015-07-06 21:25:06 -05:00
Zack Middleton 993b838f27 Fix Windows file list extension check
Windows' Sys_ListFiles would add files that contain the extension anywhere,
not only at the end of the file name.

Example: "word.pk3omghacks" use to be loaded as a pk3 file.
2015-07-04 20:46:03 -05:00
Zack Middleton b152cf1423 Don't fog 3D crosshair sprite 2015-07-04 19:33:28 -05:00
Zack Middleton 5e575ae82e Apply greyscaling to fog blocks 2015-07-04 19:17:58 -05:00
Zack Middleton 386a00fc2b Fix CGame CG_WaterLevel() comparisons
My last commit made it so that CGame "waterlevel 1" is feet in water,
but before it was erroneously about waist deep in water. The places
where it is checked it is suppose to be view position underwater.

Change comparisons to use correct value for view position underwater.
2015-07-04 05:53:29 -05:00
Zack Middleton 08ac364cd6 Fix CG_WaterLevel() checks for waterlevel 2 and 3
CG_WaterLevel() added lerpOrigin to itself instead of adding view height
when checking for waterlevel 2 and 3. This did not cause issues because
ioq3 only compared the calculated waterlevel to more or equal to 1.
2015-07-04 03:40:05 -05:00
Zack Middleton 6a03817a9c Merge pull request #4 from smcv/hurd
Add support for the GNU/Hurd architecture
2015-06-30 19:02:46 -05:00
Zack Middleton 6d62dc3646 Fix abs() being used for float in cl_input.c 2015-06-28 18:27:09 -05:00
Zack Middleton 1d09a7d578 Fix abs() being used for long int in l_precomp.c 2015-06-28 18:13:06 -05:00
Zack Middleton 70eb1fa79e Make cinematic times be int like CL_ScaledMilliseconds
Cinematic's startTime and lastTime are always set from CL_ScaledMilliseconds
which returns int and are converted back and forth to int and unsigned int.

This fixes a warning that abs() is used on an unsigned int.
2015-06-28 18:02:51 -05:00
Zack Middleton b27e0fbf95 Remove unused function WRITE_1BYTES from cl_avi.c 2015-06-28 17:55:51 -05:00
Zack Middleton f0c4c185fc Remove check for cg_recordSPDemoName.string array address
It will always be true.
2015-06-28 17:55:25 -05:00
Zack Middleton da8a74d734 Fix variable declaration for C89 compilers 2015-06-28 16:29:10 -05:00
Zack Middleton ea9161f4a3 Merge pull request #125 from jkent/master
fix a stupid use of strcpy()
2015-06-18 18:01:48 -05:00
Zack Middleton 5d7612ec84 Merge pull request #109 from Pan7/SIGABRT
SIGABRT is in ANSI and POSIX.1, and SIGIOT isn't.
2015-06-18 13:20:54 -05:00
Zack Middleton 9e03e606cd Merge pull request #108 from Pan7/memmove
No unix memmove for MSVC
2015-06-18 13:13:25 -05:00
Zack Middleton d0a3ba301b Merge pull request #89 from bostick/master
Add mingw prefix for cygwin32 and mingw32
2015-06-18 13:13:16 -05:00
Zack Middleton e857ed7273 Merge pull request #118 from jkent/master
fix buffer overflow in CL_CheckForResend
2015-06-18 13:09:58 -05:00
Zack Middleton 9522028a0e Sort tr_image_*.c filenames in Makefile 2015-06-12 14:31:58 -05:00
Zack Middleton f110f668bf Move image load function prototypes to tr_common.h
The functions themselves are in code/renderercommon/tr_image_*.c
2015-06-12 14:22:37 -05:00
Zack Middleton e5af084211 Remove erroneous new line from error message 2015-06-12 13:08:10 -05:00
Zack Middleton 5082548bf5 Horizontal scroll should not cause K_MWHEELDOWN key press 2015-05-29 16:38:43 -05:00
Zack Middleton 2292bf5bb2 Save bot accompany distance across map change or restart
If a bot is accompanying someone before map change or restart, the bot would
continue accompanying them but press up against them and orbit around them.
This is caused by the bot's formation distance being 0.

Save the formation distance so they maintain proper distance and do not
orbit around the player.
2015-04-30 17:19:00 -05:00
Zack Middleton 8265af84be Let's not ifdef MISSIONPACK inside of ifdef MISSIONPACK 2015-04-12 20:00:08 -05:00
Zack Middleton 10c5f0b5a9 Merge pull request #116 from smcv/system-minizip
Enhancements for system libraries
2015-04-12 19:56:37 -05:00
Zack Middleton c755d75a5e Fix MDR surface indexes overflow check
Also, use the check overflow macro like everywhere else.
2015-03-25 15:41:03 -05:00
Zack Middleton 1a7628126a OpenGL2: Fix shadow cubemap segfault
Changed image size to 512, but 'data' buffer is only 16x16 resulting
in libGL segfault. Use NULL instead like other dynamic images.
2015-03-24 03:39:53 -05:00
Zack Middleton f47d148b72 Add a comment about non-functional bot code 2015-03-23 20:36:27 -05:00
Zack Middleton 7a39f4a30c Fix attacker icon being default image if attacker left
With cg_draw3dicons 0 if attacker is kicked or disconnects, the
attacker icon becomes the default image.
2015-03-23 19:54:26 -05:00
Zack Middleton 1897afbd3a Fix crosshair drawing not clearing color
The renderer color is set to health color when drawing crosshair. After
drawing the crosshair, the renderer color was not cleared and could affect
other things. With cg_draw3dicons 0 and cg_drawCrosshairNames 0 it affected
the attacker icon.
2015-03-23 19:33:56 -05:00
Zack Middleton 5fb49acda8 Clean up CG_DrawProxWarning design
Hopefully fixes the following warning
cg_draw.c:2315 assuming signed overflow does not occur when assuming that (X + c) < X is always false [-Wstrict-overflow]
2015-03-20 21:21:47 -05:00
Zack Middleton 148603c951 Don't run vid_restart when "resized" to current size 2015-02-28 18:35:41 -06:00
Zack Middleton c4f5176af4 Set bsp_trace_t::surface.flags to surfaceFlags in server and game
Revert last commit so that grapple sky check is compatible with BSPC
BotImport_Trace in (removed from repo) code/bspc/be_aas_bspq3.c.

Set bsp_trace_t::surface.flags instead of surface.value to trace_t::surfaceFlags.
surface.flags is only used for the sky check for grapple AAS reachability.
surface.value is not used at all.

bsp_trace_t is not part of the game VM API, so this does not affect VM compatibility.
BotAI_Trace in game was changed to match server. surface.value/flags are not used in game.
2015-02-18 15:17:57 -06:00
Zack Middleton dbd6f6d8b1 Fix AAS_Reachability_Grapple's sky surface check
Surface flags are stored in bsptrace.surface.value not flags.
2015-02-18 13:39:59 -06:00
Zack Middleton 99b74fc5bf OpenGL2: Remove unused function prototype from tr_fbo.c 2015-02-07 18:52:03 -06:00
Zack Middleton 4fb053b8e7 Fix incorrect strncpy in S_AL_StartBackgroundTrack
Error is loop argument is NULL.
Ensure that s_backgroundTrack is a null terminated string.
2015-02-05 04:37:26 -06:00
Zack Middleton 4e029b1f6b Fix compiling lcc using mingw under cygwin
Also have 'make' under cygwin automatically use mingw.
2015-01-27 04:51:03 -06:00
Zack Middleton 10e2caad46 Fix crash in MSVC x64 qsnapvectorsse, bug #5905
Make MASM x64 qsnapvectorsse the same as the inline version.
Remove leftover OP code, see commit 8a500d71da.
2015-01-14 15:29:45 -06:00