Files
EscapistsReintroduced/docs/evidence/random-radius-trace-2026-10-03/recoil/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

31 lines
3.7 KiB
JSON

{
"verdict": "No attributable recoil-camera cause from current evidence; ordinary installed camera path does not call the spherical random API.",
"log": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-mine-flanks-normal/console.log.txt",
"log_sha256": "fbda67071b3eca24033b7195b33072b4b27f806259893ec2f5969691800d51a8",
"error_time": "04:30:22.686",
"evidence": [
"SCR_RecoilCameraShakeProgress.Update lines157/169 calls GetRandomYawPitchRollImpulse()/GetRandomTranslation() without arguments. Both default onSphere=false and use RandomVector/RandomFloat, not GenerateRandomPointInRadius.",
"The single camera spherical call is SCR_RecoilCameraShakeParams.RandomVectorSphere(vector min, vector max, bool uniform=true), line160\u2013167, forwarding min.Length() and max.Length(). Both zero vectors would create the reported interval.",
"Attribute defaults translation min(0.0005,0.0005,0),max(0.006,0.006,0), impulse min(0.005,0.005,1),max(0.012,0.012,1.5) give valid nonzero unequal lengths. Extracted SVD override likewise nonzero unequal ranges.",
"No successor addon source/prefab/config override of recoil camera parameters or calls to these APIs found. External addon script/prefab closure was not fully re-extracted or proven absent.",
"Log has WORLD UpdateEntities/Frame context but no script/node/weapon stack; it cannot distinguish recoil from native AI/node/other callers."
],
"supported_diagnostic": {
"scope": "Opt-in WORKBENCH-only ordinary script override; not implemented or engine-compiled in this review.",
"class": "SCR_RecoilCameraShakeParams",
"method": "protected override vector RandomVectorSphere(vector min, vector max, bool uniform = true)",
"behavior": "Call super.RandomVectorSphere(min,max,uniform) exactly once and retain its result. After return, if both input vector lengths are zero and diagnostic scope enabled, emit capped16 global witness with type/this/input vectors and Debug.DumpStack(); return unchanged result. Do not clamp, skip native call, change RNG or invent owner accessors.",
"callstack_support": "Debug.DumpStack() is called by installed vanilla SCR_ScriptedWidgetComponent and SCR_WLibProgressBar. For BT methods only, Node.GetCallstackStr(out string val) and GetParentTreeName(out string val) are explicit native signatures; NodeError demonstrates usage but should not be invoked because it changes failure semantics.",
"limitations": "A silent recoil hook excludes only observed runs; it cannot identify a different caller. Params has no actor/weapon ownership accessor in this script. Native compatibility of a new override still needs parent-controlled engine compilation."
},
"source_sha256": {
"/tmp/erri-vanilla-stock/scripts/Game/Camera/Shake/SCR_RecoilCameraShakeParams.c": "81c78fd6de3e3d1f4031b589918b002fd0d4ef1673a6287ad7249b2c236aef8c",
"/tmp/erri-vanilla-stock/scripts/Game/Camera/Shake/SCR_RecoilCameraShakeProgress.c": "442f6c36f8c83e6206f438ed8b1950a3ea2fb0d15dab248f15ab3f2e45f88e91",
"/tmp/erri-vanilla-stock/scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c": "e40552f9bf619e008a3796920c6e7ecbc8db68a5f914ab1988780a7ba90ea417",
"/tmp/erri-vanilla-stock/scripts/Game/generated/AI/Node.c": "d5d3eea4e72d8a8978257009f8b3408628c26c0dd7c406a1fe86fafdaaedc789",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Utils/NodeError.c": "75a2aade91d8216d7038279d0ac384a7ecd494bb29a2de36f62214368feed22c",
"/tmp/erri-vanilla-stock/Prefabs/Weapons/Rifles/SVD/Rifle_SVD_base.et": "6e70d726155044eb1a68d5d6f7a65d0b9b12d43499fbf0e6e73612c65b769711"
},
"operations": "Read-only source/log inspection. No implementation, compiler/native/process/UI actions."
}