From c93441998f1b84edbce8a8645f0524f8a8e48d7d Mon Sep 17 00:00:00 2001 From: sprunk Date: Thu, 6 Aug 2026 12:58:07 +0200 Subject: [PATCH 1/2] Team docs: remove references to Java --- doc/site/content/articles/team-terminology.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/site/content/articles/team-terminology.markdown b/doc/site/content/articles/team-terminology.markdown index 1108f8610b3..40b71271535 100644 --- a/doc/site/content/articles/team-terminology.markdown +++ b/doc/site/content/articles/team-terminology.markdown @@ -70,7 +70,7 @@ A "skirmish" AI is hosted by one of the players and generally acts very similar It can read the game state via AI interface and works by giving units commands. Strictly speaking, it is their hosting player relaying commands - this means that this type of AI is subject to lag and will drop if the hosting player quits. On the other hand, only the host player is taking on the burden of simulating the AI. -There are currently Skirmish AI bindings for C and Java (though distributing the Java runtime environment for a Java skirmish AI is up to the game). +There are currently Skirmish AI bindings available in C and C++. A game does not need explicit support for this kind of AI (meaning for example, somebody can homebrew one), though it will likely want to handle distribution and infrastructure issues (for example to block homebrew AI). A Lua AI generally has two components: a piece of game mechanics, and the AI instance itself which is just a handle to tell game mechanics which teams are legal to control. From a863df099b943f2c485d52f20a7d48277e7f9027 Mon Sep 17 00:00:00 2001 From: Tom J Nowell Date: Thu, 6 Aug 2026 12:12:00 +0100 Subject: [PATCH 2/2] DemoTool: fix the build after the alternate replay extension change DemoReader.cpp calls IsDemoExtension unconditionally but included its header inside #ifndef TOOLS, and demotool never compiled DemoFileExtension.cpp. The tools build has been broken on every platform since alternate replay extensions landed. demotool is EXCLUDE_FROM_ALL so CI does not catch it. IsDemoExtension already had a TOOLS branch, so the intent was there. Only the config-backed extension list needs excluding, since tools do not link the config subsystem. --- rts/System/LoadSave/DemoFileExtension.cpp | 6 +++++- rts/System/LoadSave/DemoReader.cpp | 3 ++- tools/DemoTool/CMakeLists.txt | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rts/System/LoadSave/DemoFileExtension.cpp b/rts/System/LoadSave/DemoFileExtension.cpp index ee821b169fa..137e0fe404c 100644 --- a/rts/System/LoadSave/DemoFileExtension.cpp +++ b/rts/System/LoadSave/DemoFileExtension.cpp @@ -10,9 +10,12 @@ #include #include "demofile.h" -#include "System/Config/ConfigHandler.h" #include "System/StringUtil.h" +// Tools do not link the config subsystem, and accept any extension anyway. +#ifndef TOOLS +#include "System/Config/ConfigHandler.h" + CONFIG(std::string, DemoFileExtension).defaultValue("sdfz").description("Comma-separated list of replay file extensions. The first entry is used when recording; all entries are accepted when loading. Set by the lobby (e.g. 'barreplay,sdfz' for BAR)."); std::vector GetDemoFileExtensions() @@ -32,6 +35,7 @@ std::vector GetDemoFileExtensions() extensions.emplace_back("sdfz"); return extensions; } +#endif bool IsDemoExtension(const std::string& ext) { diff --git a/rts/System/LoadSave/DemoReader.cpp b/rts/System/LoadSave/DemoReader.cpp index b3b451feb10..997db764af3 100644 --- a/rts/System/LoadSave/DemoReader.cpp +++ b/rts/System/LoadSave/DemoReader.cpp @@ -5,8 +5,9 @@ #include "Game/GameVersion.h" #include "Sim/Misc/GlobalConstants.h" -#ifndef TOOLS #include "DemoFileExtension.h" + +#ifndef TOOLS #include "System/Config/ConfigHandler.h" CONFIG(bool, DisableDemoVersionCheck).defaultValue(false).description("Allow to play every replay file (may crash / cause undefined behaviour in replays)"); #endif diff --git a/tools/DemoTool/CMakeLists.txt b/tools/DemoTool/CMakeLists.txt index fdc47e0461d..02ebbd12b78 100644 --- a/tools/DemoTool/CMakeLists.txt +++ b/tools/DemoTool/CMakeLists.txt @@ -42,6 +42,7 @@ set(demoToolSpringSources ${ENGINE_SRC_ROOT_DIR}/System/Sync/SHA512.cpp ${ENGINE_SRC_ROOT_DIR}/System/StringUtil.cpp ${ENGINE_SRC_ROOT_DIR}/System/Net/RawPacket.cpp + ${ENGINE_SRC_ROOT_DIR}/System/LoadSave/DemoFileExtension.cpp ${ENGINE_SRC_ROOT_DIR}/System/LoadSave/DemoReader.cpp ${ENGINE_SRC_ROOT_DIR}/System/LoadSave/Demo.cpp ${ENGINE_SRC_ROOT_DIR}/System/Log/Backend.cpp