Commit Graph
623 Commits
Author SHA1 Message Date
smallmodel a3662d01ba Use a debug print rather than an error drop when the reference count for an area is negative (#755) 2025-06-11 03:00:27 +02:00
smallmodel 5a563b3cf0 Add unit test support (#751)
This adds simple support for unit testing, starting with the LZ77 compressor.
- Unit tests run on a separate GitHub Actions workflow
- Remove CTest commands from shared build workflow
2025-06-10 19:45:57 +02:00
smallmodel 8c7cbfaa48 Don't use va for unnamedsoldier.cfg 2025-06-10 01:22:16 +02:00
smallmodel 7fdc863175 Refactor LZ77 code (#748) 2025-06-09 23:47:53 +02:00
smallmodel 5ab30b97d7 Make size() constant 2025-06-07 20:44:45 +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 ea8ee67784 Improve stufftext filtering (#731)
- Use `allow` rather than `filter`, as it checks for allowed commands
rather than prohibited commands.
- Allow userinfo variables to be created by the server.

Userinfo variables are now removed when disconnecting. Some servers use
userinfo variables for custom settings or to store temporary
information, which makes them irrelevant on other servers and uses space.
2025-06-03 18:46:56 +02:00
smallmodel e259d62e18 Fix broken object insertion
This was causing the last object to be uninitialized when an object was being inserted at index 0
2025-05-29 20:26:00 +02:00
Cowcat5150 7e52f74d2a Missing bigendian values in fencemask. 2025-05-19 18:08:50 +02:00
smallmodel 1241818d5e Use placement new when copying as the object is uninitialized 2025-05-18 19:48:14 +02:00
smallmodel 035f7b2605 Increase message buffer to 200 characters 2025-05-14 23:50:20 +02:00
smallmodel 7081a56113 Fix name being cut off at the first negative character.
Com_SanitizeName uses unsigned comparison when validating characters to prevent premature truncation when encountering characters above 127
2025-05-14 23:36:18 +02:00
smallmodel 831695f288 Rework the version string (#720)
Rework the version string.

- Make the original game version appear first in the `version` variable.
- Use `com_target_shortversion` for the short version number.
- Use `com_target_version` for the original game version.

Some software, such as HLSW, as well as certain mods, check if the version string begins with "Medal of Honor ....". This commit makes these changes to ensure most software properly handles the game version.
2025-05-03 13:38:00 +02:00
smallmodel a924fc252b Use the hardware cursor in windowed mode (#718)
In windowed mode, the mouse is no longer grabbed when one of the UI/console catcher is active. When a UI menu is active, the system's hardware cursor is shown, using the game's custom cursor texture, instead of simulating and rendering the cursor in-game.

* Add exports to load a raw image from the renderer
* Set the hardware cursor to the game's custom mouse cursor texture
* When mouse is not grabbed, the mouse gets updated with absolute mouse position, relative to the window position
2025-05-02 16:52:39 +02:00
smallmodel cce81cabff Implement multi-master queries and heartbeats (#717)
Implement multi-master server list query and multi-master heartbeats. The server list is fetched from multiple masters to improve redundancy, reliability and performance. This improves multiplayer availability by implementing support for using multiple masters.
- The server sends an heartbeat to all masters at once
- The client can query up to 4 masters in parallel depending on their rate
2025-04-27 22:14:08 +02:00
smallmodel 73b4569c07 Add Com_InitGameSpy() for future use 2025-04-22 22:51:06 +02:00
smallmodel a2bbf6cff8 Use functions that return master host information
This splits gamespy client-specific and server-specific code and add common gamespy code to provide more flexibility in the future
2025-04-22 21:40:34 +02:00
smallmodel 64f62583ce Set a more explicit version number
Makes it easier to identify the currently running OPM version from the server list, useful for troubleshooting and checking if the server is up to date
2025-04-20 21:42:33 +02:00
smallmodel 5530d3051b Fix missing spaces between product information in the logfile 2025-04-19 21:36:58 +02:00
smallmodel 42326ec708 Fix timestamps printed twice on the same line (#714) 2025-04-19 21:35:53 +02:00
smallmodel f9db0ab8f9 Fix an access violation that would occur when opening the logfile before com_version is created (#708) 2025-04-01 22:07:05 +02:00
Sébastien Noelandsmallmodel 921726e0b8 Fix a few typos (#699)
Co-authored-by: smallmodel <15067410+smallmodel@users.noreply.github.com>
2025-03-19 15:03:01 +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 aac91e8763 Refactor and simplify Alias_ListSort 2025-03-02 13:55:44 +01:00
smallmodel 5c0adf9a28 Refactor Alias_FindRandomRange 2025-03-02 13:49:01 +01:00
smallmodel 9963a99868 Fix a stack overflow issue (#686)
The length check now include the null-terminated character
2025-03-02 13:40:36 +01:00
smallmodel 08d0a378f8 Fix compilation fail when DEBUG_MEM is set (#677) 2025-02-24 13:38:33 +01:00
smallmodel 01381ed084 Add HTTP support and update checking 2025-02-24 02:20:31 +01:00
smallmodel 076fd69131 Use the engine allocator to allocate/delete memory from the table of pointers 2025-02-19 20:11:07 +01:00
smallmodel 587f7f544e Add REF_DLL for mem_blockalloc 2025-02-19 20:03:23 +01:00
smallmodel 178c486b83 Use NewEntry/DeleteEntry like con_set 2025-02-19 18:16:53 +01:00
smallmodel 004f88dae9 Use a better method for storing class lists
This prevents allocating a ClassDef just to act as a root list. The classlist would never be freed (memory leak)
2025-02-18 22:39:52 +01:00
smallmodel 97fe824b80 Clear subtitles for all nodes when deleting the alias list 2025-02-18 22:35:48 +01:00
smallmodel 758176dd32 Delete the waitTillSet when destroying the class 2025-02-18 21:52:35 +01:00
smallmodel 854c1980cc Make EventQueueNode part of LightClass 2025-02-18 21:46:34 +01:00
smallmodel a1d47cf64a Add placement new/placement delete 2025-02-18 20:54:24 +01:00
smallmodel 49335ba8a8 Fix improper check of dir->path empty string 2025-02-04 00:08:37 +01:00
smallmodel ca2322a4da Add recursive check in Com_Printf
This prevents recursive call to Com_Printf during localization and also remove localization errors
2025-02-04 00:03:30 +01:00
smallmodel 0b12d160bb Properly construct all objects that has been allocated with AddObjectAt() 2025-02-03 21:28:13 +01:00
smallmodel a5c59c4b77 Use maxDataSize when copying Event 2025-02-02 16:50:07 +01:00
smallmodel 8234ce1e5f Add pragma once 2025-02-02 16:20:14 +01:00
smallmodel e962e4e1f5 Use an int instead of a size_t 2025-02-02 16:03:40 +01:00
smallmodel 7f64ef05d5 Mark Event getter methods as const 2025-02-02 16:01:41 +01:00
smallmodel 9cb593c9e4 Add support for event subscription (delegates) 2025-02-02 15:58:04 +01:00
smallmodel cfb343d262 Add str move constructor/assignment 2025-02-01 15:52:58 +01:00
smallmodel 7b97ad6e2f Add move constructor for ContainerClass and refactor it 2025-01-31 22:53:31 +01:00
smallmodel fdea2a2e92 Free the object list when moving the container 2025-01-31 22:46:35 +01:00
smallmodel aa0085b57d Improve the Container class by using move constructor on reallocation when possible
This greatly optimize memory and speed by moving objects instead of copying objects
2025-01-31 22:38:00 +01:00
smallmodel 3fa489c0f9 Add move constructor for SafePtr 2025-01-31 22:22:00 +01:00
smallmodel 7a8aa4eb84 Add placement new/delete for LightClass 2025-01-31 20:45:18 +01:00