Commit Graph
4589 Commits
Author SHA1 Message Date
Tim Angusandsmallmodel e299031470 Reduce duplication in FS path search code
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-09-04 23:28:07 +02:00
smallmodel eb6b6173ee Fix roundlimit variable ignored on ToW 2025-09-03 21:06:14 +02:00
smallmodel 01562e5d83 Annotate 2.0 specific code 2025-09-03 20:43:23 +02:00
smallmodel d7a2e5bc65 Clear the time message on liberation
There is no clock on liberation game mode.
2025-09-03 20:37:13 +02:00
smallmodel ac67939b76 Use explicit path when including q_common and q_shared 2025-08-31 16:53:09 +02:00
smallmodel 378938ae39 Remove NO_VM_COMPILED (VM is not supported in the game) 2025-08-31 12:12:12 +02:00
smallmodel 93d487a0d6 Calculate model/sound index once in CG_ProcessConfigString 2025-08-30 23:56:31 +02:00
smallmodel 4b61caf47a Set max settings by default
Any modern computer can run the game in max settings, let the user change settings if necessary.
2025-08-30 23:44:06 +02:00
Tim Angus 6bcfe1788d Allow ARCH_STRING to be undefined 2025-08-30 21:31:54 +02:00
smallmodel b038d5ca03 Fix dbg suffix 2025-08-30 20:47:39 +02:00
Tim Angus 4ef547cd86 Remove architecture from binary filenames 2025-08-29 22:51:27 +02:00
smallmodel 0fdf19a3d4 Add reflective team damage
A flag can be set for `g_teamdamage` so reflective damage can be enabled. When enabled, an attacker who damage their teammate will also get damaged.
2025-08-29 21:41:46 +02:00
smallmodel bb9189f219 Don't kick all players if g_teamkillkick is set to 0 2025-08-29 21:16:23 +02:00
Youssef Saeedandsmallmodel f72cc9da77 Use false instead of NULL for boolean (#792)
This PR replaces `NULL` with `false` for a boolean member in an `extensions_table_t` initializer to fix C++ type-mismatch build error on modern C++ compilers.

Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-08-28 23:47:57 +02:00
smallmodel f75892cd26 Add variables that allow modifying bots behavior 2025-08-27 23:51:33 +02:00
Tim Angus 8dbae6247c OCD 2025-08-27 23:39:01 +02:00
Youssef Saeedandsmallmodel f72e10a297 Use an integer for file handles (#791)
This PR replaces `NULL` with `0` for integer file handles to fix C++ type-mismatch build errors on modern C++ compilers.

---------

Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-08-26 23:29:42 +02:00
smallmodel ecf70528a7 Move all C++ core classes to the corepp directory 2025-08-24 16:51:11 +02:00
smallmodel e0a748a2e7 Fix uninitialized current variable 2025-08-24 16:50:37 +02:00
Tim Angus 5136eb3856 Add DEFAULT_RELATIVE_BASEDIR
Sys_BinaryPathRelative takes a parameter which is path concatenated with
Sys_BinaryPath, and resolved to a canonical path. The intended use case
is to facilitate the situation where you want the game data directory to
exist outside the same directory in which the binary lives, but relative
to it. More specifically, if you want to distriute multiple binaries for
different architectures, in the same tree, this allows for a means of
having said binaries in architecture subdirectories, with a shared data
directory, e.g.:

  ioq3/x86/ioquake3.exe etc.
  ioq3/x86_64/ioquake3.exe etc.
  ioq3/baseq3/pak0.pk3 etc.

Here, when building you would define DEFAULT_RELATIVE_BASEDIR=".." by
appending it to the build system CFLAGS, and then the executables will
by default look in their parent directory for the data.
2025-08-23 23:30:58 +02:00
Simon McVittie fabc7c7c74 Remove unused matha.S
Before commit a7d33b1c "(bug #3639) BoxOnPlaneSide rewrite" there
was more code here, but since then the only thing left is the
Invert24To16 function, to which I couldn't find any references since
the beginning of ioquake3's git history.

Resolves: https://github.com/ioquake/ioq3/issues/774
Signed-off-by: Simon McVittie <smcv@debian.org>

client: Remove i386 GNU assembler version of S_WriteLinearBlastStereo16()

This was the last remaining GNU assembler code that was in its own
independent source file, as opposed to being embedded in C code with
GNU `__asm__ volatile` or MSVC `__asm` (which tends to be much easier
to deal with in a modern build system).

When the Quake 3 engine was originally written, this might have been
an "expensive" function when written in portable C, but after 25 years
of CPU development it's less likely to matter (and modern compilers
might produce faster results from the C code anyway).

Resolves: https://github.com/ioquake/ioq3/issues/778
Signed-off-by: Simon McVittie <smcv@debian.org>
2025-08-23 23:30:50 +02:00
smallmodel f885408059 Improve class and event printing with interface classes 2025-08-23 22:28:52 +02:00
smallmodel a2b891acd9 Add str constructor with length parameter 2025-08-23 22:28:27 +02:00
smallmodel f529358357 Move updatecheck variables to the update checker source file 2025-08-22 23:34:48 +02:00
smallmodel 270a7663c2 Remove the label from list only if it was registered 2025-08-22 23:34:38 +02:00
smallmodel 80b2e89dcc Fix spelling errors 2025-08-19 19:07:35 +02:00
smallmodel 654ab91efb Increase the minor version number due to previous enhancements 2025-08-19 19:07:29 +02:00
smallmodel 555caa10f3 Make bot's name modifiable through variables
Bot names must be set using `sv_botXname` where X is the bot ID, because bots can be spawned automatically using `sv_minPlayers`. `addbot` and `addbotnamed` commands shouldn't be used, they only exist for testing purposes.
2025-08-18 20:46:29 +02:00
smallmodel 0c5cfb7a37 Add support for naming bots
`addbotnamed` command is used to spawn a bot with the specified name. The `addbot` command no longer supplies an argument for the botname
2025-08-17 18:47:47 +02:00
smallmodel 31e6830aee Add Cvar_Find 2025-08-17 18:37:03 +02:00
smallmodel 3a7105246d Remove bot_run.scr
It's unused and it gets spammy in developer mode
2025-08-17 17:55:35 +02:00
smallmodel a824d9e912 Fix access violation in angles_pointat with entity and target 2025-08-16 22:50:57 +02:00
smallmodel be3d9892e4 Fix bot serverTime not being set when not alive
This caused some artifacts when the bot was dying (such as the animation delta not being applied).
2025-08-16 22:18:57 +02:00
smallmodel 95474c92b3 Fix switch team messages 2025-08-16 21:15:35 +02:00
smallmodel 480a377292 Expose API to kick client with reason for game
This will let the client know why it gets kicked by game.
2025-08-16 21:08:10 +02:00
smallmodel 8ce3866e70 Use the server fov when in camera view 2025-08-16 20:15:29 +02:00
smallmodel f5b01e7137 Fix window icon 2025-08-15 19:24:17 +02:00
smallmodel 425885bf61 Explicitly use signed char for network strings
ARM uses unsigned char by default when the sign is unspecified, this would cause some issues with messages containing accents, players would lose user control.
2025-08-15 19:02:27 +02:00
smallmodel 2eb190fe97 Fix Info_Print values
Some programs use dumpuser and split entries with the semicolon.
2025-08-14 23:25:07 +02:00
smallmodel 282110239e Add USE_CODEC_MAD option 2025-08-13 23:20:04 +02:00
Tim Angus edd58f2042 Remove clientHtmlFallback 2025-08-13 19:51:45 +02:00
smallmodel 4cd6a51869 Expose the number of bots through minplayers variable
Clients will now show the number of bots (if there are any) in the server browser. Servers must be running a build since this commit
2025-08-11 23:08:04 +02:00
smallmodel 3cd01b77d1 Don't allocate bots in single-player mode (#784) 2025-08-11 00:33:06 +02:00
smallmodel d3ca24d27a Fix Winsock getting shutdown after gamespy shutdown 2025-08-10 19:17:25 +02:00
smallmodel 70c12a1639 Bump version number 2025-08-10 19:17:23 +02:00
smallmodel 59329b4fb3 Mark member function overriding 2025-08-09 00:39:41 +02:00
Tim Angus 4083d1123f Map SDL gamepad buttons to keys explicitly 2025-08-08 22:58:03 +02:00
Tim Angus fa047b7bf9 http -> https on URLs 2025-08-08 22:53:00 +02:00
Tim Angus 659939352a Add USE_ARCHLESS_FILENAMES 2025-08-08 22:52:26 +02:00
smallmodelandTim Angus e556f58cc4 Reimplement CMake from upstream ioq3 (#781)
This reuse the CMake build system from ioq3, modified to make it work with the C++ code.

---------

Co-authored-by: Tim Angus <tim@ngus.net>
2025-08-08 01:03:07 +02:00