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:
@@ -0,0 +1,15 @@
|
||||
# BMP mounted-ammunition accounting correction — 3 October 2026
|
||||
|
||||
Two exact installed non-firing weapon placeholders previously made mounted-ammunition sampling incomplete. The correction omits a deduplicated zero-muzzle placeholder only after exact resource identity and reciprocal installation checks. Real weapons, unknown identities, malformed mounts and existing traversal/completeness limits retain their prior checks. Two resource-audit entries record the verified identities; no third-party prefab or script payload is copied into this archive.
|
||||
|
||||
Focused tests execute the actual sampler with documented native doubles. The old source compiles and fails a runtime assertion; the proposed source passes ordinary and WORKBENCH controls, including standalone inert placeholders and placeholders alongside a real gun. These are accounting controls, not physical BMP gameplay qualification. Historical finding/review files are preserved verbatim, including their earlier pending-validation wording; later results are recorded separately.
|
||||
|
||||
The completed suite records 302 programs with all exit codes zero and unchanged inputs. The requested **mounted-ammo** fixture attempt is archived at `/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting`: runner result `test-failed`, 32 passed assertions, 0 smoke completion(s), 2 script/runtime failure(s) and 15 retained engine errors. Cleanup and exact suite-authored source binding were verified. All original failures and counters remain preserved; this is not a normal-route run.
|
||||
|
||||
No matching slot-4 complete three-weapon/three-muzzle/three-magazine snapshot with associated counts was observed. No native BMP completeness claim is made. Snapshot evidence does not upgrade a failed overall fixture result or establish BMP interception, resupply or combat behavior.
|
||||
|
||||
The sealed `.build/playtest-2026-10-03-depot-mines` package predates and excludes this correction; its sampler bytes were checked against the baseline. There is no new BMP interception feature or refreshed runtime package in this archive. Manual, multiplayer, FPS and clean-release qualification remain absent.
|
||||
|
||||
`artifact-manifest.json` records all archived hashes and copied original paths. Baseline working/index and proposed copies cover exactly four owned files. Installed-resource evidence consists only of identity/hash metadata. Original logs and source artifacts are retained unchanged. The helper launches no compiler, tests or native process and makes no documentation changes outside this new evidence directory.
|
||||
|
||||
Later concurrent edits to six settings, preferences and welcome-voice source files are preserved live and excluded from the recorded suite/native snapshot. Exact tested and observed live hashes are recorded in preservation.json. The four accounting change files remain identical to the tested proposal.
|
||||
@@ -0,0 +1,94 @@
|
||||
"""Archive the bounded BMP accounting correction after completed suite/native checks. Never launches tests or native."""
|
||||
from pathlib import Path
|
||||
import argparse,hashlib,json,shutil,datetime,re
|
||||
R=Path('/home/jakub/devel/escapistsrereintroduced');B=Path('/tmp/erri-bmp-ammo-root-1305');P=Path('/tmp/erri-bmp-ammo-1305');V=Path('/tmp/erri-bmp-ammo-review-1305')
|
||||
REVIEW_SHA='76fefed17668ec8d764a203f56951edb425f381ea9bb255a300e2dab1d58b436'
|
||||
sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest();load=lambda p:json.loads(p.read_text())
|
||||
def main():
|
||||
ap=argparse.ArgumentParser(description=__doc__)
|
||||
ap.add_argument('--native-evidence',type=Path,required=True,help='Settled archived native attempt, including failure, bound to exact suite-authored source')
|
||||
ap.add_argument('--output',type=Path,default=R/'docs/evidence/bmp-ammo-accounting-2026-10-03')
|
||||
a=ap.parse_args();n=a.native_evidence.resolve();out=a.output
|
||||
assert n.is_dir() and n.is_relative_to((R/'docs/evidence').resolve())
|
||||
assert out.parent.resolve()==(R/'docs/evidence').resolve() and not out.exists() and not out.is_symlink()
|
||||
manifest=load(P/'source-manifest.json');assert len(manifest)==4
|
||||
for path,row in manifest.items():
|
||||
assert sha(P/path)==sha(R/path)==row['proposed']
|
||||
assert sha(P/'baseline'/path)==row['before']
|
||||
assert (P/'baseline-index'/path).is_file()
|
||||
review=load(V/'review.json');assert sha(V/'review.json')==REVIEW_SHA and review['complete']
|
||||
assert review['patch_sha256']==sha(P/'fix.patch')==load(P/'resource-identity-proof.json')['patch_sha256']
|
||||
for path,h in review['resource_policy_review']['files'].items():assert sha(P/path)==h
|
||||
focused=load(P/'focused-result.json')
|
||||
assert focused['baseline']['exit']!=0 and focused['proposed']['exit']==0
|
||||
assert 'Assertion' in (P/'baseline-test.log').read_text() and 'SIGABRT' in (P/'baseline-test.log').read_text()
|
||||
assert 'PASS: WORKBENCH' in (P/'proposed-test.log').read_text()
|
||||
suite=load(B/'suite-result.json');inputs=load(B/'suite-inputs.json')
|
||||
assert suite['exit']==0 and suite['inputs_unchanged'] and not suite.get('resumed')
|
||||
assert len(suite['programs'])==suite['regression_programs'] and all(x['exit']==0 for x in suite['programs'])
|
||||
assert len({x['path'] for x in suite['programs']})==suite['regression_programs']
|
||||
assert 'All repository checks passed.' in (B/'full-suite.log').read_text()
|
||||
assert all(inputs[path]==row['proposed'] for path,row in manifest.items())
|
||||
report=load(n/'report.json');runner=load(n/'runner.json.txt');source=load(n/'source-sha256.json')
|
||||
assert source==load(n/'launch-source-sha256.json')=={k:v for k,v in inputs.items() if k.startswith('addons/')}
|
||||
# Native failure/completion counters are evidence, never an admission gate for preservation.
|
||||
assert runner['cleanup_confirmed'] and runner['source_unchanged_after_run'] and runner['external_addons_unchanged_after_run']
|
||||
assert sha(n/'console.log.txt')==runner['console_sha256']
|
||||
console=(n/'console.log.txt').read_text();lines=console.splitlines();bmp=[]
|
||||
sample_pattern=re.compile(r'ERR MOUNTED SAMPLE: source=(\S+) slot=4 complete=1 weapons=3 muzzles=3 magazines=3(?:\s|$)')
|
||||
counts_pattern=re.compile(r'ERR MOUNTED COUNTS: slot=4 rounds=(\d+) capacity=(\d+) chambers=(\d+) low=(\d+)(?:\s|$)')
|
||||
for i,line in enumerate(lines):
|
||||
match=sample_pattern.search(line)
|
||||
if not match:continue
|
||||
observation={'sample_line_number':i+1,'sample_line':line,'source_id':match.group(1),'slot':4,'complete':1,'weapons':3,'muzzles':3,'magazines':3,'counts':None}
|
||||
# Bind the following counts to this sample, never to another sample/report.
|
||||
for j in range(i+1,len(lines)):
|
||||
if 'ERR MOUNTED SAMPLE:' in lines[j]:break
|
||||
cm=counts_pattern.search(lines[j])
|
||||
if cm:
|
||||
observation['counts']={'rounds':int(cm.group(1)),'capacity':int(cm.group(2)),'chambers':int(cm.group(3)),'low':int(cm.group(4)),'line_number':j+1,'raw_line':lines[j]};break
|
||||
bmp.append(observation)
|
||||
bmp_proved=any(x['counts'] is not None for x in bmp)
|
||||
sampler='addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c'
|
||||
package=R/'.build/playtest-2026-10-03-depot-mines'
|
||||
assert sha(package/'source'/sampler)==manifest[sampler]['before'], 'Existing candidate must remain the older tested snapshot'
|
||||
# Explicit metadata allowlist: never recurse into installed/ or copy third-party prefab/script payloads.
|
||||
artifacts={}
|
||||
for path in manifest:
|
||||
artifacts['proposed/'+path]=P/path
|
||||
artifacts['baseline/'+path]=P/'baseline'/path
|
||||
artifacts['baseline-index/'+path]=P/'baseline-index'/path
|
||||
for name in ['fix.patch','source-manifest.json','resource-identity-proof.json','finding.json','focused-result.json','baseline-test.log','proposed-test.log','run.txt','installed-manifest.json','vanilla-manifest.json','weapon-base-manifest.json']:
|
||||
artifacts['proposal/'+name]=P/name
|
||||
for name in ['review.json','installed-resource-review.json']:artifacts['review/'+name]=V/name
|
||||
for name in ['suite-inputs.json','suite-result.json','full-suite.log','run-suite.py']:artifacts['suite/'+name]=B/name
|
||||
artifacts['archive-change.py']=Path(__file__)
|
||||
for name in ['report.json','runner.json.txt','source-sha256.json','launch-source-sha256.json','console.log.txt']:artifacts['native-reference/'+name]=n/name
|
||||
before={name:{'source':str(p),'sha256':sha(p),'bytes':p.stat().st_size} for name,p in artifacts.items()}
|
||||
assert all('/installed/' not in str(p) for p in artifacts.values())
|
||||
out.mkdir()
|
||||
for name,p in artifacts.items():
|
||||
q=out/name;q.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(p,q)
|
||||
assert sha(q)==before[name]['sha256']==sha(p)
|
||||
native={'archive':str(n),'fixture_requested':'mounted-ammo','fixture_markers_observed':any('mounted ammo ' in line or 'ERR MOUNTED SAMPLE:' in line for line in lines),'console_sha256':sha(n/'console.log.txt'),'source_files':len(source),'assertions':report['assertions_passed'],'smoke_completions':report['smoke_completions'],'script_or_runtime_failures':report['script_or_runtime_failures'],'script_failure_count':len(report['script_or_runtime_failures']),'retained_engine_errors':report['engine_errors'],'engine_error_count':len(report['engine_errors']),'runner_result':runner.get('result'),'runner_result_before_cleanup':runner.get('result_before_cleanup'),'runner_error':runner.get('runner_error'),'cleanup_confirmed':True,'bmp_complete_3_3_3_with_counts_observed':bmp_proved,'bmp_observations':bmp,'scope':'Mounted-ammo fixture attempt; exact observed slot-4 snapshot only if matching sample and counts exist. Failures retained independently; no normal-route, BMP interception, ammunition transfer or combat qualification.'}
|
||||
observation_text=('The raw log contains a slot-4 complete snapshot with three weapons, three muzzles and three magazines, followed by its ammunition counts; exact lines and counts are retained in native-reference/reference.json. This proves only that observed fixture snapshot.' if bmp_proved else 'No matching slot-4 complete three-weapon/three-muzzle/three-magazine snapshot with associated counts was observed. No native BMP completeness claim is made.')
|
||||
(out/'native-reference/reference.json').write_text(json.dumps(native,indent=2)+'\n')
|
||||
(out/'README.md').write_text(f'''# BMP mounted-ammunition accounting correction — 3 October 2026
|
||||
|
||||
Two exact installed non-firing weapon placeholders previously made mounted-ammunition sampling incomplete. The correction omits a deduplicated zero-muzzle placeholder only after exact resource identity and reciprocal installation checks. Real weapons, unknown identities, malformed mounts and existing traversal/completeness limits retain their prior checks. Two resource-audit entries record the verified identities; no third-party prefab or script payload is copied into this archive.
|
||||
|
||||
Focused tests execute the actual sampler with documented native doubles. The old source compiles and fails a runtime assertion; the proposed source passes ordinary and WORKBENCH controls, including standalone inert placeholders and placeholders alongside a real gun. These are accounting controls, not physical BMP gameplay qualification. Historical finding/review files are preserved verbatim, including their earlier pending-validation wording; later results are recorded separately.
|
||||
|
||||
The completed suite records {suite['regression_programs']} programs with all exit codes zero and unchanged inputs. The requested **mounted-ammo** fixture attempt is archived at `{n}`: runner result `{native['runner_result']}`, {native['assertions']} passed assertions, {native['smoke_completions']} smoke completion(s), {native['script_failure_count']} script/runtime failure(s) and {native['engine_error_count']} retained engine errors. Cleanup and exact suite-authored source binding were verified. All original failures and counters remain preserved; this is not a normal-route run.
|
||||
|
||||
{observation_text} Snapshot evidence does not upgrade a failed overall fixture result or establish BMP interception, resupply or combat behavior.
|
||||
|
||||
The sealed `.build/playtest-2026-10-03-depot-mines` package predates and excludes this correction; its sampler bytes were checked against the baseline. There is no new BMP interception feature or refreshed runtime package in this archive. Manual, multiplayer, FPS and clean-release qualification remain absent.
|
||||
|
||||
`artifact-manifest.json` records all archived hashes and copied original paths. Baseline working/index and proposed copies cover exactly four owned files. Installed-resource evidence consists only of identity/hash metadata. Original logs and source artifacts are retained unchanged. The helper launches no compiler, tests or native process and makes no documentation changes outside this new evidence directory.
|
||||
''')
|
||||
result={'kind':'BMP ACCOUNTING SOURCE CORRECTION EVIDENCE','created_utc':datetime.datetime.now(datetime.timezone.utc).isoformat(),'copied_originals':before,'copies_verified_equal_originals':True,'review_sha256':REVIEW_SHA,'focused_baseline_runtime_failure':True,'focused_proposed_pass':True,'full_suite_programs':suite['regression_programs'],'native':native,'existing_depot_mines_package_excludes_fix':True,'new_runtime_package_created':False,'BMP_interception_implemented':False,'installed_payloads_copied':False,'files':{p.relative_to(out).as_posix():{'sha256':sha(p),'bytes':p.stat().st_size} for p in sorted(out.rglob('*')) if p.is_file()}}
|
||||
(out/'artifact-manifest.json').write_text(json.dumps(result,indent=2)+'\n')
|
||||
assert all(sha(out/name)==row['sha256'] for name,row in result['files'].items())
|
||||
print(json.dumps({'archive':str(out),'files':len(result['files'])+1,'manifest_sha256':sha(out/'artifact-manifest.json'),'native_archive':str(n)},indent=2))
|
||||
if __name__=='__main__':main()
|
||||
@@ -0,0 +1,395 @@
|
||||
{
|
||||
"kind": "BMP ACCOUNTING SOURCE CORRECTION EVIDENCE",
|
||||
"created_utc": "2026-10-03T11:32:02.803521+00:00",
|
||||
"copied_originals": {
|
||||
"proposed/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c",
|
||||
"sha256": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"bytes": 11911
|
||||
},
|
||||
"baseline/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c",
|
||||
"sha256": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"bytes": 10620
|
||||
},
|
||||
"baseline-index/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline-index/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c",
|
||||
"sha256": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"bytes": 10620
|
||||
},
|
||||
"proposed/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/tests/test_hq_mounted_ammo_sampler.py",
|
||||
"sha256": "a4d098adcd3d1f1156d00cf0753268f286cd63640bdae5aed81828f74a8b4633",
|
||||
"bytes": 26660
|
||||
},
|
||||
"baseline/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline/tests/test_hq_mounted_ammo_sampler.py",
|
||||
"sha256": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442",
|
||||
"bytes": 22759
|
||||
},
|
||||
"baseline-index/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline-index/tests/test_hq_mounted_ammo_sampler.py",
|
||||
"sha256": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442",
|
||||
"bytes": 22759
|
||||
},
|
||||
"proposed/docs/external-addons.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/docs/external-addons.json",
|
||||
"sha256": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869",
|
||||
"bytes": 8838
|
||||
},
|
||||
"baseline/docs/external-addons.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline/docs/external-addons.json",
|
||||
"sha256": "c340fe315efa9bad37ec9f249a259f51b833e66ea6f38bd774f1573753216ece",
|
||||
"bytes": 8593
|
||||
},
|
||||
"baseline-index/docs/external-addons.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline-index/docs/external-addons.json",
|
||||
"sha256": "c340fe315efa9bad37ec9f249a259f51b833e66ea6f38bd774f1573753216ece",
|
||||
"bytes": 8593
|
||||
},
|
||||
"proposed/docs/vanilla-resources.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/docs/vanilla-resources.json",
|
||||
"sha256": "588192d151f382b612ca6ce9a564193b57d4a9e7ce9a3918bf8ad2f7e877d1f4",
|
||||
"bytes": 12731
|
||||
},
|
||||
"baseline/docs/vanilla-resources.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline/docs/vanilla-resources.json",
|
||||
"sha256": "d80edf67d429b578051cad1630d3c44fae70714d14a277e40294242f9b439783",
|
||||
"bytes": 12648
|
||||
},
|
||||
"baseline-index/docs/vanilla-resources.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline-index/docs/vanilla-resources.json",
|
||||
"sha256": "30dccbe13f1737ab832bb287cdef7f5a46ae718eafb68aa13c1c13ebdd29923b",
|
||||
"bytes": 12437
|
||||
},
|
||||
"proposal/fix.patch": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/fix.patch",
|
||||
"sha256": "83f2c587c3e22393f5ad5479a04af13cb11439744961ba2bd860bffa977a4417",
|
||||
"bytes": 9615
|
||||
},
|
||||
"proposal/source-manifest.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/source-manifest.json",
|
||||
"sha256": "58571821efb676ce70c07968656acc72bdbbe738b324e4be29dc98a18f1cdaad",
|
||||
"bytes": 865
|
||||
},
|
||||
"proposal/resource-identity-proof.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/resource-identity-proof.json",
|
||||
"sha256": "763c23a446a160e98794115db82bd517d789b807bde26e5cc7c10f542c0a7b58",
|
||||
"bytes": 1595
|
||||
},
|
||||
"proposal/finding.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/finding.json",
|
||||
"sha256": "cec1b57b1a4412676aafaaaf1fbe92accf0872c4a9166c5396d0ddbe4c8a7a5b",
|
||||
"bytes": 4129
|
||||
},
|
||||
"proposal/focused-result.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/focused-result.json",
|
||||
"sha256": "8d271aa86cee7676d8b715c920723356f1faf9c4a0921992860e9aa30057057a",
|
||||
"bytes": 185
|
||||
},
|
||||
"proposal/baseline-test.log": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/baseline-test.log",
|
||||
"sha256": "7eed17bc9923705e8f6e6abbc2b5b64964146c446d1e6abff1e8fbe29424fc76",
|
||||
"bytes": 846
|
||||
},
|
||||
"proposal/proposed-test.log": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/proposed-test.log",
|
||||
"sha256": "427e7758df3b8746673da188ab74c12b409011eb4f4024b98fb709b7b5aea0a4",
|
||||
"bytes": 303
|
||||
},
|
||||
"proposal/run.txt": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/run.txt",
|
||||
"sha256": "9f5e9935e944670c9ff59d3b8a5cf793a53fe1b8759d4f26e0230d1d5783a111",
|
||||
"bytes": 587
|
||||
},
|
||||
"proposal/installed-manifest.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/installed-manifest.json",
|
||||
"sha256": "11ba6afe4400c8baaf0d93465fe5f96bdedc6b16eeaa219bf32bdf3945c24153",
|
||||
"bytes": 6156
|
||||
},
|
||||
"proposal/vanilla-manifest.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/vanilla-manifest.json",
|
||||
"sha256": "5470f95726981531fcd2e39564b71883396ca17621e2a9c7d5e521f4517fc3ea",
|
||||
"bytes": 483
|
||||
},
|
||||
"proposal/weapon-base-manifest.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-1305/weapon-base-manifest.json",
|
||||
"sha256": "d592535c38189ae06f2f68c58a066c7c766b45f5326d6aaa5095b9a2426de929",
|
||||
"bytes": 232
|
||||
},
|
||||
"review/review.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-review-1305/review.json",
|
||||
"sha256": "76fefed17668ec8d764a203f56951edb425f381ea9bb255a300e2dab1d58b436",
|
||||
"bytes": 3547
|
||||
},
|
||||
"review/installed-resource-review.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-review-1305/installed-resource-review.json",
|
||||
"sha256": "6b066e0167773ad3f08fcd5e9abd39f1fa66fdfb02a4cf6e5a530ed9562de14d",
|
||||
"bytes": 1027
|
||||
},
|
||||
"suite/suite-inputs.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-root-1305/suite-inputs.json",
|
||||
"sha256": "fb3bc215aa39b271dee9c85049edfa22f9aee5172b7753f24e2aa23c75371d92",
|
||||
"bytes": 115059
|
||||
},
|
||||
"suite/suite-result.json": {
|
||||
"source": "/tmp/erri-bmp-ammo-root-1305/suite-result.json",
|
||||
"sha256": "b81d05969e6af5ff6ae78f7ca8a1289b9db5ff37de22f275d9d41a80b66f78f6",
|
||||
"bytes": 24419
|
||||
},
|
||||
"suite/full-suite.log": {
|
||||
"source": "/tmp/erri-bmp-ammo-root-1305/full-suite.log",
|
||||
"sha256": "f1372b3bd1ee6703e9fae74d1f0c4ed56b8296dcf39810c1d05e212e42e00277",
|
||||
"bytes": 73279
|
||||
},
|
||||
"suite/run-suite.py": {
|
||||
"source": "/tmp/erri-bmp-ammo-root-1305/run-suite.py",
|
||||
"sha256": "404f31b17e96b8b0d15b8f8014ae3fbec909fbfd1e784bf2e4a480da4e1991fc",
|
||||
"bytes": 2134
|
||||
},
|
||||
"archive-change.py": {
|
||||
"source": "/tmp/erri-bmp-ammo-root-1305/archive-change.py",
|
||||
"sha256": "90a575ca5bd12285849cbe4e3ea554d3ea5983fb7f04d32d3b024a77addb98d1",
|
||||
"bytes": 10628
|
||||
},
|
||||
"native-reference/report.json": {
|
||||
"source": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/report.json",
|
||||
"sha256": "52e541a994842e588594dc6d781eba8fc38213e9b142f6e4c8239561bc590e26",
|
||||
"bytes": 2274
|
||||
},
|
||||
"native-reference/runner.json.txt": {
|
||||
"source": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/runner.json.txt",
|
||||
"sha256": "f1088a8392a8cf23705a1ea70094c17da05bf3be62244d2f9a72e20a394abb92",
|
||||
"bytes": 1433
|
||||
},
|
||||
"native-reference/source-sha256.json": {
|
||||
"source": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/source-sha256.json",
|
||||
"sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"bytes": 54786
|
||||
},
|
||||
"native-reference/launch-source-sha256.json": {
|
||||
"source": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/launch-source-sha256.json",
|
||||
"sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"bytes": 54786
|
||||
},
|
||||
"native-reference/console.log.txt": {
|
||||
"source": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/console.log.txt",
|
||||
"sha256": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"bytes": 99903
|
||||
}
|
||||
},
|
||||
"copies_verified_equal_originals": true,
|
||||
"review_sha256": "76fefed17668ec8d764a203f56951edb425f381ea9bb255a300e2dab1d58b436",
|
||||
"focused_baseline_runtime_failure": true,
|
||||
"focused_proposed_pass": true,
|
||||
"full_suite_programs": 302,
|
||||
"native": {
|
||||
"archive": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting",
|
||||
"fixture_requested": "mounted-ammo",
|
||||
"fixture_markers_observed": true,
|
||||
"console_sha256": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"source_files": 424,
|
||||
"assertions": 32,
|
||||
"smoke_completions": 0,
|
||||
"script_or_runtime_failures": [
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"script_failure_count": 2,
|
||||
"retained_engine_errors": [
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.646 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)",
|
||||
"13:26:21.138 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)",
|
||||
"13:26:28.663 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)",
|
||||
"13:26:28.664 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)",
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"engine_error_count": 15,
|
||||
"runner_result": "test-failed",
|
||||
"runner_result_before_cleanup": "test-failed",
|
||||
"runner_error": null,
|
||||
"cleanup_confirmed": true,
|
||||
"bmp_complete_3_3_3_with_counts_observed": false,
|
||||
"bmp_observations": [],
|
||||
"scope": "Mounted-ammo fixture attempt; exact observed slot-4 snapshot only if matching sample and counts exist. Failures retained independently; no normal-route, BMP interception, ammunition transfer or combat qualification."
|
||||
},
|
||||
"existing_depot_mines_package_excludes_fix": true,
|
||||
"new_runtime_package_created": false,
|
||||
"BMP_interception_implemented": false,
|
||||
"installed_payloads_copied": false,
|
||||
"files": {
|
||||
"README.md": {
|
||||
"sha256": "b6beaea2f4df4518293fd045bd9216cd92ee16c961cb41b56dd82d96e568f365",
|
||||
"bytes": 2884
|
||||
},
|
||||
"archive-change.py": {
|
||||
"sha256": "90a575ca5bd12285849cbe4e3ea554d3ea5983fb7f04d32d3b024a77addb98d1",
|
||||
"bytes": 10628
|
||||
},
|
||||
"baseline/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"sha256": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"bytes": 10620
|
||||
},
|
||||
"baseline/docs/external-addons.json": {
|
||||
"sha256": "c340fe315efa9bad37ec9f249a259f51b833e66ea6f38bd774f1573753216ece",
|
||||
"bytes": 8593
|
||||
},
|
||||
"baseline/docs/vanilla-resources.json": {
|
||||
"sha256": "d80edf67d429b578051cad1630d3c44fae70714d14a277e40294242f9b439783",
|
||||
"bytes": 12648
|
||||
},
|
||||
"baseline/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"sha256": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442",
|
||||
"bytes": 22759
|
||||
},
|
||||
"baseline-index/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"sha256": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"bytes": 10620
|
||||
},
|
||||
"baseline-index/docs/external-addons.json": {
|
||||
"sha256": "c340fe315efa9bad37ec9f249a259f51b833e66ea6f38bd774f1573753216ece",
|
||||
"bytes": 8593
|
||||
},
|
||||
"baseline-index/docs/vanilla-resources.json": {
|
||||
"sha256": "30dccbe13f1737ab832bb287cdef7f5a46ae718eafb68aa13c1c13ebdd29923b",
|
||||
"bytes": 12437
|
||||
},
|
||||
"baseline-index/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"sha256": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442",
|
||||
"bytes": 22759
|
||||
},
|
||||
"final-validation.json": {
|
||||
"sha256": "7e6e7bcc29ed3479ef68492fae74b0d332232c4c26ce3fb26221f9d8bc04b625",
|
||||
"bytes": 5601
|
||||
},
|
||||
"finite-budget-review.json": {
|
||||
"sha256": "b7c8d1ac81a39a4fb6ab77c15506db0f1d2e44bb9f34ac1021835f0d564d357e",
|
||||
"bytes": 4575
|
||||
},
|
||||
"native-reference/console.log.txt": {
|
||||
"sha256": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"bytes": 99903
|
||||
},
|
||||
"native-reference/launch-source-sha256.json": {
|
||||
"sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"bytes": 54786
|
||||
},
|
||||
"native-reference/reference.json": {
|
||||
"sha256": "78192e5776c994edf9d0ccdf0bed1b64d417dc59dd03bbd50c175100fa456ac0",
|
||||
"bytes": 2870
|
||||
},
|
||||
"native-reference/report.json": {
|
||||
"sha256": "52e541a994842e588594dc6d781eba8fc38213e9b142f6e4c8239561bc590e26",
|
||||
"bytes": 2274
|
||||
},
|
||||
"native-reference/runner.json.txt": {
|
||||
"sha256": "f1088a8392a8cf23705a1ea70094c17da05bf3be62244d2f9a72e20a394abb92",
|
||||
"bytes": 1433
|
||||
},
|
||||
"native-reference/source-sha256.json": {
|
||||
"sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"bytes": 54786
|
||||
},
|
||||
"post-suite-docs.json": {
|
||||
"sha256": "6501f24e51913178f66ebff1105a5f956278c1c9ae0e3bc43cd42ed06c994acc",
|
||||
"bytes": 396
|
||||
},
|
||||
"preservation.json": {
|
||||
"sha256": "5409bdf37ef666603481a6ea0ed70d9b3a67e67548b18daac0f983b3008a926e",
|
||||
"bytes": 2035
|
||||
},
|
||||
"proposal/baseline-test.log": {
|
||||
"sha256": "7eed17bc9923705e8f6e6abbc2b5b64964146c446d1e6abff1e8fbe29424fc76",
|
||||
"bytes": 846
|
||||
},
|
||||
"proposal/finding.json": {
|
||||
"sha256": "cec1b57b1a4412676aafaaaf1fbe92accf0872c4a9166c5396d0ddbe4c8a7a5b",
|
||||
"bytes": 4129
|
||||
},
|
||||
"proposal/fix.patch": {
|
||||
"sha256": "83f2c587c3e22393f5ad5479a04af13cb11439744961ba2bd860bffa977a4417",
|
||||
"bytes": 9615
|
||||
},
|
||||
"proposal/focused-result.json": {
|
||||
"sha256": "8d271aa86cee7676d8b715c920723356f1faf9c4a0921992860e9aa30057057a",
|
||||
"bytes": 185
|
||||
},
|
||||
"proposal/installed-manifest.json": {
|
||||
"sha256": "11ba6afe4400c8baaf0d93465fe5f96bdedc6b16eeaa219bf32bdf3945c24153",
|
||||
"bytes": 6156
|
||||
},
|
||||
"proposal/proposed-test.log": {
|
||||
"sha256": "427e7758df3b8746673da188ab74c12b409011eb4f4024b98fb709b7b5aea0a4",
|
||||
"bytes": 303
|
||||
},
|
||||
"proposal/resource-identity-proof.json": {
|
||||
"sha256": "763c23a446a160e98794115db82bd517d789b807bde26e5cc7c10f542c0a7b58",
|
||||
"bytes": 1595
|
||||
},
|
||||
"proposal/run.txt": {
|
||||
"sha256": "9f5e9935e944670c9ff59d3b8a5cf793a53fe1b8759d4f26e0230d1d5783a111",
|
||||
"bytes": 587
|
||||
},
|
||||
"proposal/source-manifest.json": {
|
||||
"sha256": "58571821efb676ce70c07968656acc72bdbbe738b324e4be29dc98a18f1cdaad",
|
||||
"bytes": 865
|
||||
},
|
||||
"proposal/vanilla-manifest.json": {
|
||||
"sha256": "5470f95726981531fcd2e39564b71883396ca17621e2a9c7d5e521f4517fc3ea",
|
||||
"bytes": 483
|
||||
},
|
||||
"proposal/weapon-base-manifest.json": {
|
||||
"sha256": "d592535c38189ae06f2f68c58a066c7c766b45f5326d6aaa5095b9a2426de929",
|
||||
"bytes": 232
|
||||
},
|
||||
"proposed/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"sha256": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"bytes": 11911
|
||||
},
|
||||
"proposed/docs/external-addons.json": {
|
||||
"sha256": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869",
|
||||
"bytes": 8838
|
||||
},
|
||||
"proposed/docs/vanilla-resources.json": {
|
||||
"sha256": "588192d151f382b612ca6ce9a564193b57d4a9e7ce9a3918bf8ad2f7e877d1f4",
|
||||
"bytes": 12731
|
||||
},
|
||||
"proposed/tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"sha256": "a4d098adcd3d1f1156d00cf0753268f286cd63640bdae5aed81828f74a8b4633",
|
||||
"bytes": 26660
|
||||
},
|
||||
"review/installed-resource-review.json": {
|
||||
"sha256": "6b066e0167773ad3f08fcd5e9abd39f1fa66fdfb02a4cf6e5a530ed9562de14d",
|
||||
"bytes": 1027
|
||||
},
|
||||
"review/review.json": {
|
||||
"sha256": "76fefed17668ec8d764a203f56951edb425f381ea9bb255a300e2dab1d58b436",
|
||||
"bytes": 3547
|
||||
},
|
||||
"suite/full-suite.log": {
|
||||
"sha256": "f1372b3bd1ee6703e9fae74d1f0c4ed56b8296dcf39810c1d05e212e42e00277",
|
||||
"bytes": 73279
|
||||
},
|
||||
"suite/run-suite.py": {
|
||||
"sha256": "404f31b17e96b8b0d15b8f8014ae3fbec909fbfd1e784bf2e4a480da4e1991fc",
|
||||
"bytes": 2134
|
||||
},
|
||||
"suite/suite-inputs.json": {
|
||||
"sha256": "fb3bc215aa39b271dee9c85049edfa22f9aee5172b7753f24e2aa23c75371d92",
|
||||
"bytes": 115059
|
||||
},
|
||||
"suite/suite-result.json": {
|
||||
"sha256": "b81d05969e6af5ff6ae78f7ca8a1289b9db5ff37de22f275d9d41a80b66f78f6",
|
||||
"bytes": 24419
|
||||
}
|
||||
}
|
||||
}
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
// Detached mounted counts only. Carried and cargo ammunition never enter these totals.
|
||||
class ERR_HQMountedAmmoSnapshot
|
||||
{
|
||||
bool Complete;
|
||||
int Weapons;
|
||||
int Muzzles;
|
||||
int Magazines;
|
||||
int Rounds;
|
||||
int Capacity;
|
||||
int Chambers;
|
||||
int LowMagazines;
|
||||
ERR_HQMountedAmmoSnapshot Snapshot()
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot copy = new ERR_HQMountedAmmoSnapshot();
|
||||
copy.Complete = Complete; copy.Weapons = Weapons; copy.Muzzles = Muzzles;
|
||||
copy.Magazines = Magazines; copy.Rounds = Rounds; copy.Capacity = Capacity;
|
||||
copy.Chambers = Chambers; copy.LowMagazines = LowMagazines;
|
||||
return copy;
|
||||
}
|
||||
bool Valid()
|
||||
{
|
||||
if (Weapons < 0 || Weapons > 32 || Muzzles < 0 || Muzzles > 128 || Muzzles > Weapons * 8) return false;
|
||||
if (Magazines < 0 || Magazines > Muzzles || Magazines > 128) return false;
|
||||
if (Capacity < Magazines || Capacity > Magazines * 100000 || Rounds < 0 || Rounds > Capacity) return false;
|
||||
if (Chambers < 0 || Chambers > Muzzles * 32 || LowMagazines < 0 || LowMagazines > Magazines) return false;
|
||||
return !Complete || (Weapons == 0 || (Muzzles > 0 && Magazines > 0));
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WORKBENCH
|
||||
// Ephemeral opt-in fixture diagnostics; never part of radio reports or policy.
|
||||
class ERR_HQMountedAmmoDiagnostic
|
||||
{
|
||||
int Reasons;
|
||||
int Nodes;
|
||||
int Structural;
|
||||
int Cargo;
|
||||
int Allowed;
|
||||
int Managers;
|
||||
string Detail;
|
||||
string FirstPrefab;
|
||||
int FirstPurpose = -1;
|
||||
void Reject(int reason, string detail, IEntity entity, int purpose = -1)
|
||||
{
|
||||
if ((Reasons & reason) == 0) Detail += detail + ";";
|
||||
if (Reasons == 0)
|
||||
{
|
||||
FirstPurpose = purpose;
|
||||
if (entity && entity.GetPrefabData()) FirstPrefab = entity.GetPrefabData().GetPrefabName();
|
||||
}
|
||||
Reasons = Reasons | reason;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
class ERR_HQMountedAmmoSampler
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
protected static ref ERR_HQMountedAmmoDiagnostic s_Diagnostic;
|
||||
static void BeginDiagnostic() { s_Diagnostic = new ERR_HQMountedAmmoDiagnostic(); }
|
||||
static ERR_HQMountedAmmoDiagnostic EndDiagnostic()
|
||||
{
|
||||
ref ERR_HQMountedAmmoDiagnostic result = s_Diagnostic; s_Diagnostic = null; return result;
|
||||
}
|
||||
#endif
|
||||
// Native mounted weapons and loaded magazines use InventoryStorageSlot too,
|
||||
// but their container is a weapon slot/muzzle rather than deposit storage.
|
||||
static bool Installed(IEntity entity, InventoryStorageSlot slot, array<IEntity> allowed)
|
||||
{
|
||||
if (!entity || !slot) return false;
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(slot.GetParentContainer());
|
||||
if (mount && allowed.Contains(mount.GetOwner()) && mount.GetSlotInfo() == slot && mount.GetWeaponEntity() == entity) return true;
|
||||
BaseMuzzleComponent muzzle = BaseMuzzleComponent.Cast(slot.GetParentContainer());
|
||||
if (!muzzle || !allowed.Contains(muzzle.GetOwner())) return false;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
return magazine && magazine.GetOwner() == entity;
|
||||
}
|
||||
protected static void AddWeapon(BaseWeaponComponent weapon, array<IEntity> allowed, array<BaseWeaponComponent> weapons, ERR_HQMountedAmmoSnapshot result)
|
||||
{
|
||||
if (!weapon || !weapon.GetOwner() || !allowed.Contains(weapon.GetOwner()))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
IEntity owner = null;
|
||||
if (weapon) owner = weapon.GetOwner();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(16, "weapon-owner-not-allowed", owner);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
// Native managers can expose both a slot and its physical weapon. Normalize
|
||||
// one exact current installation before deduplication, never another slot.
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(weapon);
|
||||
if (mount)
|
||||
{
|
||||
IEntity mountedEntity = mount.GetWeaponEntity();
|
||||
InventoryStorageSlot binding = mount.GetSlotInfo();
|
||||
if (!mountedEntity || !allowed.Contains(mountedEntity) || !binding || binding.GetParentContainer() != mount)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(32, "mount-binding-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
InventoryItemComponent mountedItem = InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent));
|
||||
if (!mountedItem || mountedItem.GetParentSlot() != binding)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(64, "mount-item-slot-mismatch", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapon = BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent));
|
||||
if (!weapon || WeaponSlotComponent.Cast(weapon) || weapon.GetOwner() != mountedEntity)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(128, "mount-weapon-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
}
|
||||
if (weapons.Contains(weapon)) return;
|
||||
if (weapons.Count() >= 32)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(256, "weapon-limit32", weapon.GetOwner());
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapons.Insert(weapon);
|
||||
}
|
||||
protected static void Collect(IEntity root, ERR_HQMountedAmmoSnapshot result, array<IEntity> allowed, array<BaseWeaponComponent> weapons)
|
||||
{
|
||||
if (!root || ChimeraCharacter.Cast(root))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1, "invalid-root", root);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
result.Complete = true;
|
||||
array<IEntity> nodes = {root};
|
||||
// Known deposit cargo must not consume the mounted hierarchy budget. Both
|
||||
// categories retain independent caps; the unique queue is capped at their sum.
|
||||
// Skipped crew/unknown nodes remain structural and cannot borrow cargo space.
|
||||
int structuralNodes = 0;
|
||||
int cargoNodes = 0;
|
||||
for (int cursor = 0; cursor < nodes.Count(); cursor++)
|
||||
{
|
||||
IEntity entity = nodes[cursor];
|
||||
bool character = ChimeraCharacter.Cast(entity) != null;
|
||||
bool excludedCargo;
|
||||
bool unknownStorage;
|
||||
// Exact installed slots are checked before deposit exclusion. Never walk
|
||||
// the children of known cargo or seated character roots.
|
||||
if (!character)
|
||||
{
|
||||
InventoryItemComponent item = InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent));
|
||||
if (item && item.GetParentSlot() && !Installed(entity, item.GetParentSlot(), allowed))
|
||||
{
|
||||
BaseInventoryStorageComponent storage = item.GetParentSlot().GetStorage();
|
||||
if (!storage || storage.GetPurpose() == EStoragePurpose.PURPOSE_UNSET || storage.GetPurpose() == EStoragePurpose.PURPOSE_ANY)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
int purpose = -1;
|
||||
if (storage) purpose = storage.GetPurpose();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2, "ambiguous-storage", entity, purpose);
|
||||
#endif
|
||||
result.Complete = false; unknownStorage = true;
|
||||
}
|
||||
else excludedCargo = (storage.GetPurpose() & EStoragePurpose.PURPOSE_DEPOSIT) != 0;
|
||||
}
|
||||
}
|
||||
if (excludedCargo)
|
||||
{
|
||||
cargoNodes++;
|
||||
if (cargoNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2048, "cargo-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
structuralNodes++;
|
||||
if (structuralNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1024, "structural-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
if (character || unknownStorage) continue;
|
||||
allowed.Insert(entity);
|
||||
IEntity child = entity.GetChildren();
|
||||
while (child)
|
||||
{
|
||||
bool repeated = nodes.Contains(child);
|
||||
if (repeated || nodes.Count() >= 256)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
if (repeated) s_Diagnostic.Reject(4, "repeated-node", child);
|
||||
else s_Diagnostic.Reject(8, "queue-limit256", child);
|
||||
}
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
nodes.Insert(child);
|
||||
child = child.GetSibling();
|
||||
}
|
||||
}
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
s_Diagnostic.Nodes = nodes.Count(); s_Diagnostic.Allowed = allowed.Count();
|
||||
s_Diagnostic.Structural = structuralNodes; s_Diagnostic.Cargo = cargoNodes;
|
||||
}
|
||||
#endif
|
||||
foreach (IEntity part : allowed)
|
||||
{
|
||||
BaseWeaponManagerComponent manager = BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent));
|
||||
if (manager)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Managers++;
|
||||
#endif
|
||||
array<BaseWeaponComponent> listed = {}; manager.GetWeapons(listed);
|
||||
if (listed.Count() > 8)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(512, "manager-limit8", part);
|
||||
#endif
|
||||
result.Complete = false;
|
||||
}
|
||||
else foreach (BaseWeaponComponent entry : listed) AddWeapon(entry, allowed, weapons, result);
|
||||
}
|
||||
BaseWeaponComponent mounted = BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent));
|
||||
if (mounted) AddWeapon(mounted, allowed, weapons, result);
|
||||
}
|
||||
}
|
||||
static ERR_HQMountedAmmoSnapshot Inspect(IEntity root)
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot result = new ERR_HQMountedAmmoSnapshot();
|
||||
array<IEntity> allowed = {};
|
||||
array<BaseWeaponComponent> weapons = {};
|
||||
Collect(root, result, allowed, weapons);
|
||||
result.Weapons = weapons.Count();
|
||||
array<BaseMuzzleComponent> seenMuzzles = {};
|
||||
array<BaseMagazineComponent> seenMagazines = {};
|
||||
array<IEntity> magazineOwners = {};
|
||||
foreach (BaseWeaponComponent weapon : weapons)
|
||||
{
|
||||
array<BaseMuzzleComponent> muzzles = {}; weapon.GetMuzzlesList(muzzles);
|
||||
if (muzzles.IsEmpty() || muzzles.Count() > 8) { result.Complete = false; continue; }
|
||||
foreach (BaseMuzzleComponent muzzle : muzzles)
|
||||
{
|
||||
if (!muzzle || !muzzle.GetOwner() || !allowed.Contains(muzzle.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMuzzles.Contains(muzzle)) continue;
|
||||
if (seenMuzzles.Count() >= 128) { result.Complete = false; continue; }
|
||||
seenMuzzles.Insert(muzzle); result.Muzzles++;
|
||||
int barrels = muzzle.GetBarrelsCount();
|
||||
if (barrels < 1 || barrels > 32) result.Complete = false;
|
||||
else for (int barrel = 0; barrel < barrels; barrel++)
|
||||
if (muzzle.IsBarrelChambered(barrel)) result.Chambers++;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
// Projectile-only weapons and absent magazines are unknown, never empty.
|
||||
if (!magazine || !magazine.GetOwner() || !allowed.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMagazines.Contains(magazine)) continue;
|
||||
if (magazineOwners.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
seenMagazines.Insert(magazine); magazineOwners.Insert(magazine.GetOwner());
|
||||
int rounds = magazine.GetAmmoCount();
|
||||
int capacity = magazine.GetMaxAmmoCount();
|
||||
if (rounds < 0 || capacity < 1 || capacity > 100000 || rounds > capacity) { result.Complete = false; continue; }
|
||||
result.Magazines++; result.Rounds += rounds; result.Capacity += capacity;
|
||||
if (rounds <= capacity * 0.25) result.LowMagazines++;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"authorization": "User authorized RHS, WCS and BMP dependencies on2026-09-20; external assets remain in installed addons. Parachute Framework is required by the requested original paratrooper port and HQ-controlled drops (2026-09-22).",
|
||||
"direct_ai_dependencies": [
|
||||
"595F2BF2F44836FB",
|
||||
"629B2BA37EFFD577",
|
||||
"5E524E4FEECCA92B",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"addons": {
|
||||
"595F2BF2F44836FB": {
|
||||
"title": "RHS: Status Quo",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"1337C0DE5DABBEEF",
|
||||
"BADC0DEDABBEDA5E"
|
||||
],
|
||||
"project_sha256": "1b83e9df126db639cfcdb6d5119e65a1581c028becd6c09998143ed527ad0721"
|
||||
},
|
||||
"1337C0DE5DABBEEF": {
|
||||
"title": "RHS: Status Quo - Content Pack 01",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc"
|
||||
},
|
||||
"BADC0DEDABBEDA5E": {
|
||||
"title": "RHS: Status Quo - Content Pack 02",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4"
|
||||
},
|
||||
"5E389BB9F58B79A6": {
|
||||
"title": "WCS_SpaceCore",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34"
|
||||
},
|
||||
"629B2BA37EFFD577": {
|
||||
"title": "WCS_Armaments",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1"
|
||||
},
|
||||
"5E524E4FEECCA92B": {
|
||||
"title": "WCS_BMP-1",
|
||||
"version": "8.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"5E389BB9F58B79A6",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259"
|
||||
},
|
||||
"65930CB4CD0237B2": {
|
||||
"title": "Parachute Framework",
|
||||
"version": "1.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"Prefabs/Weapons/Launchers/FIM92_Stinger/Launcher_FIM92_Stinger.et": {
|
||||
"guid": "3DF204EEE0534EF2",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et": {
|
||||
"guid": "1DC01AAACFFA8B63",
|
||||
"addon": "5E524E4FEECCA92B",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et": {
|
||||
"guid": "A1D5833FF10C6503",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p21/Optic_1P21.et": {
|
||||
"guid": "695AAA77F84EB238",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/m8541/Optic_M8541.et": {
|
||||
"guid": "333A794F0B55C019",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et": {
|
||||
"guid": "8D4BAA235F7EDBEA",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Configs/Factions/RHS_ION.conf": {
|
||||
"guid": "CB76A36EACFBDF35",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_RF_MSV.conf": {
|
||||
"guid": "627A8CDE681D223D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_US_USMC.conf": {
|
||||
"guid": "F33C7BF22CBF3A8A",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/BLUFOR/RHS_USAF/RHS_USAF_USMC_MEF/Group_USAF_USMC_MEF_FireTeam.et": {
|
||||
"guid": "19843E954790DF28",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/INDFOR/RHS_ION/RHS_ION_COY/Group_RHS_ION_COY_StaticSecurityTeam.et": {
|
||||
"guid": "516C8C7400DF2C4D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/OPFOR/RHS_AFRF/MSV/Flora/Group_RHS_RF_MSV_Flora_FireGroup.et": {
|
||||
"guid": "AB905EF799E0A0AE",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/DeployedParachutes/Core/DeployedParachuteMK4.et": {
|
||||
"guid": "9ADD554959C09197",
|
||||
"addon": "65930CB4CD0237B2",
|
||||
"verification": "Exact installed owning resourceDatabase.rdb path/type/GUID and inspected native prefab/scripts, 2026-09-22."
|
||||
},
|
||||
"Prefabs/Weapons/Launchers/9K38_IGLA/Launcher_9K38_IGLA.et": {
|
||||
"guid": "962C400354E4BD6C",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Installed WCS USSR AA character references this exact prefab; inspected launcher has infrared guidance and a loaded disposable muzzle, 2026-09-23."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Rifleman_Random.et": {
|
||||
"guid": "844936B168DFAB8E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Medic_Random.et": {
|
||||
"guid": "DBB8D1F13930220E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_SL.et": {
|
||||
"guid": "B3C496CCFA72D25E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_Medic.et": {
|
||||
"guid": "D9AF475A4E5DC52C",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Rifleman_Random.et": {
|
||||
"guid": "140001FC383DF9A2",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Medic_Random.et": {
|
||||
"guid": "0FA8ACE19A772327",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
}
|
||||
}
|
||||
}
|
||||
+158
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob": "E443663E5241622A",
|
||||
"Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob": "77C9FCF3FB1246E9",
|
||||
"Assets/Items/Equipment/workspaces/paper_map.agr": "83675D0B0AB1B2C3",
|
||||
"Assets/Items/Equipment/workspaces/player_map.asi": "56794534F6B8C3D7",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat": "B47B52D9DA68905D",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat": "610803CC3F3D6649",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat": "7D2E831AFA5CF50D",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob": "819ED3266EE5113B",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat": "2169E8EB73E1C127",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat": "31529E064AA7C917",
|
||||
"Assets/Props/Military/Sandbags/Sandbag_01_short.xob": "268DBDABB3C94AD7",
|
||||
"Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob": "E3BC73BFBC7AA497",
|
||||
"Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob": "0B96D139FEBCA006",
|
||||
"Configs/Callsigns/Callsigns_US.conf": "CB7824D572DD0D5C",
|
||||
"Configs/Callsigns/Callsigns_USSR.conf": "958043CE1648EC43",
|
||||
"Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf": "B56E8B4D4B195559",
|
||||
"Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf": "4E70E7C4C2C17D4A",
|
||||
"Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf": "5F7EC52FC40A03E2",
|
||||
"Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf": "0BF36EFF9FFAF92B",
|
||||
"Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf": "0E4B62F186F97C43",
|
||||
"Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf": "3B679F1799D55F6F",
|
||||
"Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf": "37D5B75AAC3E72EA",
|
||||
"Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf": "C53421647C3D0D2E",
|
||||
"Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf": "B4CA6761AC935808",
|
||||
"Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf": "DDF17C8C140BD1F2",
|
||||
"Configs/Factions/BLUFOR.conf": "E7B7EA4823DD81F0",
|
||||
"Configs/Factions/FIA.conf": "8053DB656DD18B14",
|
||||
"Configs/Factions/OPFOR.conf": "B122E3B10BB3404B",
|
||||
"Configs/GameOverScreen/BaseGameOverScreensConfig.conf": "651583FFFB7FC765",
|
||||
"Configs/Identities/FactionIdentity_US.conf": "B600946E9ACC17C2",
|
||||
"Configs/Identities/FactionIdentity_USSR.conf": "FBBCD73926989580",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_US.conf": "B548A5B264939A98",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_USSR.conf": "31FC78AF00523A99",
|
||||
"Configs/Map/MapPlain.conf": "A786DD4868598F15",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf": "8BBC73472092902E",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf": "0228A79846FD8A97",
|
||||
"Configs/System/ActionContext/ManualCameraContext.conf": "C538807EEE48BED8",
|
||||
"Configs/System/chimeraInputCommon.conf": "795184CF9AD764DB",
|
||||
"Configs/System/chimeraMenus.conf": "C747AFB6B750CE9A",
|
||||
"Configs/Systems/MissionSystems.conf": "C50579A2EC48E8EF",
|
||||
"Prefabs/AI/Groups/Group_Base.et": "000CD338713F2B5A",
|
||||
"Prefabs/AI/SCR_AIWorld.et": "E0A05C76552E7F58",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Cycle.et": "35BD6541CBB8AC08",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Defend.et": "93291E72AC23930F",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetIn.et": "712F4795CF8B91C7",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetOut.et": "C40316EE26846CAB",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Move.et": "750A8D1695BD6998",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "B3E7B8DC2BAB8ACC",
|
||||
"Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et": "86E565387A634103",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et": "836E7E39AAC5888B",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_HeliPilot.et": "42A502E3BB727CEB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Sniper.et": "0F6689B491641155",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et": "2F912ED6E399FF47",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF.et": "36E28C628A2F83CB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF_Medic.et": "9A234C5857D92187",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et": "23ADBBC31B6A3DC6",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et": "1C78331E156A3D65",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_HeliPilot.et": "A62FA97C4EC64F14",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et": "BF643BE4ADBDFDD3",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et": "612F43A4D5AE765F",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Rifleman.et": "DCB41B3746FDD1BE",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et": "5436629450D8387A",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et": "333DA6244C7DA34C",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Sharpshooter.et": "976AC400219898FA",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et": "2DB452B3EC386B92",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et": "8CA70597606992EC",
|
||||
"Prefabs/Characters/Footwear/CombatBoots_US_01.et": "DAAFD15478BDE1C3",
|
||||
"Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et": "F545C1BE7C99954A",
|
||||
"Prefabs/Characters/HeadGear/Helmet_PASGT_01/Helmet_PASGT_01_base.et": "8A2B2A544F3ED831",
|
||||
"Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et": "3CCA7A9BB4FD3197",
|
||||
"Prefabs/Characters/Uniforms/Pants_US_BDU.et": "604BB72BE8E023C2",
|
||||
"Prefabs/Decals/Dirt/Decal_Dirt_Patch_03.et": "4AD6EB80A8B1FA3A",
|
||||
"Prefabs/Groups/BLUFOR/Group_US_FireTeam.et": "84E5BBAB25EA23E5",
|
||||
"Prefabs/Groups/INDFOR/Group_FIA_FireTeam.et": "5BEA04939D148B1D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_Base.et": "8DE0C0830FE0C33D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et": "E552DABF3636C2AD",
|
||||
"Prefabs/Items/Core/Item_Base.et": "C95E11C60810F432",
|
||||
"Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et": "41A9C55B61F375F0",
|
||||
"Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et": "243948B23D90BECB",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et": "AE578EEA4244D41F",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et": "21EF98BFC1EB3793",
|
||||
"Prefabs/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.et": "33B2DFDCD0EBA3DB",
|
||||
"Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et": "13772C903CB5E4F7",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et": "9B6B61BB3FE3DFB0",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R107M.et": "54C68E438DD34265",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R148.et": "E1A5D4B878AA8980",
|
||||
"Prefabs/Items/Equipment/Watches/Watch_SandY184A.et": "78ED4FEF62BBA728",
|
||||
"Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et": "12D5AD21E383B768",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et": "C3F1FA1E2EC2B345",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et": "A81F501D3EF6F38E",
|
||||
"Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et": "0D9A5DCF89AE7AA9",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et": "527D7C5D2E476BDC",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et": "00E36F41CA310E2A",
|
||||
"Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et": "D70216B1B2889129",
|
||||
"Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et": "6D56FED1E55A8F84",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_Base.et": "A242612865F2A48E",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et": "589540B35EBA8CDC",
|
||||
"Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et": "97EF4C1A41F63DDB",
|
||||
"Prefabs/MP/Modes/GameMode_Base.et": "0F307326459A1395",
|
||||
"Prefabs/MP/ScriptedChatEntity.et": "F69BC912AC8236F9",
|
||||
"Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et": "EBBC859CCD94D96D",
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
"Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et": "01AE5FD77A9A4C21",
|
||||
"Prefabs/Structures/Military/Camps/TentUSSR_01/TentUSSR_01_base.et": "BE5D5CFA90224646",
|
||||
"Prefabs/Structures/Military/Camps/TentUS_01/TentUSMedical_01.et": "F8427C3EFC52644E",
|
||||
"Prefabs/Structures/Walls/Concrete/ConcreteWall_01/ConcreteWall_01_3m.et": "60E5729BEA18F875",
|
||||
"Prefabs/Systems/Radio/RadioManager.et": "B8E09FAB91C4ECCD",
|
||||
"Prefabs/Tasks/BaseTask.et": "1D0F815858EE24AD",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et": "7BD282AF716ED639",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et": "DF5CCB7C0FF049F4",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et": "259EE7B78C51B624",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et": "0B4DEA8078B78A9B",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/VehParts/Seats/UAZ469_seats_rear.et": "780AAF0A51AEE61A",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et": "3336BE330C4F355B",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et": "16C1F16C9B053801",
|
||||
"Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et": "98EC9C526AFBA282",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x51_M14_20rnd_SpecialBall.et": "627255315038152A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x54_SVD_10rnd_Sniper.et": "9CCB46C6EE632C1A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et": "8B853CDD11BA916E",
|
||||
"Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et": "D1FFE458E8AC4BDB",
|
||||
"Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et": "FA5C25BF66A53DCF",
|
||||
"Prefabs/World/Game/PerceptionManager.et": "028DAEAD63E056BE",
|
||||
"Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp": "13F8D0DE67678118",
|
||||
"Sounds/Vehicles/Wheeled/UAZ469/Vehicles_UAZ469_Horn.acp": "7E64D37BE3E1F3FA",
|
||||
"UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt": "3E7733BAC8C831F6",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset": "21533F2089005056",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset": "F8AC305446D5D480",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds": "EB7F65DBC9392557",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds": "40B12B0DF911B856",
|
||||
"UI/Textures/Flags/US-flag-base-3it.edds": "46FB2FB2C2125A3C",
|
||||
"UI/Textures/Flags/USSR-flag-base-3it.edds": "50824EB9F2C215AB",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI-glow.imageset": "67B3A6DC2D712B52",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI.imageset": "E23427CAC80DA8B7",
|
||||
"UI/Textures/Icons/icons_wrapperUI-glow.imageset": "00FE3DBDFD15227B",
|
||||
"UI/Textures/Icons/icons_wrapperUI.imageset": "3262679C50EF4F01",
|
||||
"UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout": "C4507D07F3C54831",
|
||||
"UI/layouts/Menus/PauseMenu/PauseMenuButton.layout": "9ECCD201BCF07E95",
|
||||
"UI/layouts/Task/TaskListEntry.layout": "B71975032150BAFB",
|
||||
"UI/layouts/Task/TaskListEntryDescription.layout": "552EB1921B5C548C",
|
||||
"UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout": "75C912A1C89BE6C2",
|
||||
"UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout": "4B5AE6E64037FFB4",
|
||||
"UI/layouts/WidgetLibrary/EditBox/WLib_EditBox.layout": "0022F0B45ADBC5AC",
|
||||
"system/textures/defWhite.edds": "A64A8C63E0FBAE87",
|
||||
"worlds/Eden/Eden.ent": "853E92315D1D9EFE",
|
||||
"worlds/MP/Navmeshes/LowResEden.nmn": "5E19E60F26327356"
|
||||
}
|
||||
+246
@@ -0,0 +1,246 @@
|
||||
"""Execute actual mounted sampler/snapshot methods against bounded native doubles."""
|
||||
import re,os
|
||||
from pathlib import Path
|
||||
from policy_harness import ROOT, run
|
||||
p=Path(os.environ.get('ERR_MOUNTED_AMMO_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c'))
|
||||
s=p.read_text()
|
||||
for forbidden in ('SetAmmoCount','GetOrigin','GetWorld','Spawn','TryMove','DeleteEntity','GetAgents'):
|
||||
assert forbidden not in s, forbidden
|
||||
code=re.sub(r'//[^\n]*','',s).replace('protected ','').replace('class ','struct ')
|
||||
code=code.replace('BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent))','part->manager')
|
||||
code=code.replace('BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent))','part->weapon')
|
||||
code=code.replace('BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent))','mountedEntity->weapon')
|
||||
code=code.replace('InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent))','mountedEntity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(weapon)','dynamic_cast<Mount*>(weapon)').replace('binding.GetParentContainer()','binding->mount')
|
||||
code=code.replace('InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent))','entity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(slot.GetParentContainer())','slot->mount').replace('BaseMuzzleComponent.Cast(slot.GetParentContainer())','slot->muzzle')
|
||||
code=code.replace('EStoragePurpose.','EStoragePurpose::').replace('GetParentSlot().','GetParentSlot()->')
|
||||
code=code.replace('ChimeraCharacter.Cast(entity) != nullptr','entity->character').replace('ChimeraCharacter.Cast(entity) != null','entity->character')
|
||||
code=code.replace('ChimeraCharacter.Cast(root)','root->character').replace('ChimeraCharacter.Cast(entity)','entity->character')
|
||||
code=code.replace('protected static ref ', 'inline static ').replace('static ref ', 'inline static ').replace('ref ', '')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoDiagnostic (?=\w)', 'ERR_HQMountedAmmoDiagnostic* ',code)
|
||||
code=code.replace('s_Diagnostic.', 's_Diagnostic->').replace('GetPrefabData().', 'GetPrefabData()->')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoSnapshot (?=\w)','ERR_HQMountedAmmoSnapshot* ',code)
|
||||
code=code.replace('array<','Array<').replace('foreach (','for (').replace('null','nullptr')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons,','Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons,')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons)', 'Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons)')
|
||||
for name in ('copy','result','weapon','root','entity','child','part','manager','mounted','muzzle','magazine','item','storage','mount','mountedEntity','mountedItem'):
|
||||
code=re.sub(r'\b'+name+r'\.',name+'->',code)
|
||||
code=re.sub(r'\b(bool|int) (\w+);',r'\1 \2=0;',code).replace('\n}\n','\n};\n')
|
||||
program=(r'''
|
||||
#include <cassert>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
using string=std::string;
|
||||
struct Prefab{string name="fixture";string GetPrefabName(){return name;}};
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;
|
||||
int Count(){return this->size();}bool IsEmpty(){return this->empty();}
|
||||
void Insert(T n){this->push_back(n);}bool Contains(T n){return std::find(this->begin(),this->end(),n)!=this->end();}};
|
||||
struct Entity;struct Weapon;struct Muzzle;struct Magazine;struct Manager;struct Mount;
|
||||
struct EStoragePurpose{static const int PURPOSE_UNSET=0,PURPOSE_DEPOSIT=1,PURPOSE_WEAPON_PROXY=2,PURPOSE_ATTACHMENT_PROXY=4,PURPOSE_ANY=127;};
|
||||
struct Storage{int purpose=EStoragePurpose::PURPOSE_DEPOSIT;int GetPurpose(){return purpose;}};
|
||||
struct Slot{Mount* mount=nullptr;Muzzle* muzzle=nullptr;Storage* storage=nullptr;Storage* GetStorage(){return storage;}};
|
||||
struct Item{Slot* slot=nullptr;Slot* GetParentSlot(){return slot;}};
|
||||
using InventoryStorageSlot=Slot*;using WeaponSlotComponent=Mount*;
|
||||
using InventoryItemComponent=Item*;using BaseInventoryStorageComponent=Storage*;
|
||||
using IEntity=Entity*;using BaseWeaponComponent=Weapon*;using BaseMuzzleComponent=Muzzle*;
|
||||
using BaseMagazineComponent=Magazine*;using BaseWeaponManagerComponent=Manager*;
|
||||
struct Entity{Prefab prefab;Prefab*GetPrefabData(){return &prefab;}Item* item=nullptr;bool character=false;Entity* child=nullptr;Entity* sibling=nullptr;Manager* manager=nullptr;Weapon* weapon=nullptr;
|
||||
int reads=0;Entity* GetChildren(){reads++;assert(reads<=1);return child;}Entity* GetSibling(){return sibling;}};
|
||||
struct Magazine{IEntity owner=nullptr;int rounds=25,capacity=100,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetAmmoCount(){reads++;return rounds;}int GetMaxAmmoCount(){return capacity;}};
|
||||
struct Muzzle{IEntity owner=nullptr;Magazine* mag=nullptr;int barrels=1,chambered=1,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetBarrelsCount(){return barrels;}
|
||||
bool IsBarrelChambered(int b){reads++;return b<chambered;}Magazine* GetMagazine(){return mag;}};
|
||||
struct Weapon{virtual ~Weapon(){}IEntity owner=nullptr;Array<Muzzle*> muzzles;int reads=0;
|
||||
IEntity GetOwner(){return owner;}void GetMuzzlesList(Array<Muzzle*>& out){reads++;out=muzzles;}};
|
||||
struct Mount:Weapon{IEntity weapon=nullptr;Slot* slot=nullptr;
|
||||
Slot* GetSlotInfo(){return slot;}IEntity GetWeaponEntity(){return weapon;}};
|
||||
struct Manager{Array<Weapon*> weapons;int reads=0;void GetWeapons(Array<Weapon*>& out){reads++;out=weapons;}};
|
||||
'''+code+r'''
|
||||
struct Rig{Entity root,gun,magazine,crew,rifle;Manager manager,crewManager;Weapon weapon,carried;
|
||||
Muzzle muzzle,carriedMuzzle;Magazine mag,carriedMag;
|
||||
Rig(){root.child=&gun;gun.sibling=&magazine;magazine.sibling=&crew;crew.character=true;crew.child=&rifle;
|
||||
root.manager=&manager;manager.weapons={&weapon,&weapon};gun.weapon=&weapon;weapon.owner=&gun;weapon.muzzles={&muzzle,&muzzle};
|
||||
muzzle.owner=&gun;muzzle.mag=&mag;mag.owner=&magazine;
|
||||
crew.manager=&crewManager;crewManager.weapons={&carried};rifle.weapon=&carried;carried.owner=&rifle;
|
||||
carried.muzzles={&carriedMuzzle};carriedMuzzle.owner=&rifle;carriedMuzzle.mag=&carriedMag;carriedMag.owner=&rifle;}
|
||||
ERR_HQMountedAmmoSnapshot* Inspect(){return ERR_HQMountedAmmoSampler::Inspect(&root);}
|
||||
};
|
||||
int main(){
|
||||
{auto s=ERR_HQMountedAmmoSampler::Inspect(nullptr);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root;root.character=true;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&root.reads==0);}
|
||||
{Entity root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0);}
|
||||
{Rig r;auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1);
|
||||
assert(s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&s->LowMagazines==1);
|
||||
assert(r.weapon.reads==1&&r.muzzle.reads==1&&r.mag.reads==1&&r.crew.reads==0&&r.crewManager.reads==0&&r.carried.reads==0);
|
||||
auto copy=s->Snapshot();s->Complete=false;s->Rounds=0;s->Capacity=0;s->LowMagazines=0;
|
||||
assert(copy->Complete&©->Rounds==25&©->Capacity==100&©->LowMagazines==1&©->Weapons==1&©->Muzzles==1&©->Magazines==1&©->Chambers==1);}
|
||||
for(int rounds:{0,24,25,26,100}){Rig r;r.mag.rounds=rounds;auto s=r.Inspect();assert(s->Complete&&s->Valid());assert(s->LowMagazines==(rounds<=25));}
|
||||
{Rig r;Muzzle second;second.owner=&r.gun;second.mag=&r.mag;second.chambered=0;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Muzzles==2&&s->Magazines==1&&s->Chambers==1&&s->Rounds==25&&r.mag.reads==1);}
|
||||
// Manager references into skipped characters, foreign roots, or nulls never count.
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;Weapon w;w.owner=&foreign;
|
||||
r.manager.weapons.Insert(kind==0?&r.carried:kind==1?&w:nullptr);auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons==1);}
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;
|
||||
if(kind==0)r.muzzle.owner=&foreign;
|
||||
if(kind==1)r.mag.owner=&foreign;
|
||||
if(kind==2)r.mag.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Rounds==0&&s->Magazines==0);}
|
||||
// Deposited rifles and nested magazines are excluded; installed magazine slots remain admitted.
|
||||
{Rig r;Entity cargo,rifle,magEntity;Item item;Slot slot;Storage storage;Weapon rifleWeapon;
|
||||
r.crew.sibling=&cargo;cargo.child=&rifle;rifle.child=&magEntity;rifle.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
rifle.weapon=&rifleWeapon;rifleWeapon.owner=&rifle;auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&rifle.reads==0&&magEntity.reads==0);}
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.magazine.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;auto s=r.Inspect();assert(s->Complete&&s->Rounds==25&&s->Magazines==1);}
|
||||
for(int purpose:{0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=purpose;auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Native purposes support combined flags; any deposit bit excludes the subtree.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_DEPOSIT|EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Manager references cannot rescue a cargo weapon.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Exact native weapon-slot and muzzle containers are not deposit storage.
|
||||
for(int purpose:{-1,0,127}){Rig r;Item gunItem,magItem;Slot gunSlot,magSlot;Storage storage;Mount mount;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&gunSlot;gunSlot.mount=&mount;r.gun.item=&gunItem;gunItem.slot=&gunSlot;
|
||||
magSlot.muzzle=&r.muzzle;r.magazine.item=&magItem;magItem.slot=&magSlot;
|
||||
if(purpose>=0){storage.purpose=purpose;gunSlot.storage=&storage;magSlot.storage=&storage;}
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);}
|
||||
// No generic missing-storage bypass: foreign container owners, stale slots and
|
||||
// substituted attached items fail closed, including foreign loaded magazines.
|
||||
for(int fault=0;fault<6;fault++){Rig r;Entity foreign;Item item;Slot slot,other;Mount mount;
|
||||
r.gun.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&slot;
|
||||
if(fault==0)mount.owner=&foreign;
|
||||
if(fault==1)mount.owner=&r.crew;
|
||||
if(fault==2)mount.weapon=&foreign;
|
||||
if(fault==3)mount.slot=&other;
|
||||
if(fault==4)slot.mount=nullptr;
|
||||
if(fault==5)mount.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Rounds==0&&s->Valid());}
|
||||
for(int fault=0;fault<3;fault++){Rig r;Entity foreign;Item item;Slot slot;
|
||||
r.magazine.item=&item;item.slot=&slot;slot.muzzle=&r.muzzle;
|
||||
if(fault==0)r.muzzle.owner=&foreign;
|
||||
if(fault==1)r.muzzle.mag=nullptr;
|
||||
if(fault==2)r.mag.owner=&foreign;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==0&&s->Rounds==0&&s->Valid());}
|
||||
// An exact loaded magazine inside an excluded cargo rifle does not re-admit it.
|
||||
{Rig r;Item item,magItem;Slot slot,magSlot;Storage deposit;r.gun.item=&item;item.slot=&slot;slot.storage=&deposit;
|
||||
r.magazine.item=&magItem;magItem.slot=&magSlot;magSlot.muzzle=&r.muzzle;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Magazines==0&&s->Valid());}
|
||||
// Native manager/FindComponent expose the wrapper and the physical weapon.
|
||||
// A UAZ's single PKM must be one weapon even when all those paths overlap.
|
||||
{Rig r;Mount mount;Item item;Slot binding;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;
|
||||
binding.mount=&mount;item.slot=&binding;r.gun.item=&item;r.root.weapon=&mount;mount.muzzles=r.weapon.muzzles;
|
||||
r.manager.weapons={&mount,&r.weapon,&mount};auto s=r.Inspect();
|
||||
assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);
|
||||
assert(mount.reads==0&&r.weapon.reads==1&&r.mag.reads==1);}
|
||||
// Unknown/foreign/empty/nested/stale slot endpoints never become real guns.
|
||||
for(int fault=0;fault<11;fault++){Rig r;Entity foreign;Mount mount,other;Item item;Slot binding,stale;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;binding.mount=&mount;item.slot=&binding;r.gun.item=&item;
|
||||
r.root.weapon=&mount;r.manager.weapons={&mount};
|
||||
if(fault==0)mount.weapon=nullptr;
|
||||
if(fault==1)mount.weapon=&foreign;
|
||||
if(fault==2)mount.weapon=&r.root; // nested/self wrapper
|
||||
if(fault==3)binding.mount=&other;
|
||||
if(fault==4)item.slot=&stale;
|
||||
if(fault==5)mount.slot=nullptr;
|
||||
if(fault==6)r.gun.item=nullptr;
|
||||
if(fault==7)mount.owner=&foreign;
|
||||
if(fault==8)r.gun.weapon=nullptr;
|
||||
if(fault==9){other.owner=&r.gun;r.gun.weapon=&other;} // valid first binding, nested wrapper endpoint
|
||||
if(fault==10)r.weapon.owner=&foreign; // component found on target belongs elsewhere
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons<=1&&mount.reads==0&&other.reads==0);}
|
||||
// Thirty-two genuine installed guns still fit the weapon cap despite wrappers.
|
||||
{Entity root;Array<Entity> hosts(32),guns(32),mags(32);Array<Weapon> weapons(32);Array<Mount> mounts(32);
|
||||
Array<Muzzle> muzzles(32);Array<Magazine> magazines(32);Array<Item> items(32);Array<Slot> bindings(32);
|
||||
root.child=&hosts[0];for(int i=0;i<32;i++){
|
||||
if(i+1<32)hosts[i].sibling=&hosts[i+1];
|
||||
hosts[i].child=&guns[i];guns[i].child=&mags[i];hosts[i].weapon=&mounts[i];guns[i].weapon=&weapons[i];
|
||||
mounts[i].owner=&hosts[i];mounts[i].weapon=&guns[i];mounts[i].slot=&bindings[i];bindings[i].mount=&mounts[i];
|
||||
items[i].slot=&bindings[i];guns[i].item=&items[i];weapons[i].owner=&guns[i];weapons[i].muzzles={&muzzles[i]};
|
||||
mounts[i].muzzles=weapons[i].muzzles;muzzles[i].owner=&guns[i];muzzles[i].mag=&magazines[i];magazines[i].owner=&mags[i];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==32&&s->Muzzles==32&&s->Magazines==32&&s->Rounds==800);}
|
||||
// Missing/projectile-only magazines and unsupported native values stay incomplete.
|
||||
for(int kind=0;kind<9;kind++){Rig r;
|
||||
if(kind==0)r.muzzle.mag=nullptr;
|
||||
if(kind==1)r.weapon.muzzles={nullptr};
|
||||
if(kind==2)r.weapon.muzzles={};
|
||||
if(kind==3)r.muzzle.barrels=0;
|
||||
if(kind==4)r.muzzle.barrels=33;
|
||||
if(kind==5)r.mag.rounds=-1;
|
||||
if(kind==6)r.mag.capacity=0;
|
||||
if(kind==7)r.mag.capacity=100001;
|
||||
if(kind==8)r.mag.rounds=101;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid());}
|
||||
{Rig r;r.weapon.muzzles=Array<Muzzle*>(9,&r.muzzle);auto s=r.Inspect();assert(!s->Complete&&s->Muzzles==0&&r.muzzle.reads==0);}
|
||||
{Rig r;r.manager.weapons=Array<Weapon*>(9,&r.weapon);auto s=r.Inspect();assert(!s->Complete&&s->Weapons==1&&s->Valid());}
|
||||
// Entity budget also bounds enqueue and cycles, rather than only processed work.
|
||||
for(int count:{128,129,300}){std::vector<Entity> nodes(count);for(int i=0;i<count-1;i++)nodes[i].child=&nodes[i+1];
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(s->Complete==(count==128));assert(s->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads==128);}
|
||||
{Entity root,child;root.child=&child;child.sibling=&child;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root,child;root.child=&child;child.child=&root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
// Maximum weapon and muzzle bounds remain valid detached counts on overflow.
|
||||
for(int count:{32,33}){Entity root;std::vector<Entity> nodes(count);std::vector<Weapon> weapons(count);
|
||||
root.child=&nodes[0];for(int i=0;i<count;i++){nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];if(i+1<count)nodes[i].sibling=&nodes[i+1];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Weapons==32&&s->Valid());}
|
||||
{Entity root;std::vector<Entity> nodes(18);std::vector<Weapon> weapons(17);std::vector<Muzzle> muzzles(136);Magazine mag;mag.owner=&nodes[17];
|
||||
root.child=&nodes[0];for(int i=0;i<18;i++){if(i+1<18)nodes[i].sibling=&nodes[i+1];if(i==17)continue;
|
||||
nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];for(int j=0;j<8;j++){auto& m=muzzles[i*8+j];m.owner=&nodes[i];m.mag=&mag;weapons[i].muzzles.Insert(&m);}}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Muzzles==128&&s->Magazines==1&&s->Chambers==128&&s->Valid());}
|
||||
{Rig r;Magazine alias;alias.owner=&r.magazine;Muzzle second;second.owner=&r.gun;second.mag=&alias;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==1&&s->Rounds==25&&alias.reads==0&&s->Valid());}
|
||||
|
||||
// Realistic production load: 128 known deposited items plus mounted root,
|
||||
// gun, loaded magazine and a pruned original crew root exceed128 in total.
|
||||
// Cargo-first and structure-first traversal both retain the same mounted counts.
|
||||
for(bool cargoFirst:{false,true}){Rig r;std::vector<Weapon> cargoWeapons(128);std::vector<Entity> cargo(128);std::vector<Item> items(128);std::vector<Slot> slots(128);Storage deposit;
|
||||
for(int i=0;i<128;i++){cargo[i].weapon=&cargoWeapons[i];cargoWeapons[i].owner=&cargo[i];cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;if(i<127)cargo[i].sibling=&cargo[i+1];}
|
||||
if(cargoFirst){r.root.child=&cargo[0];cargo.back().sibling=&r.gun;}else{r.crew.sibling=&cargo[0];}
|
||||
auto snapshot=r.Inspect();assert(snapshot->Complete&&snapshot->Weapons==1&&snapshot->Magazines==1&&snapshot->Rounds==25&&snapshot->Valid());
|
||||
for(auto& item:cargo){assert(item.reads==0);}for(auto& gun:cargoWeapons){assert(gun.reads==0);}assert(r.weapon.reads==1&&r.carried.reads==0);}
|
||||
// Independent128 structural/128 cargo limits, in either order and interleaved.
|
||||
for(int order:{0,1,2})for(int scenario:{0,1,2,3}){
|
||||
int structures=scenario==1?129:128;int cargoCount=scenario==2||scenario==3?129:(scenario==1?100:128);
|
||||
if(scenario==2)structures=4;
|
||||
std::vector<Entity> nodes(structures),cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage deposit;std::vector<Entity*> sequence;
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;}
|
||||
if(order==0){for(auto& e:cargo)sequence.push_back(&e);for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);}
|
||||
if(order==1){for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);for(auto& e:cargo)sequence.push_back(&e);}
|
||||
if(order==2){for(int i=0;i<std::max(structures-1,cargoCount);i++){if(i<cargoCount)sequence.push_back(&cargo[i]);if(i+1<structures)sequence.push_back(&nodes[i+1]);}}
|
||||
nodes[0].child=sequence[0];for(int i=0;i<int(sequence.size())-1;i++)sequence[i]->sibling=sequence[i+1];
|
||||
auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(snapshot->Complete==(scenario==0)&&snapshot->Weapons==0&&snapshot->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads<=128);for(auto& e:cargo)assert(e.reads==0);
|
||||
}
|
||||
// Wire validation rejects impossible or malicious counts.
|
||||
{ERR_HQMountedAmmoSnapshot s;assert(s.Valid());s.Weapons=33;assert(!s.Valid());s.Weapons=1;s.Muzzles=9;assert(!s.Valid());
|
||||
s.Muzzles=1;s.Magazines=2;assert(!s.Valid());s.Magazines=1;s.Capacity=100001;assert(!s.Valid());s.Capacity=100;s.Rounds=101;assert(!s.Valid());
|
||||
s.Rounds=25;s.Chambers=33;assert(!s.Valid());s.Chambers=1;s.LowMagazines=2;assert(!s.Valid());s.LowMagazines=1;s.Complete=true;assert(s.Valid());}
|
||||
}
|
||||
''')
|
||||
run(program)
|
||||
print('PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation')
|
||||
|
||||
# WORKBENCH records are opt-in. Re-run every original geometry/count assertion
|
||||
# in that build too, plus exact failure witnesses from the same traversal.
|
||||
cases=r'''
|
||||
{Rig r;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(snap->Complete&&d->Reasons==0&&d->Nodes==4&&d->Allowed==3&&d->Managers==1);assert(!ERR_HQMountedAmmoSampler::EndDiagnostic());}
|
||||
{Entity root;root.child=&root;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==4&&d->Nodes==1&&d->Allowed==1&&root.reads==1);}
|
||||
{Entity root;std::vector<Entity> children(128);root.child=&children[0];for(int i=0;i<127;i++)children[i].sibling=&children[i+1];ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1024&&d->Nodes==129&&d->Allowed==128&&d->Structural==129&&d->Cargo==0&&children[127].reads==0);}
|
||||
for(int purpose:{-1,0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;r.gun.prefab.name="first-gun";if(purpose>=0){slot.storage=&storage;storage.purpose=purpose;}ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&2)&&(d->Reasons&16)&&d->FirstPrefab=="first-gun"&&d->FirstPurpose==purpose&&d->Detail.find("ambiguous-storage;")!=string::npos);}
|
||||
{Entity root;Manager manager;root.manager=&manager;manager.weapons.resize(9,nullptr);ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==512&&d->Managers==1&&manager.reads==1);}
|
||||
{Rig r;Mount mount;mount.owner=&r.root;r.manager.weapons={&mount};ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&32));}
|
||||
{ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(nullptr);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1&&d->Nodes==0&&d->Allowed==0);}
|
||||
'''
|
||||
|
||||
cases+=r'''
|
||||
for(int which:{0,1}){Entity root;int cargoCount=which==0?129:256;std::vector<Entity> cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage storage;root.child=&cargo[0];
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&storage;if(i+1<cargoCount)cargo[i].sibling=&cargo[i+1];}
|
||||
ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snapshot->Complete&&d->Cargo==129&&d->Structural==1&&(d->Reasons&2048));
|
||||
if(which==0){assert(d->Nodes==130&&!(d->Reasons&8));}else{assert(d->Nodes==256&&(d->Reasons&8));}}
|
||||
'''
|
||||
run('#define WORKBENCH\n'+program.replace('int main(){','int main(){'+cases))
|
||||
print('PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal')
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
// Detached mounted counts only. Carried and cargo ammunition never enter these totals.
|
||||
class ERR_HQMountedAmmoSnapshot
|
||||
{
|
||||
bool Complete;
|
||||
int Weapons;
|
||||
int Muzzles;
|
||||
int Magazines;
|
||||
int Rounds;
|
||||
int Capacity;
|
||||
int Chambers;
|
||||
int LowMagazines;
|
||||
ERR_HQMountedAmmoSnapshot Snapshot()
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot copy = new ERR_HQMountedAmmoSnapshot();
|
||||
copy.Complete = Complete; copy.Weapons = Weapons; copy.Muzzles = Muzzles;
|
||||
copy.Magazines = Magazines; copy.Rounds = Rounds; copy.Capacity = Capacity;
|
||||
copy.Chambers = Chambers; copy.LowMagazines = LowMagazines;
|
||||
return copy;
|
||||
}
|
||||
bool Valid()
|
||||
{
|
||||
if (Weapons < 0 || Weapons > 32 || Muzzles < 0 || Muzzles > 128 || Muzzles > Weapons * 8) return false;
|
||||
if (Magazines < 0 || Magazines > Muzzles || Magazines > 128) return false;
|
||||
if (Capacity < Magazines || Capacity > Magazines * 100000 || Rounds < 0 || Rounds > Capacity) return false;
|
||||
if (Chambers < 0 || Chambers > Muzzles * 32 || LowMagazines < 0 || LowMagazines > Magazines) return false;
|
||||
return !Complete || (Weapons == 0 || (Muzzles > 0 && Magazines > 0));
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WORKBENCH
|
||||
// Ephemeral opt-in fixture diagnostics; never part of radio reports or policy.
|
||||
class ERR_HQMountedAmmoDiagnostic
|
||||
{
|
||||
int Reasons;
|
||||
int Nodes;
|
||||
int Structural;
|
||||
int Cargo;
|
||||
int Allowed;
|
||||
int Managers;
|
||||
string Detail;
|
||||
string FirstPrefab;
|
||||
int FirstPurpose = -1;
|
||||
void Reject(int reason, string detail, IEntity entity, int purpose = -1)
|
||||
{
|
||||
if ((Reasons & reason) == 0) Detail += detail + ";";
|
||||
if (Reasons == 0)
|
||||
{
|
||||
FirstPurpose = purpose;
|
||||
if (entity && entity.GetPrefabData()) FirstPrefab = entity.GetPrefabData().GetPrefabName();
|
||||
}
|
||||
Reasons = Reasons | reason;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
class ERR_HQMountedAmmoSampler
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
protected static ref ERR_HQMountedAmmoDiagnostic s_Diagnostic;
|
||||
static void BeginDiagnostic() { s_Diagnostic = new ERR_HQMountedAmmoDiagnostic(); }
|
||||
static ERR_HQMountedAmmoDiagnostic EndDiagnostic()
|
||||
{
|
||||
ref ERR_HQMountedAmmoDiagnostic result = s_Diagnostic; s_Diagnostic = null; return result;
|
||||
}
|
||||
#endif
|
||||
// Native mounted weapons and loaded magazines use InventoryStorageSlot too,
|
||||
// but their container is a weapon slot/muzzle rather than deposit storage.
|
||||
static bool Installed(IEntity entity, InventoryStorageSlot slot, array<IEntity> allowed)
|
||||
{
|
||||
if (!entity || !slot) return false;
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(slot.GetParentContainer());
|
||||
if (mount && allowed.Contains(mount.GetOwner()) && mount.GetSlotInfo() == slot && mount.GetWeaponEntity() == entity) return true;
|
||||
BaseMuzzleComponent muzzle = BaseMuzzleComponent.Cast(slot.GetParentContainer());
|
||||
if (!muzzle || !allowed.Contains(muzzle.GetOwner())) return false;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
return magazine && magazine.GetOwner() == entity;
|
||||
}
|
||||
protected static void AddWeapon(BaseWeaponComponent weapon, array<IEntity> allowed, array<BaseWeaponComponent> weapons, ERR_HQMountedAmmoSnapshot result)
|
||||
{
|
||||
if (!weapon || !weapon.GetOwner() || !allowed.Contains(weapon.GetOwner()))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
IEntity owner = null;
|
||||
if (weapon) owner = weapon.GetOwner();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(16, "weapon-owner-not-allowed", owner);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
// Native managers can expose both a slot and its physical weapon. Normalize
|
||||
// one exact current installation before deduplication, never another slot.
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(weapon);
|
||||
if (mount)
|
||||
{
|
||||
IEntity mountedEntity = mount.GetWeaponEntity();
|
||||
InventoryStorageSlot binding = mount.GetSlotInfo();
|
||||
if (!mountedEntity || !allowed.Contains(mountedEntity) || !binding || binding.GetParentContainer() != mount)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(32, "mount-binding-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
InventoryItemComponent mountedItem = InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent));
|
||||
if (!mountedItem || mountedItem.GetParentSlot() != binding)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(64, "mount-item-slot-mismatch", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapon = BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent));
|
||||
if (!weapon || WeaponSlotComponent.Cast(weapon) || weapon.GetOwner() != mountedEntity)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(128, "mount-weapon-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
}
|
||||
if (weapons.Contains(weapon)) return;
|
||||
if (weapons.Count() >= 32)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(256, "weapon-limit32", weapon.GetOwner());
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapons.Insert(weapon);
|
||||
}
|
||||
protected static void Collect(IEntity root, ERR_HQMountedAmmoSnapshot result, array<IEntity> allowed, array<BaseWeaponComponent> weapons)
|
||||
{
|
||||
if (!root || ChimeraCharacter.Cast(root))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1, "invalid-root", root);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
result.Complete = true;
|
||||
array<IEntity> nodes = {root};
|
||||
// Known deposit cargo must not consume the mounted hierarchy budget. Both
|
||||
// categories retain independent caps; the unique queue is capped at their sum.
|
||||
// Skipped crew/unknown nodes remain structural and cannot borrow cargo space.
|
||||
int structuralNodes = 0;
|
||||
int cargoNodes = 0;
|
||||
for (int cursor = 0; cursor < nodes.Count(); cursor++)
|
||||
{
|
||||
IEntity entity = nodes[cursor];
|
||||
bool character = ChimeraCharacter.Cast(entity) != null;
|
||||
bool excludedCargo;
|
||||
bool unknownStorage;
|
||||
// Exact installed slots are checked before deposit exclusion. Never walk
|
||||
// the children of known cargo or seated character roots.
|
||||
if (!character)
|
||||
{
|
||||
InventoryItemComponent item = InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent));
|
||||
if (item && item.GetParentSlot() && !Installed(entity, item.GetParentSlot(), allowed))
|
||||
{
|
||||
BaseInventoryStorageComponent storage = item.GetParentSlot().GetStorage();
|
||||
if (!storage || storage.GetPurpose() == EStoragePurpose.PURPOSE_UNSET || storage.GetPurpose() == EStoragePurpose.PURPOSE_ANY)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
int purpose = -1;
|
||||
if (storage) purpose = storage.GetPurpose();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2, "ambiguous-storage", entity, purpose);
|
||||
#endif
|
||||
result.Complete = false; unknownStorage = true;
|
||||
}
|
||||
else excludedCargo = (storage.GetPurpose() & EStoragePurpose.PURPOSE_DEPOSIT) != 0;
|
||||
}
|
||||
}
|
||||
if (excludedCargo)
|
||||
{
|
||||
cargoNodes++;
|
||||
if (cargoNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2048, "cargo-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
structuralNodes++;
|
||||
if (structuralNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1024, "structural-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
if (character || unknownStorage) continue;
|
||||
allowed.Insert(entity);
|
||||
IEntity child = entity.GetChildren();
|
||||
while (child)
|
||||
{
|
||||
bool repeated = nodes.Contains(child);
|
||||
if (repeated || nodes.Count() >= 256)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
if (repeated) s_Diagnostic.Reject(4, "repeated-node", child);
|
||||
else s_Diagnostic.Reject(8, "queue-limit256", child);
|
||||
}
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
nodes.Insert(child);
|
||||
child = child.GetSibling();
|
||||
}
|
||||
}
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
s_Diagnostic.Nodes = nodes.Count(); s_Diagnostic.Allowed = allowed.Count();
|
||||
s_Diagnostic.Structural = structuralNodes; s_Diagnostic.Cargo = cargoNodes;
|
||||
}
|
||||
#endif
|
||||
foreach (IEntity part : allowed)
|
||||
{
|
||||
BaseWeaponManagerComponent manager = BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent));
|
||||
if (manager)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Managers++;
|
||||
#endif
|
||||
array<BaseWeaponComponent> listed = {}; manager.GetWeapons(listed);
|
||||
if (listed.Count() > 8)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(512, "manager-limit8", part);
|
||||
#endif
|
||||
result.Complete = false;
|
||||
}
|
||||
else foreach (BaseWeaponComponent entry : listed) AddWeapon(entry, allowed, weapons, result);
|
||||
}
|
||||
BaseWeaponComponent mounted = BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent));
|
||||
if (mounted) AddWeapon(mounted, allowed, weapons, result);
|
||||
}
|
||||
}
|
||||
static ERR_HQMountedAmmoSnapshot Inspect(IEntity root)
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot result = new ERR_HQMountedAmmoSnapshot();
|
||||
array<IEntity> allowed = {};
|
||||
array<BaseWeaponComponent> weapons = {};
|
||||
Collect(root, result, allowed, weapons);
|
||||
result.Weapons = weapons.Count();
|
||||
array<BaseMuzzleComponent> seenMuzzles = {};
|
||||
array<BaseMagazineComponent> seenMagazines = {};
|
||||
array<IEntity> magazineOwners = {};
|
||||
foreach (BaseWeaponComponent weapon : weapons)
|
||||
{
|
||||
array<BaseMuzzleComponent> muzzles = {}; weapon.GetMuzzlesList(muzzles);
|
||||
if (muzzles.IsEmpty() || muzzles.Count() > 8) { result.Complete = false; continue; }
|
||||
foreach (BaseMuzzleComponent muzzle : muzzles)
|
||||
{
|
||||
if (!muzzle || !muzzle.GetOwner() || !allowed.Contains(muzzle.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMuzzles.Contains(muzzle)) continue;
|
||||
if (seenMuzzles.Count() >= 128) { result.Complete = false; continue; }
|
||||
seenMuzzles.Insert(muzzle); result.Muzzles++;
|
||||
int barrels = muzzle.GetBarrelsCount();
|
||||
if (barrels < 1 || barrels > 32) result.Complete = false;
|
||||
else for (int barrel = 0; barrel < barrels; barrel++)
|
||||
if (muzzle.IsBarrelChambered(barrel)) result.Chambers++;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
// Projectile-only weapons and absent magazines are unknown, never empty.
|
||||
if (!magazine || !magazine.GetOwner() || !allowed.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMagazines.Contains(magazine)) continue;
|
||||
if (magazineOwners.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
seenMagazines.Insert(magazine); magazineOwners.Insert(magazine.GetOwner());
|
||||
int rounds = magazine.GetAmmoCount();
|
||||
int capacity = magazine.GetMaxAmmoCount();
|
||||
if (rounds < 0 || capacity < 1 || capacity > 100000 || rounds > capacity) { result.Complete = false; continue; }
|
||||
result.Magazines++; result.Rounds += rounds; result.Capacity += capacity;
|
||||
if (rounds <= capacity * 0.25) result.LowMagazines++;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"authorization": "User authorized RHS, WCS and BMP dependencies on2026-09-20; external assets remain in installed addons. Parachute Framework is required by the requested original paratrooper port and HQ-controlled drops (2026-09-22).",
|
||||
"direct_ai_dependencies": [
|
||||
"595F2BF2F44836FB",
|
||||
"629B2BA37EFFD577",
|
||||
"5E524E4FEECCA92B",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"addons": {
|
||||
"595F2BF2F44836FB": {
|
||||
"title": "RHS: Status Quo",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"1337C0DE5DABBEEF",
|
||||
"BADC0DEDABBEDA5E"
|
||||
],
|
||||
"project_sha256": "1b83e9df126db639cfcdb6d5119e65a1581c028becd6c09998143ed527ad0721"
|
||||
},
|
||||
"1337C0DE5DABBEEF": {
|
||||
"title": "RHS: Status Quo - Content Pack 01",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc"
|
||||
},
|
||||
"BADC0DEDABBEDA5E": {
|
||||
"title": "RHS: Status Quo - Content Pack 02",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4"
|
||||
},
|
||||
"5E389BB9F58B79A6": {
|
||||
"title": "WCS_SpaceCore",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34"
|
||||
},
|
||||
"629B2BA37EFFD577": {
|
||||
"title": "WCS_Armaments",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1"
|
||||
},
|
||||
"5E524E4FEECCA92B": {
|
||||
"title": "WCS_BMP-1",
|
||||
"version": "8.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"5E389BB9F58B79A6",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259"
|
||||
},
|
||||
"65930CB4CD0237B2": {
|
||||
"title": "Parachute Framework",
|
||||
"version": "1.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"Prefabs/Weapons/Launchers/FIM92_Stinger/Launcher_FIM92_Stinger.et": {
|
||||
"guid": "3DF204EEE0534EF2",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et": {
|
||||
"guid": "1DC01AAACFFA8B63",
|
||||
"addon": "5E524E4FEECCA92B",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et": {
|
||||
"guid": "A1D5833FF10C6503",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p21/Optic_1P21.et": {
|
||||
"guid": "695AAA77F84EB238",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/m8541/Optic_M8541.et": {
|
||||
"guid": "333A794F0B55C019",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et": {
|
||||
"guid": "8D4BAA235F7EDBEA",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Configs/Factions/RHS_ION.conf": {
|
||||
"guid": "CB76A36EACFBDF35",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_RF_MSV.conf": {
|
||||
"guid": "627A8CDE681D223D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_US_USMC.conf": {
|
||||
"guid": "F33C7BF22CBF3A8A",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/BLUFOR/RHS_USAF/RHS_USAF_USMC_MEF/Group_USAF_USMC_MEF_FireTeam.et": {
|
||||
"guid": "19843E954790DF28",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/INDFOR/RHS_ION/RHS_ION_COY/Group_RHS_ION_COY_StaticSecurityTeam.et": {
|
||||
"guid": "516C8C7400DF2C4D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/OPFOR/RHS_AFRF/MSV/Flora/Group_RHS_RF_MSV_Flora_FireGroup.et": {
|
||||
"guid": "AB905EF799E0A0AE",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/DeployedParachutes/Core/DeployedParachuteMK4.et": {
|
||||
"guid": "9ADD554959C09197",
|
||||
"addon": "65930CB4CD0237B2",
|
||||
"verification": "Exact installed owning resourceDatabase.rdb path/type/GUID and inspected native prefab/scripts, 2026-09-22."
|
||||
},
|
||||
"Prefabs/Weapons/Launchers/9K38_IGLA/Launcher_9K38_IGLA.et": {
|
||||
"guid": "962C400354E4BD6C",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Installed WCS USSR AA character references this exact prefab; inspected launcher has infrared guidance and a loaded disposable muzzle, 2026-09-23."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Rifleman_Random.et": {
|
||||
"guid": "844936B168DFAB8E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Medic_Random.et": {
|
||||
"guid": "DBB8D1F13930220E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_SL.et": {
|
||||
"guid": "B3C496CCFA72D25E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_Medic.et": {
|
||||
"guid": "D9AF475A4E5DC52C",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Rifleman_Random.et": {
|
||||
"guid": "140001FC383DF9A2",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Medic_Random.et": {
|
||||
"guid": "0FA8ACE19A772327",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
{
|
||||
"Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob": "E443663E5241622A",
|
||||
"Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob": "77C9FCF3FB1246E9",
|
||||
"Assets/Items/Equipment/workspaces/paper_map.agr": "83675D0B0AB1B2C3",
|
||||
"Assets/Items/Equipment/workspaces/player_map.asi": "56794534F6B8C3D7",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat": "B47B52D9DA68905D",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat": "610803CC3F3D6649",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat": "7D2E831AFA5CF50D",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob": "819ED3266EE5113B",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat": "2169E8EB73E1C127",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat": "31529E064AA7C917",
|
||||
"Assets/Props/Military/Sandbags/Sandbag_01_short.xob": "268DBDABB3C94AD7",
|
||||
"Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob": "E3BC73BFBC7AA497",
|
||||
"Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob": "0B96D139FEBCA006",
|
||||
"Configs/Callsigns/Callsigns_US.conf": "CB7824D572DD0D5C",
|
||||
"Configs/Callsigns/Callsigns_USSR.conf": "958043CE1648EC43",
|
||||
"Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf": "B56E8B4D4B195559",
|
||||
"Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf": "4E70E7C4C2C17D4A",
|
||||
"Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf": "5F7EC52FC40A03E2",
|
||||
"Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf": "0BF36EFF9FFAF92B",
|
||||
"Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf": "0E4B62F186F97C43",
|
||||
"Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf": "3B679F1799D55F6F",
|
||||
"Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf": "37D5B75AAC3E72EA",
|
||||
"Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf": "C53421647C3D0D2E",
|
||||
"Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf": "B4CA6761AC935808",
|
||||
"Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf": "DDF17C8C140BD1F2",
|
||||
"Configs/Factions/BLUFOR.conf": "E7B7EA4823DD81F0",
|
||||
"Configs/Factions/FIA.conf": "8053DB656DD18B14",
|
||||
"Configs/Factions/OPFOR.conf": "B122E3B10BB3404B",
|
||||
"Configs/GameOverScreen/BaseGameOverScreensConfig.conf": "651583FFFB7FC765",
|
||||
"Configs/Identities/FactionIdentity_US.conf": "B600946E9ACC17C2",
|
||||
"Configs/Identities/FactionIdentity_USSR.conf": "FBBCD73926989580",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_US.conf": "B548A5B264939A98",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_USSR.conf": "31FC78AF00523A99",
|
||||
"Configs/Map/MapPlain.conf": "A786DD4868598F15",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf": "8BBC73472092902E",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf": "0228A79846FD8A97",
|
||||
"Configs/System/ActionContext/ManualCameraContext.conf": "C538807EEE48BED8",
|
||||
"Configs/System/chimeraInputCommon.conf": "795184CF9AD764DB",
|
||||
"Configs/System/chimeraMenus.conf": "C747AFB6B750CE9A",
|
||||
"Configs/Systems/MissionSystems.conf": "C50579A2EC48E8EF",
|
||||
"Prefabs/AI/Groups/Group_Base.et": "000CD338713F2B5A",
|
||||
"Prefabs/AI/SCR_AIWorld.et": "E0A05C76552E7F58",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Cycle.et": "35BD6541CBB8AC08",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Defend.et": "93291E72AC23930F",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetIn.et": "712F4795CF8B91C7",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetOut.et": "C40316EE26846CAB",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Move.et": "750A8D1695BD6998",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "B3E7B8DC2BAB8ACC",
|
||||
"Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et": "86E565387A634103",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et": "836E7E39AAC5888B",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_HeliPilot.et": "42A502E3BB727CEB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Sniper.et": "0F6689B491641155",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et": "2F912ED6E399FF47",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF.et": "36E28C628A2F83CB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF_Medic.et": "9A234C5857D92187",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et": "23ADBBC31B6A3DC6",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et": "1C78331E156A3D65",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_HeliPilot.et": "A62FA97C4EC64F14",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et": "BF643BE4ADBDFDD3",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et": "612F43A4D5AE765F",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Rifleman.et": "DCB41B3746FDD1BE",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et": "5436629450D8387A",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et": "333DA6244C7DA34C",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Sharpshooter.et": "976AC400219898FA",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et": "2DB452B3EC386B92",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et": "8CA70597606992EC",
|
||||
"Prefabs/Characters/Footwear/CombatBoots_US_01.et": "DAAFD15478BDE1C3",
|
||||
"Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et": "F545C1BE7C99954A",
|
||||
"Prefabs/Characters/HeadGear/Helmet_PASGT_01/Helmet_PASGT_01_base.et": "8A2B2A544F3ED831",
|
||||
"Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et": "3CCA7A9BB4FD3197",
|
||||
"Prefabs/Characters/Uniforms/Pants_US_BDU.et": "604BB72BE8E023C2",
|
||||
"Prefabs/Decals/Dirt/Decal_Dirt_Patch_03.et": "4AD6EB80A8B1FA3A",
|
||||
"Prefabs/Groups/BLUFOR/Group_US_FireTeam.et": "84E5BBAB25EA23E5",
|
||||
"Prefabs/Groups/INDFOR/Group_FIA_FireTeam.et": "5BEA04939D148B1D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_Base.et": "8DE0C0830FE0C33D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et": "E552DABF3636C2AD",
|
||||
"Prefabs/Items/Core/Item_Base.et": "C95E11C60810F432",
|
||||
"Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et": "41A9C55B61F375F0",
|
||||
"Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et": "243948B23D90BECB",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et": "AE578EEA4244D41F",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et": "21EF98BFC1EB3793",
|
||||
"Prefabs/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.et": "33B2DFDCD0EBA3DB",
|
||||
"Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et": "13772C903CB5E4F7",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et": "9B6B61BB3FE3DFB0",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R107M.et": "54C68E438DD34265",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R148.et": "E1A5D4B878AA8980",
|
||||
"Prefabs/Items/Equipment/Watches/Watch_SandY184A.et": "78ED4FEF62BBA728",
|
||||
"Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et": "12D5AD21E383B768",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et": "C3F1FA1E2EC2B345",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et": "A81F501D3EF6F38E",
|
||||
"Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et": "0D9A5DCF89AE7AA9",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et": "527D7C5D2E476BDC",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et": "00E36F41CA310E2A",
|
||||
"Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et": "D70216B1B2889129",
|
||||
"Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et": "6D56FED1E55A8F84",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_Base.et": "A242612865F2A48E",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et": "589540B35EBA8CDC",
|
||||
"Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et": "97EF4C1A41F63DDB",
|
||||
"Prefabs/MP/Modes/GameMode_Base.et": "0F307326459A1395",
|
||||
"Prefabs/MP/ScriptedChatEntity.et": "F69BC912AC8236F9",
|
||||
"Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et": "EBBC859CCD94D96D",
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
"Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et": "01AE5FD77A9A4C21",
|
||||
"Prefabs/Structures/Military/Camps/TentUSSR_01/TentUSSR_01_base.et": "BE5D5CFA90224646",
|
||||
"Prefabs/Structures/Military/Camps/TentUS_01/TentUSMedical_01.et": "F8427C3EFC52644E",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Long_noStake.et": "46904AF5D473FB75",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et": "CAE1588B6265A2AB",
|
||||
"Prefabs/Structures/Walls/Concrete/ConcreteWall_01/ConcreteWall_01_3m.et": "60E5729BEA18F875",
|
||||
"Prefabs/Systems/Radio/RadioManager.et": "B8E09FAB91C4ECCD",
|
||||
"Prefabs/Tasks/BaseTask.et": "1D0F815858EE24AD",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et": "7BD282AF716ED639",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et": "DF5CCB7C0FF049F4",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et": "259EE7B78C51B624",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et": "0B4DEA8078B78A9B",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/VehParts/Seats/UAZ469_seats_rear.et": "780AAF0A51AEE61A",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et": "3336BE330C4F355B",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et": "16C1F16C9B053801",
|
||||
"Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et": "98EC9C526AFBA282",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x51_M14_20rnd_SpecialBall.et": "627255315038152A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x54_SVD_10rnd_Sniper.et": "9CCB46C6EE632C1A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et": "8B853CDD11BA916E",
|
||||
"Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et": "D1FFE458E8AC4BDB",
|
||||
"Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et": "FA5C25BF66A53DCF",
|
||||
"Prefabs/World/Game/PerceptionManager.et": "028DAEAD63E056BE",
|
||||
"Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp": "13F8D0DE67678118",
|
||||
"Sounds/Vehicles/Wheeled/UAZ469/Vehicles_UAZ469_Horn.acp": "7E64D37BE3E1F3FA",
|
||||
"UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt": "3E7733BAC8C831F6",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset": "21533F2089005056",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset": "F8AC305446D5D480",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds": "EB7F65DBC9392557",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds": "40B12B0DF911B856",
|
||||
"UI/Textures/Flags/US-flag-base-3it.edds": "46FB2FB2C2125A3C",
|
||||
"UI/Textures/Flags/USSR-flag-base-3it.edds": "50824EB9F2C215AB",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI-glow.imageset": "67B3A6DC2D712B52",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI.imageset": "E23427CAC80DA8B7",
|
||||
"UI/Textures/Icons/icons_wrapperUI-glow.imageset": "00FE3DBDFD15227B",
|
||||
"UI/Textures/Icons/icons_wrapperUI.imageset": "3262679C50EF4F01",
|
||||
"UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout": "C4507D07F3C54831",
|
||||
"UI/layouts/Menus/PauseMenu/PauseMenuButton.layout": "9ECCD201BCF07E95",
|
||||
"UI/layouts/Task/TaskListEntry.layout": "B71975032150BAFB",
|
||||
"UI/layouts/Task/TaskListEntryDescription.layout": "552EB1921B5C548C",
|
||||
"UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout": "75C912A1C89BE6C2",
|
||||
"UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout": "4B5AE6E64037FFB4",
|
||||
"UI/layouts/WidgetLibrary/EditBox/WLib_EditBox.layout": "0022F0B45ADBC5AC",
|
||||
"system/textures/defWhite.edds": "A64A8C63E0FBAE87",
|
||||
"worlds/Eden/Eden.ent": "853E92315D1D9EFE",
|
||||
"worlds/MP/Navmeshes/LowResEden.nmn": "5E19E60F26327356"
|
||||
}
|
||||
+246
@@ -0,0 +1,246 @@
|
||||
"""Execute actual mounted sampler/snapshot methods against bounded native doubles."""
|
||||
import re,os
|
||||
from pathlib import Path
|
||||
from policy_harness import ROOT, run
|
||||
p=Path(os.environ.get('ERR_MOUNTED_AMMO_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c'))
|
||||
s=p.read_text()
|
||||
for forbidden in ('SetAmmoCount','GetOrigin','GetWorld','Spawn','TryMove','DeleteEntity','GetAgents'):
|
||||
assert forbidden not in s, forbidden
|
||||
code=re.sub(r'//[^\n]*','',s).replace('protected ','').replace('class ','struct ')
|
||||
code=code.replace('BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent))','part->manager')
|
||||
code=code.replace('BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent))','part->weapon')
|
||||
code=code.replace('BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent))','mountedEntity->weapon')
|
||||
code=code.replace('InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent))','mountedEntity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(weapon)','dynamic_cast<Mount*>(weapon)').replace('binding.GetParentContainer()','binding->mount')
|
||||
code=code.replace('InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent))','entity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(slot.GetParentContainer())','slot->mount').replace('BaseMuzzleComponent.Cast(slot.GetParentContainer())','slot->muzzle')
|
||||
code=code.replace('EStoragePurpose.','EStoragePurpose::').replace('GetParentSlot().','GetParentSlot()->')
|
||||
code=code.replace('ChimeraCharacter.Cast(entity) != nullptr','entity->character').replace('ChimeraCharacter.Cast(entity) != null','entity->character')
|
||||
code=code.replace('ChimeraCharacter.Cast(root)','root->character').replace('ChimeraCharacter.Cast(entity)','entity->character')
|
||||
code=code.replace('protected static ref ', 'inline static ').replace('static ref ', 'inline static ').replace('ref ', '')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoDiagnostic (?=\w)', 'ERR_HQMountedAmmoDiagnostic* ',code)
|
||||
code=code.replace('s_Diagnostic.', 's_Diagnostic->').replace('GetPrefabData().', 'GetPrefabData()->')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoSnapshot (?=\w)','ERR_HQMountedAmmoSnapshot* ',code)
|
||||
code=code.replace('array<','Array<').replace('foreach (','for (').replace('null','nullptr')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons,','Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons,')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons)', 'Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons)')
|
||||
for name in ('copy','result','weapon','root','entity','child','part','manager','mounted','muzzle','magazine','item','storage','mount','mountedEntity','mountedItem'):
|
||||
code=re.sub(r'\b'+name+r'\.',name+'->',code)
|
||||
code=re.sub(r'\b(bool|int) (\w+);',r'\1 \2=0;',code).replace('\n}\n','\n};\n')
|
||||
program=(r'''
|
||||
#include <cassert>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
using string=std::string;
|
||||
struct Prefab{string name="fixture";string GetPrefabName(){return name;}};
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;
|
||||
int Count(){return this->size();}bool IsEmpty(){return this->empty();}
|
||||
void Insert(T n){this->push_back(n);}bool Contains(T n){return std::find(this->begin(),this->end(),n)!=this->end();}};
|
||||
struct Entity;struct Weapon;struct Muzzle;struct Magazine;struct Manager;struct Mount;
|
||||
struct EStoragePurpose{static const int PURPOSE_UNSET=0,PURPOSE_DEPOSIT=1,PURPOSE_WEAPON_PROXY=2,PURPOSE_ATTACHMENT_PROXY=4,PURPOSE_ANY=127;};
|
||||
struct Storage{int purpose=EStoragePurpose::PURPOSE_DEPOSIT;int GetPurpose(){return purpose;}};
|
||||
struct Slot{Mount* mount=nullptr;Muzzle* muzzle=nullptr;Storage* storage=nullptr;Storage* GetStorage(){return storage;}};
|
||||
struct Item{Slot* slot=nullptr;Slot* GetParentSlot(){return slot;}};
|
||||
using InventoryStorageSlot=Slot*;using WeaponSlotComponent=Mount*;
|
||||
using InventoryItemComponent=Item*;using BaseInventoryStorageComponent=Storage*;
|
||||
using IEntity=Entity*;using BaseWeaponComponent=Weapon*;using BaseMuzzleComponent=Muzzle*;
|
||||
using BaseMagazineComponent=Magazine*;using BaseWeaponManagerComponent=Manager*;
|
||||
struct Entity{Prefab prefab;Prefab*GetPrefabData(){return &prefab;}Item* item=nullptr;bool character=false;Entity* child=nullptr;Entity* sibling=nullptr;Manager* manager=nullptr;Weapon* weapon=nullptr;
|
||||
int reads=0;Entity* GetChildren(){reads++;assert(reads<=1);return child;}Entity* GetSibling(){return sibling;}};
|
||||
struct Magazine{IEntity owner=nullptr;int rounds=25,capacity=100,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetAmmoCount(){reads++;return rounds;}int GetMaxAmmoCount(){return capacity;}};
|
||||
struct Muzzle{IEntity owner=nullptr;Magazine* mag=nullptr;int barrels=1,chambered=1,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetBarrelsCount(){return barrels;}
|
||||
bool IsBarrelChambered(int b){reads++;return b<chambered;}Magazine* GetMagazine(){return mag;}};
|
||||
struct Weapon{virtual ~Weapon(){}IEntity owner=nullptr;Array<Muzzle*> muzzles;int reads=0;
|
||||
IEntity GetOwner(){return owner;}void GetMuzzlesList(Array<Muzzle*>& out){reads++;out=muzzles;}};
|
||||
struct Mount:Weapon{IEntity weapon=nullptr;Slot* slot=nullptr;
|
||||
Slot* GetSlotInfo(){return slot;}IEntity GetWeaponEntity(){return weapon;}};
|
||||
struct Manager{Array<Weapon*> weapons;int reads=0;void GetWeapons(Array<Weapon*>& out){reads++;out=weapons;}};
|
||||
'''+code+r'''
|
||||
struct Rig{Entity root,gun,magazine,crew,rifle;Manager manager,crewManager;Weapon weapon,carried;
|
||||
Muzzle muzzle,carriedMuzzle;Magazine mag,carriedMag;
|
||||
Rig(){root.child=&gun;gun.sibling=&magazine;magazine.sibling=&crew;crew.character=true;crew.child=&rifle;
|
||||
root.manager=&manager;manager.weapons={&weapon,&weapon};gun.weapon=&weapon;weapon.owner=&gun;weapon.muzzles={&muzzle,&muzzle};
|
||||
muzzle.owner=&gun;muzzle.mag=&mag;mag.owner=&magazine;
|
||||
crew.manager=&crewManager;crewManager.weapons={&carried};rifle.weapon=&carried;carried.owner=&rifle;
|
||||
carried.muzzles={&carriedMuzzle};carriedMuzzle.owner=&rifle;carriedMuzzle.mag=&carriedMag;carriedMag.owner=&rifle;}
|
||||
ERR_HQMountedAmmoSnapshot* Inspect(){return ERR_HQMountedAmmoSampler::Inspect(&root);}
|
||||
};
|
||||
int main(){
|
||||
{auto s=ERR_HQMountedAmmoSampler::Inspect(nullptr);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root;root.character=true;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&root.reads==0);}
|
||||
{Entity root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0);}
|
||||
{Rig r;auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1);
|
||||
assert(s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&s->LowMagazines==1);
|
||||
assert(r.weapon.reads==1&&r.muzzle.reads==1&&r.mag.reads==1&&r.crew.reads==0&&r.crewManager.reads==0&&r.carried.reads==0);
|
||||
auto copy=s->Snapshot();s->Complete=false;s->Rounds=0;s->Capacity=0;s->LowMagazines=0;
|
||||
assert(copy->Complete&©->Rounds==25&©->Capacity==100&©->LowMagazines==1&©->Weapons==1&©->Muzzles==1&©->Magazines==1&©->Chambers==1);}
|
||||
for(int rounds:{0,24,25,26,100}){Rig r;r.mag.rounds=rounds;auto s=r.Inspect();assert(s->Complete&&s->Valid());assert(s->LowMagazines==(rounds<=25));}
|
||||
{Rig r;Muzzle second;second.owner=&r.gun;second.mag=&r.mag;second.chambered=0;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Muzzles==2&&s->Magazines==1&&s->Chambers==1&&s->Rounds==25&&r.mag.reads==1);}
|
||||
// Manager references into skipped characters, foreign roots, or nulls never count.
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;Weapon w;w.owner=&foreign;
|
||||
r.manager.weapons.Insert(kind==0?&r.carried:kind==1?&w:nullptr);auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons==1);}
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;
|
||||
if(kind==0)r.muzzle.owner=&foreign;
|
||||
if(kind==1)r.mag.owner=&foreign;
|
||||
if(kind==2)r.mag.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Rounds==0&&s->Magazines==0);}
|
||||
// Deposited rifles and nested magazines are excluded; installed magazine slots remain admitted.
|
||||
{Rig r;Entity cargo,rifle,magEntity;Item item;Slot slot;Storage storage;Weapon rifleWeapon;
|
||||
r.crew.sibling=&cargo;cargo.child=&rifle;rifle.child=&magEntity;rifle.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
rifle.weapon=&rifleWeapon;rifleWeapon.owner=&rifle;auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&rifle.reads==0&&magEntity.reads==0);}
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.magazine.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;auto s=r.Inspect();assert(s->Complete&&s->Rounds==25&&s->Magazines==1);}
|
||||
for(int purpose:{0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=purpose;auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Native purposes support combined flags; any deposit bit excludes the subtree.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_DEPOSIT|EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Manager references cannot rescue a cargo weapon.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Exact native weapon-slot and muzzle containers are not deposit storage.
|
||||
for(int purpose:{-1,0,127}){Rig r;Item gunItem,magItem;Slot gunSlot,magSlot;Storage storage;Mount mount;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&gunSlot;gunSlot.mount=&mount;r.gun.item=&gunItem;gunItem.slot=&gunSlot;
|
||||
magSlot.muzzle=&r.muzzle;r.magazine.item=&magItem;magItem.slot=&magSlot;
|
||||
if(purpose>=0){storage.purpose=purpose;gunSlot.storage=&storage;magSlot.storage=&storage;}
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);}
|
||||
// No generic missing-storage bypass: foreign container owners, stale slots and
|
||||
// substituted attached items fail closed, including foreign loaded magazines.
|
||||
for(int fault=0;fault<6;fault++){Rig r;Entity foreign;Item item;Slot slot,other;Mount mount;
|
||||
r.gun.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&slot;
|
||||
if(fault==0)mount.owner=&foreign;
|
||||
if(fault==1)mount.owner=&r.crew;
|
||||
if(fault==2)mount.weapon=&foreign;
|
||||
if(fault==3)mount.slot=&other;
|
||||
if(fault==4)slot.mount=nullptr;
|
||||
if(fault==5)mount.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Rounds==0&&s->Valid());}
|
||||
for(int fault=0;fault<3;fault++){Rig r;Entity foreign;Item item;Slot slot;
|
||||
r.magazine.item=&item;item.slot=&slot;slot.muzzle=&r.muzzle;
|
||||
if(fault==0)r.muzzle.owner=&foreign;
|
||||
if(fault==1)r.muzzle.mag=nullptr;
|
||||
if(fault==2)r.mag.owner=&foreign;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==0&&s->Rounds==0&&s->Valid());}
|
||||
// An exact loaded magazine inside an excluded cargo rifle does not re-admit it.
|
||||
{Rig r;Item item,magItem;Slot slot,magSlot;Storage deposit;r.gun.item=&item;item.slot=&slot;slot.storage=&deposit;
|
||||
r.magazine.item=&magItem;magItem.slot=&magSlot;magSlot.muzzle=&r.muzzle;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Magazines==0&&s->Valid());}
|
||||
// Native manager/FindComponent expose the wrapper and the physical weapon.
|
||||
// A UAZ's single PKM must be one weapon even when all those paths overlap.
|
||||
{Rig r;Mount mount;Item item;Slot binding;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;
|
||||
binding.mount=&mount;item.slot=&binding;r.gun.item=&item;r.root.weapon=&mount;mount.muzzles=r.weapon.muzzles;
|
||||
r.manager.weapons={&mount,&r.weapon,&mount};auto s=r.Inspect();
|
||||
assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);
|
||||
assert(mount.reads==0&&r.weapon.reads==1&&r.mag.reads==1);}
|
||||
// Unknown/foreign/empty/nested/stale slot endpoints never become real guns.
|
||||
for(int fault=0;fault<11;fault++){Rig r;Entity foreign;Mount mount,other;Item item;Slot binding,stale;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;binding.mount=&mount;item.slot=&binding;r.gun.item=&item;
|
||||
r.root.weapon=&mount;r.manager.weapons={&mount};
|
||||
if(fault==0)mount.weapon=nullptr;
|
||||
if(fault==1)mount.weapon=&foreign;
|
||||
if(fault==2)mount.weapon=&r.root; // nested/self wrapper
|
||||
if(fault==3)binding.mount=&other;
|
||||
if(fault==4)item.slot=&stale;
|
||||
if(fault==5)mount.slot=nullptr;
|
||||
if(fault==6)r.gun.item=nullptr;
|
||||
if(fault==7)mount.owner=&foreign;
|
||||
if(fault==8)r.gun.weapon=nullptr;
|
||||
if(fault==9){other.owner=&r.gun;r.gun.weapon=&other;} // valid first binding, nested wrapper endpoint
|
||||
if(fault==10)r.weapon.owner=&foreign; // component found on target belongs elsewhere
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons<=1&&mount.reads==0&&other.reads==0);}
|
||||
// Thirty-two genuine installed guns still fit the weapon cap despite wrappers.
|
||||
{Entity root;Array<Entity> hosts(32),guns(32),mags(32);Array<Weapon> weapons(32);Array<Mount> mounts(32);
|
||||
Array<Muzzle> muzzles(32);Array<Magazine> magazines(32);Array<Item> items(32);Array<Slot> bindings(32);
|
||||
root.child=&hosts[0];for(int i=0;i<32;i++){
|
||||
if(i+1<32)hosts[i].sibling=&hosts[i+1];
|
||||
hosts[i].child=&guns[i];guns[i].child=&mags[i];hosts[i].weapon=&mounts[i];guns[i].weapon=&weapons[i];
|
||||
mounts[i].owner=&hosts[i];mounts[i].weapon=&guns[i];mounts[i].slot=&bindings[i];bindings[i].mount=&mounts[i];
|
||||
items[i].slot=&bindings[i];guns[i].item=&items[i];weapons[i].owner=&guns[i];weapons[i].muzzles={&muzzles[i]};
|
||||
mounts[i].muzzles=weapons[i].muzzles;muzzles[i].owner=&guns[i];muzzles[i].mag=&magazines[i];magazines[i].owner=&mags[i];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==32&&s->Muzzles==32&&s->Magazines==32&&s->Rounds==800);}
|
||||
// Missing/projectile-only magazines and unsupported native values stay incomplete.
|
||||
for(int kind=0;kind<9;kind++){Rig r;
|
||||
if(kind==0)r.muzzle.mag=nullptr;
|
||||
if(kind==1)r.weapon.muzzles={nullptr};
|
||||
if(kind==2)r.weapon.muzzles={};
|
||||
if(kind==3)r.muzzle.barrels=0;
|
||||
if(kind==4)r.muzzle.barrels=33;
|
||||
if(kind==5)r.mag.rounds=-1;
|
||||
if(kind==6)r.mag.capacity=0;
|
||||
if(kind==7)r.mag.capacity=100001;
|
||||
if(kind==8)r.mag.rounds=101;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid());}
|
||||
{Rig r;r.weapon.muzzles=Array<Muzzle*>(9,&r.muzzle);auto s=r.Inspect();assert(!s->Complete&&s->Muzzles==0&&r.muzzle.reads==0);}
|
||||
{Rig r;r.manager.weapons=Array<Weapon*>(9,&r.weapon);auto s=r.Inspect();assert(!s->Complete&&s->Weapons==1&&s->Valid());}
|
||||
// Entity budget also bounds enqueue and cycles, rather than only processed work.
|
||||
for(int count:{128,129,300}){std::vector<Entity> nodes(count);for(int i=0;i<count-1;i++)nodes[i].child=&nodes[i+1];
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(s->Complete==(count==128));assert(s->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads==128);}
|
||||
{Entity root,child;root.child=&child;child.sibling=&child;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root,child;root.child=&child;child.child=&root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
// Maximum weapon and muzzle bounds remain valid detached counts on overflow.
|
||||
for(int count:{32,33}){Entity root;std::vector<Entity> nodes(count);std::vector<Weapon> weapons(count);
|
||||
root.child=&nodes[0];for(int i=0;i<count;i++){nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];if(i+1<count)nodes[i].sibling=&nodes[i+1];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Weapons==32&&s->Valid());}
|
||||
{Entity root;std::vector<Entity> nodes(18);std::vector<Weapon> weapons(17);std::vector<Muzzle> muzzles(136);Magazine mag;mag.owner=&nodes[17];
|
||||
root.child=&nodes[0];for(int i=0;i<18;i++){if(i+1<18)nodes[i].sibling=&nodes[i+1];if(i==17)continue;
|
||||
nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];for(int j=0;j<8;j++){auto& m=muzzles[i*8+j];m.owner=&nodes[i];m.mag=&mag;weapons[i].muzzles.Insert(&m);}}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Muzzles==128&&s->Magazines==1&&s->Chambers==128&&s->Valid());}
|
||||
{Rig r;Magazine alias;alias.owner=&r.magazine;Muzzle second;second.owner=&r.gun;second.mag=&alias;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==1&&s->Rounds==25&&alias.reads==0&&s->Valid());}
|
||||
|
||||
// Realistic production load: 128 known deposited items plus mounted root,
|
||||
// gun, loaded magazine and a pruned original crew root exceed128 in total.
|
||||
// Cargo-first and structure-first traversal both retain the same mounted counts.
|
||||
for(bool cargoFirst:{false,true}){Rig r;std::vector<Weapon> cargoWeapons(128);std::vector<Entity> cargo(128);std::vector<Item> items(128);std::vector<Slot> slots(128);Storage deposit;
|
||||
for(int i=0;i<128;i++){cargo[i].weapon=&cargoWeapons[i];cargoWeapons[i].owner=&cargo[i];cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;if(i<127)cargo[i].sibling=&cargo[i+1];}
|
||||
if(cargoFirst){r.root.child=&cargo[0];cargo.back().sibling=&r.gun;}else{r.crew.sibling=&cargo[0];}
|
||||
auto snapshot=r.Inspect();assert(snapshot->Complete&&snapshot->Weapons==1&&snapshot->Magazines==1&&snapshot->Rounds==25&&snapshot->Valid());
|
||||
for(auto& item:cargo){assert(item.reads==0);}for(auto& gun:cargoWeapons){assert(gun.reads==0);}assert(r.weapon.reads==1&&r.carried.reads==0);}
|
||||
// Independent128 structural/128 cargo limits, in either order and interleaved.
|
||||
for(int order:{0,1,2})for(int scenario:{0,1,2,3}){
|
||||
int structures=scenario==1?129:128;int cargoCount=scenario==2||scenario==3?129:(scenario==1?100:128);
|
||||
if(scenario==2)structures=4;
|
||||
std::vector<Entity> nodes(structures),cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage deposit;std::vector<Entity*> sequence;
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;}
|
||||
if(order==0){for(auto& e:cargo)sequence.push_back(&e);for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);}
|
||||
if(order==1){for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);for(auto& e:cargo)sequence.push_back(&e);}
|
||||
if(order==2){for(int i=0;i<std::max(structures-1,cargoCount);i++){if(i<cargoCount)sequence.push_back(&cargo[i]);if(i+1<structures)sequence.push_back(&nodes[i+1]);}}
|
||||
nodes[0].child=sequence[0];for(int i=0;i<int(sequence.size())-1;i++)sequence[i]->sibling=sequence[i+1];
|
||||
auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(snapshot->Complete==(scenario==0)&&snapshot->Weapons==0&&snapshot->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads<=128);for(auto& e:cargo)assert(e.reads==0);
|
||||
}
|
||||
// Wire validation rejects impossible or malicious counts.
|
||||
{ERR_HQMountedAmmoSnapshot s;assert(s.Valid());s.Weapons=33;assert(!s.Valid());s.Weapons=1;s.Muzzles=9;assert(!s.Valid());
|
||||
s.Muzzles=1;s.Magazines=2;assert(!s.Valid());s.Magazines=1;s.Capacity=100001;assert(!s.Valid());s.Capacity=100;s.Rounds=101;assert(!s.Valid());
|
||||
s.Rounds=25;s.Chambers=33;assert(!s.Valid());s.Chambers=1;s.LowMagazines=2;assert(!s.Valid());s.LowMagazines=1;s.Complete=true;assert(s.Valid());}
|
||||
}
|
||||
''')
|
||||
run(program)
|
||||
print('PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation')
|
||||
|
||||
# WORKBENCH records are opt-in. Re-run every original geometry/count assertion
|
||||
# in that build too, plus exact failure witnesses from the same traversal.
|
||||
cases=r'''
|
||||
{Rig r;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(snap->Complete&&d->Reasons==0&&d->Nodes==4&&d->Allowed==3&&d->Managers==1);assert(!ERR_HQMountedAmmoSampler::EndDiagnostic());}
|
||||
{Entity root;root.child=&root;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==4&&d->Nodes==1&&d->Allowed==1&&root.reads==1);}
|
||||
{Entity root;std::vector<Entity> children(128);root.child=&children[0];for(int i=0;i<127;i++)children[i].sibling=&children[i+1];ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1024&&d->Nodes==129&&d->Allowed==128&&d->Structural==129&&d->Cargo==0&&children[127].reads==0);}
|
||||
for(int purpose:{-1,0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;r.gun.prefab.name="first-gun";if(purpose>=0){slot.storage=&storage;storage.purpose=purpose;}ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&2)&&(d->Reasons&16)&&d->FirstPrefab=="first-gun"&&d->FirstPurpose==purpose&&d->Detail.find("ambiguous-storage;")!=string::npos);}
|
||||
{Entity root;Manager manager;root.manager=&manager;manager.weapons.resize(9,nullptr);ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==512&&d->Managers==1&&manager.reads==1);}
|
||||
{Rig r;Mount mount;mount.owner=&r.root;r.manager.weapons={&mount};ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&32));}
|
||||
{ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(nullptr);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1&&d->Nodes==0&&d->Allowed==0);}
|
||||
'''
|
||||
|
||||
cases+=r'''
|
||||
for(int which:{0,1}){Entity root;int cargoCount=which==0?129:256;std::vector<Entity> cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage storage;root.child=&cargo[0];
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&storage;if(i+1<cargoCount)cargo[i].sibling=&cargo[i+1];}
|
||||
ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snapshot->Complete&&d->Cargo==129&&d->Structural==1&&(d->Reasons&2048));
|
||||
if(which==0){assert(d->Nodes==130&&!(d->Reasons&8));}else{assert(d->Nodes==256&&(d->Reasons&8));}}
|
||||
'''
|
||||
run('#define WORKBENCH\n'+program.replace('int main(){','int main(){'+cases))
|
||||
print('PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal')
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"complete": true,
|
||||
"captured_utc": "2026-10-03T11:35:45.385629+00:00",
|
||||
"decision": "Evidence and documentary claims are accurate. Correction passes modeled tests; requested native proof failed before any BMP sampling and remains unqualified.",
|
||||
"review_scope": "Read-only source/evidence/claims binding; no tests or native rerun. Original and prior-package preservation is separately parent-owned this turn.",
|
||||
"source_files": 424,
|
||||
"qualification_scope": "Exact recorded suite/native424 snapshot only. Later live settings/voice changes excluded; four reviewed BMP files remain exact.",
|
||||
"suite": {
|
||||
"programs": 302,
|
||||
"registered_order_exact": true,
|
||||
"all_pass": true,
|
||||
"inputs_unchanged_at_run": true,
|
||||
"seconds": 212.36,
|
||||
"current_nondoc_inputs_match": false,
|
||||
"tested_native_snapshot_matches_suite": true,
|
||||
"later_live_changes_observed_not_qualified": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": {
|
||||
"before": "572cc36f88255a37e8f0e9f284fb96e07c6c4032506b34b8c77d688f02785400",
|
||||
"after": "491c80ab32e3c914dea056327f639bc58159033d4917508c9848cca47546908a"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": {
|
||||
"before": "077c09491f4444fc58f093975fe9b3c294ea1fc966abef847ee5f13aa795ee29",
|
||||
"after": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": {
|
||||
"before": "1c4bc25a6ce9b5ee10f82592f955b0019d13ddb4084a783fadb98d267bd0f4fc",
|
||||
"after": "690a39a28a84ffe7ccbd27d4af50679925a870b53accf18d6573fe94e71d35ba"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": {
|
||||
"before": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2",
|
||||
"after": "2951c36cf3a72ae079ab8991879b4759fae783d719c61878f1aad7126836dae6"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": {
|
||||
"before": "ec25e5c3a5b97527f9cd70341c10d69d7124048089d26883ac2f8c9b3fd2815d",
|
||||
"after": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": {
|
||||
"before": "53dcfd974e3d0e63bd4f95e6fa79e5b95804c3cb188ade681e89d0380942c82b",
|
||||
"after": "a01d4163d3ab5b480ffbd2ceeff7384d8df6b7dd64036d580cd0c462b0135d25"
|
||||
}
|
||||
},
|
||||
"post_suite_prose_only_differences": {
|
||||
"docs/current-status.md": {
|
||||
"before": "53371cce951524db84438baaf847979453cb7c2e9a8fba4dff3ff4bbc9cf1308",
|
||||
"after": "cc406deb337d52b1c867de8aba27db28f2efa4aeb6df25c273f1d3fedb5efeeb"
|
||||
},
|
||||
"docs/hq-ammunition.md": {
|
||||
"before": "4e9e78855e33d6381ebf89a5586062d264d5a2c6a862faa7f9b58f1f1e10480f",
|
||||
"after": "6ea12f3917078560be488b16a99868da6b5b69db85d5d39f38b335ff8d0a14ee"
|
||||
}
|
||||
},
|
||||
"prose_reversal_restores_tested_hashes": true
|
||||
},
|
||||
"native": {
|
||||
"assertions": 32,
|
||||
"completions": 0,
|
||||
"script_failures": [
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"engine_errors": 15,
|
||||
"strict_result": "test-failed",
|
||||
"cleanup": true,
|
||||
"source_and_external_unchanged": true,
|
||||
"exact_424_suite_source_match": true,
|
||||
"body_budget_refusal_logged": true,
|
||||
"no_native_bmp_sample_claimed": true,
|
||||
"no_physical_radio_or_accounting_qualification": true
|
||||
},
|
||||
"archive": {
|
||||
"exact_member_hashes": true,
|
||||
"copied_originals_match": true,
|
||||
"file_count": 38
|
||||
},
|
||||
"package_limit": "Previously sealed depot-mines423 package excludes this correction and later voice work; no new runtime qualification claimed.",
|
||||
"hashes": {
|
||||
"/tmp/erri-bmp-ammo-root-1305/suite-inputs.json": "fb3bc215aa39b271dee9c85049edfa22f9aee5172b7753f24e2aa23c75371d92",
|
||||
"/tmp/erri-bmp-ammo-root-1305/suite-result.json": "b81d05969e6af5ff6ae78f7ca8a1289b9db5ff37de22f275d9d41a80b66f78f6",
|
||||
"/tmp/erri-bmp-ammo-root-1305/full-suite.log": "f1372b3bd1ee6703e9fae74d1f0c4ed56b8296dcf39810c1d05e212e42e00277",
|
||||
"/tmp/erri-bmp-ammo-root-1305/post-suite-docs.json": "6501f24e51913178f66ebff1105a5f956278c1c9ae0e3bc43cd42ed06c994acc",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/console.log.txt": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/report.json": "52e541a994842e588594dc6d781eba8fc38213e9b142f6e4c8239561bc590e26",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/runner.json.txt": "f1088a8392a8cf23705a1ea70094c17da05bf3be62244d2f9a72e20a394abb92",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting/source-sha256.json": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/evidence/bmp-ammo-accounting-2026-10-03/artifact-manifest.json": "ede79c8ac5995682649b9c1b94a79ba7aeec6d46f4255aa44c71df9bad22cb5c",
|
||||
"/tmp/erri-bmp-ammo-review-1305/review.json": "76fefed17668ec8d764a203f56951edb425f381ea9bb255a300e2dab1d58b436",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/current-status.md": "cc406deb337d52b1c867de8aba27db28f2efa4aeb6df25c273f1d3fedb5efeeb",
|
||||
"/home/jakub/devel/escapistsrereintroduced/docs/hq-ammunition.md": "6ea12f3917078560be488b16a99868da6b5b69db85d5d39f38b335ff8d0a14ee"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"verdict": "No demonstrated unintended starvation bug. Zero fleet under insufficient shared admission capacity is explicitly accepted current policy; partial live diagnostic does not establish permanent outcome.",
|
||||
"reported_observation_not_independently_sampled": {
|
||||
"fleet": 0,
|
||||
"committed": 113,
|
||||
"limit": 135,
|
||||
"per_convoy": 25,
|
||||
"attempts": 0
|
||||
},
|
||||
"arithmetic": "113 + 25 = 138 > 135; a new source needs committed <=110 at the admission instant.",
|
||||
"evidence": [
|
||||
{
|
||||
"file": "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c",
|
||||
"lines": "25,39-46,58-68,80-98",
|
||||
"claim": "Supply limit is 60+25*configured count, not a dedicated reserved convoy slice. Physical noneliminated ledger strength plus outstanding receipt bodies count. Reserve/Consume remain authoritative; known receipt reuse avoids charging twice."
|
||||
},
|
||||
{
|
||||
"file": "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c",
|
||||
"lines": "88-96,144-159",
|
||||
"claim": "Body refusal happens inside StartOne after Tick increments attempts. Attempts zero therefore cannot itself demonstrate body refusal: initial30s grace, pending existing admission, disabled/zero target, stopped/not ticking remain possible. Admitted failures retry each5s for120 attempts; exhaustion is deliberate and does not reset on later deaths."
|
||||
},
|
||||
{
|
||||
"file": "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c",
|
||||
"lines": "239-255,1574-1592",
|
||||
"claim": "Existing unit ledger admissions and nonfailed mortar StartupActivated precede automatic dispatch; terminal failed optional support is skipped. Hunter/objective/town ticks run before AutomaticConvoy, so already-admitted forces have priority. No convoy escrow exists."
|
||||
},
|
||||
{
|
||||
"file": "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c",
|
||||
"lines": "173-181,190-205",
|
||||
"claim": "Approached post-prison towns admit finite one-time groups before automatic convoy tick. They may increase shared committed bodies; this is not a convoy-owned budget reservation."
|
||||
},
|
||||
{
|
||||
"file": "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c",
|
||||
"lines": "92-122,136-160",
|
||||
"claim": "Ledger admission enforces source/formation limits, not the convoy body ceiling; strength can decline through physical-state reconciliation. The displayed convoy ceiling is an additional-convoy admission bound, not a global spawn guarantee."
|
||||
},
|
||||
{
|
||||
"file": "docs/supply-convoys.md",
|
||||
"lines": "62-75",
|
||||
"claim": "Documentation explicitly defines configured count as maximum allowance, not guaranteed deployment, with108 success and112 refusal controls."
|
||||
},
|
||||
{
|
||||
"file": "tests/test_convoy_budget.py",
|
||||
"lines": "61-70",
|
||||
"claim": "Existing actual pool regression explicitly asserts default135/25 permits108 but refuses112; no limit relaxation."
|
||||
},
|
||||
{
|
||||
"file": "tests/test_supply_convoys.py",
|
||||
"lines": "333-351",
|
||||
"claim": "Existing actual startup regression asserts pending admission retains attempts0, admission increments attempts, repeated budget refusal reaches120 with truthful final refusal."
|
||||
}
|
||||
],
|
||||
"limits": [
|
||||
"No live native log extrapolation or new runtime observation.",
|
||||
"Existing tests inspected, not rerun; no compiler/native or target writes.",
|
||||
"A permanent unresolved admission would need an exact pending unit/battery trace; supplied counts alone do not identify that defect.",
|
||||
"Guaranteeing at least one convoy would change priority/reservation policy; current documented contract does not require it."
|
||||
],
|
||||
"source_sha256": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "ca49c274146d56e30cc93fa1652cc34c0fe68ea95725b0b3e33ab3673a6463c4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "d873b5b689e918f8c907918d673304a184ac2e4a4cb6face527b37a67821ee9f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "57f862476751087972fc78d0b27ab44e72361e27d32f15d55f9fe7fd7d6bd0e0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253",
|
||||
"tests/test_convoy_budget.py": "481364c432715336825466a9ff199edeedaa2d3621daba90c0503addfa6010f7",
|
||||
"tests/test_supply_convoys.py": "be4fc6376a77296c6721ce966ea33fd256fe9d76af8705a056a88b32c4f16710",
|
||||
"docs/supply-convoys.md": "2193581f4f339879d1409fe90881ad0801e72d98d1b57325d09cd9300f11ef61"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,827 @@
|
||||
---------------------------------------------
|
||||
Log Z:\tmp\erri-bmp-ammo-native-1305\logs\logs_2026-10-03_13-25-36\console.log started at 2026-10-03 13:25:36 (2026-10-03 11:25:36 UTC)
|
||||
|
||||
13:25:36.693 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-bmp-ammo-native-1305\logs\logs_2026-10-03_13-25-36' to filesystem under name logs
|
||||
13:25:36.693 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-bmp-ammo-native-1305\profile' to filesystem under name profile
|
||||
13:25:36.693 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
|
||||
13:25:36.695 PROFILING : Workbench Create Engine took: 9.746100 ms
|
||||
13:25:37.728 INIT : INIT : Workbench Init Engine
|
||||
13:25:37.728 ENGINE : Initializing engine, version 192142
|
||||
13:25:37.728 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-bmp-ammo-native-1305 -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome mounted-ammo -noThrow -disableCrashReporter
|
||||
13:25:37.741 ENGINE : Addon dirs:
|
||||
13:25:37.741 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/'
|
||||
13:25:37.741 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons'
|
||||
13:25:37.741 ENGINE : dir: './addons'
|
||||
13:25:37.741 ENGINE : dir: 'Z:/tmp/erri-bmp-ammo-native-1305/addons'
|
||||
13:25:37.741 ENGINE : Available addons:
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
|
||||
13:25:37.741 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed)
|
||||
13:25:37.741 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed)
|
||||
13:25:37.741 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core
|
||||
13:25:37.742 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_65930CB4CD0237B2/' (pak count: 1) to filesystem under name Parachutes
|
||||
13:25:37.743 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E524E4FEECCA92B/' (pak count: 1) to filesystem under name WCS_BMP-1
|
||||
13:25:37.744 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E389BB9F58B79A6/' (pak count: 1) to filesystem under name WCS_SpaceCore
|
||||
13:25:37.745 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_629B2BA37EFFD577/' (pak count: 1) to filesystem under name WCS_Armaments
|
||||
13:25:37.750 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core
|
||||
13:25:37.751 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02
|
||||
13:25:37.757 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01
|
||||
13:25:37.875 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
|
||||
13:25:37.878 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
|
||||
13:25:37.878 ENGINE : CPU vendor : AuthenticAMD
|
||||
13:25:37.878 ENGINE : CPU type : 2
|
||||
13:25:37.878 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
|
||||
13:25:37.878 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
|
||||
13:25:37.878 ENGINE : CPU count logical : 16
|
||||
13:25:37.878 ENGINE : CPU count physical : 8
|
||||
13:25:37.878 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
|
||||
13:25:37.878 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
|
||||
13:25:37.878 RESOURCES : ResourceDB: loading cache (id=1 name=Parachutes path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_65930CB4CD0237B2/resourceDatabase.rdb)
|
||||
13:25:37.879 RESOURCES : ResourceDB: loading cache (id=2 name=WCS_BMP-1 path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E524E4FEECCA92B/resourceDatabase.rdb)
|
||||
13:25:37.879 RESOURCES : ResourceDB: loading cache (id=3 name=WCS_SpaceCore path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E389BB9F58B79A6/resourceDatabase.rdb)
|
||||
13:25:37.880 RESOURCES : ResourceDB: loading cache (id=4 name=WCS_Armaments path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_629B2BA37EFFD577/resourceDatabase.rdb)
|
||||
13:25:37.883 RESOURCES : ResourceDB: loading cache (id=5 name=RHS_Core path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb)
|
||||
13:25:37.892 RESOURCES : ResourceDB: loading cache (id=6 name=RHS_Content_02 path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb)
|
||||
13:25:37.894 RESOURCES : ResourceDB: loading cache (id=7 name=RHS_Content_01 path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb)
|
||||
13:25:37.901 RESOURCES : ResourceDB: loading cache (id=8 name=ArmaReforger path=Z:/tmp/erri-bmp-ammo-native-1305/addons/ArmaReforger/resourceDatabase.rdb)
|
||||
13:25:38.067 RESOURCES : ResourceDB: loading cache (id=9 name=core path=./addons/core/resourceDatabase.rdb)
|
||||
13:25:38.068 RESOURCES : ResourceDB: loading cache (id=10 name=profile path=Z:\tmp\erri-bmp-ammo-native-1305\profile/resourceDatabase.rdb)
|
||||
13:25:38.068 RESOURCES : ResourceDB: loading cache (id=11 name=logs path=Z:\tmp\erri-bmp-ammo-native-1305\logs\logs_2026-10-03_13-25-36/resourceDatabase.rdb)
|
||||
13:25:38.215 RESOURCES : RESOURCES : ResourceDB: full scan
|
||||
13:25:38.220 RESOURCES : RESOURCES : scanning...
|
||||
13:25:38.220 RESOURCES : RESOURCES : scanning @"ERR_Core"
|
||||
13:25:38.231 RESOURCES : RESOURCES : scanning @"Parachutes"
|
||||
13:25:38.235 RESOURCES : RESOURCES : scanning @"WCS_BMP-1"
|
||||
13:25:38.238 RESOURCES : RESOURCES : scanning @"WCS_SpaceCore"
|
||||
13:25:38.241 RESOURCES : RESOURCES : scanning @"WCS_Armaments"
|
||||
13:25:38.245 RESOURCES : RESOURCES : scanning @"RHS_Core"
|
||||
13:25:38.256 RESOURCES : RESOURCES : scanning @"RHS_Content_02"
|
||||
13:25:38.259 RESOURCES : RESOURCES : scanning @"RHS_Content_01"
|
||||
13:25:38.267 RESOURCES : RESOURCES : scanning @"ArmaReforger"
|
||||
13:25:38.472 RESOURCES : RESOURCES : scanning @"core"
|
||||
13:25:38.476 RESOURCES : RESOURCES : scanning @"profile"
|
||||
13:25:38.476 RESOURCES : RESOURCES : scanning @"logs"
|
||||
13:25:38.477 RESOURCES : RESOURCES : processing meta-files...
|
||||
13:25:38.544 RESOURCES : RESOURCES : processing files...
|
||||
13:25:38.544 INIT : Workbench startup
|
||||
13:25:38.544 INIT : Workbench Init Engine
|
||||
13:25:38.544 RESOURCES : ResourceDB: full scan
|
||||
13:25:38.544 RESOURCES : processing files...
|
||||
13:25:38.544 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID
|
||||
13:25:38.556 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID
|
||||
13:25:38.556 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
|
||||
13:25:38.556 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
|
||||
13:25:38.556 RESOURCES : RESOURCES : processing folders...
|
||||
13:25:38.564 RESOURCES : RESOURCES : creating GUID-item mapping...
|
||||
13:25:38.580 RESOURCES : RESOURCES : building tree...
|
||||
13:25:38.637 PROFILING : ResourceDB: full scan took: 421.737100 ms
|
||||
13:25:38.638 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
|
||||
13:25:38.640 RESOURCES : ResourceDB: written 25128/25128 bytes
|
||||
13:25:38.640 RESOURCES : ResourceDB: cache successfully saved
|
||||
13:25:38.640 RESOURCES : ResourceDB: saving cache (id=10 name=profile path=Z:\tmp\erri-bmp-ammo-native-1305\profile/resourceDatabase.rdb)
|
||||
13:25:38.641 RESOURCES : ResourceDB: written 51/51 bytes
|
||||
13:25:38.641 RESOURCES : ResourceDB: cache successfully saved
|
||||
13:25:38.641 RESOURCES : ResourceDB: saving cache (id=11 name=logs path=Z:\tmp\erri-bmp-ammo-native-1305\logs\logs_2026-10-03_13-25-36/resourceDatabase.rdb)
|
||||
13:25:38.643 RESOURCES : ResourceDB: written 208/208 bytes
|
||||
13:25:38.643 RESOURCES : ResourceDB: cache successfully saved
|
||||
13:25:38.643 ENGINE : GameProject load
|
||||
13:25:38.643 ENGINE : Loaded addons:
|
||||
13:25:38.643 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2'
|
||||
13:25:38.643 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
|
||||
13:25:38.645 ENGINE : GameProject load
|
||||
13:25:38.645 INIT : GameProject load project data @"Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_595F2BF2F44836FB/addon.gproj"
|
||||
13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
|
||||
13:25:38.645 INIT : GameProject load project data @"Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_629B2BA37EFFD577/addon.gproj"
|
||||
13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
|
||||
13:25:38.645 INIT : GameProject load project data @"Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
|
||||
13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
|
||||
13:25:38.646 INIT : GameProject load project data @"Z:/tmp/erri-bmp-ammo-native-1305/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
|
||||
13:25:38.646 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
|
||||
13:25:38.646 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
|
||||
13:25:38.646 ENGINE : No Enfusion settings file loaded. Continuing with defaults
|
||||
13:25:38.733 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
|
||||
13:25:38.734 RENDER : Basic screen setup:
|
||||
13:25:38.734 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
|
||||
13:25:38.734 RENDER : MSAA : none
|
||||
13:25:38.744 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
|
||||
13:25:38.744 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
|
||||
13:25:38.744 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
|
||||
13:25:38.744 RENDER : * core clocks 2720 MHz, memory 1124 MHz
|
||||
13:25:38.744 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
|
||||
13:25:38.744 RENDER : AMD AGS correctly initialized
|
||||
13:25:38.745 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
|
||||
13:25:38.745 RENDER : Detected output devices:
|
||||
13:25:38.745 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
|
||||
13:25:38.745 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
|
||||
13:25:38.745 RENDER : Concurrent frames limit 2
|
||||
13:25:38.814 RENDER : DX12 device successfully created by AMD AGS library
|
||||
13:25:38.814 RENDER : * user markers not supported in this version AMD SW
|
||||
13:25:38.814 RENDER : Graphics device features
|
||||
13:25:38.814 RENDER : Needed:
|
||||
13:25:38.814 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
|
||||
13:25:38.814 RENDER : Optional:
|
||||
13:25:38.814 RENDER : * Allow tearing (VSYNC) : 1
|
||||
13:25:38.814 RENDER : * 16 bits : 1
|
||||
13:25:38.814 RENDER : * Resource heap tier : 3
|
||||
13:25:38.814 RENDER : * Persistent heaps (DRED) : 1
|
||||
13:25:38.814 RENDER : * DRED 1.2 is supported by compiler
|
||||
13:25:38.836 RENDER : Main RT format setup.
|
||||
13:25:38.836 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
|
||||
13:25:38.836 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
|
||||
13:25:38.838 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
|
||||
13:25:38.864 PROFILING : Settings changed took: 0.017000 ms
|
||||
13:25:41.416 AUDIO : Endpoint: Speakers (PulseAudio Output)
|
||||
13:25:41.416 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
|
||||
13:25:41.416 AUDIO : Audio client:
|
||||
13:25:41.416 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
|
||||
13:25:41.419 RENDER : RENDER : Reload shaders
|
||||
13:25:41.420 RENDER : Enfusion shader version 13
|
||||
13:25:41.420 INIT : INIT : ShaderListReload
|
||||
13:25:41.420 PROFILING : ShaderListReload took: 0.000500 ms
|
||||
13:25:41.559 AUDIO : Endpoint: Speakers (PulseAudio Output)
|
||||
13:25:41.559 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
|
||||
13:25:41.559 AUDIO : Audio client:
|
||||
13:25:41.559 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
|
||||
13:25:41.650 RENDER : Loaded 3752 newer shader binaries
|
||||
13:25:41.650 PROFILING : Reload shaders took: 230.645000 ms
|
||||
13:25:41.650 ENGINE : Initializing inputs.
|
||||
13:25:41.662 NETWORK : Initializing networking.
|
||||
13:25:41.662 NETWORK : Using new GameRplScheduler.
|
||||
13:25:41.662 SCRIPT : SCRIPT : Initializing scripts
|
||||
13:25:41.662 SCRIPT : SCRIPT : ScriptProjectManager init
|
||||
13:25:43.389 PROFILING : ScriptProjectManager init took: 1727.321300 ms
|
||||
13:25:43.422 PROFILING : Initializing scripts took: 1760.889800 ms
|
||||
13:25:43.439 ENGINE : Enfusion engine successfully created.
|
||||
13:25:43.439 PROFILING : Workbench Init Engine took: 5712.398100 ms
|
||||
13:25:43.439 INIT : INIT : Workbench Create Game
|
||||
13:25:43.449 GUI : Using default language (en_us)
|
||||
13:25:43.449 GUI : Loading 'en_us' localization file.
|
||||
13:25:43.449 INIT : INIT : Loading StringTable
|
||||
13:25:43.476 PROFILING : Loading StringTable took: 26.975100 ms
|
||||
13:25:43.476 SCRIPT : SCRIPT : Compiling GameLib scripts
|
||||
13:25:43.531 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
|
||||
13:25:43.532 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
|
||||
13:25:43.532 PROFILING : Compiling GameLib scripts took: 56.119000 ms
|
||||
13:25:43.532 SCRIPT : SCRIPT : Compiling Game scripts
|
||||
13:25:44.443 INIT : Workbench Create Game
|
||||
13:25:44.443 SCRIPT : Compiling Game scripts
|
||||
13:25:44.443 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
|
||||
13:25:44.928 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
|
||||
13:25:44.928 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
|
||||
13:25:45.274 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,359": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.289 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
|
||||
13:25:45.335 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
|
||||
13:25:45.478 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
|
||||
13:25:45.478 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
|
||||
13:25:45.478 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
|
||||
13:25:45.478 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
|
||||
13:25:45.502 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.512 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
|
||||
13:25:45.577 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
|
||||
13:25:45.577 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
|
||||
13:25:45.579 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
|
||||
13:25:45.607 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.627 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.627 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.629 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
|
||||
13:25:45.629 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
|
||||
13:25:45.656 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
13:25:45.686 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
|
||||
13:25:46.089 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
|
||||
13:25:46.096 SCRIPT : Module: Game; loaded 6629x files; 13564x classes; used 41246K 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: 0fa7b171
|
||||
13:25:46.145 PROFILING : Compiling Game scripts took: 2612.167700 ms
|
||||
13:25:46.150 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
13:25:46.208 ENGINE : Game successfully created.
|
||||
13:25:46.210 PROFILING : Workbench Create Game took: 2770.404700 ms
|
||||
13:25:46.221 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails
|
||||
13:25:47.058 INIT : INIT : Workbench Reload Game
|
||||
13:25:47.060 ENGINE : Game destroyed.
|
||||
13:25:47.066 GUI : Using default language (en_us)
|
||||
13:25:47.066 GUI : Loading 'en_us' localization file.
|
||||
13:25:47.066 INIT : INIT : Loading StringTable
|
||||
13:25:47.076 PROFILING : Loading StringTable took: 9.855600 ms
|
||||
13:25:47.076 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
13:25:47.083 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
13:25:47.083 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
13:25:47.083 ENGINE : Game successfully created.
|
||||
13:25:47.084 ENGINE : Game successfully initialized.
|
||||
13:25:47.084 PROFILING : Workbench Reload Game took: 25.080500 ms
|
||||
13:25:47.756 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
|
||||
13:25:48.702 PROFILING : Entities load took: 945.644300 ms
|
||||
13:25:48.711 WORLD : WORLD : CreateEntities
|
||||
13:25:48.716 WORLD : WORLD : NotifyBeforeEntitiesCreated
|
||||
13:25:48.716 PROFILING : NotifyBeforeEntitiesCreated took: 0.003600 ms
|
||||
13:25:48.716 WORLD : WORLD : Wait for preloading data
|
||||
13:25:48.716 PROFILING : Wait for preloading data took: 0.002000 ms
|
||||
13:25:48.818 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
|
||||
13:25:48.818 PROFILING : PROFILING : Terrain load
|
||||
13:25:50.391 PROFILING : Terrain load took: 1572.026000 ms
|
||||
13:25:54.349 WORLD : CreateEntities
|
||||
13:25:54.349 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"
|
||||
13:25:54.349 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
13:25:54.350 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
13:26:04.326 WORLD : WORLD : NotifyBeforeEntitiesInitialized
|
||||
13:26:04.326 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005500 ms
|
||||
13:26:04.798 WORLD : WORLD : NotifyEntitiesInitialized
|
||||
13:26:04.798 TERRAIN : TERRAIN : Initializing road networks...
|
||||
13:26:04.801 PROFILING : Initializing road networks... took: 2.494100 ms
|
||||
13:26:04.801 PROFILING : NotifyEntitiesInitialized took: 2.837800 ms
|
||||
13:26:04.801 PROFILING : CreateEntities took: 16088.547600 ms
|
||||
13:26:05.038 PROFILING : * WorldEditor: LoadWorld: 17285.860500 ms
|
||||
13:26:06.512 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf)
|
||||
13:26:06.513 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf)
|
||||
13:26:06.514 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'...
|
||||
13:26:06.514 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping...
|
||||
13:26:06.606 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
|
||||
13:26:06.606 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
|
||||
13:26:06.606 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
|
||||
13:26:06.606 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
|
||||
13:26:06.606 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
|
||||
13:26:06.606 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
|
||||
13:26:06.607 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
|
||||
13:26:06.608 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
|
||||
13:26:06.609 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
|
||||
13:26:06.609 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
|
||||
13:26:06.609 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
|
||||
13:26:06.609 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
|
||||
13:26:06.609 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
|
||||
13:26:06.631 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
|
||||
13:26:06.656 BACKEND : Attempting online Game Config instead.
|
||||
13:26:09.743 INIT : INIT : Workbench Reload Game
|
||||
13:26:09.745 ENGINE : Game destroyed.
|
||||
13:26:09.751 GUI : Using default language (en_us)
|
||||
13:26:09.751 GUI : Loading 'en_us' localization file.
|
||||
13:26:09.751 INIT : INIT : Loading StringTable
|
||||
13:26:09.773 PROFILING : Loading StringTable took: 21.997800 ms
|
||||
13:26:09.774 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
13:26:09.782 SCRIPT : Unable to register a script command due keyword duplicity: ban
|
||||
13:26:09.782 SCRIPT : Unable to register a script command due keyword duplicity: kick
|
||||
13:26:09.782 ENGINE : Game successfully created.
|
||||
13:26:09.782 ENGINE : Game successfully initialized.
|
||||
13:26:09.782 PROFILING : Workbench Reload Game took: 39.569700 ms
|
||||
13:26:09.785 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
|
||||
13:26:09.833 PLATFORM : Save data from container 'settings' have been loaded
|
||||
13:26:09.922 PLATFORM : Save data from container 'sessions' have been loaded
|
||||
13:26:10.020 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'.
|
||||
13:26:10.029 WORLD : WORLD : Game::LoadEntities
|
||||
13:26:10.029 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf"
|
||||
13:26:10.030 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
|
||||
13:26:10.030 WORLD : WORLD : CreateEntities
|
||||
13:26:10.031 WORLD : WORLD : CreateEntities
|
||||
13:26:10.031 WORLD : WORLD : NotifyBeforeEntitiesCreated
|
||||
13:26:10.037 RESOURCES : Loaded mission headers from 10 addon(s)!
|
||||
13:26:10.037 PROFILING : NotifyBeforeEntitiesCreated took: 6.688400 ms
|
||||
13:26:10.037 WORLD : WORLD : Wait for preloading data
|
||||
13:26:10.037 PROFILING : Wait for preloading data took: 0.000700 ms
|
||||
13:26:14.619 WORLD : Game::LoadEntities
|
||||
13:26:14.619 WORLD : CreateEntities
|
||||
13:26:14.619 WORLD : CreateEntities
|
||||
13:26:14.619 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"
|
||||
13:26:14.619 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
13:26:14.619 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
13:26:16.208 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
|
||||
13:26:16.208 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.209 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>')
|
||||
13:26:16.209 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
|
||||
13:26:16.209 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.209 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>')
|
||||
13:26:16.209 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
|
||||
13:26:16.209 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.209 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>')
|
||||
13:26:16.224 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
|
||||
13:26:16.224 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.224 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>')
|
||||
13:26:16.224 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
|
||||
13:26:16.224 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.224 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>')
|
||||
13:26:16.224 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
|
||||
13:26:16.224 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.224 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>')
|
||||
13:26:16.231 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
|
||||
13:26:16.231 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.231 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>')
|
||||
13:26:16.231 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
|
||||
13:26:16.231 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.231 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>')
|
||||
13:26:16.231 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
|
||||
13:26:16.231 ENTITY : CreateComponent 'Hierarchy'
|
||||
13:26:16.231 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>')
|
||||
13:26:21.011 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
|
||||
13:26:21.011 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
13:26:21.011 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
13:26:21.011 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
13:26:21.011 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
13:26:21.011 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
13:26:21.011 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
|
||||
13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
|
||||
13:26:21.012 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
13:26:21.012 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
13:26:21.012 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
13:26:21.012 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
13:26:21.012 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
13:26:21.012 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
|
||||
13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
|
||||
13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
|
||||
13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
|
||||
13:26:21.138 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
13:26:21.138 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
13:26:21.138 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
13:26:21.138 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
|
||||
13:26:21.832 WORLD : WORLD : NotifyBeforeEntitiesInitialized
|
||||
13:26:21.832 PROFILING : NotifyBeforeEntitiesInitialized took: 0.043200 ms
|
||||
13:26:23.902 WORLD : InitEntities 'world'
|
||||
13:26:23.902 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
13:26:23.902 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
|
||||
13:26:23.938 WORLD : InitEntities 'world'
|
||||
13:26:23.938 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
13:26:23.938 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
|
||||
13:26:23.939 WORLD : WORLD : NotifyEntitiesInitialized
|
||||
13:26:23.939 TERRAIN : TERRAIN : Initializing road networks...
|
||||
13:26:23.944 PROFILING : Initializing road networks... took: 5.242900 ms
|
||||
13:26:23.944 DEFAULT : DEFAULT : WorldVolumesCollection
|
||||
13:26:24.002 PROFILING : WorldVolumesCollection took: 57.438100 ms
|
||||
13:26:24.002 INIT : INIT : SoundWorldInit
|
||||
13:26:24.018 PROFILING : SoundWorldInit took: 16.046800 ms
|
||||
13:26:24.018 PROFILING : NotifyEntitiesInitialized took: 78.936200 ms
|
||||
13:26:24.018 PROFILING : CreateEntities took: 13988.055000 ms
|
||||
13:26:24.018 PROFILING : CreateEntities took: 13988.214800 ms
|
||||
13:26:24.019 WORLD : WORLD : Wait for preloading data around camera
|
||||
13:26:24.019 PROFILING : Wait for preloading data around camera took: 0.001100 ms
|
||||
13:26:24.019 WORLD : WORLD : EOnActivate
|
||||
13:26:24.049 PROFILING : EOnActivate took: 30.764300 ms
|
||||
13:26:24.051 PROFILING : Game::LoadEntities took: 14022.231300 ms
|
||||
13:26:24.362 DEFAULT : Entered offline game state.
|
||||
13:26:28.657 SCRIPT : Map load time: 2354ms
|
||||
13:26:28.658 NETWORK : Player connected: connectionID=2147483646
|
||||
13:26:28.658 NETWORK : ### Connecting player: connectionID=2147483646, Name=
|
||||
13:26:28.659 NETWORK : ### Creating player: PlayerId=1, Name=jakub
|
||||
13:26:28.663 RESOURCES : GetResourceObject @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
13:26:28.663 WORLD : Entity prefab load @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
13:26:28.663 RESOURCES : GetResourceObject @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
13:26:28.663 WORLD : Entity prefab load @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
|
||||
13:26:28.663 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)
|
||||
13:26:28.664 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)
|
||||
13:26:28.668 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
13:26:28.668 ENTITY : Create entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
|
||||
13:26:28.668 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
13:26:28.668 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!
|
||||
13:26:28.669 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!
|
||||
13:26:28.672 SCRIPT (W): Can't open config file ""
|
||||
13:26:28.680 WORLD : InitEntities 'world'
|
||||
13:26:28.680 ENTITY : Init entity @"ENTITY:4611686018427388385" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
|
||||
13:26:28.680 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
|
||||
13:26:28.680 SCRIPT (W): Slot_WeaponInfo Has no Content!
|
||||
13:26:28.680 SCRIPT (W): Slot_Chat Has no Content!
|
||||
13:26:28.680 SCRIPT (W): Slot_VON Has no Content!
|
||||
13:26:28.681 SCRIPT (W): Slot_AvailableActions Has no Content!
|
||||
13:26:28.681 SCRIPT (W): Slot_Vehicle Has no Content!
|
||||
13:26:28.681 SCRIPT (W): Slot_GameVersion Has no Content!
|
||||
13:26:28.681 SCRIPT (W): Slot_Notifications Has no Content!
|
||||
13:26:28.681 SCRIPT (W): Slot_Hints Has no Content!
|
||||
13:26:28.699 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
13:26:28.700 ENTITY : Create entity @"ENTITY:4611686018427388388" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
|
||||
13:26:28.700 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
|
||||
13:26:28.700 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.
|
||||
13:26:28.701 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.
|
||||
13:26:28.702 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.
|
||||
13:26:28.706 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000
|
||||
13:26:28.706 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
|
||||
13:26:28.707 NETWORK : Players connecting: 0
|
||||
13:26:28.707 NETWORK : Players connected: 1 / 1
|
||||
13:26:28.737 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves
|
||||
13:26:28.739 PROFILING : Workbench startup took: 52103.547000 ms
|
||||
13:26:28.838 WORLD : Frame start
|
||||
13:26:28.838 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
|
||||
13:26:28.851 WORLD : UpdateEntities
|
||||
13:26:28.851 WORLD : Frame
|
||||
13:26:28.851 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
|
||||
13:26:29.035 WORLD : UpdateEntities
|
||||
13:26:29.035 WORLD : PostFrame
|
||||
13:26:29.036 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
|
||||
13:26:29.036 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
|
||||
13:26:29.097 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
13:26:29.097 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
|
||||
13:26:29.097 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
|
||||
13:26:29.098 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
|
||||
13:26:29.239 RENDER : RENDER : ObjectsHeightMap::Build
|
||||
13:26:29.239 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld
|
||||
13:26:29.393 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 153.116000 ms
|
||||
13:26:29.406 PROFILING : ObjectsHeightMap::Build took: 166.990500 ms
|
||||
13:26:30.544 SCRIPT : Co10 Escape Reintroduced factions: players=US enemy=USSR independent=FIA
|
||||
13:26:34.220 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-prison-1 position=<4852.24,53.3291,5818.93> heading=110.185 attempts=1636 fallback=0
|
||||
13:26:34.970 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-radio-1 position=<6290.61,87.1515,5695.49> heading=186.894 attempts=656 fallback=0
|
||||
13:26:35.479 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-1 position=<4799.47,51.3853,5286.88> heading=189.443 attempts=620 fallback=0
|
||||
13:26:35.725 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-2 position=<4770.16,27.8638,11119.9> heading=312.01 attempts=71 fallback=0
|
||||
13:26:35.727 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-3 position=<7274.8,122.982,5211.1> heading=197.98 attempts=71 fallback=0
|
||||
13:26:40.777 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-4 position=<4977.31,174.708,7043.19> heading=282.775 attempts=5598 fallback=0
|
||||
13:26:41.774 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-1 position=<3279.02,155.901,5956.04> heading=350.024 attempts=915 fallback=0
|
||||
13:26:42.283 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-outpost-1 position=<5235.28,26.52,9331.54> heading=190.696 attempts=699 fallback=0
|
||||
13:26:42.532 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-2 position=<5655.85,85.4575,5704.86> heading=312.56 attempts=147 fallback=0
|
||||
13:26:44.548 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-3 position=<4727.55,16.8849,10324.5> heading=274.524 attempts=2021 fallback=0
|
||||
13:26:46.319 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-2 position=<9123.58,2.05253,5394.31> heading=23.5994 attempts=1932 fallback=0
|
||||
13:26:49.100 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-3 position=<4618.5,84.7321,8556.9> heading=52.3295 attempts=2919 fallback=0
|
||||
13:27:00.193 SCRIPT : Co10 Escape Reintroduced [site skipped]: Field camp 4 (everon-camp-4): no safe placement after 12000 attempts and authored fallback rejected; omitted for this round; mission preparation continues
|
||||
13:27:03.236 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-5 position=<4980.44,2.17625,3881.76> heading=234.258 attempts=3167 fallback=0
|
||||
13:27:03.521 SCRIPT : Reintroduced [sites]: authored everon-prison-1 at <4852.24,53.837,5818.93>
|
||||
13:27:03.522 SCRIPT : Reintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
|
||||
13:27:03.576 SCRIPT : Reintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
|
||||
13:27:03.579 ENTITY : SpawnEntityPrefab @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
13:27:03.580 ENTITY : Create entity @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <6297.320801 87.318748 5692.662109> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
13:27:03.580 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
13:27:03.580 DEFAULT (W): BaseRadioComponent does not have any transceiver. (Entity: @"ENTITY:4611686018427388517" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <6297.320801 87.318748 5692.662109> @"{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.
|
||||
13:27:03.584 SCRIPT : Reintroduced [sites]: authored everon-radio-1 at <6290.61,87.35,5695.49>
|
||||
13:27:03.669 ENTITY : SpawnEntityPrefab @"{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"
|
||||
13:27:03.669 WORLD : InitEntities 'world'
|
||||
13:27:03.670 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"
|
||||
13:27:03.670 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")
|
||||
13:27:03.672 SCRIPT : Reintroduced [sites]: authored everon-extraction-1 at <4800.95,27.8202,11487.4>
|
||||
13:27:03.683 SCRIPT : Reintroduced [sites]: authored everon-medical-1 at <3279.02,156.24,5956.04>
|
||||
13:27:03.702 SCRIPT : Reintroduced [sites]: authored everon-outpost-1 at <5235.28,26.705,9331.54>
|
||||
13:27:03.702 SCRIPT : Reintroduced [sites]: authored everon-mortar-1 at <4799.47,51.6138,5286.88>
|
||||
13:27:03.702 SCRIPT : Reintroduced [sites]: authored everon-mortar-2 at <4770.16,27.9438,11119.9>
|
||||
13:27:03.703 SCRIPT : Reintroduced [sites]: authored everon-mortar-3 at <7274.8,123.148,5211.1>
|
||||
13:27:03.703 SCRIPT : Reintroduced [sites]: authored everon-mortar-4 at <4977.31,174.788,7043.19>
|
||||
13:27:03.709 SCRIPT : Reintroduced [sites]: authored everon-medical-2 at <5655.85,85.5865,5704.86>
|
||||
13:27:03.715 SCRIPT : Reintroduced [sites]: authored everon-medical-3 at <4727.55,17.1313,10324.5>
|
||||
13:27:03.726 SCRIPT : Reintroduced [sites]: authored everon-camp-2 at <9123.58,2.225,5394.31>
|
||||
13:27:03.737 SCRIPT : Reintroduced [sites]: authored everon-camp-3 at <4618.5,85.0203,8556.9>
|
||||
13:27:03.748 SCRIPT : Reintroduced [sites]: authored everon-camp-5 at <4980.44,2.2875,3881.76>
|
||||
13:27:03.748 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4800.95,27.8202,11487.4> up=1
|
||||
13:27:03.749 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
|
||||
13:27:03.749 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
13:27:03.749 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4800.95,28.1168,11489.7>
|
||||
13:27:03.749 SCRIPT : ERR GEAR TERRAIN: bottom=<4800.95,27.8168,11489.7> terrainY=27.7202 tireTerrainGap=0.0965805
|
||||
13:27:03.749 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
|
||||
13:27:03.750 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.68,28.585,11485.4>
|
||||
13:27:03.750 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.68,28.135,11485.4> terrainY=27.8121 tireTerrainGap=0.322891
|
||||
13:27:03.750 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
|
||||
13:27:03.750 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.23,28.585,11485.4>
|
||||
13:27:03.750 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.23,28.135,11485.4> terrainY=27.649 tireTerrainGap=0.485987
|
||||
13:27:03.750 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
|
||||
13:27:03.751 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.751 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.751 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.751 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.751 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.752 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.752 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.752 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.752 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.752 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.753 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:03.754 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
13:27:04.541 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:04.542 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:04.542 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:04.542 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.061 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4801.01,27.543,11487.4> up=0.997759
|
||||
13:27:05.062 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.521445 angularSpeed=0.0926988
|
||||
13:27:05.062 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
13:27:05.062 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.07,28.0082,11489.6>
|
||||
13:27:05.062 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.07,27.7082,11489.6> terrainY=27.7164 tireTerrainGap=-0.00820732
|
||||
13:27:05.062 SCRIPT : ERR GEAR SUPPORT: center=<4801.07,28.0082,11489.6> radius=0.3 bottom=<4801.07,27.7082,11489.6> fraction=0.417251 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00820541
|
||||
13:27:05.062 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.71,28.2531,11485.4>
|
||||
13:27:05.063 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.71,27.8031,11485.4> terrainY=27.8106 tireTerrainGap=-0.00754547
|
||||
13:27:05.063 SCRIPT : ERR GEAR SUPPORT: center=<4798.71,28.2531,11485.4> radius=0.45 bottom=<4798.71,27.8031,11485.4> fraction=0.42015 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00756645
|
||||
13:27:05.063 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.26,28.0926,11485.3>
|
||||
13:27:05.063 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.26,27.6426,11485.3> terrainY=27.6482 tireTerrainGap=-0.00562096
|
||||
13:27:05.063 SCRIPT : ERR GEAR SUPPORT: center=<4803.26,28.0926,11485.3> radius=0.45 bottom=<4803.26,27.6426,11485.3> fraction=0.428978 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00562477
|
||||
13:27:05.063 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:05.064 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.064 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.064 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.064 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.569 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:05.569 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:05.570 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:05.570 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:06.066 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:06.067 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:06.067 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:06.067 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:06.299 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.04,27.5886,11487.4> up=0.995943
|
||||
13:27:06.300 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.151106 angularSpeed=0.0603883
|
||||
13:27:06.300 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:06.300 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.11,28.0155,11489.6>
|
||||
13:27:06.300 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.11,27.7155,11489.6> terrainY=27.7154 tireTerrainGap=9.91821e-05
|
||||
13:27:06.300 SCRIPT : ERR GEAR SUPPORT: center=<4801.11,28.0155,11489.6> radius=0.3 bottom=<4801.11,27.7155,11489.6> fraction=0.455 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=9.91821e-05
|
||||
13:27:06.300 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.74,28.2547,11485.4>
|
||||
13:27:06.300 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.74,27.8047,11485.4> terrainY=27.8092 tireTerrainGap=-0.0044384
|
||||
13:27:06.301 SCRIPT : ERR GEAR SUPPORT: center=<4798.74,28.2547,11485.4> radius=0.45 bottom=<4798.74,27.8047,11485.4> fraction=0.434384 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00443459
|
||||
13:27:06.301 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.29,28.092,11485.3>
|
||||
13:27:06.301 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.29,27.642,11485.3> terrainY=27.6472 tireTerrainGap=-0.0052681
|
||||
13:27:06.301 SCRIPT : ERR GEAR SUPPORT: center=<4803.29,28.092,11485.3> radius=0.45 bottom=<4803.29,27.642,11485.3> fraction=0.430574 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00527382
|
||||
13:27:06.301 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:06.573 SCRIPT : Reintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
|
||||
13:27:06.574 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:06.574 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:06.574 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:06.574 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:07.073 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:07.073 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:07.073 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
13:27:07.073 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:07.328 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.09,27.589,11487.4> up=0.995906
|
||||
13:27:07.328 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0535425 angularSpeed=0.0437647
|
||||
13:27:07.328 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:07.328 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.17,28.016,11489.6>
|
||||
13:27:07.329 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.17,27.716,11489.6> terrainY=27.7134 tireTerrainGap=0.00260544
|
||||
13:27:07.329 SCRIPT : ERR GEAR SUPPORT: center=<4801.17,28.016,11489.6> radius=0.3 bottom=<4801.17,27.716,11489.6> fraction=0.46638 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00260353
|
||||
13:27:07.329 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.77,28.2554,11485.4>
|
||||
13:27:07.329 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.77,27.8054,11485.4> terrainY=27.8075 tireTerrainGap=-0.00212479
|
||||
13:27:07.329 SCRIPT : ERR GEAR SUPPORT: center=<4798.77,28.2554,11485.4> radius=0.45 bottom=<4798.77,27.8054,11485.4> fraction=0.444799 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00214386
|
||||
13:27:07.330 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.32,28.0939,11485.3>
|
||||
13:27:07.330 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.32,27.6439,11485.3> terrainY=27.6461 tireTerrainGap=-0.0022583
|
||||
13:27:07.330 SCRIPT : ERR GEAR SUPPORT: center=<4803.32,28.0939,11485.3> radius=0.45 bottom=<4803.32,27.6439,11485.3> fraction=0.444313 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00225067
|
||||
13:27:07.330 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:07.577 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:07.578 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:07.578 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:07.578 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:08.086 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:08.086 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:08.087 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:08.087 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:08.341 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5903,11487.4> up=0.996035
|
||||
13:27:08.342 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
13:27:08.342 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:08.342 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0146,11489.6>
|
||||
13:27:08.342 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7146,11489.6> terrainY=27.7128 tireTerrainGap=0.001894
|
||||
13:27:08.342 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0146,11489.6> radius=0.3 bottom=<4801.19,27.7146,11489.6> fraction=0.463156 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.001894
|
||||
13:27:08.342 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2545,11485.4>
|
||||
13:27:08.343 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8045,11485.4> terrainY=27.8069 tireTerrainGap=-0.00236511
|
||||
13:27:08.343 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2545,11485.4> radius=0.45 bottom=<4798.79,27.8045,11485.4> fraction=0.443758 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00237274
|
||||
13:27:08.343 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.34,28.0932,11485.3>
|
||||
13:27:08.343 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.34,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00258827
|
||||
13:27:08.343 SCRIPT : ERR GEAR SUPPORT: center=<4803.34,28.0932,11485.3> radius=0.45 bottom=<4803.34,27.6432,11485.3> fraction=0.442787 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00258636
|
||||
13:27:08.343 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:08.596 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:08.597 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:08.597 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:08.597 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:09.105 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:09.106 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
13:27:09.106 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
13:27:09.107 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:09.358 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5903,11487.4> up=0.996035
|
||||
13:27:09.358 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
13:27:09.358 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:09.358 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0146,11489.6>
|
||||
13:27:09.358 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7146,11489.6> terrainY=27.7128 tireTerrainGap=0.001894
|
||||
13:27:09.359 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0146,11489.6> radius=0.3 bottom=<4801.19,27.7146,11489.6> fraction=0.463156 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.001894
|
||||
13:27:09.359 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2545,11485.4>
|
||||
13:27:09.359 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8045,11485.4> terrainY=27.8069 tireTerrainGap=-0.00236511
|
||||
13:27:09.359 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2545,11485.4> radius=0.45 bottom=<4798.79,27.8045,11485.4> fraction=0.443758 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00237274
|
||||
13:27:09.359 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.34,28.0932,11485.3>
|
||||
13:27:09.360 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.34,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00258827
|
||||
13:27:09.360 SCRIPT : ERR GEAR SUPPORT: center=<4803.34,28.0932,11485.3> radius=0.45 bottom=<4803.34,27.6432,11485.3> fraction=0.442787 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00258636
|
||||
13:27:09.360 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:09.610 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:09.611 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:09.611 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
13:27:09.612 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:10.110 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
13:27:10.111 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:10.111 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:10.111 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:10.477 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5903,11487.4> up=0.996035
|
||||
13:27:10.477 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
13:27:10.477 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:10.477 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0146,11489.6>
|
||||
13:27:10.477 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7146,11489.6> terrainY=27.7128 tireTerrainGap=0.001894
|
||||
13:27:10.478 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0146,11489.6> radius=0.3 bottom=<4801.19,27.7146,11489.6> fraction=0.463156 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.001894
|
||||
13:27:10.478 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2545,11485.4>
|
||||
13:27:10.478 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8045,11485.4> terrainY=27.8069 tireTerrainGap=-0.00236511
|
||||
13:27:10.478 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2545,11485.4> radius=0.45 bottom=<4798.79,27.8045,11485.4> fraction=0.443758 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00237274
|
||||
13:27:10.478 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.34,28.0932,11485.3>
|
||||
13:27:10.478 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.34,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00258827
|
||||
13:27:10.479 SCRIPT : ERR GEAR SUPPORT: center=<4803.34,28.0932,11485.3> radius=0.45 bottom=<4803.34,27.6432,11485.3> fraction=0.442787 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00258636
|
||||
13:27:10.479 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:10.479 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
13:27:10.480 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:10.480 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
13:27:10.480 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:10.977 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
13:27:10.977 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
13:27:10.977 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
13:27:10.977 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:11.486 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5903,11487.4> up=0.996035
|
||||
13:27:11.486 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
13:27:11.486 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
13:27:11.486 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0146,11489.6>
|
||||
13:27:11.486 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7146,11489.6> terrainY=27.7128 tireTerrainGap=0.001894
|
||||
13:27:11.487 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0146,11489.6> radius=0.3 bottom=<4801.19,27.7146,11489.6> fraction=0.463156 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.001894
|
||||
13:27:11.487 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2545,11485.4>
|
||||
13:27:11.487 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8045,11485.4> terrainY=27.8069 tireTerrainGap=-0.00236511
|
||||
13:27:11.487 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2545,11485.4> radius=0.45 bottom=<4798.79,27.8045,11485.4> fraction=0.443758 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00237274
|
||||
13:27:11.487 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.34,28.0932,11485.3>
|
||||
13:27:11.487 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.34,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.00258827
|
||||
13:27:11.488 SCRIPT : ERR GEAR SUPPORT: center=<4803.34,28.0932,11485.3> radius=0.45 bottom=<4803.34,27.6432,11485.3> fraction=0.442787 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00258636
|
||||
13:27:11.488 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
13:27:11.488 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:11.489 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:11.489 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:11.489 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
13:27:11.992 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
13:27:11.993 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
13:27:11.993 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
13:27:11.993 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
13:27:11.994 SCRIPT : Reintroduced [sites]: transport parking=<6150,202.725,7038> radius=4 terrainRange=0.625 obstructed=0 clear=1
|
||||
13:27:12.058 SCRIPT : Reintroduced [sites]: 15 sites and 220 physical stock items ready
|
||||
13:27:12.505 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=1 position=<9577.76,257.16,3378.23> heading=135
|
||||
13:27:12.509 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=2 position=<9406.17,182.27,4350.52> heading=45
|
||||
13:27:12.755 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=3 position=<10456,259.631,2599.69> heading=180
|
||||
13:27:14.030 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=4 position=<7123.15,87.3532,7819.38> heading=135
|
||||
13:27:14.537 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=5 position=<6013.1,141.21,7945.17> heading=45
|
||||
13:27:14.538 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=6 position=<8081.93,244.769,2326.24> heading=0
|
||||
13:27:14.539 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=7 position=<6367.61,83.0352,4771.24> heading=180
|
||||
13:27:14.789 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=8 position=<2790.05,63.7163,4334.9> heading=135
|
||||
13:27:14.791 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=9 position=<7675.83,113.527,5256.02> heading=0
|
||||
13:27:16.060 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=10 position=<5528.82,85.2293,4357.95> heading=90
|
||||
13:27:27.227 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-1 faction=USSR group=<0x00000001E7872CA0> SCR_AIGroup position=<9577.76,257.079,3378.23> living=1
|
||||
13:27:27.228 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9577.76,257.16,3378.23> backpack magazines=40
|
||||
13:27:27.228 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-2 faction=USSR group=<0x00000001E7873520> SCR_AIGroup position=<9406.17,182.394,4350.52> living=1
|
||||
13:27:27.229 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9406.17,182.27,4350.52> backpack magazines=40
|
||||
13:27:27.735 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-3 faction=USSR group=<0x00000001E7873DA0> SCR_AIGroup position=<10456,259.531,2599.69> living=1
|
||||
13:27:27.735 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10456,259.631,2599.69> backpack magazines=40
|
||||
13:27:27.736 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-4 faction=USSR group=<0x00000001E7874620> SCR_AIGroup position=<7123.15,87.3081,7819.38> living=1
|
||||
13:27:27.736 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<7123.15,87.3532,7819.38> backpack magazines=40
|
||||
13:27:28.240 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-5 faction=USSR group=<0x00000000298CD8B0> SCR_AIGroup position=<6013.1,141.204,7945.17> living=1
|
||||
13:27:28.240 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<6013.1,141.21,7945.17> backpack magazines=40
|
||||
13:27:28.241 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-6 faction=USSR group=<0x00000000298CE130> SCR_AIGroup position=<8081.93,244.678,2326.24> living=1
|
||||
13:27:28.241 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8081.93,244.769,2326.24> backpack magazines=40
|
||||
13:27:28.750 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-7 faction=USSR group=<0x00000001EA0D4D10> SCR_AIGroup position=<6367.61,82.9352,4771.24> living=1
|
||||
13:27:28.750 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<6367.61,83.0352,4771.24> backpack magazines=40
|
||||
13:27:28.751 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-8 faction=USSR group=<0x00000001EA0D5590> SCR_AIGroup position=<2790.05,63.6163,4334.9> living=1
|
||||
13:27:28.751 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<2790.05,63.7163,4334.9> backpack magazines=40
|
||||
13:27:29.255 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-9 faction=USSR group=<0x00000001EA0D9990> SCR_AIGroup position=<7675.83,113.614,5256.02> living=1
|
||||
13:27:29.255 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<7675.83,113.527,5256.02> backpack magazines=40
|
||||
13:27:29.256 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-10 faction=USSR group=<0x00000001EA0DA210> SCR_AIGroup position=<5528.82,85.375,4357.95> living=1
|
||||
13:27:29.256 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5528.82,85.2293,4357.95> backpack magazines=40
|
||||
13:27:29.256 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-1 location=<4799.47,51.6138,5286.88> authored=<4799.47,51.3853,5286.88>
|
||||
13:27:29.271 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-2 location=<4770.16,27.9438,11119.9> authored=<4770.16,27.8638,11119.9>
|
||||
13:27:29.274 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-3 location=<7274.8,123.148,5211.1> authored=<7274.8,122.982,5211.1>
|
||||
13:27:29.278 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-4 location=<4977.31,174.788,7043.19> authored=<4977.31,174.708,7043.19>
|
||||
13:27:29.286 SCRIPT : Reintroduced [environment]: date=authored weather=authored
|
||||
13:27:29.287 SCRIPT : Reintroduced [time]: started at 14:00 with 1x progression
|
||||
13:27:29.288 SCRIPT : Reintroduced [mission]: phase 0 -> 1
|
||||
13:27:29.288 SCRIPT : Reintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<4852.24,53.3291,5818.93>
|
||||
13:27:29.288 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=<4846.89,53.3291,5821.6>
|
||||
13:27:29.288 SCRIPT : Reintroduced [prison]: one intact successor lock in owned prison
|
||||
13:27:30.116 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
|
||||
13:27:30.148 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
13:27:30.149 SCRIPT : Reintroduced [spawn scene]: client token=1 waiting for 67 replicated objects and 28 inventory items
|
||||
13:27:30.201 SCRIPT : Reintroduced [spawn scene]: client token=1 final=0 all 67 objects and 28 storage items ready
|
||||
13:27:30.202 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=0 storage acknowledged after 107.617ms
|
||||
13:27:30.216 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 scene ready after 125.191ms; starting asset preload
|
||||
13:27:30.241 SCRIPT : ERR SMOKE PASS: native spawn preload retains preparation text after server sites are ready
|
||||
13:27:31.216 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 preload finished; verifying held storage
|
||||
13:27:31.260 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-prison-1 faction=USSR group=<0x0000000069E1DA60> SCR_AIGroup position=<4840.16,52.8679,5786.08> living=5
|
||||
13:27:31.261 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-supply-1 faction=FIA group=<0x00000001D48D59D0> SCR_AIGroup position=<6168,202.217,7050> living=5
|
||||
13:27:31.262 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-radio-1 faction=USSR group=<0x00000001D48D6250> SCR_AIGroup position=<6260.83,86.9375,5699.09> living=6
|
||||
13:27:31.262 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-extraction-1 faction=USSR group=<0x00000001D3F8E2E0> SCR_AIGroup position=<4830.95,28.2904,11487.4> living=6
|
||||
13:27:31.263 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1 faction=USSR group=<0x00000001D3F8FC60> SCR_AIGroup position=<3290.84,156.402,5958.12> living=4
|
||||
13:27:31.263 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1-responders faction=USSR group=<0x00000001D3F904E0> SCR_AIGroup position=<3267.2,156.299,5953.96> living=2
|
||||
13:27:31.264 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1 faction=USSR group=<0x00000001D3F922A0> SCR_AIGroup position=<5223.49,26.6902,9333.76> living=4
|
||||
13:27:31.265 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1-responders faction=USSR group=<0x00000001BD53F920> SCR_AIGroup position=<5247.07,26.5985,9329.31> living=2
|
||||
13:27:31.266 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2 faction=USSR group=<0x00000001BD5401A0> SCR_AIGroup position=<5663.97,85.6175,5713.7> living=4
|
||||
13:27:31.267 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2-responders faction=USSR group=<0x00000001BD540A20> SCR_AIGroup position=<5647.73,85.6032,5696.02> living=2
|
||||
13:27:31.268 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3 faction=USSR group=<0x00000001BD541F60> SCR_AIGroup position=<4728.5,17.1319,10336.5> living=4
|
||||
13:27:31.268 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3-responders faction=USSR group=<0x00000001BD5427E0> SCR_AIGroup position=<4726.61,17.0173,10312.6> living=2
|
||||
13:27:31.269 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2 faction=USSR group=<0x00000001BD5438E0> SCR_AIGroup position=<9134.58,2.18597,5389.5> living=4
|
||||
13:27:31.269 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2-responders faction=USSR group=<0x00000001BD544160> SCR_AIGroup position=<9112.58,2.33612,5399.11> living=2
|
||||
13:27:31.270 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3 faction=USSR group=<0x00000001BD545260> SCR_AIGroup position=<4625.84,84.8927,8547.41> living=4
|
||||
13:27:31.271 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3-responders faction=USSR group=<0x00000001BD545AE0> SCR_AIGroup position=<4611.17,85.0658,8566.4> living=2
|
||||
13:27:31.271 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5 faction=USSR group=<0x00000001D5D7C5E0> SCR_AIGroup position=<4973.43,2.3374,3891.5> living=4
|
||||
13:27:31.272 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5-responders faction=USSR group=<0x00000001D5D7CE60> SCR_AIGroup position=<4987.45,2.18597,3872.02> living=2
|
||||
13:27:32.408 SCRIPT : Reintroduced [spawn scene]: client token=1 final=1 all 67 objects and 28 storage items ready
|
||||
13:27:32.408 SCRIPT : Reintroduced [spawn scene]: player=1 token=1 final=1 storage acknowledged after 2318.19ms
|
||||
13:27:32.421 SCRIPT : Reintroduced [spawn]: player 1 at <4851.35,53.7634,5820.85>
|
||||
13:27:32.421 SCRIPT : Reintroduced [spawn scene]: player=1 retaining 67 objects until leaving the spawn area
|
||||
13:27:32.776 SCRIPT : ERR SMOKE PASS: prisoner admitted only after enabled native spawn preload finishes
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: new identity may enter prison
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
|
||||
13:27:32.777 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from enabled catalog
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
|
||||
13:27:32.778 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
|
||||
13:27:32.779 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
|
||||
13:27:32.779 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
|
||||
13:27:32.779 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
|
||||
13:27:32.779 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
|
||||
13:27:32.782 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
|
||||
13:27:32.782 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
|
||||
13:27:32.783 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
|
||||
13:27:32.784 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
|
||||
13:27:32.789 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
|
||||
13:27:32.790 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
|
||||
13:27:32.792 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
|
||||
13:27:32.792 SCRIPT : ERR SMOKE PASS: mounted observer has native damage component
|
||||
13:27:32.793 SCRIPT : Reintroduced [mission]: phase 1 -> 2
|
||||
13:27:32.795 SCRIPT : ERR SMOKE PASS: mounted ammunition fixture opens prison for normal production HQ ticks
|
||||
13:27:33.299 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=179568
|
||||
13:27:33.299 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=0/120; ; body budget: 74/135 committed; each convoy requires 25
|
||||
13:27:37.387 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-1 faction=USSR group=<0x00000001F146C520> SCR_AIGroup position=<5293.02,81.084,6404.26> living=3
|
||||
13:27:39.364 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-2 faction=USSR group=<0x00000001F22E0DA0> SCR_AIGroup position=<5492.84,86.6752,5317.17> living=3
|
||||
13:27:39.531 SCRIPT : Reintroduced [SPAWN GROUP]: source=town-0 faction=USSR group=<0x00000001F146B860> SCR_AIGroup position=<5520.62,95.559,6074.05> living=6
|
||||
13:27:41.580 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-3 faction=USSR group=<0x00000001F36A0B10> SCR_AIGroup position=<4048.62,88.3262,5721.78> living=3
|
||||
13:27:41.583 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-1 faction=USSR group=<0x00000001EB00C360> SCR_AIGroup position=<4799.47,51.6764,5290.88> living=4
|
||||
13:27:41.584 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-2 faction=USSR group=<0x00000001EB00D8A0> SCR_AIGroup position=<4770.16,27.8978,11123.9> living=4
|
||||
13:27:41.585 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-3 faction=USSR group=<0x00000001EB0CB880> SCR_AIGroup position=<7274.8,123.198,5215.1> living=4
|
||||
13:27:41.586 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-4 faction=USSR group=<0x00000001EB0CCDC0> SCR_AIGroup position=<4977.31,174.694,7047.19> living=4
|
||||
13:27:42.652 SCRIPT : Reintroduced [SPAWN GROUP]: source=town-1 faction=USSR group=<0x00000001F22DE320> SCR_AIGroup position=<5246.26,70.5752,5214.82> living=8
|
||||
13:27:44.309 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=169451
|
||||
13:27:44.310 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=0/120; ; body budget: 113/135 committed; each convoy requires 25
|
||||
13:27:54.989 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=159037
|
||||
13:27:54.989 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=0/120; ; body budget: 113/135 committed; each convoy requires 25
|
||||
13:28:05.104 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=148950
|
||||
13:28:05.105 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=1/120; insufficient shared body budget for another original convoy; body budget: 113/135 committed; each convoy requires 25
|
||||
13:28:07.678 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>
|
||||
13:28:15.231 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=138873
|
||||
13:28:15.231 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=2/120; insufficient shared body budget for another original convoy; body budget: 113/135 committed; each convoy requires 25
|
||||
13:28:18.748 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport search finished; airports=1
|
||||
13:28:18.749 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport=0 centre=<4788.55,26.6863,11528.9> runway/tower samples=438
|
||||
13:28:25.382 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=128724
|
||||
13:28:25.382 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=4/120; insufficient shared body budget for another original convoy; body budget: 113/135 committed; each convoy requires 25
|
||||
13:28:34.994 ENTITY : SpawnEntityPrefab @"{C31F210ABE078192}Prefabs/ERR/ReconHelicopter.et"
|
||||
13:28:34.994 WORLD : InitEntities 'world'
|
||||
13:28:34.995 ENTITY : Init entity @"ENTITY:4611686018427396967" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4827.390625 29.391886 11311.491211> @"{C31F210ABE078192}Prefabs/ERR/ReconHelicopter.et"
|
||||
13:28:34.995 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:4611686018427396967" ('Vehicle','Assets/Vehicles/Helicopters/Mi8/Mi8MT_base.xob') at <4827.390625 29.391886 11311.491211> @"{C31F210ABE078192}Prefabs/ERR/ReconHelicopter.et")
|
||||
13:28:35.518 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=118651
|
||||
13:28:35.519 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=6/120; insufficient shared body budget for another original convoy; body budget: 113/135 committed; each convoy requires 25
|
||||
13:28:36.868 SCRIPT : Reintroduced [SPAWN GROUP]: source=air-recon-10001 faction=USSR group=<0x00000001FB421B50> SCR_AIGroup position=<4847.39,30.3543,11311.5> living=4
|
||||
13:28:45.682 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=108535
|
||||
13:28:45.682 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=8/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:28:55.809 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=98409.1
|
||||
13:28:55.810 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=10/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:05.963 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=88255.5
|
||||
13:29:05.964 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=12/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:16.100 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=78118.5
|
||||
13:29:16.101 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=14/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:26.244 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=67974.2
|
||||
13:29:26.244 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=16/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:36.383 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=57836.1
|
||||
13:29:36.383 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=18/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:46.527 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=47692.4
|
||||
13:29:46.528 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=20/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:29:56.636 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=37584.1
|
||||
13:29:56.636 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=22/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:30:06.811 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=27407.5
|
||||
13:30:06.812 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=24/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:30:16.967 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=17253.6
|
||||
13:30:16.967 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=26/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:30:27.131 SCRIPT : ERR MOUNTED WAIT: fleet=0 ready=0 queued=0 remaining=7090
|
||||
13:30:27.131 SCRIPT : ERR MOUNTED PRODUCTION: This round: 0/3 convoy slots; automatic=1, startup attempts=28/120; insufficient shared body budget for another original convoy; body budget: 117/135 committed; each convoy requires 25
|
||||
13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline
|
||||
13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof
|
||||
+426
@@ -0,0 +1,426 @@
|
||||
{
|
||||
"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": "a66c30039c7141e5a0f22af21aa522728fe4aa5cde821158aea3b716d11457a1",
|
||||
"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": "3b96a99832ed40002598a186dd8de1d21410c2e690df37a6319fdbeeeb4eeab0",
|
||||
"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": "89d92f138a201ad7e752e027ba3930a2e0bf647d7b3a2c576346c1467f8bea3a",
|
||||
"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": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"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": "dd350bdda1bdf427ab8cefab623fe60cce5332b062d1a29686fe52f73e9e83f1",
|
||||
"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": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9",
|
||||
"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_ItemPreferences.c": "1c4bc25a6ce9b5ee10f82592f955b0019d13ddb4084a783fadb98d267bd0f4fc",
|
||||
"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": "e811e985048e07365569acde6b5f045d57e9bbf13927f85b74e6e347fd2ef571",
|
||||
"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": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
|
||||
"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_NativeObjectiveMapProbe.c": "2d07b895cb74af58454605fb1c536a566733e3001a9375dd0677d5f274bf2a46",
|
||||
"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_ObjectiveMapPresentation.c": "f189f8987244e10df61ac577bbbc952ed5c4e6c431a8e3cd192a10fe2e8c3bec",
|
||||
"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": "682aa5549470c69fc72d261fbfcf9f7a04a41a66e0101b269ccc00bc282ad05d",
|
||||
"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": "e49bab76a015ab545088af7e5eaa3cc45811907db4e5b1c5fa8c18afef34b62f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"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_ServerItemCatalog.c": "e306b9d179b97d0478f821be3ca606c71908a21a4f87085b37a5fd18c4e3575d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "c0c3d9d1cf4615f38c793f1250315bbdb9349f33afa0841851da89433a303c3e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2",
|
||||
"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": "15a28876954bbbe0e80d5b5b19e7336f154023cd05b67d65dd709ae7fd9ac712",
|
||||
"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_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "ec25e5c3a5b97527f9cd70341c10d69d7124048089d26883ac2f8c9b3fd2815d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "63ad027dac5bafb9e93805c361cbb27bf82af0567ea181a760ddedea98204c06",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "487f1d004aa4f7a5f58c12c37724b26fcd54fc62b4096d48f3a7436d9958274c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "458b84b3fb31c5a2bd1b7c3d65f25e0aeab91f5505ef0813231435c8a3c7d2b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "5b7661a5617b7124a10d3c18e087a4e2363a967eecc5c87ecc94573f2abc07f2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "d66a29a44e999cc3f2e56ba9c3c6bc936c027747312e08778ce301c1837f2112",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "66b1c4591b0ecc67cb08418a115bb02ed2b0168b7ae970f1e0a1ea335c59dc5b",
|
||||
"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/00_Core/ERR_WelcomeVoice.c": "53dcfd974e3d0e63bd4f95e6fa79e5b95804c3cb188ade681e89d0380942c82b",
|
||||
"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": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
|
||||
"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_AutomaticEquipment.c": "5832cbd3a43748e77f4e7f1b59361801c6d0445e0e15165e97d7a897b338709e",
|
||||
"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": "b59016d83cb9d40136b98b4e0067ea490bc553574fc53603593efd5522dbed20",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "c52d4a3cc0e71eb136487c42df2fcd5bd6da1c33d31dbd3d6429c237dcf4a8d9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "05d341a9a000bfa2084057bd67d476d6e35adca6c8518d74c27cd31b551bbb95",
|
||||
"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": "defb12924ea5dfe68f86c2bbb4b07362f016ffee810f720d13f01d81881b3cfc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "d873b5b689e918f8c907918d673304a184ac2e4a4cb6face527b37a67821ee9f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "e9bb5f2f3ec270074964fc8607e5a07c23f224308a4446837598d93e201d7775",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
|
||||
"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": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "cee3ae301ac2f211c290450b644a7942c9786a2a40d06f16e2a47efa96fd15b6",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "a37edcf66e43945f331db47fe81cb2e0e767a7aaf8115244dcf9e6295932be98",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25",
|
||||
"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": "79369d5cc30cf628f02df0023157ab423e40497325dfd6a73b218757f2b689d4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5684fcbee128a35107312452297f7ae2bec28aaa1b63f619fa649f36df8ea476",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "1bfc1079961eaecee0c1ebb434570aaeb359c008f9f309033b33582092557b35",
|
||||
"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": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "bc290ee8bed299d869598cbf41ec281653e0cc7f3c64c7214613df8a0fc83829",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b",
|
||||
"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": "35678ec625fb0a3c0871e2c373fcff49816440a97a165ed25c8798dd72ef059f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5b1578afbf6da736453cc9d3872979eddd1649746aa32d3b0c7a9e3cab50057e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "dc3acdffc8ca48f11b131f66d30d679ca68f3b3004344bdc78723bc9305915e0",
|
||||
"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": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
|
||||
"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": "4bdc920e87fa768b0ef0ed893c70ddbbcc9255d74163d7b657fd2ec7c4f14c32",
|
||||
"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": "8d197f7a1398625e5a19db3284b0bf72c6ee6e032843a3e4d9a4e58de42b6825",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
|
||||
"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_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "595fce681ec74e0d3ffe7a29c527c1551874469108ded479bed72a0fcf6c732e",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "701311de6a2c9fe8f0534a22056323c34072df26595dc70a7d4df45bc06e6c13",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
|
||||
"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": "e8d570f7bf3b8c4067ad81d47bca7f35514b2f8c8748f5fa5f775fbe27debeac",
|
||||
"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/ItemRow.layout": "8ac6fbc7fe0ce0ffc3185516197303bb892a4415948f75ae06f3bc289fefcac6",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
|
||||
"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/ObjectiveMapElement.layout": "b364752c44896d67dad07e466a04f4504a50813fb36ee7c34c9189ea9677b4e9",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "6e83a9c70282aff43b23a08b732739e7a241a31e8abf200498c90a745d3d60dd",
|
||||
"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,39 @@
|
||||
{
|
||||
"archive": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-bmp-ammo-accounting",
|
||||
"fixture_requested": "mounted-ammo",
|
||||
"fixture_markers_observed": true,
|
||||
"console_sha256": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"source_files": 424,
|
||||
"assertions": 32,
|
||||
"smoke_completions": 0,
|
||||
"script_or_runtime_failures": [
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"script_failure_count": 2,
|
||||
"retained_engine_errors": [
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.646 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)",
|
||||
"13:26:21.138 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)",
|
||||
"13:26:28.663 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)",
|
||||
"13:26:28.664 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)",
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"engine_error_count": 15,
|
||||
"runner_result": "test-failed",
|
||||
"runner_result_before_cleanup": "test-failed",
|
||||
"runner_error": null,
|
||||
"cleanup_confirmed": true,
|
||||
"bmp_complete_3_3_3_with_counts_observed": false,
|
||||
"bmp_observations": [],
|
||||
"scope": "Mounted-ammo fixture attempt; exact observed slot-4 snapshot only if matching sample and counts exist. Failures retained independently; no normal-route, BMP interception, ammunition transfer or combat qualification."
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"log": "docs/evidence/native-2026-10-03-bmp-ammo-accounting/console.log.txt",
|
||||
"smoke_completions": 0,
|
||||
"assertions_passed": 32,
|
||||
"script_or_runtime_failures": [
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"engine_errors": [
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.645 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"",
|
||||
"13:25:38.646 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)",
|
||||
"13:26:21.011 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)",
|
||||
"13:26:21.012 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)",
|
||||
"13:26:21.138 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)",
|
||||
"13:26:28.663 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)",
|
||||
"13:26:28.664 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)",
|
||||
"13:30:34.277 SCRIPT (E): ERR SMOKE FAIL: mounted ammo fixed 180-second proof deadline",
|
||||
"13:30:34.278 SCRIPT (E): ERR SMOKE FAIL: native production mounted ammunition radio proof"
|
||||
],
|
||||
"missing_end_screen": [],
|
||||
"scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"stopped_unix": 1791027035.674175,
|
||||
"console_sha256": "09d95e141f259f5803b2265b1d8b1139a0620f2f3648d2a5cdd9bad17900dc77",
|
||||
"end_source_sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"source_unchanged_after_run": true,
|
||||
"source_provenance": "launch_snapshot",
|
||||
"launch_id": "0d387992-7760-4a26-8ac8-2007ddc8b92d",
|
||||
"launch_source_manifest": "launch-source-sha256.json",
|
||||
"launch_source_metadata": "launch-source.json",
|
||||
"launch_source_sha256": "6259ae38b458679d0cc6385a18faa82ee0161a0c54f9be5d92f96dfb5a0e65b9",
|
||||
"external_addons_unchanged_after_run": true,
|
||||
"external_addon_count": 7,
|
||||
"external_addon_inputs": "external-addons-inputs.json",
|
||||
"started_unix": 1791026735.074219,
|
||||
"result": "test-failed",
|
||||
"result_before_cleanup": "test-failed",
|
||||
"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-bmp-ammo-native-1305/logs/logs_2026-10-03_13-25-36",
|
||||
"rounds_required": 1,
|
||||
"project": "chat",
|
||||
"display": "headless Gamescope 1280x720/30Hz",
|
||||
"dedicated_server": false,
|
||||
"audio": "silent sink and per-test-stream mute"
|
||||
}
|
||||
@@ -0,0 +1,426 @@
|
||||
{
|
||||
"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": "a66c30039c7141e5a0f22af21aa522728fe4aa5cde821158aea3b716d11457a1",
|
||||
"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": "3b96a99832ed40002598a186dd8de1d21410c2e690df37a6319fdbeeeb4eeab0",
|
||||
"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": "89d92f138a201ad7e752e027ba3930a2e0bf647d7b3a2c576346c1467f8bea3a",
|
||||
"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": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"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": "dd350bdda1bdf427ab8cefab623fe60cce5332b062d1a29686fe52f73e9e83f1",
|
||||
"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": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9",
|
||||
"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_ItemPreferences.c": "1c4bc25a6ce9b5ee10f82592f955b0019d13ddb4084a783fadb98d267bd0f4fc",
|
||||
"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": "e811e985048e07365569acde6b5f045d57e9bbf13927f85b74e6e347fd2ef571",
|
||||
"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": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
|
||||
"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_NativeObjectiveMapProbe.c": "2d07b895cb74af58454605fb1c536a566733e3001a9375dd0677d5f274bf2a46",
|
||||
"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_ObjectiveMapPresentation.c": "f189f8987244e10df61ac577bbbc952ed5c4e6c431a8e3cd192a10fe2e8c3bec",
|
||||
"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": "682aa5549470c69fc72d261fbfcf9f7a04a41a66e0101b269ccc00bc282ad05d",
|
||||
"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": "e49bab76a015ab545088af7e5eaa3cc45811907db4e5b1c5fa8c18afef34b62f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"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_ServerItemCatalog.c": "e306b9d179b97d0478f821be3ca606c71908a21a4f87085b37a5fd18c4e3575d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "c0c3d9d1cf4615f38c793f1250315bbdb9349f33afa0841851da89433a303c3e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2",
|
||||
"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": "15a28876954bbbe0e80d5b5b19e7336f154023cd05b67d65dd709ae7fd9ac712",
|
||||
"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_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "ec25e5c3a5b97527f9cd70341c10d69d7124048089d26883ac2f8c9b3fd2815d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "63ad027dac5bafb9e93805c361cbb27bf82af0567ea181a760ddedea98204c06",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "487f1d004aa4f7a5f58c12c37724b26fcd54fc62b4096d48f3a7436d9958274c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "458b84b3fb31c5a2bd1b7c3d65f25e0aeab91f5505ef0813231435c8a3c7d2b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "5b7661a5617b7124a10d3c18e087a4e2363a967eecc5c87ecc94573f2abc07f2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "d66a29a44e999cc3f2e56ba9c3c6bc936c027747312e08778ce301c1837f2112",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "66b1c4591b0ecc67cb08418a115bb02ed2b0168b7ae970f1e0a1ea335c59dc5b",
|
||||
"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/00_Core/ERR_WelcomeVoice.c": "53dcfd974e3d0e63bd4f95e6fa79e5b95804c3cb188ade681e89d0380942c82b",
|
||||
"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": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
|
||||
"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_AutomaticEquipment.c": "5832cbd3a43748e77f4e7f1b59361801c6d0445e0e15165e97d7a897b338709e",
|
||||
"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": "b59016d83cb9d40136b98b4e0067ea490bc553574fc53603593efd5522dbed20",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "c52d4a3cc0e71eb136487c42df2fcd5bd6da1c33d31dbd3d6429c237dcf4a8d9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "05d341a9a000bfa2084057bd67d476d6e35adca6c8518d74c27cd31b551bbb95",
|
||||
"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": "defb12924ea5dfe68f86c2bbb4b07362f016ffee810f720d13f01d81881b3cfc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "d873b5b689e918f8c907918d673304a184ac2e4a4cb6face527b37a67821ee9f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "e9bb5f2f3ec270074964fc8607e5a07c23f224308a4446837598d93e201d7775",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
|
||||
"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": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "cee3ae301ac2f211c290450b644a7942c9786a2a40d06f16e2a47efa96fd15b6",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "a37edcf66e43945f331db47fe81cb2e0e767a7aaf8115244dcf9e6295932be98",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25",
|
||||
"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": "79369d5cc30cf628f02df0023157ab423e40497325dfd6a73b218757f2b689d4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5684fcbee128a35107312452297f7ae2bec28aaa1b63f619fa649f36df8ea476",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "1bfc1079961eaecee0c1ebb434570aaeb359c008f9f309033b33582092557b35",
|
||||
"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": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "bc290ee8bed299d869598cbf41ec281653e0cc7f3c64c7214613df8a0fc83829",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b",
|
||||
"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": "35678ec625fb0a3c0871e2c373fcff49816440a97a165ed25c8798dd72ef059f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5b1578afbf6da736453cc9d3872979eddd1649746aa32d3b0c7a9e3cab50057e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "dc3acdffc8ca48f11b131f66d30d679ca68f3b3004344bdc78723bc9305915e0",
|
||||
"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": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
|
||||
"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": "4bdc920e87fa768b0ef0ed893c70ddbbcc9255d74163d7b657fd2ec7c4f14c32",
|
||||
"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": "8d197f7a1398625e5a19db3284b0bf72c6ee6e032843a3e4d9a4e58de42b6825",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
|
||||
"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_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "595fce681ec74e0d3ffe7a29c527c1551874469108ded479bed72a0fcf6c732e",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "701311de6a2c9fe8f0534a22056323c34072df26595dc70a7d4df45bc06e6c13",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
|
||||
"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": "e8d570f7bf3b8c4067ad81d47bca7f35514b2f8c8748f5fa5f775fbe27debeac",
|
||||
"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/ItemRow.layout": "8ac6fbc7fe0ce0ffc3185516197303bb892a4415948f75ae06f3bc289fefcac6",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
|
||||
"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/ObjectiveMapElement.layout": "b364752c44896d67dad07e466a04f4504a50813fb36ee7c34c9189ea9677b4e9",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "6e83a9c70282aff43b23a08b732739e7a241a31e8abf200498c90a745d3d60dd",
|
||||
"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,10 @@
|
||||
{
|
||||
"docs/current-status.md": {
|
||||
"before": "53371cce951524db84438baaf847979453cb7c2e9a8fba4dff3ff4bbc9cf1308",
|
||||
"after": "cc406deb337d52b1c867de8aba27db28f2efa4aeb6df25c273f1d3fedb5efeeb"
|
||||
},
|
||||
"docs/hq-ammunition.md": {
|
||||
"before": "4e9e78855e33d6381ebf89a5586062d264d5a2c6a862faa7f9b58f1f1e10480f",
|
||||
"after": "6ea12f3917078560be488b16a99868da6b5b69db85d5d39f38b335ff8d0a14ee"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"original_unchanged": 533,
|
||||
"index_sha256": "670073db5d7531aca4466cc9d2827d10a46bfcfbd35f27ac97724de9d2fd3725",
|
||||
"candidate_files_preserved": {
|
||||
"depot-mines": 432,
|
||||
"ground-supply": 432,
|
||||
"mine-safety": 431,
|
||||
"mounted-pair": 429
|
||||
},
|
||||
"post_suite_documentation_changes": [
|
||||
"docs/current-status.md",
|
||||
"docs/hq-ammunition.md"
|
||||
],
|
||||
"concurrent_later_source_changes": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": {
|
||||
"tested": "572cc36f88255a37e8f0e9f284fb96e07c6c4032506b34b8c77d688f02785400",
|
||||
"observed_live": "491c80ab32e3c914dea056327f639bc58159033d4917508c9848cca47546908a"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": {
|
||||
"tested": "077c09491f4444fc58f093975fe9b3c294ea1fc966abef847ee5f13aa795ee29",
|
||||
"observed_live": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": {
|
||||
"tested": "1c4bc25a6ce9b5ee10f82592f955b0019d13ddb4084a783fadb98d267bd0f4fc",
|
||||
"observed_live": "690a39a28a84ffe7ccbd27d4af50679925a870b53accf18d6573fe94e71d35ba"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": {
|
||||
"tested": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2",
|
||||
"observed_live": "2951c36cf3a72ae079ab8991879b4759fae783d719c61878f1aad7126836dae6"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": {
|
||||
"tested": "ec25e5c3a5b97527f9cd70341c10d69d7124048089d26883ac2f8c9b3fd2815d",
|
||||
"observed_live": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff"
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": {
|
||||
"tested": "53dcfd974e3d0e63bd4f95e6fa79e5b95804c3cb188ade681e89d0380942c82b",
|
||||
"observed_live": "a01d4163d3ab5b480ffbd2ceeff7384d8df6b7dd64036d580cd0c462b0135d25"
|
||||
}
|
||||
},
|
||||
"full_current_live_source_qualification_claimed": false,
|
||||
"four_BMP_change_files_still_exact": true,
|
||||
"no_staging_commit_or_publication": true
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
check: /tmp/err-policy-ioye7098/check.cpp:330: int main(): Assertion `s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&inert.reads==1' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-bmp-ammo-1305/tests/test_hq_mounted_ammo_sampler.py", line 256, in <module>
|
||||
run(program)
|
||||
~~~^^^^^^^^^
|
||||
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-ioye7098/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"complete": true,
|
||||
"implementation_proposed": true,
|
||||
"compiled_or_executed": false,
|
||||
"finding": "Two installed non-firing weapon entities are incorrectly treated as unsupported armed weapons, forcing mounted ammunition completeness false. Gunner has3 real weapon templates plus Armament_Empty; commander has periscope dummy. Exact resource definitions and inheritance contain no MuzzleComponent. Existing sampler rejects every zero-muzzle weapon, matching retained5weapon/3muzzle native symptom. This is source-backed attribution, not a new runtime trace.",
|
||||
"source_change": "Inspect retains ordinary collection and native muzzle read. Only empty-muzzle entries of two exact known resources can be omitted; helper independently proves owner in allowed hierarchy and exact reciprocal InventoryItem parent slot / WeaponSlot owner+binding+mounted entity. Subtract only that non-firing entry from Weapons. Unknown or broken identity remains incomplete. Known resource with actual muzzles remains ordinary sampled weapon, not silently excluded.",
|
||||
"caps_and_behavior": "No new traversal, world/player read, mutation, spawn, ammo refill, radio bypass or changed completeness requirement. Existing hierarchy/weapon/muzzle/cargo caps and all actual live-gun counts remain. Metadata/slot reads only on empty-muzzle branch. Detached Watch behavior unchanged.",
|
||||
"installed_evidence": {
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Base.et": "2fc39d7c2fc4bebe027efa5607ea71dd7dd0021daffb43f65332bf2698a52a4b",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/Commander/BMP1_Commander_Turret.et": "5dfd5bfa80cb08037fde682e468e44834126f4d4976a15b9d0db3544385798d0",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Weapons/Core/Armament_Empty.et": "73b35bd524e30fe09f147f0dc5f197d49c341b46c660ec1ce402f143dc943731",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": "fb4b80333f53ab8e4bf4a17453f90eab9d3774363c5bbbf511873939f83bc40b",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Weapons/Core/Weapon_Base.et": "0858b2ab1d781d31c7af600eef5463d112709e65466c602e4913496cd79c63b3",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Weapons/Cannons/2A28/Cannon_2A28_Base.et": "485c21599fa9e0a9d85ebbb5585519144eb1c9a5b1f640998f66e55719d225ab",
|
||||
"/tmp/erri-bmp-ammo-1305/installed/Prefabs/Weapons/Cannons/2A28/Cannon_2A28_HE.et": "be43f07fc0ce80dc1e65a91b8230f83ef1309d69538b2e3788d1c7438c8affd7"
|
||||
},
|
||||
"unsupported": [
|
||||
"Unknown zero-muzzle components remain incomplete.",
|
||||
"Projectile-only or unloaded real muzzles without magazine remain incomplete; no assumption empty means zero ammunition.",
|
||||
"Modified/inherited derivative prefab identities are not allowlisted automatically.",
|
||||
"Malformed foreign/detached installation or missing reciprocal slots cannot use exclusion.",
|
||||
"No current native BMP mounted-completeness claim until normal/native observation confirms actual components and remaining topology."
|
||||
],
|
||||
"tests": "Existing test_hq_mounted_ammo_sampler.py actual whole-source translation extended. New first case should compile baseline then fail Complete on exact inert dummy; proposal should pass. Both default and WORKBENCH existing runs remain. Pair-specific placeholder/resource/native inventory doubles; no test run or compiler permitted in this continuation. Root requested standalone-only unarmed dummy and simultaneous two-dummy+real-gun cases added; all remain unexecuted.",
|
||||
"source_manifest": "/tmp/erri-bmp-ammo-1305/source-manifest.json",
|
||||
"patch_sha256": "306d528469aa138e2d8492bc43cd62b977dc895350b4c561fe6c3b400141c8b0",
|
||||
"review_pending": "Independent hq_memory_review source/test review requested; root owns later focused executable validation and native qualification.",
|
||||
"index_before": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"tests/test_hq_mounted_ammo_sampler.py": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c
|
||||
@@ -239,6 +239,23 @@
|
||||
if (mounted) AddWeapon(mounted, allowed, weapons, result);
|
||||
}
|
||||
}
|
||||
+ // These installed resources are inert selection/periscope controls, not guns.
|
||||
+ // Only omit them after the caller observed an empty native muzzle list and
|
||||
+ // reciprocal current weapon-slot ownership in this same sampled hierarchy.
|
||||
+ protected static bool NonFiringPlaceholder(BaseWeaponComponent weapon, array<IEntity> allowed)
|
||||
+ {
|
||||
+ if (!weapon || !weapon.GetOwner()) return false;
|
||||
+ IEntity owner = weapon.GetOwner();
|
||||
+ if (!allowed.Contains(owner) || !owner.GetPrefabData()) return false;
|
||||
+ ResourceName resource = owner.GetPrefabData().GetPrefabName();
|
||||
+ if (resource != "{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et"
|
||||
+ && resource != "{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et") return false;
|
||||
+ InventoryItemComponent item = InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent));
|
||||
+ if (!item || !item.GetParentSlot()) return false;
|
||||
+ InventoryStorageSlot slot = item.GetParentSlot();
|
||||
+ WeaponSlotComponent mount = WeaponSlotComponent.Cast(slot.GetParentContainer());
|
||||
+ return mount && allowed.Contains(mount.GetOwner()) && mount.GetSlotInfo() == slot && mount.GetWeaponEntity() == owner;
|
||||
+ }
|
||||
static ERR_HQMountedAmmoSnapshot Inspect(IEntity root)
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot result = new ERR_HQMountedAmmoSnapshot();
|
||||
@@ -252,7 +269,13 @@
|
||||
foreach (BaseWeaponComponent weapon : weapons)
|
||||
{
|
||||
array<BaseMuzzleComponent> muzzles = {}; weapon.GetMuzzlesList(muzzles);
|
||||
- if (muzzles.IsEmpty() || muzzles.Count() > 8) { result.Complete = false; continue; }
|
||||
+ if (muzzles.IsEmpty())
|
||||
+ {
|
||||
+ if (NonFiringPlaceholder(weapon, allowed)) result.Weapons--;
|
||||
+ else result.Complete = false;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (muzzles.Count() > 8) { result.Complete = false; continue; }
|
||||
foreach (BaseMuzzleComponent muzzle : muzzles)
|
||||
{
|
||||
if (!muzzle || !muzzle.GetOwner() || !allowed.Contains(muzzle.GetOwner())) { result.Complete = false; continue; }
|
||||
--- a/tests/test_hq_mounted_ammo_sampler.py
|
||||
+++ b/tests/test_hq_mounted_ammo_sampler.py
|
||||
@@ -13,6 +13,7 @@
|
||||
code=code.replace('InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent))','mountedEntity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(weapon)','dynamic_cast<Mount*>(weapon)').replace('binding.GetParentContainer()','binding->mount')
|
||||
code=code.replace('InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent))','entity->item')
|
||||
+code=code.replace('InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent))','owner->item').replace('ResourceName resource', 'string resource')
|
||||
code=code.replace('WeaponSlotComponent.Cast(slot.GetParentContainer())','slot->mount').replace('BaseMuzzleComponent.Cast(slot.GetParentContainer())','slot->muzzle')
|
||||
code=code.replace('EStoragePurpose.','EStoragePurpose::').replace('GetParentSlot().','GetParentSlot()->')
|
||||
code=code.replace('ChimeraCharacter.Cast(entity) != nullptr','entity->character').replace('ChimeraCharacter.Cast(entity) != null','entity->character')
|
||||
@@ -24,7 +25,7 @@
|
||||
code=code.replace('array<','Array<').replace('foreach (','for (').replace('null','nullptr')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons,','Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons,')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons)', 'Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons)')
|
||||
-for name in ('copy','result','weapon','root','entity','child','part','manager','mounted','muzzle','magazine','item','storage','mount','mountedEntity','mountedItem'):
|
||||
+for name in ('copy','result','weapon','root','entity','child','part','manager','mounted','muzzle','magazine','item','storage','mount','mountedEntity','mountedItem','owner'):
|
||||
code=re.sub(r'\b'+name+r'\.',name+'->',code)
|
||||
code=re.sub(r'\b(bool|int) (\w+);',r'\1 \2=0;',code).replace('\n}\n','\n};\n')
|
||||
program=(r'''
|
||||
@@ -69,6 +70,37 @@
|
||||
ERR_HQMountedAmmoSnapshot* Inspect(){return ERR_HQMountedAmmoSampler::Inspect(&root);}
|
||||
};
|
||||
int main(){
|
||||
+ // Installed BMP has three live gun components plus two inert native controls.
|
||||
+ // Exercise actual Inspect using exact documented resources and reciprocal slots.
|
||||
+ for(string name:{string("{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et"),string("{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et")}){
|
||||
+ Rig r;Entity dummy;Weapon inert;Mount mount;Item item;Slot slot;dummy.prefab.name=name;
|
||||
+ r.crew.sibling=&dummy;dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.slot=&slot;mount.weapon=&dummy;
|
||||
+ r.manager.weapons.Insert(&mount);r.manager.weapons.Insert(&inert);
|
||||
+ auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&inert.reads==1);
|
||||
+ }
|
||||
+ // A root containing only a known installed inert control is completely unarmed.
|
||||
+ {Entity root,dummy;Weapon inert;Mount mount;Item item;Slot slot;root.child=&dummy;dummy.prefab.name="{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et";dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&root;mount.slot=&slot;mount.weapon=&dummy;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0&&s->Muzzles==0&&s->Magazines==0&&s->Rounds==0&&s->Capacity==0&&s->Chambers==0&&inert.reads==1);}
|
||||
+ // Both BMP controls coexist: decrement each exactly once while retaining the gun.
|
||||
+ {Rig r;Entity dummy[2];Weapon inert[2];Mount mount[2];Item item[2];Slot slot[2];r.crew.sibling=&dummy[0];dummy[0].sibling=&dummy[1];
|
||||
+ dummy[0].prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";dummy[1].prefab.name="{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et";
|
||||
+ for(int i=0;i<2;i++){dummy[i].weapon=&inert[i];inert[i].owner=&dummy[i];dummy[i].item=&item[i];item[i].slot=&slot[i];slot[i].mount=&mount[i];mount[i].owner=&r.root;mount[i].slot=&slot[i];mount[i].weapon=&dummy[i];r.manager.weapons.Insert(&mount[i]);r.manager.weapons.Insert(&inert[i]);}
|
||||
+ auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&inert[0].reads==1&&inert[1].reads==1);}
|
||||
+ // Unknown no-muzzle weapons and broken/foreign installation remain incomplete.
|
||||
+ for(int bad=0;bad<6;bad++){
|
||||
+ Rig r;Entity dummy,foreign;Weapon inert;Mount mount;Item item;Slot slot,other;dummy.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";
|
||||
+ r.crew.sibling=&dummy;dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.slot=&slot;mount.weapon=&dummy;
|
||||
+ if(bad==0)dummy.prefab.name="{0000000000000000}Prefabs/Weapons/Core/Armament_Empty.et";
|
||||
+ if(bad==1)dummy.item=nullptr;
|
||||
+ if(bad==2)item.slot=nullptr;
|
||||
+ if(bad==3)mount.owner=&foreign;
|
||||
+ if(bad==4)mount.slot=&other;
|
||||
+ if(bad==5)mount.weapon=&foreign;
|
||||
+ auto s=r.Inspect();assert(!s->Complete&&s->Valid());
|
||||
+ }
|
||||
+ // A known resource carrying an actual muzzle is never silently omitted.
|
||||
+ {Rig r;r.gun.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&s->Rounds==25&&r.muzzle.reads==1);}
|
||||
+ // An excluded cargo subtree cannot turn a stored placeholder into mounted armament.
|
||||
+ {Rig r;Entity cargo;Weapon inert;Item item;Slot slot;Storage storage;r.crew.sibling=&cargo;cargo.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";cargo.item=&item;item.slot=&slot;slot.storage=&storage;cargo.weapon=&inert;inert.owner=&cargo;auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&inert.reads==0);}
|
||||
{auto s=ERR_HQMountedAmmoSampler::Inspect(nullptr);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root;root.character=true;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&root.reads==0);}
|
||||
{Entity root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0);}
|
||||
--- a/docs/external-addons.json
|
||||
+++ b/docs/external-addons.json
|
||||
@@ -170,6 +170,11 @@
|
||||
"guid": "0FA8ACE19A772327",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
+ },
|
||||
+ "Prefabs/Weapons/Core/Armament_Empty.et": {
|
||||
+ "guid": "52120E4BA120661B",
|
||||
+ "addon": "629B2BA37EFFD577",
|
||||
+ "verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-10-03"
|
||||
}
|
||||
}
|
||||
}
|
||||
--- a/docs/vanilla-resources.json
|
||||
+++ b/docs/vanilla-resources.json
|
||||
@@ -125,6 +125,7 @@
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
+ "Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": "7E1DD1CE4D6A23F4",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"baseline": {
|
||||
"exit": 1,
|
||||
"log": "/tmp/erri-bmp-ammo-1305/baseline-test.log"
|
||||
},
|
||||
"proposed": {
|
||||
"exit": 0,
|
||||
"log": "/tmp/erri-bmp-ammo-1305/proposed-test.log"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"archive": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B/data.pak",
|
||||
"selected": {
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1P_Base.et": "dae88dfbfdeda054251051b7cc8d0820e76e9b81be7c031233c808ff46ddbbe7",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1P_Desert.et": "513b859692939d1363a6c0049b7c9f501f1eab56f384b0141a6a945921fe3b3d",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1P_FIA.et": "b31129fc2c572135e198974904028d0f4d14c44a89034af20db1e37dd14603f8",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1P_FIA_Desert.et": "bfdb4ab80cbaad8d9def7d5be05a1db45ddc456e282836eaef555474bc8b252a",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et": "cce344594a6c6c3691b3e99c9b7283bccbc0abda4553eb1af419521b99e90326",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_Desert.et": "854beec91beeb330caf4d9cbb0b0ee24f00abcce4eb006aad863cf3e9678ab61",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_FIA.et": "c8a4278c01d63b14eca9949de28ff7527432bb6d15c4f038d2851f6a59737d2a",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_FIA_Desert.et": "43b6b6f741914405550c2f98bb44afcb0bc063e233e82a6c0218eaea034554f6",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/BMP1_Shadow.et": "3d6eb24febca61157e8edea71b5ce7da6167249df754dcbdb8e6ef4057697c5f",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret.et": "30dcb6d87ee2d4d4e7e518b4995e9403131fb80549131063738b00ae40c02911",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Back.et": "0c6aca8b42b6b1cb5de0971412c57a8489e68c8a6a40fd0301d094f0443e938b",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Back_Desert.et": "1d2d9baf28bb80ca1b52fc5a1c79f8e790a706f9f1c018f173b9e35c385447f9",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Back_FIA.et": "f50dab946cdc35d61ee1c5a2ad88a55bb6fb7dee1edf4083750e1bb09f3a854b",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Back_FIA_Desert.et": "5385cbea046037ab4cabecb51b05edf6d082e9d5b97101bdc3ee79caa004668b",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Base.et": "662cf0f2592c3684969b0fdd4c35d0c02ed7b5fb47fd37647723bf660b622dc7",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_Desert.et": "a39fb019455e7c7a0ed17618f09d08b754c8999905b36898feb7d33de89d77ff",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_FIA.et": "d744e8313a8dbb1c08f4767707ec22a4718ae9cf4bd0246e8bbaa722c29bfb72",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1P_Turret_FIA_Desert.et": "af71500949a2b3b6d2d8fc195b7441db308ddd63b931a4176063e068ea52ff45",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret.et": "1897ad1a554f4027386a4b1d0f907e0d862204ff985fa37081686e3da26530d6",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Back.et": "426d48a25b52cc950a9c6a36d46a7f2105cee5b17880f8332d48996e8bf57006",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Back_Desert.et": "878a51e581b263deb1783393fb185f24a73e3c295f707477204ff2400c1dc4bb",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Back_FIA.et": "8a766c6da7d16f844b5c47cf21b8c1ce462ba451b3e41232793ed0f98b5422ef",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Back_FIA_Desert.et": "c3480abced07552f14289f9f7e3b5efa0be5493e12f23f81cb65050a18958581",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Base.et": "2fc39d7c2fc4bebe027efa5607ea71dd7dd0021daffb43f65332bf2698a52a4b",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_Desert.et": "3afe891762973d6bf9b4d7c327e3de535eac22b8436782c590ba9c534813215e",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_FIA.et": "058416be9ec5b1d30641d3c26ca8c143819c94144f5ce49d73476c2e195270f3",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/BMP1_Turret_FIA_Desert.et": "71aeb9b9eaf053e6ad810374ff510d457249bd9cfd728408cd8e7d15f2f3eac8",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/Commander/BMP1_Commander_Turret.et": "5dfd5bfa80cb08037fde682e468e44834126f4d4976a15b9d0db3544385798d0",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/Commander/BMP1_Commander_Turret_Desert.et": "d4690848e9cec3c01aaa01e9d8622ec4c00464fd3fa022b4e37570027a276989",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/Commander/BMP1_Commander_Turret_FIA.et": "13b56034333e1e7b00124dc364768d2119807886168ff0cca92a6ca7af328725",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Turret/Commander/BMP1_Commander_Turret_FIA_Desert.et": "cc89d442ecdea0797d64621b8efdc8dc2737497c5a953b56b08d24382fd1c4fe",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/WCS_BMP1_Periscope.et": "07aec280fddb8d7dfd5fae68e0cffadcfcbdbd37d346b4c772fc7448f3336545",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Base.et": "3ddf5798c3c65114d8a09d7b09a2c4beaedcdef40cc1753934104464472fadf7",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Drive.et": "03c3fc6063e9e371fa397edf1dcf3152b82061c1c07a9303eeada29c3a41414c",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Drive_Desert.et": "e67ed33ab975238c9b11fcb091458c61d477b1670751097d5866a85105b4edaa",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Idler.et": "d9061e273c16bf5d03727a80b861be9cb9e4dc0033cfcfd3543d663ba5ddbf3e",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Idler_Desert.et": "2e8d35793ed44884eb2fc31517feb1c8354f4b060be8678a4e8ae9480c520885",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Return.et": "c826571dc9e72fbc9755113f5f13197ff5479d749cae8e65c5d59a8d50a7e2fb",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Return_Desert.et": "0627f74d38c1631de7b2fad60760380c2c7532f37465a7f463c27df3c05c4776",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Road.et": "50e229ed8fa5219ef948d79a6138836e7ab640fef824b1b1498fc57b1e3bcc52",
|
||||
"Prefabs/Vehicles/Tracked/BMP1/VehParts/Wheels/VehPart_BMP1_Wheel_Road_Desert.et": "f8b393483668ad93a2b2c1469404ac5341583adf542fa8ffefe1075a2ce6b11c",
|
||||
"Scripts/Game/Weapon/WCS_BMP1_MagazineWell.c": "823c95a5ff8efd21c74d83bce880178ff77a2628f6e0de6471e65ca450066a7f"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation
|
||||
PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"complete": true,
|
||||
"records": [
|
||||
{
|
||||
"database": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577/resourceDatabase.rdb",
|
||||
"database_sha256": "7f38b7ed578b0b47864648a7b70288fe49dae4cc2556d5754377a1c28b2b6532",
|
||||
"resource": "Prefabs/Weapons/Core/Armament_Empty.et",
|
||||
"guid": "52120E4BA120661B",
|
||||
"record_offset": 80834,
|
||||
"exact_record_hex": "507265666162732f576561706f6e732f436f72652f41726d616d656e745f456d7074792e6574000600000000001b6620a14b0e1252",
|
||||
"occurrences": 1
|
||||
},
|
||||
{
|
||||
"database": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/resourceDatabase.rdb",
|
||||
"database_sha256": "c5344847875ab4c94cf3cda88c5f9cc60878b799f33b2137c8e4a18726c19b7c",
|
||||
"resource": "Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et",
|
||||
"guid": "7E1DD1CE4D6A23F4",
|
||||
"record_offset": 7525042,
|
||||
"exact_record_hex": "507265666162732f576561706f6e732f436f72652f56656869636c655065726973636f70655f44756d6d79576561706f6e5f426173652e657400060000000000f4236a4dced11d7e",
|
||||
"occurrences": 1
|
||||
}
|
||||
],
|
||||
"dependency_graph_unchanged": true,
|
||||
"method": "Exact NUL-terminated resource path, six-byte resource type header and little-endian 64-bit GUID; exactly one occurrence, matching existing external_addons.py audit.",
|
||||
"patch_sha256": "83f2c587c3e22393f5ad5479a04af13cb11439744961ba2bd860bffa977a4417",
|
||||
"source_manifest_sha256": "58571821efb676ce70c07968656acc72bdbbe738b324e4be29dc98a18f1cdaad"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
No commands executed below; root-only next validation when compiler/native serialization permits.
|
||||
|
||||
PYTHONPATH=/home/jakub/devel/escapistsrereintroduced/tests ERR_MOUNTED_AMMO_SOURCE=/tmp/erri-bmp-ammo-1305/baseline/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c python3 /tmp/erri-bmp-ammo-1305/tests/test_hq_mounted_ammo_sampler.py
|
||||
|
||||
PYTHONPATH=/home/jakub/devel/escapistsrereintroduced/tests ERR_MOUNTED_AMMO_SOURCE=/tmp/erri-bmp-ammo-1305/addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c python3 /tmp/erri-bmp-ammo-1305/tests/test_hq_mounted_ammo_sampler.py
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": {
|
||||
"before": "88ea0fc0e13d7e3c22c7ce8b652816d1d137e4e6e37a72f48f0bdf515b936ae7",
|
||||
"proposed": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81"
|
||||
},
|
||||
"tests/test_hq_mounted_ammo_sampler.py": {
|
||||
"before": "b1c630909e5227d0f7bd0d69d7927403fcb0f33e7297d5fa52f96001720f8442",
|
||||
"proposed": "a4d098adcd3d1f1156d00cf0753268f286cd63640bdae5aed81828f74a8b4633"
|
||||
},
|
||||
"docs/external-addons.json": {
|
||||
"before": "c340fe315efa9bad37ec9f249a259f51b833e66ea6f38bd774f1573753216ece",
|
||||
"proposed": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869"
|
||||
},
|
||||
"docs/vanilla-resources.json": {
|
||||
"before": "d80edf67d429b578051cad1630d3c44fae70714d14a277e40294242f9b439783",
|
||||
"proposed": "588192d151f382b612ca6ce9a564193b57d4a9e7ce9a3918bf8ad2f7e877d1f4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Prefabs/Weapons/Core/Turret_Base.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"sha256": "aa8b82893e5eb357d173cb3c2320352254480de45f89b5c7f11d8c746e1d9cf2"
|
||||
},
|
||||
"Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"sha256": "fb4b80333f53ab8e4bf4a17453f90eab9d3774363c5bbbf511873939f83bc40b"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"Prefabs/Weapons/Core/Weapon_Base.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"sha256": "0858b2ab1d781d31c7af600eef5463d112709e65466c602e4913496cd79c63b3"
|
||||
}
|
||||
}
|
||||
+304
@@ -0,0 +1,304 @@
|
||||
// Detached mounted counts only. Carried and cargo ammunition never enter these totals.
|
||||
class ERR_HQMountedAmmoSnapshot
|
||||
{
|
||||
bool Complete;
|
||||
int Weapons;
|
||||
int Muzzles;
|
||||
int Magazines;
|
||||
int Rounds;
|
||||
int Capacity;
|
||||
int Chambers;
|
||||
int LowMagazines;
|
||||
ERR_HQMountedAmmoSnapshot Snapshot()
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot copy = new ERR_HQMountedAmmoSnapshot();
|
||||
copy.Complete = Complete; copy.Weapons = Weapons; copy.Muzzles = Muzzles;
|
||||
copy.Magazines = Magazines; copy.Rounds = Rounds; copy.Capacity = Capacity;
|
||||
copy.Chambers = Chambers; copy.LowMagazines = LowMagazines;
|
||||
return copy;
|
||||
}
|
||||
bool Valid()
|
||||
{
|
||||
if (Weapons < 0 || Weapons > 32 || Muzzles < 0 || Muzzles > 128 || Muzzles > Weapons * 8) return false;
|
||||
if (Magazines < 0 || Magazines > Muzzles || Magazines > 128) return false;
|
||||
if (Capacity < Magazines || Capacity > Magazines * 100000 || Rounds < 0 || Rounds > Capacity) return false;
|
||||
if (Chambers < 0 || Chambers > Muzzles * 32 || LowMagazines < 0 || LowMagazines > Magazines) return false;
|
||||
return !Complete || (Weapons == 0 || (Muzzles > 0 && Magazines > 0));
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WORKBENCH
|
||||
// Ephemeral opt-in fixture diagnostics; never part of radio reports or policy.
|
||||
class ERR_HQMountedAmmoDiagnostic
|
||||
{
|
||||
int Reasons;
|
||||
int Nodes;
|
||||
int Structural;
|
||||
int Cargo;
|
||||
int Allowed;
|
||||
int Managers;
|
||||
string Detail;
|
||||
string FirstPrefab;
|
||||
int FirstPurpose = -1;
|
||||
void Reject(int reason, string detail, IEntity entity, int purpose = -1)
|
||||
{
|
||||
if ((Reasons & reason) == 0) Detail += detail + ";";
|
||||
if (Reasons == 0)
|
||||
{
|
||||
FirstPurpose = purpose;
|
||||
if (entity && entity.GetPrefabData()) FirstPrefab = entity.GetPrefabData().GetPrefabName();
|
||||
}
|
||||
Reasons = Reasons | reason;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
class ERR_HQMountedAmmoSampler
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
protected static ref ERR_HQMountedAmmoDiagnostic s_Diagnostic;
|
||||
static void BeginDiagnostic() { s_Diagnostic = new ERR_HQMountedAmmoDiagnostic(); }
|
||||
static ERR_HQMountedAmmoDiagnostic EndDiagnostic()
|
||||
{
|
||||
ref ERR_HQMountedAmmoDiagnostic result = s_Diagnostic; s_Diagnostic = null; return result;
|
||||
}
|
||||
#endif
|
||||
// Native mounted weapons and loaded magazines use InventoryStorageSlot too,
|
||||
// but their container is a weapon slot/muzzle rather than deposit storage.
|
||||
static bool Installed(IEntity entity, InventoryStorageSlot slot, array<IEntity> allowed)
|
||||
{
|
||||
if (!entity || !slot) return false;
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(slot.GetParentContainer());
|
||||
if (mount && allowed.Contains(mount.GetOwner()) && mount.GetSlotInfo() == slot && mount.GetWeaponEntity() == entity) return true;
|
||||
BaseMuzzleComponent muzzle = BaseMuzzleComponent.Cast(slot.GetParentContainer());
|
||||
if (!muzzle || !allowed.Contains(muzzle.GetOwner())) return false;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
return magazine && magazine.GetOwner() == entity;
|
||||
}
|
||||
protected static void AddWeapon(BaseWeaponComponent weapon, array<IEntity> allowed, array<BaseWeaponComponent> weapons, ERR_HQMountedAmmoSnapshot result)
|
||||
{
|
||||
if (!weapon || !weapon.GetOwner() || !allowed.Contains(weapon.GetOwner()))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
IEntity owner = null;
|
||||
if (weapon) owner = weapon.GetOwner();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(16, "weapon-owner-not-allowed", owner);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
// Native managers can expose both a slot and its physical weapon. Normalize
|
||||
// one exact current installation before deduplication, never another slot.
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(weapon);
|
||||
if (mount)
|
||||
{
|
||||
IEntity mountedEntity = mount.GetWeaponEntity();
|
||||
InventoryStorageSlot binding = mount.GetSlotInfo();
|
||||
if (!mountedEntity || !allowed.Contains(mountedEntity) || !binding || binding.GetParentContainer() != mount)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(32, "mount-binding-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
InventoryItemComponent mountedItem = InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent));
|
||||
if (!mountedItem || mountedItem.GetParentSlot() != binding)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(64, "mount-item-slot-mismatch", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapon = BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent));
|
||||
if (!weapon || WeaponSlotComponent.Cast(weapon) || weapon.GetOwner() != mountedEntity)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(128, "mount-weapon-invalid", mountedEntity);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
}
|
||||
if (weapons.Contains(weapon)) return;
|
||||
if (weapons.Count() >= 32)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(256, "weapon-limit32", weapon.GetOwner());
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
weapons.Insert(weapon);
|
||||
}
|
||||
protected static void Collect(IEntity root, ERR_HQMountedAmmoSnapshot result, array<IEntity> allowed, array<BaseWeaponComponent> weapons)
|
||||
{
|
||||
if (!root || ChimeraCharacter.Cast(root))
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1, "invalid-root", root);
|
||||
#endif
|
||||
result.Complete = false; return;
|
||||
}
|
||||
result.Complete = true;
|
||||
array<IEntity> nodes = {root};
|
||||
// Known deposit cargo must not consume the mounted hierarchy budget. Both
|
||||
// categories retain independent caps; the unique queue is capped at their sum.
|
||||
// Skipped crew/unknown nodes remain structural and cannot borrow cargo space.
|
||||
int structuralNodes = 0;
|
||||
int cargoNodes = 0;
|
||||
for (int cursor = 0; cursor < nodes.Count(); cursor++)
|
||||
{
|
||||
IEntity entity = nodes[cursor];
|
||||
bool character = ChimeraCharacter.Cast(entity) != null;
|
||||
bool excludedCargo;
|
||||
bool unknownStorage;
|
||||
// Exact installed slots are checked before deposit exclusion. Never walk
|
||||
// the children of known cargo or seated character roots.
|
||||
if (!character)
|
||||
{
|
||||
InventoryItemComponent item = InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent));
|
||||
if (item && item.GetParentSlot() && !Installed(entity, item.GetParentSlot(), allowed))
|
||||
{
|
||||
BaseInventoryStorageComponent storage = item.GetParentSlot().GetStorage();
|
||||
if (!storage || storage.GetPurpose() == EStoragePurpose.PURPOSE_UNSET || storage.GetPurpose() == EStoragePurpose.PURPOSE_ANY)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
int purpose = -1;
|
||||
if (storage) purpose = storage.GetPurpose();
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2, "ambiguous-storage", entity, purpose);
|
||||
#endif
|
||||
result.Complete = false; unknownStorage = true;
|
||||
}
|
||||
else excludedCargo = (storage.GetPurpose() & EStoragePurpose.PURPOSE_DEPOSIT) != 0;
|
||||
}
|
||||
}
|
||||
if (excludedCargo)
|
||||
{
|
||||
cargoNodes++;
|
||||
if (cargoNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(2048, "cargo-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
structuralNodes++;
|
||||
if (structuralNodes > 128)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(1024, "structural-limit128", entity);
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
if (character || unknownStorage) continue;
|
||||
allowed.Insert(entity);
|
||||
IEntity child = entity.GetChildren();
|
||||
while (child)
|
||||
{
|
||||
bool repeated = nodes.Contains(child);
|
||||
if (repeated || nodes.Count() >= 256)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
if (repeated) s_Diagnostic.Reject(4, "repeated-node", child);
|
||||
else s_Diagnostic.Reject(8, "queue-limit256", child);
|
||||
}
|
||||
#endif
|
||||
result.Complete = false; break;
|
||||
}
|
||||
nodes.Insert(child);
|
||||
child = child.GetSibling();
|
||||
}
|
||||
}
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic)
|
||||
{
|
||||
s_Diagnostic.Nodes = nodes.Count(); s_Diagnostic.Allowed = allowed.Count();
|
||||
s_Diagnostic.Structural = structuralNodes; s_Diagnostic.Cargo = cargoNodes;
|
||||
}
|
||||
#endif
|
||||
foreach (IEntity part : allowed)
|
||||
{
|
||||
BaseWeaponManagerComponent manager = BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent));
|
||||
if (manager)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Managers++;
|
||||
#endif
|
||||
array<BaseWeaponComponent> listed = {}; manager.GetWeapons(listed);
|
||||
if (listed.Count() > 8)
|
||||
{
|
||||
#ifdef WORKBENCH
|
||||
if (s_Diagnostic) s_Diagnostic.Reject(512, "manager-limit8", part);
|
||||
#endif
|
||||
result.Complete = false;
|
||||
}
|
||||
else foreach (BaseWeaponComponent entry : listed) AddWeapon(entry, allowed, weapons, result);
|
||||
}
|
||||
BaseWeaponComponent mounted = BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent));
|
||||
if (mounted) AddWeapon(mounted, allowed, weapons, result);
|
||||
}
|
||||
}
|
||||
// These installed resources are inert selection/periscope controls, not guns.
|
||||
// Only omit them after the caller observed an empty native muzzle list and
|
||||
// reciprocal current weapon-slot ownership in this same sampled hierarchy.
|
||||
protected static bool NonFiringPlaceholder(BaseWeaponComponent weapon, array<IEntity> allowed)
|
||||
{
|
||||
if (!weapon || !weapon.GetOwner()) return false;
|
||||
IEntity owner = weapon.GetOwner();
|
||||
if (!allowed.Contains(owner) || !owner.GetPrefabData()) return false;
|
||||
ResourceName resource = owner.GetPrefabData().GetPrefabName();
|
||||
if (resource != "{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et"
|
||||
&& resource != "{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et") return false;
|
||||
InventoryItemComponent item = InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent));
|
||||
if (!item || !item.GetParentSlot()) return false;
|
||||
InventoryStorageSlot slot = item.GetParentSlot();
|
||||
WeaponSlotComponent mount = WeaponSlotComponent.Cast(slot.GetParentContainer());
|
||||
return mount && allowed.Contains(mount.GetOwner()) && mount.GetSlotInfo() == slot && mount.GetWeaponEntity() == owner;
|
||||
}
|
||||
static ERR_HQMountedAmmoSnapshot Inspect(IEntity root)
|
||||
{
|
||||
ERR_HQMountedAmmoSnapshot result = new ERR_HQMountedAmmoSnapshot();
|
||||
array<IEntity> allowed = {};
|
||||
array<BaseWeaponComponent> weapons = {};
|
||||
Collect(root, result, allowed, weapons);
|
||||
result.Weapons = weapons.Count();
|
||||
array<BaseMuzzleComponent> seenMuzzles = {};
|
||||
array<BaseMagazineComponent> seenMagazines = {};
|
||||
array<IEntity> magazineOwners = {};
|
||||
foreach (BaseWeaponComponent weapon : weapons)
|
||||
{
|
||||
array<BaseMuzzleComponent> muzzles = {}; weapon.GetMuzzlesList(muzzles);
|
||||
if (muzzles.IsEmpty())
|
||||
{
|
||||
if (NonFiringPlaceholder(weapon, allowed)) result.Weapons--;
|
||||
else result.Complete = false;
|
||||
continue;
|
||||
}
|
||||
if (muzzles.Count() > 8) { result.Complete = false; continue; }
|
||||
foreach (BaseMuzzleComponent muzzle : muzzles)
|
||||
{
|
||||
if (!muzzle || !muzzle.GetOwner() || !allowed.Contains(muzzle.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMuzzles.Contains(muzzle)) continue;
|
||||
if (seenMuzzles.Count() >= 128) { result.Complete = false; continue; }
|
||||
seenMuzzles.Insert(muzzle); result.Muzzles++;
|
||||
int barrels = muzzle.GetBarrelsCount();
|
||||
if (barrels < 1 || barrels > 32) result.Complete = false;
|
||||
else for (int barrel = 0; barrel < barrels; barrel++)
|
||||
if (muzzle.IsBarrelChambered(barrel)) result.Chambers++;
|
||||
BaseMagazineComponent magazine = muzzle.GetMagazine();
|
||||
// Projectile-only weapons and absent magazines are unknown, never empty.
|
||||
if (!magazine || !magazine.GetOwner() || !allowed.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
if (seenMagazines.Contains(magazine)) continue;
|
||||
if (magazineOwners.Contains(magazine.GetOwner())) { result.Complete = false; continue; }
|
||||
seenMagazines.Insert(magazine); magazineOwners.Insert(magazine.GetOwner());
|
||||
int rounds = magazine.GetAmmoCount();
|
||||
int capacity = magazine.GetMaxAmmoCount();
|
||||
if (rounds < 0 || capacity < 1 || capacity > 100000 || rounds > capacity) { result.Complete = false; continue; }
|
||||
result.Magazines++; result.Rounds += rounds; result.Capacity += capacity;
|
||||
if (rounds <= capacity * 0.25) result.LowMagazines++;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"authorization": "User authorized RHS, WCS and BMP dependencies on2026-09-20; external assets remain in installed addons. Parachute Framework is required by the requested original paratrooper port and HQ-controlled drops (2026-09-22).",
|
||||
"direct_ai_dependencies": [
|
||||
"595F2BF2F44836FB",
|
||||
"629B2BA37EFFD577",
|
||||
"5E524E4FEECCA92B",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"addons": {
|
||||
"595F2BF2F44836FB": {
|
||||
"title": "RHS: Status Quo",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"1337C0DE5DABBEEF",
|
||||
"BADC0DEDABBEDA5E"
|
||||
],
|
||||
"project_sha256": "1b83e9df126db639cfcdb6d5119e65a1581c028becd6c09998143ed527ad0721"
|
||||
},
|
||||
"1337C0DE5DABBEEF": {
|
||||
"title": "RHS: Status Quo - Content Pack 01",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc"
|
||||
},
|
||||
"BADC0DEDABBEDA5E": {
|
||||
"title": "RHS: Status Quo - Content Pack 02",
|
||||
"version": "0.16.5208",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4"
|
||||
},
|
||||
"5E389BB9F58B79A6": {
|
||||
"title": "WCS_SpaceCore",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34"
|
||||
},
|
||||
"629B2BA37EFFD577": {
|
||||
"title": "WCS_Armaments",
|
||||
"version": "8.2.1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1"
|
||||
},
|
||||
"5E524E4FEECCA92B": {
|
||||
"title": "WCS_BMP-1",
|
||||
"version": "8.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"5E389BB9F58B79A6",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259"
|
||||
},
|
||||
"65930CB4CD0237B2": {
|
||||
"title": "Parachute Framework",
|
||||
"version": "1.2.0",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"Prefabs/Weapons/Launchers/FIM92_Stinger/Launcher_FIM92_Stinger.et": {
|
||||
"guid": "3DF204EEE0534EF2",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et": {
|
||||
"guid": "1DC01AAACFFA8B63",
|
||||
"addon": "5E524E4FEECCA92B",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et": {
|
||||
"guid": "A1D5833FF10C6503",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p21/Optic_1P21.et": {
|
||||
"guid": "695AAA77F84EB238",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/m8541/Optic_M8541.et": {
|
||||
"guid": "333A794F0B55C019",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et": {
|
||||
"guid": "8D4BAA235F7EDBEA",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-09-20"
|
||||
},
|
||||
"Configs/Factions/RHS_ION.conf": {
|
||||
"guid": "CB76A36EACFBDF35",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_RF_MSV.conf": {
|
||||
"guid": "627A8CDE681D223D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Configs/Factions/RHS_US_USMC.conf": {
|
||||
"guid": "F33C7BF22CBF3A8A",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/BLUFOR/RHS_USAF/RHS_USAF_USMC_MEF/Group_USAF_USMC_MEF_FireTeam.et": {
|
||||
"guid": "19843E954790DF28",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/INDFOR/RHS_ION/RHS_ION_COY/Group_RHS_ION_COY_StaticSecurityTeam.et": {
|
||||
"guid": "516C8C7400DF2C4D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/Groups/OPFOR/RHS_AFRF/MSV/Flora/Group_RHS_RF_MSV_Flora_FireGroup.et": {
|
||||
"guid": "AB905EF799E0A0AE",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID in installed owning resourceDatabase.rdb; read-only audit 2026-09-21. Faction keys and physical group slots checked in owning PAK."
|
||||
},
|
||||
"Prefabs/DeployedParachutes/Core/DeployedParachuteMK4.et": {
|
||||
"guid": "9ADD554959C09197",
|
||||
"addon": "65930CB4CD0237B2",
|
||||
"verification": "Exact installed owning resourceDatabase.rdb path/type/GUID and inspected native prefab/scripts, 2026-09-22."
|
||||
},
|
||||
"Prefabs/Weapons/Launchers/9K38_IGLA/Launcher_9K38_IGLA.et": {
|
||||
"guid": "962C400354E4BD6C",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Installed WCS USSR AA character references this exact prefab; inspected launcher has infrared guidance and a loaded disposable muzzle, 2026-09-23."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Rifleman_Random.et": {
|
||||
"guid": "844936B168DFAB8E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Medic_Random.et": {
|
||||
"guid": "DBB8D1F13930220E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_SL.et": {
|
||||
"guid": "B3C496CCFA72D25E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_Medic.et": {
|
||||
"guid": "D9AF475A4E5DC52C",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Rifleman_Random.et": {
|
||||
"guid": "140001FC383DF9A2",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Medic_Random.et": {
|
||||
"guid": "0FA8ACE19A772327",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"verification": "Exact path/type/GUID verified in installed owning resourceDatabase.rdb, 2026-09-26. Response roles and medic stock inspected in RHS character/group prefabs."
|
||||
},
|
||||
"Prefabs/Weapons/Core/Armament_Empty.et": {
|
||||
"guid": "52120E4BA120661B",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"verification": "Exact path/type/GUID record in installed owning resourceDatabase.rdb; read-only audit 2026-10-03"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
{
|
||||
"Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob": "E443663E5241622A",
|
||||
"Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob": "77C9FCF3FB1246E9",
|
||||
"Assets/Items/Equipment/workspaces/paper_map.agr": "83675D0B0AB1B2C3",
|
||||
"Assets/Items/Equipment/workspaces/player_map.asi": "56794534F6B8C3D7",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat": "B47B52D9DA68905D",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat": "610803CC3F3D6649",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat": "7D2E831AFA5CF50D",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob": "819ED3266EE5113B",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat": "2169E8EB73E1C127",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat": "31529E064AA7C917",
|
||||
"Assets/Props/Military/Sandbags/Sandbag_01_short.xob": "268DBDABB3C94AD7",
|
||||
"Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob": "E3BC73BFBC7AA497",
|
||||
"Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob": "0B96D139FEBCA006",
|
||||
"Configs/Callsigns/Callsigns_US.conf": "CB7824D572DD0D5C",
|
||||
"Configs/Callsigns/Callsigns_USSR.conf": "958043CE1648EC43",
|
||||
"Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf": "B56E8B4D4B195559",
|
||||
"Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf": "4E70E7C4C2C17D4A",
|
||||
"Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf": "5F7EC52FC40A03E2",
|
||||
"Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf": "0BF36EFF9FFAF92B",
|
||||
"Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf": "0E4B62F186F97C43",
|
||||
"Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf": "3B679F1799D55F6F",
|
||||
"Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf": "37D5B75AAC3E72EA",
|
||||
"Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf": "C53421647C3D0D2E",
|
||||
"Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf": "B4CA6761AC935808",
|
||||
"Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf": "DDF17C8C140BD1F2",
|
||||
"Configs/Factions/BLUFOR.conf": "E7B7EA4823DD81F0",
|
||||
"Configs/Factions/FIA.conf": "8053DB656DD18B14",
|
||||
"Configs/Factions/OPFOR.conf": "B122E3B10BB3404B",
|
||||
"Configs/GameOverScreen/BaseGameOverScreensConfig.conf": "651583FFFB7FC765",
|
||||
"Configs/Identities/FactionIdentity_US.conf": "B600946E9ACC17C2",
|
||||
"Configs/Identities/FactionIdentity_USSR.conf": "FBBCD73926989580",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_US.conf": "B548A5B264939A98",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_USSR.conf": "31FC78AF00523A99",
|
||||
"Configs/Map/MapPlain.conf": "A786DD4868598F15",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf": "8BBC73472092902E",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf": "0228A79846FD8A97",
|
||||
"Configs/System/ActionContext/ManualCameraContext.conf": "C538807EEE48BED8",
|
||||
"Configs/System/chimeraInputCommon.conf": "795184CF9AD764DB",
|
||||
"Configs/System/chimeraMenus.conf": "C747AFB6B750CE9A",
|
||||
"Configs/Systems/MissionSystems.conf": "C50579A2EC48E8EF",
|
||||
"Prefabs/AI/Groups/Group_Base.et": "000CD338713F2B5A",
|
||||
"Prefabs/AI/SCR_AIWorld.et": "E0A05C76552E7F58",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Cycle.et": "35BD6541CBB8AC08",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Defend.et": "93291E72AC23930F",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetIn.et": "712F4795CF8B91C7",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetOut.et": "C40316EE26846CAB",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Move.et": "750A8D1695BD6998",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "B3E7B8DC2BAB8ACC",
|
||||
"Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et": "86E565387A634103",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et": "836E7E39AAC5888B",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_HeliPilot.et": "42A502E3BB727CEB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Sniper.et": "0F6689B491641155",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et": "2F912ED6E399FF47",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF.et": "36E28C628A2F83CB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF_Medic.et": "9A234C5857D92187",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et": "23ADBBC31B6A3DC6",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et": "1C78331E156A3D65",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_HeliPilot.et": "A62FA97C4EC64F14",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et": "BF643BE4ADBDFDD3",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et": "612F43A4D5AE765F",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Rifleman.et": "DCB41B3746FDD1BE",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et": "5436629450D8387A",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et": "333DA6244C7DA34C",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Sharpshooter.et": "976AC400219898FA",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et": "2DB452B3EC386B92",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et": "8CA70597606992EC",
|
||||
"Prefabs/Characters/Footwear/CombatBoots_US_01.et": "DAAFD15478BDE1C3",
|
||||
"Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et": "F545C1BE7C99954A",
|
||||
"Prefabs/Characters/HeadGear/Helmet_PASGT_01/Helmet_PASGT_01_base.et": "8A2B2A544F3ED831",
|
||||
"Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et": "3CCA7A9BB4FD3197",
|
||||
"Prefabs/Characters/Uniforms/Pants_US_BDU.et": "604BB72BE8E023C2",
|
||||
"Prefabs/Decals/Dirt/Decal_Dirt_Patch_03.et": "4AD6EB80A8B1FA3A",
|
||||
"Prefabs/Groups/BLUFOR/Group_US_FireTeam.et": "84E5BBAB25EA23E5",
|
||||
"Prefabs/Groups/INDFOR/Group_FIA_FireTeam.et": "5BEA04939D148B1D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_Base.et": "8DE0C0830FE0C33D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et": "E552DABF3636C2AD",
|
||||
"Prefabs/Items/Core/Item_Base.et": "C95E11C60810F432",
|
||||
"Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et": "41A9C55B61F375F0",
|
||||
"Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et": "243948B23D90BECB",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et": "AE578EEA4244D41F",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et": "21EF98BFC1EB3793",
|
||||
"Prefabs/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.et": "33B2DFDCD0EBA3DB",
|
||||
"Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et": "13772C903CB5E4F7",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et": "9B6B61BB3FE3DFB0",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R107M.et": "54C68E438DD34265",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R148.et": "E1A5D4B878AA8980",
|
||||
"Prefabs/Items/Equipment/Watches/Watch_SandY184A.et": "78ED4FEF62BBA728",
|
||||
"Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et": "12D5AD21E383B768",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et": "C3F1FA1E2EC2B345",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et": "A81F501D3EF6F38E",
|
||||
"Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et": "0D9A5DCF89AE7AA9",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et": "527D7C5D2E476BDC",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et": "00E36F41CA310E2A",
|
||||
"Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et": "D70216B1B2889129",
|
||||
"Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et": "6D56FED1E55A8F84",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_Base.et": "A242612865F2A48E",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et": "589540B35EBA8CDC",
|
||||
"Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et": "97EF4C1A41F63DDB",
|
||||
"Prefabs/MP/Modes/GameMode_Base.et": "0F307326459A1395",
|
||||
"Prefabs/MP/ScriptedChatEntity.et": "F69BC912AC8236F9",
|
||||
"Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et": "EBBC859CCD94D96D",
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
"Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et": "01AE5FD77A9A4C21",
|
||||
"Prefabs/Structures/Military/Camps/TentUSSR_01/TentUSSR_01_base.et": "BE5D5CFA90224646",
|
||||
"Prefabs/Structures/Military/Camps/TentUS_01/TentUSMedical_01.et": "F8427C3EFC52644E",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Long_noStake.et": "46904AF5D473FB75",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et": "CAE1588B6265A2AB",
|
||||
"Prefabs/Structures/Walls/Concrete/ConcreteWall_01/ConcreteWall_01_3m.et": "60E5729BEA18F875",
|
||||
"Prefabs/Systems/Radio/RadioManager.et": "B8E09FAB91C4ECCD",
|
||||
"Prefabs/Tasks/BaseTask.et": "1D0F815858EE24AD",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et": "7BD282AF716ED639",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et": "DF5CCB7C0FF049F4",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et": "259EE7B78C51B624",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et": "0B4DEA8078B78A9B",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/VehParts/Seats/UAZ469_seats_rear.et": "780AAF0A51AEE61A",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et": "3336BE330C4F355B",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et": "16C1F16C9B053801",
|
||||
"Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et": "98EC9C526AFBA282",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
"Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": "7E1DD1CE4D6A23F4",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x51_M14_20rnd_SpecialBall.et": "627255315038152A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x54_SVD_10rnd_Sniper.et": "9CCB46C6EE632C1A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et": "8B853CDD11BA916E",
|
||||
"Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et": "D1FFE458E8AC4BDB",
|
||||
"Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et": "FA5C25BF66A53DCF",
|
||||
"Prefabs/World/Game/PerceptionManager.et": "028DAEAD63E056BE",
|
||||
"Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp": "13F8D0DE67678118",
|
||||
"Sounds/Vehicles/Wheeled/UAZ469/Vehicles_UAZ469_Horn.acp": "7E64D37BE3E1F3FA",
|
||||
"UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt": "3E7733BAC8C831F6",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset": "21533F2089005056",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset": "F8AC305446D5D480",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds": "EB7F65DBC9392557",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds": "40B12B0DF911B856",
|
||||
"UI/Textures/Flags/US-flag-base-3it.edds": "46FB2FB2C2125A3C",
|
||||
"UI/Textures/Flags/USSR-flag-base-3it.edds": "50824EB9F2C215AB",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI-glow.imageset": "67B3A6DC2D712B52",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI.imageset": "E23427CAC80DA8B7",
|
||||
"UI/Textures/Icons/icons_wrapperUI-glow.imageset": "00FE3DBDFD15227B",
|
||||
"UI/Textures/Icons/icons_wrapperUI.imageset": "3262679C50EF4F01",
|
||||
"UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout": "C4507D07F3C54831",
|
||||
"UI/layouts/Menus/PauseMenu/PauseMenuButton.layout": "9ECCD201BCF07E95",
|
||||
"UI/layouts/Task/TaskListEntry.layout": "B71975032150BAFB",
|
||||
"UI/layouts/Task/TaskListEntryDescription.layout": "552EB1921B5C548C",
|
||||
"UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout": "75C912A1C89BE6C2",
|
||||
"UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout": "4B5AE6E64037FFB4",
|
||||
"UI/layouts/WidgetLibrary/EditBox/WLib_EditBox.layout": "0022F0B45ADBC5AC",
|
||||
"system/textures/defWhite.edds": "A64A8C63E0FBAE87",
|
||||
"worlds/Eden/Eden.ent": "853E92315D1D9EFE",
|
||||
"worlds/MP/Navmeshes/LowResEden.nmn": "5E19E60F26327356"
|
||||
}
|
||||
+278
@@ -0,0 +1,278 @@
|
||||
"""Execute actual mounted sampler/snapshot methods against bounded native doubles."""
|
||||
import re,os
|
||||
from pathlib import Path
|
||||
from policy_harness import ROOT, run
|
||||
p=Path(os.environ.get('ERR_MOUNTED_AMMO_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c'))
|
||||
s=p.read_text()
|
||||
for forbidden in ('SetAmmoCount','GetOrigin','GetWorld','Spawn','TryMove','DeleteEntity','GetAgents'):
|
||||
assert forbidden not in s, forbidden
|
||||
code=re.sub(r'//[^\n]*','',s).replace('protected ','').replace('class ','struct ')
|
||||
code=code.replace('BaseWeaponManagerComponent.Cast(part.FindComponent(BaseWeaponManagerComponent))','part->manager')
|
||||
code=code.replace('BaseWeaponComponent.Cast(part.FindComponent(BaseWeaponComponent))','part->weapon')
|
||||
code=code.replace('BaseWeaponComponent.Cast(mountedEntity.FindComponent(BaseWeaponComponent))','mountedEntity->weapon')
|
||||
code=code.replace('InventoryItemComponent.Cast(mountedEntity.FindComponent(InventoryItemComponent))','mountedEntity->item')
|
||||
code=code.replace('WeaponSlotComponent.Cast(weapon)','dynamic_cast<Mount*>(weapon)').replace('binding.GetParentContainer()','binding->mount')
|
||||
code=code.replace('InventoryItemComponent.Cast(entity.FindComponent(InventoryItemComponent))','entity->item')
|
||||
code=code.replace('InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent))','owner->item').replace('ResourceName resource', 'string resource')
|
||||
code=code.replace('WeaponSlotComponent.Cast(slot.GetParentContainer())','slot->mount').replace('BaseMuzzleComponent.Cast(slot.GetParentContainer())','slot->muzzle')
|
||||
code=code.replace('EStoragePurpose.','EStoragePurpose::').replace('GetParentSlot().','GetParentSlot()->')
|
||||
code=code.replace('ChimeraCharacter.Cast(entity) != nullptr','entity->character').replace('ChimeraCharacter.Cast(entity) != null','entity->character')
|
||||
code=code.replace('ChimeraCharacter.Cast(root)','root->character').replace('ChimeraCharacter.Cast(entity)','entity->character')
|
||||
code=code.replace('protected static ref ', 'inline static ').replace('static ref ', 'inline static ').replace('ref ', '')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoDiagnostic (?=\w)', 'ERR_HQMountedAmmoDiagnostic* ',code)
|
||||
code=code.replace('s_Diagnostic.', 's_Diagnostic->').replace('GetPrefabData().', 'GetPrefabData()->')
|
||||
code=re.sub(r'\bERR_HQMountedAmmoSnapshot (?=\w)','ERR_HQMountedAmmoSnapshot* ',code)
|
||||
code=code.replace('array<','Array<').replace('foreach (','for (').replace('null','nullptr')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons,','Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons,')
|
||||
code=code.replace('Array<IEntity> allowed, Array<BaseWeaponComponent> weapons)', 'Array<IEntity>& allowed, Array<BaseWeaponComponent>& weapons)')
|
||||
for name in ('copy','result','weapon','root','entity','child','part','manager','mounted','muzzle','magazine','item','storage','mount','mountedEntity','mountedItem','owner'):
|
||||
code=re.sub(r'\b'+name+r'\.',name+'->',code)
|
||||
code=re.sub(r'\b(bool|int) (\w+);',r'\1 \2=0;',code).replace('\n}\n','\n};\n')
|
||||
program=(r'''
|
||||
#include <cassert>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
using string=std::string;
|
||||
struct Prefab{string name="fixture";string GetPrefabName(){return name;}};
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;
|
||||
int Count(){return this->size();}bool IsEmpty(){return this->empty();}
|
||||
void Insert(T n){this->push_back(n);}bool Contains(T n){return std::find(this->begin(),this->end(),n)!=this->end();}};
|
||||
struct Entity;struct Weapon;struct Muzzle;struct Magazine;struct Manager;struct Mount;
|
||||
struct EStoragePurpose{static const int PURPOSE_UNSET=0,PURPOSE_DEPOSIT=1,PURPOSE_WEAPON_PROXY=2,PURPOSE_ATTACHMENT_PROXY=4,PURPOSE_ANY=127;};
|
||||
struct Storage{int purpose=EStoragePurpose::PURPOSE_DEPOSIT;int GetPurpose(){return purpose;}};
|
||||
struct Slot{Mount* mount=nullptr;Muzzle* muzzle=nullptr;Storage* storage=nullptr;Storage* GetStorage(){return storage;}};
|
||||
struct Item{Slot* slot=nullptr;Slot* GetParentSlot(){return slot;}};
|
||||
using InventoryStorageSlot=Slot*;using WeaponSlotComponent=Mount*;
|
||||
using InventoryItemComponent=Item*;using BaseInventoryStorageComponent=Storage*;
|
||||
using IEntity=Entity*;using BaseWeaponComponent=Weapon*;using BaseMuzzleComponent=Muzzle*;
|
||||
using BaseMagazineComponent=Magazine*;using BaseWeaponManagerComponent=Manager*;
|
||||
struct Entity{Prefab prefab;Prefab*GetPrefabData(){return &prefab;}Item* item=nullptr;bool character=false;Entity* child=nullptr;Entity* sibling=nullptr;Manager* manager=nullptr;Weapon* weapon=nullptr;
|
||||
int reads=0;Entity* GetChildren(){reads++;assert(reads<=1);return child;}Entity* GetSibling(){return sibling;}};
|
||||
struct Magazine{IEntity owner=nullptr;int rounds=25,capacity=100,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetAmmoCount(){reads++;return rounds;}int GetMaxAmmoCount(){return capacity;}};
|
||||
struct Muzzle{IEntity owner=nullptr;Magazine* mag=nullptr;int barrels=1,chambered=1,reads=0;
|
||||
IEntity GetOwner(){return owner;}int GetBarrelsCount(){return barrels;}
|
||||
bool IsBarrelChambered(int b){reads++;return b<chambered;}Magazine* GetMagazine(){return mag;}};
|
||||
struct Weapon{virtual ~Weapon(){}IEntity owner=nullptr;Array<Muzzle*> muzzles;int reads=0;
|
||||
IEntity GetOwner(){return owner;}void GetMuzzlesList(Array<Muzzle*>& out){reads++;out=muzzles;}};
|
||||
struct Mount:Weapon{IEntity weapon=nullptr;Slot* slot=nullptr;
|
||||
Slot* GetSlotInfo(){return slot;}IEntity GetWeaponEntity(){return weapon;}};
|
||||
struct Manager{Array<Weapon*> weapons;int reads=0;void GetWeapons(Array<Weapon*>& out){reads++;out=weapons;}};
|
||||
'''+code+r'''
|
||||
struct Rig{Entity root,gun,magazine,crew,rifle;Manager manager,crewManager;Weapon weapon,carried;
|
||||
Muzzle muzzle,carriedMuzzle;Magazine mag,carriedMag;
|
||||
Rig(){root.child=&gun;gun.sibling=&magazine;magazine.sibling=&crew;crew.character=true;crew.child=&rifle;
|
||||
root.manager=&manager;manager.weapons={&weapon,&weapon};gun.weapon=&weapon;weapon.owner=&gun;weapon.muzzles={&muzzle,&muzzle};
|
||||
muzzle.owner=&gun;muzzle.mag=&mag;mag.owner=&magazine;
|
||||
crew.manager=&crewManager;crewManager.weapons={&carried};rifle.weapon=&carried;carried.owner=&rifle;
|
||||
carried.muzzles={&carriedMuzzle};carriedMuzzle.owner=&rifle;carriedMuzzle.mag=&carriedMag;carriedMag.owner=&rifle;}
|
||||
ERR_HQMountedAmmoSnapshot* Inspect(){return ERR_HQMountedAmmoSampler::Inspect(&root);}
|
||||
};
|
||||
int main(){
|
||||
// Installed BMP has three live gun components plus two inert native controls.
|
||||
// Exercise actual Inspect using exact documented resources and reciprocal slots.
|
||||
for(string name:{string("{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et"),string("{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et")}){
|
||||
Rig r;Entity dummy;Weapon inert;Mount mount;Item item;Slot slot;dummy.prefab.name=name;
|
||||
r.crew.sibling=&dummy;dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.slot=&slot;mount.weapon=&dummy;
|
||||
r.manager.weapons.Insert(&mount);r.manager.weapons.Insert(&inert);
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&inert.reads==1);
|
||||
}
|
||||
// A root containing only a known installed inert control is completely unarmed.
|
||||
{Entity root,dummy;Weapon inert;Mount mount;Item item;Slot slot;root.child=&dummy;dummy.prefab.name="{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et";dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&root;mount.slot=&slot;mount.weapon=&dummy;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0&&s->Muzzles==0&&s->Magazines==0&&s->Rounds==0&&s->Capacity==0&&s->Chambers==0&&inert.reads==1);}
|
||||
// Both BMP controls coexist: decrement each exactly once while retaining the gun.
|
||||
{Rig r;Entity dummy[2];Weapon inert[2];Mount mount[2];Item item[2];Slot slot[2];r.crew.sibling=&dummy[0];dummy[0].sibling=&dummy[1];
|
||||
dummy[0].prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";dummy[1].prefab.name="{7E1DD1CE4D6A23F4}Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et";
|
||||
for(int i=0;i<2;i++){dummy[i].weapon=&inert[i];inert[i].owner=&dummy[i];dummy[i].item=&item[i];item[i].slot=&slot[i];slot[i].mount=&mount[i];mount[i].owner=&r.root;mount[i].slot=&slot[i];mount[i].weapon=&dummy[i];r.manager.weapons.Insert(&mount[i]);r.manager.weapons.Insert(&inert[i]);}
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&inert[0].reads==1&&inert[1].reads==1);}
|
||||
// Unknown no-muzzle weapons and broken/foreign installation remain incomplete.
|
||||
for(int bad=0;bad<6;bad++){
|
||||
Rig r;Entity dummy,foreign;Weapon inert;Mount mount;Item item;Slot slot,other;dummy.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";
|
||||
r.crew.sibling=&dummy;dummy.weapon=&inert;inert.owner=&dummy;dummy.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.slot=&slot;mount.weapon=&dummy;
|
||||
if(bad==0)dummy.prefab.name="{0000000000000000}Prefabs/Weapons/Core/Armament_Empty.et";
|
||||
if(bad==1)dummy.item=nullptr;
|
||||
if(bad==2)item.slot=nullptr;
|
||||
if(bad==3)mount.owner=&foreign;
|
||||
if(bad==4)mount.slot=&other;
|
||||
if(bad==5)mount.weapon=&foreign;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid());
|
||||
}
|
||||
// A known resource carrying an actual muzzle is never silently omitted.
|
||||
{Rig r;r.gun.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&s->Rounds==25&&r.muzzle.reads==1);}
|
||||
// An excluded cargo subtree cannot turn a stored placeholder into mounted armament.
|
||||
{Rig r;Entity cargo;Weapon inert;Item item;Slot slot;Storage storage;r.crew.sibling=&cargo;cargo.prefab.name="{52120E4BA120661B}Prefabs/Weapons/Core/Armament_Empty.et";cargo.item=&item;item.slot=&slot;slot.storage=&storage;cargo.weapon=&inert;inert.owner=&cargo;auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&inert.reads==0);}
|
||||
{auto s=ERR_HQMountedAmmoSampler::Inspect(nullptr);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root;root.character=true;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&root.reads==0);}
|
||||
{Entity root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==0);}
|
||||
{Rig r;auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1);
|
||||
assert(s->Rounds==25&&s->Capacity==100&&s->Chambers==1&&s->LowMagazines==1);
|
||||
assert(r.weapon.reads==1&&r.muzzle.reads==1&&r.mag.reads==1&&r.crew.reads==0&&r.crewManager.reads==0&&r.carried.reads==0);
|
||||
auto copy=s->Snapshot();s->Complete=false;s->Rounds=0;s->Capacity=0;s->LowMagazines=0;
|
||||
assert(copy->Complete&©->Rounds==25&©->Capacity==100&©->LowMagazines==1&©->Weapons==1&©->Muzzles==1&©->Magazines==1&©->Chambers==1);}
|
||||
for(int rounds:{0,24,25,26,100}){Rig r;r.mag.rounds=rounds;auto s=r.Inspect();assert(s->Complete&&s->Valid());assert(s->LowMagazines==(rounds<=25));}
|
||||
{Rig r;Muzzle second;second.owner=&r.gun;second.mag=&r.mag;second.chambered=0;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Muzzles==2&&s->Magazines==1&&s->Chambers==1&&s->Rounds==25&&r.mag.reads==1);}
|
||||
// Manager references into skipped characters, foreign roots, or nulls never count.
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;Weapon w;w.owner=&foreign;
|
||||
r.manager.weapons.Insert(kind==0?&r.carried:kind==1?&w:nullptr);auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons==1);}
|
||||
for(int kind=0;kind<3;kind++){Rig r;Entity foreign;
|
||||
if(kind==0)r.muzzle.owner=&foreign;
|
||||
if(kind==1)r.mag.owner=&foreign;
|
||||
if(kind==2)r.mag.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Rounds==0&&s->Magazines==0);}
|
||||
// Deposited rifles and nested magazines are excluded; installed magazine slots remain admitted.
|
||||
{Rig r;Entity cargo,rifle,magEntity;Item item;Slot slot;Storage storage;Weapon rifleWeapon;
|
||||
r.crew.sibling=&cargo;cargo.child=&rifle;rifle.child=&magEntity;rifle.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
rifle.weapon=&rifleWeapon;rifleWeapon.owner=&rifle;auto s=r.Inspect();assert(s->Complete&&s->Weapons==1&&rifle.reads==0&&magEntity.reads==0);}
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.magazine.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;auto s=r.Inspect();assert(s->Complete&&s->Rounds==25&&s->Magazines==1);}
|
||||
for(int purpose:{0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=purpose;auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Native purposes support combined flags; any deposit bit excludes the subtree.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
storage.purpose=EStoragePurpose::PURPOSE_DEPOSIT|EStoragePurpose::PURPOSE_ATTACHMENT_PROXY;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Manager references cannot rescue a cargo weapon.
|
||||
{Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;slot.storage=&storage;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Valid());}
|
||||
// Exact native weapon-slot and muzzle containers are not deposit storage.
|
||||
for(int purpose:{-1,0,127}){Rig r;Item gunItem,magItem;Slot gunSlot,magSlot;Storage storage;Mount mount;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&gunSlot;gunSlot.mount=&mount;r.gun.item=&gunItem;gunItem.slot=&gunSlot;
|
||||
magSlot.muzzle=&r.muzzle;r.magazine.item=&magItem;magItem.slot=&magSlot;
|
||||
if(purpose>=0){storage.purpose=purpose;gunSlot.storage=&storage;magSlot.storage=&storage;}
|
||||
auto s=r.Inspect();assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);}
|
||||
// No generic missing-storage bypass: foreign container owners, stale slots and
|
||||
// substituted attached items fail closed, including foreign loaded magazines.
|
||||
for(int fault=0;fault<6;fault++){Rig r;Entity foreign;Item item;Slot slot,other;Mount mount;
|
||||
r.gun.item=&item;item.slot=&slot;slot.mount=&mount;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&slot;
|
||||
if(fault==0)mount.owner=&foreign;
|
||||
if(fault==1)mount.owner=&r.crew;
|
||||
if(fault==2)mount.weapon=&foreign;
|
||||
if(fault==3)mount.slot=&other;
|
||||
if(fault==4)slot.mount=nullptr;
|
||||
if(fault==5)mount.owner=nullptr;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Rounds==0&&s->Valid());}
|
||||
for(int fault=0;fault<3;fault++){Rig r;Entity foreign;Item item;Slot slot;
|
||||
r.magazine.item=&item;item.slot=&slot;slot.muzzle=&r.muzzle;
|
||||
if(fault==0)r.muzzle.owner=&foreign;
|
||||
if(fault==1)r.muzzle.mag=nullptr;
|
||||
if(fault==2)r.mag.owner=&foreign;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==0&&s->Rounds==0&&s->Valid());}
|
||||
// An exact loaded magazine inside an excluded cargo rifle does not re-admit it.
|
||||
{Rig r;Item item,magItem;Slot slot,magSlot;Storage deposit;r.gun.item=&item;item.slot=&slot;slot.storage=&deposit;
|
||||
r.magazine.item=&magItem;magItem.slot=&magSlot;magSlot.muzzle=&r.muzzle;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Weapons==0&&s->Magazines==0&&s->Valid());}
|
||||
// Native manager/FindComponent expose the wrapper and the physical weapon.
|
||||
// A UAZ's single PKM must be one weapon even when all those paths overlap.
|
||||
{Rig r;Mount mount;Item item;Slot binding;mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;
|
||||
binding.mount=&mount;item.slot=&binding;r.gun.item=&item;r.root.weapon=&mount;mount.muzzles=r.weapon.muzzles;
|
||||
r.manager.weapons={&mount,&r.weapon,&mount};auto s=r.Inspect();
|
||||
assert(s->Complete&&s->Valid()&&s->Weapons==1&&s->Muzzles==1&&s->Magazines==1&&s->Rounds==25&&s->Chambers==1);
|
||||
assert(mount.reads==0&&r.weapon.reads==1&&r.mag.reads==1);}
|
||||
// Unknown/foreign/empty/nested/stale slot endpoints never become real guns.
|
||||
for(int fault=0;fault<11;fault++){Rig r;Entity foreign;Mount mount,other;Item item;Slot binding,stale;
|
||||
mount.owner=&r.root;mount.weapon=&r.gun;mount.slot=&binding;binding.mount=&mount;item.slot=&binding;r.gun.item=&item;
|
||||
r.root.weapon=&mount;r.manager.weapons={&mount};
|
||||
if(fault==0)mount.weapon=nullptr;
|
||||
if(fault==1)mount.weapon=&foreign;
|
||||
if(fault==2)mount.weapon=&r.root; // nested/self wrapper
|
||||
if(fault==3)binding.mount=&other;
|
||||
if(fault==4)item.slot=&stale;
|
||||
if(fault==5)mount.slot=nullptr;
|
||||
if(fault==6)r.gun.item=nullptr;
|
||||
if(fault==7)mount.owner=&foreign;
|
||||
if(fault==8)r.gun.weapon=nullptr;
|
||||
if(fault==9){other.owner=&r.gun;r.gun.weapon=&other;} // valid first binding, nested wrapper endpoint
|
||||
if(fault==10)r.weapon.owner=&foreign; // component found on target belongs elsewhere
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid()&&s->Weapons<=1&&mount.reads==0&&other.reads==0);}
|
||||
// Thirty-two genuine installed guns still fit the weapon cap despite wrappers.
|
||||
{Entity root;Array<Entity> hosts(32),guns(32),mags(32);Array<Weapon> weapons(32);Array<Mount> mounts(32);
|
||||
Array<Muzzle> muzzles(32);Array<Magazine> magazines(32);Array<Item> items(32);Array<Slot> bindings(32);
|
||||
root.child=&hosts[0];for(int i=0;i<32;i++){
|
||||
if(i+1<32)hosts[i].sibling=&hosts[i+1];
|
||||
hosts[i].child=&guns[i];guns[i].child=&mags[i];hosts[i].weapon=&mounts[i];guns[i].weapon=&weapons[i];
|
||||
mounts[i].owner=&hosts[i];mounts[i].weapon=&guns[i];mounts[i].slot=&bindings[i];bindings[i].mount=&mounts[i];
|
||||
items[i].slot=&bindings[i];guns[i].item=&items[i];weapons[i].owner=&guns[i];weapons[i].muzzles={&muzzles[i]};
|
||||
mounts[i].muzzles=weapons[i].muzzles;muzzles[i].owner=&guns[i];muzzles[i].mag=&magazines[i];magazines[i].owner=&mags[i];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(s->Complete&&s->Valid()&&s->Weapons==32&&s->Muzzles==32&&s->Magazines==32&&s->Rounds==800);}
|
||||
// Missing/projectile-only magazines and unsupported native values stay incomplete.
|
||||
for(int kind=0;kind<9;kind++){Rig r;
|
||||
if(kind==0)r.muzzle.mag=nullptr;
|
||||
if(kind==1)r.weapon.muzzles={nullptr};
|
||||
if(kind==2)r.weapon.muzzles={};
|
||||
if(kind==3)r.muzzle.barrels=0;
|
||||
if(kind==4)r.muzzle.barrels=33;
|
||||
if(kind==5)r.mag.rounds=-1;
|
||||
if(kind==6)r.mag.capacity=0;
|
||||
if(kind==7)r.mag.capacity=100001;
|
||||
if(kind==8)r.mag.rounds=101;
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Valid());}
|
||||
{Rig r;r.weapon.muzzles=Array<Muzzle*>(9,&r.muzzle);auto s=r.Inspect();assert(!s->Complete&&s->Muzzles==0&&r.muzzle.reads==0);}
|
||||
{Rig r;r.manager.weapons=Array<Weapon*>(9,&r.weapon);auto s=r.Inspect();assert(!s->Complete&&s->Weapons==1&&s->Valid());}
|
||||
// Entity budget also bounds enqueue and cycles, rather than only processed work.
|
||||
for(int count:{128,129,300}){std::vector<Entity> nodes(count);for(int i=0;i<count-1;i++)nodes[i].child=&nodes[i+1];
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(s->Complete==(count==128));assert(s->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads==128);}
|
||||
{Entity root,child;root.child=&child;child.sibling=&child;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
{Entity root,child;root.child=&child;child.child=&root;auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Valid());}
|
||||
// Maximum weapon and muzzle bounds remain valid detached counts on overflow.
|
||||
for(int count:{32,33}){Entity root;std::vector<Entity> nodes(count);std::vector<Weapon> weapons(count);
|
||||
root.child=&nodes[0];for(int i=0;i<count;i++){nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];if(i+1<count)nodes[i].sibling=&nodes[i+1];}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Weapons==32&&s->Valid());}
|
||||
{Entity root;std::vector<Entity> nodes(18);std::vector<Weapon> weapons(17);std::vector<Muzzle> muzzles(136);Magazine mag;mag.owner=&nodes[17];
|
||||
root.child=&nodes[0];for(int i=0;i<18;i++){if(i+1<18)nodes[i].sibling=&nodes[i+1];if(i==17)continue;
|
||||
nodes[i].weapon=&weapons[i];weapons[i].owner=&nodes[i];for(int j=0;j<8;j++){auto& m=muzzles[i*8+j];m.owner=&nodes[i];m.mag=&mag;weapons[i].muzzles.Insert(&m);}}
|
||||
auto s=ERR_HQMountedAmmoSampler::Inspect(&root);assert(!s->Complete&&s->Muzzles==128&&s->Magazines==1&&s->Chambers==128&&s->Valid());}
|
||||
{Rig r;Magazine alias;alias.owner=&r.magazine;Muzzle second;second.owner=&r.gun;second.mag=&alias;r.weapon.muzzles.Insert(&second);
|
||||
auto s=r.Inspect();assert(!s->Complete&&s->Magazines==1&&s->Rounds==25&&alias.reads==0&&s->Valid());}
|
||||
|
||||
// Realistic production load: 128 known deposited items plus mounted root,
|
||||
// gun, loaded magazine and a pruned original crew root exceed128 in total.
|
||||
// Cargo-first and structure-first traversal both retain the same mounted counts.
|
||||
for(bool cargoFirst:{false,true}){Rig r;std::vector<Weapon> cargoWeapons(128);std::vector<Entity> cargo(128);std::vector<Item> items(128);std::vector<Slot> slots(128);Storage deposit;
|
||||
for(int i=0;i<128;i++){cargo[i].weapon=&cargoWeapons[i];cargoWeapons[i].owner=&cargo[i];cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;if(i<127)cargo[i].sibling=&cargo[i+1];}
|
||||
if(cargoFirst){r.root.child=&cargo[0];cargo.back().sibling=&r.gun;}else{r.crew.sibling=&cargo[0];}
|
||||
auto snapshot=r.Inspect();assert(snapshot->Complete&&snapshot->Weapons==1&&snapshot->Magazines==1&&snapshot->Rounds==25&&snapshot->Valid());
|
||||
for(auto& item:cargo){assert(item.reads==0);}for(auto& gun:cargoWeapons){assert(gun.reads==0);}assert(r.weapon.reads==1&&r.carried.reads==0);}
|
||||
// Independent128 structural/128 cargo limits, in either order and interleaved.
|
||||
for(int order:{0,1,2})for(int scenario:{0,1,2,3}){
|
||||
int structures=scenario==1?129:128;int cargoCount=scenario==2||scenario==3?129:(scenario==1?100:128);
|
||||
if(scenario==2)structures=4;
|
||||
std::vector<Entity> nodes(structures),cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage deposit;std::vector<Entity*> sequence;
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&deposit;}
|
||||
if(order==0){for(auto& e:cargo)sequence.push_back(&e);for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);}
|
||||
if(order==1){for(int i=1;i<structures;i++)sequence.push_back(&nodes[i]);for(auto& e:cargo)sequence.push_back(&e);}
|
||||
if(order==2){for(int i=0;i<std::max(structures-1,cargoCount);i++){if(i<cargoCount)sequence.push_back(&cargo[i]);if(i+1<structures)sequence.push_back(&nodes[i+1]);}}
|
||||
nodes[0].child=sequence[0];for(int i=0;i<int(sequence.size())-1;i++)sequence[i]->sibling=sequence[i+1];
|
||||
auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&nodes[0]);assert(snapshot->Complete==(scenario==0)&&snapshot->Weapons==0&&snapshot->Valid());
|
||||
int reads=0;for(auto& e:nodes)reads+=e.reads;assert(reads<=128);for(auto& e:cargo)assert(e.reads==0);
|
||||
}
|
||||
// Wire validation rejects impossible or malicious counts.
|
||||
{ERR_HQMountedAmmoSnapshot s;assert(s.Valid());s.Weapons=33;assert(!s.Valid());s.Weapons=1;s.Muzzles=9;assert(!s.Valid());
|
||||
s.Muzzles=1;s.Magazines=2;assert(!s.Valid());s.Magazines=1;s.Capacity=100001;assert(!s.Valid());s.Capacity=100;s.Rounds=101;assert(!s.Valid());
|
||||
s.Rounds=25;s.Chambers=33;assert(!s.Valid());s.Chambers=1;s.LowMagazines=2;assert(!s.Valid());s.LowMagazines=1;s.Complete=true;assert(s.Valid());}
|
||||
}
|
||||
''')
|
||||
run(program)
|
||||
print('PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation')
|
||||
|
||||
# WORKBENCH records are opt-in. Re-run every original geometry/count assertion
|
||||
# in that build too, plus exact failure witnesses from the same traversal.
|
||||
cases=r'''
|
||||
{Rig r;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(snap->Complete&&d->Reasons==0&&d->Nodes==4&&d->Allowed==3&&d->Managers==1);assert(!ERR_HQMountedAmmoSampler::EndDiagnostic());}
|
||||
{Entity root;root.child=&root;ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==4&&d->Nodes==1&&d->Allowed==1&&root.reads==1);}
|
||||
{Entity root;std::vector<Entity> children(128);root.child=&children[0];for(int i=0;i<127;i++)children[i].sibling=&children[i+1];ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1024&&d->Nodes==129&&d->Allowed==128&&d->Structural==129&&d->Cargo==0&&children[127].reads==0);}
|
||||
for(int purpose:{-1,0,127}){Rig r;Item item;Slot slot;Storage storage;r.gun.item=&item;item.slot=&slot;r.gun.prefab.name="first-gun";if(purpose>=0){slot.storage=&storage;storage.purpose=purpose;}ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&2)&&(d->Reasons&16)&&d->FirstPrefab=="first-gun"&&d->FirstPurpose==purpose&&d->Detail.find("ambiguous-storage;")!=string::npos);}
|
||||
{Entity root;Manager manager;root.manager=&manager;manager.weapons.resize(9,nullptr);ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==512&&d->Managers==1&&manager.reads==1);}
|
||||
{Rig r;Mount mount;mount.owner=&r.root;r.manager.weapons={&mount};ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=r.Inspect();auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&(d->Reasons&32));}
|
||||
{ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snap=ERR_HQMountedAmmoSampler::Inspect(nullptr);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snap->Complete&&d->Reasons==1&&d->Nodes==0&&d->Allowed==0);}
|
||||
'''
|
||||
|
||||
cases+=r'''
|
||||
for(int which:{0,1}){Entity root;int cargoCount=which==0?129:256;std::vector<Entity> cargo(cargoCount);std::vector<Item> items(cargoCount);std::vector<Slot> slots(cargoCount);Storage storage;root.child=&cargo[0];
|
||||
for(int i=0;i<cargoCount;i++){cargo[i].item=&items[i];items[i].slot=&slots[i];slots[i].storage=&storage;if(i+1<cargoCount)cargo[i].sibling=&cargo[i+1];}
|
||||
ERR_HQMountedAmmoSampler::BeginDiagnostic();auto snapshot=ERR_HQMountedAmmoSampler::Inspect(&root);auto*d=ERR_HQMountedAmmoSampler::EndDiagnostic();assert(!snapshot->Complete&&d->Cargo==129&&d->Structural==1&&(d->Reasons&2048));
|
||||
if(which==0){assert(d->Nodes==130&&!(d->Reasons&8));}else{assert(d->Nodes==256&&(d->Reasons&8));}}
|
||||
'''
|
||||
run('#define WORKBENCH\n'+program.replace('int main(){','int main(){'+cases))
|
||||
print('PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal')
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"Prefabs/Weapons/Core/Armament_Empty.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577/data.pak",
|
||||
"sha256": "73b35bd524e30fe09f147f0dc5f197d49c341b46c660ec1ce402f143dc943731",
|
||||
"extracted_bytes_match": true,
|
||||
"muzzle_component_text_absent": true
|
||||
},
|
||||
"Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"sha256": "fb4b80333f53ab8e4bf4a17453f90eab9d3774363c5bbbf511873939f83bc40b",
|
||||
"extracted_bytes_match": true,
|
||||
"muzzle_component_text_absent": true
|
||||
},
|
||||
"Prefabs/Weapons/Core/Weapon_Base.et": {
|
||||
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"sha256": "0858b2ab1d781d31c7af600eef5463d112709e65466c602e4913496cd79c63b3",
|
||||
"extracted_bytes_match": true,
|
||||
"muzzle_component_text_absent": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"complete": true,
|
||||
"decision": "No source review blocker; pending parent-owned focused execution and native qualification.",
|
||||
"scope": "Read-only minimal sampler correction and existing actual-method harness review; no compiler/native execution.",
|
||||
"source_sha256": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"test_sha256": "a4d098adcd3d1f1156d00cf0753268f286cd63640bdae5aed81828f74a8b4633",
|
||||
"patch_sha256": "83f2c587c3e22393f5ad5479a04af13cb11439744961ba2bd860bffa977a4417",
|
||||
"installed_resource_review_sha256": "6b066e0167773ad3f08fcd5e9abd39f1fa66fdfb02a4cf6e5a530ed9562de14d",
|
||||
"findings": [
|
||||
"Exactly two full ResourceNames are whitelisted; extracted installed definitions and inherited Weapon_Base have no muzzles.",
|
||||
"Inspect first obtains native muzzle list. Only an empty list reaches NonFiringPlaceholder; any real/null/oversized muzzle list retains ordinary sampling/refusal.",
|
||||
"Helper independently checks current allowed physical weapon owner and reciprocal item parent-slot/WeaponSlot binding, allowed mount owner and exact mounted entity. Direct entity enumeration cannot bypass installation proof.",
|
||||
"Weapons count decreases only once per deduplicated confirmed empty placeholder. Existing incomplete flag is never cleared; structural/manager/weapon budgets unchanged.",
|
||||
"Unknown resource, missing item/slot, foreign mount owner, changed slot/entity remain incomplete. Cargo exclusion and actual muzzle sampling remain intact.",
|
||||
"Tests execute actual Collect/AddWeapon/Inspect/new helper with documented native doubles; two exact resources and six invalid installation controls cover the changed branch.",
|
||||
"Final test adds all-inert installed root Complete/Weapons0 and both exact dummies plus live gun, preserving once-only read/count accounting."
|
||||
],
|
||||
"limitations": [
|
||||
"Read-only review did not execute tests; source translator/native prefab APIs and engine compilation remain parent validation.",
|
||||
"Installed source definitions support the narrow resource policy; no new claim of actual BMP native completeness, transfer, radio delivery or gameplay outcome."
|
||||
],
|
||||
"target_or_source_modified": false,
|
||||
"resource_policy_review": {
|
||||
"complete": true,
|
||||
"exactly_two_resource_entries_added": true,
|
||||
"all_previous_entries_and_dependency_graph_unchanged": true,
|
||||
"installed_rdb_records_independently_verified": [
|
||||
{
|
||||
"resource": "Prefabs/Weapons/Core/Armament_Empty.et",
|
||||
"guid": "52120E4BA120661B",
|
||||
"database_sha256": "7f38b7ed578b0b47864648a7b70288fe49dae4cc2556d5754377a1c28b2b6532",
|
||||
"record_offset": 80834,
|
||||
"exact_unique_record": true
|
||||
},
|
||||
{
|
||||
"resource": "Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et",
|
||||
"guid": "7E1DD1CE4D6A23F4",
|
||||
"database_sha256": "c5344847875ab4c94cf3cda88c5f9cc60878b799f33b2137c8e4a18726c19b7c",
|
||||
"record_offset": 7525042,
|
||||
"exact_unique_record": true
|
||||
}
|
||||
],
|
||||
"files": {
|
||||
"docs/external-addons.json": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869",
|
||||
"docs/vanilla-resources.json": "588192d151f382b612ca6ce9a564193b57d4a9e7ce9a3918bf8ad2f7e877d1f4",
|
||||
"resource-identity-proof.json": "763c23a446a160e98794115db82bd517d789b807bde26e5cc7c10f542c0a7b58"
|
||||
}
|
||||
},
|
||||
"parent_execution_evidence": {
|
||||
"path": "/tmp/erri-bmp-ammo-1305/focused-result.json",
|
||||
"sha256": "8d271aa86cee7676d8b715c920723356f1faf9c4a0921992860e9aa30057057a",
|
||||
"reviewer_execution": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,737 @@
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.001s
|
||||
|
||||
OK
|
||||
PASS: actual objective overlay lifecycle preserves separate ownership, late readiness/reopen, data refresh, pan/zoom/culling, supported sibling/shared-frame parents, coordinate offsets, native task-clear isolation and terminal cleanup; native rendering remains unverified
|
||||
PASS: actual map element initializes each widget, retries missing widgets, updates position and changes only stale text/icon data; no native image-load claim
|
||||
PASS: actual native fixture root/config ownership and idempotent cleanup preserve foreign map, selector excludes ordinary route, fixed budgets/screenshots/UGC boundaries retained; native operations not executed
|
||||
PASS: actual full Inspect rejects canvas parenting, wrong active container/canvas, omitted origin offset, wrong rendered box and stale coordinates; differing origins and DPI accepted
|
||||
PASS: actual long-warning phases retain visible label through1500ms checkpoint then restore radio before close; synthetic marker separated from unmoved player
|
||||
PASS: actual Center places marker100screenpx left of pan center at both fixture zooms without altering disclosed coordinates
|
||||
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 protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim
|
||||
PASS: actual full planner selection/commit body, 360 equivalence scenarios, orders/reservations/cooldowns identical; one128-unit scan vs >10000 repeated unit visits; no FPS claim
|
||||
PASS: actual observer monitor/recovery/cleanup rejects retained old controller, preserves new camera/editor/hints/timer, restarts once and retains normal recovery; native effects modeled from SDK, no runtime claim
|
||||
PASS: former chat controller releases only its own callbacks and preserves replacement menu; current-owner stop/scope and repeated teardown remain intact
|
||||
PASS: wrong observer fixture selector rejected before runtime/profile setup; no engine launched
|
||||
PASS: actual depot mixed-roster worker/item selection, ownership/refusal and radio/planning/two-leg state transitions, fixed deadline, late proof quarantine, finite import and no adoption after Stop
|
||||
PASS: actual depot HQ lifecycle, existing planner priority, server/mode/owner gates, idempotent polling and owner replacement
|
||||
PASS: actual HQ mine/magazine claim separation, real demand methods, exact token cleanup and original authority gates; native availability doubled
|
||||
PASS: actual full magazine/inert-PMN4 depot leaf, exact custody, isolated callbacks, finite reservation, false/unknown and Stop quarantine, once-only delivery and caps; native movement unqualified
|
||||
PASS: actual mine/magazine provenance and separated finite mine imports; actual authored identity capture, READY-only detached provenance, same shared stock admission, completed exact two-leg proof, lifetime caps and Stop no late adoption
|
||||
PASS: actual five random-radius diagnostic wrappers, disabled transparency, cached opt-in, exact zero and exclusion branch, native arguments/returns/outarg preservation, single superclass call and shared16-log cap
|
||||
PASS: zero-radius trace disabled by default, scoped before setup, exact opt-in emission; no native launch
|
||||
PASS: complete actual supply-travel probe, immutable 6+2 formations and 25 actors, admission/travel deadlines, six observed native-boundary moves, stop/ownership/partial-substitution refusals
|
||||
PASS: actual distinct supply-travel hook, fixed420s selector, original observer protection/restoration, failure/terminal cleanup and no legacy convoy setup
|
||||
PASS: actual supply-travel selector requires Chat, one round and480s; existing outcomes unaffected; no native launch
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mine-stock] [--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mine-stock] [--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mine-stock] [--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mine-stock] [--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mine-stock] [--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept and --convoy-cover are mutually exclusive
|
||||
PASS: actual native interception witness requires real radio cursor/lineage, original actor identities, fixed movement/hold/expiry/resume and immutable deadline; no movement/delivery injection
|
||||
PASS: actual CLI rejects wrong mode/project/rounds/899s/conflict before runtime; valid flag and terminal branch identify synthetic-observation qualification
|
||||
PASS: visible base hook and actual fixture override delegate once; delivery proof uses retained pre-super route only on successful production transition
|
||||
actual mounted HQ dispatch planning, radio, ownership and lifecycle checks passed
|
||||
PASS: actual mounted intercept eligibility/order chronology, fixed destinations, native road selection bounds, width, segment heading, clearance and settlement delegation; no native driving claim
|
||||
PASS: actual paired arc geometry,40m/80m spacing, separate original polylines, both-position validation and128road/4096segment budget; no native driving proof
|
||||
PASS: actual pair admission, rollback, native allocation/revocation boundaries, per-member ownership, hold and expiry
|
||||
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: actual player-entry hook latches original hunter capture before native callbacks; both release layers cancel ownership without new entities/refund; bounded current-owner guards and prior-release policy
|
||||
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: actual helicopter delay applies resolved Random values, preserves countdown on save failure, and leaves active flights running
|
||||
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: real sampling handles absent airports and extraction clearance preserves geometry/navigation/flatness while selecting the correct aircraft survey
|
||||
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: automatic default, explicit header/CLI opt-out, editor/authored-mode guards, optional airport override precedence and fresh-round saving guard
|
||||
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 terrain takeover startup skips mode-less/menu worlds, always forwards super, retains eligible/unsupported/authored/client/editor semantics
|
||||
PASS: native name callback preserves authored modes, opt-outs and failures; terrain suffix follows world changes, cached resolution and confirmed takeover metadata restores on cleanup without changing scenario resource or overwriting later titles
|
||||
PASS: actual terrain parent traversal, Armenhof/Nogova names, Everon alias, missing-resource fallback, empty names and bounded cycles/depth
|
||||
PASS: saved terrain GUIDs, defaults, restart persistence, clearing, backup recovery, corrupt-file preservation, write failures, and client write denial
|
||||
PASS: startup terrain capture protects client/editor/menu worlds, default behavior, same-map loads and reload-loop recovery
|
||||
PASS: actual transition waits for native startup, disconnects without bans, requires an empty session, retains every loaded mod, bounds waiting and consumes requests once
|
||||
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 Compatible and bounded stock preflight before report/claim consumption, later compatible truck, launcher controls, 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 designated zero/one 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 designated-zero/one 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.244s
|
||||
|
||||
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 optional candidate barrier, exact callback/custody proof and unchanged mine/primary snapshots; no native transfer claim
|
||||
Native finite mine-stock runner: parser, scope, exclusions and command pass
|
||||
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: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal
|
||||
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.066s
|
||||
|
||||
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.457s
|
||||
|
||||
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/team Release retains original active survivors and HQ identity, rejects takeover/terminal/unknown roster, preserves exact logistics quarantine and normal eligibility
|
||||
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 combat start releases only exact intercept claims before owning route/orders; foreign claim defers combat takeover
|
||||
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 native group-envelope admission and phase cancellation, preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested
|
||||
PASS: actual mine selector respects road and settlement flank safety; native boundaries doubled
|
||||
PASS: actual HQ and post ledger: second delivered post, one query/tick,2 active/32 jobs,4 consumed lifetime attempts, no-stock/query refusal consumption, pending old job and original identity constraints
|
||||
PASS: actual mine post ledger immutable history, strict chronology/evidence, aliases, >160m separation, detached sites and finite4/32 consumed attempts
|
||||
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.023s
|
||||
|
||||
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.391s
|
||||
|
||||
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 fifteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets
|
||||
PASS: explicit weapon retention buttons use the same ready/authorized server command path
|
||||
PASS: item editor, preset controls and dynamic item-row layout are structurally valid
|
||||
PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations
|
||||
PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation
|
||||
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.247s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 23.614s
|
||||
|
||||
OK
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 2.739s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 2.116s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 1.003s
|
||||
|
||||
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.540s
|
||||
|
||||
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.617s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 0.163s
|
||||
|
||||
OK
|
||||
................
|
||||
----------------------------------------------------------------------
|
||||
Ran 16 tests in 9.593s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.016s
|
||||
|
||||
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.048s
|
||||
|
||||
OK
|
||||
.............
|
||||
----------------------------------------------------------------------
|
||||
Ran 13 tests in 4.526s
|
||||
|
||||
OK
|
||||
PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry
|
||||
..............................
|
||||
----------------------------------------------------------------------
|
||||
Ran 30 tests in 0.384s
|
||||
|
||||
OK
|
||||
..............
|
||||
----------------------------------------------------------------------
|
||||
Ran 14 tests in 0.191s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.109s
|
||||
|
||||
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.064s
|
||||
|
||||
OK
|
||||
.......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 23 tests in 0.031s
|
||||
|
||||
OK
|
||||
PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending
|
||||
........
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 0.012s
|
||||
|
||||
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.486s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.065s
|
||||
|
||||
OK
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 0.004s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.072s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.328s
|
||||
|
||||
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.123s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 0.028s
|
||||
|
||||
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 ownership and scoped timer cancellation, current-controller preservation/reacquisition, hint retry/dedup and observer 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.234s
|
||||
|
||||
OK
|
||||
PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.097s
|
||||
|
||||
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.207s
|
||||
|
||||
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.095s
|
||||
|
||||
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.200s
|
||||
|
||||
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.031s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.034s
|
||||
|
||||
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.672s
|
||||
|
||||
OK
|
||||
.......
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.224s
|
||||
|
||||
OK
|
||||
..............
|
||||
----------------------------------------------------------------------
|
||||
Ran 14 tests in 2.258s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.255s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.051s
|
||||
|
||||
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.748s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 1.125s
|
||||
|
||||
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.013s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.134s
|
||||
|
||||
OK
|
||||
PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested
|
||||
........
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 0.012s
|
||||
|
||||
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.018s
|
||||
|
||||
OK
|
||||
..........
|
||||
----------------------------------------------------------------------
|
||||
Ran 10 tests in 0.002s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.982s
|
||||
|
||||
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.549s
|
||||
|
||||
OK
|
||||
.
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.323s
|
||||
|
||||
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.056s
|
||||
|
||||
OK
|
||||
..............................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 46 tests in 0.872s
|
||||
|
||||
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, 58 unique resources, exact vanilla/authorized external references
|
||||
All repository checks passed. Native compilation and multiplayer tests are separate requirements.
|
||||
Suite exit 0 programs 302 unchanged True
|
||||
@@ -0,0 +1,35 @@
|
||||
from pathlib import Path
|
||||
import sys,hashlib,json,subprocess,importlib.util,time,traceback,os
|
||||
R=Path('/home/jakub/devel/escapistsrereintroduced');B=Path('/tmp/erri-bmp-ammo-root-1305');sys.path.insert(0,str(R/'tools'))
|
||||
sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest()
|
||||
from source_manifest import addon_manifest
|
||||
def capture_inputs():
|
||||
result=addon_manifest(R)
|
||||
for folder in ['tests','tools','terrain-profiles','terrain-adapters','terrain-integrations']:
|
||||
result.update({str(p.relative_to(R)):sha(p) for p in (R/folder).rglob('*') if p.is_file() and '__pycache__' not in p.parts and p.suffix != '.pyc'})
|
||||
result.update({str(p.relative_to(R)):sha(p) for p in (R/'docs').iterdir() if p.is_file()})
|
||||
for name in ['README.md','.gitignore']: result[name]=sha(R/name)
|
||||
return result
|
||||
inputs=capture_inputs()
|
||||
(B/'suite-inputs.json').write_text(json.dumps(inputs,indent=2)+'\n')
|
||||
removed_overrides={key:os.environ.pop(key) for key in list(os.environ) if key.startswith('ERR_')}
|
||||
original=subprocess.run;programs=[]
|
||||
def track(args,*a,**kw):
|
||||
entry=None
|
||||
if isinstance(args,list) and len(args)>1 and str(args[1]).startswith(str(R/'tests')+'/'):
|
||||
entry={'path':str(Path(args[1]).relative_to(R)),'exit':None};programs.append(entry)
|
||||
try:result=original(args,*a,**kw)
|
||||
except subprocess.CalledProcessError as error:
|
||||
if entry is not None:entry['exit']=error.returncode
|
||||
raise
|
||||
if entry is not None:entry['exit']=result.returncode
|
||||
return result
|
||||
subprocess.run=track
|
||||
spec=importlib.util.spec_from_file_location('repository_check',R/'tools/check.py');module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module)
|
||||
code=0;started=time.monotonic()
|
||||
try:module.check()
|
||||
except Exception:traceback.print_exc();code=1
|
||||
unchanged=capture_inputs()==inputs;code=code or int(not unchanged)
|
||||
(B/'suite-result.json').write_text(json.dumps({'exit':code,'seconds':round(time.monotonic()-started,2),'inputs_unchanged':unchanged,'removed_override_names':sorted(removed_overrides),'regression_programs':len(programs),'programs':programs},indent=2)+'\n')
|
||||
print('Suite exit',code,'programs',len(programs),'unchanged',unchanged)
|
||||
raise SystemExit(code)
|
||||
@@ -0,0 +1,993 @@
|
||||
{
|
||||
"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": "a66c30039c7141e5a0f22af21aa522728fe4aa5cde821158aea3b716d11457a1",
|
||||
"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": "3b96a99832ed40002598a186dd8de1d21410c2e690df37a6319fdbeeeb4eeab0",
|
||||
"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": "89d92f138a201ad7e752e027ba3930a2e0bf647d7b3a2c576346c1467f8bea3a",
|
||||
"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": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"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": "dd350bdda1bdf427ab8cefab623fe60cce5332b062d1a29686fe52f73e9e83f1",
|
||||
"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": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9",
|
||||
"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_ItemPreferences.c": "1c4bc25a6ce9b5ee10f82592f955b0019d13ddb4084a783fadb98d267bd0f4fc",
|
||||
"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": "e811e985048e07365569acde6b5f045d57e9bbf13927f85b74e6e347fd2ef571",
|
||||
"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": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
|
||||
"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_NativeObjectiveMapProbe.c": "2d07b895cb74af58454605fb1c536a566733e3001a9375dd0677d5f274bf2a46",
|
||||
"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_ObjectiveMapPresentation.c": "f189f8987244e10df61ac577bbbc952ed5c4e6c431a8e3cd192a10fe2e8c3bec",
|
||||
"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": "682aa5549470c69fc72d261fbfcf9f7a04a41a66e0101b269ccc00bc282ad05d",
|
||||
"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": "e49bab76a015ab545088af7e5eaa3cc45811907db4e5b1c5fa8c18afef34b62f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"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_ServerItemCatalog.c": "e306b9d179b97d0478f821be3ca606c71908a21a4f87085b37a5fd18c4e3575d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "c0c3d9d1cf4615f38c793f1250315bbdb9349f33afa0841851da89433a303c3e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "1b466886e9f5fbde1de0be20395e3887046c6b5a9a239dae92cecbfb721714c2",
|
||||
"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": "15a28876954bbbe0e80d5b5b19e7336f154023cd05b67d65dd709ae7fd9ac712",
|
||||
"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_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "ec25e5c3a5b97527f9cd70341c10d69d7124048089d26883ac2f8c9b3fd2815d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "63ad027dac5bafb9e93805c361cbb27bf82af0567ea181a760ddedea98204c06",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "487f1d004aa4f7a5f58c12c37724b26fcd54fc62b4096d48f3a7436d9958274c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "458b84b3fb31c5a2bd1b7c3d65f25e0aeab91f5505ef0813231435c8a3c7d2b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "5b7661a5617b7124a10d3c18e087a4e2363a967eecc5c87ecc94573f2abc07f2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "d66a29a44e999cc3f2e56ba9c3c6bc936c027747312e08778ce301c1837f2112",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "66b1c4591b0ecc67cb08418a115bb02ed2b0168b7ae970f1e0a1ea335c59dc5b",
|
||||
"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/00_Core/ERR_WelcomeVoice.c": "53dcfd974e3d0e63bd4f95e6fa79e5b95804c3cb188ade681e89d0380942c82b",
|
||||
"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": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
|
||||
"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_AutomaticEquipment.c": "5832cbd3a43748e77f4e7f1b59361801c6d0445e0e15165e97d7a897b338709e",
|
||||
"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": "b59016d83cb9d40136b98b4e0067ea490bc553574fc53603593efd5522dbed20",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "c52d4a3cc0e71eb136487c42df2fcd5bd6da1c33d31dbd3d6429c237dcf4a8d9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "05d341a9a000bfa2084057bd67d476d6e35adca6c8518d74c27cd31b551bbb95",
|
||||
"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": "defb12924ea5dfe68f86c2bbb4b07362f016ffee810f720d13f01d81881b3cfc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "d873b5b689e918f8c907918d673304a184ac2e4a4cb6face527b37a67821ee9f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "e9bb5f2f3ec270074964fc8607e5a07c23f224308a4446837598d93e201d7775",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
|
||||
"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": "2f0db77ba999586e4290e440d112f1002da17ab5fd20bb4f5b7ff6df99f58a81",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "cee3ae301ac2f211c290450b644a7942c9786a2a40d06f16e2a47efa96fd15b6",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "a37edcf66e43945f331db47fe81cb2e0e767a7aaf8115244dcf9e6295932be98",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25",
|
||||
"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": "79369d5cc30cf628f02df0023157ab423e40497325dfd6a73b218757f2b689d4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5684fcbee128a35107312452297f7ae2bec28aaa1b63f619fa649f36df8ea476",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "1bfc1079961eaecee0c1ebb434570aaeb359c008f9f309033b33582092557b35",
|
||||
"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": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "bc290ee8bed299d869598cbf41ec281653e0cc7f3c64c7214613df8a0fc83829",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b",
|
||||
"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": "35678ec625fb0a3c0871e2c373fcff49816440a97a165ed25c8798dd72ef059f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5b1578afbf6da736453cc9d3872979eddd1649746aa32d3b0c7a9e3cab50057e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "dc3acdffc8ca48f11b131f66d30d679ca68f3b3004344bdc78723bc9305915e0",
|
||||
"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": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
|
||||
"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": "4bdc920e87fa768b0ef0ed893c70ddbbcc9255d74163d7b657fd2ec7c4f14c32",
|
||||
"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": "8d197f7a1398625e5a19db3284b0bf72c6ee6e032843a3e4d9a4e58de42b6825",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
|
||||
"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_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "595fce681ec74e0d3ffe7a29c527c1551874469108ded479bed72a0fcf6c732e",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "701311de6a2c9fe8f0534a22056323c34072df26595dc70a7d4df45bc06e6c13",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
|
||||
"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": "e8d570f7bf3b8c4067ad81d47bca7f35514b2f8c8748f5fa5f775fbe27debeac",
|
||||
"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/ItemRow.layout": "8ac6fbc7fe0ce0ffc3185516197303bb892a4415948f75ae06f3bc289fefcac6",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
|
||||
"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/ObjectiveMapElement.layout": "b364752c44896d67dad07e466a04f4504a50813fb36ee7c34c9189ea9677b4e9",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "6e83a9c70282aff43b23a08b732739e7a241a31e8abf200498c90a745d3d60dd",
|
||||
"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",
|
||||
"tests/helicopter_availability_regression.py": "3f256b7f5db246723b75caa2cc247249881cba95bde71ea1c90733404fe19f35",
|
||||
"tests/mortar_salvo_regression.py": "0f5d5f5d33f64ff43f5a2b954fe4eec032a00697f51f09efa10284537a3682db",
|
||||
"tests/test_mission_rules.py": "f534ae447fe1db6ae939430c3b14568d2bf1b84956dca295cce04211411d9ee7",
|
||||
"tests/policy_harness.py": "e861c30037b3e456f0c8ef1c02e9fe1417b601ffb15d2037974715008865e4be",
|
||||
"tests/test_time_policy.py": "45ae5768f6e87009b4074937cbc2e384c59341e905a3f250672bd2a110b2e6c5",
|
||||
"tests/test_radio_defence_policy.py": "48c9c01dc6135a3f6d2187b0974645758040f041c3c2c2c26b14222fc572dfe1",
|
||||
"tests/test_performance_comparison.py": "5f932de9e9898acdd379f26c777a35c884269522dbf8c41991a7a25bf61c369a",
|
||||
"tests/test_release_check.py": "8b6e755ed922ad129ba01c228989610a31f3a79841dc7cdddd4ddbd0e510971b",
|
||||
"tests/test_player_admission_policy.py": "745ec0a9e491ffcf5bec53ebf67ecee8333f4dcfa5d19bafbde31cbd1cad7f8b",
|
||||
"tests/test_recovery_policy.py": "adc4966ab92f0849d08636d93da5bd02b9162d1ad7369b325a1a357903abaa55",
|
||||
"tests/test_admin_setting_policy.py": "69af6f74e262ee4981ac428ac1ab85561f8b365aed5879e20d315ededca9ee22",
|
||||
"tests/test_prison_placement_policy.py": "34539744426f0b30e41883203484ed60606df8ca319324014f07e833bcbf854b",
|
||||
"tests/test_environment_policy.py": "66b86e66f47c4ce397c6093a50a724bbe8dedbf3db53e0dd7d53ff33243a0b52",
|
||||
"tests/test_faction_catalog_scope.py": "c8fab92575f2621f47ed8685243338aa9ea717bb809c2ef9e8e0884af9df263b",
|
||||
"tests/test_environment_restart_runner.py": "05bc09bc45db70ba4a635b65b0a96aa38437ba50c98640b47ed8d0683c3a5f71",
|
||||
"tests/test_inventory_enumeration_policy.py": "95cbfd7c4351cb9a8e1cd6783524be79f77255e5996299919a61dcfce8b0f21a",
|
||||
"tests/test_site_discovery_policy.py": "40fda37b86d469a1cf8fcb7a1fb18abcaab0df44ad09f50018744d42f8f4f649",
|
||||
"tests/test_headless_game_runner.py": "0d84160076ec9961e7315ccd50d6ce45ff971328c298649505fbba6305c22f31",
|
||||
"tests/test_initial_guard_policy.py": "0c80e744db1ce0a0d0746c43d867f5d2f47d9b92bc48d6561ceeb28a204d8743",
|
||||
"tests/test_casualty_loading_policy.py": "cdf2c0abe4b794502f18228b173db47c4093ea062378ec9e3971e0c4f9e3bf1f",
|
||||
"tests/test_casualty_reservation_death.py": "fd68dce04ea48ee2a22fac499c32a5c53847a25e3f14eaba3f50437d2c040f25",
|
||||
"tests/test_casualty_ground_policy.py": "6543c594293d7122242ec68d506a92dc81464d110cdb7496a225555cee338c83",
|
||||
"tests/test_guard_cancellation_policy.py": "f8f134b6d525a3c775677b2a95c562b12aa84ba287318c08c833d684ad0bd9d8",
|
||||
"tests/test_radio_feedback_policy.py": "6b576472f81a35bd4df4dae3f19925b046eedbba262ad67f9bfe1ce9d220a487",
|
||||
"tests/test_extraction_placement_policy.py": "d924f163d98c78989938ca01eca5935891fb454266810f4817cbe49651b84ae2",
|
||||
"tests/test_casualty_remove_probe.py": "e3b8ac386bb8e4a9832215cbbe1cacf7a5bd1314467bd4b07ed4a57b2db75458",
|
||||
"tests/test_casualty_incapacitation.py": "55b5cfb7b3eae496a8cc18888872d11331ecc01afb7326fbee3b8d65047dbe93",
|
||||
"tests/test_diagnostic_no_splash.py": "d99539a8b3277c2f1ac3e3bfa4c897876fe21e704c9ae33c542eed79fc2e9e65",
|
||||
"tests/test_native_mortar_probe.py": "217801a6eddd48f76e99363a72a9812c0f48766ebd2faf8e188f4466ed1e4088",
|
||||
"tests/test_local_admission.py": "0bde82f6d5c31c4187ed0aa1935940b8b9e634868b3a4820eca073580ad136b4",
|
||||
"tests/test_dedicated_preflight.py": "0d654375db6b8eb91d0b92663b50e32776aaa7ecafbfdb83c00f04826df5236e",
|
||||
"tests/test_mortar_aim_renewal.py": "cf228b7f83d247d93277ec4c8644eb1090a20336a7e9ee2b90086c78199a70ca",
|
||||
"tests/test_native_mortar_transfer.py": "3b2a201a73c9ff2509276428988e4a98023c6aa94f8eeb42bc06c6cc604473d2",
|
||||
"tests/test_dedicated_native.py": "f0323b20743221bd1ad46d6462246c2a0e2be84b395e40faa39007ef330aaa3c",
|
||||
"tests/test_mortar_report_ledger.py": "fd2346e06c37a9e7621e1861e0f472b72ac14786fd2bcfbd785b62700d55ffde",
|
||||
"tests/test_native_local_admission_probe.py": "16864bc359ab607dae3919442bd18f191320721411a8156e23be999f24e4454f",
|
||||
"tests/test_powered_flight_policy.py": "86bfd5851be6fe3a187e1fe7fd2b7b0965c891cf29b2260b0df292255c5c547a",
|
||||
"tests/test_prison_escape_policy.py": "d5d54588116eb730a8fda046f25fc4edc89a5345f85774cbc0f0a9b3adb85b98",
|
||||
"tests/test_powered_flight_pad.py": "690c1c6e05f3520a6d4d6c45a0fc5d9184e30a12b24356b3126bdb35c4171b82",
|
||||
"tests/test_item_station_teardown.py": "4e0f508dea6172862be82d6c7f295ede2bfb2412c390a0937a75ab176655f4b6",
|
||||
"tests/test_source_bundle.py": "074ad87ee7ab0b41ab94a7cb28efca66a975c24b8e2574122a13a52a4d491d0a",
|
||||
"tests/test_native_flight_footprint.py": "96923c018608f0c4d24294a9f8e769e2037be1fac8f1d51f4d73463706e134ad",
|
||||
"tests/test_native_flight_input_diagnostics.py": "355e2e45b86b9a46c68efb0563d16bef7a032cd7758169704b4b26ea92bee2bc",
|
||||
"tests/test_mortar_logistics.py": "98cdf38e43eb564163d8b409dfc95c4ae23e775c423651f05698acd52a7ef5a2",
|
||||
"tests/test_mortar_courier_storage.py": "0eb75fbcdcd712ff1c2220dcdd87cff6f3ed1e6e8f1c889916daa6b84a4359f5",
|
||||
"tests/test_progression_identity.py": "2fb3725aa735e00b20ba7a4ac45f8e087d4346c58a176bee091bab0a9755c1df",
|
||||
"tests/test_discovery_map_position.py": "0644aea60d4c546e819ef417771563ab7598e84d5e13db2fa63416ae1fe6ddb0",
|
||||
"tests/test_vanilla_game_control.py": "8ab3777a5bd0f8213efae08bd6db70a05790af992c2abfda8e5e5aa079beebbb",
|
||||
"tests/test_archive_game_control.py": "8126e2be91f9ee8c09fceb82d03bb0d9c51247909189a424c3e24dd2b1ed22ce",
|
||||
"tests/test_flight_action_runner.py": "aa14ebe85fce7c0435f48aceec1d4463b33fe8a5792b4e935b543dff94f4ad02",
|
||||
"tests/test_native_package.py": "0776a1eedede7185aa36c7fe816ea6231e6f475c0f6d210a2c732b23dc6d765e",
|
||||
"tests/test_spectator_guidance.py": "26c02deb1a707f51dcf577a9ccb789bf33f432b41d9404d36a7b1b3c8802298f",
|
||||
"tests/test_native_mortar_salvo.py": "f45625eb92d16adc8b3eb57bc72b77c8829d46c2c7e5bef40d302fc90252ba72",
|
||||
"tests/test_pak_inventory.py": "8f0b55bb295117c226900bd641d25175db1021a365866a5ce6482a78d08c7f41",
|
||||
"tests/test_packed_core_game.py": "ddac4281f74999b1e60c2052bbdee36c97699192cfd5174a88b6f01ee740111e",
|
||||
"tests/test_mortar_refresh.py": "0ac74cff8aa10fb06ecb75d17eb7ca3a6b80bf5194522bffec583a44fc01a419",
|
||||
"tests/test_archive_packed.py": "37712810b7c6fd11a2df35665df81546f8b98682dc74b317ad1f9ad6ad274d86",
|
||||
"tests/test_native_mortar_refresh.py": "60f3c4fcb063506e9bd85e4abd3cd2fc802304bc71933f3e31d88f5b896aaa7b",
|
||||
"tests/test_mortar_activity_completion.py": "a0db3b63962bc95de42ec12ef17c53730464ac7421a4475020957121513586ec",
|
||||
"tests/test_packed_chat_game.py": "d23c099d17a0dda09e5ee28931a4850f9bf6df5a7874581342eacbd16860565e",
|
||||
"tests/test_shared_map_ownership.py": "486eb3a8a04a47878b87ec3952c613542871077af1de27ea7299fa3d72caff1d",
|
||||
"tests/test_native_shared_map_ownership.py": "672d248550339dc6350e548034c50b3440d44b91668457f3efb2d91c8445c3dc",
|
||||
"tests/test_participant_selection.py": "e153f69ffa60d186dc3b1a238df1d48f2a0623b2dd8331d2cbbbdd57cce5529e",
|
||||
"tests/test_ordinary_screenshot.py": "eadd4f8ae2a8057d0ac7bca5e8f4abc260faa10cddfca31b8552d7b49669ab33",
|
||||
"tests/test_aircraft_flight_policy.py": "147a27fb57c0b01cded35eae26af4394d7f41eeeb68856f564972e1c89c629c9",
|
||||
"tests/test_aircraft_flight_envelope.py": "6499ec174ed68dbfc07bd49275eaff8a7e60865615bbaefee354de7233a6ff13",
|
||||
"tests/test_native_aircraft_control.py": "3ffed5429896254d96b67ff3fdd01f65689f526e6a1766cc6874e2e63f2e26f3",
|
||||
"tests/test_aircraft_translation.py": "983fcff4800e777cd1c42126431ca94e7c03bc06b5fb34a243704b8ca55dc36d",
|
||||
"tests/test_action_feedback.py": "1fec11a218b6da69c8c40ce232523582f0ad390f8357e74f24daccf5d46d3814",
|
||||
"tests/test_spawn_retry_budget.py": "c182acfcfd52cd74a94dc3336d7603d14668850a684b758cc7545a98a5d14beb",
|
||||
"tests/test_native_stats.py": "a9ce90c74f0ae7e5c40e451f6b1d60dadde831c3d858710a70929390d5c70f7c",
|
||||
"tests/test_native_end_lifecycle.py": "8b187723c9039e68e3e590c812c91dcffe1e5917d4e450ed798dc177888fda7a",
|
||||
"tests/test_native_end_runner.py": "aed94be9b370a412937303cc5b66f0151c2cd64c3e1358f983f9ea53eb0d1057",
|
||||
"tests/test_escape_result_wording.py": "7b3613cccd4f24d3ef4665dfc1854cfc958a69018a59f9b8090617f0185a82a8",
|
||||
"tests/test_preparation_status.py": "e43cb7ce81232a31d00219004574dc2d1806760e0b6f0c49693725ffcb1b4e9e",
|
||||
"tests/test_headless_display_probe.py": "d4d6c9907d7419ca888d5d9ba7448cbe6f5d2e53810f74c85660dfbdfc9f7e2d",
|
||||
"tests/test_headless_display_runner.py": "f03a908e813c9ca4dc2ff13b3ade08549931e39490b8636742390a304c73974f",
|
||||
"tests/test_rough_intel_feedback.py": "d7395ecc498dda46e1c9a4c8fbf98a64f2bbd013de7806517fb8008756e7b40d",
|
||||
"tests/test_aircraft_route_envelope.py": "08b16d4e7f97db96e3f88af0cfccd9b6bc083f6f25ec33cffd7ec36b18798729",
|
||||
"tests/test_aircraft_route_policy.py": "b717734a07a59ada837f05c36172110bd7d0b5a5a277e8fae55a11dcab3e2aa2",
|
||||
"tests/test_aircraft_route_probe.py": "bd8cb998fef33db8f26342eec0198c54b7715662d333530e2bede572c81f162f",
|
||||
"tests/test_ordinary_input_observer.py": "09cf661ae47f53cb429a7ab17c2b752ae30a04368a260468227b0678148b2434",
|
||||
"tests/test_ordinary_input_runner.py": "1ed373818673a438647fc7074c4c689f5bac0a91e8d55edf29d466b96f6703f8",
|
||||
"tests/test_private_prefix_cleanup.py": "bc6d3fcf6a5ee5b5266bfc4516642d2f73e71dfc870c527d67cb5a47964dede0",
|
||||
"tests/test_runner_private_cleanup.py": "4380874af7553391ea7e1e234c8a3f8e61922e0f16b1bf9bd4821cc479e5edf4",
|
||||
"tests/test_headless_input_proof.py": "55c84de6dac3a9c44bd1ab4113d306544025a405c613f6e7d26550328e84f6c1",
|
||||
"tests/test_headless_input_exercise_runner.py": "0b812647718a3d7145905a3ed17fef97b025d57b1372773d2c1069a3473a9b1f",
|
||||
"tests/test_inventory_control_runner.py": "f325fe1975f7a56fbbb1a6357206d2ac0c9e7c32c396473fdfaf1cb80ad39b11",
|
||||
"tests/test_inventory_layout.py": "8e176f8a87c300b8062a37ee34b22a105978c7d9c6147b506757135f4f48a1ff",
|
||||
"tests/test_radio_waiting_text.py": "2aa54d8126b3fddae2b77d496f56d2d6e6d393c6d5124bdb5598713d9c29d629",
|
||||
"tests/test_relative_look_runner.py": "131d829c60a7bbfe3e047af8e38d255e5ecb9d84b7d2188d14422dde724fa05e",
|
||||
"tests/test_ordinary_look_observer.py": "cd5842e54c9ccab16766637bf2ab4e4e0b98f4d597b5927b0c2ec3f720fa3668",
|
||||
"tests/test_ordinary_look_evidence.py": "1b98be4b69a5e5bacf46791f1e009fa3c73cdaff875c012837c9888443a61633",
|
||||
"tests/test_ordinary_gate_observer.py": "78ff734604724a525809567ecda88f4d5fcd67816a6ba4960b72d0685f1a8b00",
|
||||
"tests/test_ordinary_gate_evidence.py": "2bb3cff082b3fe45f668933a5039fd06a8d31562049cdd41c4f32181136ea5df",
|
||||
"tests/test_prison_approach_proof.py": "ca71ba6c8cc20dad52d2966984676a111004333c24bc408f1ec84312e4208039",
|
||||
"tests/test_prison_approach_evidence.py": "660e03b6f9932947c1aafc4c043c2a2c5bca776433c2146df18e8bb90c606a9a",
|
||||
"tests/test_aircraft_route_demand.py": "96d9a21c49605cb671525f977928a21c57f1d0b441460a2624892006e7057efb",
|
||||
"tests/test_prison_alignment_proof.py": "04c96825ea03b95c3966e3a53ce2c15990d63388386d84f2bff3e6b6838b18c0",
|
||||
"tests/test_prison_alignment_evidence.py": "214af04ff9b0e8ebf0bc97f528233f5d55fccc7623392a65c6dd286ed415e724",
|
||||
"tests/test_aircraft_control_bridge.py": "bae6f1711dcc5f55f7a813af251fc210ed017c58a8067c03d91e936824542ef0",
|
||||
"tests/test_ordinary_gate_choices.py": "0e21f2933a4862eb5fd2f04b3b32dc7de6b2ca72d920aaa332d179edadb932cf",
|
||||
"tests/test_prison_action_selection_proof.py": "1f09fb84b73ea916bb39ef985c58aa6886223e60cd425f929b3a020eef74ebae",
|
||||
"tests/test_prison_action_selection_evidence.py": "1fee0421669721618dc2f9a3039f945d470b83b186661d3b1f00291ff8b78e9f",
|
||||
"tests/test_aircraft_service.py": "9c19a09354ccfe8b41961204d80c3621d11e6704909b7266fa00e6c197bfd20b",
|
||||
"tests/test_aircraft_service_cancel_runner.py": "1220e7c45c50590d12c9a5192eb4482e7e6942d7c00f36d9a79b5ca70bd1429d",
|
||||
"tests/test_command_maintenance.py": "be2c942aa11a5f874448e94f06925f2f1de2210a14881fb7e486842119cb673c",
|
||||
"tests/test_aircraft_field_rules.py": "dbed3a499eeddf2513e3582667ea2bd90fff6ed26057891c7df6e196c3d00e84",
|
||||
"tests/test_aircraft_field_envelope.py": "67e60717a92580e3c4caa4974994cd92a96c98562be805b31319b3585f296639",
|
||||
"tests/test_aircraft_field_runner.py": "822717f77702c335667b226f025aa6525415689b492f9ed42dd256d4c893429d",
|
||||
"tests/test_prison_coarse_facing.py": "fe0ceebb74dba77005d6a7e31baa1a50156cc66f79a1d90eba4db9b27b099acb",
|
||||
"tests/test_prison_held_action_proof.py": "349ee99d36f18fb7c70382ce95f1e9d84d819575a45b6f5429394d1702f1f227",
|
||||
"tests/test_prison_held_action_evidence.py": "bbb032736774bc5db5fab7758faeaf038eeaae9eb49ba706a52f1e9bfe09fd01",
|
||||
"tests/test_prison_held_input_adapter.py": "56fa60ae69bf280e1c2e90e7882fa213914623980b6800a4312c6f1017b8f632",
|
||||
"tests/test_prison_held_runner.py": "d50905e899c2d0d92ca2f4c51dccbf2166ee21b8c6d2d4b218da459b724c5a4c",
|
||||
"tests/test_aircraft_field_flight.py": "ae5e18f0e2efe5ad01523cb1cf9bc64139094aeaac7477a900a9abd8e6ae8f18",
|
||||
"tests/test_aircraft_field_probe.py": "fe4e5b58bbdca0f366fe4c614f7506f2a05fa29fabcde345e322cdb3d62db897",
|
||||
"tests/test_initial_admission_exhaustion.py": "14d6959a1185f154389be1405c49e2f7c1c9a3f27295e26074ac4ec74380057d",
|
||||
"tests/test_casualty_feedback.py": "2d8bada9a3fd7583af4fd4f07033dd9eac28ca3bdf34a4557c8985b7a1714dbc",
|
||||
"tests/test_intel_admin.py": "f2704740a380de8e93c7ceace414744f938442cffc6bca77a3439b4ae36aade6",
|
||||
"tests/test_intel_reroll.py": "d102cff7467323440273eb457b5dfed6610d27f32c52c6fb7801ce93348ef5ae",
|
||||
"tests/test_admin_player_tools.py": "7520c768b760ef3a03dd2f17376077fc17695360a89f91df88af924899a74517",
|
||||
"tests/test_admin_session.py": "6e1850c625e18460a5d64ccbadac992b663a46bd612fcc16b6006f19b3014896",
|
||||
"tests/test_project_schema.py": "0e25ade3ee0083618c1b2837aaaef36ce33663d78f35d862e1dbec256f4d6e40",
|
||||
"tests/test_admin_tick_delivery.py": "8f61a6aaf07b0c41df2f415a1956d8f09fe61a7d4f256775ca62511030937a5d",
|
||||
"tests/test_hq_doctrine.py": "5c18ee72454cf92132dedfb4bf581d174d67fc2e423158347ebe52ca74e8a416",
|
||||
"tests/test_force_ledger.py": "3dc268db304b9465d53056edfcd8cedcc15591b411c55ae8f9bd43e163ff9c49",
|
||||
"tests/test_hq_body_observer.py": "6cae50ef0a2b2fe35845f42e90998c517c061fc417cadfac375bacc89bbe603a",
|
||||
"tests/test_convoy_budget.py": "481364c432715336825466a9ff199edeedaa2d3621daba90c0503addfa6010f7",
|
||||
"tests/test_convoy_dispatch.py": "47e77f544ec6f3f34346dc6b5082f9df0a2d869897e094ca993a92c7315468c0",
|
||||
"tests/test_convoy_admission.py": "0ace42a7e1afee7413e45a3909e7ea5c29dbb8c0e692acc3dc9a35ea7ffd4adf",
|
||||
"tests/test_native_package_external.py": "8eb3eaee401640521c67a51607104a28de89ea9c32b3b6dffd05d9d3026fca3d",
|
||||
"tests/test_convoy_road_plan.py": "62bb655a84f90e934bb894f8e472a8a06905d72e1c0b05bd641e46eb8f4873b4",
|
||||
"tests/test_convoy_placement.py": "dcbf572747a85edbfac341e7e358b1987150a2eb721708a3a025639be228a7c3",
|
||||
"tests/test_actor_group.py": "0d808be40d13866bf8bd983d62ea3a8e7772e9c49a41109fffb02c5352153a4d",
|
||||
"tests/test_external_addons.py": "4e2c3fa2c92661c49ea0c492648b736bebd54f24cd244f3fe27710a0c7a487ab",
|
||||
"tests/test_external_profile_review.py": "a35e9670a8f5eb47d28b4d6afe498e5a58b2ab2dbdc59912a206010ac8dc5240",
|
||||
"tests/test_hq_delivered_casualties.py": "c22ad9e395b36b41e8292b034f170e14b5d13a6a02b2a81dc619dd37110ad905",
|
||||
"tests/test_hq_ammo_dispatch.py": "6c7a4cbaa41ca3bee01082ffab376fc2db5b08757aac88c5e8caf99b39677d0a",
|
||||
"tests/test_convoy_combat.py": "140d5e8c8c978f97f7f15238bf2aa4efc6ca4d9b6370ef5a0c68bf469cec0b9a",
|
||||
"tests/test_native_hq_body_probe.py": "f2b761fadf013d55d4e9c2ae11c5349fc054e767cf950aa632a43b8f4fe1d758",
|
||||
"tests/test_enemy_optics.py": "06361eccef16d60a6f5072f9b126814a8f686c478049760047bb2ae8d19b5c52",
|
||||
"tests/test_native_convoy_cover_probe.py": "68681753a1ab89a8e8e07ba7f701190bf860d07762e5a06e87da7ba606fc0de6",
|
||||
"tests/test_vehicle_security.py": "f08a1cffb0860ac7ad93e94f4cb8b7cc37b8c49b3dee72b1d310fc72d9f95422",
|
||||
"tests/test_vehicle_security_native_probe.py": "977384c5ec07588bc77aa9aeae45b008c02d55d31169e46984a1947e987545c3",
|
||||
"tests/test_vehicle_entry_diagnostics.py": "49e8b4cd8274e08de628e89f4471ddb47823af38d98b464336e8c98a4308dbda",
|
||||
"tests/test_hq_radio_node.py": "2297ae23b7a5fece845c13f16432dece6e2dde55ecc097a5be6311f470dd5242",
|
||||
"tests/test_native_maintenance_stock.py": "7acbb488f7075428c08a10cf0e975ca0d508f3bb6416eddcc2991da93a5fad91",
|
||||
"tests/test_packed_external_game.py": "c5581fa3225bbc5b160fafc26c65783eb7d551489ab101b17f7a6acc1d8d9e63",
|
||||
"tests/test_intel_registration.py": "41cd929a29ea5e6b37d856cfc873c33fa2a8130e3aad30146f522ce217875488",
|
||||
"tests/test_convoy_startup.py": "2c9106023ecb6dcfb5c96c2edc98b51695c325c685b2ced37b999b6cd4504c65",
|
||||
"tests/test_failure_result_refresh.py": "076444d2c740609ea4290de1525cd5d7fbd99beef3c48c134afb581422a3dcfe",
|
||||
"tests/test_convoy_auto_settings.py": "fe4a1e237e31bfac11f07b1986bff859f6b4712aa7759ce9e359e28e5ec2aec1",
|
||||
"tests/test_settings_migration.py": "5a82ba8672b72fb388a95e297d53452e45679ed3b94f5c7d4598455179038aef",
|
||||
"tests/test_native_memory_deadlines.py": "f2d3f0feda862318ab936031487743218a8c8241d192b34e2b1ab63a5aa2cc48",
|
||||
"tests/test_enemy_gunner_skill.py": "67172901ed950517977e535c1237e8eaab10d22d52452bbe05fe16bfbb4089fe",
|
||||
"tests/test_native_infantry_fixture_lifecycle.py": "c20ed9dd152489a8242ec0b97135b0691c9c104783bb843b0715cdd8d7c2e156",
|
||||
"tests/test_infantry_ammo_access.py": "bd80e4405c3f2029553b5e932ec49c6370b8366cd4e9ed03be89393f86c07dbf",
|
||||
"tests/test_infantry_placement_settle.py": "1490a797e016b99a222280f57875cc83096980022d1784495a80b8a406d400f7",
|
||||
"tests/test_infantry_resupply_waypoints.py": "df3596515e0bb6a4cbf1e6f07d56755344415ad1deeffb8a70f71e8ed73a139e",
|
||||
"tests/hq_network_regression.py": "63c7525b26ae6b6e2369307250e89223a77e7e28321daf4309ab76f21ca1bc50",
|
||||
"tests/test_hq_report_selection.py": "4bd4c4800c217584ad9e1b4a37968350eb9a160e0151fc8b0375781736726cc0",
|
||||
"tests/test_hq_local_handoff.py": "0fdbcac1958b0d12296753e7c9d92700079ea6c5c8e33d0e21e8318f997b79e7",
|
||||
"tests/test_hq_local_handoff_intake.py": "c51f0ca082456331eb5856bf6dad864c3852adc20beba9b6829bdef978b11d88",
|
||||
"tests/test_native_local_handoff_probe.py": "5a0904863ea00fd7ad262fcf91d8c1e55036b2041f16b043104f333c37d8c7ba",
|
||||
"tests/test_hq_road_intercept.py": "ba4ce9af49acdbf5c0c04b849761ea36abe2ec7d68ccde1f0cd731fb9e3ed451",
|
||||
"tests/test_prefab_identity.py": "2a1c6e4cb1ead0c7b36b8fffb2ba0c59dc7e025dafaf8344a8158d38fe17582d",
|
||||
"tests/test_prison_ai.py": "557015a4a3191aede258dcd7dee4ec4f555c3efde02331687185ed124cebb4fc",
|
||||
"tests/test_spawn_scene_inventory.py": "f29bee9c629072f51caf66b680013b18f608bbfc5135a1f020e1a2904e89cdd5",
|
||||
"tests/test_spawn_scene_lease.py": "adaf38b259cc36af526884d3d2312ccec0cbe6eca18d7aed2c1a066be8ea0da6",
|
||||
"tests/test_content_policy.py": "260eedd838802647af59f33a15510d2c721aa80a7540d54e47f22734041cb49e",
|
||||
"tests/test_random_settings.py": "75fbcba53ff2331811fb91051bbae1b2c28108fa9477d98372e0eb057655f225",
|
||||
"tests/test_hq_convoy_combat.py": "07a4cd8e3bcf50ced71de05d0713a7944849a38b3f33cdea27f145bd53b9708e",
|
||||
"tests/test_faction_selection.py": "77e4789499b3560e729a115197c5b02d032c291ae1bd44b1cac5a2c2c476e450",
|
||||
"tests/test_generated_sites.py": "111095f40133b025ab67380b6cdcbc25ce0ecbc03379d1a015db6fdb0e5f2b25",
|
||||
"tests/test_debug_ai.py": "7f4b847ba11e8da937eba7be3c4c0ab898b44567f6f553ff842da54c1e7a85c2",
|
||||
"tests/test_mortar_station.py": "6570f18f787b7366ec5341da68dd99acf541cbbc31c6db7a9a3ae967506456ec",
|
||||
"tests/test_scouts.py": "25c6bb1bcc9cb171d12cb1e59b5b278e256a7a4b257b5ce3a1d76d60d459bb59",
|
||||
"tests/test_air_recon.py": "ed8938ac85c2e539bc5cddff339809624bdaecfff63ff4b2ab728d006548dc46",
|
||||
"tests/test_air_support_policy.py": "bedd5437ba0667c371c390cb8c4fb5a3096e8ef6a71c8bac2091264b8d2eebf7",
|
||||
"tests/test_intel_body_inspection.py": "04dd19efafc796f349976d29df77cb71b95615e527ad9add4fceda1f6105fc94",
|
||||
"tests/test_air_logistics_orders.py": "adf7181998f522f8825b71ef10955c9311aba9086e5bb601cfd47599baa46d8a",
|
||||
"tests/test_enemy_awareness.py": "881289417a1e4af219546b113d018e9bc6a402a16cf4bfa7e983ab240f41c2aa",
|
||||
"tests/test_faction_menu.py": "9e6381a4786487962358362b75a2287532a688ab27df756e84801e2bb6dc2e55",
|
||||
"tests/test_hunter_opening.py": "8d791372f465b6242a386d81b8e2136865390cbea5dfdcbfc6bb8b4f717c041d",
|
||||
"tests/test_journal_readability.py": "47764126522e7d7a90100cd9beff741bf49e4d8390111f977919d3e323a5c7df",
|
||||
"tests/test_player_medical.py": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"tests/test_gameplay_session_regressions.py": "d9968b06627ce10412e5b1165987de662385d5dcb29090c5626b90fb59df52f2",
|
||||
"tests/test_field_sites.py": "fddb0e44e72fdfe32bb94347a14da64efbd2208e4f252754e80c620fbecda56c",
|
||||
"tests/test_town_garrisons.py": "3674f713d7adc62ec9098f7923991c9f6b1d0edfc1431ccfd82fc8031ddae17f",
|
||||
"tests/test_unconscious_controls.py": "74d4008a5c02ad0087b55030c177c8320b7099c11b97a14d93acf0ad14941356",
|
||||
"tests/test_hq_local_awareness.py": "00c8023f85e88ffc1113353836962c31e8e541a32c9b2f1f66b91eaff5b923af",
|
||||
"tests/test_hunter_combat.py": "240472940515795b205d5caf530392ce416e3e0d2b97e473bb935930f29287d6",
|
||||
"tests/test_enemy_medicine.py": "d13ab1d4ebe81614e00a9a579c6bcc6bd5b2c608187458f414e47f47686d7ad0",
|
||||
"tests/test_infantry_combat.py": "03bc85811c52bd894ab8545794135227fc33b911a51f4e70d89fbeb2673de8ee",
|
||||
"tests/test_hunter_profiles.py": "bdc7898666a7e1078ece35b5dc9bf903d2218843abb24addcea9353fe6b3f7f3",
|
||||
"tests/test_gameplay_review_fixes.py": "5f988d63ea4b2a8a364b181982ddd462baa628ab66e3a35d0fb5ea6f20c50b0b",
|
||||
"tests/test_convoy_column.py": "8c5de7616d4f8c3ed15bcc29bbb57f04dcaaca0626683b81547e2170fc5f9a62",
|
||||
"tests/test_spectator_recovery.py": "8bb59c51df003e24532ad9476af4c8ff3b7f4276dca25e8162b91eb77c7b67c2",
|
||||
"tests/test_server_log_regressions.py": "733084d7d2e33eb96740768c48d9e25bd7f3ffa9081949e38d0776c6822f5748",
|
||||
"tests/test_mortar_load_ack.py": "6eceee33969ec268d904f062bd1ac12ec4269cf87acd235469052b193b048774",
|
||||
"tests/test_body_recovery_lifecycle.py": "b4cc6df60863e12a16ac555ecb9818e318f6325cd989bc97d5bb6ed737857a73",
|
||||
"tests/test_native_infantry_cargo.py": "0d27423c6834503840813327d0d3ba0d675206ca759260ff79cb775adf83e314",
|
||||
"tests/test_native_infantry_setup.py": "8d935cd24ae49ca8a11f9a52fbd73146e567b8f36e0a7acc6565eb3e7d55f1fd",
|
||||
"tests/test_view_distance.py": "ddc6cbeb41485f14a4f2ce23a7a86f1708e7e335bbeecee6309be49fd72e00e7",
|
||||
"tests/test_optional_transport.py": "16c72845dd07f4ade7de361136c04bd264ff75634152e83a19d19a2fdf59bd0e",
|
||||
"tests/test_terrain_adapter.py": "bcc6f469a12399f833651c591b3e1ca9a8e7f49d8b98e223a271fddc245bc4c4",
|
||||
"tests/test_terrain_sites.py": "03ffa5812ae4fa282174f29b5fb3738fdeb261ea26ddbc44b9cd3b3d61c008c1",
|
||||
"tests/test_terrain_airfields.py": "3a6e7151902657a38d8bf0510fb5c1a8049408d4f84d51ca260a0b5d651431e4",
|
||||
"tests/test_vehicle_alarm.py": "1b58d6b35f080003ecab03b23c8da68e0ba2a6a82db4edce89e6031d83f26c82",
|
||||
"tests/test_hq_mounted_binding.py": "40b6af209178cab30b2d6b4420acabf2086532fe0d3f836caaba60e369bdb905",
|
||||
"tests/test_vehicle_alarm_perception.py": "6c8854088c28e2a7b4ee8d38a1f10f66eddfcf9d67afdd460b395d19877b7191",
|
||||
"tests/test_hq_vehicle_seats.py": "8f35fcbd30e51b5576349245a102105926c7df738f3f77abb6ffcd780c6cb62e",
|
||||
"tests/test_native_alarm_hearing.py": "7842886a177aa9fbb6b943b72703c4dafd18d162f26581ce30ce04289e7e9ab5",
|
||||
"tests/test_finite_magazine_reservation.py": "dce435b1dd2d9b1e0ae1f54b5f911ca4207227c4c23586b4f4701c6a6995fc8b",
|
||||
"tests/test_hq_memory.py": "839c7adc63dfab023fafe1547e29caf0ccef52882c5d2fad7b342691b562a41d",
|
||||
"tests/test_supply_budget_admission.py": "3d0e1372f89873470c336038c667df38d2e2e71b3dc2abfddd1215939c448fc5",
|
||||
"tests/test_native_mounted_swap_probe.py": "08674b3c0121756fe94762bd0acd5b6880ba5b234691557851eca5558718e2ea",
|
||||
"tests/test_mounted_initial_stock.py": "cf7d101d8bd31cbdaaa0e7d66f0d8b39aff9b3b70acf51641902c6d0de5be096",
|
||||
"tests/test_spawn_scene.py": "d89ef752906c1cf27c4cc7292997a4d793ddb3b56a6dfbdeff837978350167be",
|
||||
"tests/test_spawn_preload_timeout.py": "db3a3aa42c20f047da90cac6755cb283d15cb3de6a22a57a6e1f352e9b4511dc",
|
||||
"tests/test_hq_uplink_fairness.py": "fc4808a2045522ac6038eef9c37c75ef133bd8af7ffa02c6c1d105b3bfd6c555",
|
||||
"tests/test_hq_pursuit.py": "7ccbf51c7317097d9db6a66cc5be4bec67e542187f0fce5b4f3750bdc4311733",
|
||||
"tests/test_supply_convoys.py": "be4fc6376a77296c6721ce966ea33fd256fe9d76af8705a056a88b32c4f16710",
|
||||
"tests/test_native_mounted_courier_probe.py": "4dadd3157f7da193ce8996b5b08e802f891295ad82a4236366f3018c778c07e7",
|
||||
"tests/test_vehicle_maintenance_stock.py": "e09a6e98f314eef1cf487cbaf8b2185bda950c12329939214ed1ba95713a097a",
|
||||
"tests/test_hq_coverage.py": "d790ae0e5b533f702284e6deeb2c84f7ede5c89bb2b6a68847400e915d50c146",
|
||||
"tests/test_engineer_mine_hq.py": "991666e1218282ce5ffca4ad3f47cf25ec436c6dc091951cc4db395e0cde01a6",
|
||||
"tests/test_intel_discovery_feedback.py": "49b2fedd8704ec67af60a6bb3dd156ddca28eb334d18b20692ab1e4659f439c5",
|
||||
"tests/test_mine_intel_discovery_integration.py": "bac2c8ec269d6e51a46fc17893de4114a5613f37899a1e044a9132d97d44cc5a",
|
||||
"tests/test_hq_delivered_task.py": "076aecdb0ff0d614cadbffedf9d9f8cbb1383fb94a468bd92050b31251bcbce2",
|
||||
"tests/test_hq_assignment_lifecycle.py": "4cfd15d1655b7cfadcbc08104bd01cdfc9960dc88a95ebc5a9958f6f71ce4aea",
|
||||
"tests/test_hq_task_reservations.py": "aa6c5a38618d4bb469c84f18fb7d1748501b4608bd1929cf7e0a6600d248c0f8",
|
||||
"tests/test_terrain_takeover.py": "12365036f81e0874910f100626d2e26b4b2a83042327a927727fda87f05e80db",
|
||||
"tests/test_ai_stinger_admin.py": "d645813857f85854aeca60c9010689662d7cc43f298256d73ae37b05d74e94c1",
|
||||
"tests/test_hq_convoy_dispatch.py": "945a3cba06694608b4880408a13447ebbbf812d400fba3af5b7a57cb006a1f6d",
|
||||
"tests/test_native_maintenance_refuel.py": "15eb8c0ee75778fce2a1caace045940b63cd253f81d16a081f669643b9fefcae",
|
||||
"tests/test_mounted_ammo_pickup.py": "cc4f70870b10beb2595ac4fb030952cc25be1fe1d9506f54dc3901fd1baecda4",
|
||||
"tests/test_mounted_ammo_transfer.py": "cb354bfc71560f430101aae9421f04d601bc2cb0788500771d66ac750df8ae72",
|
||||
"tests/test_mounted_resupply.py": "c17525ffeca6791b4542ea0c7641e4b220b03bce506fc2fda924aac09e8b24ce",
|
||||
"tests/test_hq_mine_sampler.py": "67186d8f6609c3544a9c60f57af876b046618f9b586b2a56520d3a5c8a0e6e22",
|
||||
"tests/test_hq_status_sampler.py": "b8582fb71b7ac77a23158ccd6230e8124ef0432831204e4b8992dee3a9c10062",
|
||||
"tests/test_convoy_mine_stock.py": "e0073271428f00edf86251c9af5530f39094261b05474058df6b794bd958091f",
|
||||
"tests/test_infantry_supply_pool.py": "6fc0053337bbb889021c6eba608796ef946ff4d30a1b01cf678927293218d9d2",
|
||||
"tests/test_automatic_equipment.py": "f8cb478df7979ab9e35c2bcb084e75b2571d41e21e68c8ab28249e01f5708c92",
|
||||
"tests/test_admin_menu.py": "53286ed86862e4b71614cb3ed687aa68893fc024cce203368bf54589ab92703b",
|
||||
"tests/test_admin_providers.py": "4869c86d2cb8c17a383680d594131f4053a051eb4af369657523e20f68311de6",
|
||||
"tests/test_native_mine_stock_runner.py": "51b30d4d7d7543b1674285448d382dcbca55272a0403ea977d2cf08db6a5290c",
|
||||
"tests/test_native_convoy_mine_stock.py": "f069900030cb644ba9e04adb01a6d847a1afa6248a6c458f547aa4fcbd4b5a40",
|
||||
"tests/test_native_mounted_ammo_probe.py": "dd7169d8127fef52a4815fb4ad8227307df557170da6a22723c765bcd74ba340",
|
||||
"tests/test_hq_mounted_ammo_sampler.py": "a4d098adcd3d1f1156d00cf0753268f286cd63640bdae5aed81828f74a8b4633",
|
||||
"tests/test_native_player_death_fixture.py": "0d0825ebb948a68ff8b8f5cbdcc7e27bdf940e5af1e277ba1780d03e12f2ba33",
|
||||
"tests/test_enemy_loadout.py": "0cdfd28ce4d9c89223a7f439eaec1cad762cfc6c9e1cc4c3213d4600a3501b37",
|
||||
"tests/test_enemy_equipment.py": "bbc753525bdfe05ea9ee7fcf45f3158307ed56428518b08845e097fbcdf299c0",
|
||||
"tests/test_infantry_mine_transfer.py": "55caf2735f2d86aa4cc474ef2d3998f847935e0a0b0d881d5390b2039a055704",
|
||||
"tests/test_infantry_mine_coordinator.py": "2fdb2138685a329cef11557973450bd5189d3d7d657dac5cc51b3df2530fab6b",
|
||||
"tests/test_enemy_radio.py": "698c3ea5e1a3680d5b0438c50a341e53dd09f08d2f1f935e59667bc72ae83765",
|
||||
"tests/test_hq_planner_budget.py": "c9e6b85a3d25267c187f503f903136a16aee382e9d842f61ff88c550b5bb4e51",
|
||||
"tests/test_ground_depot_lifecycle.py": "927a6f15560e177c838322e18ef555ce7db3acde0651d1a43353a2c6e805f3a8",
|
||||
"tests/test_ground_depot_loading.py": "1e44647933a248dc80636de63a6d690efce2bc4c38316c31bb27264682861755",
|
||||
"tests/test_ground_depot_transfer.py": "d468f015f24d4bafbfdac4dabd27acd4282fa84e154f83f46aec96319d54ef36",
|
||||
"tests/test_ground_depot_provenance.py": "a56a0402ee255e2824fc65ec5cc613088013e2795413e484161bab7e28f45c85",
|
||||
"tests/test_native_observer_selector.py": "bafdca52e25cc45d94f2fc306c078e5e59d48f2e2540248acc3822b42668e937",
|
||||
"tests/test_chat_client_ownership.py": "c559dbda1af996455038da9eeb5ffcfc6332da9b93082da8ad3071f5d72b8bdf",
|
||||
"tests/test_mine_intel.py": "db64129001c0010ad11389ff764356893ac7c4fbf45e7c82aa56bbe4c75f4929",
|
||||
"tests/test_objective_map_element.py": "b02e59f977aa81462649282f99e70b0b6320b31ba0ea46f586e9ac0c5d15b884",
|
||||
"tests/test_objective_map_presentation.py": "2418f4c0f370bd436b316e56d5ead97ff4b6aa7cdfb3777c9d2af22486148268",
|
||||
"tests/test_native_objective_map_probe.py": "ef0663aa7d620e06fda63fef578abb397a9dcd8fe5336af5445056e32e19aa28",
|
||||
"tests/test_hint_delivery.py": "6066e2b00e54553ac298a3f9b37060a23851f5ca5d4f98eb25e502b2c44240a6",
|
||||
"tests/test_observer_ownership.py": "8e485c3d2e6ae90df82cbc7829996138db8e9a5a4a42a5e2bcaa3bffa61368de",
|
||||
"tests/test_hq_ammo_reporting.py": "bdd4a30440501a2861aca80c951098c48cf999023eaaabd9a2eef82174f8173d",
|
||||
"tests/test_hq_ammo_sampler.py": "e9c2d147eb1547be471df7459f1be815cdc9ef0a64c9a4ae4ef58936424dbc55",
|
||||
"tests/test_hq_multiconvoy_supply.py": "e58d1d6eba48b2c5c6073d54c76302b2a7250ad22176fa94c386e1bc2ce65588",
|
||||
"tests/test_hq_watch.py": "51d5a728b0be83ff957c0df61289d14f90aba109b49365e457c9b200d5ede36a",
|
||||
"tests/test_infantry_ammo_transfer.py": "0d2ebe4d5c18a4187745784013d07df621b8495967d0c01f39bd5a68ae574d26",
|
||||
"tests/test_infantry_resupply_coordinator.py": "f9cf7d583a25a12cec9f5f80539b2590449560331f4ef34e33ea2db283c5d54a",
|
||||
"tests/test_infantry_resupply_planning.py": "20747ffda8754f81f3b9e9912b9f60a300c439f2ea2c473bb900302f61dd691f",
|
||||
"tests/test_mounted_supply_integration.py": "f52acf7a16c9d5273894eb5a4afe7657a7c97de2ed72ba06671d25e163eea5d7",
|
||||
"tests/test_hq_mounted_intercept.py": "444411a6a97ebaff69a056302f444f986daa5f6f7f792e622fdbcca731f939c8",
|
||||
"tests/test_hq_mounted_dispatch.py": "3eb793719b21d508ffc294f5a1bf5c5153f5717a1408a8f779f0a4c1ddefe2a6",
|
||||
"tests/test_terrain_presentation.py": "05f070c5730a9f7f0aae9487a313342785a42682c9beebc3b10cac270b514f18",
|
||||
"tests/test_terrain_selection.py": "80bd8eec34f58ca139efa298509f0fa9dc01b7d35e02d2d62cb593b131c19211",
|
||||
"tests/test_native_mounted_intercept.py": "24810c0a22b221604e1fd8e6596f2d409e558699c5070fef7aae1f74a4fc2f5d",
|
||||
"tests/test_server_item_catalog.py": "c5aae32a55552095e49d9e7884ef88e1cdb4bdb257f850af67d387793c327e74",
|
||||
"tests/test_item_preferences.py": "1c52bec3aeb47b224adb3ee4385b68d4ec00214bc9f5e08fffb932af07f785b0",
|
||||
"tests/test_mortar_transactions.py": "5db4ec737355a7ae995240dc93f1dce146e07c0110c2da2c23451f180b134d26",
|
||||
"tests/test_native_convoy_probe.py": "c81046b5b3f7734f2f53dead61b01a3d81c96e841b7f9a4478c05702b29bde07",
|
||||
"tests/test_convoy_lifecycle.py": "fc18679882f1666a38587d151aa368241c5af115f3a8269dca81eb2617eb8afc",
|
||||
"tests/test_hunter_lifecycle.py": "4d228ec10c3d5f02ecf0eb755ca2773e3496a2c25a1e1c355e6ec79ee2ef53b6",
|
||||
"tests/test_convoy_survivors.py": "415cf9f5d23cce363e483d4bfd0292b58ab1fb3d9e727f9581271aa65c1c3109",
|
||||
"tests/test_hunter_capture.py": "d88b3a830c350e27a08fe5977cf85247dff140b3dc9135062eb5e7774b400790",
|
||||
"tests/test_hq_mounted_intercept_pair.py": "a8d758b1ff20bb6d1a95a9ff1d38f687e43c819c279f5ea9692e84f766dc4fb9",
|
||||
"tests/test_convoy_intercept_pair.py": "52b55727b7c2441d43530efa701045b9439b9175c71fbd2ae7577f851d2c98ec",
|
||||
"tests/test_native_supply_travel.py": "045c055e96ba5a19bb79406fa1ae29ca2afac6ed0770801b5623d692087e01de",
|
||||
"tests/test_native_supply_travel_runner.py": "4c7e1eb4de6bec932f7462a68f4597908c4c53a279521499ff28e64ed8053e3a",
|
||||
"tests/test_native_supply_travel_hook.py": "d92f80c44d5a3095ac16d539569d99d951e5bd865e904c65e91d5d6682bc0af9",
|
||||
"tests/test_engineer_mine_site.py": "b174162dc0621c46835b050d7df1ab9540e2f8f3b1ee805aeba8bb6d4f956a90",
|
||||
"tests/test_native_random_radius_trace.py": "a87f553de26a32b5f242c2cc8ea31564eb54d29f1d0cab7018c1c408888b8101",
|
||||
"tests/test_native_random_radius_runner.py": "aa75c700906d55b098731715503ce52725a944d47b7195fcd47d222756345c75",
|
||||
"tests/test_engineer_mine.py": "300023f165be86f681d3980e844823c73e37b98c5855a2142d9d373fdce3e9ab",
|
||||
"tests/test_engineer_mine_posts.py": "6185b5ab6576948fd8b47bb945fbe40107ec6944eafde2d04dd60ff49d5ec89c",
|
||||
"tests/test_ground_depot_mine_claim.py": "dfe117f58cdf420974fc0d821b1a4153c9fd4da7585fb3e6b872a418d22d2083",
|
||||
"tests/test_welcome_voice.py": "5acad80fc7fecb08409899a5ccf81dec0d310184aafe02b70f46c58bc515e1d8",
|
||||
"tests/native/inventory_control/README.md": "29f7086ee223b1cfe657932c7f236a1640876503f69f6f401451c72a5452695d",
|
||||
"tests/native/inventory_control/addon.gproj": "18dd7db85574119fac5057091c4d9991b247855f67f06bb86cf440f429b5911f",
|
||||
"tests/native/inventory_control/Prefabs/ERRIC_InventoryMode.et.meta": "6b4f66f296d15e7e5f82928cf1bdfa58f085421ae9b6f24afc5ac922d2a8781e",
|
||||
"tests/native/inventory_control/Prefabs/ERRIC_InventoryMode.et": "98408ab80347058f5b79b1103b849b19beaeb97a9ff81662b59fe6100ddd6bf8",
|
||||
"tests/native/inventory_control/Worlds/ERRIC_Inventory.ent.meta": "ca0420504016fa2aa7220712d13b7bf7748832d8d58b085afc4373f4abeb1339",
|
||||
"tests/native/inventory_control/Worlds/ERRIC_Inventory.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
|
||||
"tests/native/inventory_control/Scripts/Game/ERRIC/ERRIC_InventoryControl.c": "8707f35ecf48813bc4e72c599fe2527c44807493496218d18e89aa8739eb59f9",
|
||||
"tests/native/inventory_control/Scripts/WorkbenchGame/ERRIC/ERRIC_InventoryControlPlugin.c": "000d8fa3aa6412a5adb1561333f840f27185dc42fa61569c311b0607df0f2420",
|
||||
"tests/native/inventory_control/Worlds/ERRIC_Inventory_Layers/default.layer": "80a5f0b6c1bc8761469ea69978967dffc070ba9f98c5125430a78a506684c39e",
|
||||
"tools/native_command.py": "883c5955018e43c9451e3e6cb56e9cc8491c77920be3264478612a82c248cbbe",
|
||||
"tools/release_check.py": "65df1bff33638a583905ba5f6c583a095b9f7e38186b6f29d70b72a61525589e",
|
||||
"tools/reference_guard.py": "545b67111927d73bf2020f291528ea6f2f687a994b3e37bf567f239c32c8cd78",
|
||||
"tools/native_report.py": "bb75ef5fe551f45776d441f15a49ccad4daf19abca505187f9b2d30102538658",
|
||||
"tools/archive_native.py": "445736e18e645f1d6fac0aaf837627e94179d295c21a6a67a8e84b5b468758f9",
|
||||
"tools/compare_performance.py": "568acfee2525b8924f3e7a39784e8641f76d63bb3703dcce8251ab9ac9bb1854",
|
||||
"tools/source_manifest.py": "c1a985348bad16f3b5b69ef7e545b6341eca298d8ae08111b8340b31535cc199",
|
||||
"tools/native_provenance.py": "d4777f1f6ffed6993f7009ee2af41b100e8e0138d60ebfdcc5404ff2128f8e2a",
|
||||
"tools/dedicated_preflight.py": "ee56e05a15ada3bda80fecd74a024d141dcc3df00416821ac2c1a29ff308123f",
|
||||
"tools/dedicated_native.py": "35e0c1402be1d54f1b4345de8ac4fa7fc73f8cdfd09c7cc6f832a39dfb33e621",
|
||||
"tools/source_bundle.py": "e8b06f9340a8d67da992373f4642385a028acebe9aa1b3752f62cab95c8fce98",
|
||||
"tools/native_package.py": "32195bf9b43024028e9931a99885d0a131b28ba1b77b32e9d6ed70b914625559",
|
||||
"tools/pak_inventory.py": "95b0b64ab1f89a2142385ca596016fa131b49d933e31aef42d9bf18e2ec01383",
|
||||
"tools/archive_packed.py": "99cec180db72dc93c1ea8256bc316d42c23ab02843d5331a9d228b1a06a71d57",
|
||||
"tools/parse_native_stats.py": "32aa0935d63e59ace29fcdb1a02eaa850898b21ee4cce011a21d364e3dd69c75",
|
||||
"tools/headless_display_probe.py": "4ec3851835474eb4d8b84fc74c20d08567d92906ce832643d911f1d062abf0bd",
|
||||
"tools/private_prefix_cleanup.py": "336889ddfbfe8032eef584d8e9e222d85e33a039441f8fe9c4904e1db8ee10e9",
|
||||
"tools/headless_input_proof.py": "1952fb2ba577b80420133b9698b6d718d25211c86f853de8d22e0acb15f9f9c3",
|
||||
"tools/headless_inventory_control.py": "194121b64ee39c31cc25935afea8ee9dddbce04cbf26aaf058e25d02ee9828fe",
|
||||
"tools/ordinary_look_evidence.py": "3b6a0415352295e15e988ff78659e81981001e1ee03430a5b4c2df1518dd9a31",
|
||||
"tools/ordinary_gate_evidence.py": "5f02596c92b945b28081d861e466f01897875489e673bf0feafa6e4ebdae1708",
|
||||
"tools/prison_approach_proof.py": "fcd2936fa5a67ba6a970c56e8e4d04cc76bff6ffc6087ac95085716fb5fa673f",
|
||||
"tools/prison_approach_evidence.py": "12f1618b16f845d987ba928c8d95f2d448bc6a600fb76f8870b2ae8fd4a660cb",
|
||||
"tools/prison_alignment_proof.py": "37bd011642ca96dd0279e90cce785fc689002011b3977055f15c0dfad4161bed",
|
||||
"tools/prison_alignment_evidence.py": "67d5675c13b2de75110c53b99d1bd88e0eb0c36673488312711b03fec32e4235",
|
||||
"tools/ordinary_gate_choices.py": "59a0055d44f2f5b27c530406e5cbd46847357285d2d260d08e5c34cc53b7a795",
|
||||
"tools/prison_action_selection_proof.py": "00d397bf9b13405a2612678ec866f09d452acb4079f2072eb97c79a7fdf650da",
|
||||
"tools/prison_action_selection_evidence.py": "668b1d6ff86903ddeb702fd0c49d8d8110cd58559062d6d650f2962e4e321ab6",
|
||||
"tools/prison_held_action_proof.py": "450f03c6dbb4960d9f15a0f9c43ae5a18ab00594181e23321a2eea9b59ed47fd",
|
||||
"tools/prison_held_action_evidence.py": "971a630d663291d50c407dbadf6005e17ea035db88b5358e5ec1f6b24e6824fb",
|
||||
"tools/project_schema.py": "cc1527c5f68fb75711208f293f4751c206fedc725934d9db7d4b7fe539f60cec",
|
||||
"tools/external_addons.py": "c389b76c4d5f0f763420cd7d564d3ff5ebb7350cac10d2a26164c17f59b72dde",
|
||||
"tools/headless_game.py": "e7cab472ee51497343174cb460022b3e4591f148d4acbc6e6f881fc68c0fda1b",
|
||||
"tools/packed_external.py": "46203c078a82e825ec2e82c2495e6e165aa7ddc92368d2fe7786d87b957d3096",
|
||||
"tools/import_settings.py": "8b41ea8fb45e5c3840dad67f9d2494cba5dfa1e0e67d41e334fdd04e515a68a1",
|
||||
"tools/prefab_identity.py": "26088826275e84dcac2dbac771faf0552545791d30e9110df1ce88ee0d5a81ad",
|
||||
"tools/terrain_adapter.py": "d5ca50a5dc3ab4ba8b7d8cf2c72a9c3579b6567efbad5572acab991267116417",
|
||||
"tools/check.py": "fba75afd81826416cc261bed633c76e7f7ee7a7197040eb6ec042a5aafb97a77",
|
||||
"tools/headless_workbench.py": "aa971eb48206042315aa7632625d04d44ec9db82ea568a071b977118cb63361f",
|
||||
"tools/welcome_voice.py": "dc61bb965861b71b00e19bb0bb19bc00995d35da2d8ed5fbcea52eabb4503201",
|
||||
"tools/welcome_voice_requirements.txt": "7a454d3dc4efc97999407c3d4e73585f72bdba7acce42be59662296e432d90e8",
|
||||
"tools/desktop/kwin-right-monitor.js": "ff2b6f7b9d1b1eb9f92b61b39df18f1ddc44be5540e18b1fc1829eb2fc1fb1a2",
|
||||
"terrain-profiles/nogova.json": "4456c27cd7a4b2fef329051beedf3ccd683c94a684580bb07a35f16a9c59e743",
|
||||
"terrain-adapters/nogova/addon.gproj": "08442b784c8ead8362c19f084a9812e70783069da7740cbff7eef21f9a07e084",
|
||||
"terrain-adapters/nogova/terrain-adapter.json": "f2bdbb3ee3e03300f03d8ab184dd59f1b016c2eacb70b8873ab6fe5dbf1137d3",
|
||||
"terrain-adapters/nogova/resourceDatabase.rdb": "b12cdbacbd4fed63f460a19697b2ae8d1cbde7f9e725b73264ba3acd3584b2dc",
|
||||
"terrain-adapters/nogova/Worlds/ERR_nogova.ent": "6a2d45449ceedd13632a53c2ad612d155d3fc76b029febff7e3a5350d66952a2",
|
||||
"terrain-adapters/nogova/Worlds/ERR_nogova.ent.meta": "d6c41b4e1251829bbbb079a699a94a318b1a94e9eeade6e3fd4a019e0967c118",
|
||||
"terrain-adapters/nogova/Missions/ERR_nogova.conf": "60d542d81e48c15c838fe267e43e75273c7ec805d3a6031162dbb26fdab62889",
|
||||
"terrain-adapters/nogova/Missions/ERR_nogova.conf.meta": "cb6b7feabed57784ff41ac6d82f37df05f0e831b3f87bd18b1612332c61e21c5",
|
||||
"terrain-adapters/nogova/Worlds/ERR_nogova_Layers/default.layer": "2e9f780b1c2cacf5e34de4eaa7aa5010c0b4c81232e54246f8f466b32f909f5e",
|
||||
"terrain-integrations/nogova/terrain-adapter.json": "c6cb3d243ba68946add810256501322026e757027ff7e83cda40a02471dfb1a1",
|
||||
"terrain-integrations/nogova/Worlds/ERR_nogova.ent": "6a2d45449ceedd13632a53c2ad612d155d3fc76b029febff7e3a5350d66952a2",
|
||||
"terrain-integrations/nogova/Worlds/ERR_nogova.ent.meta": "d6c41b4e1251829bbbb079a699a94a318b1a94e9eeade6e3fd4a019e0967c118",
|
||||
"terrain-integrations/nogova/Missions/ERR_nogova.conf": "60d542d81e48c15c838fe267e43e75273c7ec805d3a6031162dbb26fdab62889",
|
||||
"terrain-integrations/nogova/Missions/ERR_nogova.conf.meta": "cb6b7feabed57784ff41ac6d82f37df05f0e831b3f87bd18b1612332c61e21c5",
|
||||
"terrain-integrations/nogova/Worlds/ERR_nogova_Layers/default.layer": "2e9f780b1c2cacf5e34de4eaa7aa5010c0b4c81232e54246f8f466b32f909f5e",
|
||||
"docs/addons.json": "ccda7c1aa6bf60524cd983ff863e178270445ef193e7418967b11cc49eb366d4",
|
||||
"docs/migration-provenance.json": "e671a9ec4dd69097a7a7f974c8a1ab0985b8070724847cfafe2ede0af88e7bee",
|
||||
"docs/dependency-audit.json": "d5e6cbcdc59c0a25e5748c590d6a195da9c97e8296119e07185f4c360bdfc4ae",
|
||||
"docs/architecture.md": "4dc8f223a793b36c92c5a70de9d2114d0e70fe36ddef873dbaef96ffa0bfc8eb",
|
||||
"docs/migration.md": "04387d3dad83ebdba4e4076fcc8ddc903a16836a3d0bf79d504d9006e6e7a17d",
|
||||
"docs/runtime-testing.md": "82a255aeb0c4cafa34b9fce9839147739c72e2e163dad18658c01cc0ee199faa",
|
||||
"docs/validation.md": "2810c18d2445c27c50f94ef92a781f9281cb3bd88ab9235834194abce3266262",
|
||||
"docs/acceptance.json": "b58e56be792c7ac2cb792a70e0b560989e59b1607fe9533f6f852e2171df9408",
|
||||
"docs/native-initial-snapshot.json": "94ca2c1fcb003823b7edc719d923df1d2387543f975fbca7ad1fb5ad3628889e",
|
||||
"docs/native-followup-snapshot.json": "156e5de03b28b0cb717e2d832afbc6dd9bfa966c28d2f9b9416415e7643ecfc3",
|
||||
"docs/original-resource-inventory.json": "bc52a981c42f933134e637a027d08a0924abb19784782731590b7ef0b0e2e73f",
|
||||
"docs/base-replacement.md": "b8af82e651366198a93824b7569430faed4f0e04018a5438a92942b98bfece25",
|
||||
"docs/site-authoring.md": "7a2e66e75ca3fdab43bd730f16e864c31909ab42fe060b00715caa13b8352ce7",
|
||||
"docs/original-feature-coverage.json": "fec7f3fa341b40db09b1d7c9d96907929210b2474048127c4415de0de27f4383",
|
||||
"docs/original-feature-coverage.md": "fa4a79d7dc98a92433fb9157ca9f054b5cedaec333069296deca7a70c4a8047b",
|
||||
"docs/configuration.md": "c89d23793e2cf8d8a9611efcc7dd584a80b568b30d9919ae8f9c6a96a6077069",
|
||||
"docs/extraction.md": "215c96cbc004b3817a70ee40f30b181a72e78123e69e16a3585ed4d8d566837d",
|
||||
"docs/mission-time.md": "29d9a18c7acef0587764becbd04c2c63684644a05c7b3b2fe77defe1881ae7a0",
|
||||
"docs/native-errors.md": "f0cbc674803f5254db0c823bce2df437cad121756e19f6c658087d5d2fddb349",
|
||||
"docs/ground-transport.md": "febce039866e290f1cdadf53ae2f6422387b1a4778264649c04727ee954c2ab6",
|
||||
"docs/radio-defence.md": "82c9c30ac75688b17fd7a5bc52e3e0b9843f2711442d4b8e5274687382c8bf06",
|
||||
"docs/performance-comparison.md": "063d46961611efb49478e462f44443b45eafa28b8ff3ca08f799b1652ba1a91f",
|
||||
"docs/release-qualification.md": "7bdf42f51fe3a4c1d6187d0e6f5248ac9a68ce16873281909bd96e1cea6c406b",
|
||||
"docs/player-lifecycle.md": "35fd066a50ddb2bcc78d4a448811e0763263cb0605161ccf43713b5e4a5f9cf0",
|
||||
"docs/base-gameplay-gaps.md": "8fb9ce4bf3d36507fdcd03af9681657c473bdf1f1d188380e7e4a83d47b10625",
|
||||
"docs/objective-widget-lifecycle.md": "3ec0ee8c74b2a3117356477a16125a077dfbf010050e53280a00769b710958a0",
|
||||
"docs/prisoner-loadout.md": "0b27f5fce4af457bea7133e461dbc37d8fa73fe126c8c3de90d723b358af389a",
|
||||
"docs/native-medical-fixture.md": "3c915a74afbcac1dfa45f0c1e9d8d4801f33704cac9ce1b66355121805ecfbb1",
|
||||
"docs/recovery.md": "026b513982530b8d65a6a1459e8707cd4abaf56450abc00f8449cf01fc660d0d",
|
||||
"docs/admin-discovery-setting.md": "a140f09cd1f27635824a9fa27e88e99259fc0030ff3228dd1376e2e949edbc1c",
|
||||
"docs/environment.md": "2a58f8a969348e42e09e45b906a3d61fb65d887ae2814547605a01987747ab6c",
|
||||
"docs/faction-catalog-source-hashes.json": "46060bf2bfe6c39517e3140acb004f9b129c26695a7ee890b4aae571b3f0da76",
|
||||
"docs/mission-faction-catalogs.md": "2ce3e49404d103a4c372ab0386de3bcf831bee87d95b1092372345a3d32ef8d2",
|
||||
"docs/medical-kit-teardown-ownership.md": "9f5c6636bfef46802800a4cfce27833fd1251067be892d95f4ce4f07469fef1a",
|
||||
"docs/site-patrols.md": "5956f70a5ebea4167819a43c2a15f8b6d6460bc724b000f989d5ad5265d48d56",
|
||||
"docs/environment-restart-fixture.md": "1c1bd3872a67c5a59c12c1293d075d52fe0b563fcd5e9e10a1ce1850c7efcea9",
|
||||
"docs/inventory-identity.md": "02092960cf937b175c5a190b426b84e0383104fa71f324c8b3a0ceb4fbe01164",
|
||||
"docs/radio-document-loss.md": "64e6dbc3a62ffd164321f7b3c1a80de05a74c26b1541bb67f6fd3513983d5fdb",
|
||||
"docs/ordinary-game-startup.md": "e979300482ad716c7a8cee532dbe3ca73b7d265b9e94fe02bd3729359551c7b2",
|
||||
"docs/guard-source-hashes.json": "874845def1458901d61adeb090a464bbee7c7b18816406ae3780ff48fe855266",
|
||||
"docs/initial-guard-readiness.md": "5f2b45f3744f1f0316f198225a34e25d93eb4795bb05d6cfded8de1f1a116c18",
|
||||
"docs/casualty-loading.md": "cddb8b1aece65dd0e3366a493e22ece02f49b1ae5d626cb9931a188551f007a4",
|
||||
"docs/native-guard-cancellation.md": "880b545b8451a86f16ef47e0a378d081c8fecb1175bf9a8a122bf853ff9b816c",
|
||||
"docs/casualty-ground-support.md": "9ffa8df2c88e51d77c29d12a23df8032d8858b0c82ff079d476f773cb6b5825e",
|
||||
"docs/casualty-ground-source-sha256.json": "90ffa7d0c61e3823922ca9d4773e3d12fd5e9a1760a35c3b29fd12a53642f83a",
|
||||
"docs/guard-cancellation-fix.md": "41f8bd169de714df4df4a61189d47a37f9be2f1b1554edc99c29d8a1fa4aaf19",
|
||||
"docs/guard-cancellation-source-hashes.json": "a1bf169c021931cdcba835d52e420df44e5dd2ef351257f0be10f63c8727afd4",
|
||||
"docs/radio-feedback.md": "3aaaecb318e2f737321bd08f9deb9323af153f2ae9ed196b55104c0616dd2be8",
|
||||
"docs/current-status.md": "53371cce951524db84438baaf847979453cb7c2e9a8fba4dff3ff4bbc9cf1308",
|
||||
"docs/initial-extraction-placement.md": "643b50d231dd9ceb49b81fd8f061cd114a9618fd1ad5a6f88724c0199a5a304c",
|
||||
"docs/initial-extraction-placement-source-sha256.json": "a44a32cedc54a70f635bf5840e7b29d35850a2212fcf64b1fd36ca096f10fffa",
|
||||
"docs/native-casualty-remove.md": "a91a9a638b19d4e8759a7168e196bf1a50bbfb328e7812d88e329166c06e69db",
|
||||
"docs/casualty-remove-source-sha256.json": "4799a5843315fe5b5b2e933e8068a8b4bae6d924a49438eccb7f68ffc8e12be9",
|
||||
"docs/ordinary-launch-callback-fix.md": "b74b8d0d011f25c367ea07b37e1a5ef488a2b378542ddca63ff9e981e649b874",
|
||||
"docs/casualty-incapacitation.md": "2811fa294de0348fbdf8e78b0c66bc31a59dd8f1e43fe16af8da87cb7e789820",
|
||||
"docs/ordinary-diagnostic-splash.md": "6e07a87a03df81dd5c9d6c0f9602b26e08ec7fd7cf941b91f2b8007bd9d33e6a",
|
||||
"docs/ordinary-splash-source-hashes.json": "b2e277e3487c2b790bce741527555bb74f6b9820b9e5626950ab709533d9fa97",
|
||||
"docs/ordinary-identity-diagnostics.md": "62c34ac6c10331025792d1785272a1605e655ca3bcbcec9ffb4852968925251e",
|
||||
"docs/native-mortar-firing.md": "0a340bb6f074531633e8b1b1189082346f4149db7f8484c08f16207767994be9",
|
||||
"docs/finite-mortar-operations.md": "d277ae850de9c33b410343b1dd498fecbe9f5c87f7c4b74829f07ca894603224",
|
||||
"docs/mortar-transactions-source-sha256.json": "dabad1cbc6eb3dd6f66b3e9ece574edcabff94adceeb2494b1adb2147608dbc0",
|
||||
"docs/local-singleplayer-admission.md": "f7fec9a8ab119d006818b518684315e28c96c7f63a1d075922a5c8af2864a5ae",
|
||||
"docs/dedicated-preparation.md": "7462af696bdb65d32e764cd98a354c9059772252bfa22d3c8aff23bd2e636c67",
|
||||
"docs/mortar-aim-renewal.md": "c26041505ea6af56146dfc9f52aa2b0cc3955ded565fdcb76892a83d1fe2e56d",
|
||||
"docs/mortar-aim-renewal-sources.json": "ceb9162fc1a4fdabf44ce7aeeda5f6d91bfbab6c6d1eb1666ce4661f1a540513",
|
||||
"docs/native-mortar-transfer.md": "7d5086b8268c213375d56ed2dc3994daf7065b2076742d0af588c8ffce5f753c",
|
||||
"docs/dedicated-native-diagnostic.md": "37d3ccf17776f5c2c2f2c8bdb87165451cc4c14eef4173162b89378f67693cd6",
|
||||
"docs/native-local-admission-probe.md": "c2794b2475d94f2756921d98f676aa8224f6fa3bc95bb14ce45c2bb7648e1566",
|
||||
"docs/dedicated-resource-audit.md": "92dbd16d7cd1b018abc5e5bd0c12bf0859f5c7af8194477eaab835e2f3fe4256",
|
||||
"docs/mortar-report-deduplication.md": "cdeeee20885c947e10507b30a2dd19b086f7aa863730c266b574cc756d466bcb",
|
||||
"docs/native-powered-flight.md": "049186db16d1b18f5d51e6eaee3e5e4c9efad9e578774501f14288781b82b972",
|
||||
"docs/mortar-expiry-evidence.md": "fb980772ef0a04568ab98457b889d6af4f3ec216382b1452e6d66eb1165345ef",
|
||||
"docs/discovery-map-usability.md": "b70b210884b642db9e28c4eefb4bde4449858089c2d8b47c3dd3209d9ba2296a",
|
||||
"docs/native-hq-response-proof.md": "9d3e43088e4874a1f6d2edc853bc2f9dfdddbfd9df3c54802dbf499a74f9910c",
|
||||
"docs/prison-breach-progression.md": "31797bfa36556cb744390ec0c7c8d7a404fe91f18a2c20ec1c0e4f122648e184",
|
||||
"docs/powered-flight-pad-survey.md": "0347bf1cfa94855ee26f22c4fa10339baa566ea10d0dee86f9190ac8a33383d2",
|
||||
"docs/item-station-teardown.md": "7a2eb028f767ec52214f375f79ed162f9ee7432a08f4229afdebe90ed338e37e",
|
||||
"docs/development-source-bundle.md": "7cd8dbc04a9cfe87ff7479283477e788552484ea1b83ffdee4893620f1df31ec",
|
||||
"docs/native-flight-footprint.md": "ef178fb48a0fce61d4eb6fa1f5533e0107f9ee6b24a26655fe17ba7449f4c776",
|
||||
"docs/native-flight-input-diagnostics.md": "4dffc58b20b2e05f3fc3d700f3feec79cad2ceacbd5fcaf9bdaabf6574de23d3",
|
||||
"docs/finite-mortar-courier.md": "96306ab4f0313b9b403f7a37b9007bf83b237de433e0cbdf1b1de361d0b2e738",
|
||||
"docs/finite-mortar-courier-source-evidence.json": "970ed87a005fe31382ffda5da77b3f18c944a57d6d1477bf9289403b39d75054",
|
||||
"docs/progression-identity.md": "be443ecba1d0c7f104dae20886c1622286f768d182d69907d4859429fd07fc84",
|
||||
"docs/vanilla-game-startup-control.md": "ff0f24a4921dd3d7c52e2895c1905e107e28824d628924125ba7e6b6b97a3ab6",
|
||||
"docs/normal-splash-audit.md": "f377cfa81ccd49c49f5f63a9d15194b063aea3554afddb934ad3679707ff6874",
|
||||
"docs/native-packaging.md": "6f83aa58d8692f0d84bb8384d3fcf812f8f1f3ef899b20aff839db0a4e2e91e8",
|
||||
"docs/spectator-guidance.md": "ad805edd230933a80950f8702b1a65a177a4f80d525f8c38d96bb74a89f38dad",
|
||||
"docs/native-mortar-salvo.md": "4358b187a9e2f518259535ce23a2f601b2242982ef0d2ad6cbe4528d1edd9819",
|
||||
"docs/pak-inventory.md": "b50157dc0dc5e4630a1626c94abc0037e8fa5db6a0973a06f3f815100b141a18",
|
||||
"docs/packed-core-startup.md": "4c9e8c6d47bb1a0ce6146070ddf4a40e1e7ad0dc710ea60f03a45b2641a85040",
|
||||
"docs/mortar-report-refresh.md": "80d7709a20930e78d138cdf792de9ead5368040ef03a94975c0222d182a6dfac",
|
||||
"docs/native-packaging-control.md": "5e1df445af29ff9d161e2a385ca90cecf283f668ee3806fc0207b55c8774cb1f",
|
||||
"docs/packed-evidence.md": "cf67a65201cc34c7316e3b677c29f301f757a81ebdb0eff83e4f705739c8a691",
|
||||
"docs/native-companion-packaging.md": "e9fc608d900c3849958eb6224f46f5619a5cd5c2e78d47536a5e3bb8d3edc31f",
|
||||
"docs/mortar-activity-completion.md": "388756d09696d1b2bf5277a945a57edd07b792b40be8ebadb709fa8d2f62ea86",
|
||||
"docs/shared-map-ownership.md": "43d8134ce6d1e6f6561634a5b18053f6295f7d7d5a575b4831995ca254f283db",
|
||||
"docs/intel-registration.md": "0568ca6f283532d2ebfc28bbcb11202b72a7ed5ac011ea66ed772272e5e87e70",
|
||||
"docs/native-shared-map-ownership.md": "c3119a4742ec35f914de6f25751316fcbfdd794dd8b395285b8b22a5fb1ecb9c",
|
||||
"docs/native-powered-translation.md": "b1efa32020ca713fe95f20a714853a67bb5b64a09781ba5d1d7cadefd06b7a93",
|
||||
"docs/aircraft-flight-controller.md": "3df786d7ce4ec6d6b52804b2a2ca86a9980fdfd203aac7eadb204458b54d88b3",
|
||||
"docs/prison-yard-surface.md": "4e881eb8eababe03c4bcb86e46fab7bca47ddd1d3ed4cd570e2bdb2e0ceadd41",
|
||||
"docs/native-aircraft-control.md": "eed101ab213e180822fc6967264efefaa75c99ee97f433fc019da45d47e33cba",
|
||||
"docs/native-server-statistics.md": "c5256d62bc6632788057df57fe5daa1fe738904bf1042e0e1bb7785aae66f4b6",
|
||||
"docs/native-end-lifecycle.md": "84bacfc43eb6011b565ca1da1db325d96098be1d4434d24b3c8a3736a0098924",
|
||||
"docs/hint-delivery.md": "35c5d8a2d1e9eda99c2f82315171fd95ca0faabdf7c1b342a45fca7db6e22755",
|
||||
"docs/preparation-status.md": "bca0997a65e5f85076d6c516be22130e5207371f8b06e74a88a140e2f1bfc837",
|
||||
"docs/headless-display-probe.md": "08a5627abe39206610d0641323947367e6631e1f87e4826789f56eae2e6b8719",
|
||||
"docs/aircraft-route.md": "c23d28a742546cc774df045c3668406b77c573bb4183aa3eef333dc6b26821f7",
|
||||
"docs/ordinary-input-observer.md": "a068702b345fd9645367606a766d57912fb5d7c6dbf615d4ba5b731b4b817d90",
|
||||
"docs/headless-input-proof.md": "da0053ff71264178de63417b28a5e2fd53d641d0188b83e5bb7c75a95773a408",
|
||||
"docs/inventory-slot-diagnosis.md": "d661908156717cd8f3545a721374a6d82c3755859267f951cd3a7625e891bd80",
|
||||
"docs/inventory-layout.md": "f22bf592a0f560ac3db2de5526d8937f899af28006b873ada4d42acd7920f088",
|
||||
"docs/prison-input-proof-plan.md": "5003c8cc190ebf9bb3c0e6b53138480b91c38c4bea2d063e01b55dc934ce7cfd",
|
||||
"docs/ordinary-look-observer.md": "20a17b23bd1c057f2c6af96d24078362c132689e87ea41d331a44f0dde54345f",
|
||||
"docs/prison-approach-design.md": "2cc363678200287d9bc13a25f5b3f8fdd749d266b1734640079cd11c29e97084",
|
||||
"docs/ordinary-gate-observer.md": "75c2ad994dbdcd8cfed1c29c83d6a73de677edc98700327e36868ae8169731c1",
|
||||
"docs/private-pointer-edge-audit.md": "29eef2bbb8ff932523f0ff501a6b3609c171224544a6b7e02461aa1f519a8cc0",
|
||||
"docs/prison-lock-alignment-plan.md": "c857bb12700a5a6be0b63735d38efe6a9c03062ab10a450bac09fed66192434b",
|
||||
"docs/prison-held-action-design.md": "89af762f9d33e8a0cc4f461ff6cf0b55036df84a05ca26fda8292d9d9a7647d7",
|
||||
"docs/prison-action-selection-design.md": "9505c865248904c21a8096a53a18baaf11799a615968c6047dcc1ab2773637b1",
|
||||
"docs/prison-approach-reliability.md": "2d6e1e243788beb27cdb6bfe1afa5a15384931625ccc075f8ebd25e9f5135596",
|
||||
"docs/native-packaging-next-audit.md": "9746148ebc0ccb5c49ccbe7aa55ed6f8a509b95ba39c83bcaca706ff88e4a454",
|
||||
"docs/aircraft-service.md": "601bd40cdce1de39cbef3cff373b17cb77371493370bf57fa20de937c50c7b1f",
|
||||
"docs/aircraft-hq-integration-plan.md": "c6d2e5dfea4379c0b2b57cc028b7555f62d47661eb9afbf6611a3dd509179238",
|
||||
"docs/aircraft-field-route-plan.md": "a44e8f670363b85543d19fb508adc6840fc9f02b3cdd80737d36872ed6e3732c",
|
||||
"docs/prison-held-action.md": "3d1360d19d73d13189b4351e2c2fdb50da1e97a393f9f17191d4531921f09d7c",
|
||||
"docs/playtest-build.md": "bc18e5c78355f5c4da8c7687b17a75120edc35c45f8571f21b2f1b1f3bef14a5",
|
||||
"docs/owned-ai-intel-migration.md": "be048099213bbf2daca4d38a9126f2f4d68e267894163f2ac641209a92f2c7e2",
|
||||
"docs/chat-integration.md": "28a94422f4339ef47a549540518c14afc419add48bd25b9aa98cdb9e3297e181",
|
||||
"docs/external-addons.json": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869",
|
||||
"docs/external-addons.md": "8deff9567694245390cccd8a22176c6d7791ab56686d93ee732841f111f6d3b8",
|
||||
"docs/ai-equipment-migration.md": "819ed66d7f68a83ca979ec0d78dc8dc8b9538e44317d5c5e70904a15cf488be6",
|
||||
"docs/convoy-bmp-seat-audit.json": "54811861f71c320c026b4d870cc4773a1afd16f9d7b894d709fff99db7959b21",
|
||||
"docs/ai-feature-migration.md": "3f5d301e48d9dac57be8ea0bb1e67a897c90462a9289d9227f02e58bb9648f07",
|
||||
"docs/ai-feature-migration.json": "68dfb0b523b650fc82648953d3ed390dc68617d0ed9cc5bce86145b3e7b99eea",
|
||||
"docs/convoy-migration.md": "1cf205d1ea3579a8300f75fb31b260f73f3267269c67925196d13ee548e1e461",
|
||||
"docs/hq-ammunition.md": "4e9e78855e33d6381ebf89a5586062d264d5a2c6a862faa7f9b58f1f1e10480f",
|
||||
"docs/ai-migration-progress.md": "3af61e888d2de139fac21b9dc9163ecd8b83bebd29921906559687d938dc0986",
|
||||
"docs/vehicle-security.md": "3ba235ec441d4215925b275a7a4f261d8851285deb7d0e4474958d3a78501193",
|
||||
"docs/vehicle-security-vanilla-sha256.json": "16ee4be00be331023668238f5f0272050f83031ee627f8c0fa234f88552aec5a",
|
||||
"docs/vanilla-resources.json": "588192d151f382b612ca6ce9a564193b57d4a9e7ce9a3918bf8ad2f7e877d1f4",
|
||||
"docs/vehicle-maintenance.md": "94362113ce91d248485b2ce25f9f99e60e55d1ac50d6d6dd728cba1fc797043c",
|
||||
"docs/vehicle-maintenance-source-evidence.json": "c84283c91ef554d8c6ded79ae9aecdfe00ad6922a150d4733260dc7a5a3d2fa2",
|
||||
"docs/radio-equipment-provenance.json": "ec67aeec4ec116dda41aba4f3f2448e739859b8f4082d548a5deb7992371f021",
|
||||
"docs/hq-originating-call.md": "ca1bbaa5f511b65a392d6dd6e361b6898a85b201f219f8e0bce25c30cef27a77",
|
||||
"docs/packed-external-development.md": "6e7cd3e3efc143de42ba44febe9b03811f7c263d4000593dfacaf28fcc3ef287",
|
||||
"docs/convoy-startup.md": "754b2ef659749d3307809f314eb2fcb4b16506c03e019f191ee5cf4e68a630aa",
|
||||
"docs/infantry-resupply-access.md": "8eb812945ba95660501ec3fd6626a354eadf9e68eddffb34bc66071e250e5fca",
|
||||
"docs/hq-local-handoff.md": "8225ba1ea2cef47930a4e04fea82a87dab92a8761349c3b7da5c918079ef675b",
|
||||
"docs/road-interception.md": "4a5a2e029e94ccd26ff578fdc6948d73e9193839474c9d39d573b7f3d5e7e114",
|
||||
"docs/single-mod.md": "31c628fb5bcf00486bddba527a8955e3f996cf31f9342b6e0bb2bdb314e38c19",
|
||||
"docs/multiplayer-prefab-ids.md": "b9dc13f6d5448871959d2f7872847af8824f21ec773f2683ed117d43c1a2a77d",
|
||||
"docs/prison-opening.md": "be60fee1542185bfae38cba9bacf1f181acf2a032af33d5eb853468a036cc54a",
|
||||
"docs/content-packs.md": "c543cbec225d6feb722c5f0a7bc848e3bda265bf89092bf5629b71d1ee4bf0ed",
|
||||
"docs/supply-convoys.md": "2193581f4f339879d1409fe90881ad0801e72d98d1b57325d09cd9300f11ef61",
|
||||
"docs/generated-sites.md": "0caf082c45e4ac84af5749ff6554312f6db66bfcb7e3485611c0040bb9d2196d",
|
||||
"docs/mortar-stations.md": "eda8ce9201fc1fda4c777174dd83aec93e6b5aad35c3632aef7494969ca539df",
|
||||
"docs/prison-patrol-and-debug-intel.md": "c02f57e65981eb74773fc4db2a9a82ac80b5b45276735ad5cf2af4a767caf172",
|
||||
"docs/airfield-extraction-and-map-icons.md": "5f21746c0b685811992765e6909f83d4a47eb6ff11b17974405136bb5d858350",
|
||||
"docs/mortar-intel-and-prison-map.md": "116f87df517804919363836ea577ac032e9bdcebf33da83c19ca1323e1731076",
|
||||
"docs/radio-camp-security.md": "ffd6f794601dcfe46e3c373aa7a868782366fa6e234b189d81af78a40d84fc81",
|
||||
"docs/hill-scouts.md": "8d6ff1a57334fd915925396558c9f8fb915fbb1f8689fb72e7bad3ddc7367a9f",
|
||||
"docs/search-helicopter.md": "6220eb11e64245a580d85bad683baa07f0ae499b5d7673e973bc401e87907482",
|
||||
"docs/hq-air-support.md": "b090de3a96b93f67987c27de182d5c05ee1890e98816c6a5441a7e54d626614d",
|
||||
"docs/aggression-ai.md": "62c2c8aeb23eaf085b54e2e480ce066588fd2a4df2e1a5180333f7107bc2ebdd",
|
||||
"docs/enemy-loadouts.md": "3d00ed31e6a169658a5d950c12b278cccdd7501c791b18d6ab8b2ffb90d06cef",
|
||||
"docs/gameplay-recovery.md": "ae1ffa270ab27afe9e2542be2f0b96b6a8527f4ad243ba4247e1f772b242f9f1",
|
||||
"docs/field-sites.md": "9c3928a04b4b242dcf806d7b20ecf2f4cc636aff9a31ed90d9fd75cfaf776aa0",
|
||||
"docs/town-garrisons.md": "c58e6b669997f8e1763a3da289e6ac6b777b15f0852eb2cd81b4c83fe2783eb4",
|
||||
"docs/ai-local-awareness.md": "9583de1d5233dde3cd259d464e0d5a859de9a69b24725acc2d141822fd3f9908",
|
||||
"docs/response-medics-combat.md": "17192d50d1a406de0547ce30a19eb8d9b216730d6c07ba2a89939687096faf1e",
|
||||
"docs/infantry-combat-priority.md": "a2609f8596d58d320f088b0f5c2e5de8ced6d94365ae1a8407fe763ea2da5db7",
|
||||
"docs/gameplay-review-2026-09-27.md": "ee66710a5fdefc1d1ced769e15119f6f1449fb9268b9a62733a8b2f9b733bc71",
|
||||
"docs/helicopter-standoff.md": "d804e148383f71d4457e773f62664b99d3e28401ba756f3fe6e447419aaa4350",
|
||||
"docs/airborne-validation-2026-09-27.md": "54b4655df8a449da5abf6ff04097119f8b6ae2ce69613b57e9dca3cd6f821000",
|
||||
"docs/mortar-rapid-fire.md": "412ef3c1cda90f774f9134db1ab150cb1e1d09189598e1beaecf5d1395b04a98",
|
||||
"docs/convoy-coordination.md": "095fa1f425688ad920e86363c88490aac6bd623f0dbe8dd2f039674cdc5908ff",
|
||||
"docs/server-log-fixes-2026-09-29.md": "44f69289ae12f1f38b71045d613c2500da6b7b3adbbdfec7166d7b216bfbf576",
|
||||
"docs/body-recovery-fixes-2026-09-29.md": "ce9f2978e3f2da13fab0bbbf88150b1f6dc7400a74c6ba7418f8a8b704c6f82b",
|
||||
"docs/infantry-resupply.md": "269d00c4397a04018c4366bf1c4be52bd290561b4484210442713ff641dfc74e",
|
||||
"docs/resupply-fixes-2026-09-30.md": "9e21d5b29f20350a2ee8c7b1fdc839c199e5c98777e88b310f14f7a583d70cdd",
|
||||
"docs/mission-checkpoint-2026-09-30.md": "48104b9c2a089404ed93da20d15a0e57283004bc8dfe0cea0b7477909791c7d0",
|
||||
"docs/combined-candidate-2026-09-30.md": "c53428454b2a6ea16f5e691fd4333f6f1bf2a6ad882f0fd05504f8e71b414d92",
|
||||
"docs/multiconvoy-resupply.md": "90e699e15914461392808802ec6029382dab1a2fc1a63eb0ab534557565661a4",
|
||||
"docs/hq-chronology-and-admission-2026-09-30.md": "1254daf6a44f27df8917805ce506d2005379641d9e4c10d9b396f5f0464fa1c9",
|
||||
"docs/empty-magazine-return.md": "d08e227c4b7d273687e9aca6645cdcdef8d6a88843ba00fb938fecfd4c8df154",
|
||||
"docs/next-gameplay-increments.md": "ee1a22dd3a79acf95fd3e59aad4599788a0f10f22eb4dbe1577875a651a18430",
|
||||
"docs/terrain-adapters.md": "70cfd9f50ef5e339de7ae98f48bf501eb4feb018d6a5739b465cf7407fcfcd95",
|
||||
"docs/nogova-publishing.md": "1a80072599a3e9bd460091c4b3ea39ff78324304730494641c94deb2b00adab7",
|
||||
"docs/mission-hq-fixes-2026-10-01.md": "5379ddb403f7c3611b2e92e0a9b4c043278fe136e28f93293dae1027ddc30ab9",
|
||||
"docs/player-route.md": "57165a47ef27c2fbeada41c2a68e3567f1e2ceef99fd1ac1ca89277fdc0041d5",
|
||||
"docs/terrain-takeover.md": "3504c5bcf820adcdfc4640f90ec2ea4347ac96b4b425d11658b2868c21bd5db1",
|
||||
"docs/ground-depot-loading.md": "b16d5e201198c6e89a7683768e5b104250396d50ed9ce4756328f57072de6841",
|
||||
"docs/objective-map-presentation.md": "eccf546db122634ad3528207070b5aaa4005e72bd615f7ddd477d08481875305",
|
||||
"docs/mounted-interception.md": "f40d1dd93deb7e89f48c3a9645cf35c32531fd5ce3d9ce3247b6561d60155ebb",
|
||||
"docs/welcome-voice-test.md": "218536b6df0658a8bb2d7ca4bcb2d1b227bdcf9c41603d7a522c3394b4840e4f",
|
||||
"README.md": "15a911d3453a536d18e1c58b650df8215bbbf8984ead248a992b7bae2d7d0720",
|
||||
".gitignore": "b965eff620081f103bc18f8e6a37c670629e1275261448ea3af22688695edc2b"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user