Capture current mission, AI, map and administration development

Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
2026-10-13 22:52:53 +02:00
parent a951a96edc
commit 6a667d8deb
8104 changed files with 2124945 additions and 2061 deletions
@@ -0,0 +1,5 @@
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c
@@ -329,1 +329,1 @@
- ERR_SelectionStyle.Choice(SCR_ButtonTextComponent.GetButtonText("Random_" + key, GetRootWidget()), saved == "-1");
+ if (ERR_Settings.Randomizable(key)) ERR_SelectionStyle.Choice(SCR_ButtonTextComponent.GetButtonText("Random_" + key, GetRootWidget()), saved == "-1");
@@ -0,0 +1,9 @@
Command: python3 tests/test_admin_menu.py
Exit: 0
PASS: actual menu command routing covers all menu settings, rejects unsupported keys, gates companions, and matches unique authored widgets
PASS: explicit weapon retention buttons use the same ready/authorized server command path
PASS: item editor, preset controls and dynamic item-row layout are structurally valid
PASS: selected choices remain green/red and fully visible when disabled; unselected choices return to neutral
PASS: probability editor and weighted item-row layout have all bound controls
This check exercises menu policy and authored controls. It does not claim native UI rendering or a measured post-fix frame-time improvement.
@@ -0,0 +1,38 @@
SESSION logs_2026-10-13_17-09-54
script.log:167 17:12:12.312 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:168 17:12:13.777 SCRIPT : Reintroduced [welcome voice]: playing startup clip
script.log:11615 17:32:54.830 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:11616 17:32:55.421 SCRIPT : Reintroduced [welcome voice]: download failed (HTTP 0); no retry
script.log:17135 18:07:54.244 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:17136 18:07:55.378 SCRIPT : Reintroduced [welcome voice]: playing startup clip
First UI warning with stack (after voice playback):
script.log:208 17:12:19.127 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_ButtonTextComponent Random_aiDoctrine
script.log:209 17:12:19.127 SCRIPT : -- Stack trace --
script.log:210 17:12:19.127 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
script.log:211 17:12:19.127 SCRIPT : GetButtonText() Scripts/Game/UI/Components/WidgetLibrary/Button/SCR_ButtonTextComponent.c : 134
script.log:212 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_AdminMenu.c : 329
script.log:213 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_ContentMenu.c : 76
script.log:214 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_FactionMenu.c : 76
script.log:215 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c : 172
script.log:216 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c : 61
script.log:217 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c : 144
script.log:218 17:12:19.127 SCRIPT : ReceiveSnapshot() Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c : 80
script.log:219 17:12:19.127 SCRIPT : ERR_AdminSnapshotResponse() Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c : 121
script.log:220 17:12:19.127 SCRIPT : -----------------
Last UI warning:
script.log:9087 17:13:33.183 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_ButtonTextComponent Random_viewDistanceMetres
SESSION logs_2026-10-13_16-39-43
script.log:91 16:40:55.400 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:92 16:40:57.461 SCRIPT : Reintroduced [welcome voice]: playing startup clip
SESSION logs_2026-10-12_18-37-12
script.log:18145 20:04:37.143 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:18146 20:04:38.924 SCRIPT : Reintroduced [welcome voice]: playing startup clip
script.log:18170 20:07:38.866 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:18171 20:07:40.331 SCRIPT : Reintroduced [welcome voice]: playing startup clip
script.log:18239 20:17:17.243 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:18240 20:17:18.441 SCRIPT : Reintroduced [welcome voice]: playing startup clip
script.log:18241 20:20:41.319 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:18242 20:20:42.205 SCRIPT : Reintroduced [welcome voice]: playing startup clip
SESSION logs_2026-10-12_12-07-26
script.log:90 12:08:39.541 SCRIPT : Reintroduced [welcome voice]: downloading startup clip
script.log:91 12:08:41.965 SCRIPT : Reintroduced [welcome voice]: playing startup clip
@@ -0,0 +1,142 @@
{
"scope": "Read-only local client logs; filtered event lines only. No request payloads, endpoints or secrets.",
"limitation": "Download-to-play intervals include async network delivery and preparation; no per-frame client measurements exist in these logs, so intervals do not prove a frame hitch.",
"sessions": [
{
"session": "logs_2026-10-13_17-09-54",
"welcome_events": [
{
"line": 167,
"event": "17:12:12.312 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 168,
"event": "17:12:13.777 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
},
{
"line": 11615,
"event": "17:32:54.830 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 11616,
"event": "17:32:55.421 SCRIPT : Reintroduced [welcome voice]: download failed (HTTP 0); no retry"
},
{
"line": 17135,
"event": "18:07:54.244 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 17136,
"event": "18:07:55.378 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
}
],
"soldier_speech_events": 0,
"performance_rows": 0,
"memory_rows": 9
},
{
"session": "logs_2026-10-13_16-39-43",
"welcome_events": [
{
"line": 91,
"event": "16:40:55.400 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 92,
"event": "16:40:57.461 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
}
],
"soldier_speech_events": 0,
"performance_rows": 0,
"memory_rows": 3
},
{
"session": "logs_2026-10-12_18-37-12",
"welcome_events": [
{
"line": 18145,
"event": "20:04:37.143 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 18146,
"event": "20:04:38.924 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
},
{
"line": 18170,
"event": "20:07:38.866 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 18171,
"event": "20:07:40.331 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
},
{
"line": 18239,
"event": "20:17:17.243 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 18240,
"event": "20:17:18.441 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
},
{
"line": 18241,
"event": "20:20:41.319 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 18242,
"event": "20:20:42.205 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
}
],
"soldier_speech_events": 0,
"performance_rows": 0,
"memory_rows": 9
},
{
"session": "logs_2026-10-12_12-07-26",
"welcome_events": [
{
"line": 90,
"event": "12:08:39.541 SCRIPT : Reintroduced [welcome voice]: downloading startup clip"
},
{
"line": 91,
"event": "12:08:41.965 SCRIPT : Reintroduced [welcome voice]: playing startup clip"
}
],
"soldier_speech_events": 0,
"performance_rows": 0,
"memory_rows": 3
}
],
"admin_ui_warnings": {
"total": 684,
"first": [
208,
"17:12:19.127 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_ButtonTextComponent Random_aiDoctrine"
],
"last": [
9087,
"17:13:33.183 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_ButtonTextComponent Random_viewDistanceMetres"
],
"per_field": {
"aiDoctrine": 38,
"aiShadow": 38,
"motorbikeCount": 38,
"planeAltitudeMetres": 38,
"planeReplacementSeconds": 38,
"planeSectorSeconds": 38,
"fieldCampCount": 38,
"fieldHospitalCount": 38,
"startWeaponCount": 38,
"startMagazineCount": 38,
"objectGuardCount": 38,
"objectGuardEvery": 38,
"objectGuardHQMode": 38,
"hunterSpawnDistanceMetres": 38,
"roadblockCount": 38,
"civilianTrafficCount": 38,
"startMode": 38,
"viewDistanceMetres": 38
},
"cause": "ReceiveSnapshot requests Random_ buttons without checking ERR_Settings.Randomizable(key); OnMenuOpen applies that guard already. All admin pages poll snapshots every two seconds."
}
}