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,9 @@
{
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": false,
"reason": "noncanonical-private-prefix"
}
}
@@ -0,0 +1,4 @@
{
"reason": "compiled",
"exit": -15
}
@@ -0,0 +1 @@
18:05:57.723 SCRIPT : Module: Game; loaded 6726x files; 13510x classes; used 32888K of static memory; defines: "PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: a1321957
@@ -0,0 +1,35 @@
[
"gamescope",
"--backend",
"headless",
"-W",
"1280",
"-H",
"720",
"-w",
"1280",
"-h",
"720",
"-r",
"30",
"--",
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"-addonsDir",
"Z:/tmp/erri-scope-ui-5/addons",
"-addons",
"2528466DE220D91C",
"-profile",
"Z:/tmp/erri-scope-ui-5/profile",
"-errOrdinaryScenario",
"core",
"-noBackend",
"-noSound",
"-noSplash",
"-maxFPS",
"30",
"-logconsole",
"-noThrow",
"-disableCrashReporter"
]
@@ -0,0 +1,7 @@
18:03:15.875 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
18:03:20.650 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
18:04:42.272 SCRIPT : ERR SCOPE PASS: native PSO reticle display created
18:04:45.305 SCRIPT : ERR SCOPE ROOT: exists=1 width=1280 height=720
18:04:46.338 SCRIPT : ERR SCOPE PASS: close restored optic visibility
18:04:46.338 SCRIPT : ERR SCOPE PASS: scope reopened at new zoom with illumination
18:04:50.438 SCRIPT : ERR SCOPE COMPLETE
@@ -0,0 +1,56 @@
modded class ArmaReforgerScripted
{
protected int m_ERRScopeProbeStage;
protected float m_ERRScopeProbeWait;
protected IEntity m_ERRScopeProbeEntity;
protected ref ERR_ObserverScopeDisplay m_ERRScopeProbeDisplay;
override void OnUpdate(BaseWorld world, float timeslice)
{
super.OnUpdate(world, timeslice);
ERR_GameMode mode = ERR_GameMode.Get();
if (!mode || !mode.Active() || m_ERRScopeProbeStage >= 6 || world.GetWorldTime() < m_ERRScopeProbeWait) return;
PlayerController pc = GetPlayerController();
if (!pc || !pc.GetControlledEntity()) return;
if (m_ERRScopeProbeStage == 0)
{
EntitySpawnParams params = new EntitySpawnParams(); params.TransformMode = ETransformMode.WORLD;
params.Transform[3] = GetCameraManager().CurrentCamera().GetOrigin() + "0 0 3";
m_ERRScopeProbeEntity = SpawnEntityPrefabLocal(Resource.Load("{C850A33226B8F9C1}Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et"), world, params);
m_ERRScopeProbeDisplay = new ERR_ObserverScopeDisplay();
m_ERRScopeProbeStage = 1; m_ERRScopeProbeWait = world.GetWorldTime() + 2000; return;
}
SCR_2DOpticsComponent optic = SCR_2DOpticsComponent.Cast(m_ERRScopeProbeEntity.FindComponent(SCR_2DOpticsComponent));
if (m_ERRScopeProbeStage == 1)
{
if (!optic || !m_ERRScopeProbeDisplay.RenderScope(optic, m_ERRScopeProbeEntity, 12, "1 0 0"))
{ Print("ERR SCOPE FAIL: native scope display creation", LogLevel.ERROR); m_ERRScopeProbeStage = 6; return; }
Print("ERR SCOPE PASS: native PSO reticle display created");
m_ERRScopeProbeStage = 2; m_ERRScopeProbeWait = world.GetWorldTime() + 3000; return;
}
if (m_ERRScopeProbeStage == 2)
{
Widget root = m_ERRScopeProbeDisplay.GetRootWidget();
float width, height;
if (root) root.GetScreenSize(width, height);
PrintFormat("ERR SCOPE ROOT: exists=%1 width=%2 height=%3", root != null, width, height);
System.MakeScreenshot("$logs:err-scope-pso");
m_ERRScopeProbeStage = 3; m_ERRScopeProbeWait = world.GetWorldTime() + 1000; return;
}
if (m_ERRScopeProbeStage == 3)
{
m_ERRScopeProbeDisplay.Close();
if ((m_ERRScopeProbeEntity.GetFlags() & EntityFlags.VISIBLE) == 0) Print("ERR SCOPE FAIL: visibility restore", LogLevel.ERROR);
else Print("ERR SCOPE PASS: close restored optic visibility");
if (!m_ERRScopeProbeDisplay.RenderScope(optic, m_ERRScopeProbeEntity, 6, "1 0 1")) Print("ERR SCOPE FAIL: scope reopen", LogLevel.ERROR);
else Print("ERR SCOPE PASS: scope reopened at new zoom with illumination");
m_ERRScopeProbeStage = 4; m_ERRScopeProbeWait = world.GetWorldTime() + 3000; return;
}
if (m_ERRScopeProbeStage == 4)
{
System.MakeScreenshot("$logs:err-scope-zoom");
m_ERRScopeProbeStage = 5; m_ERRScopeProbeWait = world.GetWorldTime() + 1000; return;
}
m_ERRScopeProbeDisplay.Close(); delete m_ERRScopeProbeEntity; m_ERRScopeProbeDisplay = null;
Print("ERR SCOPE COMPLETE"); m_ERRScopeProbeStage = 6;
}
}
@@ -0,0 +1,42 @@
{
"engine": "1.8.0.13",
"native_scope": "Hidden local renderer probe with a spawned vanilla PSO optic. No real remote soldier or ADS control; supplied display FOV and illumination. Scene camera was not zoomed by the fixture.",
"checks": [
"PSO display created",
"root retained across frames, 1280x720",
"optic visibility restored on close",
"display reopened with changed FOV and illumination",
"normal and illuminated screenshots visually inspected",
"private client cleaned up"
],
"script_errors": 0,
"offline_programs": [
"test_observer_scope.py",
"test_observer_view_buffer.py",
"test_observer_view_relay.py",
"test_observer_head_visibility.py",
"test_observer_ownership.py",
"test_participant_selection.py",
"test_spectator_recovery.py",
"test_spectator_guidance.py"
],
"limits": [
"No real multiplayer scope aim/zoom/zeroing validation",
"No support claim for optics outside SCR_2DOpticsComponent inheritance",
"Fullscreen 2D spectator scope; not native PiP lens parity",
"Native scene resource warnings are not claimed resolved"
],
"visual_source_delta": "Final production adds WidgetFlags.IGNORE_CURSOR to the same tested root; separately native-compiled afterward.",
"production_sha256": {
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "1f6638fa15b41584796e3bf148bd9966f05551259489738ce215d91641f1c229",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "040f26b36b54400d517fd5f470e532e3f9a53c96891c13e16e6c8e8e3ac6785a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "3a4d20d1b42e40d6831b2ce2d85348f57a16a77c06fd936e32f1aa69f31cccfb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "057d8668a7dd773fec874f1050cbd4e5f1e2da7cb2af914a5553f5b3ae5fcaa2"
},
"visual_snapshot_sha256": {
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "1f6638fa15b41584796e3bf148bd9966f05551259489738ce215d91641f1c229",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "040f26b36b54400d517fd5f470e532e3f9a53c96891c13e16e6c8e8e3ac6785a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "bdc578fde01003697d410d1e3c5e9ad94aafd2e4661b8811ae98fe89d54766de",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "057d8668a7dd773fec874f1050cbd4e5f1e2da7cb2af914a5553f5b3ae5fcaa2"
}
}
@@ -0,0 +1 @@
{"reason": "complete"}
Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 KiB