Tim Angus
06b1c0e879
Guard autoupdater more completely
2025-11-11 16:00:01 +01:00
Tim Angus and smallmodel
2c9e500570
XDG home directory support
...
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com >
2025-10-19 21:03:23 +02:00
Tim Angus
cbb43b702e
Use FS_CreatePath in Sys_ErrorDialog
2025-10-18 01:26:57 +02:00
Tim Angus
dc50137f66
Render ANSI black text inverse (so that it is readable on black terminals)
2025-10-17 20:29:11 +02:00
Tim Angus
fb741a9a0b
Add Sys_OpenFolderInFileManager
2025-10-11 22:01:30 +02:00
Tim Angus
3886afec57
Move Sys_Exec within the file
2025-10-11 22:01:24 +02:00
Tim Angus
ed6f279785
Fix macOS deprecated constants
2025-09-07 20:29:29 +02:00
Tim Angus
258c5f53f9
Wrap __attribute__s in macros
2025-09-07 20:19:05 +02:00
Tim Angus
6e57eb7d00
Fix various warnings
2025-09-07 19:45:51 +02:00
smallmodel
c93d0f6975
Add standalone definition to avoid including steam/gog/msstore path
2025-09-04 23:40:30 +02:00
Tim Angus and smallmodel
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
ecf70528a7
Move all C++ core classes to the corepp directory
2025-08-24 16:51:11 +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
smallmodel
f529358357
Move updatecheck variables to the update checker source file
2025-08-22 23:34:48 +02:00
Tim Angus
fa047b7bf9
http -> https on URLs
2025-08-08 22:53:00 +02:00
smallmodel and Tim 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
Pan7 and smallmodel
6d2d6e1429
Replace USE_LOCAL_HEADERS with USE_INTERNAL_*
...
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com >
2025-08-01 23:02:06 +02:00
J.Ingram
88e41fd6e5
Call SHGetFolderPathA directly
...
Removing shfolder.h satisfies MSVC, and calling the function directly makes PFNSHGETFOLDERPATHA unnecessary.
2025-08-01 22:43:04 +02:00
J.Ingram
8336e48566
Use PFNGETFOLDERPATHA typedef
...
FARPROC is defined with an empty parameter list, which newer versions of GCC consider equivalent to (void). Compilation fails when qSHGetFolderPath gets called with arguments.
2025-07-17 21:00:52 +02:00
smallmodel
89a748673c
Catch all exceptions when parsing json
2025-06-17 21:45:21 +02:00
smallmodel
099a67f1fd
Make cURL loosely coupled ( #739 )
...
This makes it so the project doesn't link against the library. The project must be able to run without the presence of the library.
2025-06-07 20:36:15 +02:00
smallmodel
da9979f887
Remove the architecture suffix from binary names
...
- Avoids conflicts with third-party DLLs (like SDL, OpenAL) which have no suffix.
- Easier to build an installer and document.
- More clarity as the architecture is already indicated in the archive name.
- Simplifies launchers & automation (no need to guess the architecture).
- The architecture is still visible when typing `version` in the console or when the executable starts
2025-05-13 20:44:35 +02:00
smallmodel
49fd4acef8
Wrap WriteCallback around HAS_LIBCURL define
2025-03-17 11:50:41 +01:00
smallmodel
e6f5d76abe
Set the appropriate headers to use API versioning
2025-03-13 23:42:50 +01:00
smallmodel
fecd1eb505
Preallocate and set the maximum buffer size to receive the request
2025-03-13 23:37:20 +01:00
smallmodel
9536a8ec64
Specify a small timeout for each request
2025-03-13 22:41:01 +01:00
smallmodel
06a12246f5
Notify the request thread of shutdown only if it's waiting
...
This avoids a deadlock that would occur if notify_all() is called before the thread is waiting
2025-03-13 22:37:21 +01:00
smallmodel
456b660b2a
Improve the update checker so it can be opt-out ( #696 )
...
* Add a cvar to enable/disable update checking
* Refactor update checker
This splits the thread part from the main part to clarify the code
* Move and update the configuration documentation, for a more general approach
2025-03-13 21:09:42 +01:00
smallmodel
c854df8ffa
Don't start the update thread if it shouldn't be active or if the network doesn't work
2025-03-12 23:58:24 +01:00
smallmodel
22a34d8d68
Fix compile error when libcurl is not installed
2025-03-12 23:18:11 +01:00
smallmodel
79af8a46d1
Increase update thread sleep time
...
This prevents wasting time in scheduling the thread
2025-03-11 23:57:40 +01:00
smallmodel
4fe11b5ea9
Always return false for CheckNewVersion() if libcurl is not used
2025-03-11 23:37:34 +01:00
smallmodel
7a20bb4deb
Add a new method that return version numbers
2025-03-11 23:32:18 +01:00
smallmodel
58f7e6f1fe
Use cURL instead of cpp-httplib
2025-03-05 23:40:05 +01:00
smallmodel
01381ed084
Add HTTP support and update checking
2025-02-24 02:20:31 +01:00
ysdragon
833408c663
Don't link against rt for musl and *BSD platforms
2025-02-08 04:03:24 +02:00
smallmodel
f22ea9eb21
Link against rt
2025-01-11 23:50:33 +01:00
smallmodel
ec95b6bfbe
Fix localization not working properly
2025-01-08 22:52:47 +01:00
smallmodel
6a31381c8e
Format localization source files
2025-01-08 21:26:41 +01:00
smallmodel
7f8bcf8075
Don't read localization.txt file twice
2025-01-08 21:07:13 +01:00
smallmodel
b84a47ad3f
Localization files should be sorted case-insensitive
2025-01-08 21:04:09 +01:00
ysdragon
2ec2ef8bbf
Update sys CMake configuration to link execinfo for BSD variants
2025-01-08 11:27:09 +02:00
smallmodel
387ccd5cc3
Bump the minimum CMake version to 3.12
2024-11-30 00:36:33 +01:00
smallmodel
83a874e4fd
Add an option for CMake to specify when targeting the local system
2024-11-29 20:59:47 +01:00
ysdragon
8d0b7b77c6
Check for libc and link against execinfo lib for musl libc
2024-11-24 16:04:30 +01:00
smallmodel
2ce8450a7e
Use fprintf to stderr
2024-11-21 01:14:08 +01:00
smallmodel
58d8a73269
Don't abort() on interrupt or on program termination
2024-11-20 12:46:04 +01:00
smallmodel
c788d57c52
Use abort() rather than doing a segfault
2024-11-19 23:15:01 +01:00
smallmodel
01dfbcdbfe
Properly print the backtrace and generate a core dump on both Windows/Unix
2024-11-19 21:45:49 +01:00
smallmodel
b0a683c188
Don't localize if the localization hasn't been initialized
2024-11-12 23:09:32 +01:00