Files
EscapistsReintroduced/docs/evidence/inventory-hitzone-compat-2026-10-03/independent-review.json
T
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

33 lines
3.2 KiB
JSON

{
"complete": true,
"approved": true,
"concrete_blockers": [],
"read_only_review": true,
"manifest_sha256": "ad0824a453f10d2856fa6afc3e86ec27ec455b55028ed33fc72297cd0986c124",
"patch_sha256": "fff4e6cdf72b13dcd82cfb819ae3edf9abdb709c7b9b1bfd7b6b43a8b93c53c2",
"files": {
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
"tests/test_inventory_hitzone_compat.py": "bffa64c645a4282a1ed1ce244a9a2de37f20a70c60e8ff5b1544b7289c12c877"
},
"logs": {
"red.log": "e9a0eedbc9d6a52ffc49a66a378194d949744b2c1a225b8b8d16b084475b83d5",
"green.log": "2d1e9eee33bf9f7b837eabba67b5b4928882f00de9007188c08349653339ed4e"
},
"sdk_sources": {
"/tmp/erri-vanilla-stock/scripts/Game/HitZone/SCR_HitZone.c": "d622f0e7ee5727a2430aa10e78bf37c623a12b229bfcef098e0c385451adb612",
"/tmp/erri-vanilla-stock/scripts/Game/HitZone/SCR_CharacterHitZone.c": "b2be31418129fa536c55bebef21ccc9b8ac409d1ce8b3ecb11df0787b33ba47e",
"/tmp/erri-vanilla-stock/scripts/Game/UI/Inventory/SCR_InventoryHitZonePointUI.c": "0ffc7359e76a6de03669dc2e631682ec9b107048d829794ab61512dbdb209b02",
"/tmp/erri-vanilla-stock/scripts/Game/UI/Inventory/SCR_InventoryMenuUI.c": "717649eaa9a0f39c093e2526c56a17b08d7e63d913d12f41a889497d0d514099"
},
"previous_review_source_matches": true,
"callback_contract": "SDK SCR_HitZone invokes damage-state listeners with this only. Adapter accepts one SCR_HitZone and calls native UpdateHitZoneState(hz,true), preserving original direct initializer arguments and native superclass initialization.",
"duplicate_blood_assessment": "No blood/group duplicate registration path: SCR_CharacterBloodHitZone extends SCR_RegeneratingHitZone directly (line429), whereas SCR_CharacterHitZone separately extends SCR_RegeneratingHitZone (line170). The native group registration loop casts to SCR_CharacterHitZone, excluding blood. Separate blood binding and same cast therefore match actual native registration sources. No concrete leftover native subscription demonstrated.",
"lifecycle": "Replacement removes the original two-argument callback for each retained source; adapter bindings are deduplicated and removed before reinitialization, on detach, and on destruction. Captured mode identity and retained-source membership reject callbacks after clear or mission replacement. Nonmission initialization keeps native behavior.",
"test_review": "Read exact full actual-method adapter harness and retained compiled baseline runtime-failure/proposal pass logs; no tests rerun. Covers explicit bool forwarding, original false initialization flag, source replacement, shared widget ownership, blood/group casting, reinit, detach/destructor and captured late callbacks.",
"limits": [
"The native initializer, ScriptInvoker registration/removal/dispatch and UI are doubled; no engine execution or rendered inventory proof.",
"The test double deduplicates Insert and removes all matching callbacks. Arbitrary duplicate native registrations/removal semantics are not independently proven by this harness; actual blood inheritance resolves the specific suspected duplicate path.",
"No claim to fix separate tourniquet, damage-effect or other native inventory listener cleanup."
]
}