Commit Graph

75 Commits

Author SHA1 Message Date
Alibek Omarov
c6c1163aa0 engine: common: refactor variable declarations 2026-05-20 23:24:36 +05:00
Alibek Omarov
8120669e5b engine: restore bounds check in Delta_FindStructByIndex, as it gets passed arbitrary numbers too 2026-05-16 21:27:51 +05:00
Alibek Omarov
166763a887 engine: common: limit amount of delta encoded fields by 64 in GoldSrc protocol (because this is the maximum it allows anyway) 2026-05-16 21:12:49 +05:00
Alibek Omarov
50147a3d48 common: replace HLSDK pmtrace.h and pm_movevars.h by it's QW counterparts 2026-02-26 10:29:09 +05:00
Alibek Omarov
26acc25018 common: use Quake derived definitions for usercmd_t and dlight_t 2026-02-26 10:29:09 +05:00
Alibek Omarov
eacc35d9e1 engine: replace COM_CheckString and COM_CheckStringEmpty by COM_StringEmptyOrNULL and COM_StringEmpty 2026-02-21 01:20:34 +05:00
Alibek Omarov
4804586728 engine: let movevars.zmax be encoded in 24 bits 2026-01-30 02:04:07 +05:00
Alibek Omarov
cfa8e639f1 engine: drop legacy protocol support 2025-12-01 13:03:53 +05:00
Alibek Omarov
3e93aa459d engine: net_buffer: turn bit write and read masks into predefined arrays, so we don't have to call InitMasks
In future, net_buffer might get moved to libpublic.

Also, get rid of 32-th bit write mask, it's only get used when we're trying to
write zero bits value which is nonsense.
2025-01-18 09:54:11 +03:00
Alibek Omarov
ac9d960eef engine: common: get rid of NULL sentinels at the end of arrays 2024-12-22 07:22:10 +03:00
Alibek Omarov
5bcd573821 engine: remove goldsrc meta delta table reinitialization 2024-10-14 06:54:41 +03:00
Alibek Omarov
c5a291d9c7 engine: minor refactoring 2024-10-14 05:17:21 +03:00
Alibek Omarov
fe2a4d0428 engine: common: net_encode: remove DT_SIGNED_GS flag just in case 2024-10-10 23:40:23 +03:00
Alibek Omarov
ba7c789ec9 engine: common: add GoldSrc delta support 2024-10-08 03:28:02 +03:00
Alibek Omarov
bc8bf9a9fb engine: add const on delta functions 2024-09-30 04:00:28 +03:00
Alibek Omarov
953ad98a16 engine: workaround buggy stringop-overflow 2024-09-30 04:00:28 +03:00
Alibek Omarov
d56e53a347 Replace hardcoded functions names by __func__ macro
* while we're here, fix some possible bugs
* and fix -Wformat=2

s/__FUNCTION__/__func__/g

awawawa
2024-06-19 06:53:42 +03:00
Alibek Omarov
ca9d3d262a engine: common: net_encode: directly call MSG_ReadSBitLong for DT_TIMEWINDOW_*, don't do the multiplier check for DT_TIMEWINDOW_BIG 2024-04-20 20:48:01 +03:00
Alibek Omarov
a08f5e439d engine: common: net_encode: fix comparing DT_TIMEWINDOW_* fields
Fixes: 35783bcec2 ("engine: common: net_encode: fix inaccuracy in DT_TIMEWINDOW_* encoding")
2024-04-19 01:51:25 +03:00
Alibek Omarov
87ac217887 engine: common: net_encode: add bitmask operation to delta tests 2024-04-18 16:44:15 +03:00
Alibek Omarov
ac46164a6e engine: common: net_encode: implement basic delta tests 2024-04-17 20:27:22 +03:00
Alibek Omarov
6d12d84e94 engine: common: net_encode: apply post_multiplier to integer fields, like GoldSrc does 2024-04-17 06:23:22 +03:00
Alibek Omarov
2a18cde60c engine: common: net_encode: fix applying integer clamp before multiplier
Without this fix, data still might overflow after applying multiplier
and potentially send incorrect data.
2024-04-17 06:16:44 +03:00
Alibek Omarov
35783bcec2 engine: common: net_encode: fix inaccuracy in DT_TIMEWINDOW_* encoding
By avoiding double rounding, we get more accurate time on client when timebase
gets rounded down and target time gets rounded up:

```
>>> round(123.1) - round(124.51)
-2
>>> round(123.1 - 124.51)
-1
```
2024-04-17 06:09:52 +03:00
Alibek Omarov
350d8ccb7b engine: common: cvar: unused variables cleanup 2023-12-05 10:46:26 +03:00
Alibek Omarov
6ea8d141d9 engine: common: net_encode: fix usage of new Delta_ClampIntegerField, minor fixes 2023-06-28 14:30:06 +03:00
Alibek Omarov
bdc2390d41 Revert "engine: common: net_encode: rewrite Delta_CompareField to be more efficient"
This reverts commit 82addf11bb.
2023-06-28 14:26:42 +03:00
Alibek Omarov
acc113309c Revert "engine: common: net_encode: fix Delta_CompareField to include integer clamping, in case if no updates happen in significant bits"
This reverts commit 6a7b330463.
2023-06-28 14:26:40 +03:00
Alibek Omarov
5afda72290 engine: common: net_encode: simplify Delta_ClampIntegerField 2023-06-28 05:07:53 +03:00
Alibek Omarov
6a7b330463 engine: common: net_encode: fix Delta_CompareField to include integer clamping, in case if no updates happen in significant bits 2023-06-28 04:47:12 +03:00
Alibek Omarov
f5b9826fd9 engine: common: net_encode: directly access delta description struct than searching for it every time 2023-06-27 19:56:32 +03:00
Alibek Omarov
82addf11bb engine: common: net_encode: rewrite Delta_CompareField to be more efficient 2023-06-27 18:06:24 +03:00
Alibek Omarov
26959cd280 engine: common: net_encode: use stdint.h types in Delta_CompareField 2023-06-06 00:20:56 +03:00
Alibek Omarov
b16fa8eddc public: remove Q_strcat and Q_strcpy, and patch the code that uses it 2023-04-26 05:20:45 +03:00
Alibek Omarov
8d6ac3fad4 engine: common: net_encode: cosmetic changes, static-ize functions, move private macros 2023-04-18 05:16:57 +03:00
Alibek Omarov
d4610e30fd engine: common: net_encode: fix strict aliasing by converting it to use float_bits_t union 2023-03-14 21:29:35 +03:00
Velaron
0e286f31c5 engine: client: fix DT_TIMEWINDOW_* signedness 2022-01-24 17:31:36 +03:00
Alibek Omarov
ea5937bce0 engine: net_encode: remove naive clientdata/weapondata copy, only copy fields explicitly listed in deltalst 2022-01-14 14:46:52 +03:00
Alibek Omarov
6e4ab74694 engine: net_encode: split delta "no changes" copy into separate function 2022-01-14 14:33:13 +03:00
Alibek Omarov
f9d0fba05f wscript: remove duplicated branches diagnostic for good 2022-01-04 09:01:08 +03:00
Alibek Omarov
01b2266b7e engine: net_encode: minor code style fix 2022-01-04 04:30:47 +03:00
Alibek Omarov
29a8bfb1dc engine: common: fix ParseFile calls 2021-10-08 17:31:32 +03:00
SNMetamorph
09d647182d engine: net_encode: equality comparisions replaced with Q_equal macros 2021-07-09 14:57:49 +03:00
SNMetamorph
8b76ab93fb engine: net_encode: made delta more GoldSrc consistant 2021-07-09 14:57:49 +03:00
Alibek Omarov
6063149b93 engine: match DT_TIMEWINDOW_* behaviour to GoldSrc: it's always signed and it's more of an integer than float value 2021-06-07 17:31:54 +03:00
Alibek Omarov
a28d15e519 engine: match DT_TIMEWINDOW_* behaviour to GoldSrc: it's always signed and it's more of an integer than float value 2021-06-07 17:30:40 +03:00
Alibek Omarov
ddd48c420b engine: decrease instanced baseline index by minus one to avoid zero offset which interpreted as no baseline at all 2021-06-01 21:52:33 +03:00
Alibek Omarov
23974d24c3 engine: try to avoid broken -Werror=duplicated-branches for old GCCs 2 2021-03-24 19:11:17 +03:00
Alibek Omarov
868947cbb4 engine: try to avoid broken -Werror=duplicated-branches for old GCCs 2021-03-23 23:49:08 +03:00
Alibek Omarov
331a2046c8 engine: net: fix delta incorrect casts when field is signed 2021-03-10 21:51:21 +03:00