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:
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": {
|
||||
"baseline_sha256": "e73b3654ea115568ab24456d43dfe0c6419d3ccfeaf53e5b7752d31f2950b58d",
|
||||
"retained_sha256": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2"
|
||||
},
|
||||
"tests/test_settings_migration.py": {
|
||||
"baseline_sha256": "5fdfc8815f49f900a1aeda73ec3954cfd767019e702c48c77411dbb7dc016c2f",
|
||||
"retained_sha256": "5a82ba8672b72fb388a95e297d53452e45679ed3b94f5c7d4598455179038aef"
|
||||
},
|
||||
"tools/check.py": {
|
||||
"baseline_sha256": "3e690fd116213ab0f5555db8ad02dae5a58de839af2d132186006e98917ae01b",
|
||||
"retained_sha256": "cd5b41a67db82f54b42745cce99c5bc4cd7f8391a4cb63cfead9621085fb38d4"
|
||||
},
|
||||
"tools/import_settings.py": {
|
||||
"baseline_sha256": "c44490a568893b0076c73423cae09a174ce9c808d83b959987e06af072d38567",
|
||||
"retained_sha256": "8b41ea8fb45e5c3840dad67f9d2494cba5dfa1e0e67d41e334fdd04e515a68a1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,911 @@
|
||||
---------------------------------------------
|
||||
Log Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01\console.log started at 2026-10-01 19:38:01 (2026-10-01 17:38:01 UTC)
|
||||
|
||||
19:38:01.598 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01' to filesystem under name logs
|
||||
19:38:01.598 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-route-20261001-mine-resupply\profile' to filesystem under name profile
|
||||
19:38:01.598 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
|
||||
19:38:01.599 PROFILING : Workbench Create Engine took: 8.045100 ms
|
||||
19:38:02.636 INIT : INIT : Workbench Init Engine
|
||||
19:38:02.636 ENGINE : Initializing engine, version 192142
|
||||
19:38:02.636 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-route-20261001-mine-resupply -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome normal-escape-route -noThrow -disableCrashReporter
|
||||
19:38:02.651 ENGINE : Addon dirs:
|
||||
19:38:02.651 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/'
|
||||
19:38:02.651 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons'
|
||||
19:38:02.651 ENGINE : dir: './addons'
|
||||
19:38:02.651 ENGINE : dir: 'Z:/tmp/erri-route-20261001-mine-resupply/addons'
|
||||
19:38:02.651 ENGINE : Available addons:
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
|
||||
19:38:02.651 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed)
|
||||
19:38:02.651 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed)
|
||||
19:38:02.651 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core
|
||||
19:38:02.652 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_65930CB4CD0237B2/' (pak count: 1) to filesystem under name Parachutes
|
||||
19:38:02.653 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/' (pak count: 1) to filesystem under name WCS_BMP-1
|
||||
19:38:02.654 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/' (pak count: 1) to filesystem under name WCS_SpaceCore
|
||||
19:38:02.656 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/' (pak count: 1) to filesystem under name WCS_Armaments
|
||||
19:38:02.660 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core
|
||||
19:38:02.662 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02
|
||||
19:38:02.668 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01
|
||||
19:38:02.776 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
|
||||
19:38:02.779 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
|
||||
19:38:02.779 ENGINE : CPU vendor : AuthenticAMD
|
||||
19:38:02.779 ENGINE : CPU type : 2
|
||||
19:38:02.779 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
|
||||
19:38:02.779 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
|
||||
19:38:02.779 ENGINE : CPU count logical : 16
|
||||
19:38:02.779 ENGINE : CPU count physical : 8
|
||||
19:38:02.779 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
|
||||
19:38:02.779 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
|
||||
19:38:02.779 RESOURCES : ResourceDB: loading cache (id=1 name=Parachutes path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_65930CB4CD0237B2/resourceDatabase.rdb)
|
||||
19:38:02.780 RESOURCES : ResourceDB: loading cache (id=2 name=WCS_BMP-1 path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/resourceDatabase.rdb)
|
||||
19:38:02.781 RESOURCES : ResourceDB: loading cache (id=3 name=WCS_SpaceCore path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/resourceDatabase.rdb)
|
||||
19:38:02.782 RESOURCES : ResourceDB: loading cache (id=4 name=WCS_Armaments path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/resourceDatabase.rdb)
|
||||
19:38:02.784 RESOURCES : ResourceDB: loading cache (id=5 name=RHS_Core path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb)
|
||||
19:38:02.793 RESOURCES : ResourceDB: loading cache (id=6 name=RHS_Content_02 path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb)
|
||||
19:38:02.795 RESOURCES : ResourceDB: loading cache (id=7 name=RHS_Content_01 path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb)
|
||||
19:38:02.801 RESOURCES : ResourceDB: loading cache (id=8 name=ArmaReforger path=Z:/tmp/erri-route-20261001-mine-resupply/addons/ArmaReforger/resourceDatabase.rdb)
|
||||
19:38:02.935 RESOURCES : ResourceDB: loading cache (id=9 name=core path=./addons/core/resourceDatabase.rdb)
|
||||
19:38:02.937 RESOURCES : ResourceDB: loading cache (id=10 name=profile path=Z:\tmp\erri-route-20261001-mine-resupply\profile/resourceDatabase.rdb)
|
||||
19:38:02.938 RESOURCES : ResourceDB: loading cache (id=11 name=logs path=Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01/resourceDatabase.rdb)
|
||||
19:38:03.090 RESOURCES : RESOURCES : ResourceDB: full scan
|
||||
19:38:03.095 RESOURCES : RESOURCES : scanning...
|
||||
19:38:03.095 RESOURCES : RESOURCES : scanning @"ERR_Core"
|
||||
19:38:03.110 RESOURCES : RESOURCES : scanning @"Parachutes"
|
||||
19:38:03.113 RESOURCES : RESOURCES : scanning @"WCS_BMP-1"
|
||||
19:38:03.116 RESOURCES : RESOURCES : scanning @"WCS_SpaceCore"
|
||||
19:38:03.119 RESOURCES : RESOURCES : scanning @"WCS_Armaments"
|
||||
19:38:03.123 RESOURCES : RESOURCES : scanning @"RHS_Core"
|
||||
19:38:03.135 RESOURCES : RESOURCES : scanning @"RHS_Content_02"
|
||||
19:38:03.138 RESOURCES : RESOURCES : scanning @"RHS_Content_01"
|
||||
19:38:03.146 RESOURCES : RESOURCES : scanning @"ArmaReforger"
|
||||
19:38:03.368 RESOURCES : RESOURCES : scanning @"core"
|
||||
19:38:03.372 RESOURCES : RESOURCES : scanning @"profile"
|
||||
19:38:03.372 RESOURCES : RESOURCES : scanning @"logs"
|
||||
19:38:03.372 RESOURCES : RESOURCES : processing meta-files...
|
||||
19:38:03.439 RESOURCES : RESOURCES : processing files...
|
||||
19:38:03.439 INIT : Workbench startup
|
||||
19:38:03.439 INIT : Workbench Init Engine
|
||||
19:38:03.439 RESOURCES : ResourceDB: full scan
|
||||
19:38:03.439 RESOURCES : processing files...
|
||||
19:38:03.439 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
|
||||
19:38:03.451 RESOURCES : RESOURCES : processing folders...
|
||||
19:38:03.459 RESOURCES : RESOURCES : creating GUID-item mapping...
|
||||
19:38:03.477 RESOURCES : RESOURCES : building tree...
|
||||
19:38:03.538 PROFILING : ResourceDB: full scan took: 448.355600 ms
|
||||
19:38:03.539 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
|
||||
19:38:03.541 RESOURCES : ResourceDB: written 23581/23581 bytes
|
||||
19:38:03.541 RESOURCES : ResourceDB: cache successfully saved
|
||||
19:38:03.541 RESOURCES : ResourceDB: saving cache (id=10 name=profile path=Z:\tmp\erri-route-20261001-mine-resupply\profile/resourceDatabase.rdb)
|
||||
19:38:03.543 RESOURCES : ResourceDB: written 51/51 bytes
|
||||
19:38:03.543 RESOURCES : ResourceDB: cache successfully saved
|
||||
19:38:03.543 RESOURCES : ResourceDB: saving cache (id=11 name=logs path=Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01/resourceDatabase.rdb)
|
||||
19:38:03.544 RESOURCES : ResourceDB: written 208/208 bytes
|
||||
19:38:03.544 RESOURCES : ResourceDB: cache successfully saved
|
||||
19:38:03.544 ENGINE : GameProject load
|
||||
19:38:03.544 ENGINE : Loaded addons:
|
||||
19:38:03.544 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2'
|
||||
19:38:03.544 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
|
||||
19:38:03.547 ENGINE : GameProject load
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
|
||||
19:38:03.548 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
|
||||
19:38:03.548 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
|
||||
19:38:03.549 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
|
||||
19:38:03.549 ENGINE : No Enfusion settings file loaded. Continuing with defaults
|
||||
19:38:03.636 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
|
||||
19:38:03.638 RENDER : Basic screen setup:
|
||||
19:38:03.638 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
|
||||
19:38:03.638 RENDER : MSAA : none
|
||||
19:38:03.647 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
|
||||
19:38:03.647 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
|
||||
19:38:03.647 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
|
||||
19:38:03.647 RENDER : * core clocks 2720 MHz, memory 1124 MHz
|
||||
19:38:03.647 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
|
||||
19:38:03.647 RENDER : AMD AGS correctly initialized
|
||||
19:38:03.648 RENDER : GPU_ATI (0x1002) (AMD Radeon RX 6950 XT (RADV NAVI21)) with 1 GPU detected, VRAM 16128MB (fast 0MB), shared 64362MB, driver version 99.19.02-230831a-396538C-AMD-Software-Adrenalin-Edition
|
||||
19:38:03.648 RENDER : Detected output devices:
|
||||
19:38:03.648 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
|
||||
19:38:03.648 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
|
||||
19:38:03.648 RENDER : Concurrent frames limit 2
|
||||
19:38:03.723 RENDER : DX12 device successfully created by AMD AGS library
|
||||
19:38:03.723 RENDER : * user markers not supported in this version AMD SW
|
||||
19:38:03.723 RENDER : Graphics device features
|
||||
19:38:03.723 RENDER : Needed:
|
||||
19:38:03.723 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
|
||||
19:38:03.723 RENDER : Optional:
|
||||
19:38:03.723 RENDER : * Allow tearing (VSYNC) : 1
|
||||
19:38:03.723 RENDER : * 16 bits : 1
|
||||
19:38:03.723 RENDER : * Resource heap tier : 3
|
||||
19:38:03.723 RENDER : * Persistent heaps (DRED) : 1
|
||||
19:38:03.723 RENDER : * DRED 1.2 is supported by compiler
|
||||
19:38:03.745 RENDER : Main RT format setup.
|
||||
19:38:03.746 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
|
||||
19:38:03.746 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
|
||||
19:38:03.748 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
|
||||
19:38:03.782 PROFILING : Settings changed took: 0.022800 ms
|
||||
19:38:05.859 AUDIO : Endpoint: Speakers (PulseAudio Output)
|
||||
19:38:05.859 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
|
||||
19:38:05.859 AUDIO : Audio client:
|
||||
19:38:05.859 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
|
||||
19:38:05.865 RENDER : RENDER : Reload shaders
|
||||
19:38:05.865 RENDER : Enfusion shader version 13
|
||||
19:38:05.865 INIT : INIT : ShaderListReload
|
||||
19:38:05.865 PROFILING : ShaderListReload took: 0.000500 ms
|
||||
19:38:06.006 AUDIO : Endpoint: Speakers (PulseAudio Output)
|
||||
19:38:06.006 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
|
||||
19:38:06.006 AUDIO : Audio client:
|
||||
19:38:06.006 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
|
||||
19:38:06.147 RENDER : Loaded 3752 newer shader binaries
|
||||
19:38:06.147 PROFILING : Reload shaders took: 282.180900 ms
|
||||
19:38:06.147 ENGINE : Initializing inputs.
|
||||
19:38:06.160 NETWORK : Initializing networking.
|
||||
19:38:06.161 NETWORK : Using new GameRplScheduler.
|
||||
19:38:06.161 SCRIPT : SCRIPT : Initializing scripts
|
||||
19:38:06.161 SCRIPT : SCRIPT : ScriptProjectManager init
|
||||
19:38:07.916 PROFILING : ScriptProjectManager init took: 1754.259700 ms
|
||||
19:38:07.950 PROFILING : Initializing scripts took: 1788.677900 ms
|
||||
19:38:07.967 ENGINE : Enfusion engine successfully created.
|
||||
19:38:07.967 PROFILING : Workbench Init Engine took: 5329.787800 ms
|
||||
19:38:07.967 INIT : INIT : Workbench Create Game
|
||||
19:38:07.979 GUI : Using default language (en_us)
|
||||
19:38:07.979 GUI : Loading 'en_us' localization file.
|
||||
19:38:07.979 INIT : INIT : Loading StringTable
|
||||
19:38:08.005 PROFILING : Loading StringTable took: 25.861600 ms
|
||||
19:38:08.005 SCRIPT : SCRIPT : Compiling GameLib scripts
|
||||
19:38:08.060 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
|
||||
19:38:08.060 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
|
||||
19:38:08.061 PROFILING : Compiling GameLib scripts took: 55.967300 ms
|
||||
19:38:08.061 SCRIPT : SCRIPT : Compiling Game scripts
|
||||
19:38:08.949 INIT : Workbench Create Game
|
||||
19:38:08.949 SCRIPT : Compiling Game scripts
|
||||
19:38:08.949 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
|
||||
19:38:09.834 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:09.847 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
|
||||
19:38:09.882 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
|
||||
19:38:10.040 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.052 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
|
||||
19:38:10.124 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
|
||||
19:38:10.149 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.200 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.228 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
|
||||
19:38:10.617 SCRIPT : Module: WorkbenchGame; loaded 185x files; 656x classes; used 2752K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 198cfb22
|
||||
19:38:10.625 SCRIPT : Module: Game; loaded 6608x files; 13495x classes; used 40829K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS"; CRC32: b0e22a2f
|
||||
19:38:10.675 PROFILING : Compiling Game scripts took: 2613.934800 ms
|
||||
19:38:10.681 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
19:38:10.732 ENGINE : Game successfully created.
|
||||
19:38:10.733 PROFILING : Workbench Create Game took: 2765.863600 ms
|
||||
19:38:10.740 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails
|
||||
19:38:11.606 INIT : INIT : Workbench Reload Game
|
||||
19:38:11.608 ENGINE : Game destroyed.
|
||||
19:38:11.615 GUI : Using default language (en_us)
|
||||
19:38:11.615 GUI : Loading 'en_us' localization file.
|
||||
19:38:11.615 INIT : INIT : Loading StringTable
|
||||
19:38:11.628 PROFILING : Loading StringTable took: 12.841000 ms
|
||||
19:38:11.628 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
19:38:11.638 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
19:38:11.638 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
19:38:11.638 ENGINE : Game successfully created.
|
||||
19:38:11.638 ENGINE : Game successfully initialized.
|
||||
19:38:11.638 PROFILING : Workbench Reload Game took: 31.779200 ms
|
||||
19:38:12.375 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
|
||||
19:38:13.429 PROFILING : Entities load took: 1053.134600 ms
|
||||
19:38:13.439 WORLD : WORLD : CreateEntities
|
||||
19:38:13.443 WORLD : WORLD : NotifyBeforeEntitiesCreated
|
||||
19:38:13.444 PROFILING : NotifyBeforeEntitiesCreated took: 0.002600 ms
|
||||
19:38:13.444 WORLD : WORLD : Wait for preloading data
|
||||
19:38:13.444 PROFILING : Wait for preloading data took: 0.002200 ms
|
||||
19:38:13.551 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
|
||||
19:38:13.551 PROFILING : PROFILING : Terrain load
|
||||
19:38:15.192 PROFILING : Terrain load took: 1640.587300 ms
|
||||
19:38:19.426 WORLD : CreateEntities
|
||||
19:38:19.426 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
|
||||
19:38:19.426 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:38:19.426 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
19:38:29.305 WORLD : WORLD : NotifyBeforeEntitiesInitialized
|
||||
19:38:29.305 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005100 ms
|
||||
19:38:29.775 WORLD : WORLD : NotifyEntitiesInitialized
|
||||
19:38:29.776 TERRAIN : TERRAIN : Initializing road networks...
|
||||
19:38:29.778 PROFILING : Initializing road networks... took: 2.457400 ms
|
||||
19:38:29.778 PROFILING : NotifyEntitiesInitialized took: 2.929600 ms
|
||||
19:38:29.779 PROFILING : CreateEntities took: 16340.439300 ms
|
||||
19:38:29.989 PROFILING : * WorldEditor: LoadWorld: 17619.539100 ms
|
||||
19:38:31.480 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf)
|
||||
19:38:31.480 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf)
|
||||
19:38:31.481 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'...
|
||||
19:38:31.481 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping...
|
||||
19:38:31.571 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
|
||||
19:38:31.595 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
|
||||
19:38:31.617 BACKEND : Attempting online Game Config instead.
|
||||
19:38:34.491 INIT : INIT : Workbench Reload Game
|
||||
19:38:34.493 ENGINE : Game destroyed.
|
||||
19:38:34.499 GUI : Using default language (en_us)
|
||||
19:38:34.499 GUI : Loading 'en_us' localization file.
|
||||
19:38:34.500 INIT : INIT : Loading StringTable
|
||||
19:38:34.522 PROFILING : Loading StringTable took: 21.670500 ms
|
||||
19:38:34.522 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
19:38:34.530 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
19:38:34.530 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
19:38:34.530 ENGINE : Game successfully created.
|
||||
19:38:34.530 ENGINE : Game successfully initialized.
|
||||
19:38:34.530 PROFILING : Workbench Reload Game took: 39.531300 ms
|
||||
19:38:34.532 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
|
||||
19:38:34.577 PLATFORM : Save data from container 'settings' have been loaded
|
||||
19:38:34.731 PLATFORM : Save data from container 'sessions' have been loaded
|
||||
19:38:34.766 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'.
|
||||
19:38:34.774 WORLD : WORLD : Game::LoadEntities
|
||||
19:38:34.774 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf"
|
||||
19:38:34.775 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
|
||||
19:38:34.775 WORLD : WORLD : CreateEntities
|
||||
19:38:34.775 WORLD : WORLD : CreateEntities
|
||||
19:38:34.775 WORLD : WORLD : NotifyBeforeEntitiesCreated
|
||||
19:38:34.781 RESOURCES : Loaded mission headers from 10 addon(s)!
|
||||
19:38:34.781 PROFILING : NotifyBeforeEntitiesCreated took: 6.101600 ms
|
||||
19:38:34.781 WORLD : WORLD : Wait for preloading data
|
||||
19:38:34.781 PROFILING : Wait for preloading data took: 0.000600 ms
|
||||
19:38:39.150 WORLD : Game::LoadEntities
|
||||
19:38:39.150 WORLD : CreateEntities
|
||||
19:38:39.150 WORLD : CreateEntities
|
||||
19:38:39.150 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
|
||||
19:38:39.150 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:38:39.150 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
|
||||
19:38:45.115 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
|
||||
19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
|
||||
19:38:45.714 WORLD : WORLD : NotifyBeforeEntitiesInitialized
|
||||
19:38:45.714 PROFILING : NotifyBeforeEntitiesInitialized took: 0.043700 ms
|
||||
19:38:47.744 WORLD : InitEntities 'world'
|
||||
19:38:47.744 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
19:38:47.744 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
|
||||
19:38:47.775 WORLD : InitEntities 'world'
|
||||
19:38:47.775 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
19:38:47.775 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
|
||||
19:38:47.776 WORLD : WORLD : NotifyEntitiesInitialized
|
||||
19:38:47.776 TERRAIN : TERRAIN : Initializing road networks...
|
||||
19:38:47.778 PROFILING : Initializing road networks... took: 2.469000 ms
|
||||
19:38:47.778 DEFAULT : DEFAULT : WorldVolumesCollection
|
||||
19:38:47.834 PROFILING : WorldVolumesCollection took: 55.559000 ms
|
||||
19:38:47.834 INIT : INIT : SoundWorldInit
|
||||
19:38:47.849 PROFILING : SoundWorldInit took: 14.680500 ms
|
||||
19:38:47.849 PROFILING : NotifyEntitiesInitialized took: 72.921800 ms
|
||||
19:38:47.849 PROFILING : CreateEntities took: 13072.479600 ms
|
||||
19:38:47.849 PROFILING : CreateEntities took: 13072.622200 ms
|
||||
19:38:47.849 WORLD : WORLD : Wait for preloading data around camera
|
||||
19:38:47.849 PROFILING : Wait for preloading data around camera took: 0.000700 ms
|
||||
19:38:47.849 WORLD : WORLD : EOnActivate
|
||||
19:38:47.883 PROFILING : EOnActivate took: 32.967100 ms
|
||||
19:38:47.883 PROFILING : Game::LoadEntities took: 13108.400100 ms
|
||||
19:38:48.234 DEFAULT : Entered offline game state.
|
||||
19:38:52.071 SCRIPT : Map load time: 2285ms
|
||||
19:38:52.072 NETWORK : Player connected: connectionID=2147483646
|
||||
19:38:52.072 NETWORK : ### Connecting player: connectionID=2147483646, Name=
|
||||
19:38:52.073 NETWORK : ### Creating player: PlayerId=1, Name=jakub
|
||||
19:38:52.075 RESOURCES : GetResourceObject @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.075 WORLD : Entity prefab load @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.075 RESOURCES : GetResourceObject @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
19:38:52.076 WORLD : Entity prefab load @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
19:38:52.076 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)
|
||||
19:38:52.076 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)
|
||||
19:38:52.078 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.079 ENTITY : Create entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
|
||||
19:38:52.079 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
|
||||
19:38:52.081 SCRIPT (W): Can't open config file ""
|
||||
19:38:52.087 WORLD : InitEntities 'world'
|
||||
19:38:52.087 ENTITY : Init entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.087 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
|
||||
19:38:52.087 SCRIPT (W): Slot_WeaponInfo Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_AvailableActions Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Vehicle Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Hints Has no Content!
|
||||
19:38:52.100 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
19:38:52.101 ENTITY : Create entity @"ENTITY:4611686018427388388" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
|
||||
19:38:52.101 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.102 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.105 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000
|
||||
19:38:52.105 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
|
||||
19:38:52.106 NETWORK : Players connecting: 0
|
||||
19:38:52.106 NETWORK : Players connected: 1 / 1
|
||||
19:38:52.131 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves
|
||||
19:38:52.133 PROFILING : Workbench startup took: 50588.135600 ms
|
||||
19:38:52.235 WORLD : Frame start
|
||||
19:38:52.235 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
|
||||
19:38:52.248 WORLD : UpdateEntities
|
||||
19:38:52.248 WORLD : Frame
|
||||
19:38:52.248 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
|
||||
19:38:52.423 WORLD : UpdateEntities
|
||||
19:38:52.423 WORLD : PostFrame
|
||||
19:38:52.423 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
|
||||
19:38:52.423 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
|
||||
19:38:52.465 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
19:38:52.465 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
19:38:52.465 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
|
||||
19:38:52.466 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
|
||||
19:38:52.603 RENDER : RENDER : ObjectsHeightMap::Build
|
||||
19:38:52.603 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld
|
||||
19:38:52.747 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 143.652700 ms
|
||||
19:38:52.755 PROFILING : ObjectsHeightMap::Build took: 151.085400 ms
|
||||
19:38:53.887 SCRIPT : Co10 Escape Reintroduced factions: players=US enemy=USSR independent=FIA
|
||||
19:38:56.897 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-prison-1 position=<5897.01,79.6035,5647.44> heading=292.806 attempts=1044 fallback=0
|
||||
19:38:57.151 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-radio-1 position=<2587.58,106.895,5659.55> heading=63.5029 attempts=264 fallback=0
|
||||
19:38:57.657 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-1 position=<4774.07,51.9703,5254.85> heading=167.151 attempts=540 fallback=0
|
||||
19:38:59.665 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-2 position=<5316.58,26.344,9364.74> heading=217.558 attempts=2095 fallback=0
|
||||
19:39:00.677 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-3 position=<4521.96,16.1763,10607.7> heading=244.332 attempts=910 fallback=0
|
||||
19:39:00.931 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-4 position=<7281.84,123.829,5261.1> heading=192.97 attempts=308 fallback=0
|
||||
19:39:01.686 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-1 position=<3445.13,110.114,5290.01> heading=196.485 attempts=935 fallback=0
|
||||
19:39:08.741 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-outpost-1 position=<1611.6,62.0513,5852.91> heading=119.041 attempts=7233 fallback=0
|
||||
19:39:10.510 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-2 position=<7610.94,12.2423,8158.45> heading=103.835 attempts=1946 fallback=0
|
||||
19:39:15.550 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-3 position=<4614.99,84.8465,8600.26> heading=153.165 attempts=5277 fallback=0
|
||||
19:39:17.323 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-2 position=<2489.87,10.395,4242.71> heading=108.922 attempts=1953 fallback=0
|
||||
19:39:21.868 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-3 position=<11915.1,19.8313,1890.29> heading=5.80096 attempts=4884 fallback=0
|
||||
19:39:22.624 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-4 position=<5485.04,41.6244,10799.5> heading=66.4034 attempts=760 fallback=0
|
||||
19:39:24.140 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-5 position=<11090.8,35.1422,11563.2> heading=323.909 attempts=1728 fallback=0
|
||||
19:39:24.164 SCRIPT : Reintroduced [sites]: authored everon-prison-1 at <5897.01,79.7562,5647.44>
|
||||
19:39:24.165 SCRIPT : Reintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
|
||||
19:39:24.197 SCRIPT : Reintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
|
||||
19:39:24.199 ENTITY : SpawnEntityPrefab @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
19:39:24.200 ENTITY : Create entity @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <2586.249268 107.224998 5666.706543> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
19:39:24.200 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:39:24.200 DEFAULT (W): BaseRadioComponent does not have any transceiver. (Entity: @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <2586.249268 107.224998 5666.706543> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"). Only printing this message once. There're possibly more nodes with this requirement.
|
||||
19:39:24.203 SCRIPT : Reintroduced [sites]: authored everon-radio-1 at <2587.58,107.218,5659.55>
|
||||
19:39:24.254 ENTITY : SpawnEntityPrefab @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"
|
||||
19:39:24.254 WORLD : InitEntities 'world'
|
||||
19:39:24.254 ENTITY : Init entity @"ENTITY:4611686018427388524" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4800.953125 27.820215 11487.412109> @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"
|
||||
19:39:24.254 DEFAULT (W): No weapon slot index corresponds to the default index on BaseWeaponManagerComponent(0). Either set the default index to -1 or change index value on a slot to be the same as the default one.(@"ENTITY:4611686018427388524" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4800.953125 27.820215 11487.412109> @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et")
|
||||
19:39:24.256 SCRIPT : Reintroduced [sites]: authored everon-extraction-1 at <4800.95,27.8202,11487.4>
|
||||
19:39:24.264 SCRIPT : Reintroduced [sites]: authored everon-medical-1 at <3445.13,110.27,5290.01>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-outpost-1 at <1611.6,62.1857,5852.91>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-1 at <4774.07,52.3357,5254.85>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-2 at <5316.58,26.6913,9364.74>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-3 at <4521.96,16.2563,10607.7>
|
||||
19:39:24.271 SCRIPT : Reintroduced [sites]: authored everon-mortar-4 at <7281.84,124.134,5261.1>
|
||||
19:39:24.276 SCRIPT : Reintroduced [sites]: authored everon-medical-2 at <7610.94,12.4508,8158.45>
|
||||
19:39:24.281 SCRIPT : Reintroduced [sites]: authored everon-medical-3 at <4614.99,85.1584,8600.26>
|
||||
19:39:24.286 SCRIPT : Reintroduced [sites]: authored everon-camp-2 at <2489.87,10.5063,4242.71>
|
||||
19:39:24.292 SCRIPT : Reintroduced [sites]: authored everon-camp-3 at <11915.1,20.0825,1890.29>
|
||||
19:39:24.297 SCRIPT : Reintroduced [sites]: authored everon-camp-4 at <5485.04,41.8905,10799.5>
|
||||
19:39:24.302 SCRIPT : Reintroduced [sites]: authored everon-camp-5 at <11090.8,35.5693,11563.2>
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4800.95,27.8202,11487.4> up=1
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:24.302 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4800.95,28.1168,11489.7>
|
||||
19:39:24.303 SCRIPT : ERR GEAR TERRAIN: bottom=<4800.95,27.8168,11489.7> terrainY=27.7202 tireTerrainGap=0.0965805
|
||||
19:39:24.303 SCRIPT : ERR GEAR SUPPORT: center=<4800.95,28.1168,11489.7> radius=0.3 bottom=<4800.95,27.8168,11489.7> fraction=0.893554 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.0965824
|
||||
19:39:24.303 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.68,28.585,11485.4>
|
||||
19:39:24.303 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.68,28.135,11485.4> terrainY=27.8121 tireTerrainGap=0.322891
|
||||
19:39:24.303 SCRIPT : ERR GEAR SUPPORT: center=<4798.68,28.585,11485.4> radius=0.45 bottom=<4798.68,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
19:39:24.303 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.23,28.585,11485.4>
|
||||
19:39:24.304 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.23,28.135,11485.4> terrainY=27.649 tireTerrainGap=0.485987
|
||||
19:39:24.304 SCRIPT : ERR GEAR SUPPORT: center=<4803.23,28.585,11485.4> radius=0.45 bottom=<4803.23,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.307 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.307 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.01,27.5393,11487.4> up=0.99779
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.449711 angularSpeed=0.0803937
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:25.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.07,28.0037,11489.6>
|
||||
19:39:25.398 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.07,27.7037,11489.6> terrainY=27.7165 tireTerrainGap=-0.0127983
|
||||
19:39:25.398 SCRIPT : ERR GEAR SUPPORT: center=<4801.07,28.0037,11489.6> radius=0.3 bottom=<4801.07,27.7037,11489.6> fraction=0.396364 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.0128002
|
||||
19:39:25.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.71,28.2496,11485.4>
|
||||
19:39:25.398 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.71,27.7996,11485.4> terrainY=27.8106 tireTerrainGap=-0.0110531
|
||||
19:39:25.398 SCRIPT : ERR GEAR SUPPORT: center=<4798.71,28.2496,11485.4> radius=0.45 bottom=<4798.71,27.7996,11485.4> fraction=0.404249 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.0110645
|
||||
19:39:25.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.26,28.0903,11485.3>
|
||||
19:39:25.399 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.26,27.6403,11485.3> terrainY=27.6482 tireTerrainGap=-0.00791359
|
||||
19:39:25.399 SCRIPT : ERR GEAR SUPPORT: center=<4803.26,28.0903,11485.3> radius=0.45 bottom=<4803.26,27.6403,11485.3> fraction=0.418569 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.0079155
|
||||
19:39:25.399 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:25.650 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.03,27.5982,11487.4> up=0.996374
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.169109 angularSpeed=0.043174
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:26.412 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.09,28.0202,11489.6>
|
||||
19:39:26.412 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.09,27.7202,11489.6> terrainY=27.716 tireTerrainGap=0.00421906
|
||||
19:39:26.413 SCRIPT : ERR GEAR SUPPORT: center=<4801.09,28.0202,11489.6> radius=0.3 bottom=<4801.09,27.7202,11489.6> fraction=0.473735 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00422287
|
||||
19:39:26.413 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.73,28.259,11485.4>
|
||||
19:39:26.413 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.73,27.809,11485.4> terrainY=27.8093 tireTerrainGap=-0.00028038
|
||||
19:39:26.413 SCRIPT : ERR GEAR SUPPORT: center=<4798.73,28.259,11485.4> radius=0.45 bottom=<4798.73,27.809,11485.4> fraction=0.453201 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.000295639
|
||||
19:39:26.413 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.28,28.0976,11485.3>
|
||||
19:39:26.413 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.28,27.6476,11485.3> terrainY=27.6474 tireTerrainGap=0.000162125
|
||||
19:39:26.413 SCRIPT : ERR GEAR SUPPORT: center=<4803.28,28.0976,11485.3> radius=0.45 bottom=<4803.28,27.6476,11485.3> fraction=0.455277 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.000160217
|
||||
19:39:26.414 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:26.668 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.918 SCRIPT : Reintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
|
||||
19:39:27.172 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.172 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.173 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.173 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.07,27.5884,11487.4> up=0.996176
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0697158 angularSpeed=0.0592193
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:27.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.15,28.0148,11489.6>
|
||||
19:39:27.424 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.15,27.7148,11489.6> terrainY=27.714 tireTerrainGap=0.00075531
|
||||
19:39:27.424 SCRIPT : ERR GEAR SUPPORT: center=<4801.15,28.0148,11489.6> radius=0.3 bottom=<4801.15,27.7148,11489.6> fraction=0.457983 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.000757217
|
||||
19:39:27.424 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.77,28.2551,11485.4>
|
||||
19:39:27.424 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.77,27.8051,11485.4> terrainY=27.8079 tireTerrainGap=-0.00281715
|
||||
19:39:27.424 SCRIPT : ERR GEAR SUPPORT: center=<4798.77,28.2551,11485.4> radius=0.45 bottom=<4798.77,27.8051,11485.4> fraction=0.441675 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00283051
|
||||
19:39:27.424 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.31,28.0933,11485.3>
|
||||
19:39:27.425 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.31,27.6433,11485.3> terrainY=27.6464 tireTerrainGap=-0.00308228
|
||||
19:39:27.425 SCRIPT : ERR GEAR SUPPORT: center=<4803.31,28.0933,11485.3> radius=0.45 bottom=<4803.31,27.6433,11485.3> fraction=0.440566 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00307465
|
||||
19:39:27.425 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:27.674 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.180 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:28.428 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:28.428 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:28.429 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:28.429 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:28.429 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:28.429 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:28.429 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:28.429 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:28.430 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:28.430 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:29.190 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=3 conscious=3 nativeComplete=1
|
||||
19:39:29.190 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.191 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:29.191 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:29.442 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:29.443 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:29.443 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:29.443 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:29.443 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:29.443 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:29.444 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:29.444 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:29.444 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:29.444 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:30.523 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:30.523 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:30.523 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:30.523 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:30.523 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:30.523 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:30.524 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:30.524 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:30.524 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:30.524 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:30.524 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:31.546 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:31.547 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:31.547 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:31.547 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:31.547 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:31.547 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:31.547 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:31.548 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:31.548 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:31.548 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:31.548 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:31.548 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:31.548 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:31.549 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:31.549 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.550 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.550 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:32.050 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:32.050 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
19:39:32.051 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.051 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.555 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:32.556 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:32.556 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:32.556 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:32.556 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:32.557 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:32.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:32.557 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:32.557 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:32.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:32.557 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:32.558 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:32.558 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:32.558 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
19:39:32.558 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.559 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.559 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
19:39:33.062 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:33.063 SCRIPT : Reintroduced [sites]: transport parking=<6150,202.725,7038> radius=4 terrainRange=0.625 obstructed=0 clear=1
|
||||
19:39:33.109 SCRIPT : Reintroduced [sites]: 16 sites and 230 physical stock items ready
|
||||
19:39:33.114 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=1 position=<8847.63,259.109,1420.75> heading=135
|
||||
19:39:33.565 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=2 position=<8853.49,125.11,4971.64> heading=90
|
||||
19:39:34.325 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=3 position=<9612.94,85.8751,400.795> heading=90
|
||||
19:39:34.576 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=4 position=<9718.08,252.226,2959.86> heading=180
|
||||
19:39:35.588 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=5 position=<7808.33,193.994,4389.59> heading=45
|
||||
19:39:35.591 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=6 position=<10698,231.366,2505.55> heading=180
|
||||
19:39:36.353 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=7 position=<6785.83,62.1974,8545.58> heading=180
|
||||
19:39:36.356 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=8 position=<8459.9,235.402,2462.19> heading=45
|
||||
19:39:36.857 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=9 position=<5777.41,183.007,7586.17> heading=315
|
||||
19:39:37.365 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=10 position=<2610.25,59.1043,4619.28> heading=135
|
||||
19:39:48.243 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-1 faction=USSR group=<0x00000001E66FA3C0> SCR_AIGroup position=<8847.63,259.137,1420.75> living=1
|
||||
19:39:48.243 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8847.63,259.109,1420.75> backpack magazines=40
|
||||
19:39:48.746 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-2 faction=USSR group=<0x00000001E66FAC40> SCR_AIGroup position=<8853.49,125.01,4971.64> living=1
|
||||
19:39:48.746 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8853.49,125.11,4971.64> backpack magazines=40
|
||||
19:39:48.747 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-3 faction=USSR group=<0x00000001E66FB4C0> SCR_AIGroup position=<9612.94,85.7751,400.795> living=1
|
||||
19:39:48.747 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9612.94,85.8751,400.795> backpack magazines=40
|
||||
19:39:49.249 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-4 faction=USSR group=<0x00000001E66FDF40> SCR_AIGroup position=<9718.08,252.25,2959.86> living=1
|
||||
19:39:49.250 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9718.08,252.226,2959.86> backpack magazines=40
|
||||
19:39:49.250 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-5 faction=USSR group=<0x00000001E66FE7C0> SCR_AIGroup position=<7808.33,193.894,4389.59> living=1
|
||||
19:39:49.250 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<7808.33,193.994,4389.59> backpack magazines=40
|
||||
19:39:49.761 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-6 faction=USSR group=<0x00000001E8B2DBE0> SCR_AIGroup position=<10698,231.266,2505.55> living=1
|
||||
19:39:49.761 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10698,231.366,2505.55> backpack magazines=40
|
||||
19:39:49.762 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-7 faction=USSR group=<0x00000001E8B2E460> SCR_AIGroup position=<6785.83,62.1327,8545.58> living=1
|
||||
19:39:49.762 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<6785.83,62.1974,8545.58> backpack magazines=40
|
||||
19:39:50.268 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-8 faction=USSR group=<0x00000001E8B32CA0> SCR_AIGroup position=<8459.9,236.451,2462.19> living=1
|
||||
19:39:50.269 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8459.9,235.402,2462.19> backpack magazines=40
|
||||
19:39:50.269 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-9 faction=USSR group=<0x00000001E949F120> SCR_AIGroup position=<5777.41,182.907,7586.17> living=1
|
||||
19:39:50.270 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5777.41,183.007,7586.17> backpack magazines=40
|
||||
19:39:50.773 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-10 faction=USSR group=<0x00000001E94A3520> SCR_AIGroup position=<2610.25,59.0043,4619.28> living=1
|
||||
19:39:50.773 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<2610.25,59.1043,4619.28> backpack magazines=40
|
||||
19:39:50.773 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-1 location=<4774.07,52.3357,5254.85> authored=<4774.07,51.9703,5254.85>
|
||||
19:39:50.784 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-2 location=<5316.58,26.6913,9364.74> authored=<5316.58,26.344,9364.74>
|
||||
19:39:50.787 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-3 location=<4521.96,16.2563,10607.7> authored=<4521.96,16.1763,10607.7>
|
||||
19:39:50.789 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-4 location=<7281.84,124.134,5261.1> authored=<7281.84,123.829,5261.1>
|
||||
19:39:50.795 SCRIPT : Reintroduced [environment]: date=authored weather=authored
|
||||
19:39:50.795 SCRIPT : Reintroduced [time]: started at 14:00 with 1x progression
|
||||
19:39:50.796 SCRIPT : Reintroduced [mission]: phase 0 -> 1
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<5897.01,79.6035,5647.44>
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: gate candidate raw= resolved={67F17696FF278AE0}Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et lock=1 door=1 position=<5902.24,79.6035,5644.53>
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: one intact successor lock in owned prison
|
||||
19:39:51.117 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
|
||||
19:39:51.137 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
19:39:51.138 SCRIPT : Reintroduced [spawn scene]: client token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
19:39:51.214 SCRIPT : Reintroduced [spawn scene]: client token=1 final=0 all 67 objects and 28 storage items ready
|
||||
19:39:51.214 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=0 storage acknowledged after 102.129ms
|
||||
19:39:51.222 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 scene ready after 110.016ms; starting asset preload
|
||||
19:39:51.477 SCRIPT : ERR SMOKE PASS: native spawn preload retains preparation text after server sites are ready
|
||||
19:39:52.224 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 preload finished; verifying held storage
|
||||
19:39:52.775 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-prison-1 faction=USSR group=<0x0000000144762200> SCR_AIGroup position=<5910.58,80.045,5679.7> living=3
|
||||
19:39:52.775 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-supply-1 faction=FIA group=<0x00000001D15C0B60> SCR_AIGroup position=<6168,202.217,7050> living=5
|
||||
19:39:52.776 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-radio-1 faction=USSR group=<0x00000001D15C13E0> SCR_AIGroup position=<2600.97,106.969,5632.7> living=6
|
||||
19:39:52.777 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-extraction-1 faction=USSR group=<0x00000001B203EBA0> SCR_AIGroup position=<4830.95,28.2904,11487.4> living=6
|
||||
19:39:52.777 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1 faction=USSR group=<0x00000001B203FCA0> SCR_AIGroup position=<3433.63,110.185,5293.41> living=4
|
||||
19:39:52.778 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1-responders faction=USSR group=<0x00000001B2040520> SCR_AIGroup position=<3456.64,110.165,5286.6> living=2
|
||||
19:39:52.778 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1 faction=USSR group=<0x00000001B2041620> SCR_AIGroup position=<1605.77,62.3585,5842.42> living=4
|
||||
19:39:52.779 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1-responders faction=USSR group=<0x00000001B2041EA0> SCR_AIGroup position=<1617.42,62.0312,5863.41> living=2
|
||||
19:39:52.779 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2 faction=USSR group=<0x00000001B203F420> SCR_AIGroup position=<7608.07,12.3552,8146.8> living=4
|
||||
19:39:52.780 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2-responders faction=USSR group=<0x00000001B2042B60> SCR_AIGroup position=<7613.81,12.9284,8170.1> living=2
|
||||
19:39:52.780 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3 faction=USSR group=<0x00000001B2043C60> SCR_AIGroup position=<4604.28,85.1578,8594.85> living=4
|
||||
19:39:52.781 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3-responders faction=USSR group=<0x00000001B20444E0> SCR_AIGroup position=<4625.69,85.1662,8605.68> living=2
|
||||
19:39:52.781 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2 faction=USSR group=<0x00000001D1A42B40> SCR_AIGroup position=<2485.98,10.3955,4231.36> living=4
|
||||
19:39:52.782 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2-responders faction=USSR group=<0x00000001D1A433C0> SCR_AIGroup position=<2493.76,10.5062,4254.06> living=2
|
||||
19:39:52.782 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3 faction=USSR group=<0x00000001D1A444C0> SCR_AIGroup position=<11927.1,19.9088,1889.08> living=4
|
||||
19:39:52.783 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3-responders faction=USSR group=<0x00000001D1A44D40> SCR_AIGroup position=<11903.2,20.1295,1891.51> living=2
|
||||
19:39:52.783 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4 faction=USSR group=<0x00000001D1A45E40> SCR_AIGroup position=<5489.85,41.8017,10788.6> living=4
|
||||
19:39:52.784 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4-responders faction=USSR group=<0x00000001D1A466C0> SCR_AIGroup position=<5480.24,41.8467,10810.5> living=2
|
||||
19:39:52.785 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5 faction=USSR group=<0x00000001D1A47C00> SCR_AIGroup position=<11100.5,35.6612,11570.3> living=4
|
||||
19:39:52.785 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5-responders faction=USSR group=<0x00000001D1A48480> SCR_AIGroup position=<11081.1,35.3011,11556.2> living=2
|
||||
19:39:53.379 SCRIPT : Reintroduced [spawn scene]: client token=1 final=1 all 67 objects and 28 storage items ready
|
||||
19:39:53.380 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=1 storage acknowledged after 2267.84ms
|
||||
19:39:53.389 SCRIPT : Reintroduced [spawn]: player 1 at <5897.81,79.6562,5645.48>
|
||||
19:39:53.389 SCRIPT : Reintroduced [spawn scene]: player=1 retaining 67 objects until leaving the spawn area
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: prisoner admitted only after enabled native spawn preload finishes
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: new identity may enter prison
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from enabled catalog
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
|
||||
19:39:53.523 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
|
||||
19:39:53.526 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
|
||||
19:39:53.528 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
|
||||
19:39:53.529 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: initial prisoner position
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: radio and extraction vehicle exist
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: transport maintenance cache has its original site-owned container
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: transport maintenance cache native inventory exists
|
||||
19:39:53.531 SCRIPT : ERR SMOKE PASS: transport maintenance inventory enumeration remains bounded
|
||||
19:39:53.531 SCRIPT : ERR MAINTENANCE STOCK: repairKit=GenericEntity<0x00000001AC6D8640> @"ENTITY:4611686018427388510" ('GenericEntity','Assets/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.xob') at <6150.000000 203.287506 7050.000000> @"{C09C7C97EFA34909}Prefabs/ERR/Items/EmergencyRepairKit.et" owned=1 supplies=20 capacity=20
|
||||
19:39:53.531 SCRIPT : ERR SMOKE PASS: transport original repair kit contains twenty native supply units
|
||||
19:39:53.531 SCRIPT : ERR MAINTENANCE STOCK: fuelCan=GenericEntity<0x00000001AC6D8850> @"ENTITY:4611686018427388511" ('GenericEntity','Assets/Items/Fuel/Jerrycan_01/Jerrycan_01.xob') at <6150.000000 203.287506 7050.000000> @"{12D5AD21E383B768}Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et" owned=1 litres=5 capacity=20
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport original fuel can contains five litres in its native twenty-litre tank
|
||||
19:39:53.532 SCRIPT : ERR MAINTENANCE STOCK: fuelCan=GenericEntity<0x00000001AC6D8958> @"ENTITY:4611686018427388512" ('GenericEntity','Assets/Items/Fuel/Jerrycan_01/Jerrycan_01.xob') at <6150.000000 203.287506 7050.000000> @"{12D5AD21E383B768}Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et" owned=1 litres=5 capacity=20
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport original fuel can contains five litres in its native twenty-litre tank
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport exactly one repair kit and two distinct original fuel cans are in the cache; consumption untested
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: normal Southern cache holds finite maintenance stock
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal clue-site optional transport attempted once
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal optional transport resolved to owned vehicle or explicit omission
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal Southern transport starts locked
|
||||
19:39:53.533 SCRIPT : ERR NORMAL ROUTE: Southern transport ready at <6149.98,202.648,7038.01>
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: authored gate exposes lock action
|
||||
19:39:53.534 SCRIPT : ERR PRISON AI: checked=78 active=0
|
||||
19:39:53.534 SCRIPT : ERR SMOKE PASS: physical enemies stay inactive until prison lockpick
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: gate low=<5902.17,79.6025,5644.45> high=<5902.88,81.9806,5645.76>
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: child origin=<5897.01,79.6035,5647.44> low=<5897.01,79.6035,5647.44> high=<5897.01,79.6035,5647.44>
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: child origin=<5902.54,82.5535,5645.11> low=<5901.69,82.5309,5643.98> high=<5903.43,83.5029,5646.22>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5902.54,79.6035,5645.11> low=<5902.19,79.6029,5644.41> high=<5902.87,82.078,5645.83>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5902.86,79.6035,5645.76> low=<5902.74,78.8012,5645.71> high=<5904.14,82.5688,5648.58>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5903.71,79.6035,5647.88> low=<5903.59,78.8012,5647.83> high=<5904.99,82.5688,5650.7>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5901.14,79.6035,5641.67> low=<5901.02,78.8012,5641.62> high=<5902.42,82.5688,5644.49>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5900.22,79.6035,5639.58> low=<5900.1,78.8012,5639.54> high=<5901.5,82.5688,5642.4>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5896.57,79.6035,5654.13> low=<5893.76,78.8012,5654.02> high=<5896.62,82.5688,5655.41>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5891.92,79.6035,5643.07> low=<5889.1,78.8012,5642.96> high=<5891.97,82.5688,5644.35>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5899.34,79.6035,5652.97> low=<5896.52,78.8012,5652.85> high=<5899.39,82.5688,5654.25>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5894.69,79.6035,5641.91> low=<5891.87,78.8012,5641.79> high=<5894.74,82.5688,5643.19>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5902.1,79.6035,5651.81> low=<5899.29,78.8012,5651.69> high=<5902.15,82.5688,5653.09>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5897.45,79.6035,5640.75> low=<5894.64,78.8012,5640.63> high=<5897.5,82.5688,5642.03>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5904.87,79.6035,5650.65> low=<5902.05,78.8012,5650.53> high=<5904.92,82.5688,5651.93>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5900.22,79.6035,5639.58> low=<5897.4,78.8012,5639.47> high=<5900.27,82.5688,5640.86>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5892.65,79.6035,5652.53> low=<5892.53,78.8012,5652.48> high=<5893.93,82.5688,5655.35>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5891.48,79.6035,5649.77> low=<5891.37,78.8012,5649.72> high=<5892.76,82.5688,5652.58>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5890.32,79.6035,5647> low=<5890.2,78.8012,5646.95> high=<5891.6,82.5688,5649.82>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5889.16,79.6035,5644.23> low=<5889.04,78.8012,5644.19> high=<5890.44,82.5688,5647.05>
|
||||
19:39:53.537 SCRIPT : ERR SMOKE PASS: lock permits prisoner
|
||||
19:39:53.538 SCRIPT : Reintroduced [mission]: phase 1 -> 2
|
||||
19:39:53.540 SCRIPT : ERR SMOKE PASS: lock action advances mission
|
||||
19:39:53.541 SCRIPT : ERR PRISON AI: checked=78 active=1
|
||||
19:39:53.541 SCRIPT : ERR SMOKE PASS: lockpick reactivates the existing physical enemies
|
||||
19:39:53.541 SCRIPT : ERR SMOKE PASS: two guaranteed physical cache documents
|
||||
19:39:53.544 SCRIPT : ERR SMOKE PASS: test does not rely on random intel
|
||||
19:39:53.547 SCRIPT : ERR SMOKE PASS: isolated test profile defence duration
|
||||
19:39:54.015 SCRIPT : ERR SMOKE PASS: authored cache document recovered into inventory
|
||||
19:39:54.258 SCRIPT : Reintroduced [intel]: player 1 recovered folder; location=everon-radio-1 knowledge=1
|
||||
19:39:55.532 RESOURCES : Screenshot saved to $logs:err-prison.png
|
||||
19:39:57.068 SCRIPT : ERR SMOKE PASS: unlocked gate physically permits passage
|
||||
19:39:57.068 SCRIPT : ERR SMOKE PASS: authored cache document recovered into inventory
|
||||
19:39:57.247 SCRIPT : Reintroduced [intel]: player 1 recovered folder; location=everon-radio-1 knowledge=2
|
||||
19:39:58.296 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-1 faction=USSR group=<0x00000001F1DEE2E0> SCR_AIGroup position=<6645.16,150.78,7717.65> living=3
|
||||
19:40:00.103 SCRIPT : ERR SMOKE PASS: carried intel identifies radio through intel service
|
||||
19:40:00.103 SCRIPT : ERR SMOKE PASS: radio rejects distant player
|
||||
19:40:00.274 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-2 faction=USSR group=<0x00000001F2B52300> SCR_AIGroup position=<5407.82,170.596,6928.65> living=3
|
||||
19:40:01.646 SCRIPT : ERR SMOKE: radio=<2587.58,108.018,5659.55> player=<2589.58,107.125,5659.55>
|
||||
19:40:01.646 SCRIPT : Reintroduced [mission]: phase 2 -> 3
|
||||
19:40:01.648 SCRIPT : ERR SMOKE PASS: identified radio starts defence
|
||||
19:40:02.428 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-3 faction=USSR group=<0x00000001F2D2BB80> SCR_AIGroup position=<6537.27,117.422,5984.61> living=3
|
||||
19:40:02.432 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-1 faction=USSR group=<0x00000001E9C87360> SCR_AIGroup position=<4774.07,52.1732,5258.85> living=4
|
||||
19:40:02.432 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-2 faction=USSR group=<0x00000001E9C888A0> SCR_AIGroup position=<5316.58,26.5404,9368.74> living=4
|
||||
19:40:02.433 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-3 faction=USSR group=<0x00000001E9C89DE0> SCR_AIGroup position=<4521.96,16.1884,10611.7> living=4
|
||||
19:40:02.434 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-4 faction=USSR group=<0x00000001E9FE7250> SCR_AIGroup position=<7281.84,124.145,5265.1> living=4
|
||||
19:40:05.217 SCRIPT : ERR SMOKE PASS: occupied defence timer running
|
||||
19:40:08.261 SCRIPT : ERR SMOKE PASS: leaving area resets defence
|
||||
19:40:27.864 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-0 faction=USSR group=<0x00000001FA94AD20> SCR_AIGroup position=<1572.8,55.7939,5967.82> living=2
|
||||
19:40:27.865 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-1 faction=USSR group=<0x00000001FAB371B0> SCR_AIGroup position=<1607.65,57.6096,5964.7> living=1
|
||||
19:40:27.865 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-2 faction=USSR group=<0x00000001FB3204E0> SCR_AIGroup position=<1642.24,59.402,5959.41> living=1
|
||||
19:40:27.866 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-3 faction=USSR group=<0x00000001FDC24DA0> SCR_AIGroup position=<1675.72,60.3544,5949.43> living=2
|
||||
19:40:27.867 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-4 faction=USSR group=<0x00000001FDC2A2A0> SCR_AIGroup position=<1707.42,59.5963,5934.61> living=3
|
||||
19:40:27.868 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-5 faction=USSR group=<0x00000001FF49D960> SCR_AIGroup position=<1739.62,58.8701,5920.9> living=2
|
||||
19:40:27.869 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-6 faction=USSR group=<0x00000001FB323C20> SCR_AIGroup position=<1642.24,59.402,5959.41> living=7
|
||||
19:40:27.870 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-7 faction=USSR group=<0x00000001FC77AB30> SCR_AIGroup position=<1642.24,59.402,5959.41> living=7
|
||||
19:40:28.871 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport structure={38A8C0CE913C7CEA}Prefabs/Structures/Airport/LightRunway_01/LightRunway_01_blue.et position=<4836.74,28.418,11885>
|
||||
19:40:39.963 SCRIPT : Reintroduced [mission]: phase 3 -> 4
|
||||
19:40:39.965 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport search finished; airports=1
|
||||
19:40:39.965 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport=0 centre=<4788.55,26.6863,11528.9> runway/tower samples=438
|
||||
19:40:42.402 SCRIPT : ERR SMOKE PASS: continuous occupied defence completes
|
||||
19:40:42.402 SCRIPT : ERR SMOKE PASS: boarding extraction vehicle
|
||||
19:40:45.457 SCRIPT : ERR SMOKE PASS: physical extraction occupancy
|
||||
19:40:46.027 SCRIPT : Reintroduced [mission]: phase 4 -> 5
|
||||
19:40:46.028 SCRIPT : ERR SMOKE PASS: scripted escape reaches victory after physical vehicle occupancy
|
||||
19:40:46.028 SCRIPT : ERR SMOKE COMPLETE: terminal=5 lostHelicopterCase=0 playerDeathCase=0
|
||||
19:40:46.391 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME
|
||||
19:40:46.393 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
|
||||
19:40:46.393 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:40:48.635 SCRIPT : ERR RESULT UI: player=1 title=You escaped
|
||||
19:40:48.635 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
|
||||
19:40:48.635 SCRIPT : -- Stack trace --
|
||||
19:40:48.635 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
|
||||
19:40:48.636 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
|
||||
19:40:48.636 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15
|
||||
19:40:48.636 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
|
||||
19:40:48.636 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
|
||||
19:40:48.636 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
|
||||
19:40:48.636 SCRIPT : OnUpdate() Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c : 191
|
||||
19:40:48.636 SCRIPT : -----------------
|
||||
19:40:48.637 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
|
||||
19:40:48.637 SCRIPT : -- Stack trace --
|
||||
19:40:48.637 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
|
||||
19:40:48.637 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
|
||||
19:40:48.637 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21
|
||||
19:40:48.637 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
|
||||
19:40:48.637 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
|
||||
19:40:48.637 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
|
||||
19:40:48.638 SCRIPT : OnUpdate() Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c : 191
|
||||
19:40:48.638 SCRIPT : -----------------
|
||||
19:40:48.639 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
|
||||
19:40:48.639 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:48.639 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:40:48.642 SCRIPT : ERR RESULT UI: player=1 title=You escaped
|
||||
19:40:50.523 RESOURCES : Screenshot saved to $logs:err-result.png
|
||||
@@ -0,0 +1,171 @@
|
||||
---------------------------------------------
|
||||
Log Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01\error.log started at 2026-10-01 19:38:03 (2026-10-01 17:38:03 UTC)
|
||||
|
||||
19:38:03.439 INIT : Workbench startup
|
||||
19:38:03.439 INIT : Workbench Init Engine
|
||||
19:38:03.439 RESOURCES : ResourceDB: full scan
|
||||
19:38:03.439 RESOURCES : processing files...
|
||||
19:38:03.439 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
|
||||
19:38:03.451 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
|
||||
19:38:03.547 ENGINE : GameProject load
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_595F2BF2F44836FB/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_629B2BA37EFFD577/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
|
||||
19:38:03.547 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
|
||||
19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
|
||||
19:38:03.548 INIT : GameProject load project data @"Z:/tmp/erri-route-20261001-mine-resupply/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
|
||||
19:38:03.548 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
|
||||
19:38:08.949 INIT : Workbench Create Game
|
||||
19:38:08.949 SCRIPT : Compiling Game scripts
|
||||
19:38:08.949 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
|
||||
19:38:09.834 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:09.847 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
|
||||
19:38:09.882 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
|
||||
19:38:10.040 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.052 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
|
||||
19:38:10.124 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
|
||||
19:38:10.149 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.200 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.228 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
|
||||
19:38:19.426 WORLD : CreateEntities
|
||||
19:38:19.426 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
|
||||
19:38:19.426 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:38:19.426 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
19:38:34.532 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
|
||||
19:38:39.150 WORLD : Game::LoadEntities
|
||||
19:38:39.150 WORLD : CreateEntities
|
||||
19:38:39.150 WORLD : CreateEntities
|
||||
19:38:39.150 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
|
||||
19:38:39.150 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:38:39.150 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
|
||||
19:38:40.563 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
|
||||
19:38:40.563 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.563 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
|
||||
19:38:40.568 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
|
||||
19:38:40.568 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.568 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
|
||||
19:38:40.572 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
|
||||
19:38:40.572 ENTITY : CreateComponent 'Hierarchy'
|
||||
19:38:40.572 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
|
||||
19:38:45.115 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
|
||||
19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
|
||||
19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
19:38:45.224 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
|
||||
19:38:47.744 WORLD : InitEntities 'world'
|
||||
19:38:47.744 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
19:38:47.744 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
|
||||
19:38:52.075 RESOURCES : GetResourceObject @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.075 WORLD : Entity prefab load @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.075 RESOURCES : GetResourceObject @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
19:38:52.075 WORLD : Entity prefab load @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
19:38:52.076 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)
|
||||
19:38:52.076 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)
|
||||
19:38:52.078 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.079 ENTITY : Create entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
|
||||
19:38:52.079 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
|
||||
19:38:52.081 SCRIPT (W): Can't open config file ""
|
||||
19:38:52.087 WORLD : InitEntities 'world'
|
||||
19:38:52.087 ENTITY : Init entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
19:38:52.087 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
|
||||
19:38:52.087 SCRIPT (W): Slot_WeaponInfo Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_AvailableActions Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Vehicle Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Hints Has no Content!
|
||||
19:38:52.100 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
19:38:52.101 ENTITY : Create entity @"ENTITY:4611686018427388388" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
|
||||
19:38:52.101 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.102 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.105 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
|
||||
19:38:52.423 WORLD : UpdateEntities
|
||||
19:38:52.423 WORLD : PostFrame
|
||||
19:38:52.423 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
|
||||
19:38:52.423 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
|
||||
19:38:52.465 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
19:38:52.465 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
19:38:52.465 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
|
||||
19:38:52.466 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
|
||||
19:39:24.199 ENTITY : SpawnEntityPrefab @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
19:39:24.200 ENTITY : Create entity @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <2586.249268 107.224998 5666.706543> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
19:39:24.200 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
19:39:24.200 DEFAULT (W): BaseRadioComponent does not have any transceiver. (Entity: @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <2586.249268 107.224998 5666.706543> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"). Only printing this message once. There're possibly more nodes with this requirement.
|
||||
19:39:24.254 ENTITY : SpawnEntityPrefab @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"
|
||||
19:39:24.254 WORLD : InitEntities 'world'
|
||||
19:39:24.254 ENTITY : Init entity @"ENTITY:4611686018427388524" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4800.953125 27.820215 11487.412109> @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"
|
||||
19:39:24.254 DEFAULT (W): No weapon slot index corresponds to the default index on BaseWeaponManagerComponent(0). Either set the default index to -1 or change index value on a slot to be the same as the default one.(@"ENTITY:4611686018427388524" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4800.953125 27.820215 11487.412109> @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et")
|
||||
19:40:46.393 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
|
||||
19:40:46.393 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:40:48.635 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
|
||||
19:40:48.637 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
|
||||
19:40:48.639 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
|
||||
19:40:48.639 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:48.639 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
+851
@@ -0,0 +1,851 @@
|
||||
{
|
||||
"1337C0DE5DABBEEF": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF",
|
||||
"title": "RHS: Status Quo - Content Pack 01",
|
||||
"version": "0.16.5208",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
916830,
|
||||
209,
|
||||
1789670354123815627,
|
||||
1789670354123815627
|
||||
],
|
||||
"sha256": "c5d88d82138bc80c95f364075c3a0fc2228f9c15c6230398f3728a13d25b418c"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26917910,
|
||||
335,
|
||||
1789670330884205142,
|
||||
1789670353823807747
|
||||
],
|
||||
"sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc"
|
||||
},
|
||||
"addon.gproj_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917892,
|
||||
362,
|
||||
1789670307618593786,
|
||||
1789670307618593786
|
||||
],
|
||||
"sha256": "17b87e0976ac2da1032f1661a884f6d59b56c00823b2fcfdc2a698ea8bcc92cc"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26917928,
|
||||
1992582478,
|
||||
1789670344310557863,
|
||||
1789670353824807774
|
||||
],
|
||||
"sha256": "e5db31f571782997640a67601ebd3bd6e6615c1548274c71b6ab0cdd794f8bf5"
|
||||
},
|
||||
"data.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917893,
|
||||
232459,
|
||||
1789670307954602617,
|
||||
1789670307954602617
|
||||
],
|
||||
"sha256": "855813254cd72dc87515f4c395e7c7defe4b145ac809a740f81c85ca546b36fe"
|
||||
},
|
||||
"data001.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26917986,
|
||||
1993657251,
|
||||
1789670345496589019,
|
||||
1789670354029813158
|
||||
],
|
||||
"sha256": "2bda9c533834dfa2b8e29f4a2a905c30639dabe250554e1346cf1f5dae3f2db3"
|
||||
},
|
||||
"data001.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917900,
|
||||
349870,
|
||||
1789670308754623642,
|
||||
1789670308754623642
|
||||
],
|
||||
"sha256": "d4ec79f2a5cf03dd44bcc4513199056195dfda3c7a5c6bbfd17b2c709b746cdc"
|
||||
},
|
||||
"data002.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26917956,
|
||||
1992567795,
|
||||
1789670345532589964,
|
||||
1789670353970811608
|
||||
],
|
||||
"sha256": "dfbd716c2a0849910a8058b1f008b8403b8c506fe18c3168d2844383ac02988c"
|
||||
},
|
||||
"data002.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917897,
|
||||
332016,
|
||||
1789670308247610318,
|
||||
1789670308247610318
|
||||
],
|
||||
"sha256": "3de05138d1d635f1ba5bcbd74a0f91028bfd59082f45c740051381bd054404b5"
|
||||
},
|
||||
"data003.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26917964,
|
||||
364877149,
|
||||
1789670333444272402,
|
||||
1789670354017812842
|
||||
],
|
||||
"sha256": "6225936ebc266825bbd1c79e4e0020c9f2fb55c3d3501ed66e72d87436ccd015"
|
||||
},
|
||||
"data003.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917898,
|
||||
96448,
|
||||
1789670308423614944,
|
||||
1789670308423614944
|
||||
],
|
||||
"sha256": "8ca2504191def96715ddd6ee98a8df1e3f0951e5755592801eab662657289dd0"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
911092,
|
||||
8188,
|
||||
1789670354121815574,
|
||||
1789670354121815574
|
||||
],
|
||||
"sha256": "cb4f4296d087ea5fe2e849b0fc960748bfede7ea3071eeb545bd7bd309be6bfb"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26917967,
|
||||
566987,
|
||||
1789670331096210712,
|
||||
1789670354028813131
|
||||
],
|
||||
"sha256": "e8706d6b9bb2474b65f7c588de9fcfad4516bd26dc12e7b6b687e7973a41e7a6"
|
||||
},
|
||||
"resourceDatabase.rdb_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917899,
|
||||
368,
|
||||
1789670308546618176,
|
||||
1789670308546618176
|
||||
],
|
||||
"sha256": "336f9160ad955caa88d286915195699d3ac36f3363391967a178be0fd2ccd914"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26917907,
|
||||
18180,
|
||||
1789670330627887201,
|
||||
1789670353823807747
|
||||
],
|
||||
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
|
||||
},
|
||||
"thumbnail.png_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26917891,
|
||||
366,
|
||||
1789670307490590423,
|
||||
1789670307490590423
|
||||
],
|
||||
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
|
||||
}
|
||||
}
|
||||
},
|
||||
"595F2BF2F44836FB": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB",
|
||||
"title": "RHS: Status Quo",
|
||||
"version": "0.16.5208",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
910012,
|
||||
2789,
|
||||
1789670389999757705,
|
||||
1789670389999757705
|
||||
],
|
||||
"sha256": "0432a068d8d77e34afd10432d1459df1334238e1ec416c896f13b84bae5a3ac5"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26919135,
|
||||
1100,
|
||||
1789670379744488450,
|
||||
1789670389873754397
|
||||
],
|
||||
"sha256": "1b83e9df126db639cfcdb6d5119e65a1581c028becd6c09998143ed527ad0721"
|
||||
},
|
||||
"addon.gproj_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919120,
|
||||
364,
|
||||
1789670378419453659,
|
||||
1789670378419453659
|
||||
],
|
||||
"sha256": "d232c4cfc959267482bbf261eb2e5121c76b6bf7d8893c58c520a763df5ca5f8"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26919141,
|
||||
203378761,
|
||||
1789670389138735100,
|
||||
1789670389946756313
|
||||
],
|
||||
"sha256": "985d0cde7b09ee860086cb386cf624fcfd94b5e82b26af0b33bab83f21d06988"
|
||||
},
|
||||
"data.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919122,
|
||||
1409173,
|
||||
1789670378781463164,
|
||||
1789670378781463164
|
||||
],
|
||||
"sha256": "041c8ebdf035c69aed7c04bb55be839fbdbd7bc8501862dd4939c1d71cdfe8c5"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
902077,
|
||||
12660,
|
||||
1790780651747608053,
|
||||
1790780651747608053
|
||||
],
|
||||
"sha256": "763eb04285ccaa2f64455d7593be3b9feb2453ddd2e1e1b238aa1244a2d59643"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26919132,
|
||||
823768,
|
||||
1789670379822490498,
|
||||
1789670389872754371
|
||||
],
|
||||
"sha256": "25f6405084fd228ff400868b21f033c4c43d44162ce73de562e06d8003b94a49"
|
||||
},
|
||||
"resourceDatabase.rdb_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919119,
|
||||
368,
|
||||
1789670378283450088,
|
||||
1789670378283450088
|
||||
],
|
||||
"sha256": "986f0280a79b0e4ff6d9a3ad60570bebd86ce68869c9f3d5954141f7d5060cb1"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26919138,
|
||||
18180,
|
||||
1789670379618193709,
|
||||
1789670389873754397
|
||||
],
|
||||
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
|
||||
},
|
||||
"thumbnail.png_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919121,
|
||||
366,
|
||||
1789670378550457099,
|
||||
1789670378550457099
|
||||
],
|
||||
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
|
||||
}
|
||||
}
|
||||
},
|
||||
"5E389BB9F58B79A6": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6",
|
||||
"title": "WCS_SpaceCore",
|
||||
"version": "8.2.1",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
919166,
|
||||
197,
|
||||
1789670369327462097,
|
||||
1789670369327462097
|
||||
],
|
||||
"sha256": "4bcd7610056ed1d366e9b6d0600e80c622a1af35caecf5c9ecf2c7b9e2b626f7"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26918585,
|
||||
2957,
|
||||
1789670367793432952,
|
||||
1789670369299906650
|
||||
],
|
||||
"sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34"
|
||||
},
|
||||
"addon.gproj_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918576,
|
||||
364,
|
||||
1789670367178158473,
|
||||
1789670367178158473
|
||||
],
|
||||
"sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26918592,
|
||||
43626712,
|
||||
1789670369105209079,
|
||||
1789670369315214594
|
||||
],
|
||||
"sha256": "80e9810c9b7c873187660d0ddf002a63d1a382e81fc3611baa0ae8fdfff29d3d"
|
||||
},
|
||||
"data.pak_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918578,
|
||||
66352,
|
||||
1789670367560168505,
|
||||
1789670367560168505
|
||||
],
|
||||
"sha256": "6635291a1f1aa9cffdb844e241c36cdc04114574279bab66e21613410f5e5686"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
918678,
|
||||
2338,
|
||||
1789670369325214856,
|
||||
1789670369325214856
|
||||
],
|
||||
"sha256": "dd1c683c086efb292e6cc927bd6522a1ea97ebd454e8148356f66554ebcdd4dc"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26918588,
|
||||
44111,
|
||||
1789670367937178405,
|
||||
1789670369300214199
|
||||
],
|
||||
"sha256": "c4293fef30948a3538751533cc52c9ce449ffada931b47a8fdf1ca48c1618e75"
|
||||
},
|
||||
"resourceDatabase.rdb_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918577,
|
||||
366,
|
||||
1789670367326162360,
|
||||
1789670367326162360
|
||||
],
|
||||
"sha256": "df8cd07ff81263e4108688883b9f20568041f067dbad74402464ec2f88432b69"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26918582,
|
||||
689401,
|
||||
1789670367794174651,
|
||||
1789670369299906650
|
||||
],
|
||||
"sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1"
|
||||
},
|
||||
"thumbnail.png_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918574,
|
||||
368,
|
||||
1789670367051155138,
|
||||
1789670367051155138
|
||||
],
|
||||
"sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000"
|
||||
}
|
||||
}
|
||||
},
|
||||
"5E524E4FEECCA92B": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B",
|
||||
"title": "WCS_BMP-1",
|
||||
"version": "8.2.0",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
918673,
|
||||
193,
|
||||
1789670366131482045,
|
||||
1789670366131482045
|
||||
],
|
||||
"sha256": "92ff4ae6fec8afc679726186f424bb31c9918d182f321afca4696654844e39c7"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26918544,
|
||||
2900,
|
||||
1789670364825147789,
|
||||
1789670366119130662
|
||||
],
|
||||
"sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259"
|
||||
},
|
||||
"addon.gproj_8.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918530,
|
||||
364,
|
||||
1789670364263081920,
|
||||
1789670364263081920
|
||||
],
|
||||
"sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26918541,
|
||||
119808197,
|
||||
1789670365649118318,
|
||||
1789670366115130557
|
||||
],
|
||||
"sha256": "f715ad5fa3de788061a66a3ccd933feead5cc1631507ca63e9061049c538fab6"
|
||||
},
|
||||
"data.pak_8.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918528,
|
||||
25795,
|
||||
1789670364132078479,
|
||||
1789670364132078479
|
||||
],
|
||||
"sha256": "24a7f735e55ccfacc5cdacbb39fb76a6fac294f4cdc47dca0fcb6e3f1919f1e6"
|
||||
},
|
||||
"gallery0_776x436.jpg": {
|
||||
"stat": [
|
||||
46,
|
||||
23106914,
|
||||
64588,
|
||||
1788720671481676966,
|
||||
1788720671481676966
|
||||
],
|
||||
"sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097"
|
||||
},
|
||||
"gallery1_776x436.jpg": {
|
||||
"stat": [
|
||||
46,
|
||||
23106915,
|
||||
47808,
|
||||
1788720671495639547,
|
||||
1788720671495639547
|
||||
],
|
||||
"sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
918496,
|
||||
2928,
|
||||
1789670366129130924,
|
||||
1789670366129130924
|
||||
],
|
||||
"sha256": "ad0f9baa154a250712c94b50c5edcb25200002bdc186d35453b5e8c32c0b6ee5"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26918535,
|
||||
16514,
|
||||
1789670364934099542,
|
||||
1789670366080129638
|
||||
],
|
||||
"sha256": "c65677e8767d92c96c6f35b482350d56e3dccfa026a3c5470b332120990f047c"
|
||||
},
|
||||
"resourceDatabase.rdb_8.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918527,
|
||||
366,
|
||||
1789670364004075117,
|
||||
1789670364004075117
|
||||
],
|
||||
"sha256": "fdc44be4e1523db5965b015a7ea511623399a5fb3548aaaf8b2a4807fc6ade7d"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26918547,
|
||||
708338,
|
||||
1789670364826600016,
|
||||
1789670366119130662
|
||||
],
|
||||
"sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038"
|
||||
},
|
||||
"thumbnail.png_8.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918531,
|
||||
368,
|
||||
1789670364388085202,
|
||||
1789670364388085202
|
||||
],
|
||||
"sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e"
|
||||
}
|
||||
}
|
||||
},
|
||||
"629B2BA37EFFD577": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577",
|
||||
"title": "WCS_Armaments",
|
||||
"version": "8.2.1",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
920134,
|
||||
197,
|
||||
1789670377639162612,
|
||||
1789670377639162612
|
||||
],
|
||||
"sha256": "8e5e6b2fe4099ca90bb4498c9479924e775ca0eac411c8230114143ff1a8297a"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26918715,
|
||||
2926,
|
||||
1789670371305266851,
|
||||
1789670377499241577
|
||||
],
|
||||
"sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1"
|
||||
},
|
||||
"addon.gproj_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918707,
|
||||
364,
|
||||
1789670369590221815,
|
||||
1789670369590221815
|
||||
],
|
||||
"sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26918730,
|
||||
395962643,
|
||||
1789670376182394919,
|
||||
1789670377620432679
|
||||
],
|
||||
"sha256": "84a2cf01e2d17a06f8d775ca542a0cc98739f9f4b75b79826017e1387faedb18"
|
||||
},
|
||||
"data.pak_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918711,
|
||||
214221,
|
||||
1789670370007232766,
|
||||
1789670370007232766
|
||||
],
|
||||
"sha256": "dc3ff832bce708121c61a5dfe09be8504352556c50341f9878f4b457e165ade2"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
919170,
|
||||
2504,
|
||||
1789670377637433125,
|
||||
1789670377637433125
|
||||
],
|
||||
"sha256": "2863bb2bdb586286f8aedc34d5dfb6adbdaafd5fca0f8f21136c7a5351d1ce88"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26918718,
|
||||
141469,
|
||||
1789670371389269057,
|
||||
1789670377499429501
|
||||
],
|
||||
"sha256": "7f38b7ed578b0b47864648a7b70288fe49dae4cc2556d5754377a1c28b2b6532"
|
||||
},
|
||||
"resourceDatabase.rdb_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918708,
|
||||
368,
|
||||
1789670369714225072,
|
||||
1789670369714225072
|
||||
],
|
||||
"sha256": "2ffa1cf6f8c07600147ae779ee3be1ccec8da23cb1c10d8c73e0c5c5d3dc6d06"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26918721,
|
||||
689544,
|
||||
1789670371307273812,
|
||||
1789670377500429528
|
||||
],
|
||||
"sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd"
|
||||
},
|
||||
"thumbnail.png_8.2.1_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26918710,
|
||||
368,
|
||||
1789670369835228249,
|
||||
1789670369835228249
|
||||
],
|
||||
"sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77"
|
||||
}
|
||||
}
|
||||
},
|
||||
"65930CB4CD0237B2": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2",
|
||||
"title": "Parachute Framework",
|
||||
"version": "1.2.0",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
23608865,
|
||||
764,
|
||||
1788881939235881733,
|
||||
1788881939235881733
|
||||
],
|
||||
"sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
23608826,
|
||||
124,
|
||||
1788881938831871187,
|
||||
1788881938831871187
|
||||
],
|
||||
"sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc"
|
||||
},
|
||||
"addon.gproj_1.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
23608818,
|
||||
362,
|
||||
1788881938288857014,
|
||||
1788881938288857014
|
||||
],
|
||||
"sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
23608829,
|
||||
5048302,
|
||||
1788881939131386944,
|
||||
1788881939131386944
|
||||
],
|
||||
"sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042"
|
||||
},
|
||||
"data.pak_1.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
23608820,
|
||||
4696,
|
||||
1788881938426860616,
|
||||
1788881938426860616
|
||||
],
|
||||
"sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
23608819,
|
||||
5088,
|
||||
1788881955440304751,
|
||||
1788881955440304751
|
||||
],
|
||||
"sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
23608835,
|
||||
3188,
|
||||
1788881939082877739,
|
||||
1788881939082877739
|
||||
],
|
||||
"sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4"
|
||||
},
|
||||
"resourceDatabase.rdb_1.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
23608822,
|
||||
364,
|
||||
1788881938690867507,
|
||||
1788881938690867507
|
||||
],
|
||||
"sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
23608832,
|
||||
2255011,
|
||||
1788881939194880662,
|
||||
1788881939194880662
|
||||
],
|
||||
"sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a"
|
||||
},
|
||||
"thumbnail.png_1.2.0_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
23608821,
|
||||
370,
|
||||
1788881938560864114,
|
||||
1788881938560864114
|
||||
],
|
||||
"sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768"
|
||||
}
|
||||
}
|
||||
},
|
||||
"BADC0DEDABBEDA5E": {
|
||||
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E",
|
||||
"title": "RHS: Status Quo - Content Pack 02",
|
||||
"version": "0.16.5208",
|
||||
"files": {
|
||||
"ServerData.json": {
|
||||
"stat": [
|
||||
46,
|
||||
911088,
|
||||
209,
|
||||
1789670428409812415,
|
||||
1789670428409812415
|
||||
],
|
||||
"sha256": "90353d1b4ab072f7844bf24d8066031efd69feb76ddcbf66dea34b52ddfe0a1c"
|
||||
},
|
||||
"addon.gproj": {
|
||||
"stat": [
|
||||
46,
|
||||
26919414,
|
||||
336,
|
||||
1789670399470006320,
|
||||
1789670428369764835
|
||||
],
|
||||
"sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4"
|
||||
},
|
||||
"addon.gproj_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919383,
|
||||
362,
|
||||
1789670390797778656,
|
||||
1789670390797778656
|
||||
],
|
||||
"sha256": "72d988d5881efdf7d8781b2dc978a0243e1a3d587ced56563299855724137232"
|
||||
},
|
||||
"data.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26919411,
|
||||
1992445813,
|
||||
1789670421137575039,
|
||||
1789670428335763943
|
||||
],
|
||||
"sha256": "5b28362571e396c008eb2286dc5a76b4ccf869c0a279916209fb0ef20d6b145e"
|
||||
},
|
||||
"data.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919381,
|
||||
170934,
|
||||
1789670390675775453,
|
||||
1789670390675775453
|
||||
],
|
||||
"sha256": "7cde302270a1e5c3a88517ff8b08a5b50bbe63e7392434d8245542f81b0bfdf8"
|
||||
},
|
||||
"data001.pak": {
|
||||
"stat": [
|
||||
46,
|
||||
26919421,
|
||||
238642257,
|
||||
1789670400589035695,
|
||||
1789670428370764861
|
||||
],
|
||||
"sha256": "fb2aecbde5668c4d431ea74d64f6d15f7a9f608fefe01838d7c85fb0c818499f"
|
||||
},
|
||||
"data001.pak_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919384,
|
||||
29970,
|
||||
1789670390937782332,
|
||||
1789670390937782332
|
||||
],
|
||||
"sha256": "e6fb290c2f9d8dcd0c0ac95c3dee054377a525e00129abc766defa079385d6ea"
|
||||
},
|
||||
"meta": {
|
||||
"stat": [
|
||||
46,
|
||||
910016,
|
||||
7720,
|
||||
1789670428407765832,
|
||||
1789670428407765832
|
||||
],
|
||||
"sha256": "e9ba58307cb931026c5c59654f3b4b7f92ac6e0682a1e94fd2eb1d5b75c214cf"
|
||||
},
|
||||
"resourceDatabase.rdb": {
|
||||
"stat": [
|
||||
46,
|
||||
26919388,
|
||||
111601,
|
||||
1789670399484558966,
|
||||
1789670428260761974
|
||||
],
|
||||
"sha256": "736bcd2e60177e5af99d93c6b5f07ad79a950899aaca23000f33ad405cd1b74e"
|
||||
},
|
||||
"resourceDatabase.rdb_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919379,
|
||||
368,
|
||||
1789670390384767813,
|
||||
1789670390384767813
|
||||
],
|
||||
"sha256": "9a4f54837a83d2acc2bdc62288b62fe7f24876a374f1270d5a5d2a497bb5de8f"
|
||||
},
|
||||
"thumbnail.png": {
|
||||
"stat": [
|
||||
46,
|
||||
26919391,
|
||||
18180,
|
||||
1789670398997629625,
|
||||
1789670428260761974
|
||||
],
|
||||
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
|
||||
},
|
||||
"thumbnail.png_0.16.5208_manifest.json": {
|
||||
"stat": [
|
||||
46,
|
||||
26919380,
|
||||
366,
|
||||
1789670390509771095,
|
||||
1789670390509771095
|
||||
],
|
||||
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+401
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6",
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a",
|
||||
"addons/core/Configs/ERR/AdminMenus.conf": "a7f889f260e43656136fc159342129e5f48748d28c426f65f9faac37b624cf94",
|
||||
"addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1",
|
||||
"addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c",
|
||||
"addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800",
|
||||
"addons/core/Configs/ERR/EveronSites.conf": "b479000b36154a6a3af6b519b086251d981ef63cb86a973d00529499cfd4238c",
|
||||
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
|
||||
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
|
||||
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
|
||||
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
|
||||
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
|
||||
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
|
||||
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
|
||||
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
|
||||
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf": "e898d645911e85b6ba902366cb23890d8bb14bbd2c485102e6d49ea728e9b054",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4",
|
||||
"addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42",
|
||||
"addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0",
|
||||
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
|
||||
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
|
||||
"addons/core/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
|
||||
"addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
|
||||
"addons/core/Missions/ERR_Everon.conf": "936619df7789a6b4b80bd763f702526e1145ab4d5c300516c07e7e70dfe57d92",
|
||||
"addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
|
||||
"addons/core/Missions/ERR_Everon_Base.conf": "b46e1f4aeef383a8dbe7ef2b5c12a55a8111856c52ba103a1e508c01b82dfc61",
|
||||
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02",
|
||||
"addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571",
|
||||
"addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89",
|
||||
"addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50",
|
||||
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
|
||||
"addons/core/Prefabs/ERR/FactionManager.et": "5a7b330f33956cc1781c8dc843e8186f2d37a98653ab36e7c42b9019df3c89f5",
|
||||
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
|
||||
"addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0",
|
||||
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
|
||||
"addons/core/Prefabs/ERR/GameMode.et": "4d3e5e2df28cbb8292c436ae05d4fc7e5ca789a123450a6968d9a718b6ecef20",
|
||||
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
|
||||
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a",
|
||||
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3",
|
||||
"addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656",
|
||||
"addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
|
||||
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14",
|
||||
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
|
||||
"addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74",
|
||||
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
|
||||
"addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4",
|
||||
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
|
||||
"addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91",
|
||||
"addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba",
|
||||
"addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2",
|
||||
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
|
||||
"addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47",
|
||||
"addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe",
|
||||
"addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c",
|
||||
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
|
||||
"addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c",
|
||||
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
|
||||
"addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b",
|
||||
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
|
||||
"addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716",
|
||||
"addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd",
|
||||
"addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715",
|
||||
"addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90",
|
||||
"addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0",
|
||||
"addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08",
|
||||
"addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2",
|
||||
"addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1",
|
||||
"addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8",
|
||||
"addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814",
|
||||
"addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811",
|
||||
"addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012",
|
||||
"addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0",
|
||||
"addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259",
|
||||
"addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607",
|
||||
"addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635",
|
||||
"addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627",
|
||||
"addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da",
|
||||
"addons/core/Prefabs/ERR/SpectatorCamera.et": "cd2dcaca0df4c39816e582c594591a535525ed77827ffa3de24d27b79996544d",
|
||||
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
|
||||
"addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e",
|
||||
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
|
||||
"addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694",
|
||||
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
|
||||
"addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8",
|
||||
"addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeover.et": "6206fe2eb4e2c6c1a9e3ddf2898535ae08981c115adc6ddd926017ac20d4b535",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d",
|
||||
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352",
|
||||
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915",
|
||||
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656",
|
||||
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "980d30964845600a261693cc5c5553e1472e8e54867bdc06133ff5c7b36c9128",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "d39dc876487b445efc5c3fadc19e1e06c6900c5cd57c93a01f35c32aa27d6039",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "c3e008c8bbf538c5bca3a82a975decc7a283a38543a9d2639d90a81ce592c51e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "af8bb43d207d6360ae4dae06c7283a81f89d57a66b644f3f730496b0d47d4a55",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0c2f4d31a2abc8f3f90bda20546543f2a1cf9306e9bf93351dda1883b990770e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "e46988b92243df19a5400eca7406d6969b8b1174d8e3efad48fa0a936cbfdd07",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "e6f22813f7a04e2c0ea000d054407191f2be8badfa6c51e062e9dbf84b95c67b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "ae856e9fa0e19fc35d5c839fc5001bb28ce633eab59710911e7e56057dd452f0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "c82b173496e7524b4570b2afc5493cb970252a19aed740a53011988db7700a01",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "572cc36f88255a37e8f0e9f284fb96e07c6c4032506b34b8c77d688f02785400",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "a97e131bcfc578fe57ec2ed075a2619ff5c4c0b4c12d65c2a92e9fb2b83ce958",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "34458b3a4f7062375c9c5b5599308e9cea67fc4a316420836f6694ca2c646ffc",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "e04c53c2f665997023b2daee744265cd22f4f0101444e4d9b0efbd114f74fa9a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "6e3c65e55b05cf205040c310b9086faa41b88582c7f9faf49c010afd59da5b07",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "3549339d7796e67fc646680493c226e545b6fb95daa0270af9901795bdf8ed50",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "077c09491f4444fc58f093975fe9b3c294ea1fc966abef847ee5f13aa795ee29",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "251d55779509cb76f66938221b4dc8face53e187a82c9f2c651e6b1d13216c27",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4a23058f27e3ab074df6f8f7bb6f08a8fd26fbadb8943c6fb8d64dcc9c221751",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "87a6c19429f12c5630ed73170ca9a8a6d2255d6cd38b130166a78aacd15f2de0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "5b0b058130ccac02bdc1dcd6474d51a6f45da4dd52ed6c37906692fca3f194b1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "ec8d04b6550b39b9688ef67b40cb2f14a9d98c8fff62b6dfb8d4a43e19b4e4c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "85a34cf60018e90d974cb67ab0f358f3073b6b9f02c563ec200e062f1d249e3b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "593e59664dbd7330b52674e5d4cc7b70db588cb75a1259ed808b74602501d541",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "ec319b070bd915d0326b9be1fd3fbc7aabc58956982a2ec69eb24d023a651815",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "421e4b901afe6118b6bf44e8f678db8ccdf1c83b39da0cf816baa36f7275ccdd",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "39035d5fa3d6e29199fab810bd72cc5261a65dc3e668e6ed26ace36e43a7fa8e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "83ab84ca4de7b545963896ed9d14e6545c23a2b940515730d74acc2f6b3dd18d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "3b9c557b249728c518f9d6b5cb24b725ecc32a69ae12df069cdfb0da70a80b95",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "19fc19e22348e6213827f620f4fdb5dc26144ea2ce0032de773e79c1fb155a26",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "816df9a2a9072f9f7db75e56168d8a8fa1e665ee8f7dfa79af011b354254909d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "8d75b35ab977be0cb1a2e3d3d1cb8ef875cdbfba69c35784c3d195451ef944c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7422f79bfa5ecf9b13c37b7ad0cf0b23469ed7059e85462ff96b7704084d29d9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "4b3605522d732c8542a2c1ad5f3f59b3e8e5dc9f4aace71608ec9f259eea8069",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "e353ece5e1f3a6731875d8080c00fa9511446c309ff2a1454911e53c01f536f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "43a406822a0361f916abc363f27e0c578ee94855036981d876bf47c68233c71a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "8709753e86dc2ca777183f08cb8fbb9851e0c0de495ca01520ebcb1b3dfa59b9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "535cf17e21fc8e62716c7d9da88d976ee2f526501c6a4752b822f1252e742bf4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "86f9a7769e3ccb19fc61127fe2fee2ad0dd825487a5cd59f334de8b9741c93cf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "81bf30d358c7b100248be17cbc2e6beb2f107300c939aede8a92d273eb7dae1f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "e73b3654ea115568ab24456d43dfe0c6419d3ccfeaf53e5b7752d31f2950b58d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "2088c45798f0eced702e0abd97550b8d1fc97ebcc34c3d497978b7424f6c670d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "c87a056a1e7cf995cad90302c7591d7b66e2f912f50e5d0cd18302c506264936",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "c949642366ad124dd2abc4111cd598eb94aa257fbae01b6fb3a0f1882a23e83e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "47a39c951be71bfcf1cc50526d507d0f9d8ef2fc09408697b6fe6b0dc5a529e2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "270bf465808d23627a11e720c6632d4fea35d0c679e63aa64046ef8874d68ceb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "2e1f2102e4f30535178ec3dd168d833a0996de87bc3d3b17e059d44ad3129cbd",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "770291e7616daac6dcb0276e234cd1611aa3ecef8d82589c4feb1752fdd2fee4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "694505e69789c7267f70fd0925c5c999f08cf9546e05d5d6ed394cb4eef23964",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "5b7661a5617b7124a10d3c18e087a4e2363a967eecc5c87ecc94573f2abc07f2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "cc4a68484995ad663b112d92b20dbfcae2f549a586ef713fb3ea13353291d1b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "7d5ff3389ee806ac213db5be3a68288b3399142ccc29806df0d65b34a0b2fc3c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "5554994115cd7d56152ac78ba53034bf934b71c5634b17d35e96884dbb3b8a24",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "0b4faaf3d4ee506730de48554100ea3d9443e9cbdfdf354f56dd8b121507b324",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "b5dad011d5a0574a406d6469e0744a9d37700cb41930dada28c5143d556acf53",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "47d9374095d04f5f1339c220caf518a40938ffc20f891b1b51ae38579e7e1c25",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "ca49c274146d56e30cc93fa1652cc34c0fe68ea95725b0b3e33ab3673a6463c4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "4d0e8b6e147486fb65db82a1060f0c5641c1319ba9e418bdec99cb5a422a7fbe",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "e1d5dff5584f1bf12c146df510c860c3e0e046c989ff758def88ecf6b49c6392",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "926f40760e16e39662d9170200c92b28c02f74f74bc888ba2ea4aa1f39d40a84",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "1dbdbedb04eb649b1926f158fb501cd3b4a43582f2e67750670a35e767671928",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "e5470c7973dc04f13d62b8cc1f13c732c0117bd3c838d7a0cb8803a647fccb50",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "759e0a88ff30cb781ee69b8a935865d63ede5b1d97f31d344018f650a967c37f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "e0098577626e719283cf4b40936e7ec038076c4bab9269fbad0b5ad3292e01e3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "b629fecc29711e57f364f2a9c4c3e884b0978d9674311678f2e78b561683681a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "c841c253013fbc4f7af250159af979e17401093679a655c8d8bec67f5d7866f4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "50175929b9633b2806afa16f66bf319edff5fc84eb6bb3c9e8a2cda011d0d62c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "258ad63c9dbf221f2d8402e93feb7b4d51897417954abf477004b5302e819bc3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "8d9668858c47b7e9fee2b12d3ebd4e7cb88146b817cf615c4b0dade26c81b2ec",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "df5d90e914b9623fbbcde174bf6cfb78161db1c4596f2d339ea32ab976666929",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "85e4d2cb27426c07b8631ca411f4b8f5c821f9f331c8c2719cbfa71b3687f08e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "ab6ca0e1a7f36c104e664db06a74c80a528cbfd1de599af42e2194ef0a4f4ca3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "12ea8ba08753d1e6d38b237087c1209cd2f9574b53c3ff0f27c082bed029c9ea",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "0897e82d7805ef56f05f2b9c23903280285ea6bfa51796a2df86bb564ece78f7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "1147904bae6d72e9de47ce17bdada3dab489de4ed6e781dbf15bdbb30599ff6e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "e76af0fbf6f436a9c3c9d4c7b779bc08a78f6fe705c08bf6d9757bbeb65ee8eb",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "0b6275221dab491f148426df05e132579f3acc20de5559226c3b38975618355c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "0769d4e7327439ce91b8f9ed0b47c4d92d382e97a1bbf62da8e6002ae4041bf0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "401a29ec31712d113c203d6975e44aed7bb3166025454f4950a4c7cb6f5ad6eb",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5684fcbee128a35107312452297f7ae2bec28aaa1b63f619fa649f36df8ea476",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "57977eac877d25c8578116d932b7a3707e465c6d1ac74b7d98b9204e1add861f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "a2a042ea1fcd4780b87a481baf00419f7d0320c6bd379f291e59a2da48a07ef5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "f2597d44c10d10de2462aa5e5450a22b8a5ad0eb99bd0cc09a8cf1ca2dd4a350",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "bc290ee8bed299d869598cbf41ec281653e0cc7f3c64c7214613df8a0fc83829",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "7993e38efb81412d3c8efac28f28c9277e96f2a48ebe6694815834896c482588",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "1a764a46bdc0b7e98032b5716a144a1f44343f769be6d2280b0987400227be1e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "a58f57530e333976dc96fc5a0f9cb6cf0cb069c55788824950c5fb2f965d8e26",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "ade130f49fc9d868281cee7fde383f084f70ed8d4b876dacebbaed8538e84999",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "684bc5b9858c7ed90ed2ca6d52fc0e731a7e37a116db776090257b72a63621ab",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "4966dad504b3f8f28a9ffc8ac17cc548b00066fe05213c49c662ea56de34c9d4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "827550ab1b3fd749414f064d20849e23b4ff0ac2d39585cc8d4388df581ca6f4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "dca3fc09fc11cbc719eed38edaf9b141ba86f440b4c5c28579699fbb296d0b6c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "78e6b60596189dfe1ee64c9471c62aae5c494ebd9942cb11520babab7c01873c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "a7b46253e1bb37cea7c29bb557fbf43ca207022d0f1cc927349441b2d1615279",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "57f862476751087972fc78d0b27ab44e72361e27d32f15d55f9fe7fd7d6bd0e0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "d63ab5c547021aeb61d398b8a773afeedee4662d3ce15d9fd9d0e9e37262f8b7",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "62f2c408383f410782d9d41fa50acd6bd8cf66eeb80d2b79f91852b9d2cf8d97",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "6bbf8d3b83e2c09fd9a23a9a5e5e11d7c29af2e618116bee613562fc45af2b33",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "822a526af8814264ee45da21b675466abfece86aa573744ee78692bdd1f1bc66",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "45a40e5cc877c4bbcd23ed3219b24a9a329cfed09688ec39fbe9ccdbed1046a4",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "d8fec6c138bb0f5bdbf99ee82ffc3ac9b44d1045d8833da63f8aa5f39beeb7e5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "6893672e2667e72654a6c4161d419bd28c7a600404643c61ae745867b41bcab0",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "ce93ef51b907cac2401c5769ef5dcc89bfea79d7547873c09dfa86d14f285c64",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "701311de6a2c9fe8f0534a22056323c34072df26595dc70a7d4df45bc06e6c13",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65",
|
||||
"addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "f567518b54f43b88747df2838cdfd6ebb34605c0919a3e7d271d28dd8b67a9b6",
|
||||
"addons/core/UI/layouts/ERR/AdminMenu.layout": "997e4f33660de5bb54c2939898cacc8857736a73db2c6919888ae0e762050e5c",
|
||||
"addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf",
|
||||
"addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca",
|
||||
"addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08",
|
||||
"addons/core/UI/layouts/ERR/ContentRow.layout": "62d2c95814c99d906266fa96c6112e04a7fab1667e1a05e558d1d3974adc2d76",
|
||||
"addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
|
||||
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
|
||||
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
|
||||
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175",
|
||||
"addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4"
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"launch_id": "27e6e4bf-af2f-4def-bf87-d1b6b4fc03ab",
|
||||
"captured_unix": 1790876279.9598477,
|
||||
"source_root": "/home/jakub/devel/escapistsrereintroduced",
|
||||
"command": [
|
||||
"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 Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe",
|
||||
"-gproj",
|
||||
"Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj",
|
||||
"-addonsDir",
|
||||
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
|
||||
"-profile",
|
||||
"Z:/tmp/erri-route-20261001-mine-resupply",
|
||||
"-logconsole",
|
||||
"-wbModule=WorldEditor",
|
||||
"-load",
|
||||
"Worlds/ERR_Everon.ent",
|
||||
"-plugin=ERR_ValidateWorldPlugin",
|
||||
"-errPlay",
|
||||
"1",
|
||||
"-errSmoke",
|
||||
"1",
|
||||
"-errSmokeOutcome",
|
||||
"normal-escape-route",
|
||||
"-noThrow",
|
||||
"-disableCrashReporter"
|
||||
],
|
||||
"manifest_sha256": "1f2412e0e111ea0eebe21002feb0e02f8e3f6a13a5c65088f99586654cc9a5dd"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"log": "console.log.txt",
|
||||
"smoke_completions": 1,
|
||||
"assertions_passed": 63,
|
||||
"script_or_runtime_failures": [],
|
||||
"engine_errors": [
|
||||
"19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"",
|
||||
"19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"",
|
||||
"19:38:03.547 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"",
|
||||
"19:38:03.548 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"",
|
||||
"19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)",
|
||||
"19:38:45.115 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)",
|
||||
"19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)",
|
||||
"19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)",
|
||||
"19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)",
|
||||
"19:38:45.117 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)",
|
||||
"19:38:45.224 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)",
|
||||
"19:38:52.076 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)",
|
||||
"19:38:52.076 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)"
|
||||
],
|
||||
"missing_end_screen": [],
|
||||
"scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim",
|
||||
"qualification": "unqualified: concurrent source changes detected by stopped-run snapshot"
|
||||
}
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected
|
||||
PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup
|
||||
PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering
|
||||
PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it
|
||||
PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup
|
||||
PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start
|
||||
PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed
|
||||
PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked
|
||||
PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown
|
||||
PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested
|
||||
PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel
|
||||
PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries
|
||||
PASS: infantry combat gate precedes radio delivery and preserves non-task transports
|
||||
PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once
|
||||
PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards
|
||||
PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols
|
||||
PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved
|
||||
PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness
|
||||
PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention
|
||||
PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings
|
||||
PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary
|
||||
PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons
|
||||
PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained
|
||||
PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates
|
||||
PASS: native-route retry preserves delivered target, limits attempts and suspends during combat
|
||||
PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend
|
||||
PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait
|
||||
PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access
|
||||
PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation
|
||||
PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles
|
||||
PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link
|
||||
PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it
|
||||
PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence
|
||||
PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception
|
||||
PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound
|
||||
PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay
|
||||
PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release
|
||||
PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules
|
||||
PASS: production cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished
|
||||
PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves
|
||||
PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata
|
||||
PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz
|
||||
PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension
|
||||
PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills
|
||||
PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun
|
||||
PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries
|
||||
PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance
|
||||
PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget
|
||||
PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion
|
||||
PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions
|
||||
PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection
|
||||
PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height
|
||||
PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring
|
||||
PASS: explicit CLI opt-in, disabled/editor guards and mission-header airport precedence
|
||||
PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring
|
||||
PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior
|
||||
PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently
|
||||
PASS: standalone old faction delegates collected once, with null/deleted owners ignored
|
||||
PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools
|
||||
PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved
|
||||
PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback
|
||||
PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs
|
||||
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
|
||||
PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history
|
||||
PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell
|
||||
PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup
|
||||
PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work
|
||||
PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates
|
||||
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
|
||||
PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine
|
||||
PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop
|
||||
PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts
|
||||
PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture
|
||||
PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal
|
||||
PASS: actual convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
|
||||
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
|
||||
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
|
||||
PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration
|
||||
PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines
|
||||
PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths
|
||||
PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged
|
||||
PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest
|
||||
PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved
|
||||
PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved
|
||||
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
|
||||
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
|
||||
PASS: actual one-mine original carrier selection, settled startup, shared finite claims, no refund after submission
|
||||
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
|
||||
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
|
||||
PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound
|
||||
PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup
|
||||
PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim
|
||||
PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle
|
||||
PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback
|
||||
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
|
||||
PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status
|
||||
PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation
|
||||
PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 0.255s
|
||||
|
||||
OK
|
||||
PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit
|
||||
PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested
|
||||
PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation
|
||||
PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state.
|
||||
PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending.
|
||||
PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready.
|
||||
PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified.
|
||||
PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification.
|
||||
PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified.
|
||||
PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector
|
||||
PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound
|
||||
PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict
|
||||
PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts
|
||||
PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation
|
||||
PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified
|
||||
PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification
|
||||
PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified.
|
||||
PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused
|
||||
Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed
|
||||
PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation
|
||||
PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim
|
||||
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
|
||||
HQ convoy delivered-report planning and downlink regressions passed
|
||||
PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown
|
||||
PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts
|
||||
PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation
|
||||
PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup
|
||||
PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification.
|
||||
PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns
|
||||
PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get
|
||||
PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects
|
||||
PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds
|
||||
test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok
|
||||
test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok
|
||||
test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok
|
||||
test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok
|
||||
test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok
|
||||
test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok
|
||||
test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.061s
|
||||
|
||||
OK
|
||||
PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports
|
||||
PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 3.421s
|
||||
|
||||
OK
|
||||
PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions
|
||||
PASS: actual filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset
|
||||
PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties
|
||||
PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry
|
||||
PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment
|
||||
PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation
|
||||
PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all12 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact19 bodies without capacity shrinking
|
||||
PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation
|
||||
PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement
|
||||
PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact19-body composition, source reuse, mode/client guards and no consumed receipt refunds
|
||||
PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release
|
||||
PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities
|
||||
PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal
|
||||
PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim
|
||||
PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity
|
||||
PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning
|
||||
PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup
|
||||
PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze
|
||||
PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery
|
||||
PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves
|
||||
PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death
|
||||
PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation
|
||||
PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles
|
||||
PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles
|
||||
PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression
|
||||
PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown
|
||||
PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology
|
||||
PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries
|
||||
PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries
|
||||
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
|
||||
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
|
||||
PASS: actual engineer mine preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested
|
||||
PASS: actual road mine-site annulus/bend geometry, deterministic bounded candidates, server/query limits, and native ground/water/obstruction rejection; no runtime placement claim
|
||||
PASS: actual HQ mine admission, one site query per tick, maximum two active/32 retained jobs, delivered-only original post, once-per-unit refusal latch, 256-item ceiling and maintenance/teardown ownership
|
||||
PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership
|
||||
PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup
|
||||
PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts
|
||||
PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning
|
||||
PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions
|
||||
.......
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.027s
|
||||
|
||||
OK
|
||||
PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.423s
|
||||
|
||||
OK
|
||||
PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring
|
||||
PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded
|
||||
Traceback (most recent call last):
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/test_admin_menu.py", line 13, in <module>
|
||||
assert len(keys) == 14 and set(settings) - set(keys) == {"automaticConvoyEnabled", "heliTimerMinutes", "keepWeaponOnUnconscious"}
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
AssertionError
|
||||
PASS: 35 prefabs have unique saved root entity IDs
|
||||
PASS: 299 original script entries tracked across 18 unfinished responsibilities
|
||||
PASS: 1 isolated addons, acyclic dependencies, 56 unique resources, exact vanilla/authorized external references
|
||||
Traceback (most recent call last):
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 78, in <module>
|
||||
if __name__=='__main__':check()
|
||||
~~~~~^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tools/check.py", line 76, in check
|
||||
subprocess.run([sys.executable,str(ROOT/'tests'/name)],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/usr/bin/python3', '/home/jakub/devel/escapistsrereintroduced/tests/test_admin_menu.py']' returned non-zero exit status 1.
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"stopped_unix": 1790876453.9767497,
|
||||
"console_sha256": "0acac3710d4fb252bbfa013eb01227bc9aa1cfc3c59367b7236462da5a8769e9",
|
||||
"end_source_sha256": "727156abefcf25d8992d223cd70124422d6a28b27f8398aa826fbadd830490b8",
|
||||
"source_unchanged_after_run": false,
|
||||
"source_provenance": "launch_snapshot",
|
||||
"launch_id": "27e6e4bf-af2f-4def-bf87-d1b6b4fc03ab",
|
||||
"launch_source_manifest": "launch-source-sha256.json",
|
||||
"launch_source_metadata": "launch-source.json",
|
||||
"launch_source_sha256": "1f2412e0e111ea0eebe21002feb0e02f8e3f6a13a5c65088f99586654cc9a5dd",
|
||||
"external_addons_unchanged_after_run": true,
|
||||
"external_addon_count": 7,
|
||||
"external_addon_inputs": "external-addons-inputs.json",
|
||||
"started_unix": 1790876279.959925,
|
||||
"result": "source-changed",
|
||||
"result_before_cleanup": "smoke-completed",
|
||||
"cleanup_confirmed": true,
|
||||
"cleanup_report": {
|
||||
"cleanup_confirmed": true,
|
||||
"idle_verified": true,
|
||||
"errors": [],
|
||||
"orphan_cleanup": {
|
||||
"attempted": true,
|
||||
"report": {
|
||||
"scope": "/tmp/erri-headless-compat/pfx",
|
||||
"candidates": [],
|
||||
"term_sent": [],
|
||||
"kill_sent": [],
|
||||
"cleared": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"runner_error": null,
|
||||
"session": "/tmp/erri-route-20261001-mine-resupply/logs/logs_2026-10-01_19-38-01",
|
||||
"rounds_required": 1,
|
||||
"project": "chat",
|
||||
"display": "headless Gamescope 1280x720/30Hz",
|
||||
"dedicated_server": false,
|
||||
"audio": "silent sink and per-test-stream mute"
|
||||
}
|
||||
@@ -0,0 +1,542 @@
|
||||
---------------------------------------------
|
||||
Log Z:\tmp\erri-route-20261001-mine-resupply\logs\logs_2026-10-01_19-38-01\script.log started at 2026-10-01 19:38:06 (2026-10-01 17:38:06 UTC)
|
||||
|
||||
19:38:06.161 SCRIPT : SCRIPT : Initializing scripts
|
||||
19:38:06.161 SCRIPT : SCRIPT : ScriptProjectManager init
|
||||
19:38:08.005 SCRIPT : SCRIPT : Compiling GameLib scripts
|
||||
19:38:08.060 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
|
||||
19:38:08.060 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
|
||||
19:38:08.061 SCRIPT : SCRIPT : Compiling Game scripts
|
||||
19:38:08.949 SCRIPT : Compiling Game scripts
|
||||
19:38:08.949 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
|
||||
19:38:09.463 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
|
||||
19:38:09.834 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:09.847 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
|
||||
19:38:09.882 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
|
||||
19:38:10.007 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
|
||||
19:38:10.040 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.052 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
|
||||
19:38:10.122 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
|
||||
19:38:10.124 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
|
||||
19:38:10.149 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.168 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.170 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
|
||||
19:38:10.200 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
19:38:10.228 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
|
||||
19:38:10.617 SCRIPT : Module: WorkbenchGame; loaded 185x files; 656x classes; used 2752K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 198cfb22
|
||||
19:38:10.625 SCRIPT : Module: Game; loaded 6608x files; 13495x classes; used 40829K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS"; CRC32: b0e22a2f
|
||||
19:38:11.638 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
19:38:11.638 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
19:38:31.571 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
|
||||
19:38:31.571 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
|
||||
19:38:31.572 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
|
||||
19:38:31.573 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
|
||||
19:38:31.574 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
|
||||
19:38:31.595 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
|
||||
19:38:34.530 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
19:38:34.530 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
19:38:47.744 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
|
||||
19:38:47.775 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
|
||||
19:38:52.071 SCRIPT : Map load time: 2285ms
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
|
||||
19:38:52.079 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
|
||||
19:38:52.081 SCRIPT (W): Can't open config file ""
|
||||
19:38:52.087 SCRIPT (W): Slot_WeaponInfo Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_AvailableActions Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Vehicle Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:38:52.088 SCRIPT (W): Slot_Hints Has no Content!
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.101 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.102 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
|
||||
19:38:52.106 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
|
||||
19:38:52.235 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
|
||||
19:38:52.248 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
|
||||
19:38:52.423 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
|
||||
19:38:53.887 SCRIPT : Co10 Escape Reintroduced factions: players=US enemy=USSR independent=FIA
|
||||
19:38:56.897 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-prison-1 position=<5897.01,79.6035,5647.44> heading=292.806 attempts=1044 fallback=0
|
||||
19:38:57.151 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-radio-1 position=<2587.58,106.895,5659.55> heading=63.5029 attempts=264 fallback=0
|
||||
19:38:57.657 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-1 position=<4774.07,51.9703,5254.85> heading=167.151 attempts=540 fallback=0
|
||||
19:38:59.665 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-2 position=<5316.58,26.344,9364.74> heading=217.558 attempts=2095 fallback=0
|
||||
19:39:00.677 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-3 position=<4521.96,16.1763,10607.7> heading=244.332 attempts=910 fallback=0
|
||||
19:39:00.931 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-4 position=<7281.84,123.829,5261.1> heading=192.97 attempts=308 fallback=0
|
||||
19:39:01.686 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-1 position=<3445.13,110.114,5290.01> heading=196.485 attempts=935 fallback=0
|
||||
19:39:08.741 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-outpost-1 position=<1611.6,62.0513,5852.91> heading=119.041 attempts=7233 fallback=0
|
||||
19:39:10.510 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-2 position=<7610.94,12.2423,8158.45> heading=103.835 attempts=1946 fallback=0
|
||||
19:39:15.550 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-3 position=<4614.99,84.8465,8600.26> heading=153.165 attempts=5277 fallback=0
|
||||
19:39:17.323 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-2 position=<2489.87,10.395,4242.71> heading=108.922 attempts=1953 fallback=0
|
||||
19:39:21.868 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-3 position=<11915.1,19.8313,1890.29> heading=5.80096 attempts=4884 fallback=0
|
||||
19:39:22.624 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-4 position=<5485.04,41.6244,10799.5> heading=66.4034 attempts=760 fallback=0
|
||||
19:39:24.140 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-5 position=<11090.8,35.1422,11563.2> heading=323.909 attempts=1728 fallback=0
|
||||
19:39:24.164 SCRIPT : Reintroduced [sites]: authored everon-prison-1 at <5897.01,79.7562,5647.44>
|
||||
19:39:24.165 SCRIPT : Reintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
|
||||
19:39:24.197 SCRIPT : Reintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
|
||||
19:39:24.203 SCRIPT : Reintroduced [sites]: authored everon-radio-1 at <2587.58,107.218,5659.55>
|
||||
19:39:24.256 SCRIPT : Reintroduced [sites]: authored everon-extraction-1 at <4800.95,27.8202,11487.4>
|
||||
19:39:24.264 SCRIPT : Reintroduced [sites]: authored everon-medical-1 at <3445.13,110.27,5290.01>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-outpost-1 at <1611.6,62.1857,5852.91>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-1 at <4774.07,52.3357,5254.85>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-2 at <5316.58,26.6913,9364.74>
|
||||
19:39:24.270 SCRIPT : Reintroduced [sites]: authored everon-mortar-3 at <4521.96,16.2563,10607.7>
|
||||
19:39:24.271 SCRIPT : Reintroduced [sites]: authored everon-mortar-4 at <7281.84,124.134,5261.1>
|
||||
19:39:24.276 SCRIPT : Reintroduced [sites]: authored everon-medical-2 at <7610.94,12.4508,8158.45>
|
||||
19:39:24.281 SCRIPT : Reintroduced [sites]: authored everon-medical-3 at <4614.99,85.1584,8600.26>
|
||||
19:39:24.286 SCRIPT : Reintroduced [sites]: authored everon-camp-2 at <2489.87,10.5063,4242.71>
|
||||
19:39:24.292 SCRIPT : Reintroduced [sites]: authored everon-camp-3 at <11915.1,20.0825,1890.29>
|
||||
19:39:24.297 SCRIPT : Reintroduced [sites]: authored everon-camp-4 at <5485.04,41.8905,10799.5>
|
||||
19:39:24.302 SCRIPT : Reintroduced [sites]: authored everon-camp-5 at <11090.8,35.5693,11563.2>
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4800.95,27.8202,11487.4> up=1
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
|
||||
19:39:24.302 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:24.302 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4800.95,28.1168,11489.7>
|
||||
19:39:24.303 SCRIPT : ERR GEAR TERRAIN: bottom=<4800.95,27.8168,11489.7> terrainY=27.7202 tireTerrainGap=0.0965805
|
||||
19:39:24.303 SCRIPT : ERR GEAR SUPPORT: center=<4800.95,28.1168,11489.7> radius=0.3 bottom=<4800.95,27.8168,11489.7> fraction=0.893554 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.0965824
|
||||
19:39:24.303 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.68,28.585,11485.4>
|
||||
19:39:24.303 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.68,28.135,11485.4> terrainY=27.8121 tireTerrainGap=0.322891
|
||||
19:39:24.303 SCRIPT : ERR GEAR SUPPORT: center=<4798.68,28.585,11485.4> radius=0.45 bottom=<4798.68,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
19:39:24.303 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.23,28.585,11485.4>
|
||||
19:39:24.304 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.23,28.135,11485.4> terrainY=27.649 tireTerrainGap=0.485987
|
||||
19:39:24.304 SCRIPT : ERR GEAR SUPPORT: center=<4803.23,28.585,11485.4> radius=0.45 bottom=<4803.23,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.304 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.305 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.306 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.307 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:24.307 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.167 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.01,27.5393,11487.4> up=0.99779
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.449711 angularSpeed=0.0803937
|
||||
19:39:25.397 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:25.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.07,28.0037,11489.6>
|
||||
19:39:25.398 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.07,27.7037,11489.6> terrainY=27.7165 tireTerrainGap=-0.0127983
|
||||
19:39:25.398 SCRIPT : ERR GEAR SUPPORT: center=<4801.07,28.0037,11489.6> radius=0.3 bottom=<4801.07,27.7037,11489.6> fraction=0.396364 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.0128002
|
||||
19:39:25.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.71,28.2496,11485.4>
|
||||
19:39:25.398 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.71,27.7996,11485.4> terrainY=27.8106 tireTerrainGap=-0.0110531
|
||||
19:39:25.398 SCRIPT : ERR GEAR SUPPORT: center=<4798.71,28.2496,11485.4> radius=0.45 bottom=<4798.71,27.7996,11485.4> fraction=0.404249 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.0110645
|
||||
19:39:25.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.26,28.0903,11485.3>
|
||||
19:39:25.399 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.26,27.6403,11485.3> terrainY=27.6482 tireTerrainGap=-0.00791359
|
||||
19:39:25.399 SCRIPT : ERR GEAR SUPPORT: center=<4803.26,28.0903,11485.3> radius=0.45 bottom=<4803.26,27.6403,11485.3> fraction=0.418569 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.0079155
|
||||
19:39:25.399 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:25.650 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:25.651 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.159 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.03,27.5982,11487.4> up=0.996374
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.169109 angularSpeed=0.043174
|
||||
19:39:26.412 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
19:39:26.412 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.09,28.0202,11489.6>
|
||||
19:39:26.412 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.09,27.7202,11489.6> terrainY=27.716 tireTerrainGap=0.00421906
|
||||
19:39:26.413 SCRIPT : ERR GEAR SUPPORT: center=<4801.09,28.0202,11489.6> radius=0.3 bottom=<4801.09,27.7202,11489.6> fraction=0.473735 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00422287
|
||||
19:39:26.413 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.73,28.259,11485.4>
|
||||
19:39:26.413 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.73,27.809,11485.4> terrainY=27.8093 tireTerrainGap=-0.00028038
|
||||
19:39:26.413 SCRIPT : ERR GEAR SUPPORT: center=<4798.73,28.259,11485.4> radius=0.45 bottom=<4798.73,27.809,11485.4> fraction=0.453201 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.000295639
|
||||
19:39:26.413 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.28,28.0976,11485.3>
|
||||
19:39:26.413 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.28,27.6476,11485.3> terrainY=27.6474 tireTerrainGap=0.000162125
|
||||
19:39:26.414 SCRIPT : ERR GEAR SUPPORT: center=<4803.28,28.0976,11485.3> radius=0.45 bottom=<4803.28,27.6476,11485.3> fraction=0.455277 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.000160217
|
||||
19:39:26.414 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:26.668 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.669 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:26.918 SCRIPT : Reintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
|
||||
19:39:27.172 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.172 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.173 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.173 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.07,27.5884,11487.4> up=0.996176
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0697158 angularSpeed=0.0592193
|
||||
19:39:27.423 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:27.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.15,28.0148,11489.6>
|
||||
19:39:27.424 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.15,27.7148,11489.6> terrainY=27.714 tireTerrainGap=0.00075531
|
||||
19:39:27.424 SCRIPT : ERR GEAR SUPPORT: center=<4801.15,28.0148,11489.6> radius=0.3 bottom=<4801.15,27.7148,11489.6> fraction=0.457983 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.000757217
|
||||
19:39:27.424 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.77,28.2551,11485.4>
|
||||
19:39:27.424 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.77,27.8051,11485.4> terrainY=27.8079 tireTerrainGap=-0.00281715
|
||||
19:39:27.424 SCRIPT : ERR GEAR SUPPORT: center=<4798.77,28.2551,11485.4> radius=0.45 bottom=<4798.77,27.8051,11485.4> fraction=0.441675 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00283051
|
||||
19:39:27.424 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.31,28.0933,11485.3>
|
||||
19:39:27.425 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.31,27.6433,11485.3> terrainY=27.6464 tireTerrainGap=-0.00308228
|
||||
19:39:27.425 SCRIPT : ERR GEAR SUPPORT: center=<4803.31,28.0933,11485.3> radius=0.45 bottom=<4803.31,27.6433,11485.3> fraction=0.440566 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00307465
|
||||
19:39:27.425 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:27.674 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:27.675 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.179 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.180 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:28.428 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:28.428 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:28.428 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:28.429 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:28.429 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:28.429 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:28.429 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:28.429 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:28.429 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:28.430 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:28.430 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:28.683 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:29.190 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=3 conscious=3 nativeComplete=1
|
||||
19:39:29.190 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.191 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:29.191 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:29.442 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:29.442 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:29.443 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:29.443 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:29.443 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:29.443 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:29.443 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:29.444 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:29.444 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:29.444 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:29.444 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:29.695 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.007 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:30.522 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:30.523 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:30.523 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:30.523 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:30.523 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:30.523 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:30.523 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:30.524 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:30.524 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:30.524 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:30.524 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:30.525 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.038 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:31.546 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:31.547 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:31.547 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:31.547 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:31.547 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:31.547 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:31.547 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:31.548 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:31.548 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:31.548 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:31.548 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:31.548 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:31.548 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:31.549 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:31.549 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.550 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:31.550 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
19:39:32.050 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
19:39:32.050 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
19:39:32.051 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.051 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.555 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996037
|
||||
19:39:32.556 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
19:39:32.556 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
19:39:32.556 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
19:39:32.556 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.001791
|
||||
19:39:32.557 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462702 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00179482
|
||||
19:39:32.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
19:39:32.557 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00234985
|
||||
19:39:32.557 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443827 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00235748
|
||||
19:39:32.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
19:39:32.557 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00261879
|
||||
19:39:32.558 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
19:39:32.558 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
19:39:32.558 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
19:39:32.558 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.559 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:32.559 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
19:39:33.061 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
19:39:33.062 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
19:39:33.063 SCRIPT : Reintroduced [sites]: transport parking=<6150,202.725,7038> radius=4 terrainRange=0.625 obstructed=0 clear=1
|
||||
19:39:33.109 SCRIPT : Reintroduced [sites]: 16 sites and 230 physical stock items ready
|
||||
19:39:33.114 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=1 position=<8847.63,259.109,1420.75> heading=135
|
||||
19:39:33.565 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=2 position=<8853.49,125.11,4971.64> heading=90
|
||||
19:39:34.325 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=3 position=<9612.94,85.8751,400.795> heading=90
|
||||
19:39:34.576 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=4 position=<9718.08,252.226,2959.86> heading=180
|
||||
19:39:35.588 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=5 position=<7808.33,193.994,4389.59> heading=45
|
||||
19:39:35.591 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=6 position=<10698,231.366,2505.55> heading=180
|
||||
19:39:36.353 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=7 position=<6785.83,62.1974,8545.58> heading=180
|
||||
19:39:36.356 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=8 position=<8459.9,235.402,2462.19> heading=45
|
||||
19:39:36.857 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=9 position=<5777.41,183.007,7586.17> heading=315
|
||||
19:39:37.365 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=10 position=<2610.25,59.1043,4619.28> heading=135
|
||||
19:39:48.243 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-1 faction=USSR group=<0x00000001E66FA3C0> SCR_AIGroup position=<8847.63,259.137,1420.75> living=1
|
||||
19:39:48.243 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8847.63,259.109,1420.75> backpack magazines=40
|
||||
19:39:48.746 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-2 faction=USSR group=<0x00000001E66FAC40> SCR_AIGroup position=<8853.49,125.01,4971.64> living=1
|
||||
19:39:48.746 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8853.49,125.11,4971.64> backpack magazines=40
|
||||
19:39:48.747 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-3 faction=USSR group=<0x00000001E66FB4C0> SCR_AIGroup position=<9612.94,85.7751,400.795> living=1
|
||||
19:39:48.747 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9612.94,85.8751,400.795> backpack magazines=40
|
||||
19:39:49.249 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-4 faction=USSR group=<0x00000001E66FDF40> SCR_AIGroup position=<9718.08,252.25,2959.86> living=1
|
||||
19:39:49.250 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9718.08,252.226,2959.86> backpack magazines=40
|
||||
19:39:49.250 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-5 faction=USSR group=<0x00000001E66FE7C0> SCR_AIGroup position=<7808.33,193.894,4389.59> living=1
|
||||
19:39:49.250 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<7808.33,193.994,4389.59> backpack magazines=40
|
||||
19:39:49.761 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-6 faction=USSR group=<0x00000001E8B2DBE0> SCR_AIGroup position=<10698,231.266,2505.55> living=1
|
||||
19:39:49.761 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10698,231.366,2505.55> backpack magazines=40
|
||||
19:39:49.762 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-7 faction=USSR group=<0x00000001E8B2E460> SCR_AIGroup position=<6785.83,62.1327,8545.58> living=1
|
||||
19:39:49.762 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<6785.83,62.1974,8545.58> backpack magazines=40
|
||||
19:39:50.268 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-8 faction=USSR group=<0x00000001E8B32CA0> SCR_AIGroup position=<8459.9,236.451,2462.19> living=1
|
||||
19:39:50.269 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8459.9,235.402,2462.19> backpack magazines=40
|
||||
19:39:50.269 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-9 faction=USSR group=<0x00000001E949F120> SCR_AIGroup position=<5777.41,182.907,7586.17> living=1
|
||||
19:39:50.270 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5777.41,183.007,7586.17> backpack magazines=40
|
||||
19:39:50.773 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-10 faction=USSR group=<0x00000001E94A3520> SCR_AIGroup position=<2610.25,59.0043,4619.28> living=1
|
||||
19:39:50.773 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<2610.25,59.1043,4619.28> backpack magazines=40
|
||||
19:39:50.773 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-1 location=<4774.07,52.3357,5254.85> authored=<4774.07,51.9703,5254.85>
|
||||
19:39:50.784 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-2 location=<5316.58,26.6913,9364.74> authored=<5316.58,26.344,9364.74>
|
||||
19:39:50.787 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-3 location=<4521.96,16.2563,10607.7> authored=<4521.96,16.1763,10607.7>
|
||||
19:39:50.789 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-4 location=<7281.84,124.134,5261.1> authored=<7281.84,123.829,5261.1>
|
||||
19:39:50.795 SCRIPT : Reintroduced [environment]: date=authored weather=authored
|
||||
19:39:50.795 SCRIPT : Reintroduced [time]: started at 14:00 with 1x progression
|
||||
19:39:50.796 SCRIPT : Reintroduced [mission]: phase 0 -> 1
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<5897.01,79.6035,5647.44>
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: gate candidate raw= resolved={67F17696FF278AE0}Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et lock=1 door=1 position=<5902.24,79.6035,5644.53>
|
||||
19:39:50.796 SCRIPT : Reintroduced [prison]: one intact successor lock in owned prison
|
||||
19:39:51.117 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
|
||||
19:39:51.137 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
19:39:51.138 SCRIPT : Reintroduced [spawn scene]: client token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
19:39:51.214 SCRIPT : Reintroduced [spawn scene]: client token=1 final=0 all 67 objects and 28 storage items ready
|
||||
19:39:51.214 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=0 storage acknowledged after 102.129ms
|
||||
19:39:51.222 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 scene ready after 110.016ms; starting asset preload
|
||||
19:39:51.477 SCRIPT : ERR SMOKE PASS: native spawn preload retains preparation text after server sites are ready
|
||||
19:39:52.224 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 preload finished; verifying held storage
|
||||
19:39:52.775 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-prison-1 faction=USSR group=<0x0000000144762200> SCR_AIGroup position=<5910.58,80.045,5679.7> living=3
|
||||
19:39:52.775 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-supply-1 faction=FIA group=<0x00000001D15C0B60> SCR_AIGroup position=<6168,202.217,7050> living=5
|
||||
19:39:52.776 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-radio-1 faction=USSR group=<0x00000001D15C13E0> SCR_AIGroup position=<2600.97,106.969,5632.7> living=6
|
||||
19:39:52.777 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-extraction-1 faction=USSR group=<0x00000001B203EBA0> SCR_AIGroup position=<4830.95,28.2904,11487.4> living=6
|
||||
19:39:52.777 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1 faction=USSR group=<0x00000001B203FCA0> SCR_AIGroup position=<3433.63,110.185,5293.41> living=4
|
||||
19:39:52.778 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1-responders faction=USSR group=<0x00000001B2040520> SCR_AIGroup position=<3456.64,110.165,5286.6> living=2
|
||||
19:39:52.778 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1 faction=USSR group=<0x00000001B2041620> SCR_AIGroup position=<1605.77,62.3585,5842.42> living=4
|
||||
19:39:52.779 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1-responders faction=USSR group=<0x00000001B2041EA0> SCR_AIGroup position=<1617.42,62.0312,5863.41> living=2
|
||||
19:39:52.779 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2 faction=USSR group=<0x00000001B203F420> SCR_AIGroup position=<7608.07,12.3552,8146.8> living=4
|
||||
19:39:52.780 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2-responders faction=USSR group=<0x00000001B2042B60> SCR_AIGroup position=<7613.81,12.9284,8170.1> living=2
|
||||
19:39:52.780 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3 faction=USSR group=<0x00000001B2043C60> SCR_AIGroup position=<4604.28,85.1578,8594.85> living=4
|
||||
19:39:52.781 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3-responders faction=USSR group=<0x00000001B20444E0> SCR_AIGroup position=<4625.69,85.1662,8605.68> living=2
|
||||
19:39:52.781 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2 faction=USSR group=<0x00000001D1A42B40> SCR_AIGroup position=<2485.98,10.3955,4231.36> living=4
|
||||
19:39:52.782 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2-responders faction=USSR group=<0x00000001D1A433C0> SCR_AIGroup position=<2493.76,10.5062,4254.06> living=2
|
||||
19:39:52.782 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3 faction=USSR group=<0x00000001D1A444C0> SCR_AIGroup position=<11927.1,19.9088,1889.08> living=4
|
||||
19:39:52.783 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3-responders faction=USSR group=<0x00000001D1A44D40> SCR_AIGroup position=<11903.2,20.1295,1891.51> living=2
|
||||
19:39:52.784 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4 faction=USSR group=<0x00000001D1A45E40> SCR_AIGroup position=<5489.85,41.8017,10788.6> living=4
|
||||
19:39:52.784 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4-responders faction=USSR group=<0x00000001D1A466C0> SCR_AIGroup position=<5480.24,41.8467,10810.5> living=2
|
||||
19:39:52.785 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5 faction=USSR group=<0x00000001D1A47C00> SCR_AIGroup position=<11100.5,35.6612,11570.3> living=4
|
||||
19:39:52.785 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5-responders faction=USSR group=<0x00000001D1A48480> SCR_AIGroup position=<11081.1,35.3011,11556.2> living=2
|
||||
19:39:53.379 SCRIPT : Reintroduced [spawn scene]: client token=1 final=1 all 67 objects and 28 storage items ready
|
||||
19:39:53.380 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=1 storage acknowledged after 2267.84ms
|
||||
19:39:53.389 SCRIPT : Reintroduced [spawn]: player 1 at <5897.81,79.6562,5645.48>
|
||||
19:39:53.389 SCRIPT : Reintroduced [spawn scene]: player=1 retaining 67 objects until leaving the spawn area
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: prisoner admitted only after enabled native spawn preload finishes
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: new identity may enter prison
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
|
||||
19:39:53.513 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
|
||||
19:39:53.514 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from enabled catalog
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
|
||||
19:39:53.515 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
|
||||
19:39:53.516 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
|
||||
19:39:53.522 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
|
||||
19:39:53.523 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
|
||||
19:39:53.526 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
|
||||
19:39:53.527 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
|
||||
19:39:53.528 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
|
||||
19:39:53.529 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: initial prisoner position
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: radio and extraction vehicle exist
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: transport maintenance cache has its original site-owned container
|
||||
19:39:53.530 SCRIPT : ERR SMOKE PASS: transport maintenance cache native inventory exists
|
||||
19:39:53.531 SCRIPT : ERR SMOKE PASS: transport maintenance inventory enumeration remains bounded
|
||||
19:39:53.531 SCRIPT : ERR MAINTENANCE STOCK: repairKit=GenericEntity<0x00000001AC6D8640> @"ENTITY:4611686018427388510" ('GenericEntity','Assets/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.xob') at <6150.000000 203.287506 7050.000000> @"{C09C7C97EFA34909}Prefabs/ERR/Items/EmergencyRepairKit.et" owned=1 supplies=20 capacity=20
|
||||
19:39:53.531 SCRIPT : ERR SMOKE PASS: transport original repair kit contains twenty native supply units
|
||||
19:39:53.531 SCRIPT : ERR MAINTENANCE STOCK: fuelCan=GenericEntity<0x00000001AC6D8850> @"ENTITY:4611686018427388511" ('GenericEntity','Assets/Items/Fuel/Jerrycan_01/Jerrycan_01.xob') at <6150.000000 203.287506 7050.000000> @"{12D5AD21E383B768}Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et" owned=1 litres=5 capacity=20
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport original fuel can contains five litres in its native twenty-litre tank
|
||||
19:39:53.532 SCRIPT : ERR MAINTENANCE STOCK: fuelCan=GenericEntity<0x00000001AC6D8958> @"ENTITY:4611686018427388512" ('GenericEntity','Assets/Items/Fuel/Jerrycan_01/Jerrycan_01.xob') at <6150.000000 203.287506 7050.000000> @"{12D5AD21E383B768}Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et" owned=1 litres=5 capacity=20
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport original fuel can contains five litres in its native twenty-litre tank
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: transport exactly one repair kit and two distinct original fuel cans are in the cache; consumption untested
|
||||
19:39:53.532 SCRIPT : ERR SMOKE PASS: normal Southern cache holds finite maintenance stock
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal clue-site optional transport attempted once
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal optional transport resolved to owned vehicle or explicit omission
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: normal Southern transport starts locked
|
||||
19:39:53.533 SCRIPT : ERR NORMAL ROUTE: Southern transport ready at <6149.98,202.648,7038.01>
|
||||
19:39:53.533 SCRIPT : ERR SMOKE PASS: authored gate exposes lock action
|
||||
19:39:53.534 SCRIPT : ERR PRISON AI: checked=78 active=0
|
||||
19:39:53.534 SCRIPT : ERR SMOKE PASS: physical enemies stay inactive until prison lockpick
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: gate low=<5902.17,79.6025,5644.45> high=<5902.88,81.9806,5645.76>
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: child origin=<5897.01,79.6035,5647.44> low=<5897.01,79.6035,5647.44> high=<5897.01,79.6035,5647.44>
|
||||
19:39:53.534 SCRIPT : ERR GEOMETRY: child origin=<5902.54,82.5535,5645.11> low=<5901.69,82.5309,5643.98> high=<5903.43,83.5029,5646.22>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5902.54,79.6035,5645.11> low=<5902.19,79.6029,5644.41> high=<5902.87,82.078,5645.83>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5902.86,79.6035,5645.76> low=<5902.74,78.8012,5645.71> high=<5904.14,82.5688,5648.58>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5903.71,79.6035,5647.88> low=<5903.59,78.8012,5647.83> high=<5904.99,82.5688,5650.7>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5901.14,79.6035,5641.67> low=<5901.02,78.8012,5641.62> high=<5902.42,82.5688,5644.49>
|
||||
19:39:53.535 SCRIPT : ERR GEOMETRY: child origin=<5900.22,79.6035,5639.58> low=<5900.1,78.8012,5639.54> high=<5901.5,82.5688,5642.4>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5896.57,79.6035,5654.13> low=<5893.76,78.8012,5654.02> high=<5896.62,82.5688,5655.41>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5891.92,79.6035,5643.07> low=<5889.1,78.8012,5642.96> high=<5891.97,82.5688,5644.35>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5899.34,79.6035,5652.97> low=<5896.52,78.8012,5652.85> high=<5899.39,82.5688,5654.25>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5894.69,79.6035,5641.91> low=<5891.87,78.8012,5641.79> high=<5894.74,82.5688,5643.19>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5902.1,79.6035,5651.81> low=<5899.29,78.8012,5651.69> high=<5902.15,82.5688,5653.09>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5897.45,79.6035,5640.75> low=<5894.64,78.8012,5640.63> high=<5897.5,82.5688,5642.03>
|
||||
19:39:53.536 SCRIPT : ERR GEOMETRY: child origin=<5904.87,79.6035,5650.65> low=<5902.05,78.8012,5650.53> high=<5904.92,82.5688,5651.93>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5900.22,79.6035,5639.58> low=<5897.4,78.8012,5639.47> high=<5900.27,82.5688,5640.86>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5892.65,79.6035,5652.53> low=<5892.53,78.8012,5652.48> high=<5893.93,82.5688,5655.35>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5891.48,79.6035,5649.77> low=<5891.37,78.8012,5649.72> high=<5892.76,82.5688,5652.58>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5890.32,79.6035,5647> low=<5890.2,78.8012,5646.95> high=<5891.6,82.5688,5649.82>
|
||||
19:39:53.537 SCRIPT : ERR GEOMETRY: child origin=<5889.16,79.6035,5644.23> low=<5889.04,78.8012,5644.19> high=<5890.44,82.5688,5647.05>
|
||||
19:39:53.537 SCRIPT : ERR SMOKE PASS: lock permits prisoner
|
||||
19:39:53.538 SCRIPT : Reintroduced [mission]: phase 1 -> 2
|
||||
19:39:53.540 SCRIPT : ERR SMOKE PASS: lock action advances mission
|
||||
19:39:53.541 SCRIPT : ERR PRISON AI: checked=78 active=1
|
||||
19:39:53.541 SCRIPT : ERR SMOKE PASS: lockpick reactivates the existing physical enemies
|
||||
19:39:53.541 SCRIPT : ERR SMOKE PASS: two guaranteed physical cache documents
|
||||
19:39:53.544 SCRIPT : ERR SMOKE PASS: test does not rely on random intel
|
||||
19:39:53.547 SCRIPT : ERR SMOKE PASS: isolated test profile defence duration
|
||||
19:39:54.015 SCRIPT : ERR SMOKE PASS: authored cache document recovered into inventory
|
||||
19:39:54.258 SCRIPT : Reintroduced [intel]: player 1 recovered folder; location=everon-radio-1 knowledge=1
|
||||
19:39:57.068 SCRIPT : ERR SMOKE PASS: unlocked gate physically permits passage
|
||||
19:39:57.068 SCRIPT : ERR SMOKE PASS: authored cache document recovered into inventory
|
||||
19:39:57.247 SCRIPT : Reintroduced [intel]: player 1 recovered folder; location=everon-radio-1 knowledge=2
|
||||
19:39:58.296 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-1 faction=USSR group=<0x00000001F1DEE2E0> SCR_AIGroup position=<6645.16,150.78,7717.65> living=3
|
||||
19:40:00.103 SCRIPT : ERR SMOKE PASS: carried intel identifies radio through intel service
|
||||
19:40:00.103 SCRIPT : ERR SMOKE PASS: radio rejects distant player
|
||||
19:40:00.274 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-2 faction=USSR group=<0x00000001F2B52300> SCR_AIGroup position=<5407.82,170.596,6928.65> living=3
|
||||
19:40:01.646 SCRIPT : ERR SMOKE: radio=<2587.58,108.018,5659.55> player=<2589.58,107.125,5659.55>
|
||||
19:40:01.646 SCRIPT : Reintroduced [mission]: phase 2 -> 3
|
||||
19:40:01.648 SCRIPT : ERR SMOKE PASS: identified radio starts defence
|
||||
19:40:02.428 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-3 faction=USSR group=<0x00000001F2D2BB80> SCR_AIGroup position=<6537.27,117.422,5984.61> living=3
|
||||
19:40:02.432 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-1 faction=USSR group=<0x00000001E9C87360> SCR_AIGroup position=<4774.07,52.1732,5258.85> living=4
|
||||
19:40:02.432 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-2 faction=USSR group=<0x00000001E9C888A0> SCR_AIGroup position=<5316.58,26.5404,9368.74> living=4
|
||||
19:40:02.433 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-3 faction=USSR group=<0x00000001E9C89DE0> SCR_AIGroup position=<4521.96,16.1884,10611.7> living=4
|
||||
19:40:02.434 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-4 faction=USSR group=<0x00000001E9FE7250> SCR_AIGroup position=<7281.84,124.145,5265.1> living=4
|
||||
19:40:05.217 SCRIPT : ERR SMOKE PASS: occupied defence timer running
|
||||
19:40:08.262 SCRIPT : ERR SMOKE PASS: leaving area resets defence
|
||||
19:40:27.864 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-0 faction=USSR group=<0x00000001FA94AD20> SCR_AIGroup position=<1572.8,55.7939,5967.82> living=2
|
||||
19:40:27.865 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-1 faction=USSR group=<0x00000001FAB371B0> SCR_AIGroup position=<1607.65,57.6096,5964.7> living=1
|
||||
19:40:27.865 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-2 faction=USSR group=<0x00000001FB3204E0> SCR_AIGroup position=<1642.24,59.402,5959.41> living=1
|
||||
19:40:27.866 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-3 faction=USSR group=<0x00000001FDC24DA0> SCR_AIGroup position=<1675.72,60.3544,5949.43> living=2
|
||||
19:40:27.867 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-4 faction=USSR group=<0x00000001FDC2A2A0> SCR_AIGroup position=<1707.42,59.5963,5934.61> living=3
|
||||
19:40:27.868 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-5 faction=USSR group=<0x00000001FF49D960> SCR_AIGroup position=<1739.62,58.8701,5920.9> living=2
|
||||
19:40:27.869 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-6 faction=USSR group=<0x00000001FB323C20> SCR_AIGroup position=<1642.24,59.402,5959.41> living=7
|
||||
19:40:27.870 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-7 faction=USSR group=<0x00000001FC77AB30> SCR_AIGroup position=<1642.24,59.402,5959.41> living=7
|
||||
19:40:28.871 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport structure={38A8C0CE913C7CEA}Prefabs/Structures/Airport/LightRunway_01/LightRunway_01_blue.et position=<4836.74,28.418,11885>
|
||||
19:40:39.963 SCRIPT : Reintroduced [mission]: phase 3 -> 4
|
||||
19:40:39.965 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport search finished; airports=1
|
||||
19:40:39.965 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport=0 centre=<4788.55,26.6863,11528.9> runway/tower samples=438
|
||||
19:40:42.402 SCRIPT : ERR SMOKE PASS: continuous occupied defence completes
|
||||
19:40:42.402 SCRIPT : ERR SMOKE PASS: boarding extraction vehicle
|
||||
19:40:45.457 SCRIPT : ERR SMOKE PASS: physical extraction occupancy
|
||||
19:40:46.027 SCRIPT : Reintroduced [mission]: phase 4 -> 5
|
||||
19:40:46.028 SCRIPT : ERR SMOKE PASS: scripted escape reaches victory after physical vehicle occupancy
|
||||
19:40:46.028 SCRIPT : ERR SMOKE COMPLETE: terminal=5 lostHelicopterCase=0 playerDeathCase=0
|
||||
19:40:46.391 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME
|
||||
19:40:46.393 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:46.394 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:40:48.635 SCRIPT : ERR RESULT UI: player=1 title=You escaped
|
||||
19:40:48.635 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
|
||||
19:40:48.635 SCRIPT : -- Stack trace --
|
||||
19:40:48.635 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
|
||||
19:40:48.636 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
|
||||
19:40:48.636 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15
|
||||
19:40:48.636 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
|
||||
19:40:48.636 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
|
||||
19:40:48.636 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
|
||||
19:40:48.636 SCRIPT : OnUpdate() Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c : 191
|
||||
19:40:48.636 SCRIPT : -----------------
|
||||
19:40:48.637 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
|
||||
19:40:48.637 SCRIPT : -- Stack trace --
|
||||
19:40:48.637 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
|
||||
19:40:48.637 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
|
||||
19:40:48.637 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21
|
||||
19:40:48.637 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
|
||||
19:40:48.637 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
|
||||
19:40:48.637 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
|
||||
19:40:48.638 SCRIPT : OnUpdate() Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c : 191
|
||||
19:40:48.638 SCRIPT : -----------------
|
||||
19:40:48.639 SCRIPT (W): Slot_Chat Has no Content!
|
||||
19:40:48.639 SCRIPT (W): Slot_VON Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
19:40:48.640 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
19:40:48.642 SCRIPT : ERR RESULT UI: player=1 title=You escaped
|
||||
@@ -0,0 +1,13 @@
|
||||
Finite mine top-up coordinator proposal (target remains unchanged by this agent)
|
||||
|
||||
Apply fix.patch after /tmp/erri-mine-grant-1724/fix.patch and /tmp/erri-mine-transfer-1724/fix.patch. git apply --check passed against the current successor.
|
||||
Register only new tests/test_infantry_mine_coordinator.py; five other tests are existing programs adapted to the expanded production interface. Eight focused programs pass via python /tmp/erri-mine-resupply-1724/run_tests.py; logs retained alongside patch.
|
||||
|
||||
Production changes: ERR_HQ, ERR_InfantryResupply, ERR_InfantrySupplyPool.
|
||||
HQ tries existing infantry ammunition, then mounted ammunition, then one finite PMN4. Mine admission consumes only existing delivered <=120s complete mine reports with ReadyMines exactly 1; zero/unknown/multiple never establish demand. Original source/roster/radio/downlink/rendezvous/time/ownership checks remain shared. Optional original MineStock batch never delays normal magazine readiness. Its exact <=2 closed identities are copied once and paired with the SAME service m_Spent ledger, with unchanged 96-spent ceiling. No independent spent pool, new actor/vehicle, resource creation or engineer-attempt reset.
|
||||
|
||||
At physical rendezvous, select a permanently attributable original on-foot carrier with exactly one native-ready mine and a settled original startup grant (HQ.MineSupplyReady). Pin carrier across pre-submit retries. Leaf independently pins the exact existing carried mine and exact incoming original truck mine. At most one confirmed transfer ends the trip. An unsubmitted refusal may release its reservation; submitted identities remain spent permanently.
|
||||
|
||||
New service state7 retains both recipient LogisticsReservation and exact truck SupplyToken/held flag after failed/stopped unresolved mine submission. Owned waypoints and downlink are cleared immediately. PollTransfers releases matching claims only when leaf proves terminal custody or exact incoming deletion. Thus a second truck with a newer report after shared cooldown still cannot race the same carrier. Existing stopped/pool polling retains uncertainty without new orders. Pool diagnostics separately label magazines moved versus mines moved and include state7 among active claims.
|
||||
|
||||
No native run in this proposal; tests execute extracted production methods against native boundary doubles. Actual navigation, inventory capacity/transfer and multiplayer remain native qualification limits. Independent reviewer is testing removal of state7 as a negative control. No claim that this adds mine placement repeatability or mine resupply to zero-issue formations.
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine
|
||||
PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs
|
||||
@@ -0,0 +1,20 @@
|
||||
--- a/tests/test_admin_menu.py
|
||||
+++ b/tests/test_admin_menu.py
|
||||
@@ -10,7 +10,7 @@
|
||||
layout = ROOT / 'addons/core/UI/layouts/ERR/AdminMenu.layout'
|
||||
keys = re.findall(r'"([A-Za-z]+)"', body(source, 'static array<string> Keys('))
|
||||
settings = re.findall(r'"([A-Za-z]+)"', body(BASE / 'addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c', 'static array<string> Keys('))
|
||||
-assert len(keys) == 14 and set(settings) - set(keys) == {"automaticConvoyEnabled", "heliTimerMinutes", "keepWeaponOnUnconscious"}
|
||||
+assert len(keys) == 14 and set(settings) - set(keys) == {"automaticConvoyEnabled", "heliTimerMinutes", "keepWeaponOnUnconscious", "automaticEquipmentChancePercent"}
|
||||
assert set(keys) <= set(settings) # New text-command setting does not alter the fixed native menu.
|
||||
# Native layouts place child widget declarations inside an anonymous Children
|
||||
# block. A missing brace can preserve most widget names yet prevent menu load.
|
||||
@@ -109,7 +109,7 @@
|
||||
assert(Fields::Command("startTimeMinutes","14:25")=="mission time set 14:25");
|
||||
assert(Fields::Command("startDateCode","2026-09-19")=="mission date set 2026-09-19");
|
||||
assert(Fields::Command("weatherProfile","authored")=="mission weather set authored");
|
||||
- for(string key:{"heliTimer","prisonDistance","stingerChance","mission abandon","","bad"}){
|
||||
+ for(string key:{"automaticEquipmentChancePercent","heliTimer","prisonDistance","stingerChance","mission abandon","","bad"}){
|
||||
assert(Fields::Command(key,"1").empty());assert(!Fields::Available(key,true,true));
|
||||
}
|
||||
for(string key:{"reportIntervalSeconds","supportSquadLimit","responseRadiusMetres","convoyCount","antiAirChancePercent","antiPersonnelMineChancePercent"}){
|
||||
@@ -0,0 +1 @@
|
||||
Concurrent automatic-equipment production changes added automaticEquipmentChancePercent as a text-command-only setting plus the hq equipment alias. This test-only proposal keeps all 14 menu controls and the exact hidden-key set assertion, explicitly rejects the new key in menu Command/Available, and verifies the actual HQ text alias. No production bytes changed. Eleven settings/admin programs pass; ai_stinger_admin requires no change. Logs and run.py retained here. Proposal consists of test_admin_menu.py and test_admin_providers.py only.
|
||||
@@ -0,0 +1,11 @@
|
||||
import subprocess,os
|
||||
from pathlib import Path
|
||||
r=Path('/home/jakub/devel/escapistsrereintroduced');p=Path('/tmp/erri-mine-resupply-1724/compat');env=os.environ|{'PYTHONPATH':str(r/'tests'),'ERR_CONVOY_SETTINGS_ROOT':str(r)}
|
||||
names=sorted({x.name for x in (r/'tests').glob('test_admin*.py')}|{x.name for x in (r/'tests').glob('test*settings*.py')}|{'test_ai_stinger_admin.py','test_intel_admin.py'})
|
||||
failed=[]
|
||||
for name in names:
|
||||
f=p/'tests'/name
|
||||
if not f.exists():f=r/'tests'/name
|
||||
x=subprocess.run(['python',str(f)],env=env,text=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT);(p/(name+'.log')).write_text(x.stdout);print(name,x.returncode)
|
||||
if x.returncode:failed.append(name);print(x.stdout[-2500:])
|
||||
assert not failed,failed
|
||||
@@ -0,0 +1,2 @@
|
||||
PASS: actual menu command routing covers all fourteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets
|
||||
PASS: explicit weapon retention buttons use the same ready/authorized server command path
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths
|
||||
PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode
|
||||
@@ -0,0 +1 @@
|
||||
PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded
|
||||
@@ -0,0 +1 @@
|
||||
PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned
|
||||
PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults
|
||||
@@ -0,0 +1,129 @@
|
||||
"""Exercise real menu routing/capability bodies and the authored control contract.
|
||||
|
||||
This does not claim native focus, rendering or multiplayer RPC coverage.
|
||||
"""
|
||||
import re,os
|
||||
from pathlib import Path
|
||||
BASE=Path(os.environ.get("ERR_CONVOY_SETTINGS_ROOT", Path(__file__).resolve().parents[1]))
|
||||
from policy_harness import ROOT, body, run
|
||||
source = ROOT / 'addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c'
|
||||
layout = ROOT / 'addons/core/UI/layouts/ERR/AdminMenu.layout'
|
||||
keys = re.findall(r'"([A-Za-z]+)"', body(source, 'static array<string> Keys('))
|
||||
settings = re.findall(r'"([A-Za-z]+)"', body(BASE / 'addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c', 'static array<string> Keys('))
|
||||
assert len(keys) == 14 and set(settings) - set(keys) == {"automaticConvoyEnabled", "heliTimerMinutes", "keepWeaponOnUnconscious", "automaticEquipmentChancePercent"}
|
||||
assert set(keys) <= set(settings) # New text-command setting does not alter the fixed native menu.
|
||||
# Native layouts place child widget declarations inside an anonymous Children
|
||||
# block. A missing brace can preserve most widget names yet prevent menu load.
|
||||
def validate_layout_structure(text):
|
||||
tokens = re.findall(r'"(?:[^"\\]|\\.)*"|[{}]|[^\s{}"]+', text)
|
||||
stack = []
|
||||
prefix = []
|
||||
for token in tokens:
|
||||
if token.endswith('WidgetClass'):
|
||||
assert not stack or stack[-1] == 'children', 'Widget outside parent Children block: ' + token
|
||||
if token == '{':
|
||||
kind = 'property'
|
||||
if any(part.endswith('WidgetClass') for part in prefix):
|
||||
kind = 'widget'
|
||||
elif not prefix:
|
||||
kind = 'children'
|
||||
stack.append(kind)
|
||||
prefix = []
|
||||
elif token == '}':
|
||||
assert stack, 'Unexpected closing brace'
|
||||
stack.pop()
|
||||
prefix = []
|
||||
else:
|
||||
prefix.append(token)
|
||||
assert not stack, 'Unclosed layout block'
|
||||
validate_layout_structure(layout.read_text())
|
||||
try:
|
||||
validate_layout_structure(layout.read_text().replace('Name "JournalState"', 'Name "JournalState" {', 1))
|
||||
except AssertionError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError('Malformed child structure must be rejected')
|
||||
names = re.findall(r'\bName "([^"]+)"', layout.read_text())
|
||||
assert 'RandomDay_startTimeMinutes' in names
|
||||
assert len(names) == len(set(names)), 'Menu widget names must be unique'
|
||||
for key in keys:
|
||||
assert all(name in names for name in (key, 'Apply_' + key, 'Saved_' + key, ('Default_' if key == 'viewDistanceMetres' else 'Random_') + key, 'Help_' + key))
|
||||
for name in ('Close', 'SettingsPage', 'HQPage', 'JournalPage', 'JournalText', 'JournalContent', 'JournalScroll', 'PauseJournal', 'LatestJournal', 'Status'):
|
||||
assert name in names
|
||||
for name in re.findall(r'"([A-Za-z]+)"', body(source, 'override void OnMenuOpen(').split('foreach')[0]):
|
||||
assert name in names
|
||||
journal = body(source, 'static string JournalText(').replace('ERR_JournalText.Menu', 'ERR_JournalText::Menu')
|
||||
menu_format = body(ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c', 'static string Menu(')
|
||||
follow = body(source, 'static bool FollowJournal(')
|
||||
command = body(source, 'static string Command(')
|
||||
available = body(source, 'static bool Available(').replace('Keys().Contains(key)', 'Known(key)')
|
||||
known = ' || '.join('key == "' + key + '"' for key in keys)
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
struct string : std::string {
|
||||
using std::string::string;
|
||||
string(std::string s):std::string(s){}
|
||||
bool IsEmpty(){return empty();}
|
||||
int Length(){return size();}
|
||||
int IndexOf(string s){auto i=find(s);return i==npos?-1:int(i);}
|
||||
string Substring(int i,int n){return substr(i,n);}
|
||||
void Replace(string a,string b){size_t i=0;while((i=find(a,i))!=npos){replace(i,a.size(),b);i+=b.size();}}
|
||||
string Trim(){auto a=find_first_not_of(" \t\r\n");if(a==npos)return "";auto b=find_last_not_of(" \t\r\n");return substr(a,b-a+1);}
|
||||
};
|
||||
struct ERR_JournalText {
|
||||
''' + menu_format + r'''
|
||||
};
|
||||
struct Fields {
|
||||
static bool Known(string key) {return ''' + known + ';}\n' + command + '\n' + available + '\n' + follow + '\n' + journal + r'''
|
||||
};
|
||||
int main() {
|
||||
string raw="#24 t=7s M3 observe guard";
|
||||
assert(Fields::JournalText(raw)=="No. 24 t=7s M3 observe guard");
|
||||
assert(raw=="#24 t=7s M3 observe guard");
|
||||
assert(Fields::JournalText("unprefixed event")=="unprefixed event");
|
||||
assert(Fields::JournalText("#25 delivered #24")=="No. 25 delivered No. 24");
|
||||
assert(Fields::JournalText("").empty());
|
||||
assert(!Fields::FollowJournal(false,0.5,1000,400,false));
|
||||
assert(!Fields::FollowJournal(false,0,1000,400,false));
|
||||
assert(!Fields::FollowJournal(false,0.97,1000,400,false));
|
||||
assert(Fields::FollowJournal(false,1,1000,400,false));
|
||||
assert(Fields::FollowJournal(false,0,1000,400,true));
|
||||
assert(Fields::FollowJournal(false,0,200,400,false));
|
||||
assert(Fields::FollowJournal(true,0,0,400,false));
|
||||
std::vector<std::pair<string,string>> cases={
|
||||
{"radioDefenceSeconds","mission radio"},{"aiIntelChancePercent","intel carrying"},
|
||||
{"intelRevealChancePercent","intel reveal"},{"startTimeMinutes","mission time"},
|
||||
{"timeMultiplier","mission speed"},{"startDateCode","mission date"},
|
||||
{"weatherProfile","mission weather"},{"viewDistanceMetres","mission viewdistance"},{"reportIntervalSeconds","hq interval"},
|
||||
{"supportSquadLimit","hq squads"},{"responseRadiusMetres","hq radius"},{"convoyCount","hq convoy count"},{"antiAirChancePercent","hq aa"},{"antiPersonnelMineChancePercent","hq mines"}};
|
||||
for(auto pair:cases){
|
||||
assert(Fields::Command(pair.first," 42 ")==pair.second+" set 42");
|
||||
assert(Fields::Command(pair.first,"Random")==pair.second+" set Random");
|
||||
assert(Fields::Command(pair.first,"").empty());
|
||||
assert(Fields::Command(pair.first," \t ").empty());
|
||||
assert(Fields::Command(pair.first,string(33,'x')).empty());
|
||||
assert(Fields::Available(pair.first,true,true));
|
||||
}
|
||||
assert(Fields::Command("startTimeMinutes","14:25")=="mission time set 14:25");
|
||||
assert(Fields::Command("startDateCode","2026-09-19")=="mission date set 2026-09-19");
|
||||
assert(Fields::Command("weatherProfile","authored")=="mission weather set authored");
|
||||
for(string key:{"automaticEquipmentChancePercent","heliTimer","prisonDistance","stingerChance","mission abandon","","bad"}){
|
||||
assert(Fields::Command(key,"1").empty());assert(!Fields::Available(key,true,true));
|
||||
}
|
||||
for(string key:{"reportIntervalSeconds","supportSquadLimit","responseRadiusMetres","convoyCount","antiAirChancePercent","antiPersonnelMineChancePercent"}){
|
||||
assert(!Fields::Available(key,false,true));assert(Fields::Available(key,true,false));
|
||||
}
|
||||
assert(!Fields::Available("aiIntelChancePercent",true,false));
|
||||
assert(Fields::Available("aiIntelChancePercent",false,true));
|
||||
for(string key:{"intelRevealChancePercent","radioDefenceSeconds","startTimeMinutes","timeMultiplier","startDateCode","weatherProfile"}) assert(Fields::Available(key,false,false));
|
||||
}
|
||||
''')
|
||||
print('PASS: actual menu command routing covers all fourteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets')
|
||||
|
||||
assert all(name in names for name in ('KeepWeaponOn', 'KeepWeaponOff', 'Saved_keepWeaponOnUnconscious'))
|
||||
click=body(source,'protected void OnButton(')
|
||||
assert 'm_Controller.ERR_AdminSubmit("mission keepweapon set " + retain, true)' in click
|
||||
assert click.index('!m_Ready') < click.index('"mission keepweapon set "')
|
||||
print('PASS: explicit weapon retention buttons use the same ready/authorized server command path')
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
"""Exercise actual registration/dispatch bodies without requiring optional addons.
|
||||
Native script compilation and authenticated RPC tests remain separate checks.
|
||||
"""
|
||||
from policy_harness import ROOT, body, run
|
||||
core = ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c'
|
||||
hq = ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c'
|
||||
intel = ROOT/'addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c'
|
||||
source=core.read_text()
|
||||
assert 'ERR_HQ' not in source and 'ERR_IntelService' not in source
|
||||
assert 'modded class' not in (ROOT/'addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c').read_text()
|
||||
assert 'Admin().Register(new ERR_HQAdminProvider(hq))' in (ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c').read_text()
|
||||
assert 'Admin().Register(new ERR_IntelAdminProvider())' in (ROOT/'addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c').read_text()
|
||||
execute=body(core,'void Execute(')
|
||||
assert execute.index('if (!Replication.IsServer()') < execute.index('if (!authorized)') < execute.index('Extension(mode, arguments, replies)')
|
||||
assert 'arguments = "mission " + arguments' in execute
|
||||
|
||||
def translate(s):
|
||||
return (s.replace('protected ', '').replace('override ', '')
|
||||
.replace('array<string>', 'Array<string>&').replace('out int ', 'int& ')
|
||||
.replace('ERR_AdminProvider provider', 'Provider* provider').replace('ERR_GameMode mode','Mode* mode')
|
||||
.replace('foreach (Provider* provider : m_Providers)', 'for (Provider* provider : m_Providers)')
|
||||
.replace('ERR_CommandArguments.CoreSetting(', 'CoreSetting(')
|
||||
.replace('provider.', 'provider->').replace('m_Providers[i].', 'm_Providers[i]->')
|
||||
.replace('.IsEmpty()', '.empty()').replace('bool handled;', 'bool handled = false;'))
|
||||
methods='\n'.join(translate(body(core,sig)) for sig in ('void Register(', 'void Capabilities(', 'int JournalSequence(', 'bool ReadJournal(', 'protected string Setting(', 'protected bool Extension('))
|
||||
aliases='struct HQAliases{'+translate(body(hq,'override string Setting('))+'};\nstruct IntelAliases{'+translate(body(intel,'override string Setting('))+'};'
|
||||
help_bodies='struct HQHelp{'+translate(body(hq,'override bool Help('))+'};\nstruct IntelHelp{'+translate(body(intel,'override bool Help('))+'};'
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
using string=std::string;
|
||||
template<class T> struct Array:std::vector<T>{void Insert(T v){this->push_back(v);}void Clear(){this->clear();}int Count(){return this->size();}};
|
||||
struct Mode{};
|
||||
string CoreSetting(string section,string option){if(section=="intel"&&option=="reveal")return "intelRevealChancePercent";return "";}
|
||||
struct Provider{
|
||||
string id;int sequence=-1;int calls=0;bool accepts=false;int reads=0;
|
||||
string Id(){return id;}void Capabilities(Array<string>& values){values.Insert("supports="+id);}
|
||||
int JournalSequence(){return sequence;}
|
||||
bool ReadJournal(int after,Array<string>& lines,int& cursor,int limit=8){if(sequence<0)return false;reads++;cursor=std::min(sequence,after+limit);lines.Insert(id);return true;}
|
||||
string Setting(string section,string){return section==id?id+"Setting":"";}
|
||||
bool Execute(Mode*,string,Array<string>& replies){calls++;if(accepts)replies.Insert(id);return accepts;}
|
||||
};
|
||||
struct Admin{Array<Provider*>m_Providers;
|
||||
'''+methods+'};\n'+aliases+help_bodies+r'''
|
||||
int main(){
|
||||
Admin admin;Mode mode;Array<string> lines;int cursor=0;
|
||||
assert(admin.JournalSequence()==-1&&!admin.ReadJournal(0,lines,cursor));
|
||||
assert(admin.Setting("intel","reveal")=="intelRevealChancePercent"&&admin.Setting("hq","squads").empty());
|
||||
admin.Register(nullptr);Provider empty;admin.Register(&empty);assert(admin.m_Providers.empty());
|
||||
Provider hq;hq.id="hq";hq.sequence=12;hq.accepts=true;
|
||||
Provider intel;intel.id="intel";intel.accepts=true;
|
||||
admin.Register(&hq);admin.Register(&hq);admin.Register(&intel);assert(admin.m_Providers.size()==2);
|
||||
admin.Capabilities(lines);assert(lines.size()==2&&lines[0]=="supports=hq"&&lines[1]=="supports=intel");
|
||||
assert(admin.JournalSequence()==12);assert(admin.ReadJournal(2,lines,cursor,4)&&cursor==6&&lines.size()==1&&lines[0]=="hq");
|
||||
assert(hq.reads==1&&intel.reads==0);
|
||||
lines.clear();assert(admin.Extension(&mode,"status",lines)&&lines.size()==2&&hq.calls==1&&intel.calls==1);
|
||||
lines.clear();assert(admin.Extension(&mode,"hq show",lines)&&lines.size()==1&&hq.calls==2&&intel.calls==1);
|
||||
hq.accepts=false;intel.accepts=false;lines.clear();assert(!admin.Extension(&mode,"unknown",lines)&&lines.empty());
|
||||
Provider replacement;replacement.id="hq";replacement.sequence=20;
|
||||
admin.Register(&replacement);assert(admin.m_Providers.size()==2&&admin.JournalSequence()==20);
|
||||
HQAliases ha;IntelAliases ia;
|
||||
assert(ha.Setting("hq","equipment")=="automaticEquipmentChancePercent");
|
||||
assert(ha.Setting("hq","equipment")=="automaticEquipmentChancePercent");
|
||||
assert(ha.Setting("hq","interval")=="reportIntervalSeconds"&&ha.Setting("hq","squads")=="supportSquadLimit"&&ha.Setting("hq","radius")=="responseRadiusMetres");
|
||||
assert(ha.Setting("hq","aa")=="antiAirChancePercent"&&ha.Setting("hq","mines")=="antiPersonnelMineChancePercent");
|
||||
assert(ha.Setting("intel","carrying").empty()&&ha.Setting("hq","stinger")=="antiAirChancePercent");
|
||||
assert(ia.Setting("intel","chance")=="aiIntelChancePercent"&&ia.Setting("intel","carrying")=="aiIntelChancePercent");
|
||||
assert(ia.Setting("hq","chance").empty()&&ia.Setting("intel","spawn").empty());
|
||||
HQHelp hh;IntelHelp ih;lines.clear();assert(hh.Help("hq",lines)&&lines.size()<=5);lines.clear();assert(ih.Help("intel",lines)&&lines.size()<=4);
|
||||
lines.clear();assert(!hh.Help("unknown",lines)&&!ih.Help("unknown",lines)&&lines.empty());
|
||||
}
|
||||
''')
|
||||
print('PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded')
|
||||
@@ -0,0 +1,610 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
@@ -347,6 +347,10 @@
|
||||
foreach (ERR_HQUnit unit : m_Units) if (unit.Group == group) return unit.LogisticsReservation;
|
||||
return 0;
|
||||
}
|
||||
+ bool MineSupplyReady(SCR_AIGroup group, IEntity actor)
|
||||
+ {
|
||||
+ return Replication.IsServer() && MissionActive() && m_Equipment && m_Equipment.MineSupplyReady(group, actor);
|
||||
+ }
|
||||
bool ReserveLogistics(SCR_AIGroup group, int token)
|
||||
{
|
||||
if (!Replication.IsServer() || token <= 0 || !MissionActive()) return false;
|
||||
@@ -1292,6 +1296,10 @@
|
||||
// finite truck and delivered radio entries only after that scan fails.
|
||||
foreach (ERR_HQUnit mounted : m_Units)
|
||||
if (!ConvoyContact(mounted, now) && supply.TryPlanMounted(mounted, donor, m_Watch.Find(mounted.ForceSourceId), donorStatus, now)) return true;
|
||||
+ // Optional finite mines are last: only a delivered known one-mine formation
|
||||
+ // may top up an existing carrier; no new issue or engineer-task reset.
|
||||
+ foreach (ERR_HQUnit mineRecipient : m_Units)
|
||||
+ if (supply.TryPlanMines(mineRecipient, donor, m_Watch.Find(mineRecipient.ForceSourceId), donorStatus, now)) return true;
|
||||
return false;
|
||||
}
|
||||
protected void PlanConvoy(float now)
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c
|
||||
@@ -13,6 +13,13 @@
|
||||
&& entry.AmmoState.Complete && entry.AmmoState.Members == entry.Count
|
||||
&& entry.AmmoState.SmallArmsMuzzles > 0
|
||||
&& entry.AmmoState.SmallArmsRounds + entry.AmmoState.SmallArmsChambers <= entry.Count * 30;
|
||||
+ }
|
||||
+ static bool MinePair(ERR_HQWatchEntry recipient, ERR_HQWatchEntry donor, float now)
|
||||
+ {
|
||||
+ return Fresh(recipient, now) && Fresh(donor, now) && recipient.SourceId != donor.SourceId
|
||||
+ && recipient.AmmoState && recipient.AmmoState.Valid(recipient.Count)
|
||||
+ && recipient.AmmoState.MineComplete && recipient.AmmoState.MineMembers == recipient.Count
|
||||
+ && recipient.AmmoState.ReadyMines == 1 && vector.DistanceXZ(recipient.Position, donor.Position) <= 200;
|
||||
}
|
||||
static bool Pair(ERR_HQWatchEntry recipient, ERR_HQWatchEntry donor, float now)
|
||||
{
|
||||
@@ -32,18 +39,25 @@
|
||||
protected ERR_HQUnit m_Donor;
|
||||
protected ref array<IEntity> m_Stock = {};
|
||||
protected ref array<IEntity> m_Spent = {};
|
||||
+ protected ref array<IEntity> m_MineStock = {};
|
||||
+ protected ref ERR_ConvoyMineStock m_MineBatch;
|
||||
+ protected bool m_MineStockCaptured;
|
||||
+ protected bool m_MineTrip;
|
||||
+ protected int m_MineRecipientSlot = -1;
|
||||
+ protected int m_MinesDelivered;
|
||||
protected ref array<IEntity> m_Members = {};
|
||||
protected ref array<IEntity> m_Served = {};
|
||||
protected ref map<string, int> m_Consumed = new map<string, int>();
|
||||
protected ref map<string, float> m_NextAttempt = new map<string, float>();
|
||||
protected ref ERR_HQRoute m_Order;
|
||||
protected ref ERR_InfantryAmmoTransfer m_Move;
|
||||
+ protected ref ERR_InfantryMineTransfer m_MineMove;
|
||||
protected ref ERR_MountedResupply m_Mounted;
|
||||
protected IEntity m_Receiving;
|
||||
protected AIWaypoint m_MoveWaypoint;
|
||||
protected AIWaypoint m_HoldWaypoint;
|
||||
protected vector m_Rendezvous;
|
||||
- protected int m_State; // 0 stock startup, 1 idle, 2 truck downlink, 3 stopped status, 4 infantry downlink, 5 transfer
|
||||
+ protected int m_State; // 0 stock startup, 1 idle, 2 truck downlink, 3 stopped status, 4 infantry downlink, 5 transfer, 7 unresolved mine custody
|
||||
protected int m_Trip;
|
||||
protected int m_Token;
|
||||
protected int m_ReportId;
|
||||
@@ -73,16 +87,23 @@
|
||||
return m_State;
|
||||
}
|
||||
ERR_MountedResupply Mounted() { return m_Mounted; }
|
||||
- bool Unresolved() { return (m_Move && m_Move.Unresolved()) || (m_Mounted && m_Mounted.Unresolved()); }
|
||||
+ bool Unresolved() { return (m_Move && m_Move.Unresolved()) || (m_MineMove && m_MineMove.Unresolved()) || (m_Mounted && m_Mounted.Unresolved()); }
|
||||
protected void PollTransfers(float now)
|
||||
{
|
||||
if (m_Mounted) m_Mounted.Tick(now);
|
||||
if (m_State <= 1 && m_Move && !m_Move.Unresolved()) m_Move = null;
|
||||
+ if (m_MineMove && !m_MineMove.Unresolved() && (m_State <= 1 || m_State == 7))
|
||||
+ {
|
||||
+ m_MineMove = null;
|
||||
+ if (m_State == 7) Finish("mine custody settled; original claims released without retry or refund");
|
||||
+ }
|
||||
}
|
||||
int Delivered() { return m_Delivered; }
|
||||
+ int MinesDelivered() { return m_MinesDelivered; }
|
||||
int StockCount() { return m_Stock.Count(); }
|
||||
protected void Audit(string reason)
|
||||
{
|
||||
+ if (m_MineTrip) reason = "mine top-up: " + reason;
|
||||
m_Reason = reason;
|
||||
m_HQ.Journal().Write("INFANTRY SUPPLY", string.Format("convoy-slot=%1 trip=%2 state=%3 moved=%4 spent=%5/%6; %7", m_ConvoySlot, m_Trip, m_State, m_Delivered, m_Spent.Count(), m_Stock.Count(), reason), m_ReportId);
|
||||
}
|
||||
@@ -163,6 +184,7 @@
|
||||
if (!m_Convoy.CargoIssued) return;
|
||||
ERR_SupplyConvoyTask supply = ERR_SupplyConvoyTask.Cast(m_Convoy);
|
||||
if (supply && !supply.MagazinesIssued) return;
|
||||
+ if (supply) m_MineBatch = supply.MineStock;
|
||||
foreach (ERR_ConvoyCargoCallback operation : m_Convoy.Cargo)
|
||||
if (!operation.Finished) return;
|
||||
InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(m_Truck.Entity.FindComponent(InventoryStorageManagerComponent));
|
||||
@@ -177,17 +199,28 @@
|
||||
}
|
||||
m_State = 1; Audit("truck magazine identities captured once after startup; absent/looted stock is never replaced");
|
||||
}
|
||||
- bool TryPlan(ERR_HQUnit recipient, ERR_HQUnit donor, ERR_HQWatchEntry demand, ERR_HQWatchEntry donorStatus, float now)
|
||||
- {
|
||||
- if (!Current() || m_State != 1 || m_Move || (m_Mounted && m_Mounted.Busy()) || m_Trip >= 128 || !TruckValid()) return false;
|
||||
+ bool TryPlan(ERR_HQUnit recipient, ERR_HQUnit donor, ERR_HQWatchEntry demand, ERR_HQWatchEntry donorStatus, float now, bool mineTrip = false)
|
||||
+ {
|
||||
+ if (!Current() || m_State != 1 || m_Move || m_MineMove || (m_Mounted && m_Mounted.Busy()) || m_Trip >= 128 || !TruckValid()) return false;
|
||||
if (m_Truck.Combat.Held || m_Truck.SupplyToken > 0 || !recipient || !donor) return false;
|
||||
if (donor.Group != m_Truck.Group || recipient.HomeGuard || !Quiet(recipient) || !Quiet(donor)) return false;
|
||||
if (donor.Downlink || donor.PendingOrder || donor.PendingConvoyOrder) return false;
|
||||
- if (!ERR_InfantryResupplyRules.Pair(demand, donorStatus, now)) return false;
|
||||
+ if (mineTrip)
|
||||
+ {
|
||||
+ if (!ERR_InfantryResupplyRules.MinePair(demand, donorStatus, now)) return false;
|
||||
+ }
|
||||
+ else if (!ERR_InfantryResupplyRules.Pair(demand, donorStatus, now)) return false;
|
||||
if (demand.SourceId != recipient.ForceSourceId || donorStatus.SourceId != donor.ForceSourceId) return false;
|
||||
if (demand.MessageId <= m_Consumed.Get(demand.SourceId) || now < m_NextAttempt.Get(demand.SourceId)) return false;
|
||||
bool available;
|
||||
- foreach (IEntity magazine : m_Stock) if (magazine && !m_Spent.Contains(magazine) && Contains(m_Truck.Entity, magazine)) { available = true; break; }
|
||||
+ if (mineTrip)
|
||||
+ {
|
||||
+ if (!CaptureMines()) return false;
|
||||
+ foreach (IEntity mine : m_MineStock)
|
||||
+ if (ERR_InfantryMineTransfer.ReadyMine(mine) && !m_Spent.Contains(mine) && Contains(m_Truck.Entity, mine)) { available = true; break; }
|
||||
+ }
|
||||
+ else foreach (IEntity magazine : m_Stock) if (magazine && !m_Spent.Contains(magazine) && Contains(m_Truck.Entity, magazine)) { available = true; break; }
|
||||
+ if (m_Spent.Count() >= 96) return false;
|
||||
if (!available) return false;
|
||||
m_Members.Clear();
|
||||
for (int i = 0; i < recipient.StatusSampler.InitialStrength(); i++)
|
||||
@@ -202,18 +235,42 @@
|
||||
if (slot < 0) slot = 0; // Isolated legacy fixture uses the first convoy's range.
|
||||
int token = 100000 + slot * 128 + m_Trip + 1;
|
||||
if (!m_HQ.ReserveLogistics(recipient.Group, token)) { m_Recipient = null; m_Donor = null; return false; }
|
||||
+ m_MineTrip = mineTrip; m_MineRecipientSlot = -1; m_Receiving = null;
|
||||
m_Trip++; m_Token = token; m_Truck.SupplyToken = token; m_ReportId = demand.MessageId; m_TripDelivered = 0; m_Served.Clear();
|
||||
m_Consumed.Set(demand.SourceId, demand.MessageId); m_NextAttempt.Set(demand.SourceId, now + 180000);
|
||||
m_Deadline = Math.Min(now + 120000, demand.ObservedAt + 180000); m_State = 2;
|
||||
- m_Order = m_HQ.Downlink(donor.Group, "INFANTRY SUPPLY HOLD", "stop existing ammo truck and report position", m_ReportId);
|
||||
+ string purpose = "stop existing ammo truck and report position";
|
||||
+ if (mineTrip) purpose += "; one finite PMN4 top-up for an existing carrier";
|
||||
+ m_Order = m_HQ.Downlink(donor.Group, "INFANTRY SUPPLY HOLD", purpose, m_ReportId);
|
||||
if (!m_Order) Finish("truck radio downlink unavailable");
|
||||
else Audit("existing patrol reserved; truck hold awaits radio delivery");
|
||||
return true;
|
||||
}
|
||||
+ // Optional mine startup must never delay normal magazine readiness. Pin the
|
||||
+ // original batch during Stock(), then copy its closed exact identities once.
|
||||
+ protected bool CaptureMines()
|
||||
+ {
|
||||
+ ERR_SupplyConvoyTask supply = ERR_SupplyConvoyTask.Cast(m_Convoy);
|
||||
+ if (!supply || !m_MineBatch || supply.MineStock != m_MineBatch || !m_MineBatch.Complete()) return false;
|
||||
+ if (m_MineStockCaptured) return !m_MineStock.IsEmpty();
|
||||
+ m_MineStockCaptured = true;
|
||||
+ int count = m_MineBatch.Count();
|
||||
+ if (count < 0 || count > 2) return false;
|
||||
+ for (int index = 0; index < count; index++)
|
||||
+ {
|
||||
+ IEntity item = m_MineBatch.At(index);
|
||||
+ if (item && !m_MineStock.Contains(item)) m_MineStock.Insert(item);
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
+ bool TryPlanMines(ERR_HQUnit recipient, ERR_HQUnit donor, ERR_HQWatchEntry demand, ERR_HQWatchEntry donorStatus, float now)
|
||||
+ {
|
||||
+ return TryPlan(recipient, donor, demand, donorStatus, now, true);
|
||||
+ }
|
||||
// Share exact frozen inventory identities and global radio replay state.
|
||||
bool TryPlanMounted(ERR_HQUnit recipient, ERR_HQUnit donor, ERR_HQWatchEntry demand, ERR_HQWatchEntry donorStatus, float now)
|
||||
{
|
||||
- if (!Current() || m_State != 1 || m_Move || m_ConvoySlot < 0 || !TruckValid(true)) return false;
|
||||
+ if (!Current() || m_State != 1 || m_Move || m_MineMove || m_ConvoySlot < 0 || !TruckValid(true)) return false;
|
||||
if (m_Mounted && m_Mounted.Busy()) return false;
|
||||
if (!m_Mounted) m_Mounted = new ERR_MountedResupply(m_HQ, m_Mode, m_Convoy, m_ConvoySlot, m_Stock, m_Spent, m_Consumed, m_NextAttempt);
|
||||
return m_Mounted.Begin(recipient, donor, demand, donorStatus, now);
|
||||
@@ -239,10 +296,58 @@
|
||||
{
|
||||
Audit(reason);
|
||||
if (m_Move) m_Move.Stop();
|
||||
+ if (m_MineMove) m_MineMove.Stop();
|
||||
ClearWaypoints();
|
||||
+ m_Order = null;
|
||||
+ // A late native move must not race another truck's newer report. Retain both
|
||||
+ // exact claims until this one submitted identity proves custody or deletion.
|
||||
+ if (m_MineMove && m_MineMove.Unresolved()) { m_State = 7; return; }
|
||||
if (m_Recipient) m_HQ.ReleaseLogistics(m_Recipient.Group, m_Token);
|
||||
if (m_Truck && m_Truck.SupplyToken == m_Token) { m_Truck.SupplyToken = 0; m_Truck.SupplyHeld = false; }
|
||||
- m_Recipient = null; m_Donor = null; m_Order = null; m_Receiving = null; m_State = 1;
|
||||
+ m_Recipient = null; m_Donor = null; m_Order = null; m_Receiving = null; m_State = 1; m_MineTrip = false; m_MineRecipientSlot = -1;
|
||||
+ }
|
||||
+ protected void TransferMine(float now)
|
||||
+ {
|
||||
+ if (m_MineMove)
|
||||
+ {
|
||||
+ int result = m_MineMove.Tick(now);
|
||||
+ if (result == 0) return;
|
||||
+ if (result < 0) { Finish("native mine transfer failed or expired; exact submitted identity stays spent"); return; }
|
||||
+ m_MineMove = null; m_MinesDelivered++;
|
||||
+ Finish("one exact finite PMN4 confirmed in the original carrier inventory"); return;
|
||||
+ }
|
||||
+ if (!m_Receiving)
|
||||
+ {
|
||||
+ int strength = m_Recipient.StatusSampler.InitialStrength();
|
||||
+ for (int slot = 0; slot < strength && slot < 32; slot++)
|
||||
+ {
|
||||
+ IEntity actor = m_Recipient.StatusSampler.InitialMember(slot);
|
||||
+ if (!actor || !m_Members.Contains(actor) || !m_Recipient.StatusSampler.CanAttribute(slot, actor, false)) continue;
|
||||
+ if (!ERR_Actors.CanFight(actor) || vector.DistanceXZ(actor.GetOrigin(), m_Truck.Entity.GetOrigin()) > 4) continue;
|
||||
+ if (!m_HQ.MineSupplyReady(m_Recipient.Group, actor)) continue;
|
||||
+ if (!ERR_InfantryMineTransfer.Carrier(actor, m_Recipient.Group)) continue;
|
||||
+ m_Receiving = actor; m_MineRecipientSlot = slot; break;
|
||||
+ }
|
||||
+ if (!m_Receiving) return;
|
||||
+ }
|
||||
+ if (!m_HQ.MineSupplyReady(m_Recipient.Group, m_Receiving)) return;
|
||||
+ if (!m_Recipient.StatusSampler.CanAttribute(m_MineRecipientSlot, m_Receiving, false)
|
||||
+ || !ERR_InfantryMineTransfer.Carrier(m_Receiving, m_Recipient.Group))
|
||||
+ { Finish("original one-mine carrier lost or no longer has exactly one usable mine"); return; }
|
||||
+ foreach (IEntity mine : m_MineStock)
|
||||
+ {
|
||||
+ if (!ERR_InfantryMineTransfer.ReadyMine(mine) || m_Spent.Contains(mine) || !Contains(m_Truck.Entity, mine)) continue;
|
||||
+ ERR_FiniteMagazineReservation reservation = new ERR_FiniteMagazineReservation(m_MineStock, m_Spent, mine);
|
||||
+ if (!reservation.Reserve()) continue;
|
||||
+ m_MineMove = new ERR_InfantryMineTransfer(m_Mode, m_Truck.Entity, m_Truck.Group, m_Receiving, m_Recipient.Group,
|
||||
+ mine, reservation, m_Recipient.StatusSampler, m_MineRecipientSlot);
|
||||
+ m_MineMove.Tick(now);
|
||||
+ // The leaf commits before the one native move. Only an unsubmitted refusal
|
||||
+ // may release its tentative claim while the same carrier approaches/retries.
|
||||
+ if (m_MineMove.Submitted()) return;
|
||||
+ reservation.ReleaseUnsubmitted(); m_MineMove = null;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
protected void Transfer(float now)
|
||||
{
|
||||
@@ -287,6 +392,7 @@
|
||||
m_NextTick = now + 1000;
|
||||
PollTransfers(now);
|
||||
if (m_Mounted && m_Mounted.Busy()) return;
|
||||
+ if (m_State == 7) return;
|
||||
if (m_State == 0) { Stock(now); return; }
|
||||
if (m_State == 1)
|
||||
{
|
||||
@@ -331,9 +437,17 @@
|
||||
if (delivered < 0 || !Waypoints()) { Finish("infantry order interrupted or native waypoint creation failed"); return; }
|
||||
m_Order = null; m_State = 5; Audit("infantry received reported rendezvous; native movement and physical transfer required");
|
||||
}
|
||||
- if (m_State == 5) Transfer(now);
|
||||
- }
|
||||
- string Status() { return string.Format("Infantry supply: state=%1 trips=%2 moved=%3 stock=%4 spent=%5; %6", State(), m_Trip, m_Delivered, m_Stock.Count(), m_Spent.Count(), m_Reason); }
|
||||
+ if (m_State == 5)
|
||||
+ {
|
||||
+ if (m_MineTrip) TransferMine(now);
|
||||
+ else Transfer(now);
|
||||
+ }
|
||||
+ }
|
||||
+ string Status()
|
||||
+ {
|
||||
+ string detail = string.Format("Ground supply: state=%1 trips=%2 infantry moved=%3 stock=%4 spent=%5", State(), m_Trip, m_Delivered, m_Stock.Count(), m_Spent.Count());
|
||||
+ return detail + string.Format("; mines moved=%1 initial=%2; %3", m_MinesDelivered, m_MineStock.Count(), m_Reason);
|
||||
+ }
|
||||
void Stop()
|
||||
{
|
||||
if (m_Stopped) return;
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c
|
||||
@@ -66,15 +66,15 @@
|
||||
}
|
||||
string Status()
|
||||
{
|
||||
- int trucks, working, moved, stock;
|
||||
+ int trucks, working, moved, stock, mines;
|
||||
foreach (ERR_InfantryResupply service : m_Services)
|
||||
{
|
||||
if (!service) continue;
|
||||
trucks++;
|
||||
- if (service.State() >= 2 && service.State() <= 6) working++;
|
||||
- moved += service.Delivered(); stock += service.StockCount();
|
||||
+ if (service.State() >= 2 && service.State() <= 7) working++;
|
||||
+ moved += service.Delivered(); stock += service.StockCount(); mines += service.MinesDelivered();
|
||||
}
|
||||
- return string.Format("Ground supply: %1 original trucks; %2 active trips; infantry moved=%3 original stock=%4", trucks, working, moved, stock);
|
||||
+ return string.Format("Ground supply: %1 original trucks; %2 active trips; magazines moved=%3 original magazine stock=%4; mines moved=%5", trucks, working, moved, stock, mines);
|
||||
}
|
||||
void Stop()
|
||||
{
|
||||
--- a/tests/test_hq_multiconvoy_supply.py
|
||||
+++ b/tests/test_hq_multiconvoy_supply.py
|
||||
@@ -8,7 +8,7 @@
|
||||
methods='\n'.join(body(p,s) for s in ('void PlanResupply(float now)','bool PlanResupplyTask(ERR_InfantryResupply supply, float now)'))
|
||||
methods=methods.replace('null','nullptr').replace('foreach (','for (')
|
||||
methods=methods.replace('ERR_HQUnit donor;','ERR_HQUnit donor=nullptr;')
|
||||
-for name in ('m_Resupply','supply','task','unit','donor','recipient','mounted','m_Watch'):
|
||||
+for name in ('m_Resupply','supply','task','unit','donor','recipient','mounted','mineRecipient','m_Watch'):
|
||||
methods=methods.replace(name+'.',name+'->')
|
||||
methods=methods.replace('task->Vehicles[1].','task->Vehicles[1]->')
|
||||
run(r'''
|
||||
@@ -24,10 +24,11 @@
|
||||
struct Vehicle{int Group=0;};
|
||||
struct Task{bool Stopped=false,Ready=true;Array<Vehicle*> Vehicles;};using ERR_ConvoyTask=Task*;
|
||||
struct Supply{
|
||||
- int state=1,calls=0,accepted=0,mountedCalls=0,mountedAccepted=0;bool infantry=true,mounted=false;Task*task=nullptr;Unit* recipient=nullptr;Entry* demand=nullptr;Entry* donorReport=nullptr;
|
||||
+ int state=1,calls=0,accepted=0,mountedCalls=0,mountedAccepted=0;bool infantry=true,mounted=false,mines=false;int mineCalls=0,mineAccepted=0;Task*task=nullptr;Unit* recipient=nullptr;Entry* demand=nullptr;Entry* donorReport=nullptr;
|
||||
int State(){return state;}Task*Task(){return task;}
|
||||
bool TryPlan(Unit*r,Unit*,Entry*d,Entry*s,float){calls++;if(!infantry||r!=recipient||!d||!s||d!=demand||s!=donorReport)return false;accepted++;state=2;return true;}
|
||||
bool TryPlanMounted(Unit*r,Unit*,Entry*d,Entry*s,float){mountedCalls++;if(!mounted||r!=recipient||d!=demand||s!=donorReport||!d||!s)return false;mountedAccepted++;state=6;return true;}
|
||||
+ bool TryPlanMines(Unit*r,Unit*,Entry*d,Entry*s,float){mineCalls++;if(!mines||r!=recipient||d!=demand||s!=donorReport||!d||!s)return false;mineAccepted++;state=2;return true;}
|
||||
};using ERR_InfantryResupply=Supply*;
|
||||
struct Pool{Array<Supply*> services;int Count(){return services.Count();}Supply*At(int i){return services[i];}};
|
||||
struct HQ{
|
||||
@@ -42,6 +43,10 @@
|
||||
watch.delivered={{"a",&aStatus},{"b",&bStatus},{"recipient",&demand}};pool.services={&first,&second};hq.m_Resupply=&pool;hq.m_Watch=&watch;hq.m_Units={&da,&db,&recipient};}
|
||||
};
|
||||
int main(){
|
||||
+ {Fixture f;f.first.infantry=false;f.first.mounted=false;f.first.mines=true;f.hq.PlanResupply(100);assert(f.first.mineAccepted==1&&f.first.mountedCalls>0&&f.second.calls==0);}
|
||||
+ {Fixture f;f.first.mines=true;f.hq.PlanResupply(100);assert(f.first.accepted==1&&f.first.mineCalls==0);}
|
||||
+ {Fixture f;f.first.infantry=false;f.first.mounted=true;f.first.mines=true;f.hq.PlanResupply(100);assert(f.first.mountedAccepted==1&&f.first.mineCalls==0);}
|
||||
+
|
||||
{Fixture f;f.first.mounted=true;f.hq.PlanResupply(100);assert(f.first.accepted==1&&f.first.mountedCalls==0);}
|
||||
{Fixture f;f.first.infantry=false;f.first.mounted=true;f.hq.PlanResupply(100);assert(f.first.accepted==0&&f.first.mountedAccepted==1&&f.second.calls==0);}
|
||||
{Fixture f;f.first.infantry=false;f.first.mounted=true;f.recipient.fighting=true;f.hq.PlanResupply(100);assert(f.first.mountedAccepted==0);}
|
||||
--- /dev/null
|
||||
+++ b/tests/test_infantry_mine_coordinator.py
|
||||
@@ -0,0 +1,77 @@
|
||||
+"""Actual mine top-up selector plus the real shared finite reservation; native leaf is doubled."""
|
||||
+import os,re
|
||||
+from pathlib import Path
|
||||
+from policy_harness import ROOT,body,run
|
||||
+from test_finite_magazine_reservation import translated_reservation
|
||||
+p=Path(os.environ.get('ERR_INFANTRY_RESUPPLY_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c'))
|
||||
+s=body(p,'protected void TransferMine(').replace('protected ','').replace('null','nullptr')
|
||||
+s=s.replace('ERR_InfantryMineTransfer.', 'ERR_InfantryMineTransfer::').replace('ERR_Actors.', 'ERR_Actors::').replace('vector.DistanceXZ','Vec::DistanceXZ')
|
||||
+s=s.replace('foreach (IEntity mine : m_MineStock)','for (IEntity mine : m_MineStock)')
|
||||
+s=s.replace('ERR_FiniteMagazineReservation reservation', 'ERR_FiniteMagazineReservation* reservation').replace('new ERR_FiniteMagazineReservation(m_MineStock, m_Spent, mine)', 'new ERR_FiniteMagazineReservation(&m_MineStock, &m_Spent, mine)')
|
||||
+for x in ['m_MineMove','m_Recipient','m_Truck','m_HQ','actor','m_Receiving','reservation']:s=s.replace(x+'.',x+'->')
|
||||
+for x in ['StatusSampler','Entity']:s=s.replace(x+'.',x+'->')
|
||||
+run(r'''
|
||||
+#include <cassert>
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+#include <algorithm>
|
||||
+#include <cmath>
|
||||
+using string=std::string;
|
||||
+struct Vec{float x=0;static float DistanceXZ(Vec a,Vec b){return std::abs(a.x-b.x);}};
|
||||
+struct Group{};struct Mode{};struct Entity{bool ready=false,fight=true,owned=true,grant=true;int mines=1;Vec pos;Vec GetOrigin(){return pos;}};using IEntity=Entity*;
|
||||
+template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;int Count(){return this->size();}void Insert(T v){this->push_back(v);}bool Contains(T v){return std::find(this->begin(),this->end(),v)!=this->end();}void RemoveItem(T v){this->erase(std::remove(this->begin(),this->end(),v),this->end());}};
|
||||
+'''+translated_reservation()+r'''
|
||||
+struct Sampler{Array<IEntity>original;int InitialStrength(){return original.Count();}IEntity InitialMember(int i){return original[i];}bool CanAttribute(int i,IEntity x,bool){return i>=0&&i<InitialStrength()&&original[i]==x&&x->owned;}};
|
||||
+struct Unit{struct Group*Group;Sampler*StatusSampler;};struct Truck{IEntity Entity;struct Group*Group;};
|
||||
+struct HQ{bool MineSupplyReady(Group*,IEntity x){return x&&x->grant;}};
|
||||
+struct ERR_Actors{static bool CanFight(IEntity x){return x&&x->fight;}};
|
||||
+struct ERR_InfantryMineTransfer{
|
||||
+ static inline bool accept=true;static inline int made=0;IEntity item,actor;ERR_FiniteMagazineReservation*r;bool submitted=false;int result=0;
|
||||
+ ERR_InfantryMineTransfer(Mode*,IEntity,Group*,IEntity a,Group*,IEntity i,ERR_FiniteMagazineReservation*q,Sampler*,int):item(i),actor(a),r(q){made++;}
|
||||
+ static bool ReadyMine(IEntity x){return x&&x->ready;}
|
||||
+ static IEntity Carrier(IEntity x,Group*){return x&&x->mines==1?x:nullptr;}
|
||||
+ int Tick(float){if(accept&&!submitted){assert(r->Commit());submitted=true;}return result;}
|
||||
+ bool Submitted(){return submitted;}
|
||||
+};
|
||||
+struct Service{
|
||||
+ HQ*m_HQ;Mode*m_Mode;Unit*m_Recipient;Truck*m_Truck;IEntity m_Receiving=nullptr;int m_MineRecipientSlot=-1,m_MinesDelivered=0,finishes=0;ERR_InfantryMineTransfer*m_MineMove=nullptr;
|
||||
+ Array<IEntity>m_Members,m_MineStock,m_Spent,cargo;
|
||||
+ bool Contains(IEntity,IEntity x){return cargo.Contains(x);}void Finish(string){finishes++;}
|
||||
+'''+s+r'''
|
||||
+};
|
||||
+struct Fixture{HQ h;Mode mode;Group g,d;Entity actor,other,truck,mine,second;Sampler sampler;Unit unit;Truck donor;Service s;
|
||||
+ Fixture():sampler{{&actor,&other}},unit{&g,&sampler},donor{&truck,&d}{mine.ready=second.ready=true;s.m_HQ=&h;s.m_Mode=&mode;s.m_Recipient=&unit;s.m_Truck=&donor;s.m_Members={&actor,&other};s.m_MineStock={&mine,&second};s.cargo=s.m_MineStock;ERR_InfantryMineTransfer::accept=true;}
|
||||
+};
|
||||
+int main(){
|
||||
+ // Never grant mines to zero/two-mine members or to unsettled initial grants.
|
||||
+ for(int refusal=0;refusal<6;refusal++){Fixture f;f.other.mines=0;
|
||||
+ if(refusal==0)f.actor.mines=0;if(refusal==1)f.actor.mines=2;if(refusal==2)f.actor.grant=false;if(refusal==3)f.actor.owned=false;if(refusal==4)f.actor.pos.x=5;if(refusal==5)f.actor.fight=false;
|
||||
+ f.s.TransferMine(0);assert(!f.s.m_MineMove&&f.s.m_Spent.empty()&&!f.s.m_Receiving);}
|
||||
+ // One exact finite original identity and the same shared spent list.
|
||||
+ {Fixture f;f.s.TransferMine(0);auto*leaf=f.s.m_MineMove;assert(leaf&&leaf->actor==&f.actor&&leaf->item==&f.mine&&f.s.m_Spent.Count()==1&&f.s.m_Spent[0]==&f.mine);
|
||||
+ f.s.TransferMine(1000);assert(f.s.m_MineMove==leaf&&f.s.m_Spent.Count()==1);leaf->result=1;f.s.TransferMine(2000);assert(!f.s.m_MineMove&&f.s.m_MinesDelivered==1&&f.s.finishes==1&&f.s.m_Spent.Count()==1);}
|
||||
+ // Preflight refusal may release only before native submission, keeping actor pinned.
|
||||
+ {Fixture f;ERR_InfantryMineTransfer::accept=false;f.s.TransferMine(0);assert(!f.s.m_MineMove&&f.s.m_Spent.empty()&&f.s.m_Receiving==&f.actor);
|
||||
+ f.actor.mines=0;ERR_InfantryMineTransfer::accept=true;f.s.TransferMine(1000);assert(!f.s.m_MineMove&&f.s.finishes==1&&f.s.m_Spent.empty());}
|
||||
+ {Fixture f;ERR_InfantryMineTransfer::accept=false;f.s.TransferMine(0);f.actor.grant=false;ERR_InfantryMineTransfer::accept=true;f.s.TransferMine(1000);assert(!f.s.m_MineMove&&f.s.m_Spent.empty());}
|
||||
+ // Captured/absent original or already-spent cargo is unavailable; no substitute.
|
||||
+ {Fixture f;f.s.cargo.clear();f.s.TransferMine(0);assert(!f.s.m_MineMove&&f.s.m_Spent.empty());}
|
||||
+ {Fixture f;f.s.m_Spent=f.s.m_MineStock;f.s.TransferMine(0);assert(!f.s.m_MineMove&&f.s.m_Spent.Count()==2);}
|
||||
+ {Fixture f;for(int i=0;i<96;i++)f.s.m_Spent.Insert(&f.truck);f.s.TransferMine(0);assert(!f.s.m_MineMove&&f.s.m_Spent.Count()==96);}
|
||||
+ // Failure delegates cleanup while retaining the submitted leaf and spent item.
|
||||
+ {Fixture f;f.s.TransferMine(0);auto*leaf=f.s.m_MineMove;leaf->result=-1;f.s.TransferMine(1000);assert(f.s.m_MineMove==leaf&&f.s.finishes==1&&f.s.m_Spent.Count()==1);}
|
||||
+}
|
||||
+'''.replace('if(refusal==0)f.actor.mines=0;if(refusal==1)f.actor.mines=2;if(refusal==2)f.actor.grant=false;if(refusal==3)f.actor.owned=false;if(refusal==4)f.actor.pos.x=5;if(refusal==5)f.actor.fight=false;', 'if(refusal==0){f.actor.mines=0;}if(refusal==1){f.actor.mines=2;}if(refusal==2){f.actor.grant=false;}if(refusal==3){f.actor.owned=false;}if(refusal==4){f.actor.pos.x=5;}if(refusal==5){f.actor.fight=false;}'))
|
||||
+print('PASS: actual one-mine original carrier selection, settled startup, shared finite claims, no refund after submission')
|
||||
+h=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
+w=body(h,'bool MineSupplyReady(').replace('SCR_AIGroup group','Group* group').replace('Replication.','Replication::').replace('m_Equipment.','m_Equipment->')
|
||||
+run(r'''
|
||||
+#include <cassert>
|
||||
+struct Group{};struct Item{};using IEntity=Item*;
|
||||
+struct Equipment{bool ready=false;Group*group=nullptr;IEntity actor=nullptr;bool MineSupplyReady(Group*g,IEntity a){return ready&&g==group&&a==actor;}};
|
||||
+struct Replication{static inline bool server=true;static bool IsServer(){return server;}};
|
||||
+struct HQ{Equipment*m_Equipment=nullptr;bool active=true;bool MissionActive(){return active;}
|
||||
+'''+w+r'''};
|
||||
+int main(){Group group,other;Item actor;Equipment e;e.group=&group;e.actor=&actor;HQ h;assert(!h.MineSupplyReady(&group,&actor));h.m_Equipment=&e;assert(!h.MineSupplyReady(&group,&actor));e.ready=true;assert(h.MineSupplyReady(&group,&actor));assert(!h.MineSupplyReady(&other,&actor));h.active=false;assert(!h.MineSupplyReady(&group,&actor));h.active=true;Replication::server=false;assert(!h.MineSupplyReady(&group,&actor));}
|
||||
+''')
|
||||
+print('PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed')
|
||||
--- a/tests/test_infantry_resupply_coordinator.py
|
||||
+++ b/tests/test_infantry_resupply_coordinator.py
|
||||
@@ -13,7 +13,7 @@
|
||||
for kind in ['ERR_HQWatchEntry','Physics']:
|
||||
s=re.sub(r'\b'+kind+r' (\w+)',kind+r'* \1',s)
|
||||
# Enforce native entity/reference member access becomes C++ pointer member access.
|
||||
- for name in ['entry','recipient','donor','stopped','m_HQ','m_Move','m_Mounted','m_Recipient','m_Donor','m_Truck','m_Order','physics']:
|
||||
+ for name in ['entry','recipient','donor','stopped','m_HQ','m_Move','m_MineMove','m_Mounted','m_Recipient','m_Donor','m_Truck','m_Order','physics']:
|
||||
s=s.replace(name+'.',name+'->')
|
||||
for name in ['AmmoState','Group','Combat','Entity']:
|
||||
s=s.replace(name+'.',name+'->')
|
||||
@@ -50,16 +50,20 @@
|
||||
struct Watch {ERR_HQWatchEntry* entry=nullptr;ERR_HQWatchEntry* Find(int){return entry;}};
|
||||
struct HQ {int token=7,releases=0,downlinks=0;struct Watch watch;Route* next=nullptr;int Journal(){return 0;}int LogisticsToken(Group*){return token;}void ReleaseLogistics(Group*,int owned){releases++;if(token==owned)token=0;}struct Watch* Watch(){return &watch;} Route* Downlink(Group*,string,string,int){downlinks++;return next;}};
|
||||
struct Service {
|
||||
- HQ* m_HQ;Truck* m_Truck;Unit* m_Recipient;Unit* m_Donor;Leaf* m_Move=nullptr;Mounted*m_Mounted=nullptr;Route* m_Order=nullptr;Entity* m_Receiving=nullptr;
|
||||
+ HQ* m_HQ;Truck* m_Truck;Unit* m_Recipient;Unit* m_Donor;Leaf* m_Move=nullptr;Leaf*m_MineMove=nullptr;bool m_MineTrip=false;int m_MineRecipientSlot=-1;Mounted*m_Mounted=nullptr;Route* m_Order=nullptr;Entity* m_Receiving=nullptr;
|
||||
Waypoint* m_MoveWaypoint=nullptr;Waypoint* m_HoldWaypoint=nullptr;Vec m_Rendezvous;int m_State=2,m_Token=7,m_ReportId=11;
|
||||
float m_NextTick=0,m_Deadline=200000,m_HeldAt=-1;bool m_Stopped=false,valid=true,quiet=true,roster=true,waypoints=true;int audits=0,transfers=0,waypointCalls=0,stocks=0;
|
||||
- bool Current(){return !m_Stopped;}bool TruckValid(){return valid;}bool Quiet(Unit*){return quiet;}bool Roster(){return roster;}void Audit(string){audits++;}void Stock(float){stocks++;}bool Waypoints(){waypointCalls++;return waypoints;}void Transfer(float){transfers++;}
|
||||
+ bool Current(){return !m_Stopped;}bool TruckValid(){return valid;}bool Quiet(Unit*){return quiet;}bool Roster(){return roster;}void Audit(string){audits++;}void Stock(float){stocks++;}bool Waypoints(){waypointCalls++;return waypoints;}void Transfer(float){transfers++;}int mineTransfers=0;void TransferMine(float){mineTransfers++;}
|
||||
METHODS
|
||||
};
|
||||
struct Fixture {Physics physics;Entity entity{&physics};Combat combat;Truck truck;Group group,donorGroup;Unit recipient{&group},donor{&donorGroup};HQ hq;Route order,next;Service s;
|
||||
Fixture(){truck.Combat=&combat;truck.Entity=&entity;s.m_HQ=&hq;s.m_Truck=&truck;s.m_Recipient=&recipient;s.m_Donor=&donor;s.m_Order=ℴhq.next=&next;}
|
||||
};
|
||||
int main(){
|
||||
+ {Fixture f;Leaf leaf;f.s.m_MineMove=&leaf;f.s.m_MineTrip=true;f.truck.SupplyHeld=true;f.s.Stop();assert(f.s.m_State==7&&f.hq.token==7&&f.truck.SupplyHeld&&f.s.m_Recipient);
|
||||
+ f.s.Tick(200000);assert(f.hq.token==7&&f.s.m_State==7&&f.s.transfers==0&&f.s.mineTransfers==0);leaf.unresolved=false;f.s.Tick(201000);assert(f.hq.token==0&&!f.truck.SupplyHeld&&f.s.m_State==1&&!f.s.m_MineMove);}
|
||||
+ {Fixture f;f.s.m_State=5;f.s.m_MineTrip=true;f.s.Tick(0);assert(f.s.mineTransfers==1&&f.s.transfers==0);}
|
||||
+
|
||||
Ammo ammo;ERR_HQWatchEntry demand,donor;demand.AmmoState=&ammo;donor.SourceId=2;donor.Position={200,500,0};
|
||||
assert(ERR_InfantryResupplyRules::Need(&demand,120000));assert(ERR_InfantryResupplyRules::Pair(&demand,&donor,120000));
|
||||
assert(!ERR_InfantryResupplyRules::Fresh(&demand,120001));assert(!ERR_InfantryResupplyRules::Fresh(nullptr,0));
|
||||
@@ -119,7 +123,8 @@
|
||||
struct Service{Unit* m_Recipient;Mode* m_Mode;Array<Actor*> m_Members;bool Quiet(Unit*){return true;}
|
||||
METHOD
|
||||
};
|
||||
-int main(){Group group;Actor soldier;soldier.group=&group;Agent agent{&soldier};group.agents={&agent};Sampler sampler{&group,false,1,{&soldier}};Unit unit{&group,&sampler};Mode mode;Service service{&unit,&mode,{&soldier}};assert(service.Roster());sampler.released=true;assert(!sampler.CanAttribute(0,&soldier));
|
||||
+int main(){
|
||||
+Group group;Actor soldier;soldier.group=&group;Agent agent{&soldier};group.agents={&agent};Sampler sampler{&group,false,1,{&soldier}};Unit unit{&group,&sampler};Mode mode;Service service{&unit,&mode,{&soldier}};assert(service.Roster());sampler.released=true;assert(!sampler.CanAttribute(0,&soldier));
|
||||
// Permanent sampler release survives returning to the physical group.
|
||||
assert(!service.Roster());sampler.released=false;assert(service.Roster());
|
||||
sampler.strength=33;assert(!service.Roster());sampler.strength=0;assert(!service.Roster());sampler.strength=1;
|
||||
--- a/tests/test_infantry_resupply_planning.py
|
||||
+++ b/tests/test_infantry_resupply_planning.py
|
||||
@@ -13,11 +13,11 @@
|
||||
s=re.sub(r'foreach \((\w+) (\w+) : ([^)]+)\)',r'for (\1 \2 : \3)',s)
|
||||
for typ in ('InventoryStorageManagerComponent','ERR_ForceRecord','ERR_SupplyConvoyTask'):
|
||||
s=re.sub(r'\b'+typ+r' (?=\w)',typ+'* ',s)
|
||||
- for name in ('ERR_ForceRules','ERR_InfantryResupplyRules','ERR_ConvoyRules','ERR_ForceKind','ERR_ConvoyResources','ERR_Inventory','ERR_Actors','SCR_FactionManager','CompartmentAccessComponent','Replication','Math'):
|
||||
+ for name in ('ERR_ForceRules','ERR_InfantryResupplyRules','ERR_InfantryMineTransfer','ERR_ConvoyRules','ERR_ForceKind','ERR_ConvoyResources','ERR_Inventory','ERR_Actors','SCR_FactionManager','CompartmentAccessComponent','Replication','Math'):
|
||||
s=s.replace(name+'.',name+'::')
|
||||
s=s.replace('ERR_SupplyConvoyTask.Cast','ERR_SupplyConvoyTask::Cast').replace('FindComponent(BaseMagazineComponent)','HasMagazine()')
|
||||
s=s.replace('vector.DistanceXZ','Vec::DistanceXZ').replace('InventoryStorageManagerComponent.Cast','InventoryStorageManagerComponent::Cast').replace('FindComponent(InventoryStorageManagerComponent)','FindComponent()')
|
||||
- for name in ('m_Mode','m_HQ','m_Convoy','m_Truck','m_Recipient','m_Donor','m_Move','m_Mounted','recipient','donor','demand','donorStatus','entry','operation','inventory','item','owner','record','actor','agent','unit','m_MoveWaypoint','m_HoldWaypoint','magazine','supply','m_Consumed','m_NextAttempt'):
|
||||
+ for name in ('m_Mode','m_HQ','m_Convoy','m_Truck','m_Recipient','m_Donor','m_Move','m_MineMove','m_MineBatch','m_Mounted','recipient','donor','demand','donorStatus','entry','operation','inventory','item','owner','record','actor','agent','unit','m_MoveWaypoint','m_HoldWaypoint','magazine','supply','m_Consumed','m_NextAttempt'):
|
||||
s=s.replace(name+'.',name+'->')
|
||||
for name in ('Receipt','Entity','Group','Utility','StatusSampler','AmmoState','Combat','m_Perception'):
|
||||
s=s.replace(name+'.',name+'->')
|
||||
@@ -25,8 +25,8 @@
|
||||
s=s.replace('ERR_SupplyConvoyTask* supply', 'Convoy* supply')
|
||||
s=s.replace('bool available;','bool available=false;').replace('bool living;','bool living=false;')
|
||||
return s
|
||||
-rules='\n'.join(cpp(body(P,x)) for x in ('static bool Fresh(', 'static bool Need(', 'static bool Pair('))
|
||||
-methods='\n'.join(cpp(body(P,x)) for x in ('bool Bind(', 'ERR_ConvoyTask Task(', 'protected bool ConvoyCurrent(', 'protected bool Contains(', 'protected bool TruckValid(', 'protected bool Quiet(', 'protected bool Roster(', 'protected void Stock(', 'bool TryPlan(', 'protected void ClearWaypoints(', 'protected void Finish(', 'void Stop('))
|
||||
+rules='\n'.join(cpp(body(P,x)) for x in ('static bool Fresh(', 'static bool Need(', 'static bool Pair(', 'static bool MinePair('))
|
||||
+methods='\n'.join(cpp(body(P,x)) for x in ('bool Bind(', 'ERR_ConvoyTask Task(', 'protected bool ConvoyCurrent(', 'protected bool Contains(', 'protected bool TruckValid(', 'protected bool Quiet(', 'protected bool Roster(', 'protected void Stock(', 'protected bool CaptureMines(', 'bool TryPlanMines(', 'bool TryPlan(', 'protected void ClearWaypoints(', 'protected void Finish(', 'void Stop('))
|
||||
reserve=cpp(body(H,'bool ReserveLogistics('))+cpp(body(H,'void ReleaseLogistics('))
|
||||
unique=cpp(body(I,'static int AppendUnique('))+cpp(body(I,'static int Items('))
|
||||
run(r'''
|
||||
@@ -48,7 +48,7 @@
|
||||
struct InventoryStorageManagerComponent{Array<IEntity>items;void GetItems(Array<IEntity>& out){out=items;}static auto Cast(InventoryStorageManagerComponent* p){return p;}};
|
||||
struct Prefab{string name="magazine";string GetPrefabName(){return name;}};
|
||||
struct Group;using SCR_AIGroup=Group*;
|
||||
-struct Entity{Prefab prefab;bool magazine=true,hasPrefab=true,alive=true,player=false,fight=true,aboard=false,captured=false,released=false;int faction=1;Group* group=nullptr;InventoryStorageManagerComponent* inventory=nullptr;bool HasMagazine(){return magazine;}Prefab* GetPrefabData(){return hasPrefab?&prefab:nullptr;}InventoryStorageManagerComponent* FindComponent(){return inventory;}};
|
||||
+struct Entity{Prefab prefab;bool readyMine=false,magazine=true,hasPrefab=true,alive=true,player=false,fight=true,aboard=false,captured=false,released=false;int faction=1;Group* group=nullptr;InventoryStorageManagerComponent* inventory=nullptr;bool HasMagazine(){return magazine;}Prefab* GetPrefabData(){return hasPrefab?&prefab:nullptr;}InventoryStorageManagerComponent* FindComponent(){return inventory;}};
|
||||
struct Agent{IEntity actor;IEntity GetControlledEntity(){return actor;}};using AIAgent=Agent*;
|
||||
struct Waypoint{};
|
||||
struct Group{Array<AIAgent>agents;bool slave=false;int players=0,faction=1;bool IsSlave(){return slave;}int GetPlayerCount(bool){return players;}int GetFaction(){return faction;}void GetAgents(Array<AIAgent>& out){out=agents;}void RemoveWaypoint(Waypoint*){}};
|
||||
@@ -58,7 +58,7 @@
|
||||
struct ERR_Inventory{
|
||||
'''+unique+r'''
|
||||
};
|
||||
-struct Ammo{bool Complete=true;int Members=2,SmallArmsMuzzles=2,SmallArmsRounds=60,SmallArmsChambers=0;bool Valid(int n){return Members==n;}};
|
||||
+struct Ammo{bool MineComplete=true;int MineMembers=2,ReadyMines=1;bool Complete=true;int Members=2,SmallArmsMuzzles=2,SmallArmsRounds=60,SmallArmsChambers=0;bool Valid(int n){return Members==n;}};
|
||||
struct Entry{bool Closed=false;int Count=2,Fit=2,MessageId=1;float ObservedAt=0;Vec Position;string SourceId;Ammo* AmmoState=nullptr;};using ERR_HQWatchEntry=Entry*;
|
||||
struct ERR_InfantryResupplyRules{
|
||||
'''+rules+r'''
|
||||
@@ -75,19 +75,21 @@
|
||||
struct Truck{int Index=1,SupplyToken=0;bool Registered=true,Released=false,Arrived=false,SupplyHeld=false,crew=true;struct Entity* Entity=nullptr;struct Group* Group=nullptr;struct Combat* Combat=nullptr;bool CrewValid(Mode*){return crew;}};
|
||||
struct Receipt{bool Consumed=true;Array<int>Records={1,2,3,4,5,6};};
|
||||
struct Cargo{bool Finished=true;};using ERR_ConvoyCargoCallback=Cargo*;
|
||||
-struct Convoy{bool supply=false,MagazinesIssued=true,CargoIssued=true,Stopped=false,Ready=true;struct Receipt* Receipt=nullptr;Array<Truck*>Vehicles;Array<struct Cargo*>Cargo;float Deadline=30000;};
|
||||
+struct MineBatch{bool complete=true;Array<IEntity>items;bool Complete(){return complete;}int Count(){return items.Count();}IEntity At(int i){return items[i];}};
|
||||
+struct Convoy{MineBatch*MineStock=nullptr;bool supply=false,MagazinesIssued=true,CargoIssued=true,Stopped=false,Ready=true;struct Receipt* Receipt=nullptr;Array<Truck*>Vehicles;Array<struct Cargo*>Cargo;float Deadline=30000;};
|
||||
using ERR_ConvoyTask=Convoy*;
|
||||
struct ConvoyService{Array<Convoy*>tasks;int Count(){return tasks.Count();}Convoy* At(int index){return index>=0&&index<Count()?tasks[index]:nullptr;}};
|
||||
struct ERR_SupplyConvoyTask:Convoy{static Convoy* Cast(Convoy* task){return task&&task->supply?task:nullptr;}};
|
||||
struct ERR_ConvoyRules{static bool Captured(Entity* e,Group*){return e->captured;}};
|
||||
struct ERR_ConvoyResources{static string Magazine(){return "magazine";}};
|
||||
-struct Route{};struct Leaf{void Stop(){}};struct Mounted{bool busy=false;bool Busy(){return busy;}void Stop(){}};
|
||||
+struct ERR_InfantryMineTransfer{static bool ReadyMine(IEntity x){return x&&x->readyMine;}};
|
||||
+struct Route{};struct Leaf{bool unresolved=false;void Stop(){}bool Unresolved(){return unresolved;}};struct Mounted{bool busy=false;bool Busy(){return busy;}void Stop(){}};
|
||||
struct HQ{Mode* m_Mode;Array<ERR_HQUnit>m_Units;Convoy* convoy=nullptr;ConvoyService convoys;ConvoyService* Convoys(){return &convoys;}Route route;bool active=true,routeAvailable=true;int downlinks=0;bool MissionActive(){return active;}Convoy* ConvoyTask(){return convoy;}
|
||||
Route* Downlink(Group*,string,string,int){downlinks++;return routeAvailable?&route:nullptr;}
|
||||
'''+reserve+r'''
|
||||
};
|
||||
-struct Service{HQ* m_HQ;Mode* m_Mode;Convoy* m_Convoy=nullptr;Truck* m_Truck=nullptr;Unit* m_Recipient=nullptr;Unit* m_Donor=nullptr;Leaf* m_Move=nullptr;Mounted*m_Mounted=nullptr;Route* m_Order=nullptr;IEntity m_Receiving=nullptr;
|
||||
- Array<IEntity>m_Stock,m_Spent,m_Members,m_Served;Map<int>*m_Consumed=new Map<int>();Map<float>*m_NextAttempt=new Map<float>();int m_ConvoySlot=-1;float m_NextTick=0;int m_State=0,m_Trip=0,m_Token=0,m_ReportId=0,m_TripDelivered=0;float m_Deadline=0,m_StockDeadline=-1;bool m_Stopped=false;
|
||||
+struct Service{HQ* m_HQ;Mode* m_Mode;Convoy* m_Convoy=nullptr;Truck* m_Truck=nullptr;Unit* m_Recipient=nullptr;Unit* m_Donor=nullptr;Leaf* m_Move=nullptr;Leaf*m_MineMove=nullptr;MineBatch*m_MineBatch=nullptr;bool m_MineTrip=false,m_MineStockCaptured=false;int m_MineRecipientSlot=-1;Mounted*m_Mounted=nullptr;Route* m_Order=nullptr;IEntity m_Receiving=nullptr;
|
||||
+ Array<IEntity>m_Stock,m_MineStock,m_Spent,m_Members,m_Served;Map<int>*m_Consumed=new Map<int>();Map<float>*m_NextAttempt=new Map<float>();int m_ConvoySlot=-1;float m_NextTick=0;int m_State=0,m_Trip=0,m_Token=0,m_ReportId=0,m_TripDelivered=0;float m_Deadline=0,m_StockDeadline=-1;bool m_Stopped=false;
|
||||
Waypoint* m_MoveWaypoint=nullptr;Waypoint* m_HoldWaypoint=nullptr;string reason;bool Current(){return !m_Stopped&&Replication::IsServer()&&m_HQ->active;}void Audit(string why){reason=why;}
|
||||
'''+methods+r'''
|
||||
};
|
||||
@@ -177,6 +179,21 @@
|
||||
{Fixture f;for(int i=48;i<96;i++)f.inventory.items.Insert(&f.items[i]);f.items[0].prefab.name="NATO_556_STANAG";
|
||||
f.items[96].magazine=false;f.inventory.items.Insert(&f.items[96]);f.s.Stock(0);
|
||||
assert(!f.s.m_Stopped&&f.s.m_State==1&&f.s.m_Stock.Count()==96&&f.s.m_Stock.Contains(&f.items[0])&&!f.s.m_Stock.Contains(&f.items[96]));}
|
||||
+ // Mine demand is a detached known-one report, never a grant to zero or unknown.
|
||||
+ {Fixture f;MineBatch batch;f.convoy.supply=true;f.convoy.MineStock=&batch;f.items[48].readyMine=true;batch.items={&f.items[48]};f.inventory.items.Insert(&f.items[48]);f.s.Stock(0);
|
||||
+ for(int n: {0,2,3}){f.ammo.ReadyMines=n;assert(!f.s.TryPlanMines(&f.recipient,&f.donor,&f.demand,&f.donorStatus,0));}
|
||||
+ f.ammo.ReadyMines=1;f.ammo.MineComplete=false;assert(!f.s.TryPlanMines(&f.recipient,&f.donor,&f.demand,&f.donorStatus,0));f.ammo.MineComplete=true;
|
||||
+ batch.complete=false;assert(!f.s.TryPlanMines(&f.recipient,&f.donor,&f.demand,&f.donorStatus,0));batch.complete=true;
|
||||
+ assert(f.s.TryPlanMines(&f.recipient,&f.donor,&f.demand,&f.donorStatus,0));assert(f.s.m_MineTrip&&f.s.m_MineStock.Count()==1);}
|
||||
+ // A submitted unknown mine retains the real HQ claim across a newer delivered
|
||||
+ // report and expired shared cooldown; a second truck cannot race the same actor.
|
||||
+ {Fixture first,second;Leaf leaf;leaf.unresolved=true;first.s.Stock(0);assert(first.Plan());first.s.m_MineMove=&leaf;first.s.m_MineTrip=true;first.s.Finish("unknown native move");
|
||||
+ assert(first.s.m_State==7&&first.recipient.LogisticsReservation==100001&&first.truck.SupplyToken==100001);
|
||||
+ second.s.Stock(0);second.s.m_HQ=&first.hq;first.hq.convoy=&second.convoy;first.hq.convoys.tasks={&second.convoy};second.s.m_Consumed=first.s.m_Consumed;second.s.m_NextAttempt=first.s.m_NextAttempt;
|
||||
+ first.Refresh(180001,2);second.donorStatus.ObservedAt=180001;
|
||||
+ assert(!second.s.TryPlan(&first.recipient,&second.donor,&first.demand,&second.donorStatus,180001));assert(first.recipient.LogisticsReservation==100001);
|
||||
+ leaf.unresolved=false;first.s.Finish("settled");assert(first.recipient.LogisticsReservation==0);
|
||||
+ assert(second.s.TryPlan(&first.recipient,&second.donor,&first.demand,&second.donorStatus,180001));}
|
||||
// Removed stock is unavailable; a different magazine added after capture does not replace its identity.
|
||||
{Fixture f;f.s.Stock(0);f.inventory.items={&f.items[48]};assert(!f.Plan());f.Unchanged();f.inventory.items.Insert(&f.items[0]);assert(f.Plan());assert(f.s.m_Stock.Count()==48&&!f.s.m_Stock.Contains(&f.items[48]));}
|
||||
{Fixture f;f.s.Stock(0);f.s.m_Spent=f.s.m_Stock;assert(!f.Plan());f.Unchanged();}
|
||||
--- a/tests/test_infantry_supply_pool.py
|
||||
+++ b/tests/test_infantry_supply_pool.py
|
||||
@@ -14,7 +14,7 @@
|
||||
source = source.replace(name + '.', name + '::')
|
||||
for name in ('m_HQ', 'm_Mode', 'service', 'retained', 'convoys'):
|
||||
source = source.replace(name + '.', name + '->')
|
||||
- source = source.replace('int trucks, working, moved, stock;', 'int trucks=0, working=0, moved=0, stock=0;')
|
||||
+ source = source.replace('int trucks, working, moved, stock, mines;', 'int trucks=0, working=0, moved=0, stock=0, mines=0;')
|
||||
source = source.replace('string.Format', 'Format')
|
||||
return source
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
struct Replication{static inline bool server=true;static bool IsServer(){return server;}};
|
||||
struct ERR_ForceRules{static bool Finite(float value){return std::isfinite(value);}};
|
||||
struct Math{static int Min(int a,int b){return a<b?a:b;}};
|
||||
-string Format(string,int trucks,int working,int moved,int stock){return std::to_string(trucks)+":"+std::to_string(working)+":"+std::to_string(moved)+":"+std::to_string(stock);}
|
||||
+string Format(string,int trucks,int working,int moved,int stock,int mines){return std::to_string(trucks)+":"+std::to_string(working)+":"+std::to_string(moved)+":"+std::to_string(stock)+":"+std::to_string(mines);}
|
||||
struct ERR_GameMode{bool active=true;static inline ERR_GameMode* current=nullptr;static ERR_GameMode* Get(){return current;}bool Active(){return active;}};
|
||||
struct ERR_ConvoyTask{};
|
||||
struct ERR_ConvoyService{Array<ERR_ConvoyTask*>tasks;int reads=0;int Count(){return tasks.Count();}ERR_ConvoyTask* At(int index){reads++;assert(index>=0&&index<tasks.Count());return tasks[index];}};
|
||||
@@ -48,7 +48,7 @@
|
||||
ERR_ConvoyTask* Task(){return task;}
|
||||
void Tick(float){polls++;if(!stopped)ticks++;}
|
||||
void Stop(){stopCalls++;stopped=true;}
|
||||
- int State(){return state;}int Delivered(){return moved;}int StockCount(){return stock;}
|
||||
+ int mines=0;int MinesDelivered(){return mines;}int State(){return state;}int Delivered(){return moved;}int StockCount(){return stock;}
|
||||
};
|
||||
struct Pool{
|
||||
ERR_HQ* m_HQ=nullptr;ERR_GameMode* m_Mode=nullptr;Array<ERR_InfantryResupply*>m_Services;
|
||||
@@ -78,7 +78,8 @@
|
||||
// Delivered demand consumption/cooldown state has exact shared identity across trucks.
|
||||
assert(a->consumed==b->consumed&&a->next==b->next);a->consumed->Set("patrol",17);a->next->Set("patrol",180000);
|
||||
assert(b->consumed->Get("patrol")==17&&b->next->Get("patrol")==180000);
|
||||
- a->state=3;a->moved=2;b->moved=4;b->stock=8;assert(f.pool.Status()=="2:1:6:56");
|
||||
+ a->state=3;a->moved=2;b->moved=4;b->stock=8;assert(f.pool.Status()=="2:1:6:56:0");
|
||||
+ b->state=7;b->mines=1;assert(f.pool.Status()=="2:2:6:56:1");
|
||||
f.pool.Stop();assert(a->stopped&&b->stopped&&a->stopCalls==1&&b->stopCalls==1);f.pool.Stop();f.Add(1);f.pool.Tick(3000);
|
||||
assert(f.pool.Count()==2&&a->ticks==2&&b->ticks==2&&a->stopCalls==1&&b->stopCalls==1);}
|
||||
// Stopped and detached originals still receive bounded proof polls, never new work.
|
||||
--- a/tests/test_mounted_supply_integration.py
|
||||
+++ b/tests/test_mounted_supply_integration.py
|
||||
@@ -6,7 +6,7 @@
|
||||
H=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
methods='\n'.join(body(S,x) for x in ('int State()', 'ERR_MountedResupply Mounted()', 'bool Unresolved()', 'protected void PollTransfers(', 'bool TryPlanMounted('))
|
||||
methods=methods.replace('protected ','').replace('null','nullptr').replace('ERR_MountedResupply Mounted()', 'ERR_MountedResupply* Mounted()')
|
||||
-for n in ('m_Move','m_Mounted'):methods=methods.replace(n+'.',n+'->')
|
||||
+for n in ('m_Move','m_MineMove','m_Mounted'):methods=methods.replace(n+'.',n+'->')
|
||||
for n in ('ERR_HQUnit','ERR_HQWatchEntry'):methods=re.sub(r'\b'+n+r' (\w+)',n+r'* \1',methods)
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
@@ -23,14 +23,15 @@
|
||||
bool Busy(){return busy;}bool Unresolved(){return unresolved;}void Tick(float){ticks++;}
|
||||
};
|
||||
struct Service{HQ*m_HQ=nullptr;Mode*m_Mode=nullptr;Convoy*m_Convoy=nullptr;int m_ConvoySlot=0,m_State=1;
|
||||
- Stock*m_Stock=nullptr,*m_Spent=nullptr;Consumed*m_Consumed=nullptr;Cooldown*m_NextAttempt=nullptr;Leaf*m_Move=nullptr;ERR_MountedResupply*m_Mounted=nullptr;
|
||||
- bool current=true,valid=true,arrived=false;bool Current(){return current;}bool TruckValid(bool allowArrived=false){return valid&&(!arrived||allowArrived);}
|
||||
+ Stock*m_Stock=nullptr,*m_Spent=nullptr;Consumed*m_Consumed=nullptr;Cooldown*m_NextAttempt=nullptr;Leaf*m_Move=nullptr,*m_MineMove=nullptr;ERR_MountedResupply*m_Mounted=nullptr;
|
||||
+ void Finish(const char*){m_State=1;}bool current=true,valid=true,arrived=false;bool Current(){return current;}bool TruckValid(bool allowArrived=false){return valid&&(!arrived||allowArrived);}
|
||||
'''+methods+r'''
|
||||
};
|
||||
int main(){
|
||||
HQ h;Mode m;Convoy c;Stock stock,spent;Consumed consumed;Cooldown next;ERR_HQUnit d,r;ERR_HQWatchEntry demand,status;
|
||||
Service s;s.m_HQ=&h;s.m_Mode=&m;s.m_Convoy=&c;s.m_Stock=&stock;s.m_Spent=&spent;s.m_Consumed=&consumed;s.m_NextAttempt=&next;s.m_ConvoySlot=7;
|
||||
s.m_State=0;assert(!s.TryPlanMounted(&r,&d,&demand,&status,0)&&!s.Mounted());s.m_State=1;
|
||||
+ Leaf mine;s.m_MineMove=&mine;assert(!s.TryPlanMounted(&r,&d,&demand,&status,0)&&!s.Mounted()&&s.Unresolved());mine.unresolved=false;s.PollTransfers(0);assert(!s.m_MineMove);
|
||||
Leaf foot;s.m_Move=&foot;assert(!s.TryPlanMounted(&r,&d,&demand,&status,0)&&!s.Mounted()&&s.Unresolved());
|
||||
foot.unresolved=false;s.PollTransfers(0);assert(!s.m_Move);s.arrived=true;
|
||||
assert(s.TryPlanMounted(&r,&d,&demand,&status,0));auto*mounted=s.Mounted();
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-9hu0n6u0/check.cpp:393: int main(): Assertion `!f.s.TryPlanMines(&f.recipient,&f.donor,&f.demand,&f.donorStatus,0)' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-resupply-1724/tests/test_infantry_resupply_planning.py", line 32, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<188 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-9hu0n6u0/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/tests/test_admin_providers.py
|
||||
+++ b/tests/test_admin_providers.py
|
||||
@@ -62,7 +62,6 @@
|
||||
admin.Register(&replacement);assert(admin.m_Providers.size()==2&&admin.JournalSequence()==20);
|
||||
HQAliases ha;IntelAliases ia;
|
||||
assert(ha.Setting("hq","equipment")=="automaticEquipmentChancePercent");
|
||||
- assert(ha.Setting("hq","equipment")=="automaticEquipmentChancePercent");
|
||||
assert(ha.Setting("hq","interval")=="reportIntervalSeconds"&&ha.Setting("hq","squads")=="supportSquadLimit"&&ha.Setting("hq","radius")=="responseRadiusMetres");
|
||||
assert(ha.Setting("hq","aa")=="antiAirChancePercent"&&ha.Setting("hq","mines")=="antiPersonnelMineChancePercent");
|
||||
assert(ha.Setting("intel","carrying").empty()&&ha.Setting("hq","stinger")=="antiAirChancePercent");
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
PASS: actual one-mine original carrier selection, settled startup, shared finite claims, no refund after submission
|
||||
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
|
||||
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation
|
||||
@@ -0,0 +1,25 @@
|
||||
/tmp/err-policy-g4ak9_pz/check.cpp: In member function ‘bool ERR_EnemyEquipment::MineSupplyReady(SCR_AIGroup, IEntity)’:
|
||||
/tmp/err-policy-g4ak9_pz/check.cpp:252:39: error: ‘struct ERR_EnemyEquipmentEntry’ has no member named ‘Mines’
|
||||
252 | return !entry->Released && entry->Mines && entry->Mines.ReadyForResupply();
|
||||
| ^~~~~
|
||||
/tmp/err-policy-g4ak9_pz/check.cpp:252:55: error: ‘struct ERR_EnemyEquipmentEntry’ has no member named ‘Mines’
|
||||
252 | return !entry->Released && entry->Mines && entry->Mines.ReadyForResupply();
|
||||
| ^~~~~
|
||||
Traceback (most recent call last):
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/test_enemy_radio.py", line 45, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<97 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 13, in run
|
||||
subprocess.run(['g++','-std=c++17','-Wall','-Werror',str(p/'check.cpp'),'-o',str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['g++', '-std=c++17', '-Wall', '-Werror', '/tmp/err-policy-g4ak9_pz/check.cpp', '-o', '/tmp/err-policy-g4ak9_pz/check']' returned non-zero exit status 1.
|
||||
@@ -0,0 +1,94 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c
|
||||
@@ -158,6 +158,9 @@
|
||||
protected int m_Checks;
|
||||
protected int m_Remaining;
|
||||
protected ref ERR_EnemyEquipmentCallback m_Operation;
|
||||
+ // A terminal grant may still retain an accepted native insertion after timeout.
|
||||
+ // Resupply cannot race that callback or restart the initial allowance.
|
||||
+ bool ReadyForResupply() { return m_Finished && (!m_Operation || m_Operation.Finished); }
|
||||
void Check(ERR_GameMode mode, SCR_AIGroup group, IEntity actor)
|
||||
{
|
||||
if (m_Finished) return;
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c
|
||||
@@ -138,6 +138,14 @@
|
||||
if (state.Radio) state.Radio.Stop();
|
||||
}
|
||||
foreach (ERR_EnemyEquipmentEntry entry : m_Entries) if (entry.Group == group) entry.Stop(m_Mode);
|
||||
+ }
|
||||
+ bool MineSupplyReady(SCR_AIGroup group, IEntity actor)
|
||||
+ {
|
||||
+ if (m_Stopped || m_Entries.Count() > 2048 || !ERR_EnemyEquipmentRules.Owned(m_Mode, group, actor)) return false;
|
||||
+ foreach (ERR_EnemyEquipmentEntry entry : m_Entries)
|
||||
+ if (entry && entry.Actor == actor && entry.Group == group)
|
||||
+ return !entry.Released && entry.Mines && entry.Mines.ReadyForResupply();
|
||||
+ return false;
|
||||
}
|
||||
protected bool Known(IEntity actor)
|
||||
{
|
||||
--- a/tests/test_enemy_loadout.py
|
||||
+++ b/tests/test_enemy_loadout.py
|
||||
@@ -76,11 +76,25 @@
|
||||
Soldier pending;ERR_EnemyLauncherGrant wait;for(int n=0;n<30;n++)wait.Check(&mode,&pending.group,&pending.actor);assert(wait.m_Finished&&pending.inv.requests==1);pending.inv.Complete(true);wait.Check(&mode,&pending.group,&pending.actor);assert(pending.inv.requests==1);
|
||||
Soldier looted;ERR_EnemyLauncherGrant lost;lost.Check(&mode,&looted.group,&looted.actor);looted.inv.Complete(true);lost.Check(&mode,&looted.group,&looted.actor);assert(lost.m_Finished&&!lost.m_Fallback&&looted.inv.requests==1);
|
||||
Soldier captured;ERR_EnemyLauncherGrant ownership;ownership.Check(&mode,&captured.group,&captured.actor);captured.actor.eligible=false;ownership.Check(&mode,&captured.group,&captured.actor);assert(ownership.m_Finished&&captured.inv.requests==1);
|
||||
- Soldier miner;ERR_EnemyMineGrant mines;mines.Check(&mode,&miner.group,&miner.actor);assert(miner.inv.requests==1);IEntity mine1,mine2;mine1.mine=mine2.mine=true;miner.Add(mine1,false);miner.inv.Complete(true);mines.Check(&mode,&miner.group,&miner.actor);assert(miner.inv.requests==2);miner.Add(mine2,false);miner.inv.Complete(true);mines.Check(&mode,&miner.group,&miner.actor);assert(mines.m_Finished);
|
||||
+ // Startup insertion must settle before a physical mine top-up is eligible.
|
||||
+ ERR_EnemyMineGrant readiness;ERR_EnemyEquipmentCallback pendingMineGrant;
|
||||
+ assert(!readiness.ReadyForResupply());readiness.m_Finished=true;
|
||||
+ assert(readiness.ReadyForResupply());readiness.m_Operation=&pendingMineGrant;
|
||||
+ assert(!readiness.ReadyForResupply());pendingMineGrant.Finished=true;
|
||||
+ assert(readiness.ReadyForResupply());readiness.m_Finished=false;
|
||||
+ assert(!readiness.ReadyForResupply());
|
||||
+ Soldier miner;ERR_EnemyMineGrant mines;mines.Check(&mode,&miner.group,&miner.actor);assert(miner.inv.requests==1);IEntity mine1,mine2;mine1.mine=mine2.mine=true;miner.Add(mine1,false);miner.inv.Complete(true);mines.Check(&mode,&miner.group,&miner.actor);assert(miner.inv.requests==2&&!mines.ReadyForResupply());miner.Add(mine2,false);miner.inv.Complete(true);mines.Check(&mode,&miner.group,&miner.actor);assert(mines.m_Finished&&mines.ReadyForResupply());
|
||||
miner.inv.items.clear();for(int n=0;n<20;n++)mines.Check(&mode,&miner.group,&miner.actor);assert(miner.inv.requests==2);
|
||||
Soldier full;ERR_EnemyMineGrant existing;full.Add(mine1,false);full.Add(mine2,false);existing.Check(&mode,&full.group,&full.actor);assert(existing.m_Finished&&full.inv.requests==0);
|
||||
Soldier dropped;ERR_EnemyMineGrant finite;finite.Check(&mode,&dropped.group,&dropped.actor);dropped.inv.Complete(true);finite.Check(&mode,&dropped.group,&dropped.actor);dropped.inv.Complete(true);finite.Check(&mode,&dropped.group,&dropped.actor);assert(finite.m_Finished&&dropped.inv.requests==2);
|
||||
Soldier noSpace;noSpace.inv.accept=false;ERR_EnemyMineGrant noLoose;noLoose.Check(&mode,&noSpace.group,&noSpace.actor);assert(noLoose.m_Finished&&noSpace.inv.requests==1);
|
||||
+ Soldier timeoutActor;ERR_EnemyMineGrant timeoutGrant;
|
||||
+ timeoutGrant.Check(&mode,&timeoutActor.group,&timeoutActor.actor);
|
||||
+ for(int i=0;i<12;i++)timeoutGrant.Check(&mode,&timeoutActor.group,&timeoutActor.actor);
|
||||
+ assert(timeoutGrant.m_Finished&&!timeoutGrant.ReadyForResupply()&&timeoutActor.inv.requests==1);
|
||||
+ timeoutActor.inv.Complete(true);assert(timeoutGrant.ReadyForResupply());
|
||||
+ timeoutGrant.Check(&mode,&timeoutActor.group,&timeoutActor.actor);assert(timeoutActor.inv.requests==1);
|
||||
+
|
||||
}
|
||||
''')
|
||||
print('PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment')
|
||||
--- a/tests/test_enemy_equipment.py
|
||||
+++ b/tests/test_enemy_equipment.py
|
||||
@@ -11,7 +11,7 @@
|
||||
coordinator=re.sub(r'\b'+cls+r' ([a-zA-Z_]\w*)',cls+r'* \1',coordinator)
|
||||
for obj in ('m_Mode','existing','state','group','agent','entry','actor'):
|
||||
coordinator=coordinator.replace(obj+'.',obj+'->')
|
||||
-coordinator=coordinator.replace('Group.GetAgents','Group->GetAgents').replace('Combat.ERR_','Combat->ERR_').replace('Optics.Check','Optics->Check').replace('Radio.Check','Radio->Check').replace('Radio.Stop','Radio->Stop').replace('Radio.Register','Radio->Register')
|
||||
+coordinator=coordinator.replace('Group.GetAgents','Group->GetAgents').replace('Combat.ERR_','Combat->ERR_').replace('Mines.ReadyForResupply','Mines->ReadyForResupply').replace('Optics.Check','Optics->Check').replace('Radio.Check','Radio->Check').replace('Radio.Stop','Radio->Stop').replace('Radio.Register','Radio->Register')
|
||||
for cls in ('Replication','ERR_GameMode','ERR_EnemyEquipmentRules'):coordinator=coordinator.replace(cls+'.',cls+'::')
|
||||
coordinator=coordinator.replace('void ERR_EnemyEquipment(', 'ERR_EnemyEquipment(')
|
||||
coordinator=coordinator.replace('GetGame().GetWorld().GetWorldTime()','worldTime').replace('foreach (','for (').replace('null','nullptr')
|
||||
@@ -36,7 +36,9 @@
|
||||
void Check(ERR_GameMode*){checks++;}void Stop(){stops++;}
|
||||
};
|
||||
struct ERR_EnemyRadio{ERR_EnemyRadio(SCR_AIGroup*,int){}void Register(IEntity*){}void Check(ERR_GameMode*){}void Stop(){}};
|
||||
+struct MineGrant{bool settled=false;bool ReadyForResupply(){return settled;}};
|
||||
struct ERR_EnemyEquipmentEntry{
|
||||
+ MineGrant* Mines=nullptr;
|
||||
ERR_EnemyOptics* Optics=nullptr;bool Complete=false;
|
||||
IEntity* Actor=nullptr;SCR_AIGroup* Group=nullptr;SCR_AICombatComponent* Combat=nullptr;bool Released=false;int SkillChecks=0,checks=0,stops=0;
|
||||
void Check(ERR_GameMode*){checks++;Complete=true;}void Stop(ERR_GameMode*){stops++;Released=true;if(Optics)Optics->Stop();Combat=nullptr;}
|
||||
@@ -49,6 +51,14 @@
|
||||
service.Tick(0);assert(service.m_Entries.Count()==0);service.Tick(3000);assert(service.m_Entries.Count()==1&&combat.binds==1&&combat.refreshes==1);
|
||||
auto entry=service.m_Entries[0];assert(entry->Optics&&entry->Optics->actor==&soldier&&entry->Optics->group==&group);
|
||||
assert(entry->Complete&&entry->Optics->checks==1&&combat.refreshes==1); // Stinger is already complete; optics has its own startup completion.
|
||||
+ MineGrant grant;entry->Mines=&grant;IEntity foreign;SCR_AIGroup otherGroup;
|
||||
+ assert(!service.MineSupplyReady(&group,&soldier));grant.settled=true;
|
||||
+ assert(service.MineSupplyReady(&group,&soldier));assert(!service.MineSupplyReady(&otherGroup,&soldier));assert(!service.MineSupplyReady(&group,&foreign));
|
||||
+ soldier.eligible=false;assert(!service.MineSupplyReady(&group,&soldier));soldier.eligible=true;
|
||||
+ entry->Released=true;assert(!service.MineSupplyReady(&group,&soldier));entry->Released=false;
|
||||
+ entry->Mines=nullptr;assert(!service.MineSupplyReady(&group,&soldier));entry->Mines=&grant;
|
||||
+ service.m_Stopped=true;assert(!service.MineSupplyReady(&group,&soldier));service.m_Stopped=false;
|
||||
+ service.m_Entries.resize(2049,nullptr);assert(!service.MineSupplyReady(&group,&soldier));service.m_Entries.resize(1);
|
||||
service.Tick(3001);assert(entry->checks==1&&entry->Optics->checks==1&&combat.refreshes==1);
|
||||
service.Tick(6000);assert(entry->checks==2&&entry->Optics->checks==2&&combat.binds==1&&combat.refreshes==2);
|
||||
service.UnregisterGroup(&group);service.Tick(9000);assert(service.m_Entries[0]->Released&&service.m_Entries[0]->checks==2&&entry->Optics->checks==2&&entry->Optics->stops==1);
|
||||
@@ -0,0 +1,21 @@
|
||||
--- a/tests/test_enemy_radio.py
|
||||
+++ b/tests/test_enemy_radio.py
|
||||
@@ -30,7 +30,7 @@
|
||||
coordinator=re.sub(r'\b'+cls+r' ([a-zA-Z_]\w*)',cls+r'* \1',coordinator)
|
||||
for obj in ('m_Mode','existing','state','group','agent','entry','actor'):
|
||||
coordinator=coordinator.replace(obj+'.',obj+'->')
|
||||
-coordinator=coordinator.replace('Group.GetAgents','Group->GetAgents').replace('Combat.ERR_','Combat->ERR_').replace('Optics.Check','Optics->Check').replace('Radio.Stop','Radio->Stop').replace('Radio.Check','Radio->Check').replace('Radio.Register','Radio->Register')
|
||||
+coordinator=coordinator.replace('Group.GetAgents','Group->GetAgents').replace('Combat.ERR_','Combat->ERR_').replace('Mines.ReadyForResupply','Mines->ReadyForResupply').replace('Optics.Check','Optics->Check').replace('Radio.Stop','Radio->Stop').replace('Radio.Check','Radio->Check').replace('Radio.Register','Radio->Register')
|
||||
for cls in ('Replication','ERR_GameMode','ERR_EnemyEquipmentRules'):coordinator=coordinator.replace(cls+'.',cls+'::')
|
||||
coordinator=coordinator.replace('void ERR_EnemyEquipment(', 'ERR_EnemyEquipment(')
|
||||
coordinator=coordinator.replace('GetGame().GetWorld().GetWorldTime()','worldTime').replace('foreach (','for (').replace('null','nullptr')
|
||||
@@ -39,7 +39,8 @@
|
||||
float worldTime=0;
|
||||
struct SCR_AICombatComponent{void ERR_BindEnemySkill(ERR_GameMode*,Group*){} void ERR_RefreshEnemySkill(){}};
|
||||
struct ERR_EnemyOptics{ERR_EnemyOptics(IEntity,Group*){}void Check(ERR_GameMode*){}};
|
||||
-struct ERR_EnemyEquipmentEntry{IEntity Actor=nullptr;struct Group*Group=nullptr;SCR_AICombatComponent*Combat=nullptr;ERR_EnemyOptics*Optics=nullptr;bool Released=false;int SkillChecks=0;
|
||||
+struct MineGrant{bool ReadyForResupply(){return false;}};
|
||||
+struct ERR_EnemyEquipmentEntry{MineGrant*Mines=nullptr;IEntity Actor=nullptr;struct Group*Group=nullptr;SCR_AICombatComponent*Combat=nullptr;ERR_EnemyOptics*Optics=nullptr;bool Released=false;int SkillChecks=0;
|
||||
void Check(ERR_GameMode*){}void Stop(ERR_GameMode*){Released=true;}};
|
||||
'''
|
||||
run(r'''
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"tests/test_enemy_loadout.py": 0,
|
||||
"tests/test_enemy_equipment.py": 0
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
|
||||
@@ -0,0 +1,47 @@
|
||||
PROPOSAL ONLY; no target edits or native execution.
|
||||
New leaf and actual-method test only. Parent registers test_infantry_mine_transfer.py.
|
||||
|
||||
API:
|
||||
ERR_InfantryMineTransfer(mode, Vehicle truck, SCR_AIGroup truckGroup, IEntity actor,
|
||||
SCR_AIGroup recipientGroup, IEntity incoming, ERR_FiniteMagazineReservation reservation,
|
||||
ERR_HQStatusSampler originalRoster, int originalSlot)
|
||||
Tick(now): ERR_InfantryAmmoTransferState (-1 failed,0 pending,1 succeeded).
|
||||
Submitted(), Unresolved(), Stop(), Reason().
|
||||
static ReadyMine(item): exact alive inactive native PMN4.
|
||||
static Carrier(actor,group,exclude=null): exact sole usable PMN4, or null when
|
||||
zero/multiple/unknown. Optional exclusion is internal after submission only.
|
||||
|
||||
Coordinator must pass same original roster slot and shared finite reservation
|
||||
from captured mine originals + EXISTING spent ledger. Leaf pins driver, physical
|
||||
records, managers, reciprocal original source slot and exact original carried mine
|
||||
at construction. It never selects another carrier or swaps carrier entitlement.
|
||||
One native Move submission only, Commit before call; callback identities are not
|
||||
queried (GetItem unsupported for Move). Callback+exact reciprocal storage and
|
||||
source absence prove delivery. Unknown/partial movement remains unresolved after
|
||||
Stop or timeout; definitive callback-failure plus unchanged source can settle it.
|
||||
Deleted incoming entity settles this one-item transaction; damage/capture does not.
|
||||
No rollback, spawn, new capability at zero stock, placement-latch reset or refund.
|
||||
|
||||
Tests execute production constructor, Carrier, Context, Tick, Stop, Unresolved,
|
||||
callbacks, custody and shared reservation with native doubles. They cover one/two/
|
||||
zero/unknown carrier inventories, original actor/slot/driver/ledger/managers, native
|
||||
capacity/access refusal, exact shared stock, inline callback with false return,
|
||||
unknown false return, timeout/backwards clock, late proof, changed ownership and
|
||||
exact deletion. Negative controls remove single-carrier or missing-damage guard;
|
||||
both compile and assertion-fail. green.log passes.
|
||||
|
||||
No actual native inventory movement, pathfinding, multiplayer or Enforce lifetime
|
||||
qualification claimed. Existing coordinator owns exclusive HQ reservations/radio.
|
||||
|
||||
Verified local SDK references:
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/generated/InventorySystem/InventoryStorageManagerComponent.c:
|
||||
32 CanMoveItemToStorage,34 TryMoveItemToStorage(item,to,-1,callback),45 GetStorages,
|
||||
47 GetItems,51 FindStorageForItem; GetOwner at14.
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/generated/InventorySystem/InventoryTask/ScriptedInventoryOperationCallback.c:
|
||||
GetItem documentation explicitly excludes Move; all four callback signatures verified.
|
||||
- /tmp/erri-vanilla-stock/scripts/Game/Weapon/Explosives/SCR_BaseTriggerComponent.c:
|
||||
IsActivated22, IsActivatedByDefault29, both read-only native script state.
|
||||
- Existing ERR_InfantryAmmoTransfer supplies verified group/driver/physics and
|
||||
bounded StoredUnder ancestry patterns; actual StoredUnder extracted into test.
|
||||
- ERR_Actors.Alive requires DamageManagerComponent (ERR_Actors.c:3-7); native
|
||||
double matches this so unknown damage cannot masquerade as known unavailable stock.
|
||||
@@ -0,0 +1,360 @@
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c
|
||||
@@ -0,0 +1,217 @@
|
||||
+class ERR_InfantryMineCallback : ScriptedInventoryOperationCallback
|
||||
+{
|
||||
+ ERR_InfantryMineTransfer Transfer;
|
||||
+ protected override void OnComplete() { if (Transfer) Transfer.Acknowledge(true); }
|
||||
+ protected override void OnAllComplete() { if (Transfer) Transfer.Acknowledge(true); }
|
||||
+ protected override void OnFailed() { if (Transfer) Transfer.Acknowledge(false); }
|
||||
+ protected override void OnAllFailed() { if (Transfer) Transfer.Acknowledge(false); }
|
||||
+}
|
||||
+
|
||||
+// One finite original PMN4 tops up an existing original carrier from one to two.
|
||||
+// The coordinator owns radio authorization and the shared truck/recipient claim.
|
||||
+class ERR_InfantryMineTransfer
|
||||
+{
|
||||
+ protected ERR_GameMode m_Mode;
|
||||
+ protected Vehicle m_Donor;
|
||||
+ protected SCR_AIGroup m_DonorGroup;
|
||||
+ protected IEntity m_Recipient;
|
||||
+ protected SCR_AIGroup m_RecipientGroup;
|
||||
+ protected IEntity m_Mine;
|
||||
+ protected IEntity m_CarriedMine;
|
||||
+ protected IEntity m_Driver;
|
||||
+ protected ref ERR_ForceRecord m_DonorRecord;
|
||||
+ protected ref ERR_ForceRecord m_RecipientRecord;
|
||||
+ protected ref ERR_HQStatusSampler m_Roster;
|
||||
+ protected int m_Slot;
|
||||
+ protected int m_Strength;
|
||||
+ protected InventoryStorageManagerComponent m_Source;
|
||||
+ protected InventoryStorageManagerComponent m_Destination;
|
||||
+ protected InventoryStorageSlot m_FromSlot;
|
||||
+ protected BaseInventoryStorageComponent m_FromStorage;
|
||||
+ protected BaseInventoryStorageComponent m_Storage;
|
||||
+ protected ref ERR_FiniteMagazineReservation m_Reservation;
|
||||
+ protected ref ERR_InfantryMineCallback m_Callback;
|
||||
+ protected bool m_Submitted;
|
||||
+ protected int m_Acknowledgement;
|
||||
+ protected float m_Started = -1;
|
||||
+ protected float m_LastTick = -1;
|
||||
+ protected ERR_InfantryAmmoTransferState m_State = ERR_InfantryAmmoTransferState.PENDING;
|
||||
+ protected string m_Reason;
|
||||
+
|
||||
+ void ERR_InfantryMineTransfer(ERR_GameMode mode, Vehicle donorVehicle, SCR_AIGroup donorGroup, IEntity recipientActor, SCR_AIGroup recipientGroup, IEntity exactMine, ERR_FiniteMagazineReservation reservation, ERR_HQStatusSampler originalRoster, int originalSlot)
|
||||
+ {
|
||||
+ m_Mode = mode; m_Donor = donorVehicle; m_DonorGroup = donorGroup;
|
||||
+ m_Recipient = recipientActor; m_RecipientGroup = recipientGroup; m_Mine = exactMine;
|
||||
+ m_Reservation = reservation; m_Roster = originalRoster; m_Slot = originalSlot;
|
||||
+ if (!mode || !mode.Forces() || !donorVehicle || !recipientActor || !originalRoster) return;
|
||||
+ m_DonorRecord = mode.Forces().FindGroup(donorGroup); m_RecipientRecord = mode.Forces().FindGroup(recipientGroup);
|
||||
+ m_Strength = originalRoster.InitialStrength();
|
||||
+ m_Source = InventoryStorageManagerComponent.Cast(donorVehicle.FindComponent(InventoryStorageManagerComponent));
|
||||
+ m_Destination = InventoryStorageManagerComponent.Cast(recipientActor.FindComponent(InventoryStorageManagerComponent));
|
||||
+ SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(donorVehicle.FindComponent(SCR_AIVehicleUsageComponent));
|
||||
+ if (usage && usage.GetPilotCompartmentSlot()) m_Driver = usage.GetPilotCompartmentSlot().GetOccupant();
|
||||
+ m_CarriedMine = Carrier(recipientActor, recipientGroup);
|
||||
+ if (!exactMine) return;
|
||||
+ InventoryItemComponent item = InventoryItemComponent.Cast(exactMine.FindComponent(InventoryItemComponent));
|
||||
+ if (item) m_FromSlot = item.GetParentSlot();
|
||||
+ if (m_FromSlot) m_FromStorage = m_FromSlot.GetStorage();
|
||||
+ }
|
||||
+ static bool ReadyMine(IEntity item)
|
||||
+ {
|
||||
+ if (!ERR_Actors.Alive(item) || !item.GetPrefabData() || item.GetPrefabData().GetPrefabName() != ERR_EnemyLoadoutCatalog.MINE) return false;
|
||||
+ if (!item.FindComponent(SCR_AntiPersonnelMineCollisionHandlerComponent)) return false;
|
||||
+ SCR_PressureTriggerComponent trigger = SCR_PressureTriggerComponent.Cast(item.FindComponent(SCR_PressureTriggerComponent));
|
||||
+ return trigger && !trigger.IsActivated() && !trigger.IsActivatedByDefault();
|
||||
+ }
|
||||
+ // Exclusion is used only after submission: the incoming item may already be
|
||||
+ // carried, but the exact pre-existing one must still prove carrier entitlement.
|
||||
+ static IEntity Carrier(IEntity actor, SCR_AIGroup group, IEntity exclude = null)
|
||||
+ {
|
||||
+ if (!Replication.IsServer() || !group || group.IsSlave() || group.GetPlayerCount(true) > 0) return null;
|
||||
+ if (!ERR_Actors.CanFight(actor) || ERR_Actors.Player(actor) || ERR_Actors.Group(actor) != group
|
||||
+ || CompartmentAccessComponent.GetVehicleIn(actor)) return null;
|
||||
+ InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent));
|
||||
+ if (!inventory || inventory.GetOwner() != actor) return null;
|
||||
+ array<IEntity> items = {}; inventory.GetItems(items);
|
||||
+ if (items.Count() > 128) return null;
|
||||
+ array<IEntity> seen = {}; IEntity found;
|
||||
+ foreach (IEntity item : items)
|
||||
+ {
|
||||
+ if (!item || !item.GetPrefabData()) return null;
|
||||
+ if (seen.Contains(item)) continue;
|
||||
+ seen.Insert(item);
|
||||
+ if (item == exclude || item.GetPrefabData().GetPrefabName() != ERR_EnemyLoadoutCatalog.MINE) continue;
|
||||
+ InventoryItemComponent carried = InventoryItemComponent.Cast(item.FindComponent(InventoryItemComponent));
|
||||
+ if (!carried || !carried.GetParentSlot() || carried.GetParentSlot().GetAttachedEntity() != item
|
||||
+ || !ERR_InfantryAmmoTransfer.StoredUnder(item, actor)) return null;
|
||||
+ if (!item.FindComponent(SCR_AntiPersonnelMineCollisionHandlerComponent)
|
||||
+ || !item.FindComponent(SCR_PressureTriggerComponent) || !item.FindComponent(DamageManagerComponent)) return null;
|
||||
+ if (!ReadyMine(item)) continue;
|
||||
+ if (found) return null;
|
||||
+ found = item;
|
||||
+ }
|
||||
+ return found;
|
||||
+ }
|
||||
+ bool Submitted() { return m_Submitted; }
|
||||
+ string Reason() { return m_Reason; }
|
||||
+ void Acknowledge(bool success)
|
||||
+ {
|
||||
+ if (!m_Submitted) return;
|
||||
+ if (!success) m_Acknowledgement = -1;
|
||||
+ else if (m_Acknowledgement == 0) m_Acknowledgement = 1;
|
||||
+ }
|
||||
+ protected ERR_InfantryAmmoTransferState Fail(string reason)
|
||||
+ {
|
||||
+ if (m_State == ERR_InfantryAmmoTransferState.PENDING) { m_State = ERR_InfantryAmmoTransferState.FAILED; m_Reason = reason; }
|
||||
+ return m_State;
|
||||
+ }
|
||||
+ void Stop() { Fail("mine delivery authority stopped; submitted movement remains spent and observable"); }
|
||||
+ protected bool ManagedStorage(InventoryStorageManagerComponent inventory, BaseInventoryStorageComponent storage, IEntity owner)
|
||||
+ {
|
||||
+ if (!inventory || !storage || !owner || inventory.GetOwner() != owner) return false;
|
||||
+ if (!ERR_InfantryAmmoTransfer.StoredUnder(storage.GetOwner(), owner)) return false;
|
||||
+ array<BaseInventoryStorageComponent> storages = {}; inventory.GetStorages(storages, EStoragePurpose.PURPOSE_DEPOSIT);
|
||||
+ return storages.Count() <= 64 && storages.Contains(storage);
|
||||
+ }
|
||||
+ protected int Ownership(InventoryStorageManagerComponent inventory)
|
||||
+ {
|
||||
+ if (!inventory || !m_Mine) return -1;
|
||||
+ array<IEntity> items = {}; inventory.GetItems(items, EStoragePurpose.PURPOSE_DEPOSIT);
|
||||
+ if (items.Count() > 128) return -1;
|
||||
+ if (items.Contains(m_Mine)) return 1;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ protected bool InSlot(InventoryStorageSlot slot)
|
||||
+ {
|
||||
+ if (!m_Mine || !slot || slot.GetAttachedEntity() != m_Mine) return false;
|
||||
+ InventoryItemComponent item = InventoryItemComponent.Cast(m_Mine.FindComponent(InventoryItemComponent));
|
||||
+ return item && item.GetParentSlot() == slot;
|
||||
+ }
|
||||
+ protected bool OriginalProof()
|
||||
+ {
|
||||
+ return m_FromSlot && m_FromSlot.GetStorage() == m_FromStorage
|
||||
+ && ManagedStorage(m_Source, m_FromStorage, m_Donor) && InSlot(m_FromSlot)
|
||||
+ && m_Destination && m_Destination.GetOwner() == m_Recipient
|
||||
+ && Ownership(m_Source) == 1 && Ownership(m_Destination) == 0;
|
||||
+ }
|
||||
+ protected bool PhysicalProof()
|
||||
+ {
|
||||
+ if (!m_Mine || !m_Source || !m_Donor || m_Source.GetOwner() != m_Donor) return false;
|
||||
+ if (!ManagedStorage(m_Destination, m_Storage, m_Recipient)
|
||||
+ || Ownership(m_Source) != 0 || Ownership(m_Destination) != 1) return false;
|
||||
+ InventoryItemComponent item = InventoryItemComponent.Cast(m_Mine.FindComponent(InventoryItemComponent));
|
||||
+ return item && item.GetParentSlot() && item.GetParentSlot().GetStorage() == m_Storage && InSlot(item.GetParentSlot());
|
||||
+ }
|
||||
+ bool Unresolved()
|
||||
+ {
|
||||
+ if (!m_Submitted || !m_Mine) return false;
|
||||
+ if (m_Acknowledgement == 1 && PhysicalProof()) return false;
|
||||
+ if (m_Acknowledgement < 0 && OriginalProof()) return false;
|
||||
+ return true;
|
||||
+ }
|
||||
+ protected bool Context()
|
||||
+ {
|
||||
+ if (!Replication.IsServer() || SCR_Global.IsEditMode() || !m_Mode || m_Mode != ERR_GameMode.Get() || !m_Mode.Active() || !m_Mode.Forces()) return false;
|
||||
+ if (!m_Donor || !ERR_Actors.Alive(m_Donor) || !m_DonorGroup || !m_RecipientGroup || m_DonorGroup == m_RecipientGroup) return false;
|
||||
+ if (!m_Roster || !m_Roster.OwnsRoster(m_RecipientGroup) || m_Strength < 1 || m_Strength > 32) return false;
|
||||
+ if (m_Roster.InitialStrength() != m_Strength || m_Roster.InitialMember(m_Slot) != m_Recipient
|
||||
+ || !m_Roster.CanAttribute(m_Slot, m_Recipient, false)) return false;
|
||||
+ if (!ERR_EnemyEquipmentRules.Eligible(m_Mode, m_RecipientGroup, m_Recipient) || !ERR_Actors.CanFight(m_Recipient)
|
||||
+ || CompartmentAccessComponent.GetVehicleIn(m_Recipient)) return false;
|
||||
+ if (m_DonorGroup.IsSlave() || m_RecipientGroup.IsSlave() || m_DonorGroup.GetPlayerCount(true) > 0) return false;
|
||||
+ if (!m_Mode.EnemyFaction() || m_DonorGroup.GetFaction() != m_Mode.EnemyFaction()
|
||||
+ || SCR_FactionManager.SGetFaction(m_Donor) != m_Mode.EnemyFaction()
|
||||
+ || SCR_FactionManager.SGetFaction(m_Recipient) != m_Mode.EnemyFaction()) return false;
|
||||
+ if (!m_DonorRecord || !m_RecipientRecord || m_Mode.Forces().FindGroup(m_DonorGroup) != m_DonorRecord
|
||||
+ || m_Mode.Forces().FindGroup(m_RecipientGroup) != m_RecipientRecord) return false;
|
||||
+ if (m_DonorRecord.Group != m_DonorGroup || !m_DonorRecord.Physical || m_DonorRecord.Eliminated) return false;
|
||||
+ if (m_RecipientRecord.Group != m_RecipientGroup || !m_RecipientRecord.Physical || m_RecipientRecord.Eliminated) return false;
|
||||
+ SCR_AIGroupUtilityComponent utility = m_DonorGroup.GetGroupUtilityComponent();
|
||||
+ if (!utility || !utility.IsMilitary() || !utility.m_VehicleMgr || !utility.m_VehicleMgr.FindVehicle(m_Donor)) return false;
|
||||
+ if (ERR_ConvoyRules.Captured(m_Donor, m_DonorGroup)) return false;
|
||||
+ SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(m_Donor.FindComponent(SCR_AIVehicleUsageComponent));
|
||||
+ if (!usage || !usage.GetPilotCompartmentSlot() || !m_Driver || usage.GetPilotCompartmentSlot().GetOccupant() != m_Driver) return false;
|
||||
+ if (!ERR_EnemyEquipmentRules.Eligible(m_Mode, m_DonorGroup, m_Driver)
|
||||
+ || SCR_FactionManager.SGetFaction(m_Driver) != m_Mode.EnemyFaction()
|
||||
+ || !ERR_ConvoyRules.PartOf(CompartmentAccessComponent.GetVehicleIn(m_Driver), m_Donor)) return false;
|
||||
+ if (!m_Source || !m_Destination || m_Source == m_Destination) return false;
|
||||
+ if (m_Donor.FindComponent(InventoryStorageManagerComponent) != m_Source
|
||||
+ || m_Recipient.FindComponent(InventoryStorageManagerComponent) != m_Destination) return false;
|
||||
+ if (!m_CarriedMine || !ReadyMine(m_Mine)) return false;
|
||||
+ IEntity exclude;
|
||||
+ if (m_Submitted) exclude = m_Mine;
|
||||
+ if (Carrier(m_Recipient, m_RecipientGroup, exclude) != m_CarriedMine) return false;
|
||||
+ Physics physics = m_Donor.GetPhysics();
|
||||
+ if (!physics) return false;
|
||||
+ float speed = physics.GetVelocity().Length(); float angular = physics.GetAngularVelocity().Length();
|
||||
+ return speed >= 0 && speed <= 0.25 && angular >= 0 && angular <= 0.1;
|
||||
+ }
|
||||
+ ERR_InfantryAmmoTransferState Tick(float now)
|
||||
+ {
|
||||
+ if (m_State != ERR_InfantryAmmoTransferState.PENDING) return m_State;
|
||||
+ if (!ERR_ForceRules.Finite(now) || now < 0 || now < m_LastTick) return Fail("invalid mine move clock");
|
||||
+ if (m_Started < 0) m_Started = now;
|
||||
+ if (now - m_Started >= 8000) return Fail("native mine move deadline expired");
|
||||
+ m_LastTick = now;
|
||||
+ if (!Context() || !ERR_InfantryAmmoAccess.Clear(m_Donor, m_Recipient)) return Fail("original mine carrier, truck, stock or physical access lost");
|
||||
+ if (!m_Submitted)
|
||||
+ {
|
||||
+ if (!m_Reservation || !OriginalProof()) return Fail("exact original mine is not exclusive truck stock");
|
||||
+ m_Storage = m_Destination.FindStorageForItem(m_Mine, EStoragePurpose.PURPOSE_DEPOSIT);
|
||||
+ if (!ManagedStorage(m_Destination, m_Storage, m_Recipient)
|
||||
+ || !m_Source.CanMoveItemToStorage(m_Mine, m_Storage, -1)) return Fail("original mine carrier lacks native capacity");
|
||||
+ m_Callback = new ERR_InfantryMineCallback(); m_Callback.Transfer = this;
|
||||
+ if (!m_Reservation.Commit() || !m_Reservation.CommittedFor(m_Mine)) return Fail("shared finite mine reservation unavailable");
|
||||
+ m_Submitted = true;
|
||||
+ bool accepted = m_Source.TryMoveItemToStorage(m_Mine, m_Storage, -1, m_Callback);
|
||||
+ if (!accepted && m_Acknowledgement != 1) return Fail("native mine move refused; exact identity remains spent");
|
||||
+ }
|
||||
+ if (m_Acknowledgement < 0) return Fail("native mine move failed; unproved custody remains quarantined");
|
||||
+ if (m_Acknowledgement == 1 && PhysicalProof())
|
||||
+ {
|
||||
+ m_State = ERR_InfantryAmmoTransferState.SUCCEEDED;
|
||||
+ m_Reason = "callback and exact carried storage confirm one finite PMN4 transferred";
|
||||
+ }
|
||||
+ return m_State;
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/tests/test_infantry_mine_transfer.py
|
||||
@@ -0,0 +1,137 @@
|
||||
+"""Actual finite mine transaction/callback and shared reservation; native boundaries doubled."""
|
||||
+from pathlib import Path
|
||||
+import os,re
|
||||
+from policy_harness import ROOT,body,run
|
||||
+P=Path(os.environ.get('ERR_MINE_TRANSFER_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c'))
|
||||
+s=P.read_text()
|
||||
+for forbidden in ('GetItem(', 'TrySpawn', 'SetAmmoCount', 'ActivateTrigger(', 'DeleteEntity', 'SetOrigin'):
|
||||
+ assert forbidden not in s
|
||||
+assert s.count('TryMoveItemToStorage(')==1
|
||||
+assert s.index('m_Reservation.Commit()')<s.index('m_Submitted = true;')<s.index('TryMoveItemToStorage(')
|
||||
+reservation=(ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c').read_text()
|
||||
+stored=body(ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c',' static bool StoredUnder(')
|
||||
+def cpp(s):
|
||||
+ s=re.sub(r'//[^\n]*','',s).replace('protected ','').replace('override ','').replace('ref ','').replace('class ','struct ').replace('foreach (','for (').replace('array<','Array<').replace('null','nullptr')
|
||||
+ s=s.replace('void ERR_InfantryMineTransfer(', 'ERR_InfantryMineTransfer(').replace('void ERR_FiniteMagazineReservation(', 'ERR_FiniteMagazineReservation(')
|
||||
+ for typ in ('InventoryStorageManagerComponent','InventoryItemComponent','SCR_AIVehicleUsageComponent','SCR_PressureTriggerComponent'):
|
||||
+ s=re.sub(typ+r'\.Cast\((\w+)\.FindComponent\('+typ+r'\)\)',r'\1.'+{'InventoryStorageManagerComponent':'inventory','InventoryItemComponent':'item','SCR_AIVehicleUsageComponent':'usage','SCR_PressureTriggerComponent':'trigger'}[typ],s)
|
||||
+ for typ,field in [('InventoryStorageManagerComponent','inventory'),('SCR_AntiPersonnelMineCollisionHandlerComponent','collision'),('SCR_PressureTriggerComponent','trigger'),('DamageManagerComponent','damage')]:
|
||||
+ s=re.sub(r'(\w+)\.FindComponent\('+typ+r'\)',r'\1.'+field,s)
|
||||
+ for typ in ('ERR_GameMode','ERR_ForceRecord','ERR_HQStatusSampler','InventoryStorageManagerComponent','InventoryItemComponent','InventoryStorageSlot','BaseInventoryStorageComponent','SCR_AIVehicleUsageComponent','SCR_PressureTriggerComponent','SCR_AIGroupUtilityComponent','Physics','ERR_InfantryMineTransfer','ERR_InfantryMineCallback','ERR_FiniteMagazineReservation'):
|
||||
+ s=re.sub(r'\b'+typ+r' (?=\w)',typ+'* ',s)
|
||||
+ s=s.replace('Array<BaseInventoryStorageComponent>','Array<BaseInventoryStorageComponent*>').replace('Array<IEntity> attempted','Array<IEntity>* attempted')
|
||||
+ for field in ('m_Original','m_Spent'):
|
||||
+ s=s.replace('Array<IEntity> '+field,'Array<IEntity>* '+field).replace(field+'.',field+'->')
|
||||
+ s=s.replace('Array<IEntity> original, Array<IEntity> spent','Array<IEntity>* original, Array<IEntity>* spent')
|
||||
+ for ns in ('Replication','SCR_Global','ERR_GameMode','ERR_Actors','ERR_EnemyEquipmentRules','ERR_ConvoyRules','SCR_FactionManager','CompartmentAccessComponent','ERR_InfantryAmmoTransfer','ERR_InfantryAmmoAccess','ERR_ForceRules','ERR_EnemyLoadoutCatalog','ERR_InfantryAmmoTransferState','EStoragePurpose'):
|
||||
+ s=s.replace(ns+'.',ns+'::')
|
||||
+ for var in ('m_Mine','exactMine','mode','donorVehicle','recipientActor','originalRoster','usage','item','actor','group','inventory','carried','trigger','m_Mode','m_Donor','m_DonorGroup','m_Recipient','m_RecipientGroup','m_Roster','m_DonorRecord','m_RecipientRecord','m_Source','m_Destination','m_Reservation','m_Callback','m_FromSlot','m_FromStorage','m_Storage','slot','storage','utility','physics','Transfer','entity'):
|
||||
+ s=re.sub(r'\b'+var+r'\.',var+'->',s)
|
||||
+ for call in ('Forces()','GetPilotCompartmentSlot()','GetPrefabData()','GetParentSlot()'):
|
||||
+ s=s.replace(call+'.',call+'->')
|
||||
+ s=s.replace('m_VehicleMgr.','m_VehicleMgr->')
|
||||
+ s=re.sub(r'\b(bool|int|IEntity) (\w+);',r'\1 \2{};',s)
|
||||
+ s=re.sub(r'^( \w+\*) (\w+);',r'\1 \2=nullptr;',s,flags=re.M)
|
||||
+ return s.replace('\n}\n','\n};\n')
|
||||
+run(r'''
|
||||
+#include <cassert>
|
||||
+#include <vector>
|
||||
+#include <string>
|
||||
+#include <algorithm>
|
||||
+#include <cmath>
|
||||
+#include <functional>
|
||||
+using string=std::string;
|
||||
+template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;int Count(){return this->size();}void Insert(T v){this->push_back(v);}bool Contains(T v){return std::find(this->begin(),this->end(),v)!=this->end();}void RemoveItem(T v){auto i=std::find(this->begin(),this->end(),v);if(i!=this->end())this->erase(i);}};
|
||||
+struct Entity;struct Group;using IEntity=Entity*;using Vehicle=Entity*;using SCR_AIGroup=Group*;
|
||||
+struct Vector{float n=0;float Length(){return n;}};
|
||||
+struct Physics{Vector speed,angular;Vector GetVelocity(){return speed;}Vector GetAngularVelocity(){return angular;}};
|
||||
+struct BaseInventoryStorageComponent{IEntity owner=nullptr;IEntity GetOwner(){return owner;}};
|
||||
+struct InventoryStorageSlot{IEntity attached=nullptr;BaseInventoryStorageComponent*storage=nullptr;IEntity GetAttachedEntity(){return attached;}BaseInventoryStorageComponent*GetStorage(){return storage;}};
|
||||
+struct InventoryItemComponent{InventoryStorageSlot*slot=nullptr;InventoryStorageSlot*GetParentSlot(){return slot;}};
|
||||
+struct SCR_PressureTriggerComponent{bool active=false,initial=false;bool IsActivated(){return active;}bool IsActivatedByDefault(){return initial;}};
|
||||
+struct Prefab{string name="PMN4";string GetPrefabName(){return name;}};
|
||||
+struct Seat{IEntity occupant=nullptr;IEntity GetOccupant(){return occupant;}};
|
||||
+struct SCR_AIVehicleUsageComponent{Seat*seat=nullptr;Seat*GetPilotCompartmentSlot(){return seat;}};
|
||||
+struct InventoryStorageManagerComponent;
|
||||
+struct Entity{InventoryStorageManagerComponent*inventory=nullptr;InventoryItemComponent*item=nullptr;SCR_PressureTriggerComponent*trigger=nullptr;SCR_AIVehicleUsageComponent*usage=nullptr;Prefab*prefab=nullptr;Physics*physics=nullptr;IEntity vehicle=nullptr,parent=nullptr;SCR_AIGroup group=nullptr;int faction=1;bool alive=true,fit=true,player=false,collision=true,damage=true;
|
||||
+ Prefab*GetPrefabData(){return prefab;}Physics*GetPhysics(){return physics;}IEntity GetParent(){return parent;}};
|
||||
+struct VehicleManager{bool found=true;bool FindVehicle(IEntity){return found;}};
|
||||
+struct SCR_AIGroupUtilityComponent{bool military=true;VehicleManager*m_VehicleMgr=nullptr;bool IsMilitary(){return military;}};
|
||||
+struct Group{bool slave=false;int players=0,faction=1;SCR_AIGroupUtilityComponent*utility=nullptr;bool IsSlave(){return slave;}int GetPlayerCount(bool){return players;}int GetFaction(){return faction;}SCR_AIGroupUtilityComponent*GetGroupUtilityComponent(){return utility;}};
|
||||
+struct ERR_ForceRecord{SCR_AIGroup Group=nullptr;bool Physical=true,Eliminated=false;};
|
||||
+struct Ledger{SCR_AIGroup donor=nullptr,recipient=nullptr;ERR_ForceRecord*d=nullptr,*r=nullptr;ERR_ForceRecord*FindGroup(SCR_AIGroup g){return g==donor?d:g==recipient?r:nullptr;}};
|
||||
+struct ERR_GameMode{inline static ERR_GameMode*current=nullptr;bool active=true;Ledger*ledger=nullptr;static ERR_GameMode*Get(){return current;}bool Active(){return active;}Ledger*Forces(){return ledger;}int EnemyFaction(){return 1;}};
|
||||
+struct ERR_HQStatusSampler{SCR_AIGroup group=nullptr;IEntity actor=nullptr;bool valid=true;int strength=1;bool OwnsRoster(SCR_AIGroup g){return g==group;}int InitialStrength(){return strength;}IEntity InitialMember(int i){return i==0?actor:nullptr;}bool CanAttribute(int i,IEntity a,bool){return valid&&i==0&&a==actor;}};
|
||||
+struct Replication{inline static bool server=true;static bool IsServer(){return server;}};
|
||||
+struct SCR_Global{inline static bool edit=false;static bool IsEditMode(){return edit;}};
|
||||
+struct ERR_Actors{static bool Alive(IEntity e){return e&&e->damage&&e->alive;}static bool CanFight(IEntity e){return Alive(e)&&e->fit;}static bool Player(IEntity e){return e&&e->player;}static SCR_AIGroup Group(IEntity e){return e?e->group:nullptr;}};
|
||||
+struct ERR_EnemyEquipmentRules{static bool Eligible(ERR_GameMode*,SCR_AIGroup g,IEntity e){return g&&!g->slave&&!g->players&&g->faction==1&&ERR_Actors::CanFight(e)&&!e->player&&e->group==g;}};
|
||||
+struct SCR_FactionManager{static int SGetFaction(IEntity e){return e?e->faction:0;}};
|
||||
+struct CompartmentAccessComponent{static IEntity GetVehicleIn(IEntity e){return e?e->vehicle:nullptr;}};
|
||||
+struct ERR_ConvoyRules{inline static bool captured=false;static bool Captured(IEntity,SCR_AIGroup){return captured;}static bool PartOf(IEntity e,IEntity root){return e&&e==root;}};
|
||||
+struct ERR_InfantryAmmoAccess{inline static bool clear=true;static bool Clear(IEntity,IEntity){return clear;}};
|
||||
+struct ERR_ForceRules{static bool Finite(float n){return std::isfinite(n);}};
|
||||
+struct ERR_EnemyLoadoutCatalog{inline static string MINE="PMN4";};
|
||||
+struct EStoragePurpose{static const int PURPOSE_DEPOSIT=1;};
|
||||
+enum ERR_InfantryAmmoTransferState{FAILED=-1,PENDING,SUCCEEDED};
|
||||
+struct ScriptedInventoryOperationCallback{virtual ~ScriptedInventoryOperationCallback()=default;virtual void OnComplete(){}virtual void OnAllComplete(){}virtual void OnFailed(){}virtual void OnAllFailed(){}};
|
||||
+struct InventoryStorageManagerComponent{IEntity owner=nullptr;Array<IEntity>items;Array<BaseInventoryStorageComponent*>storages;BaseInventoryStorageComponent*destination=nullptr;bool capacity=true,accept=true;int calls=0;ScriptedInventoryOperationCallback*last=nullptr;std::function<void()>effect;
|
||||
+ IEntity GetOwner(){return owner;}void GetItems(Array<IEntity>&a,int=0){a=items;}void GetStorages(Array<BaseInventoryStorageComponent*>&a,int){a=storages;}BaseInventoryStorageComponent*FindStorageForItem(IEntity,int){return destination;}
|
||||
+ bool CanMoveItemToStorage(IEntity,BaseInventoryStorageComponent*,int){return capacity;}
|
||||
+ bool TryMoveItemToStorage(IEntity,BaseInventoryStorageComponent*,int,ScriptedInventoryOperationCallback*cb){calls++;last=cb;if(effect)effect();return accept;}};
|
||||
+struct ERR_InfantryAmmoTransfer{
|
||||
+'''+cpp(stored)+r'''
|
||||
+};
|
||||
+'''+cpp(reservation)+r'''
|
||||
+struct ERR_InfantryMineTransfer;
|
||||
+struct ERR_InfantryMineCallback : ScriptedInventoryOperationCallback{ERR_InfantryMineTransfer*Transfer=nullptr;void OnComplete();void OnAllComplete();void OnFailed();void OnAllFailed();};
|
||||
+'''+cpp(s[s.index('class ERR_InfantryMineTransfer\n'):])+r'''
|
||||
+'''+''.join(cpp(body(P,'protected override void '+method+'(')).replace('void '+method+'(', 'void ERR_InfantryMineCallback::'+method+'(') for method in ('OnComplete','OnAllComplete','OnFailed','OnAllFailed'))+r'''
|
||||
+struct Fixture{ERR_GameMode mode;Ledger ledger;Group donorGroup,recipientGroup;ERR_ForceRecord donorRecord,recipientRecord;Entity truck,driver,actor,incoming,original,extra;InventoryStorageManagerComponent source,destination;BaseInventoryStorageComponent sourceStorage,destStorage;InventoryStorageSlot from,to,ownSlot,extraSlot;InventoryItemComponent inItem,ownItem,extraItem;Prefab prefab;SCR_PressureTriggerComponent inTrigger,ownTrigger,extraTrigger;SCR_AIVehicleUsageComponent usage;Seat seat;Physics physics;VehicleManager vehicleMgr;SCR_AIGroupUtilityComponent utility;ERR_HQStatusSampler roster;Array<IEntity>stock,spent;ERR_FiniteMagazineReservation reservation;
|
||||
+ Fixture():reservation(&stock,&spent,&incoming){Replication::server=true;SCR_Global::edit=false;ERR_ConvoyRules::captured=false;ERR_InfantryAmmoAccess::clear=true;ERR_GameMode::current=&mode;mode.ledger=&ledger;
|
||||
+ ledger.donor=&donorGroup;ledger.recipient=&recipientGroup;ledger.d=&donorRecord;ledger.r=&recipientRecord;donorRecord.Group=&donorGroup;recipientRecord.Group=&recipientGroup;
|
||||
+ truck.inventory=&source;actor.inventory=&destination;truck.physics=&physics;truck.usage=&usage;usage.seat=&seat;seat.occupant=&driver;driver.vehicle=&truck;driver.group=&donorGroup;actor.group=&recipientGroup;donorGroup.utility=&utility;utility.m_VehicleMgr=&vehicleMgr;
|
||||
+ source.owner=&truck;destination.owner=&actor;sourceStorage.owner=&truck;destStorage.owner=&actor;source.storages={&sourceStorage};destination.storages={&destStorage};destination.destination=&destStorage;
|
||||
+ from.storage=&sourceStorage;from.attached=&incoming;to.storage=&destStorage;ownSlot.storage=&destStorage;ownSlot.attached=&original;extraSlot.storage=&destStorage;extraSlot.attached=&extra;
|
||||
+ incoming.prefab=&prefab;incoming.trigger=&inTrigger;incoming.item=&inItem;inItem.slot=&from;original.prefab=&prefab;original.trigger=&ownTrigger;original.item=&ownItem;ownItem.slot=&ownSlot;extra.prefab=&prefab;extra.trigger=&extraTrigger;extra.item=&extraItem;extraItem.slot=&extraSlot;
|
||||
+ source.items={&incoming};destination.items={&original};roster.group=&recipientGroup;roster.actor=&actor;stock={&incoming};assert(reservation.Reserve());}
|
||||
+ ERR_InfantryMineTransfer Job(){return ERR_InfantryMineTransfer(&mode,&truck,&donorGroup,&actor,&recipientGroup,&incoming,&reservation,&roster,0);}
|
||||
+ void Move(){source.items.clear();destination.items.Insert(&incoming);from.attached=nullptr;to.attached=&incoming;inItem.slot=&to;}
|
||||
+};
|
||||
+int main(){
|
||||
+ {Fixture f;auto t=f.Job();assert(t.Tick(0)==PENDING&&t.Submitted()&&t.Unresolved()&&f.source.calls==1);assert(f.reservation.CommittedFor(&f.incoming)&&!f.reservation.ReleaseUnsubmitted());
|
||||
+ f.source.last->OnComplete();assert(t.Tick(1)==PENDING&&t.Unresolved());f.Move();assert(t.Tick(2)==SUCCEEDED&&!t.Unresolved());assert(f.destination.items.Count()==2);t.Tick(3);assert(f.source.calls==1);}
|
||||
+ // Partially constructed contexts never bind later or reach native mutation.
|
||||
+ for(int k=0;k<10;k++){Fixture f;
|
||||
+ if(k==4)f.mode.ledger=nullptr;if(k==5)f.ledger.d=nullptr;if(k==6)f.ledger.r=nullptr;if(k==7)f.seat.occupant=nullptr;
|
||||
+ ERR_InfantryMineTransfer t(k==0?nullptr:&f.mode,k==1?nullptr:&f.truck,&f.donorGroup,k==2?nullptr:&f.actor,&f.recipientGroup,k==8?nullptr:&f.incoming,&f.reservation,k==3?nullptr:&f.roster,k==9?1:0);
|
||||
+ assert(t.Tick(0)==FAILED&&!t.Submitted()&&f.source.calls==0);}
|
||||
+ // No entitlement for zero/two carriers, uncertain inventory, or replaced original mine.
|
||||
+ for(int k=0;k<8;k++){Fixture f;if(k==0)f.destination.items.clear();if(k==1)f.destination.items.Insert(&f.extra);if(k==2)f.ownTrigger.active=true;if(k==3)f.ownTrigger.initial=true;if(k==4)f.ownItem.slot=nullptr;if(k==5)f.ownSlot.attached=&f.extra;if(k==6)f.destination.items.Insert(nullptr);if(k==7)f.destination.items.resize(129,&f.original);
|
||||
+ auto t=f.Job();assert(t.Tick(0)==FAILED&&!t.Submitted()&&f.source.calls==0&&f.reservation.ReleaseUnsubmitted());}
|
||||
+ {Fixture f;auto t=f.Job();f.destination.items={&f.extra};assert(t.Tick(0)==FAILED&&f.source.calls==0);}
|
||||
+ {Fixture f;f.extra.damage=false;f.destination.items.Insert(&f.extra);assert(!ERR_InfantryMineTransfer::Carrier(&f.actor,&f.recipientGroup));auto t=f.Job();assert(t.Tick(0)==FAILED&&f.source.calls==0);}
|
||||
+ // Duplicates in native enumeration are one item, not a second entitlement.
|
||||
+ {Fixture f;f.destination.items.Insert(&f.original);assert(ERR_InfantryMineTransfer::Carrier(&f.actor,&f.recipientGroup)==&f.original);}
|
||||
+ // Atomic shared claim before native request, including synchronous callback and false return.
|
||||
+ {Fixture f;f.source.accept=false;f.source.effect=[&]{assert(f.reservation.CommittedFor(&f.incoming)&&!f.reservation.ReleaseUnsubmitted());f.Move();f.source.last->OnComplete();};auto t=f.Job();assert(t.Tick(0)==SUCCEEDED&&!t.Unresolved()&&f.source.calls==1);}
|
||||
+ {Fixture f;ERR_FiniteMagazineReservation rival(&f.stock,&f.spent,&f.incoming);assert(!rival.Reserve());auto t=f.Job();assert(t.Tick(0)==PENDING&&f.spent.Count()==1);}
|
||||
+ {Fixture f;f.reservation.ReleaseUnsubmitted();auto t=f.Job();assert(t.Tick(0)==FAILED&&!t.Submitted()&&f.source.calls==0);}
|
||||
+ {Fixture f;f.source.accept=false;auto t=f.Job();assert(t.Tick(0)==FAILED&&t.Submitted()&&t.Unresolved());f.source.last->OnFailed();assert(!t.Unresolved()&&!f.reservation.ReleaseUnsubmitted());t.Tick(1);assert(f.source.calls==1);}
|
||||
+ // Failure cannot release partial movement; late success is not permission to retry.
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(0);f.inItem.slot=&f.to;f.source.last->OnFailed();assert(t.Tick(1)==FAILED&&t.Unresolved());f.source.last->OnComplete();assert(t.Unresolved()&&f.source.calls==1);}
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(0);t.Stop();f.mode.active=false;f.Move();f.source.last->OnComplete();assert(!t.Unresolved()&&t.Tick(1)==FAILED&&f.source.calls==1);}
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(0);assert(t.Tick(8000)==FAILED&&t.Unresolved());f.Move();f.source.last->OnComplete();assert(!t.Unresolved()&&t.Tick(8001)==FAILED&&f.source.calls==1);}
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(10);assert(t.Tick(9)==FAILED&&t.Unresolved()&&f.source.calls==1);}
|
||||
+ // Only deletion, not damage/capture, settles an unknown one-item movement.
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(0);t.m_Mine=nullptr;f.reservation.m_Item=nullptr;f.stock[0]=nullptr;f.spent[0]=nullptr;assert(t.Tick(1)==FAILED&&!t.Unresolved());f.source.last->OnComplete();assert(t.Tick(2)==FAILED&&!f.reservation.ReleaseUnsubmitted()&&f.spent.Count()==1);}
|
||||
+ for(int k=0;k<3;k++){Fixture f;auto t=f.Job();t.Tick(0);if(k==0)f.incoming.alive=false;if(k==1)f.actor.player=true;if(k==2){ERR_ConvoyRules::captured=true;}assert(t.Tick(1)==FAILED&&t.Unresolved()&&f.source.calls==1);}
|
||||
+ // Original actor/ledger/driver/managers/capacity/reach/stock all remain required.
|
||||
+ for(int k=0;k<25;k++){Fixture f;auto t=f.Job();ERR_ForceRecord replacement;InventoryStorageManagerComponent changed;
|
||||
+ switch(k){case 0:Replication::server=false;break;case 1:SCR_Global::edit=true;break;case 2:f.mode.active=false;break;case 3:ERR_GameMode::current=nullptr;break;case 4:f.roster.valid=false;break;case 5:f.roster.actor=&f.extra;break;case 6:f.roster.strength=2;break;case 7:f.actor.fit=false;break;case 8:f.actor.player=true;break;case 9:f.actor.vehicle=&f.truck;break;case 10:f.ledger.r=&replacement;break;case 11:f.donorRecord.Eliminated=true;break;case 12:f.vehicleMgr.found=false;break;case 13:f.seat.occupant=&f.extra;break;case 14:f.truck.inventory=&changed;break;case 15:f.actor.inventory=&changed;break;case 16:f.physics.speed.n=1;break;case 17:f.physics.angular.n=1;break;case 18:ERR_InfantryAmmoAccess::clear=false;break;case 19:f.source.capacity=false;break;case 20:f.destination.destination=nullptr;break;case 21:f.inTrigger.active=true;break;case 22:f.from.attached=&f.extra;break;case 23:f.source.items.clear();break;case 24:f.destination.items.Insert(&f.incoming);break;}
|
||||
+ assert(t.Tick(0)==FAILED&&!t.Submitted()&&f.source.calls==0);}
|
||||
+ // Ownership lost after submission remains quarantined until exact physical proof.
|
||||
+ {Fixture f;auto t=f.Job();t.Tick(0);f.roster.valid=false;assert(t.Tick(1)==FAILED&&t.Unresolved());f.Move();f.source.last->OnComplete();assert(!t.Unresolved()&&t.Tick(2)==FAILED);}
|
||||
+}
|
||||
+'''.replace(';if(', ';\n if('))
|
||||
+print('PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry')
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-j3y62ux8/check.cpp:365: int main(): Assertion `!ERR_InfantryMineTransfer::Carrier(&f.actor,&f.recipientGroup)' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-transfer-1724/tests/test_infantry_mine_transfer.py", line 36, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<97 lines>...
|
||||
}
|
||||
^
|
||||
'''.replace(';if(', ';\n if('))
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-j3y62ux8/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-0nkjkelh/check.cpp:363: int main(): Assertion `t.Tick(0)==FAILED&&!t.Submitted()&&f.source.calls==0&&f.reservation.ReleaseUnsubmitted()' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-transfer-1724/tests/test_infantry_mine_transfer.py", line 36, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<97 lines>...
|
||||
}
|
||||
^
|
||||
'''.replace(';if(', ';\n if('))
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-0nkjkelh/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"test_infantry_mine_transfer.py": 0,
|
||||
"mutation_remove_single_carrier_guard": {
|
||||
"exit": 1,
|
||||
"result": "compiled, actual assertion failure",
|
||||
"log": "red-two-carriers.log"
|
||||
},
|
||||
"mutation_remove_missing_damage_guard": {
|
||||
"exit": 1,
|
||||
"result": "compiled, actual assertion failure",
|
||||
"log": "red-missing-damage.log"
|
||||
},
|
||||
"git_apply_check": 0,
|
||||
"native_run": false
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "57977eac877d25c8578116d932b7a3707e465c6d1ac74b7d98b9204e1add861f",
|
||||
"tests/test_infantry_mine_transfer.py": "6d2013a77b9389e787acff2229629629819a48e752e1425447714fda8bfc8d6b"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"README.md": "5e0a88356396480ec805d755a45fa37afc2d0142b2e804fc39d9ba474a3fddc1",
|
||||
"addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4",
|
||||
"addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "d39dc876487b445efc5c3fadc19e1e06c6900c5cd57c93a01f35c32aa27d6039",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "c3e008c8bbf538c5bca3a82a975decc7a283a38543a9d2639d90a81ce592c51e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0c2f4d31a2abc8f3f90bda20546543f2a1cf9306e9bf93351dda1883b990770e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "6e3c65e55b05cf205040c310b9086faa41b88582c7f9faf49c010afd59da5b07",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "251d55779509cb76f66938221b4dc8face53e187a82c9f2c651e6b1d13216c27",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4a23058f27e3ab074df6f8f7bb6f08a8fd26fbadb8943c6fb8d64dcc9c221751",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "87a6c19429f12c5630ed73170ca9a8a6d2255d6cd38b130166a78aacd15f2de0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "ec8d04b6550b39b9688ef67b40cb2f14a9d98c8fff62b6dfb8d4a43e19b4e4c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "19fc19e22348e6213827f620f4fdb5dc26144ea2ce0032de773e79c1fb155a26",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "8d75b35ab977be0cb1a2e3d3d1cb8ef875cdbfba69c35784c3d195451ef944c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7422f79bfa5ecf9b13c37b7ad0cf0b23469ed7059e85462ff96b7704084d29d9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "e353ece5e1f3a6731875d8080c00fa9511446c309ff2a1454911e53c01f536f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "81bf30d358c7b100248be17cbc2e6beb2f107300c939aede8a92d273eb7dae1f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "e73b3654ea115568ab24456d43dfe0c6419d3ccfeaf53e5b7752d31f2950b58d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "2088c45798f0eced702e0abd97550b8d1fc97ebcc34c3d497978b7424f6c670d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "7d5ff3389ee806ac213db5be3a68288b3399142ccc29806df0d65b34a0b2fc3c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "47d9374095d04f5f1339c220caf518a40938ffc20f891b1b51ae38579e7e1c25",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "f2597d44c10d10de2462aa5e5450a22b8a5ad0eb99bd0cc09a8cf1ca2dd4a350",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "4966dad504b3f8f28a9ffc8ac17cc548b00066fe05213c49c662ea56de34c9d4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "d8fec6c138bb0f5bdbf99ee82ffc3ac9b44d1045d8833da63f8aa5f39beeb7e5",
|
||||
"addons/core/UI/layouts/ERR/AdminMenu.layout": "997e4f33660de5bb54c2939898cacc8857736a73db2c6919888ae0e762050e5c",
|
||||
"docs/environment.md": "2a58f8a969348e42e09e45b906a3d61fb65d887ae2814547605a01987747ab6c",
|
||||
"docs/field-sites.md": "9c3928a04b4b242dcf806d7b20ecf2f4cc636aff9a31ed90d9fd75cfaf776aa0",
|
||||
"docs/prison-opening.md": "be60fee1542185bfae38cba9bacf1f181acf2a032af33d5eb853468a036cc54a",
|
||||
"docs/recovery.md": "026b513982530b8d65a6a1459e8707cd4abaf56450abc00f8449cf01fc660d0d",
|
||||
"docs/spectator-guidance.md": "700840fb639152c61785238ebc383fade6cf34f5d888496204569c60ad6d091d",
|
||||
"docs/vanilla-resources.json": "d80edf67d429b578051cad1630d3c44fae70714d14a277e40294242f9b439783",
|
||||
"tests/test_admin_menu.py": "e7adf7c3ad76274e29135b56223facdd0f9e01911d7a690787949d695073bfba",
|
||||
"tests/test_command_maintenance.py": "be2c942aa11a5f874448e94f06925f2f1de2210a14881fb7e486842119cb673c",
|
||||
"tests/test_escape_result_wording.py": "7b3613cccd4f24d3ef4665dfc1854cfc958a69018a59f9b8090617f0185a82a8",
|
||||
"tests/test_field_sites.py": "fddb0e44e72fdfe32bb94347a14da64efbd2208e4f252754e80c620fbecda56c",
|
||||
"tests/test_headless_game_runner.py": "0d84160076ec9961e7315ccd50d6ce45ff971328c298649505fbba6305c22f31",
|
||||
"tests/test_journal_readability.py": "47764126522e7d7a90100cd9beff741bf49e4d8390111f977919d3e323a5c7df",
|
||||
"tests/test_native_end_lifecycle.py": "8b187723c9039e68e3e590c812c91dcffe1e5917d4e450ed798dc177888fda7a",
|
||||
"tests/test_player_medical.py": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"tests/test_settings_migration.py": "5fdfc8815f49f900a1aeda73ec3954cfd767019e702c48c77411dbb7dc016c2f",
|
||||
"tests/test_spectator_recovery.py": "8bb59c51df003e24532ad9476af4c8ff3b7f4276dca25e8162b91eb77c7b67c2",
|
||||
"tools/check.py": "3e690fd116213ab0f5555db8ad02dae5a58de839af2d132186006e98917ae01b",
|
||||
"tools/headless_game.py": "e7cab472ee51497343174cb460022b3e4591f148d4acbc6e6f881fc68c0fda1b",
|
||||
"tools/headless_workbench.py": "4722d262c601a795a89da489ed9e01f7fa677d866cd8ac23c995b866e43e0aa2",
|
||||
"tools/import_settings.py": "c44490a568893b0076c73423cae09a174ce9c808d83b959987e06af072d38567"
|
||||
}
|
||||
@@ -0,0 +1,580 @@
|
||||
PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected
|
||||
PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup
|
||||
PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering
|
||||
PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it
|
||||
PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup
|
||||
PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start
|
||||
PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed
|
||||
PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked
|
||||
PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown
|
||||
PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested
|
||||
PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel
|
||||
PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries
|
||||
PASS: infantry combat gate precedes radio delivery and preserves non-task transports
|
||||
PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once
|
||||
PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards
|
||||
PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols
|
||||
PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved
|
||||
PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness
|
||||
PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention
|
||||
PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings
|
||||
PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary
|
||||
PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons
|
||||
PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained
|
||||
PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates
|
||||
PASS: native-route retry preserves delivered target, limits attempts and suspends during combat
|
||||
PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend
|
||||
PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait
|
||||
PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access
|
||||
PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation
|
||||
PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles
|
||||
PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link
|
||||
PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it
|
||||
PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence
|
||||
PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception
|
||||
PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound
|
||||
PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay
|
||||
PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release
|
||||
PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules
|
||||
PASS: production cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished
|
||||
PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves
|
||||
PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata
|
||||
PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz
|
||||
PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension
|
||||
PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills
|
||||
PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun
|
||||
PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries
|
||||
PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance
|
||||
PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget
|
||||
PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion
|
||||
PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions
|
||||
PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection
|
||||
PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height
|
||||
PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring
|
||||
PASS: explicit CLI opt-in, disabled/editor guards and mission-header airport precedence
|
||||
PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring
|
||||
PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior
|
||||
PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently
|
||||
PASS: standalone old faction delegates collected once, with null/deleted owners ignored
|
||||
PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools
|
||||
PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved
|
||||
PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback
|
||||
PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs
|
||||
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
|
||||
PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history
|
||||
PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell
|
||||
PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup
|
||||
PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work
|
||||
PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates
|
||||
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
|
||||
PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine
|
||||
PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop
|
||||
PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts
|
||||
PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture
|
||||
PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal
|
||||
PASS: actual convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
|
||||
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
|
||||
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
|
||||
PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration
|
||||
PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines
|
||||
PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths
|
||||
PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged
|
||||
PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest
|
||||
PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved
|
||||
PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved
|
||||
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
|
||||
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
|
||||
PASS: actual one-mine original carrier selection, settled startup, shared finite claims, no refund after submission
|
||||
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
|
||||
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
|
||||
PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound
|
||||
PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup
|
||||
PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim
|
||||
PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle
|
||||
PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback
|
||||
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
|
||||
PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status
|
||||
PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation
|
||||
PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 0.363s
|
||||
|
||||
OK
|
||||
PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit
|
||||
PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested
|
||||
PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation
|
||||
PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state.
|
||||
PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending.
|
||||
PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready.
|
||||
PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified.
|
||||
PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification.
|
||||
PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified.
|
||||
PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector
|
||||
PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound
|
||||
PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict
|
||||
PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts
|
||||
PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation
|
||||
PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified
|
||||
PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification
|
||||
PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified.
|
||||
PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused
|
||||
Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed
|
||||
PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation
|
||||
PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim
|
||||
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
|
||||
HQ convoy delivered-report planning and downlink regressions passed
|
||||
PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown
|
||||
PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts
|
||||
PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation
|
||||
PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup
|
||||
PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification.
|
||||
PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns
|
||||
PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get
|
||||
PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects
|
||||
PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds
|
||||
test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok
|
||||
test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok
|
||||
test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok
|
||||
test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok
|
||||
test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok
|
||||
test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok
|
||||
test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.077s
|
||||
|
||||
OK
|
||||
PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports
|
||||
PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 3.885s
|
||||
|
||||
OK
|
||||
PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions
|
||||
PASS: actual filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset
|
||||
PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties
|
||||
PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry
|
||||
PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment
|
||||
PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation
|
||||
PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all12 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact19 bodies without capacity shrinking
|
||||
PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation
|
||||
PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement
|
||||
PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact19-body composition, source reuse, mode/client guards and no consumed receipt refunds
|
||||
PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release
|
||||
PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities
|
||||
PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal
|
||||
PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim
|
||||
PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity
|
||||
PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning
|
||||
PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup
|
||||
PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze
|
||||
PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery
|
||||
PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves
|
||||
PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death
|
||||
PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation
|
||||
PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles
|
||||
PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles
|
||||
PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression
|
||||
PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown
|
||||
PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology
|
||||
PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries
|
||||
PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries
|
||||
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
|
||||
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
|
||||
PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine
|
||||
PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs
|
||||
PASS: actual engineer mine preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested
|
||||
PASS: actual road mine-site annulus/bend geometry, deterministic bounded candidates, server/query limits, and native ground/water/obstruction rejection; no runtime placement claim
|
||||
PASS: actual HQ mine admission, one site query per tick, maximum two active/32 retained jobs, delivered-only original post, once-per-unit refusal latch, 256-item ceiling and maintenance/teardown ownership
|
||||
PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership
|
||||
PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup
|
||||
PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts
|
||||
PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning
|
||||
PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions
|
||||
.......
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.029s
|
||||
|
||||
OK
|
||||
PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.432s
|
||||
|
||||
OK
|
||||
PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring
|
||||
PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded
|
||||
PASS: actual menu command routing covers all fourteen 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: actual summaries preserve queued/delivered meaning, clear counts and IDs; raw records, legacy display, cursor gaps and RPC limits remain intact
|
||||
PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths
|
||||
PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode
|
||||
PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded
|
||||
PASS: actual reroll snapshot, authority, cancellation, ownership, accepted operations, quarantine, bounded work and stop methods; no native runtime claim
|
||||
PASS: production Intel feedback coalescing, rough secrecy, rate limit, bounded dedupe, local/remote delivery and round cleanup; native UI/RPC not exercised
|
||||
PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering
|
||||
PASS: actual action denial/clearing, server request failure, single submitted-result feedback, current rescuer identity and terminal/stop suppression; native UI/RPC pending
|
||||
PASS: actual physical denial precedence and transport-seat occupancy/reservation/access/lock checks
|
||||
PASS: actual initial admission exhaustion and ServerTick grace; new/pending/empty/controller/life guards, normal death preserved
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 0.287s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 26.675s
|
||||
|
||||
OK
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 2.895s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 2.301s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 1.089s
|
||||
|
||||
OK
|
||||
PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement
|
||||
PASS: actual opt-in terrain audit records one fixed1681-point grid, preserves original survey refusal/success and exact no-allocation scope; malformed heights stop without retry; no native data acquired
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.592s
|
||||
|
||||
OK
|
||||
PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested
|
||||
PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification
|
||||
PASS: actual QualifyField preserves original identity/footprint/time, orders complete surveys before issuance, and refuses failed stages/moved body/expired or changed world; native boundaries faked
|
||||
PASS: WORKBENCH first-refusal diagnostics preserve ordinary predicates, query order/count/budget and opt-in scope; no native logging run
|
||||
PASS: actual field startup delegation, immutable lease/target, braking/settling/cancel transitions, early abort, callback scope, physical terminal policy and shared landing demand; native boundaries faked
|
||||
PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture
|
||||
PASS: actual Core maintenance/default/tick/stop methods; empty/populated authority, terminal reentry, no tactical resume or new scheduler; native boundaries substituted
|
||||
PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded cross-kind order history and typed field/route construction; native boundaries faked
|
||||
PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.638s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 0.167s
|
||||
|
||||
OK
|
||||
................
|
||||
----------------------------------------------------------------------
|
||||
Ran 16 tests in 9.933s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.022s
|
||||
|
||||
OK
|
||||
PASS: actual production bridge lookup, lease/world/mode/seat/capture guards, no allocation, native super ordering and read-only fixture hooks
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 0.052s
|
||||
|
||||
OK
|
||||
.............
|
||||
----------------------------------------------------------------------
|
||||
Ran 13 tests in 4.720s
|
||||
|
||||
OK
|
||||
PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry
|
||||
..............................
|
||||
----------------------------------------------------------------------
|
||||
Ran 30 tests in 0.404s
|
||||
|
||||
OK
|
||||
..............
|
||||
----------------------------------------------------------------------
|
||||
Ran 14 tests in 0.207s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.113s
|
||||
|
||||
OK
|
||||
PASS: actual gate observer binds native registered action/context and current life, reads accumulated progress, refuses stale bindings and never revives outside original bounds
|
||||
PASS: actual read-only look observer methods enforce explicit scope, pinned native camera/body/identity, normalized pose, terminal cancellation and original sample/time bounds
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.066s
|
||||
|
||||
OK
|
||||
.......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 23 tests in 0.033s
|
||||
|
||||
OK
|
||||
PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending
|
||||
........
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 0.010s
|
||||
|
||||
OK
|
||||
PASS: actual inventory adapter scope, grid placement, sole compatible host, refresh reuse, rollback, foreign hierarchy refusal and exactly-once native delegation; native compatibility pending
|
||||
.................................................................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 81 tests in 0.537s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.075s
|
||||
|
||||
OK
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 0.005s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.084s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.367s
|
||||
|
||||
OK
|
||||
PASS: actual observer nonce, admission pins, baseline/menu sequencing, snapshots, bounded clocks/samples, cleanup and one-attempt latch; native untested
|
||||
PASS: actual corridor caps/height/hold and whole-rectangle survey bounds, terrain refusal, native trace refusal and exact certificate lineage; native route unqualified
|
||||
PASS: actual route entry, fixed corridor/target, hover hold, cancellation landing freeze, shared lease/capture/deadline gate and unchanged native startup/tick sequence
|
||||
PASS: finite opt-in route fixture, original native input order, meaningful physical-arrival evidence and guarded cleanup; no native launch
|
||||
PASS: actual Chat route step result dispatch and scoped completion/cleanup wiring; six real early-parser refusal paths leave no prefix/profile output
|
||||
PASS: actual retained-service fixture entry, immutable controller/token/deadline/count bindings, observer getter and cleanup ownership ordering; native route validation pending
|
||||
PASS: actual measured cancellation gate, one-shot retained service Stop, no premature drain, immutable lease, fresh real controller readback and separate physical cancellation result policy
|
||||
PASS: actual rough-intel objective selection, exact precedence, source grid dimensions and unchanged other-phase dispatch; native UI pending
|
||||
.................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 33 tests in 0.087s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 0.032s
|
||||
|
||||
OK
|
||||
PASS: actual preparation status scope, persistent updates, spinner restoration, placeholder replacement/deletion/destruction, native observation persistence/timeout; rendering remains native-pending
|
||||
PASS: actual guide/observer monitors retry native refusal, cache successful delivery, deduplicate and preserve living/preparing/spectator boundaries; native UI not exercised
|
||||
PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 1.431s
|
||||
|
||||
OK
|
||||
PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.132s
|
||||
|
||||
OK
|
||||
PASS: actual immutable target, bounded autohover demand, drift refusal, five-second hold and unchanged qualification/deadline
|
||||
PASS: actual admission attempt budget bounds blocked/missing prerequisites; preparation, spent life and async pending remain protected
|
||||
PASS: delayed admission retry retains controller ownership across same-account recycled connection IDs
|
||||
PASS: actual scene deadline overrides delayed native preload only for rejection; late completion cannot assign, ordinary verified admission preserved
|
||||
PASS: actual action permission matrix unchanged; useful phase/intel/consciousness denials, stale reason cleared, native door denial preserved; no native UI claim
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.235s
|
||||
|
||||
OK
|
||||
PASS: actual aircraft cancellation/stage rules, ground-only completion, expiry/capture faults, input ownership and no physical shortcuts
|
||||
PASS: actual exact-instance single-use qualification, native-clock staleness/movement refusal, footprint bounds and ownership-safe ground/fault cleanup
|
||||
PASS: actual optional screenshot helper flag/identity/world/life revalidation, one queued attempt, delayed capture and mission/world cleanup; no native image/presentation claim
|
||||
PASS: actual yard diagnostic exact registered prison ownership, eight native-bound corner projections, no root-sibling escape, bounded duplicate/deep/wide hierarchy traversal; native projection/mask still unmeasured
|
||||
PASS: actual CurrentActor, SpawnPosition and observer-selection methods reject pending/unregistered/replaced/recycled/foreign/dead bodies; canonical selection/cycling, unconscious following and prison/geometry fallback preserved; native boundaries adapted
|
||||
PASS: actual native-map fixture ownership, cleanup and callback evidence fail closed; native execution remains separate
|
||||
PASS: actual shared-map callbacks bind exact map/config/root, preserve replacement UI/camera, defer focus, and remove only owned delayed work
|
||||
PASS: actual Intel/HQ methods and one-shot qualified readiness handoff deliver late actors once; duplicate readiness, accepted spawn, pickup/drop, death and original negative rolls do not mint assignments
|
||||
PASS: Workbench-only read accessor rejects unknown/nonserver identities; Chat observes all distinct ready crew before existing shell-depletion mutation
|
||||
PASS: actual native-event latch survives deselection, requires exact activity/order, detaches before cleanup, preserves failure/timeout and never infers completion from physical shot count
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.128s
|
||||
|
||||
OK
|
||||
PASS: actual refresh-fixture gates pin immutable observations/actual downlinks/original activity, reject unaccepted or relabelled commits, stop queueing early and require all queued contacts claimed before replay
|
||||
..........................
|
||||
----------------------------------------------------------------------
|
||||
Ran 26 tests in 0.237s
|
||||
|
||||
OK
|
||||
PASS: actual refresh scheduler/delivery/cancellation/projectile methods reject interrupted or replayed reports, retain committed ownership, preserve immutable snapshots/aim geometry and isolate stopped or replaced orders; native radio/crew behavior remains separate
|
||||
.....................
|
||||
----------------------------------------------------------------------
|
||||
Ran 21 tests in 0.036s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.037s
|
||||
|
||||
OK
|
||||
PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events
|
||||
PASS: actual reason/availability guidance and refresh matrix; no-target copy omits cycling, hint retry retained, existing command/admin paths unchanged; native UI pending
|
||||
PASS: actual client camera policy closes immediately on healing or mission end; late unconscious metadata cannot keep the view active
|
||||
PASS: actual input dispatch, one press per edge, menu-held suppression; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round
|
||||
PASS: first-person pose survives missing samples without drift, follows body motion/rotation, resumes fresh pose and cannot leak between targets
|
||||
................usage: test_native_package.py [-h] [--project {core}] --session SESSION
|
||||
--compat COMPAT [--steam STEAM]
|
||||
[--timeout TIMEOUT]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
[--silent-workbench | --exit-after-init]
|
||||
[--continue-on-failure]
|
||||
test_native_package.py: error: argument --exit-after-init: not allowed with argument --silent-workbench
|
||||
................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 48 tests in 12.781s
|
||||
|
||||
OK
|
||||
.......
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.222s
|
||||
|
||||
OK
|
||||
..............
|
||||
----------------------------------------------------------------------
|
||||
Ran 14 tests in 2.218s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.261s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.052s
|
||||
|
||||
OK
|
||||
PASS: actual finite-courier age, token, exact ownership/callback and delivered-status admission reject stale, replayed, captured, canceled and ambiguous work
|
||||
PASS: actual native-gun ownership gate rejects player/foreign/replaced/dead occupant, faction change, missing seat and missing registry
|
||||
PASS: four-battery courier selection preserves pending trip/report/transfer identity, skips unavailable crews, and selects the next depleted battery without new stock
|
||||
PASS: 64 bounded distinct storage candidates; native gates, five-store barrier and finite-stock ownership retained; native placement pending
|
||||
PASS: 128 coarse+80 local refinement+169 airport grid candidates retain all native clearance gates; real terrain untested
|
||||
PASS: actual prison registration/crossing policies reject missing/duplicate/destroyed initial gate, incomplete ownership/scan, outside-only body, jumps and stale samples; physical exit independent of later gate damage
|
||||
PASS: actual prison door execution blocks direct AI/UI bypass while locked and delegates unchanged native action once after unlock and permission approval
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 1.937s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 1.173s
|
||||
|
||||
OK
|
||||
PASS: native local-admission snapshot rejects changed life/key/body/participant/pending state; authentication is not simulated
|
||||
PASS: actual mortar report ledger prevents duplicate response after cancellation, expiry and interleaved reports; native scheduler separate
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.015s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.159s
|
||||
|
||||
OK
|
||||
PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested
|
||||
........
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 0.014s
|
||||
|
||||
OK
|
||||
PASS: actual startup/generation/ownership/timeout/callback policies and native-counter wait; integration preserves one-shot allocation and pending-crew cancellation
|
||||
PASS: rapid mortar cycle counts eight physical rounds once and waits for native completion without a ninth aim or shell
|
||||
PASS: actual probe binds native events to fresh immutable commits, permits delayed emission, rejects unrelated expiry closure and premature stop
|
||||
PASS: actual noSplash Load body requires both explicit diagnostic and noSplash, preserves vanilla otherwise, and handles repeated Load/reload
|
||||
PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths
|
||||
PASS: actual safe-exit boundary policy, native action/door selection, stop/cache cleanup, separate old mechanism and opt-in runner contracts
|
||||
PASS: actual one-shot deadline/stability policies and preparation ownership, fuel, cleanup integration contracts
|
||||
PASS: pending-only cancellation retires copied instance intent, preserves physical/control actors, and stops once
|
||||
PASS: actual short-cast hit, upward support normal, no self support and no dynamic support
|
||||
PASS: actual committed-ticket structure preserves reservation after death, rejects missing bodies/seats and ends at observation expiry
|
||||
PASS: actual pending callback expires an empty-server reservation once, preserves its full lease, and cancels on completion/Stop
|
||||
PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries
|
||||
PASS: requested guard population requires complete physical conscious membership before deadline
|
||||
......................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 38 tests in 0.017s
|
||||
|
||||
OK
|
||||
..........
|
||||
----------------------------------------------------------------------
|
||||
Ran 10 tests in 0.003s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.877s
|
||||
|
||||
OK
|
||||
PASS: authored radio/optional-site bounds and physical horizontal/vertical boundaries
|
||||
...
|
||||
----------------------------------------------------------------------
|
||||
Ran 3 tests in 0.001s
|
||||
|
||||
OK
|
||||
PASS: all phase transitions, terminal states, defence boundaries, stale/future observations, intel discovery
|
||||
PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries
|
||||
PASS: player admission phase/life/identity/controller matrix, preload displacement limits, pending reservation overlap and owner exclusion
|
||||
PASS: actual gate and pre-inventory document guards reject noncanonical/faction/life/disconnect/server mismatches; canonical reconnect and unconscious carried intel preserved
|
||||
PASS: WB-only native fault injection restores both body mutations before checks/returns and requires eligible held-document negative/positive proof; runtime pending
|
||||
PASS: actual discovery coordinates disclose stable 500m cell center until identified, then exact point, including negative/boundary coordinates
|
||||
PASS: actual local admission context/selection/latch, same-round late identity, replacement/mode failure, fresh round and untouched network path
|
||||
PASS: prison search packs 16 unique 3m-spaced inside-wall centers, prioritizes inner/edge positions and never bypasses clearance
|
||||
PASS: physical body occupancy rejects overlap, permits diagonal neighboring slots, and excludes own body and unrelated broad-phase bounds
|
||||
PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams
|
||||
PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing
|
||||
PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap
|
||||
PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat
|
||||
PASS: every minute round-trips, malformed clocks rejected, defaults limited to added keys, progression bounds and day duration aligned
|
||||
PASS: native settings policy matches calendar boundaries 1900-2050, date/profile parsing is strict, authored defaults preserve old worlds
|
||||
PASS: view-distance bounds, default, save failures, command parsing, temporary ownership, server/platform limits and lifecycle wiring
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.541s
|
||||
|
||||
OK
|
||||
.
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.313s
|
||||
|
||||
OK
|
||||
PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary
|
||||
PASS: actual radio feedback policy, initial wait, interruption persistence, resumption and terminal/new-round reset
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 2.068s
|
||||
|
||||
OK
|
||||
..............................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 46 tests in 0.810s
|
||||
|
||||
OK
|
||||
PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned
|
||||
PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults
|
||||
PASS: real-carrier shortest-hop paths, 500m boundary, three-hop cap, no-manpack failure, three-second originating-call interruption, unchanged downlink hop timing, completed-hop survival, interrupted final uplink, radio loss, capture, motion, timeout, reset and network bounds
|
||||
PASS: migrated aircraft availability policy (controller migration still pending)
|
||||
PASS: migrated salvo offsets are deterministic, spread and bounded (native firing and complete salvo qualification are separate)
|
||||
PASS: 35 prefabs have unique saved root entity IDs
|
||||
PASS: 299 original script entries tracked across 18 unfinished responsibilities
|
||||
PASS: 1 isolated addons, acyclic dependencies, 56 unique resources, exact vanilla/authorized external references
|
||||
All repository checks passed. Native compilation and multiplayer tests are separate requirements.
|
||||
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"implementation": "One finite PMN4 top-up from an original ammo truck to an original on-foot carrier with exactly one usable mine, admitted using fresh complete delivered one-mine status after infantry/mounted priorities. Reuses existing two radio downlinks, stopped report, original rosters, native rendezvous and shared spent/replay/cooldown ledgers.",
|
||||
"correctness_fixes": "Initial mine grant must be terminal with no unfinished callback. Exact incoming identity commits before native movement. Unknown native completion retains both truck and recipient claims, including after Stop, so another truck cannot race a newer report after cooldown. Only terminal custody/failure or exact deletion settles uncertainty; no item refund.",
|
||||
"regression_programs": 268,
|
||||
"regressions": "passed",
|
||||
"independent_review": "Three parallel bounded tasks: coordinator, leaf and independent integration review. Actual-method suites pass; compiled negative controls remove one-mine eligibility, missing-damage refusal, pending-startup guard and cross-truck quarantine, each causing assertion failure.",
|
||||
"test_boundary_adaptation": "Existing radio test equipment double gained new read-only Mines accessor; prior compile failure retained and radio assertions unchanged.",
|
||||
"native": "docs/evidence/native-2026-10-01-mine-resupply-frozen/report.json",
|
||||
"native_scope": "Normal generated escape round,63 assertions,zero script/runtime failures,13 installed-resource errors retained. Compilation and base-loop integration, not qualification of real mine rendezvous/movement.",
|
||||
"concurrent_validation": "First normal run completed63 assertions but its stopped-run source check detected concurrent equipment edits; preserved as unqualified. Repeated native check uses a frozen copy of the combined source. Initial full suite failed an old admin-menu expectation after the new automatic-equipment setting; compatibility correction preserves the exact menu and explicitly includes that text-command setting.",
|
||||
"remaining": "Native mine insertion/approach/transfer, depleted-zero entitlement/manifests, multiple placements, full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release. Existing package predates this change.",
|
||||
"preservation": {
|
||||
"inherited_unstaged_paths": 53,
|
||||
"unchanged_inherited_paths": 49,
|
||||
"concurrent_equipment_changes_retained": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": {
|
||||
"baseline_sha256": "e73b3654ea115568ab24456d43dfe0c6419d3ccfeaf53e5b7752d31f2950b58d",
|
||||
"retained_sha256": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2"
|
||||
},
|
||||
"tests/test_settings_migration.py": {
|
||||
"baseline_sha256": "5fdfc8815f49f900a1aeda73ec3954cfd767019e702c48c77411dbb7dc016c2f",
|
||||
"retained_sha256": "5a82ba8672b72fb388a95e297d53452e45679ed3b94f5c7d4598455179038aef"
|
||||
},
|
||||
"tools/check.py": {
|
||||
"baseline_sha256": "3e690fd116213ab0f5555db8ad02dae5a58de839af2d132186006e98917ae01b",
|
||||
"retained_sha256": "cd5b41a67db82f54b42745cce99c5bc4cd7f8391a4cb63cfead9621085fb38d4"
|
||||
},
|
||||
"tools/import_settings.py": {
|
||||
"baseline_sha256": "c44490a568893b0076c73423cae09a174ce9c808d83b959987e06af072d38567",
|
||||
"retained_sha256": "8b41ea8fb45e5c3840dad67f9d2494cba5dfa1e0e67d41e334fdd04e515a68a1"
|
||||
}
|
||||
},
|
||||
"tools_check": "two registrations applied to working tree and old index only; inherited split preserved",
|
||||
"admin_menu": "only automatic equipment hidden-key/exclusion additions staged; inherited 13-to-14 settings migration remains unstaged",
|
||||
"concurrent_hash_scope": "tools/check.py hash removes only this turns two new mine registrations; other retained hashes describe full working bytes",
|
||||
"original_reference_files": 533,
|
||||
"field_candidate_files": 401
|
||||
},
|
||||
"source_sha256": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "848079da663bb6493485bd4ac8d2b51b064775979dcc02cc753c13a119c70299",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "a310868eaac35222d2bb9c9b16ef681cfd80921c7777764897b949c7c07dfb95",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "57977eac877d25c8578116d932b7a3707e465c6d1ac74b7d98b9204e1add861f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "c841c253013fbc4f7af250159af979e17401093679a655c8d8bec67f5d7866f4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "a2a042ea1fcd4780b87a481baf00419f7d0320c6bd379f291e59a2da48a07ef5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42"
|
||||
},
|
||||
"changed_files": [
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c",
|
||||
"tests/test_enemy_loadout.py",
|
||||
"tests/test_enemy_equipment.py",
|
||||
"tests/test_enemy_radio.py",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c",
|
||||
"tests/test_infantry_mine_transfer.py",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c",
|
||||
"tests/test_hq_multiconvoy_supply.py",
|
||||
"tests/test_infantry_mine_coordinator.py",
|
||||
"tests/test_infantry_resupply_coordinator.py",
|
||||
"tests/test_infantry_resupply_planning.py",
|
||||
"tests/test_infantry_supply_pool.py",
|
||||
"tests/test_mounted_supply_integration.py",
|
||||
"tests/test_admin_menu.py"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"test": "test_hq_multiconvoy_supply.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_mine_coordinator.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_resupply_coordinator.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_resupply_planning.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_supply_pool.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_mounted_supply_integration.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_ammo_transfer.py",
|
||||
"exit": 0
|
||||
},
|
||||
{
|
||||
"test": "test_infantry_resupply_waypoints.py",
|
||||
"exit": 0
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-9dfh17vb/check.cpp:403: int main(): Assertion `!second.s.TryPlan(&first.recipient,&second.donor,&first.demand,&second.donorStatus,180001)' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-review-1724/test_cross_truck_mutation.py", line 32, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<188 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-9dfh17vb/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite PMN4 one-to-two entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-_jk9sool/check.cpp:400: int main(): Assertion `first.s.m_State==7&&first.recipient.LogisticsReservation==100001&&first.truck.SupplyToken==100001' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-resupply-1724/tests/test_infantry_resupply_planning.py", line 32, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<188 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-_jk9sool/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-13gq2bv5/check.cpp:181: int main(): Assertion `!readiness.ReadyForResupply()' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-mine-review-1724/grant-mutation/tests/test_enemy_loadout.py", line 18, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<78 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/tmp/erri-mine-review-1724/grant-mutation/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-13gq2bv5/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
PASS: actual one-mine original carrier selection, settled startup, shared finite claims, no refund after submission
|
||||
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
|
||||
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
|
||||
Reference in New Issue
Block a user