Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CHANGELOG.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ upcoming:
When being revived, weapons now fade in from the bottom in a non-linear fashion.
Purely visual, does not affect hit detection.
optout: "set `cg_gunReviveFadeIn` to `0` (default: `1`)"
# TODO - add previous version history
# v82.3.0: []
# Older releases: see upstream ET: Legacy changelog / release notes; this file
# only tracks fork-facing `upcoming` entries for packaging or announcements.
6 changes: 3 additions & 3 deletions docs/demos/README-serverside-demos_ETL.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ DEV NOTES

* The patch architecture is pretty simple: we record every events/entities/playerStates at demo recording, and for playback we just hook at the end of each server frame and overwrite with demo events. This way, demo events always take the upper hand on server's events, but it still allows the server to manage interpolation when there is no demo event. This is why the timescale and cl_freezeDemo functions work with server-side demos.

TODO
----
Open items (historical)
-----------------------

* ExcessivePlus new scoreboard is buggy and shows wrong scores and stats, except when one of the players die (producing and sending a new scoreboard state, so this forces the gamecode to update with the correct scoreboard state from demo). A generic solution might be to: always save the full server/gamecode state at the end of one frame (in sv_demo.c), and then at the beginning of next frame restore the full server/gamecode state. This way, each demo frame would pick up right from the last demo state, guaranteed. Because here the scoreboard bug is probably due to ExcessivePlus having a too high scoreboard refresh rate, so it gets refreshed between demo frames where there is a scoreboard refresh (in other words, E+ is refreshing the scoreboard even though there is no new info: E+ is active in its approach to scoreboard refreshing, whereas ioq3 is passive and waits for real updates). But with this approach, check if timescale and cl_freezeDemo still work (because saving/restoring full server state might break ability to interpolate frames between recorded demo frames). Might want to look into RestoreCmdContext() and SaveCmdContext().

Expand Down Expand Up @@ -179,7 +179,7 @@ CHANGELOG (newest to the bottom)
* Generations Arena: team management does not work (when a player switch team, he is not affected to the right team)
* E+ now real players join the game...
* E+ democlients are not spectatable, userinfo is not reliable - now update, specs are spectatable...
* cleaned FIXME
* cleaned (legacy FIXME items addressed in-tree where noted)
* clean code
* Fix inactivity timers (simulate UserMove or just send a fake usercmd_t) - had to craft a remoteAddress with NET_StringToAdr, because else if we just use Info_SetValueForKey(userinfo, "ip", "localhost") the server would remove the ip key in the userinfo because no real address can be found for democlients.
* SV_DemoChangeMaxClients() does not consider privateclients reserved slots when moving clients (eg: with 2 privateslots: 2 -> 12 -> 0)
Expand Down
17 changes: 10 additions & 7 deletions misc/clang-regenerate-luals-definitions.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

from clang import cindex

# Set from cli() when --debug is passed.
_debug = False

TEMPLATE_STANZA = (
f"""-- DO NOT EDIT - THIS FILE IS AUTOGENERATED VIA './etlegacy/misc/generate-lua-definitions.py'
-- MANUAL CHANGES WILL BE LOST!
Expand Down Expand Up @@ -204,7 +207,7 @@ def parse_c_comment_def(line):
start_end_marker_found == 2
), f"Expected to match both a start and an end marker. ['/**', '*/']\n\t{self.c_name} / expected 2 found {start_end_marker_found}"

# TODO - opt
# Ensure every ---@param names a real C parameter.
for x in result.params_annotated:
assert (
x in result.params
Expand Down Expand Up @@ -271,8 +274,8 @@ def __str__(self):


def print_debug(s):
# TODO
print(s)
if _debug:
print(s)


def regenerate():
Expand Down Expand Up @@ -325,7 +328,6 @@ def is_g_lua_function(cursor):
return (
cursor.kind == cindex.CursorKind.FUNCTION_DECL
and cursor.is_definition()
# TODO
and (cursor.spelling.startswith("G_Lua") or cursor.spelling.startswith("_et_"))
)

Expand Down Expand Up @@ -413,7 +415,7 @@ def walk(cursor):
elif name.startswith("_et_"):
register_definition(cursor, DefinitionType.FUNCTION)
else:
pass # TODO - not a function we care about
pass # Non-Lua API symbols under walk(); intentionally ignored.

for child in cursor.get_children():
walk(child)
Expand All @@ -430,7 +432,7 @@ def main(args):
index = cindex.Index.create()
tu = index.parse(
path,
# TODO - settle on flags
# Minimal flags for parsing g_lua.c without a full compile_commands.json.
args=[
"-xc",
# assume some features
Expand Down Expand Up @@ -462,6 +464,7 @@ def main(args):


def cli(argv):
global _debug
import argparse

parser = argparse.ArgumentParser(
Expand All @@ -473,12 +476,12 @@ def cli(argv):
parser.add_argument(
"-rt", "--run-tests", action="store_true", help="Run unit tests."
)
# TODO
parser.add_argument(
"-d", "--debug", action="store_true", help="Enable debug logging."
)

args = parser.parse_args(argv)
_debug = bool(args.debug)
if args.run_tests:
from contextlib import contextmanager

Expand Down
3 changes: 1 addition & 2 deletions misc/collect-and-check-gh-build-logs.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ def clean_and_process_file(arch: str, filename: str):
],
)
):
## skip explicitly ignored warnings - TODO fixup for
## Windows
# Match EXPLICITLY_IGNORED_WARNINGS[arch] before counting as pertinent.
# strip timestamp
parts = line.split(sep=" ", maxsplit=1)[1]
# split at 'warning:'
Expand Down
Loading