Embed RHS 1.9 compatibility; record Workshop 0.0.141
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -0,0 +1,741 @@
|
||||
{
|
||||
"files": {
|
||||
"BUNDLE-README.md": "20aba57d417a5d66e3e031c3723e2ee0614d45c20783c4636b6510f1fccb53aa",
|
||||
"EXTERNAL-ADDONS.json": "9bfca86013b63eacfccca0f6ba49669a65b3c850763ef68f3ed0283b264cd889",
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6",
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b",
|
||||
"addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6",
|
||||
"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": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f",
|
||||
"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": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a",
|
||||
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4",
|
||||
"addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a",
|
||||
"addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1",
|
||||
"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": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3",
|
||||
"addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
|
||||
"addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3",
|
||||
"addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
|
||||
"addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457",
|
||||
"addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18",
|
||||
"addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5",
|
||||
"addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02",
|
||||
"addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c",
|
||||
"addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
|
||||
"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": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911",
|
||||
"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": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f",
|
||||
"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/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9",
|
||||
"addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537",
|
||||
"addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb",
|
||||
"addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068",
|
||||
"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": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
|
||||
"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": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8",
|
||||
"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_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a",
|
||||
"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": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "2978e44217db17f03e336088c733d42fe8c8d36479bba1fe40f1cfa55d9e5133",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "63e27e74a5e0b1cf1c82ca776b9166e713f59918da02a5a89fccfd50a1036e9e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "39f7b77029834403ad98ecd398a364bdd5c7c4473c67816240c23160e8dd4080",
|
||||
"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": "6fdca5f333332b7bb2349c4ecd1f11278201770829aeac486a4f2fa7cd4221b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "b8f9df2cccd49d917389a1f872b1dba2704d3de657ac0b236d88f2ec0c4c43c1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "4321499b0d0ac09142fd8ec013f5020d115b64a40a5648169cea9fbb60cca0c2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
|
||||
"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": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637",
|
||||
"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": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e",
|
||||
"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": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661",
|
||||
"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_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "b22d75484cc671392f623fddd175882f9a430227247355f35c0aef4c68a7e0a2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1",
|
||||
"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": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "1d20d0ecd77849ce1cf93bc89516059e25a6cbd89bf4c0ffc098be71f3ccd76b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30",
|
||||
"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": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393",
|
||||
"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": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138",
|
||||
"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_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543",
|
||||
"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": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1",
|
||||
"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": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057",
|
||||
"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": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035",
|
||||
"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_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93",
|
||||
"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_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013",
|
||||
"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": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577",
|
||||
"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": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
|
||||
"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": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f",
|
||||
"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": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89",
|
||||
"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_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "e4622ef82a3a3ecaf251c865786b97ff0f95bbeba147cde848c722708e151b2b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "012cc0f3928d883b99a9922fd3b30cbafc6363a73ee27772e359116e0e6233f7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "75ac61a9ba0d984a5c6d21ad6a020bb1562914ab09dafac8a80e822f0af77611",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a",
|
||||
"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": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27",
|
||||
"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_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c",
|
||||
"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": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d",
|
||||
"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_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68",
|
||||
"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": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51",
|
||||
"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_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "ee8e5f0483ad738f6254adcd66e71ad4872fd000c92f44405c4dcc0453a40308",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10",
|
||||
"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": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb",
|
||||
"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": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb",
|
||||
"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": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb",
|
||||
"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_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "f24f92d0f5d2e6f29c5c80562bf1ecf10c050433872de42956d578b329855bdf",
|
||||
"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": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
|
||||
"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_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
|
||||
"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_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
|
||||
"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": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
|
||||
"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_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
|
||||
"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_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "01007951eea6a4eb980c3d88f3aad10219ae54f8d4f9982c40922edaa9d55300",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba",
|
||||
"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": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6",
|
||||
"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": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733",
|
||||
"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_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427",
|
||||
"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": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957",
|
||||
"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": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf",
|
||||
"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_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26",
|
||||
"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_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2",
|
||||
"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": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147",
|
||||
"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": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d",
|
||||
"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": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869",
|
||||
"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_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660",
|
||||
"addons/core/UI/layouts/ERR/AdminMenu.layout": "a9afb8957e26738df5ca48a6de0ebd57dd14a10046fd136b5cb9c858ef79e584",
|
||||
"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": "942e33bf2e08550446b40bcac31fb4504b7d8c717a42c196f54bf4025c72706c",
|
||||
"addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout": "6d364ce48158b90abd2185ca87ee27b095d0f7a5c8d59a0c65940e4be5488ac3",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
|
||||
"addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d",
|
||||
"addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3",
|
||||
"addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e",
|
||||
"addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
|
||||
"addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615",
|
||||
"addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a",
|
||||
"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"
|
||||
},
|
||||
"kind": "DEVELOPMENT SOURCE BUNDLE",
|
||||
"native_build": false,
|
||||
"projects": {
|
||||
"core": {
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"595F2BF2F44836FB",
|
||||
"5E524E4FEECCA92B",
|
||||
"629B2BA37EFFD577",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"guid": "2528466DE220D91C",
|
||||
"id": "ERR_Core"
|
||||
}
|
||||
},
|
||||
"release_package": false,
|
||||
"schema_version": 1
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"archive_bytes": 12372911,
|
||||
"archive_sha256": "a7bf20772a3ebc1e115238e6787c25e8dc3c50536bdf6fb2d49c65587d332ccb",
|
||||
"kind": "DEVELOPMENT SOURCE BUNDLE",
|
||||
"payload_files": 720,
|
||||
"preview": false,
|
||||
"projects": {
|
||||
"core": {
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"595F2BF2F44836FB",
|
||||
"5E524E4FEECCA92B",
|
||||
"629B2BA37EFFD577",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"guid": "2528466DE220D91C",
|
||||
"id": "ERR_Core"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"ready": true,
|
||||
"validation": "Existing development preview returned0; invokes exact full build/metadata/resource/dependency validation in memory. No output ZIP or repository write.",
|
||||
"preview": {
|
||||
"archive_bytes": 12372911,
|
||||
"archive_sha256": "a7bf20772a3ebc1e115238e6787c25e8dc3c50536bdf6fb2d49c65587d332ccb",
|
||||
"kind": "DEVELOPMENT SOURCE BUNDLE",
|
||||
"payload_files": 720,
|
||||
"preview": true,
|
||||
"projects": {
|
||||
"core": {
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"595F2BF2F44836FB",
|
||||
"5E524E4FEECCA92B",
|
||||
"629B2BA37EFFD577",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"guid": "2528466DE220D91C",
|
||||
"id": "ERR_Core"
|
||||
}
|
||||
}
|
||||
},
|
||||
"authored_payload_files": 718,
|
||||
"zip_members": 721,
|
||||
"command": [
|
||||
"python3",
|
||||
"-B",
|
||||
"tools/source_bundle.py",
|
||||
"--mode",
|
||||
"development",
|
||||
"--output",
|
||||
"/tmp/escapistsrereintroduced-development-source-20261105.zip"
|
||||
],
|
||||
"working_directory": "/home/jakub/devel/escapistsrereintroduced",
|
||||
"output_exists_now": false,
|
||||
"procedure": [
|
||||
"Run from successor checkout only after final changes are settled. Output parent must already exist, destination must be new regular .zip outside checkout; helper refuses existing/symlink outputs.",
|
||||
"Compare emitted archive SHA with preview only if source/policy bytes stayed identical; otherwise regenerate preview and bind fresh source inputs.",
|
||||
"Extract into a new development directory, verify each BUNDLE-MANIFEST.json payload SHA and exact membership plus manifest, then register addons/core/addon.gproj with separately installed dependencies."
|
||||
],
|
||||
"closure": {
|
||||
"project": {
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"595F2BF2F44836FB",
|
||||
"5E524E4FEECCA92B",
|
||||
"629B2BA37EFFD577",
|
||||
"65930CB4CD0237B2"
|
||||
],
|
||||
"guid": "2528466DE220D91C",
|
||||
"id": "ERR_Core"
|
||||
},
|
||||
"external_policy": "Seven explicitly allowed transitive RHS/WCS addons; project directly depends on four plus vanilla base. No external asset payload is copied.",
|
||||
"resources": "Metadata GUID/path uniqueness and hard resource references validated against owned/vanilla/external catalogs; one exact pinned identity-only REAPER comparison exception and one exact vanilla Character_Base override retained."
|
||||
},
|
||||
"excluded": "Root .build/.local/docs/evidence/git, installed addons, original workspace and runtime packages not collected. Narrow reviewed authored UI/audio/atlas assets are included.",
|
||||
"limits": [
|
||||
"Development source only; no PAK/native compile/startup/install/publish.",
|
||||
"Catalog closure validation does not prove currently installed external versions or physical gameplay.",
|
||||
"Do not copy entire repository or historical evidence; existing helper reads only authored addons and small policy files.",
|
||||
"No full source_bundle unittest suite rerun: preview completed production validation and existing tests were inspected."
|
||||
],
|
||||
"files": {
|
||||
"tools/source_bundle.py": "a7376836ae0764668cfd5933c555175398c1bddaee01c0b1435ead09f845803f",
|
||||
"tools/source_manifest.py": "c1a985348bad16f3b5b69ef7e545b6341eca298d8ae08111b8340b31535cc199",
|
||||
"tools/resource_references.py": "523042563431cd20443683de43ccc9dc76b86301cb40a50d50083dd8bdd01c31",
|
||||
"tools/external_addons.py": "8c19f330f13498a4d6f7a2d2097c17dab3121262faa0954751f307496ce3e93e",
|
||||
"tools/project_schema.py": "cc1527c5f68fb75711208f293f4751c206fedc725934d9db7d4b7fe539f60cec",
|
||||
"docs/development-source-bundle.md": "7cd8dbc04a9cfe87ff7479283477e788552484ea1b83ffdee4893620f1df31ec",
|
||||
"docs/external-addons.json": "032ddb2b38740704fa78974b0f8d4cdf40a487daaf212fdc305b35dff2d395c5",
|
||||
"docs/vanilla-resources.json": "8f0254d0786da34a4d7dedee2ce62cb766d054daaa8015cc889221e1629b2a6d",
|
||||
"docs/addons.json": "ccda7c1aa6bf60524cd983ff863e178270445ef193e7418967b11cc49eb366d4",
|
||||
"addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4"
|
||||
},
|
||||
"source_inventory_sha256": "c6239323a9044555d78707aa63923027507d02148b64b4ebb8a7afee5b069d87"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "/tmp/escapistsrereintroduced-development-source-20261105.zip",
|
||||
"sha256": "a7bf20772a3ebc1e115238e6787c25e8dc3c50536bdf6fb2d49c65587d332ccb",
|
||||
"bytes": 12372911,
|
||||
"members": 721,
|
||||
"authored_files": 718,
|
||||
"exact_membership": true,
|
||||
"all_payload_hashes_verified": true,
|
||||
"authored_files_match_live": true,
|
||||
"no_native_build": true,
|
||||
"no_installation_or_publication": true
|
||||
}
|
||||
@@ -0,0 +1,896 @@
|
||||
# Current development status
|
||||
|
||||
**5 November 2026 — refreshed editable development handoff:** a new
|
||||
[source ZIP](/tmp/escapistsrereintroduced-development-source-20261105.zip)
|
||||
contains all **718 authored addon files**, including the recent HQ, objective and
|
||||
medical fixes. The existing bundler validates the dependency/resource closure;
|
||||
independent inspection verifies exact ZIP membership and every payload hash.
|
||||
This is editable source, not a compiled PAK, installed update or qualified release.
|
||||
The temporary ZIP may expire; its manifest and digest are retained in
|
||||
[the handoff evidence](evidence/development-source-2026-11-05/report.json).
|
||||
|
||||
Three existing stock/station checks passed. Bounded map, action and maintenance
|
||||
reviews found no demonstrated new defect. Native validation remains deferred:
|
||||
the private test prefix is absent, and the source Tools prefix has live processes,
|
||||
so it was left untouched. No windows were opened, no processes or audio changed,
|
||||
and nothing was installed or published. Manual/multiplayer/FPS acceptance remains open.
|
||||
|
||||
**5 November 2026 — strong injectors reject treatment with no benefit:** a
|
||||
conscious, nonbleeding player with only mild blood loss could be offered combat
|
||||
epinephrine even though its effect left that condition unchanged. Blood-only
|
||||
eligibility now uses the same native fainting threshold as the existing effect.
|
||||
Unconscious patients remain eligible for its waking effect, and bleeding,
|
||||
resilience loss and physical injury treatment remain available. Standard
|
||||
injectors, treatment strength and finite supplies are unchanged.
|
||||
|
||||
Seven affected medical/lifecycle regression programs pass on unchanged final
|
||||
inputs. The new actual-method case fails against the prior source; a separate
|
||||
control verifies unconscious treatment remains accepted. The earlier full-suite
|
||||
checkpoint predates this two-file code/test change. No engine run was attempted:
|
||||
the established private prefix is absent. Native consumption/animation, manual
|
||||
play, multiplayer and FPS remain unverified. Existing missions, installed builds,
|
||||
Git index and earlier evidence were preserved; nothing was published.
|
||||
[Fix, independent review and evidence](evidence/epinephrine-eligibility-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — full offline integration check restored:** the complete
|
||||
repository validator passes on 1,229 unchanged recorded input files, including
|
||||
the earlier HQ recovery-hold and objective-guidance changes. Two stale test
|
||||
contracts were repaired: observer ownership doubles now expose the committed
|
||||
hint debounce/quiet-call interface, and preparation checks expect the committed
|
||||
120-second results countdown. Gameplay code and the countdown itself are
|
||||
unchanged by this continuation. Current terrain-takeover documentation agrees.
|
||||
|
||||
Initial sandbox socket, observer compilation and obsolete countdown failures
|
||||
remain archived. Independent base-loop reviews found no demonstrated defect in
|
||||
intel progression, radio occupancy or reconnect/partial-result identity. This is
|
||||
offline validation only. No engine was launched; this continuation did not change
|
||||
installed builds or publish. Manual escape, multiplayer and FPS acceptance remain open.
|
||||
[Exact inputs, failures and results](evidence/integration-check-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — persistent objective guidance matches progression:** radio
|
||||
search instructions now explain keeping undeciphered documents and identifying
|
||||
other distinct non-radio sites first; starting clue markers do not count. This
|
||||
replaces the misleading promise that collecting more starting folders alone
|
||||
reveals the radio. The guidance stays conditional because the server owns the
|
||||
round's configured requirement. Identified-radio instructions and close-view
|
||||
identification remain available. The airborne extraction objective now states
|
||||
30 continuous seconds for all rescue transports, matching the current rule.
|
||||
|
||||
The player-route guide is updated. Four existing objective/intel/rescue checks
|
||||
pass unchanged on the recorded inputs. Only wording changed; native UI rendering,
|
||||
multiplayer and performance were not tested. No engine was launched, installed
|
||||
builds were not replaced, and the earlier HQ fix was preserved.
|
||||
[Evidence](evidence/objective-guidance-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — depleted squads can receive their recovery hold:** HQ already
|
||||
planned a reserve hold after a withdrawal reached shelter, but its radio delivery
|
||||
gate rejected that order when the squad had no ammunition. Delivery now permits
|
||||
that hold only for a coordinated squad whose existing judgment still requires
|
||||
recovery. Ordinary tactical reserve and attack orders retain the ammunition gate;
|
||||
exact task identity, current belief, expiry and force-ownership checks still apply.
|
||||
|
||||
Nine focused HQ regression programs pass on unchanged relevant inputs, including
|
||||
actual delivery and coordinated-admission methods; the prior source compiles but
|
||||
fails the new recovery-hold assertion. Eight base-loop regressions also passed
|
||||
before the change. This is a source-only correction: native radio/physical movement,
|
||||
multiplayer and performance remain unverified. No engine was opened, and this
|
||||
continuation did not install, publish or alter original missions. Concurrent garage
|
||||
work was preserved. [Evidence](evidence/hq-recovery-reserve-2026-11-05/report.json).
|
||||
|
||||
**7 October 2026 — shorten the initial airport survey:** the latest live
|
||||
Chernarus log spent 48.5s between terrain-survey start and airport completion,
|
||||
then admitted the player after the prison/aircraft and client scene were ready.
|
||||
The survey previously processed one 2km tile per 250ms scenario tick. It now
|
||||
batches up to eight tiles, yielding after 4ms of work between native queries.
|
||||
It still completes the full survey and retains navigation, clearance and spawn
|
||||
protection checks. Isolated Nogova comparison: airport survey 21.2s → 7.0s;
|
||||
spawn-ready 27.5s → 13.1s. All 26 sites completed and all 13 native assertions
|
||||
passed, with zero script errors. Scheduler/airfield policy checks and the source
|
||||
bundle preview passed. These are single random-placement runs, not an FPS
|
||||
benchmark or live Chernarus validation. Initial engine terrain loading and the
|
||||
startup map redirect are unchanged. Not published or deployed. Evidence:
|
||||
[`airport-survey-batching-2026-10-07/report.json`](evidence/airport-survey-batching-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — configurable field-site population:** ordinary rounds now
|
||||
request 12 camps and six hospitals, for 26 total mission sites. The new
|
||||
**Forces → Configure sites** page saves camps (1–16) and hospitals (1–8) for
|
||||
the next round. Old settings files receive the new defaults. Required objectives,
|
||||
initial radio-clue sources and discovery/intel rules are retained; extra locations
|
||||
use background generation and may be omitted if safe placement is unavailable.
|
||||
Above eight field sites, the original 32 fixed guards and 16 mobile soldiers are
|
||||
shared across them. The first unbudgeted expansion stalled during guard/scout
|
||||
preparation; the budgeted run completed all 26 sites and scouts, with 13 native
|
||||
assertions passed and zero script errors. Nogova spawn admission opened at 27.5s,
|
||||
background preparation completed at 100.8s. Min/max definitions validated; physical
|
||||
maximum-density placement, connected-client UI and FPS were not tested. Focused
|
||||
settings, menu-routing and roster-budget regressions passed. Not published or
|
||||
installed on the live server. Evidence:
|
||||
[`site-population-2026-10-07/report.json`](evidence/site-population-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — protect loading prisoners:** newly created admission bodies
|
||||
now have a server-owned damage protection lease for the scene-replication,
|
||||
inventory and native asset-preload wait. The final verified handover restores
|
||||
damage; rejection, timeout cleanup, disconnect, round cancellation and discarded
|
||||
tickets release the lease as well. It preserves a pre-existing disabled damage
|
||||
state and never heals or grants another life. Existing-body reconnect handoff is
|
||||
unchanged; this protects newly spawning characters, not offline reserved bodies.
|
||||
Eight isolated engine checks passed: native damage is blocked while held and the
|
||||
same request damages the actor after release; duplicate release, prior protection
|
||||
and ticket destruction behave correctly. Scene/timeout/lease policy tests and
|
||||
native compilation passed. No connected-client playtest was performed. Evidence:
|
||||
[`spawn-loading-protection-2026-10-07/report.json`](evidence/spawn-loading-protection-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — progressive mission generation:** ordinary rounds now admit
|
||||
players once the prison (or crash start), its finite supplies/guards, and the
|
||||
extraction helicopter are ready. The existing per-player replicated-scene,
|
||||
inventory and native asset-preload gate still withholds control until its final
|
||||
client verification; timeout rejects/retries instead of assigning an empty scene.
|
||||
Remaining terrain searches continue in bounded
|
||||
slices; camps are prepared one at a time, followed by scouts, roadblocks and
|
||||
support initialization. Background work runs even with no connected players.
|
||||
Each late site is committed into the existing mission only after stock and guards
|
||||
are ready; unfinished locations stay out of discovery/intel selection. Generic
|
||||
folders are retained when no target exists yet, and late RevealOnEscape sites
|
||||
catch up if players already escaped. Sites within 200m of a living player defer
|
||||
creation. Stopping the round cancels unfinished work without rolling back committed
|
||||
sites. Optional failed sites can be omitted only while required objectives and
|
||||
accessible radio clues remain valid; required failures end the round explicitly.
|
||||
Native 1.8.0.13 Nogova test: spawn-ready at 25.4s, all 16 sites and remaining
|
||||
preparation complete at 82.7s, nine checks passed and zero script errors. Ordinary
|
||||
Everon cancellation test: spawn-ready at 5.7s; partial site cleanup preserved the
|
||||
prison and committed sites, no later generation occurred. These are isolated
|
||||
server-side tests, not a connected-client or FPS benchmark. Evidence:
|
||||
[`progressive-generation-2026-10-07/report.json`](evidence/progressive-generation-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — checkpoint mine laying:** quiet roadblock guards can now make
|
||||
up to four finite off-road placement attempts per post, using original carried
|
||||
PMN4s and the existing mine inventory chance. Jobs start during ordinary HQ ticks
|
||||
(after prison escape), with at most two checkpoint engineers working at once.
|
||||
Every nearby road edge has a 15m exclusion margin; the defend area plus a 20m
|
||||
buffer stays clear. Original hold orders, finite inventory/callback custody,
|
||||
continuous preparation, engineer withdrawal and friendly clearance remain required.
|
||||
Combat, reassignment, custody loss or a 180s deadline cancels placement. The working
|
||||
guard gets a temporary native AI activation/LOD lease, restored on completion.
|
||||
Known checkpoint mines steer friendly foot AI around a safety circle, preserving
|
||||
individual destinations through the detour and cancelling on a changed group order.
|
||||
Players, mine triggers and blast damage are unchanged. Moved/disarmed/destroyed
|
||||
mines lose their stored avoidance entry. This is local steering with physical
|
||||
corridor checks, not an engine-wide navmesh exclusion or friendly immunity.
|
||||
Six focused regression programs and the development source bundle check pass.
|
||||
The isolated Reforger 1.8.0.13 Nogova run placed and armed eight distinct carried
|
||||
mines with zero script errors; a separate crossing probe verified friendly detours
|
||||
around live mines: all three started crossings completed, with 10.06–11.86m
|
||||
minimum clearance and their mines still armed. The final inside-danger-area
|
||||
wait safeguard was native-compiled separately. See [native evidence and limits](evidence/roadblock-mining-2026-10-07/report.json).
|
||||
Not published or installed on the live server.
|
||||
|
||||
**7 October 2026 — editor registration and item-catalog lifecycle errors:** terrain
|
||||
takeover now reuses an existing editor and waits for a valid, distinct player
|
||||
replication identity before creating a missing one. An 80-attempt retry only
|
||||
visits missing editors and cancels on mode detach/end. Normal host ownership and
|
||||
native administrator permissions remain intact. Item-station cleanup records
|
||||
successful native subscriptions and releases their original owners independently
|
||||
of the catalog; transient preloads without a catalog do not initialize a gameplay
|
||||
station. Main-world setup errors remain visible.
|
||||
Five focused regression programs pass. In the isolated 1.8.0.13 Nogova fixture,
|
||||
the previous source reproduced four catalog errors and two failed cleanup checks;
|
||||
the fixed source passes all seven native checks with zero script errors. The
|
||||
fixture includes real kit creation/deletion and kit-local catalog expiry with the
|
||||
global catalog unchanged. Connected two-player restart still needs live validation.
|
||||
These are source fixes, not a published/deployed update; the running server was
|
||||
only inspected. [Evidence](evidence/server-lifecycle-fixes-2026-10-07/report.json).
|
||||
|
||||
|
||||
**7 October 2026 — configurable building guard density:** Forces → Configure
|
||||
guards groups the existing 0–16 soldiers-per-site control with every 1st/2nd/3rd/4th
|
||||
eligible compound (new default: every third) and hold/half-to-HQ/all-to-HQ choices.
|
||||
Settings persist in the unified mission config and are frozen at round setup.
|
||||
Skipped compounds stay skipped for the round; fixed guards retain the existing
|
||||
HQ reservation and reporting path. Site logs include density and HQ mode.
|
||||
Four focused regression programs and isolated 1.8.0.13 script compilation pass.
|
||||
The revised UI and live mission behavior still need playtesting; source only,
|
||||
publication remains with the user. See [guard settings](town-garrisons.md).
|
||||
RKS #2 logs were read after explicit approval of read-only sudo: the last played
|
||||
round spawned 72 object guards (36 fixed/36 responders) plus 18 town soldiers.
|
||||
Two editor-manager registration exceptions occurred at 14:00:58 UTC during terrain
|
||||
takeover; the process continued. Repeated missing entity-catalog errors remain.
|
||||
No live settings were changed and the server was not restarted.
|
||||
|
||||
|
||||
**7 October 2026 — spectator scope view:** first-person camera samples now carry
|
||||
bounded cosmetic scope identity, magnification, vertical reticle offset and
|
||||
illumination. Standard 2D/PiP optics use their authored reticle in a private
|
||||
full-screen spectator display; ordinary first-person poses are unchanged.
|
||||
Weapon/sight identity matching, stale-view fallback and scope transition resets
|
||||
prevent retaining another weapon's scope. No weapon input or native ADS callback
|
||||
is invoked on the watched soldier. The display cleans up on orbit, target loss,
|
||||
menus, camera exit and recovery. Eight focused offline regression programs pass.
|
||||
The hidden 1.8.0.13 client creates and renders the PSO overlay, restores visibility
|
||||
on close, and reopens with illumination; both captures were inspected. This is
|
||||
local rendering evidence, not remote multiplayer/aiming proof. The last
|
||||
ignore-cursor flag is separately compiled. See [evidence and limits](evidence/observer-scopes-2026-10-07/report.json).
|
||||
Source only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — solo death camera and starting supplies:** the observer now
|
||||
detects death from the round roster even if native possession keeps the corpse,
|
||||
initially selects the player's own available body, and restores an observer camera
|
||||
displaced by the native death camera. Open Game Master keeps its camera. Dead-body
|
||||
orbit input also works after selecting player view. The existing final-death grace
|
||||
period and round restart timing are unchanged. Mission-menu settings control the
|
||||
shared starting backpack's pistols (0–12, default 5) and spare magazines (0–48,
|
||||
default 8) for the next round. Focused offline regressions cover saved-setting
|
||||
migration/ranges/failure retention, spectator selection and camera recovery;
|
||||
native multiplayer behavior and the revised menu rendering still need playtesting.
|
||||
Source changes only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — AI offloading decision deferred pending measurements:** preserve
|
||||
the isolated Reforger 1.8 probes and evidence. Ownership transfer and worker-local
|
||||
soldier copies did not move native AI updates. Remote native collision-query
|
||||
batches worked, including authoritative waypoint application and timeout fallback,
|
||||
but no useful CPU saving was established. The user wants to collect representative
|
||||
mission performance data before deciding how to use this. Do not integrate an
|
||||
offloading architecture on the strength of the prototype alone. See the
|
||||
[workaround findings and recorded decision](ai-delegation-workarounds-1.8.md) and
|
||||
[HQ measurement instructions](hq-performance-measurements.md).
|
||||
|
||||
**5 October 2026 — review and regression repair:** all **326 registered regression programs pass**. Audio graph resource validation now handles escaped quotes and checks six verified vanilla audio resources; corrupted IDs/paths remain rejected. Stale roadblock, logging and five-vehicle convoy adapters were repaired without changing gameplay scripts. The development source bundle validates 455 authored files. This is offline validation, not a new native-game, multiplayer or FPS result. [Changes and review limits](evidence/review-audit-2026-10-05/review.json).
|
||||
|
||||
**5 October 2026 — configurable interim roadblocks:** Settings now includes a next-round count from 0–12 (default 4; 0 off), saved in the unified server configuration. Native road sampling places finite four-soldier checkpoints with roadside sandbags, selected-faction equipment and normal VirtualHQ reporting/tasking. A bounded optional search cannot hold up startup indefinitely. The final hidden Workbench run placed four posts with sixteen living guards, passed 51 assertions and completed player admission, prison release and radio progression without script/runtime failures. Its thirteen engine resource errors match the earlier spectator baseline. Live multiplayer and other-terrain placement remain playtest work. [Evidence and limits](evidence/roadblocks-2026-10-05/review.json).
|
||||
|
||||
**4 October 2026 — spectator body cycling and player-camera relay:** when no eligible survivor remains, spectators can cycle the current round's player corpses even after native controllers detach. Player view now uses the teammate's sampled camera transform and zoom, with bounded owner/server/observer relay, short interpolation, stale-stream orbit fallback and native head/helmet fading. Nineteen targeted regression programs pass. A hidden/muted native fixture completes 31 assertions with no script/runtime failures and the same thirteen installed-resource errors as its earlier baseline; both view screenshots were inspected. The fixture uses a physical stand-in with injected samples, so real multiplayer latency, HUD and picture-in-picture optics are not claimed as verified or identical. [Evidence and limits](evidence/observer-player-view-2026-10-04/review.json).
|
||||
|
||||
**4 October 2026 — civilian van and terrain Game Master follow-up:** the reported Chernarus session lacked per-car readiness/motion diagnostics. S1203 driving works in an isolated native baseline. Civilian traffic now logs prefab/readiness/progress, starts its stall allowance after readiness, and makes two bounded attempts to restore remaining fixed route orders. The Game Master pause-menu button now follows native permission changes; takeover reconciles already-connected editor managers using native roles. Full repository checks and focused regressions pass; native van recovery after injected order loss and editor event handover pass. Actual multiplayer Game Master UI and the exact reported Chernarus stall still require playtesting. Source is ready for user publication; live server settings and release were not changed. [Evidence and limits](evidence/playtest-traffic-editor-2026-10-04/README.md).
|
||||
|
||||
**4 October 2026 — refreshed UI/BMP development handoff:** [package and editable source](../.build/playtest-2026-10-04-ui-bmp/README.md).
|
||||
|
||||
The combined addon includes the inventory hit-zone callback correction and mounted BMP ammunition-accounting corrections, alongside selectable static crash starts and the existing finite base escape loop. Prison remains the default. **439 authored files, 378 exact PAK payloads and 3 runtime files** match the handoff. The exact code/tests/tools bind to the completed **309-program regression pass**, with any later checkpoint prose changes recorded separately. The exact-source normal escape completes **64 assertions and 1 completion**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of these exact runtime bytes reaches the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**.
|
||||
|
||||
This is an **unqualified development candidate**. Strict packaging/startup failures remain recorded. Synthetic inventory notifications and bounded BMP inventory/status diagnostics do not establish natural-injury/manual UI behavior, physical interception, human escape, multiplayer/JIP/reconnect, comparative FPS or clean release acceptance. Existing missions and all five prior sealed candidates remain unchanged. No installed runtime is replaced and nothing is published.
|
||||
|
||||
**4 October 2026 — inventory callbacks and original BMP radio accounting verified:** the native inventory check completes **96 assertions**, proving all seven original injury widgets receive the real one-argument event once and detach without late updates; it changes no health. The BMP sampler now recognizes the exact WCS inert control's proved structural attachment when its disabled inventory component is absent, while retaining real-weapon custody, completeness and counting limits.
|
||||
|
||||
The corrected original-BMP check completes **60 assertions**, including a complete mounted sample and actual radio delivery into a detached HQ Watch copy. The exact final-source scripted normal escape completes **64 assertions and one round**. All three completed runs have zero script/runtime failures and retain **13 known engine errors**; they ran hidden and muted with unchanged inputs and verified cleanup. All **309 regression programs pass** on unchanged final inputs. The initial 48-assertion/two-failure BMP diagnostic remains archived. Manual injury/rendering, full-fleet or physical interception reliability, multiplayer, FPS and clean release remain unqualified. Original missions, staged work and prior packages are preserved; installed runtime is unchanged and a refreshed development handoff is next. [Correction, exact evidence and limits](evidence/ui-bmp-corrections-2026-10-04/README.md).
|
||||
|
||||
**3 October 2026 — full regression restored; bounded inventory/BMP checks prepared:** all **309 registered regression programs pass** on unchanged final inputs, including the inventory callback correction and previously quota-blocked packaging checks. Only this task's inactive frozen-source duplicate was moved to disk with all 1031 files verified and its original path retained; no other task's temporary files or evidence were deleted.
|
||||
|
||||
The new opt-in inventory check uses the real menu, seven native injury handlers and one-argument blood notifications to test exact forwarding and genuine detach cleanup, without changing health or using desktop input. BMP diagnostics now distinguish missing inventory components, null/conflicting parent slots and failed zero-muzzle classification. Production ammunition/completeness rules and the callback adapter are unchanged. A running user game prevented native execution; the newly prepared checks remain **native-compilation and execution pending**. Original missions, staged work, five sealed packages and installed runtime are unchanged. [Exact checks, source, reviews and next native commands](evidence/inventory-bmp-checks-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — inventory injury callback corrected in source:** a mission-scoped adapter fixes the one-argument damage event/two-argument UI callback mismatch observed in the installed client. It retains native updates and initialization, with owned-subscription cleanup. Focused regression and native compilation pass; actual injury-widget dispatch, rendered UI and multiplayer remain unverified. The installed package is unchanged.
|
||||
|
||||
The full suite stopped after **134 passing programs** on a shared `/tmp` disk-quota failure in offline packaging; **308 programs are registered**, but no full pass is claimed. No unrelated temporary files were deleted. The hidden, muted BMP check now reaches the original slot-4 vehicle and records **48 assertions**, but its numerically valid snapshot remains incomplete at the exact empty-armament slot binding. Two fixture failures and 13 existing engine errors are retained; radio proof is not reached. Source/dependency preservation and private cleanup are confirmed. Original missions, staged work and five sealed packages are unchanged. [Correction, failed checks and next steps](evidence/inventory-hitzone-compat-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP accounting verification strengthened; native run pending:** an opt-in Workbench check now requires complete armed counts from the original slot-4 BMP and that same vehicle’s actual queued and radio-delivered HQ status. The old generic check could be satisfied by a UAZ. The isolated check stops opening hunters and new town admissions before prison exit, while retaining original site troops, automatic convoy target, body cap, finite stock and the fixed proof deadline. Ordinary mission behavior is unchanged.
|
||||
|
||||
All **10 affected regression programs pass** on unchanged inputs; baseline and missing-completeness controls fail as expected. A read-only host preflight found an existing game, so no native run was started and the game was left untouched. The earlier 117/135 refusal correctly enforced the documented shared cap and was not a demonstrated accounting defect. The current crash-start playtest package is unchanged; it predates this diagnostic only. Native BMP accounting/radio proof, physical support reliability, manual play, multiplayer and FPS remain unqualified. [Prepared check and exact evidence](evidence/bmp-native-proof-preparation-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — refreshed crash-start development handoff:** [package and editable source](../.build/playtest-2026-10-03-crash-start/README.md).
|
||||
|
||||
The combined addon now packages the static crash-start choice, memory-based HQ searches, BMP interception implementation and recent configuration/resupply fixes. Prison remains the default. **437 authored files, 376 exact PAK payloads and 3 runtime files** match the handoff. The unchanged code/tests/tools reuse the completed **307-program regression pass** with three recorded subsequent documentation changes. The exact-source scripted default escape completes **64 assertions and one round**; ordinary startup of the exact package reaches the normal mission and local prisoner. Both have zero script/runtime failures, while retaining **13 and 17 engine errors**, respectively. The earlier 66-assertion crash route predates two terrain Game Master edits; that source difference remains recorded.
|
||||
|
||||
This is an **unqualified development candidate**: strict packaging/startup failures, human play, multiplayer, physical support reliability, comparative FPS and clean release qualification remain outstanding. Tests stayed hidden and muted. Prior packages and existing missions are preserved. [Start controls](mission-starts.md) · [Exact handoff evidence](evidence/playtest-refresh-2026-10-03-crash-start/README.md).
|
||||
|
||||
**3 October 2026 — independent crash aftermath start implemented:** Prison remains the default. Administrators can save Prison or Crash for the next round through Settings or `/esc mission start set prison|crash`. The server freezes and replicates that choice before site preparation. Crash creates a successor-owned static wreck scene, admits ordinary one-life survivors on foot and enters the existing intel → radio defence → extraction loop directly. The original finite supplies and shared field map are retained; the measured full wreck footprint and starting area are surveyed before placement.
|
||||
|
||||
The strengthened scripted crash route completes **66 assertions and one round**; the default prison route completes **64 assertions and one round**, both with zero script/runtime failures with unchanged inputs in each accepted run. The crash snapshot predates two unrelated terrain Game Master edits from the user’s other task; the repeated default route checks a frozen copy of the resulting source. The crash check also observes native activation of retained original clue defenders after the scripted approach, without an activation override. All **307 registered regression programs pass** on an unchanged frozen snapshot; the recorded documentation update follows those checks.
|
||||
|
||||
An initial crash fixture wrongly required every distant enemy to be currently active. Its failure remains archived; the corrected Workbench-only probe checks prison-hold release separately from native activation. Native AI behavior was not changed. The first default run completed but was rejected by the source guard because of the concurrent terrain edits; its raw evidence is retained and the default check was repeated against a frozen copy. A complete suite run also detected a concurrent peer edit; all 307 programs were then rerun on the frozen inputs. Each successful run still retains **13 engine errors**. These hidden, muted fixtures protect and teleport the participant, shorten radio defence and move the extraction vehicle: they do not qualify manual play, real flying, remote clients, twelve-player multiplayer or FPS. Static aftermath does not implement an animated helicopter crash or hideout start. Original missions and prior sealed packages are unchanged; a fresh package is still pending. [Controls and limits](mission-starts.md) · [Exact evidence and source](evidence/crash-start-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — latest mission and HQ native checks completed:** the scripted normal Everon escape route completes **64 assertions and one round**, with zero script/runtime failures. A separate corrected HQ fixture completes **172 assertions and one round**: an original two-member mobile team receives the copied **45 m** native search radius, pauses/resumes its queued search under injected contact, and returns to its existing home-defence waypoint on release. A separate six-member permanent guard patrol physically completes five ordered native moves and travels at least 8 m.
|
||||
|
||||
The first patrol attempt remained in the deliberately frozen prison phase; the second reached physical patrol completion but its historical catalog had no mobile responders. Both failures remain archived. Workbench-only setup now opens the prison through the canonical participant API, prepares two finite responders through the normal site owner, and checks their HQ queue before observing the separate permanent patrol. Ordinary mission behavior, movement criteria and deadlines are unchanged. All **305 registered regression programs pass** on the final unchanged snapshot.
|
||||
|
||||
Each completed native run retains **13 engine errors**, so strict clean-build qualification still fails. Both ran hidden and muted with unchanged source/dependency inputs and confirmed cleanup. The normal route preceded the three diagnostic source edits; exact snapshots and deltas are recorded. Radio transit, same-group physical search/resumption, a 110 m search sweep, twelve-player multiplayer and FPS are not established by these fixtures. Original missions and sealed packages are unchanged; the packages still predate recent source changes. [Checkpoint, failures and next work](evidence/hq-native-checkpoint-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — memory-based ground search areas implemented:** ordinary HQ SEARCH orders copy the delivered belief's uncertainty into a 45–110 m native search radius when queued. Delivery validates that snapshot before allocating a waypoint or replacing the previous task, then installs it once. Search centres still follow delivered tracks and coverage; missing-patrol investigations, road/site defence, interception, containment and the separate air-team path retain their previous behavior.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Six focused programs, a failing baseline and two mutation controls cover queue snapshots and delivery guards. The existing 40 m / 30 s negative-search witness remains unchanged; a visited 500 m cell does not prove every part of that area was cleared. The native search grid grows with radius, so runtime cost and FPS remain unmeasured. Native checks were deferred because an existing game was running. Original missions, the index and sealed development packages remain preserved; packages predate this change. [Implementation and evidence](evidence/hq-search-radius-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — configuration recovery and interrupted rifle resupply corrected:** changing one setting can no longer overwrite the only valid backup of another malformed section. Invalid recognized sections block unrelated saves before disk writes; repairing the damaged section preserves the good backup. Ordinary ammunition trips now retain their exact truck and recipient claims while an accepted native move remains unresolved, preventing a second supply job from racing the first. Existing finite stock, radio demand, deadlines and transfer rules remain in place.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Baseline failures and focused controls reproduce both bugs. Repository and source-bundle validation now recognize one audited optional resource-name comparison without adding a runtime dependency, and the existing vanilla character load has verified resource metadata. The initial validation failure remains archived. A separate bounded base-loop review found no new demonstrated defect in radio defence, extraction ordering, player identity or terminal cleanup. Native checks were deferred because an existing game was running; no window, input, audio or process changes were made. Native transfers, manual escape, multiplayer and FPS remain unqualified. The sealed development packages predate these source changes. [Implementation and evidence](evidence/config-supply-recovery-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — original BMP singleton interception implemented in source:** after six confirmed original-unit losses reach HQ through delivered reports, HQ can assign an existing original slot-4 WCS BMP to a road ahead of the remembered track. Fresh delivered crew/ammunition status, original force custody and a real radio command remain required. Its measured vehicle/attachment envelope governs conservative road and destination clearance. Existing UAZ pairs and singleton fallback share the same two-survey budget; no new vehicle, crew or stock is spawned.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Independent reviews cover dispatch, service and geometry integration. Native compilation, physical BMP driving/interception and path reachability remain unverified: a read-only preflight found an existing user game, so no native test was started. The sealed depot-mines package remains unchanged and predates this source feature. Original missions and earlier packages remain preserved. [Source and regression evidence](evidence/bmp-interception-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP ammunition accounting corrected; native confirmation pending:** two verified non-firing WCS/vanilla controls were counted as weapons with missing muzzles. The sampler now excludes only these exact resources when their native muzzle list is empty and reciprocal mounted ownership is valid. Real weapons and unknown or malformed components retain all completeness checks. This corrects accounting; it does not add BMP interception.
|
||||
|
||||
All **302 registered regression programs pass** on the recorded unchanged test snapshot, including its welcome-voice addition. Subsequent concurrent settings, faction/item preferences, terrain preference and welcome-voice edits are preserved live and are not covered by these results. The old sampler compiles and fails the new actual-method assertion; the correction passes ordinary and WORKBENCH controls. Exact installed resource identities were independently audited. One hidden/muted mounted-ammo run compiles but cannot admit an original convoy within its fixed proof window: the shared body budget reaches 117/135, while a convoy requires 25. It records **32 passing assertions, zero completions, two script test failures and fifteen engine-error entries**, including those two failures and thirteen existing entries. No BMP sample was observed; physical accounting and radio delivery remain unverified. Cleanup and unchanged source/external inputs are confirmed. [Source, tests and failed native evidence](evidence/bmp-ammo-accounting-2026-10-03/README.md).
|
||||
|
||||
The sealed depot-mines development package below predates this correction and excludes later live source changes. Original missions and all earlier packages remain preserved. Manual escape, multiplayer, physical logistics, comparative FPS and clean-release qualification remain unfinished.
|
||||
|
||||
**3 October 2026 — depot-mines development handoff:** [package and editable source](../.build/playtest-2026-10-03-depot-mines/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds ten finite startup PMN4 mines across five original camp caches. An existing original responder can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure; magazine expenditure cannot request mines. The loader also selects a compatible eligible porter from the original roster instead of letting an incompatible first member block magazine loading. Exact cargo identities, typed delivery proof, fixed deadlines and cancellation quarantine remain enforced. Earlier finite engineer-post reuse, compatible-stock supply, mine-flank safety and paired interception are included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **301-program regression pass**; 3 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **64 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. The normal-route read-only stock witness confirms **ten distinct original inert PMN4s in five camp caches**; it does not prove courier travel or transfer. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds the exact tested depot-mines snapshot. Concurrent welcome-voice additions and later source or test changes, including the BMP sampler correction, are preserved live but excluded from this frozen handoff and its qualification. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — finite camp mines join the physical supply chain:** five authored Everon camps now start with two PMN4 mines each. The existing original-responder courier can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure. Magazine expenditure cannot request mines. Cargo type, exact identities, native custody and cancellation are checked throughout; the original engineer entitlement and consumed-post rules remain unchanged.
|
||||
|
||||
All **301 registered regression programs pass**. One hidden/muted normal Everon run completes **64 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. The added read-only stock witness confirms **ten distinct original inert PMN4s stored in five camp caches**. Cleanup and unchanged source/external inputs are confirmed. Autonomous porter travel and native mine delivery, mine placement/arming, real multiplayer and comparative FPS remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this feature. The intermittent zero-radius issue remains unresolved. [Implementation and evidence](evidence/depot-mines-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — camp loading selects a compatible original porter:** a camp's first responder can no longer block loading solely because its rifle is incompatible with the remaining cache magazines. The loader searches the bounded original roster for a compatible eligible member before reserving forces or sending a truck hold. Existing military/ownership eligibility now applies during selection as well as execution. No stock, troops, deadlines or native transfer rules change.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the old mixed-roster failure and preserve the existing cancellation and finite-delivery checks. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled; neither the earlier error nor a caller trace appeared. Its cause remains unresolved; no extra reproduction run was made. Physical autonomous loading, multiplayer and performance remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this correction. [Implementation and evidence](evidence/depot-porter-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — ground-supply development handoff:** [package and editable source](../.build/playtest-2026-10-03-ground-supply/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds finite engineer reuse at genuinely newer radio-delivered road posts: four consumed attempts per original force and thirty-two per mission, with every new post more than 160 m from consumed posts. Original stock, native movement envelopes, fixed deadlines and unresolved-removal quarantine remain intact. Ordinary small-arms supply now refuses trucks lacking compatible nonempty original magazines before spending a report or claiming forces. Earlier mine-flank safety, paired interception and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **300-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ skips ammunition trucks that cannot supply the reported patrol:** ordinary rifle-supply admission now checks for compatible, nonempty original magazines before reserving forces, consuming the report or starting its three-minute cooldown. Previously an incompatible belt or launcher round could trigger a futile trip and stop the convoy. Launcher and mine behavior, delivered positions, original stock and later physical transfer checks remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Independent actual-method tests reproduce the old failure and confirm a later compatible original truck can accept the same delivered report. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled, but neither the error nor a caller trace appeared; the earlier intermittent issue remains unresolved. No additional reproduction run was made. Autonomous resupply, real multiplayer and performance remain unqualified. Original missions, the index and existing packages are preserved; the mine-safety package predates this source change. [Implementation and evidence](evidence/resupply-compatible-stock-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineers can reuse remaining stock at a newer delivered road post:** a mission-owned history now permits a second original mine attempt after a genuinely newer radio-delivered assignment. Each original force has four attempts per round and the mission has thirty-two; every new post must be more than 160 m from all consumed posts. Refused attempts remain spent. Active jobs and unresolved removal callbacks block new work for that original force, and copied prior mine sites constrain the next local work area. Original forces, stock, native defend radius and task deadlines remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the previous second-post refusal and catch quota and pending-callback regressions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **one recurring zero-radius script error and fourteen engine-error entries**. Those entries include the same script error plus thirteen installed-resource errors; the exact caller remains unknown. The first native compile exposed a ledger field/type name collision; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. Physical repeated mining, native path avoidance, multiplayer and FPS remain unqualified; straight corridor and sampled-position checks are not a navigation guarantee. Existing missions, the index and the mine-safety package remain preserved. That package predates this source change. [Implementation and evidence](evidence/engineer-posts-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mine-safety development handoff:** [package and editable source](../.build/playtest-2026-10-03-mine-safety/README.md).
|
||||
|
||||
**422 authored files**, **363 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds engineer mine flanks with at least 15 m clearance from nearby road centerlines and more than 200 m from named settlements. Mine dispatch also respects the group’s current native movement envelope before starting and throughout the job. Original items, fixed deadlines and cancellation quarantine remain intact. Earlier paired interception, finite supply and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **299-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native mine placement, arming and detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — engineer mine orders respect their group's native movement limits:** admission and every active phase now require the current group utility to allow the selected mine position. Previously a point could pass terrain/road/settlement checks but still trigger individual movement outside the group's defend or autonomous radius. A refusal uses existing cancellation without consuming an item attempt before admission; an already-spent item remains quarantined and late callbacks cannot arm it.
|
||||
|
||||
All **299 regression programs pass**. Independent tests reproduce the prior failure and reject an admission-only correction that misses later restrictions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. Cleanup and unchanged source/external inputs are confirmed. Native physical mine placement/arming and multiplayer remain unqualified, and the separate intermittent zero-radius error is unresolved. Original missions, the index and previous development package remain preserved. [Implementation and evidence](evidence/engineer-movement-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — zero-radius caller diagnostic compiles; earlier error remains unresolved:** an opt-in Workbench diagnostic now observes five native script callsites, with one shared sixteen-record cap and AI node/script stacks. Superclass arguments, results, output parameters and random draws remain unchanged. It is disabled by default and excluded outside Workbench.
|
||||
|
||||
All **299 regression programs pass**, including independent checks that catch three deliberate diagnostic regressions. One hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. The engine CLI confirms tracing was enabled, but the earlier zero-radius error did not recur and no trace was emitted. Its caller remains unknown; this is not a gameplay fix or proof that the error is gone. No repeated run was used to chase reproduction. Cleanup and unchanged source/external inputs are confirmed. Original missions, the Git index and the previous development package remain preserved. [Diagnostic and evidence](evidence/random-radius-trace-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineer mine sites recover the owned road/settlement exclusions:** the existing finite engineer now selects a flank position 25–60 metres from its delivered road post, at least fifteen metres from every nearby road centerline and outside the shared two-hundred-metre named-settlement exclusion. Previously the selector chose centerline points and omitted the settlement guard. Crossing and narrow roads participate in clearance; invalid or over-budget geometry refuses placement. Original soldiers, carried mines, HQ orders, attempt limits and arming/withdrawal rules are unchanged.
|
||||
|
||||
All **297 registered regression programs pass** on the corrected source. Independent tests reproduce the old placement-policy failure and catch five deliberate regressions; review also corrected tiny-segment clearance and reversed-polyline rounding. The hidden/muted normal Everon route compiles and completes **63 assertions and one round**, with **one zero-radius random-point script error and fourteen engine-error entries**. The fourteen entries include that same script error plus thirteen installed-resource errors; the exact caller is unknown and no evidence attributes it to the mine-site change. Cleanup and unchanged source/external inputs are confirmed. This does not exercise native mine laying or arming, manual play, multiplayer or FPS. The existing development package and original missions are preserved; the package predates this correction. [Implementation and evidence](evidence/mine-flanks-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — bounded production convoy observation added; travel qualification remains incomplete:** the new opt-in `supply-travel` fixture watches the first naturally admitted production convoy, retaining its six vehicles, eight groups and 25 original actors. No enemy orders, budgets, routes or contacts are injected. The canonical scripted observer alone is temporarily protected from damage, with its prior flag restored on cleanup.
|
||||
|
||||
The hidden/muted run compiled and admitted the full original formation. Slots **0, 1 and 5** each moved at least twenty metres from their first-ready positions; slots **2, 3 and 4** did not meet that requirement before the fixed three-minute window expired. The task remained ready and active in combat state. Original crew/seat/record checks passed through the last pre-deadline observation; the deadline poll itself exits before revalidation. The archived result is a failure: **zero completions, one script test failure and fourteen engine-error entries**, including that same test failure and thirteen installed-resource errors. Its 453 assertion-pass calls include 419 repeated probe-presence checks and are not 453 distinct gameplay checks. Cleanup and unchanged source/external inputs are confirmed.
|
||||
|
||||
All **297 registered regression programs passed** before a reviewed strong-reference cleanup correction; four relevant checks were rerun successfully on the corrected source, with other suite inputs unchanged. No production AI change or package refresh was made. The earlier mounted-pair handoff below remains preserved. Full travel, tactics, resupply/interception, human play, multiplayer and FPS remain unqualified. [Evidence and limits](evidence/supply-travel-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mounted-pair development handoff:** [package and editable source](../.build/playtest-2026-10-03-mounted-pair/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds event-time capture cancellation for original active hunter vehicles, the current inherited terrain presentation, and paired radio interception by two original convoy escorts. Both real order receipts precede detours; finite forces, crew identities, stock and fixed deadlines are preserved. Earlier convoy-survivor, radio interruption and finite-transfer corrections remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **294-program regression pass**; four later prose-only documentation updates are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ can dispatch a pair of original convoy escorts:** two armed escorts from the same finite convoy can receive separate radio orders to spaced positions on one actual road ahead of delivered travel memory. Both receipts are required before either detour begins. Interrupted delivery, stale history or loss of an original crew cancels the pair; there is no replacement partner, deadline renewal or new combat force. Single-escort fallback, force limits and the total two-road-survey budget remain intact.
|
||||
|
||||
All **294 registered regression programs pass**. Independent review corrected a feasible-pair selection gap; source tests cover radio arrival order, interrupted delivery, waypoint allocation failure, exact ownership and two-escort column rejoining. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**. The first native compile caught a field/type naming conflict; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. This establishes compilation and ordinary-loop integration, not native physical paired interception, human play, multiplayer or FPS. Existing missions, the Git index and the previous playtest package are preserved; that package predates this addition. [Implementation and evidence](evidence/mounted-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — current mission survives two native end/restart cycles:** the hidden/muted Core fixture passes **21 assertions across two independently initialized rounds**, with **zero script/runtime failures and thirteen retained engine errors**. Each round reaches the prepared prison phase, ends through vanilla `EndGameMode`, shuts down successor services once, cancels queued work and leaves stale callbacks inert. Native end data remains unchanged, no escape is invented, and vanilla reload initializes the second round with fresh state.
|
||||
|
||||
A fresh **292-program regression run passes** on the same **420-file authored source**, including the inherited terrain-presentation update; earlier source bindings are not reused. Cleanup and unchanged source/external inputs are confirmed. This checks local prepared-round termination and restart, not pending native preloads, field-logistics teardown, complete human play, multiplayer or FPS. Strict native failure remains recorded. No production code changed in this continuation; existing missions, inherited work and the packaged handoff are preserved. [Evidence and limits](evidence/active-restart-current-2026-10-03/review.json).
|
||||
|
||||
**2 October 2026 — combined admin and intel reroll fixture completes on current source:** the hidden/muted native run passes **116 assertions and one escape round**, with **zero script/runtime failures and thirteen retained engine errors**. It exercises the administration menu and owner RPCs, then processes **126 original AI at 100% and again at 0%**, both with zero failed or skipped entries inside the unchanged shared ninety-second gate. The checked guards gain/remove their native folders while the player’s exact collected clues and identified radio remain intact. Interrupted radio defence, extraction and results then complete.
|
||||
|
||||
No production source changed. The prior **292-program regression pass** covers identical authored source, tests and tools; this was not a new full-suite run. The earlier 129-actor timeout remains preserved, and this 126-actor result is not an identical-workload comparison. Scripted local legacy-site/admin checks do not establish ordinary input, remote multiplayer, generated-route balance or FPS. Strict engine failures remain; cleanup and unchanged external inputs are confirmed. Three bounded gameplay reviews found no new demonstrated defect. Original missions and the existing package remain unchanged. [Evidence and scope](evidence/intel-reroll-current-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — active hunter capture is remembered at vehicle entry:** when a current admitted player enters an active original HQ hunter vehicle, the server records capture before native entry callbacks can change player ownership. The existing driving/recovery order and HQ registration are released once, even if current occupancy disappears before the next one-second poll. Vehicles, crew and spent deployment allowances remain physical and unchanged. Entering an already-released vehicle does not revoke its former crew’s independent infantry role.
|
||||
|
||||
All **292 registered regression programs pass**. Independent actual-method tests reproduce the old event gap and a missing survivor-retention guard, then pass with the fix. The installed SDK signature and callback ordering are verified. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**, confirmed cleanup and unchanged inputs. This proves compilation and ordinary-loop integration; native capture-event timing, remote multiplayer and performance remain unverified.
|
||||
|
||||
The existing convoy-survivors package is unchanged and predates this source fix. Original missions and inherited work are preserved; nothing was committed or published. [Implementation and evidence](evidence/hunter-capture-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — convoy-survivors development handoff:** [package and editable source](../.build/playtest-2026-10-02-convoy-survivors/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
The snapshot retains eligible original enemy convoy survivors in their existing HQ registration when travel or boarding ends. Exact ownership, roster and force identity still apply; no new soldiers, equipment or contacts are created. Radio-hop interruption, finite-transfer cancellation and deleted-mortar-shell fixes remain included.
|
||||
|
||||
The exact source passes **291 registered regression programs**. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**2 October 2026 — original convoy survivors stay available to HQ:** ending a convoy travel task or passenger-team boarding task now retains the existing HQ registration for eligible original enemy survivors. Ownership, original roster and force identity must still match. Captured vehicles, player/foreign/replacement groups, old missions and stopped HQs keep the unregister path. No new soldiers, registrations, equipment grants or contacts are created. Existing radio/report state remains, while ordinary on-foot eligibility still requires conscious survivors outside vehicles. Unsettled logistics transfers retain their exact reservation until the existing owner settles them.
|
||||
|
||||
Nine focused regression programs pass, including actual release/retention/eligibility and exact-token cleanup. The first native compilation exposed an Enforce class-layer visibility error; the corrected source clears the already-validated unit support flag directly, and its normal Everon route completes **63 assertions and one round, with zero script/runtime failures and thirteen retained engine errors**. The failed compile and its cascade are preserved separately. Native survivor radio delivery, physical retasking, multiplayer and FPS remain unverified. This source change is newer than the preserved transfer-fixes package. [Implementation and evidence](evidence/convoy-survivors-2026-10-02/review.json).
|
||||
|
||||
A separate earlier diagnostic identifies the released troop truck: its vehicle and all nine original soldiers were alive in the original enemy group; the conscious driver was outside the vehicle. That is a failure-time observation, not proof of the earlier release trigger. The convoy witness still fails before movement/interception, with 124 assertions, zero completions and two script test failures. Its raw result remains retained.
|
||||
|
||||
**2 October 2026 — convoy diagnostic admission corrected; interception still unproved:** the isolated legacy convoy fixture now stops unrelated opening hunters before prison release. Its original 60-body cap and 19-body convoy reservation are unchanged. Previously nine hunter crew pushed its committed population above the cap; stopping their driving after spawn would not refund those bodies. Normal mission behavior is unchanged.
|
||||
|
||||
Four focused regression programs pass. One hidden/muted native run now admits all six vehicles and nineteen original crew and confirms finite truck cargo, reaching **124 assertions**. It then fails before the road-movement proof because a vehicle is missing or released: **zero completions, two script test failures and fifteen retained engine-error entries**. The current log does not identify the vehicle or release cause; nearby contact/gunfire does not prove a casualty. No physical interception was reached, and no production crew/order guard was weakened. Cleanup and unchanged source/external inputs are confirmed. The earlier profile-path refusal occurred before launch and is also retained. [Correction, failed evidence and remaining diagnostic](evidence/convoy-fixture-admission-2026-10-02/review.json).
|
||||
|
||||
The latest transfer-fixes runtime candidate is preserved; this later edit affects only its Workbench diagnostic. Coverage descriptions now match that candidate and the implemented finite mine resupply; all release acceptance statuses remain pending.
|
||||
|
||||
**2 October 2026 — transfer-fixes development handoff:** [sealed package manifest and editable source](../.build/playtest-2026-10-02-transfer-fixes/handoff.json).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the sealed source.
|
||||
|
||||
This snapshot includes the radio-hop interruption checks, cancellation guards for finite supply transactions, and the deleted-mortar-shell settlement fix. Earlier terrain/admin integration and bounded HQ travel-history planning remain included.
|
||||
|
||||
The exact frozen source passes **290 registered regression programs**. The normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
Ordinary startup verifies the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded; this is an **unqualified development candidate**.
|
||||
|
||||
Qualification covers this frozen snapshot, not later live edits. Physical resupply/interception, manual UI behavior, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Existing packages and original missions remain unchanged.
|
||||
|
||||
**2 October 2026 — deleted mortar shells no longer block the battery:** a shell deleted during an accepted transfer now settles as a failed loss. The battery can consider its remaining physical shells; surviving items with uncertain custody remain quarantined, with no refund or retry. Four focused regression programs pass, including actual transfer and battery pending methods. Independent testing reproduces the baseline failure. No native or multiplayer run was made for this change, and existing packaged/source checkpoints predate it. [Fix and verification](evidence/mortar-deleted-shell-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — interrupted radio hops and cancelled supply transactions stay stopped:** HQ radio routes now validate both carriers and the existing range rule on each observed sending tick. A carrier losing its radio, consciousness or ownership, or a receiver leaving the link, cannot recover before the deadline and complete that interrupted hop. Delivery and route advancement still wait for the original deadline; radio capability caching remains unchanged.
|
||||
|
||||
Mine resupply, mounted-ammunition pickup and mounted-magazine exchange now preserve cancellation and recheck authority after native submission. An inline callback can no longer turn a stopped or captured transaction into a successful delivery. Committed stock remains spent, and late exact movement can settle uncertainty without a retry or refund. Existing physical-access checks and trace budgets remain intact.
|
||||
|
||||
**Eleven focused regression programs pass** on the changed source. Independent actual-method tests reproduce the old failures and pass with the fixes. Native boundaries are doubled in those tests; no engine session was launched for this increment after detecting an existing Reforger session, which was left untouched. Physical supply, real multiplayer and performance remain unverified. The prior runtime package and sealed source checkpoint are preserved and predate these fixes; refresh the source snapshot before packaging the latest implementation. [Changes, tests and preservation](evidence/radio-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — gameplay-fixes source verified; new runtime package deferred:** the [sealed editable source](../.build/playtest-source-2026-10-02-gameplay-fixes/PENDING-PACKAGE.md) contains **420 authored files** and passes **290 registered regression programs**. The confirmed normal Everon route completes **63 assertions and one round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
The snapshot includes the rifle-supply callback cancellation guard, bounded HQ road-survey fairness, and inherited terrain/admin-item integration. These are source inclusions; manual UI behavior, physical resupply/interception, complete human escape, multiplayer and comparative FPS remain unqualified.
|
||||
|
||||
Packaging was refused before creating its session because an existing Reforger session was detected. It was left untouched, and no new runtime candidate was produced. No native process was left waiting to launch; continuation will recheck host idleness before packaging. The [latest existing playtest package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) remains unchanged. The first normal-route cleanup refusal (a transient compiler process could not be classified), successful retry and package refusal are all [retained with source bindings and review](evidence/source-refresh-2026-10-02-gameplay-fixes/review.json). Strict failures are not waived.
|
||||
|
||||
**2 October 2026 — cancelled rifle resupply stays cancelled:** a synchronous native inventory callback could move the magazine while cancelling the transfer, capturing its donor or changing ownership. Rifle transfers then skipped the guards used by launcher transfers and could record a successful delivery. Both modes now recheck terminal state and authority after submission. Submitted items remain spent; late physical arrival can settle uncertainty without counting a delivery or permitting another attempt.
|
||||
|
||||
Four focused regression programs pass for the current source, including the actual transfer and coordinator, shared finite reservations and convoy budget admission. Independent tests reproduce the old failure and pass with the correction; a mutation also demonstrates the ownership guard. No new engine or multiplayer run was made for this two-line correction. [Fix, tests and preservation](evidence/rifle-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
The earlier **415-file frozen source** now completes **288 registered programs across resumed verification**: 233 unchanged passing records plus 55 freshly passing programs. Preserving an inactive task-owned temporary snapshot elsewhere, with every file verified and its old path retained, freed the required temporary quota. Earlier failed attempts remain archived. This finishes that snapshot's checks; it is not a full-suite result for the current 417-file source. Existing missions, inherited work and the previous development package are unchanged. Physical interception, manual escape, real multiplayer, comparative FPS and release qualification remain open.
|
||||
|
||||
**2 October 2026 — fair bounded HQ road surveying and an opt-in physical interception witness:** HQ road surveying now rotates through delivered tracks while retaining the existing two-survey limit. Previously, the first two eligible tracks with blocked road candidates could consume every pass and permanently starve a later usable track. The actual-method regression fails before the change and passes afterward; independent review confirms the bounded cursor and unchanged radio, force-claim and expiry policy.
|
||||
|
||||
Resumed verification retains **233 passing programs** against identical frozen input hashes and attempts **1 fresh suffix program**; the current resumed result exits **1** after **234 total recorded programs**. Complete passing verification remains unestablished. The initial deadline-test adapter failure, later `/tmp` quota failure and rejected alternate-directory attempt remain archived. Resumed temporary files use `/tmp`; no production/native source changed for this resumption. The final canonical `/tmp` retry stops in `test_native_package.py` with disk-quota errors (Errno 122); the remaining suffix is unverified. No full-suite pass is claimed. The bounded native run records **33 assertions**, **0 completions**, **2 script/runtime failures** and **15 retained engine errors**; runner result: `test-failed`. It does not establish the complete physical interception sequence; preserve the failed or incomplete result and its raw logs. The canonical convoy admission assertion failed before the interception stage; no physical interception was exercised and no admission policy was weakened. Cleanup confirmed: `True`. Strict engine errors are retained. A separate normal-route run of the same source records **63 assertions**, **1 completion**, **0 script/runtime failures** and **13 retained engine errors**; runner result: `smoke-completed` and cleanup confirmed: `True`. This ordinary route does not validate physical interception.
|
||||
|
||||
The opt-in Workbench witness uses two synthetic observation positions in an original soldier’s local inbox. Radio hops, HQ memory/planning, the original escort and physical AI movement remain production paths. It is not natural detection, a human escape, multiplayer, interception effectiveness, FPS or release qualification. No vehicles, crew or stock are created by the new interception stage. The separate [HQ-memory/menu-fix development package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) is unchanged and predates this survey correction and opt-in witness. Concurrent terrain work and older evidence remain preserved. [Source, regression, native and independent-review evidence](evidence/mounted-native-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — corrected HQ-memory/menu-startup development handoff:** [separate package and editable source](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md). 409 authored files, 351 exact PAK payloads and three runtime files match editable source and `handoff.json`.
|
||||
|
||||
A startup guard now skips automatic terrain takeover in mode-less menu worlds; ordinary supported scenarios and unsupported-mode diagnostics keep their existing behavior. This snapshot includes observer recovery/defeat guidance, finite resupply of supported reloadable launchers, and one original armed convoy escort receiving a radio interception order ahead of delivered player travel history. Earlier finite logistics, controller ownership and authored discovery/mine-warning map presentation remain included. The frozen snapshot includes the earlier parallel task’s automatic terrain takeover behavior; newer concurrent terrain-name/presentation edits remain in the live workspace and are not in this package; this handoff’s fresh scripted route targets Everon.
|
||||
|
||||
The exact source passes **285 registered regression programs** and the [fresh normal escape fixture](evidence/native-2026-10-02-hq-memory-menu-fix-normal/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. Fresh ordinary startup of this exact package verifies the normal mission and local prisoner with zero script/runtime failures and 17 retained engine errors. Strict packaging/startup failures remain recorded.
|
||||
|
||||
The initial HQ-memory candidate and its one script/eighteen engine errors remain retained; this corrected package includes the demonstrated menu-world guard. This is an **unqualified development candidate**. Physical launcher delivery, native interception movement/holding/rejoining, a complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Historical standard-map visual checks do not prove physical held-map rendering or current remote UI behavior. No new native flight or prison-input experiments are included. Previous packages, original missions and inherited work remain preserved; nothing was committed or published. [Package hashes](evidence/package-2026-10-02-hq-memory-menu-fix/handoff.json).
|
||||
|
||||
|
||||
**2 October 2026 — HQ motorized interception implemented in source:** one original armed UAZ convoy escort can receive a radio command to hold a road ahead of remembered player travel, then rejoin its convoy. Orders use delivered history and complete original-formation status, share force limits, expire on a fixed deadline and cannot spawn replacements or compete with logistics. [Behavior and limits](mounted-interception.md).
|
||||
|
||||
All **285 registered regression programs pass**. The [hidden/muted final-source normal escape](evidence/native-2026-10-02-mounted-intercept-normal/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. The initial missing-hook compilation failure and test default-path failure are preserved with their fixes. [Implementation, review and preservation](evidence/mounted-interception-2026-10-02/review.json).
|
||||
|
||||
Native driving to the intercept, physical holding/rejoining and interception effectiveness remain unverified; the normal escape run proves compilation and base-loop integration only. Human play, real multiplayer, comparative FPS and clean release remain pending. The existing 416-file playtest package is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published.
|
||||
|
||||
|
||||
**2 October 2026 — recovery warnings and finite launcher resupply:** unconscious spectators now receive the already-replicated recovery, reconnection or thirty-second defeat warning. Hints refresh when that information changes and clear on awakening. HQ can also arrange supply for a reported empty, supported reloadable launcher using original compatible truck stock, after rifle and mounted demand. Disposable launchers remain excluded. [Implementation and review](evidence/recovery-launcher-2026-10-02/review.json).
|
||||
|
||||
All **283 registered regression programs pass**. The hidden/muted [observer fixture](evidence/native-2026-10-02-recovery-warning/report.json) passes **29 assertions**, including accepted recovery text and clearing on wake; the [final-source normal escape](evidence/native-2026-10-02-recovery-launcher-normal/report.json) passes **63 assertions and one round**. Both have zero script/runtime failures and **thirteen retained engine errors**, with confirmed cleanup. The observer run predates the four AI changes but uses exactly the final observer/probe code; the normal route binds all 407 final authored files.
|
||||
|
||||
Actual launcher transfer/reloading, full human play, multiplayer and comparative FPS remain unverified; no release qualification is claimed. The existing 416-file playtest package predates these changes and is unchanged. Original missions and inherited work are preserved; nothing was committed or published. A separate motorized-interception proposal remains design-only.
|
||||
|
||||
**2 October 2026 — current package checked on an isolated Linux dedicated server:** the unchanged [objective-map playtest](../.build/playtest-2026-10-02-objective-map/README.md) loads its exact ten-addon closure, compiles Game scripts and reaches the normal Everon prison phase. The empty server stays under observation for fifteen seconds afterward; there are zero script/runtime failures and **eleven retained engine errors**. [Raw evidence and independent review](evidence/dedicated-packed-2026-10-02-objective-map/report.json).
|
||||
|
||||
This is packaged dedicated startup, **not connected-client, multiplayer, complete-escape, performance or release qualification**. The private supervisor stops its own server with SIGTERM after 72 seconds; graceful shutdown is unproved. Network/PID isolation, no display/audio, cleanup and unchanged package/external inputs are recorded. Three bounded gameplay reviews found no demonstrated defect; no production code changed. All 407 authored files, 416 candidate files, 533 original reference files and 70 inherited unstaged paths remain unchanged. The prior 283-program pass still covers identical source. [Preservation](evidence/dedicated-packed-2026-10-02-objective-map/review.json).
|
||||
|
||||
**2 October 2026 — objective-map playtest package refreshed:** the [new separate development handoff](../.build/playtest-2026-10-02-objective-map/README.md) contains the authored discovery/mine-warning UI alongside the earlier controller ownership, HQ and logistics work. **407 authored files, 349 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-objective-map/handoff.json).
|
||||
|
||||
The unchanged source retains its **283-program regression pass**, **101 map-fixture assertions** and **63-assertion normal escape route**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-objective-map/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained engine errors. Strict packaging/startup failures remain; this is **not a qualified release**. Shared-map evidence remains geometry-only, with physical held-map capture unverified.
|
||||
|
||||
Three bounded parallel reviews of base radio/extraction/guidance, map lifecycle and intel/loot ownership found no demonstrated new defect; no production code changed for this packaging increment. All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, existing working changes and the previous 412-file candidate are preserved; nothing was committed or published. [Review and preservation](evidence/playtest-refresh-2026-10-02-objective-map/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — independent objective map UI integrated:** discovered sites and recovered mine warnings now use authored UI outside the native player-annotation lists. Stable rough positions, exact identification, pan/zoom culling and close/reopen cleanup remain intact. Supported standard-map and shared-map containers replace the rejected Canvas parent. Player annotations and their restrictions are unchanged. [Implementation and limits](objective-map-presentation.md).
|
||||
|
||||
All **283 registered regression programs pass**. The [final hidden/muted map fixture](evidence/native-2026-10-02-objective-map-final/report.json) completes **101 assertions and one completion**, and the [normal escape route](evidence/native-2026-10-02-objective-map-normal/report.json) completes **63 assertions and one round**. Both record zero script/runtime failures; **16/13 engine errors and strict failed verdicts remain**. Earlier compile, Canvas-parent and asynchronous-close fixture failures are retained.
|
||||
|
||||
Read-only private-window captures show the standard question/radio glyphs, reopened marker and long-warning text at the small Workbench viewport. Shared-map checks establish widget geometry/lifecycle only: its disabled render target does not appear in screenshots, and physical held-map capture remains unverified. [Review, raw captures and preservation](evidence/objective-map-2026-10-02/summary.json).
|
||||
|
||||
Source contains **407 authored files**. The existing owner-fixes playtest is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published. Human play, manual map interaction, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — development package refreshed with controller ownership fixes:** the [separate owner-fixes handoff](../.build/playtest-2026-10-02-owner-fixes/README.md) now includes the tested observer/rebinding and chat-menu cleanup corrections alongside the earlier ground-depot/guide features. **403 authored files, 346 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-owner-fixes/handoff.json).
|
||||
|
||||
The unchanged source retains its **280-program regression pass** and **63-assertion normal escape**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-owner-fixes/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**. The earlier route retains thirteen installed-resource errors.
|
||||
|
||||
All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, 61 inherited unstaged paths and the previous 412-file candidate are preserved. No production code changed for this packaging increment. A separate authored map-overlay proposal is not included. Human play, real multiplayer, native controller replacement, physical logistics, comparative FPS and clean release remain unfinished. [Independent review and preservation](evidence/playtest-refresh-2026-10-02-owner-fixes/review.json).
|
||||
|
||||
**2 October 2026 — old chat callbacks preserve the current administration menu:** a retained former local controller now removes only its own chat listener and timers; it cannot close a replacement controller's newly opened panel. Current-owner shutdown and mission-change cleanup remain intact. Independent actual-method tests compile and reproduce the old failure, then pass with the ownership check; all **280 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted normal escape](evidence/native-2026-10-02-chat-ownership/report.json) completes **63 assertions and one round**, with zero script/runtime failures, thirteen retained installed-resource errors, confirmed cleanup and unchanged source/external inputs. This is compilation and ordinary scripted-route evidence, not native controller-replacement or multiplayer qualification. [Review and preservation](evidence/chat-ownership-2026-10-02/review.json). Original missions, inherited changes and the existing 412-file playtest are unchanged; that package predates the observer and chat ownership fixes. Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — partial-clue loss recovery checked on current source:** the [hidden/muted fixed-site fixture](evidence/native-2026-10-02-partial-document-loss/report.json) passes **76 assertions and one completion**. After ordinary partial discovery and deliberate loss of all four targeted documents, distant, unauthorized and obstructed observations remain rejected; a clear close approach identifies the radio once and permits entry into radio defence without replacement clues. This uses the existing LegacySites test catalog, teleports, damage protection and direct mission interfaces, then explicitly ends the round. It does not prove generated-site coverage, held interactions, defence completion or a full escape.
|
||||
|
||||
Zero script/runtime failures, thirteen retained installed-resource errors and confirmed cleanup; source and external inputs remain unchanged. Three bounded parallel gameplay reviews found no demonstrated new defect. No production changes or package refresh were made; the previous 279-program pass covers identical addon source. Original missions, 61 inherited unstaged paths and the existing playtest are preserved. [Review and exact limitations](evidence/base-progression-review-2026-10-02/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — spectator callbacks respect local controller ownership:** a retained old controller can no longer restore its old body camera, close the current editor or create a new spectator view after replacement. It stops only its own monitor and releases its owned presentation state. The existing binder keeps watching for a replacement controller and starts its monitor once, retaining normal stop/end cleanup. Independent actual-method tests reproduce the old fault and verify the corrected behavior; all **279 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted unconscious-camera run](evidence/native-2026-10-02-observer-ownership/report.json) completes **27 assertions and one round**, preserving ordinary unconsciousness, both spectator views, tracking, pose-gap fallback, healing and repeated knockout. It records zero script/runtime failures and thirteen retained installed-resource errors, with confirmed cleanup and unchanged inputs. The first attempt used the wrong Chat fixture selector and failed because the general smoke also ran; that evidence is retained, and the runner now refuses that selector combination before native setup. This is normal camera integration evidence; native controller replacement and real multiplayer remain unverified. [Review and exact limits](evidence/observer-ownership-2026-10-02/review.json).
|
||||
|
||||
Playtest instructions now open the actual combined Core project and point to the latest retained build. Original missions and inherited changes are preserved. The existing 412-file packaged candidate is unchanged and does not yet contain this observer fix. Human play, multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — updated development playtest and objective-hint ownership fix:** the [separate ground-depot/guide handoff](../.build/playtest-2026-10-02-ground-depot-guide/README.md) now includes recent finite camp loading, zero-stock engineer resupply, HQ count optimization and a correction preventing a retained old controller from displaying hints after local ownership changes. It contains **403 authored files, 346 exact PAK payloads and three runtime files**, with matching editable source. [Artifact hashes and strict limits](evidence/package-2026-10-02-ground-depot-guide/handoff.json).
|
||||
|
||||
All **277 registered regression programs pass**; the guide regression independently fails on the old code and passes with the fix. The [fresh source-matched normal escape](evidence/native-2026-10-02-ground-depot-guide/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-02-ground-depot-guide/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**.
|
||||
|
||||
A bounded admission/reconnect source audit found no demonstrated additional bug. [Guide fix and exact validation scope](evidence/guide-controller-2026-10-02/review.json). Native controller replacement, human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted and cleaned up; original missions, 61 inherited unstaged paths and the prior 409-file candidate are preserved. Nothing was committed or published. [Preservation and build review](evidence/playtest-refresh-2026-10-02-ground-depot-guide/review.json).
|
||||
|
||||
**2 October 2026 — finite camp-to-truck ammunition loading:** HQ can assign one available original camp responder to carry one exact original cache magazine to a nearby original ammunition truck after delivered radio orders. Recorded finite magazine expenditure gates admission; separate pickup/delivery proof, unchanged rounds, original identities and bounded reservations prevent refill or replay. Existing tactical/logistics work retains priority. [Behavior and limits](ground-depot-loading.md).
|
||||
|
||||
The full **277-program regression suite passed** before native compilation. The first native run exposed getter formatting and a helper-name conflict; its [failed evidence](evidence/native-2026-10-02-ground-depot-compile/report.json) is retained. After those behavior-preserving corrections, all four relevant programs passed again. The [corrected hidden/muted normal route](evidence/native-2026-10-02-ground-depot-integration/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged source/external inputs are confirmed. This qualifies compilation and normal-loop integration only. [Independent review, mutation evidence and preservation](evidence/ground-depot-loading-2026-10-02/review.json). The existing playtest package predates this feature. Original missions, inherited changes and that package remain preserved. Physical loading, human play, real multiplayer, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — HQ planning removes repeated force counts:** the final pursuit selection pass now counts global commitments once after cleanup/retasking/investigation and increments only for a newly queued order. Separate hunting/global limits, orders and reservations are preserved. A controlled 64-belief/128-unit no-dispatch regression reduces the repeated count scans from over 10,000 unit visits to 128; this measures that subpass only, **not FPS**.
|
||||
|
||||
All **273 registered regression programs pass**. Independent review includes a compiled failing increment-removal mutation and 360 before/after order, reservation and cooldown comparisons. The [hidden/muted frozen-source normal escape](evidence/native-2026-10-02-hq-planner-budget/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged inputs are confirmed. [Scope and preservation](evidence/hq-planner-budget-2026-10-02/review.json). Existing missions, inherited changes and the prior packaged playtest remain preserved; human play, real multiplayer, physical logistics, measured performance and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — finite replacement for empty designated engineers:** HQ can now dispatch one existing convoy PMN4 to an original engineer whose startup designation and settled grant are recorded, using fresh complete delivered zero-stock reports. Unknown inventory does not count as empty; the same original actor and zero/one mode stay fixed through retries. Shared finite stock, spent items and unresolved cross-truck claims remain protected. No replacement mine is spawned and no mine-laying attempt is reset.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, with independent review and a compiled regression failure on the old planning method. The [hidden/muted frozen-source normal route](evidence/native-2026-10-02-zero-mine-integration/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation and normal-loop integration, **not physical mine delivery or placement**. The initial temporary-quota failure, verified recovery and [preservation evidence](evidence/zero-mine-resupply-2026-10-02/review.json) are retained. Existing missions, inherited work and the prior playtest package remain unchanged; the package predates this increment. Human play, real multiplayer, physical maintenance/resupply, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — casualty and terminal-lifecycle fixture corrected:** the old death check incorrectly expected an ordinary protected prisoner to die. The repaired editor-only fixture first verifies living unconsciousness, then explicitly forces fatal loss on its exact registered actor to check spent-life spectator selection, native camera and all-dead defeat. Ordinary game/server casualty protection is unchanged. The [native run](evidence/native-2026-10-02-protected-fatal-lifecycle/report.json) passes **38 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, including the actual hitzone damage cap and deferred processing. Earlier failed native attempts and validation environment failures are preserved; the historical premature Workbench reload was not reproduced and remains unexplained. Tests stayed hidden/muted with confirmed cleanup. Original missions, all inherited working changes and the existing playtest package are preserved. [Repair, independent review and exact limits](evidence/death-fixture-repair-2026-10-02/review.json). Human play, real multiplayer, physical maintenance/mine operations, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — automatic local restart and readmission verified:** the current combined source completes two distinct scripted Everon escape rounds: first victory/results, inherited native world restart, fresh prisoner preload/admission, then the full second route and victory. The [sealed native archive](evidence/native-2026-10-01-two-round-restart/report.json) records **126 assertions, two completions, zero script/runtime failures and thirteen retained installed-resource errors**. An independent raw-log review confirms separate world instances rather than duplicate completion markers. [Sequence and preservation](evidence/native-2026-10-01-two-round-restart/review.json).
|
||||
|
||||
All 400 authored files match the existing convoy-stock candidate. Hidden/muted execution and cleanup are confirmed; original missions, inherited changes and the candidate are unchanged. This qualifies local automatic restart/readmission only: human play, death/spectators, exhaustive cleanup, real multiplayer, comparative FPS and clean release remain pending. No production code changed for this check.
|
||||
|
||||
**1 October 2026 — refreshed development playtest candidate:** the [separate convoy-stock handoff](../.build/playtest-2026-10-01-convoy-stock/README.md) packages the current combined successor: **400 authored files, 343 exact PAK payloads and three runtime files**, with matching editable source. It includes the recent finite mine systems and loaded-truck inventory correction. [Artifact hashes and packaging limits](evidence/package-2026-10-01-convoy-stock/handoff.json).
|
||||
|
||||
A [fresh normal Everon route](evidence/native-2026-10-01-convoy-stock/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-01-convoy-stock/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. The existing 271-regression pass and 202-assertion mine-stock result match this unchanged source. Strict packaging/startup failure verdicts are retained; this is **not a qualified release**.
|
||||
|
||||
Radio-document recovery and restart cleanup audits found no demonstrated new bug; one stale historical fixture heading was corrected. The unexplained death/restart Workbench reload was not rerun or worked around. Full human escape, real multiplayer, mine transfer/placement, maintenance/mounted interactions, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted with confirmed cleanup. Original missions, 61 inherited unstaged paths and prior candidates are unchanged; nothing was committed or published. [Review](evidence/playtest-refresh-2026-10-01-convoy-stock/review.json).
|
||||
|
||||
**1 October 2026 — loaded convoy sampling fixed; physical mine stock observed:** native diagnostics identified deposited cargo exhausting the mounted sampler's shared 128-node queue. Separate structural/cargo budgets now preserve bounded inspection without misreporting cargo as mounted weapons. All **271 registered regression programs pass**, including failing-before/passing-after cases and independent mutations of every budget guard. [Fix and preservation](evidence/mounted-traversal-2026-10-01/review.json).
|
||||
|
||||
The [corrected hidden/muted native run](evidence/native-2026-10-01-mounted-traversal-fixed/report.json) completes **202 assertions and one fixture round**, with zero script/runtime failures and thirteen retained installed-resource errors. One original automatic convoy contains **two callback-proved inactive PMN4s**, whose exact identities and physical custody remain unchanged through real mounted-ammunition radio delivery; 64 primary cargo callbacks also remain settled and unchanged. The earlier diagnosed failure remains archived. Both sessions have confirmed cleanup and unchanged inputs.
|
||||
|
||||
This establishes initial mine stock in one convoy, **not walking resupply, mine transfer or placement**. The prior field-update package is unchanged. Original missions and all 61 inherited unstaged paths are preserved; no commit or publication was made. Full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — bounded convoy mine-stock check:** the new optional read-only fixture preserves the original convoy/batch and checks exact PMN4 callback identities and physical custody around normal radio delivery. All **271 registered regression programs pass** (counted from the current runner). Independent negative controls reject empty stock and missing callback proof. [Review and preservation](evidence/convoy-mine-native-2026-10-01/review.json).
|
||||
|
||||
The single [hidden/muted native run](evidence/native-2026-10-01-convoy-mine-stock/report.json) compiles and passes **39 assertions**, then fails the existing ammunition-truck mounted snapshot completeness check **before the mine assertions**. Two test failures and thirteen underlying installed-resource errors remain recorded. **Native mine insertion and transfer are still unverified.** Source and external inputs are unchanged, cleanup is confirmed, and no second native attempt was made.
|
||||
|
||||
RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared dependencies. A separate installed-catalog/equipment audit found no reproduced automatic-equipment mine duplication defect. Original missions, inherited working changes and the packaged candidate are preserved. Human play, multiplayer, physical maintenance/mounted/mine interactions, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — finite mine top-up integration:** HQ can now authorize one original truck PMN4 for an original carrier with exactly one usable mine, using fresh delivered status and the existing radio/rendezvous controller. Infantry and mounted ammunition retain priority. Startup grants must settle first; uncertain moves retain both claims so another truck cannot duplicate a late delivery. [Behavior and limits](infantry-resupply.md#finite-mine-top-ups-1-october-2026).
|
||||
|
||||
All **268 regression programs pass**. Independent mutation controls demonstrate the startup, one-mine entitlement and cross-truck quarantine guards. The [hidden/muted native normal route from frozen source](evidence/native-2026-10-01-mine-resupply-frozen/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation/base-loop integration only; actual mine approach/transfer remains unverified. [Review and preserved inputs](evidence/mine-resupply-2026-10-01/review.json).
|
||||
|
||||
Original missions and the existing packaged candidate are preserved. Concurrent automatic-equipment edits are retained; the first native run was invalidated by source changes, so the repeated check used a frozen combined-source copy. Its evidence does not silently qualify later source edits. No extra mine grant, stock refill or placement reset was added. Depleted-zero resupply, repeated placement, full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished; the field-update package predates this source change.
|
||||
|
||||
**1 October 2026 — finite optional convoy mine cargo:** each original ammunition truck now attempts up to two PMN4s once, after its primary weapons and ammunition have settled. Separate callbacks keep ordinary stock initialization independent. Exact initial mine identities are frozen with ownership/custody checks; failures, late callbacks and looting never refill the truck. [Behavior and remaining delivery work](supply-convoys.md#optional-finite-mine-cargo-1-october-2026).
|
||||
|
||||
All **265 regression programs pass**, including independent review and a failing mutation that attempts to adopt preexisting stock. The [hidden/muted native normal route](evidence/native-2026-10-01-mine-stock/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This proves base-loop integration, not physical mine insertion or delivery. [Evidence and preservation](evidence/convoy-mine-stock-2026-10-01/review.json).
|
||||
|
||||
No original mission or inherited working change was altered. The existing field-update package is preserved and predates this source addition. A separate radio-to-extraction eligibility audit found no reproduced progression bug. Human escape, real multiplayer, physical maintenance/mounted/mine interactions, comparative FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — carried mine capability reaches HQ:** formation status now carries independent, bounded counts of exact inactive PMN4s from the original owned roster. Unknown inventory/custody stays unknown. Counts and completeness travel through the normal radio route, remain detached in delivered history and appear in the private HQ status journal. Mine scarcity alone creates no extra urgent call, task or replacement stock. [Behavior and scope](hq-ammunition.md#carried-mine-reports-1-october-2026).
|
||||
|
||||
All **264 regression programs pass**, including actual inventory/snapshot methods, interrupted/stale delivery and no-extra-urgency checks. The [native normal route](evidence/native-2026-10-01-mine-status/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is base-loop integration evidence; native mine reporting/placement, replenishment and multiplayer remain unqualified. [Independent review, regression evidence and preservation](evidence/carried-mine-status-2026-10-01/review.json).
|
||||
|
||||
The native run waited for another private test's lock, then stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, unrelated working changes and the packaged field-update candidate are preserved; that package predates this addition. The prior death/restart reload remains unexplained after comparison with exact historical source; no workaround was applied. Full human escape, multiplayer, maintenance/mounted interactions, FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — terminal cargo loss releases convoy holds:** a submitted mounted pickup now settles uncertainty when its exact incoming entity is deleted. A swap requires both original exchange entities to be deleted; damage, capture or one surviving item retain quarantine. Stock stays spent and matching holds can release for later requests using surviving original cargo. [Fix, independent review and preservation](evidence/mounted-terminal-loss-2026-10-01/review.json).
|
||||
|
||||
All **263 regression programs pass**, including failing-before/passing-after actual-method checks. The [integrated normal escape route](evidence/native-2026-10-01-supply-loss/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This verifies compilation and base-loop integration, not physical mounted rearming or terminal deletion.
|
||||
|
||||
A separate pre-fix [death/restart check](evidence/native-2026-10-01-player-death-timeout/review.json) timed out after 30 setup assertions: Workbench reloaded before death/spectator checks, for an unknown reason. Neither death nor restart is qualified by that run. Both sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the packaged field-update candidate remain preserved; the package predates this correction. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — bounded maintenance follow-up:** one hidden/muted run of the unchanged field-update source passes **60 assertions**, including original-can pickup and held equip, then loses the exact-held support-station condition after the fixture's scripted approach. It stops before tank depletion or refuel action; **fuel transfer remains unverified**. Two diagnostic failures and thirteen underlying installed-resource errors are retained, with confirmed cleanup and unchanged inputs. No guard was relaxed and no second attempt was made. [Result and preservation](evidence/native-2026-10-01-refuel-snapshot/review.json).
|
||||
|
||||
Three parallel bounded reviews of HQ memory, base progression and owned-AI settings/equipment found no demonstrated new defect; ten focused regression programs passed. The verified development candidate below remains unchanged. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — field-update playtest candidate:** the [new separate handoff](../.build/playtest-2026-10-01-field-update/README.md) packages recovered mine warnings, recent HQ pursuit/cooldown corrections and consistent Stinger Random commands: **392 authored files, 336 exact PAK payloads and three runtime files**, with matching editable source. All **263 regression programs pass**. The [exact-source normal route](evidence/native-2026-10-01-field-update/report.json) completes **63 assertions and one round** through extraction/results, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-field-update/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Native packaging retains its strict failed verdict despite exact output and exit zero. All sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, prior working changes and previous candidates remain preserved; nothing was published.
|
||||
|
||||
The legacy `hq stinger` alias now accepts/displays Random through the shared parser without rerolling existing equipment. The optional refuel fixture's corrected range reaches the native context, then fails before transfer on its node snapshot. Subsequent snapshot bounds/detachment is regression-tested and compiled by the normal route; **fuel transfer remains unverified**. [Fixes, initial test failure, native failure and review](evidence/field-update-2026-10-01/review.json). Human play, real multiplayer, maintenance/mine/mounted interactions, comparative FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — HQ can replace unavailable pursuit squads:** losing the only assigned squad no longer leaves its abandoned long-distance order blocking other available forces for up to 13 minutes. HQ releases that work, retains surviving active/pending orders and recomputes the hunt's delay. Completed-search quiet intervals remain remembered across later losses, replacement orders and either cleanup order; capacity trims and already shorter holds are preserved. No force or player observation is created.
|
||||
|
||||
Actual-method regressions reproduce the original bug and review-found expiry/order boundaries; all **263 regression programs pass**. The [integrated normal route](evidence/native-2026-10-01-hq-force-loss/report.json) compiles and completes **63 assertions and one escape round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is normal-loop integration evidence, not native qualification of force-loss replacement. [Changes, independent review and preservation](evidence/hq-force-loss-2026-10-01/review.json).
|
||||
|
||||
The separate [bounded refuel run](evidence/native-2026-10-01-refuel-clock/review.json) now confirms original-can pickup, callback/slot custody and held equip, then times out before any refuel action. Its optional reach check is stricter than the inspected native interaction-retention logic; ordinary refuelling failure is **not** demonstrated. Fuel transfer, repair, human play, multiplayer, mounted rearming, comparative FPS and release qualification remain pending. Both native sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the existing packaged candidate are preserved.
|
||||
|
||||
**1 October 2026 — optional refuel diagnostic corrected:** RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared external dependencies. The corrected native action-context fixture compiles, but its [one hidden/muted run](evidence/native-2026-10-01-refuel-context/report.json) stops after 54 passing assertions at its first clock check, before fuel selection or transfer. It retains two script test failures and thirteen underlying installed-resource errors, with confirmed cleanup and unchanged inputs.
|
||||
|
||||
The fixture had reconstructed its start time by adding/subtracting 120000 milliseconds; float rounding could put that value after the current tick. It now stores the original start directly. Actual clock initialization fails before the fix and passes afterward across fractional timestamps. All **263 regression programs pass**. The timestamp fix has not been rerun natively; refuelling, interruption/depletion and repair consumption remain unverified. The fixture is opt-in and does not change ordinary gameplay. Original missions, existing working changes and the packaged handoff are preserved. [Evidence and scope](evidence/refuel-context-2026-10-01/review.json).
|
||||
|
||||
**1 October 2026 — recovered mine warnings:** successful engineer arming can seal a historical 500 m mine warning into the same generic intel folder already carried when that job began. Recovering that exact document adds a persistent warning alongside its existing site clue; objective documents and normal spending remain unchanged. Unknown records stay server-local, and recovery never refreshes live mine or soldier positions. The service is bounded to 32 records and 128 folder bindings. [Behavior and limits](road-interception.md#recovered-mine-warnings).
|
||||
|
||||
All **262 regression programs pass**, including actual sealing/recovery, caps, marker lifecycle and controller/discovery integration methods. Review caught and corrected contradictory exhausted-intel feedback and marker cleanup after list shrinkage. The [integrated normal route](evidence/native-2026-10-01-mine-intel/report.json) compiles and completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. That route does **not** execute physical mine/intel interactions or qualify warning rendering/remote replication. [Review and preservation evidence](evidence/mine-intel-2026-10-01/review.json).
|
||||
|
||||
The run remained hidden and muted, with confirmed cleanup and unchanged inputs. Existing missions and the last packaged handoff are preserved; that package predates this source addition. Human play, multiplayer, physical mine placement/arming, mounted rearming, comparative FPS and release packaging remain unfinished.
|
||||
|
||||
|
||||
**1 October 2026 — refreshed dependency-enabled playtest:** the [new separate candidate](../.build/playtest-2026-10-01-dependency-review/README.md) includes Southern maintenance supplies, HQ reservation/cooldown corrections and finite engineer mines: **388 authored files, 332 exact PAK payloads and three runtime files**, with matching source. RHS, WCS and BMP remain declared dependencies.
|
||||
|
||||
Independent reviews fixed observed foreign mine custody being reaccepted after a nearby redrop, and redundant intel folders flooding global chat. Both have failing-before/passing-after actual-method regressions. All **260 regression programs pass**. The [fresh normal route](evidence/native-2026-10-01-dependency-review/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Review and preservation checks](evidence/dependency-review-2026-10-01/review.json).
|
||||
|
||||
[Ordinary packaged startup](evidence/packed-2026-10-01-dependency-review/archive-review.json) verifies the mission and local prisoner, with zero script/runtime failures and seventeen unchanged installed-resource errors. Native packaging retains its strict failure despite matching output and exit zero. An initial native-tool crash produced no package; [its evidence](evidence/package-2026-10-01-dependency-review-failed/review.json) is retained alongside the fresh retry. All native checks stayed hidden/muted with confirmed cleanup and unchanged inputs. Physical mine placement/arming, mounted rearming, human escape, multiplayer, FPS improvement and release qualification remain unfinished. Previous handoffs and original missions are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — finite engineer mine behavior integrated:** an existing squad
|
||||
holding a delivered HQ road-interception order can use one original carried PMN4.
|
||||
The engineer approaches, prepares for ten continuous seconds, submits one tracked
|
||||
inventory drop and withdraws before guarded native pressure arming. Original
|
||||
actor/task/item ownership, combat cancellation, friendly clearance and retained
|
||||
late callbacks are enforced. HQ permits two simultaneous jobs, 32 retained jobs
|
||||
per round and one new road-site query per tick. No mines or forces are created.
|
||||
[Behavior and limits](road-interception.md#finite-engineer-mines--1-october-2026).
|
||||
|
||||
All **260 repository regression programs pass**. The [final integrated normal route](evidence/native-2026-10-01-engineer-mines-final/report.json)
|
||||
compiles and completes **63 scripted assertions through extraction/results** with
|
||||
zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
**Physical engineer placement/arming and multiplayer are not yet demonstrated**;
|
||||
this route proves base-gameplay integration, not that interaction. Both native
|
||||
runs stayed hidden and muted with confirmed cleanup and unchanged inputs. Original
|
||||
missions, 53 prior unstaged paths and the existing packaged handoff remain preserved.
|
||||
[Independent review and exact evidence](evidence/engineer-mines-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — interrupted HQ orders release their unused delay:** failed or
|
||||
expired radio retasks no longer prolong pursuit cooldowns using an order that
|
||||
never arrived. Active and pending surviving orders keep their own deadlines and
|
||||
waypoints. Two actual-method regressions fail before the correction; all **257
|
||||
repository programs pass** afterward. The [current-source normal escape route](evidence/native-2026-10-01-hq-lost-retask-route/report.json)
|
||||
completes **63 assertions through extraction/results**, with zero script/runtime
|
||||
failures and thirteen retained installed-resource errors.
|
||||
|
||||
The separate [HQ awareness check](evidence/native-2026-10-01-hq-lost-retask/report.json)
|
||||
compiles and passes 53 assertions, then times out waiting to queue its completed-sweep
|
||||
fixture report; that failed qualification is retained. Both runs stayed hidden and
|
||||
muted, with confirmed cleanup and unchanged inputs. The original missions and
|
||||
existing packaged handoff remain unchanged. [Fix, review and limits](evidence/hq-lost-retask-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — bounded maintenance test retained as a failure:** the optional
|
||||
fuel-transfer fixture did not compile because the installed fuel manager has no
|
||||
`GetOwner` method. It executed no gameplay assertions. The entire experimental
|
||||
fixture and integration were removed, restoring the earlier playable source;
|
||||
existing finite maintenance stock and HQ retasking remain unchanged. Native fuel
|
||||
transfer and repair consumption remain unverified. The failed launch and its
|
||||
source snapshot are [retained](evidence/native-2026-10-01-maintenance-refuel/report.json).
|
||||
All 257 repository checks pass again after restoration. No additional native
|
||||
retry was made; the private muted runtime was cleaned up.
|
||||
|
||||
|
||||
**1 October 2026 — live maintenance supplies and safer HQ retasking:** the Southern cache now carries **one finite repair kit (20 supplies) and two fuel cans (five litres each)** alongside its existing weapons and radio documents. The hidden/muted [normal route](evidence/native-2026-10-01-southern-maintenance/report.json) verifies the exact original stock and completes **63 assertions through extraction/results**. Held repair/refuel consumption remains unverified. [Player behavior and scope](vehicle-maintenance.md).
|
||||
|
||||
HQ now reserves a squad's active destination and pending replacement together, preventing another search from taking the old cell while a radio retask is in transit. It retains the active approach bearing during retask admission and still counts each squad once. The bug and a review-found bearing gap both have red-before/green-after actual-method evidence. All **257 repository regression programs pass**. The [integrated-source native awareness/radio run](evidence/native-2026-10-01-hq-dual-reservations/report.json) completes **77 assertions**; only the two HQ files differ from the earlier maintenance-route snapshot. Both runs have zero script/runtime failures and thirteen retained installed-resource errors, confirmed cleanup and unchanged inputs. [Implementation, review and limits](evidence/maintenance-hq-2026-10-01/review.json).
|
||||
|
||||
The packaged candidate below remains unchanged and predates these source improvements. Original reference files and all previous working changes are preserved. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — integrated playtest handoff refreshed:** the [new isolated candidate](../.build/playtest-2026-10-01-base-integrated/README.md) now includes the recent admission, HQ evidence, finite-stock and mounted courier changes: **384 authored files, 329 exact PAK payloads and three runtime files** with matching editable source. All **256 regression programs pass**. Its unchanged addon source exactly matches the retained [55-assertion normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json); no redundant route run was needed. [Artifact hashes and scope](evidence/package-2026-10-01-base-integrated/handoff.json).
|
||||
|
||||
A fresh [ordinary packed startup](evidence/packed-2026-10-01-base-integrated/archive-review.json) verifies normal modules, exact dependency mounts, mission readiness and a local prisoner with zero script/runtime failures. Its seventeen installed-resource errors match the preceding handoff and retain strict failure. Native packaging also retains localization/shutdown and completion-semantics failures despite exit 0 and matching output. All runs stayed hidden/muted with confirmed cleanup and unchanged inputs. The player guide now names the precise gate and vehicle actions. **Mounted physical rearming, full human escape, multiplayer, FPS improvement and release qualification remain unfinished.** Previous packages, the original reference workspace and pre-existing working changes are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — mounted courier integration:** finite mounted resupply is now connected to the existing HQ planner and original convoy stock, with shared infantry reservations, radio-delivered holds, one original non-driver courier, bounded pickup/swap/reboarding and retained uncertain operations. The 256-program regression suite passes; final changed-method checks also pass. The [normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json) completes **55 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. **Physical mounted rearming is not yet demonstrated:** one native trip failed at pickup, another timed out approaching cargo; both journals record original-seat return and hold release. All failures, compiler fixes, source/dependency invariance and cleanup are retained in the [review](evidence/mounted-courier-2026-10-01/review.json). Existing missions and packaged handoffs remain unchanged. [Behavior and remaining work](hq-ammunition.md#mounted-courier-integration-1-october-2026).
|
||||
|
||||
Current source now uses one combined addon. Open `addons/core/addon.gproj` and
|
||||
`Missions/ERR_Everon.conf`; see [single-mod migration](single-mod.md). The older
|
||||
five-addon checkpoints below retain their original scope and do not qualify the
|
||||
merged source.
|
||||
**1 October 2026 — admission timeout and physical HQ evidence:** a delayed preload can no longer bypass the server's admission deadline. HQ rejects stale containment after radio transit, plans only from valid movement headings, reports exact original vehicle positions, and requires an original soldier physically present before reporting a negative search. **251 regression programs pass**. The hidden/muted [normal generated escape route](evidence/native-2026-10-01-mission-hq-fixes/report.json) completes **55 assertions and one round** with zero script/runtime failures; thirteen installed-resource errors retain strict failure. Source/dependency invariance and cleanup are confirmed. A reviewed mounted-transfer second-leg proposal is retained but remains unapplied until the physical courier/HQ coordinator exists. [Changes, evidence and limits](mission-hq-fixes-2026-10-01.md). Existing missions and packaged handoffs remain untouched.
|
||||
|
||||
**1 October 2026 — finite mounted stock and native eligibility:** convoy startup now requests a small, once-only stock matching exact originally installed mounted magazines, after the existing infantry cargo priority. Original identity, callback settlement and physical headroom checks prevent delayed replacement seeding or extra overbooking. Independent review caught and fixed the late-original-callback case. **250 regression programs pass**. The [hidden/muted native run](evidence/native-2026-10-01-mounted-initial-stock/report.json) completes **34 assertions and one round**, finds a real compatible PKM box and gets a successful read-only swap-eligibility result with both slots unchanged. No worker is on foot at the required location and no transfer occurs. Zero script/runtime failures; thirteen installed-resource errors retain strict failure. Cleanup and unchanged source/dependency inputs are confirmed. [Implementation and limits](supply-convoys.md#finite-initial-mounted-stock-1-october-2026). The packaged candidate remains unchanged; mounted physical rearming, multiplayer and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native mounted delivery and cheaper refused convoy startup:** the [production mounted-report fixture](evidence/native-2026-10-01-mounted-delivery/report.json) now completes **56 assertions and one round**, proving original six-root ownership, cargo exclusion and a detached matching snapshot delivered through the real radio path. UAZs report one installed gun each; BMP counts remain explicitly incomplete. One convoy deployed, not the configured three. Zero script/runtime failures and thirteen installed-resource errors are retained.
|
||||
|
||||
New-convoy startup now skips terrain surveys when its source cannot fit the shared body allowance, while reusing already reserved original receipts correctly. **249 regression programs pass**, including actual pool/startup red-before/green-after evidence; no measured FPS gain is claimed. A separate [read-only mounted-slot probe](evidence/native-2026-10-01-mounted-swap-unavailable/report.json) verifies the original PKM loaded slot, muzzle and storage owner, then stops because no eligible compatible cargo candidate is found. It retains 32 passing assertions, two fixture failures and thirteen installed-resource errors; **CanSwap was not called and no transfer occurred**. Final completion wording now keeps eligibility separate from radio proof; its post-run change has executable focused regression evidence. [Review and scope](evidence/mounted-budget-2026-10-01/review.json).
|
||||
|
||||
Both native runs were hidden/muted and confirm cleanup plus unchanged source/external inputs. All 52 pre-existing unstaged file contents are retained apart from explicit test/runner additions; 533 reference sources and previous packages remain unchanged. Physical mounted rearming, manual escape, multiplayer, full-fleet reliability, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — consistent fire-support memory and finite logistics ownership:** a reproduced bug allowed fire-support contacts to infer 30 m/s on-foot motion that HQ memory rejected. Contacts now use the same accepted delivered history as pursuit, retain the original time/position, and leave radio reports unchanged. Infantry transfer now consumes a shared finite-magazine reservation; mounted sampling consumes a read-only original-root query while preserving permanent loss/capture observation. These are physical-rearming prerequisites, not mounted rearming. [Behavior and regression review](evidence/hq-contact-reservations-2026-10-01/review.json).
|
||||
|
||||
All **247 repository regression programs pass**. The hidden/muted [native awareness run](evidence/native-2026-10-01-hq-contact-memory/report.json) completes **61 scripted assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. It verifies compilation and the existing physical radio/memory path; the new movement edge cases have actual-method regression evidence. Cleanup, source/external invariance, all 52 pre-existing unstaged file contents (apart from the added test registration), and 533 reference sources are verified. The packaged alarm-memory handoff below remains unchanged and predates this source checkpoint. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — refreshed combined development handoff:** a [new isolated playtest build](../.build/playtest-2026-10-01-alarm-memory/README.md) now contains matching editable source and package for all recent memory, mounted-reporting and alarm fixes: **377 authored files, 322 exact PAK payloads and three runtime files**. Current source completes **55 normal-route scripted checks** through extraction/result display, with zero script/runtime failures and thirteen installed-resource errors. [Normal-route evidence](evidence/native-2026-10-01-normal-alarm-memory/report.json), [artifact hashes](evidence/package-2026-10-01-alarm-memory/handoff.json).
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-alarm-memory/packed-startup-report.json) verifies the exact dependency mounts, normal modules, ready mission and local prisoner with zero script/runtime failures; the same seventeen installed-resource errors retain its strict failed verdict. Native packaging also retains its localization/shutdown failures despite exit 0 and complete hash-matched output. All native runs remain hidden/muted, with confirmed cleanup and unchanged inputs. The [playtest guide](playtest-build.md) now uses the combined addon and current scenario identity. All 246 regression programs pass for this unchanged source; independent resupply and object-lifetime reviews found no new defect. Existing handoffs, existing missions and all 533 reference sources remain unchanged. Manual play, multiplayer, mounted rearming, performance and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native alarm delivery and mounted low-stock check-ins:** an existing AI witness now demonstrably hears the native alarm event and sends its original-time, coarse anonymous report through the actual radio route into HQ memory. The hidden/muted controlled run completes **55 scripted assertions and one round**, with **zero script/runtime failures** and thirteen installed-resource errors. The earlier active-scene attempt exposed a real memory-ingestion lifetime crash; retaining the sanitized report through ingestion fixes that path, and its failed evidence remains archived. [Native result](evidence/native-2026-10-01-alarm-hearing-retained/report.json), [arrangement and limits](vehicle-security.md#native-alarm-delivery-and-memory-lifetime-correction).
|
||||
|
||||
Complete low mounted magazines can also request early status through the existing scan, shared cooldown and radio gate, without entering carried-ammunition totals or authorizing a refill. All **246 repository programs pass**; independent review found no additional demonstrated base-loop defect. [Mounted behavior and remaining rearming work](hq-ammunition.md#early-mounted-ammunition-check-ins-1-october-2026), [regression/review evidence](evidence/mounted-urgency-2026-10-01/review.json). Human breach input, audible and remote presentation, physical alarm investigation, mounted rearming, multiplayer and FPS remain unqualified. Existing packaged handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**1 October 2026 — conservative movement memory and bounded diagnostics:** HQ no longer infers a stationary/forward track by skipping a contradictory recent sighting. Mounted sampling normalizes exact native slot wrappers to their physical gun before counting it, and convoy startup reports the actual shared-body budget and refusal reason. All **246 repository programs pass**. The first alarm fixture incidentally records mounted UAZ magazines and a convoy refusal at **134/135 bodies, 25 required**; full mounted snapshot/radio proof is still outstanding. [Review and evidence](evidence/hq-followup-2026-10-01/review.json), [memory correction](hq-chronology-and-admission-2026-09-30.md#contradictory-recent-sightings), [mounted correction](hq-ammunition.md#native-slot-wrapper-deduplication-1-october-2026).
|
||||
|
||||
The current-source hidden/muted alarm diagnostic compiles, then correctly refuses emission because the relocated witness is **inactive at native LOD 10**, despite valid group, binding, distance and danger-event configuration. It passes 34 assertions and retains two fixture failures plus thirteen installed-resource errors. No event was emitted in that retry, so native hearing and radio delivery remain unqualified. Both attempts preserve failures, exact source/external inputs and confirmed cleanup. [Alarm fixture limits and next step](vehicle-security.md#native-alarm-hearing-fixture-1-october-2026). The latest packaged handoff below predates these changes and remains untouched; all 533 reference sources are unchanged. No multiplayer, FPS or release qualification is claimed.
|
||||
|
||||
**30 September 2026 — current-source handoff and installed-slot correction:** mounted weapons/magazines now use their exact native weapon-slot or muzzle ownership when ordinary inventory storage is unavailable. The same check protects structural seat admission, while retaining cargo exclusion, original crew/ledger checks and traversal bounds. All **245 repository programs pass**. An independent lifecycle/objective review found no demonstrated additional bug. [Implementation and remaining native scope](hq-ammunition.md#installed-weapon-slots-and-shared-structural-admission), [review record](evidence/installed-slot-2026-09-30/review.json).
|
||||
|
||||
The integrated source again completes **55 normal-route scripted assertions** through extraction/result display with zero script/runtime failures and thirteen installed-resource errors. A [fresh separate development handoff](../.build/playtest-2026-09-30-installed-slot/README.md) contains matching source and PAK: 376 authored files, 321 exact PAK payloads and three verified runtime files. [Ordinary packaged startup](evidence/packed-2026-09-30-installed-slot/packed-startup-report.json) verifies the normal mission and local prisoner, with zero script/runtime failures; seventeen installed-resource errors retain its strict failed verdict. [Native packaging](evidence/package-2026-09-30-installed-slot/package-report.json) also retains localization/shutdown failures despite native exit 0 and confirmed cleanup. All runs remain hidden/muted with unchanged inputs. The bounded mounted fixture still does **not** qualify installed counts or delivery: no production convoy appeared within its 180-second window. Native alarm hearing, mounted rearming, fleet reliability, manual play, multiplayer and measured FPS remain unfinished. Earlier handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**30 September 2026 — local alarm intelligence and structural vehicle sampling:** successful vehicle alarms now emit one tagged native horn event. Eligible nearby enemy witnesses retain the original observation time and send a coarse, targetless report through ordinary radio delivery. HQ sanitizes that evidence and can assign one existing mobile search group; it cannot turn an alarm into a tracked player, road interception or fire-support target. Native compilation succeeds; actual native hearing and remote delivery remain unqualified. All **245 repository programs pass**. [Alarm behavior](vehicle-security.md#local-alarm-evidence-for-hq-30-september-2026), [regression and review record](evidence/alarm-intelligence-2026-09-30/review.json).
|
||||
|
||||
Mounted vehicle eligibility now traverses structural seats without descending into soldiers' carried inventories or deposited cargo; exact original crew/ledger guards remain. The latest [production-fleet test](evidence/native-2026-09-30-mounted-structural/report.json) passes 48 assertions, including all six original roots and exclusion of eight actual cargo weapons, but fails to observe installed weapon magazines. It does not reach radio-delivery proof. Earlier compilation and production-fixture failures remain archived. Thirteen installed-resource errors and two final fixture failures remain explicit; hidden/muted cleanup and unchanged source/external inputs pass. No armed-count, three-convoy reliability, rearming, multiplayer or FPS qualification is claimed. Existing packaged handoffs remain unchanged.
|
||||
|
||||
**30 September 2026 — separate mounted-ammunition reports:** admitted convoy crews now report bounded original-vehicle ammunition snapshots through normal radio delivery, separate from carried infantry stock. Capture, foreign crew, lost roots or changed ledger ownership invalidate mounted sampling; deposited cargo is excluded. All 242 repository programs pass, with focused checks after the final diagnostic phase fix. [Behavior and remaining scope](hq-ammunition.md#mounted-convoy-reporting-30-september-2026), [regression/review evidence](evidence/mounted-ammunition-2026-09-30/review.json). Native compilation succeeds, but direct mounted sampling remains unproved: the [first convoy fixture](evidence/native-2026-09-30-mounted-initial/report.json) deadlocked waiting for HQ during prison; its checked escape transition is now fixed. The [second run](evidence/native-2026-09-30-mounted-ready/report.json) passes 33 assertions and road survey, then rejects canonical convoy dispatch before sampling. Both failures and the thirteen installed-resource errors are preserved; both confirm hidden/muted cleanup and unchanged inputs. Mounted rearming, real depletion/delivery, multiplayer and performance qualification remain unfinished. Existing packaged handoffs are unchanged.
|
||||
|
||||
**30 September 2026 — one-shot vehicle horn alarm:** successful UAZ lock breach now starts a replicated eight-second alarm with one owned audio handle. Duplicate state cannot replay it; expiry, destruction, mission inactivity and deletion clean up. Dedicated servers skip playback. All 240 repository programs pass, including final focused audio-query regressions. The hidden/muted native vehicle run completes **135 assertions**, observes the playing handle and fixed stop/no-replay behavior, and retains thirteen installed-resource errors with zero script/runtime failures. The earlier failed diagnostic interpretation is preserved. [Implementation, evidence and limits](vehicle-security.md). Audible/spatial presentation, remote clients and AI-hearing/radio integration remain unqualified or absent. The matching normal-route handoff below predates this alarm source change and remains untouched.
|
||||
|
||||
**30 September 2026 — normal generated-route checkpoint:** the ordinary Everon catalog now completes the scripted prison → physical clues → interrupted/resumed radio defence → helicopter extraction → victory/result-screen path, with **55 assertions and zero script/runtime failures**. The Southern optional UAZ passes its parking/readiness checks and starts locked; safe omission remains regression-tested. Generated sites were retained, unlike the older historical route fixture. Thirteen installed-resource errors still prevent strict qualification. Source/external hashes and hidden/muted cleanup are verified. [Native evidence](evidence/native-2026-09-30-normal-route/report.json), [transport scope](ground-transport.md). The earlier 236-program check and occupied-prefix refusal remain preserved. A [fresh matching development handoff](../.build/playtest-2026-09-30-normal-route/README.md) contains 373 authored files, 318 verified PAK payloads and three runtime files. [Ordinary packed startup](evidence/packed-2026-09-30-normal-route/packed-startup-report.json) verifies normal modules, mission readiness and a local prisoner with zero script/runtime failures; seventeen installed-resource errors retain its strict failure. The [packaging report](evidence/package-2026-09-30-normal-route/package-report.json) also retains localization, Steam stats and resource-leak errors despite native exit 0 and confirmed cleanup. Ordinary human escape, driving, multiplayer and FPS qualification remain pending; older handoffs below remain untouched.
|
||||
|
||||
**30 September 2026 — normal-route guidance and editable handoff:** in-game objectives and the [player guide](player-route.md) now match the prison backpack and normal Southern-cache/Field-hospital-1 clue route. The Western cache/locked UAZ is legacy-fixture content, not a normal starting option. A [verified updated source handoff](../.build/playtest-2026-09-30-source-update/README.md) contains the latest integrated changes; only the guidance strings differ from the last native escape snapshot, and focused feedback checks pass. Native packaging was deferred by its existing-game guard; the active user play session and older packages were left untouched. [Source hashes and refusal records](evidence/source-2026-09-30-guidance/handoff.json).
|
||||
|
||||
**30 September 2026 — empty-magazine return:** ground resupply can now return one exact unused compatible empty magazine to its original truck when inventory capacity blocks incoming ammunition. Separate callbacks and ownership proof guard both moves; failure or shutdown retains uncertain operations without retries. All 234 repository programs pass, and hidden/muted native compilation plus the 52-assertion scripted escape completes with zero script/runtime failures. The thirteen installed-resource errors remain; the empty-return branch itself still needs native validation. [Implementation, provenance and limits](empty-magazine-return.md). The [original feature ledger](original-feature-coverage.md) now distinguishes implemented systems from absent behavior and unfinished qualification. Existing packaged candidates remain unchanged.
|
||||
|
||||
**30 September 2026 — report chronology and retry ownership:** delayed negative reports about another target no longer overwrite newer positive sightings in a shared HQ search cell; old admission callbacks cannot consume a reconnected controller's retry budget; completed Intel reroll entries no longer consume native-work slots. All 234 repository programs pass. The focused hidden/muted HQ awareness run completes 61 scripted assertions with zero script/runtime failures; thirteen installed-resource errors remain. The separately failed legacy convoy/memory fixture is retained. [Changes, evidence and limits](hq-chronology-and-admission-2026-09-30.md). The packaged candidate remains the older snapshot.
|
||||
|
||||
**30 September 2026 — all-convoy infantry resupply:** HQ can now use every existing finite convoy's original ammo truck, up to the configured twenty, rather than only the first. Per-truck stock stays separate; shared report/cooldown history prevents cross-truck replay, and planning rotates donors with at most one new trip per five-second cadence. All 234 repository regression programs pass. A hidden/muted native run initializes three independent 56-magazine stocks and completes the 52-check scripted escape with zero script/runtime failures; the thirteen installed-resource errors remain. No actual multi-truck delivery was exercised. [Implementation and evidence](multiconvoy-resupply.md). The packaged development candidate below predates this source change and remains untouched.
|
||||
|
||||
**30 September 2026 — combined development candidate:** a fresh [single-addon handoff](../.build/playtest-2026-09-30-current/README.md) contains matching editable source and native PAK. The focused combined-mission escape fixture completes 52 assertions through victory and the result screen, with zero script/runtime failures. Ordinary packaged startup independently loads the exact ten engine/vanilla/owned/dependency mounts and verifies a local prisoner in the ready mission. Strict qualification still fails on installed-resource errors and the retained packaging verdict. [Evidence, scope and build details](combined-candidate-2026-09-30.md).
|
||||
|
||||
**30 September 2026 — earlier settings checkpoint:** the complete repository check now passes all 232 registered regression programs, including the settings-save recovery correction and full-route fixture budget. The subsequent route-selector and cleanup changes pass their focused regressions; the older 231-program, 191-program and 101-assertion results below are historical checkpoints, not acceptance for the current tree. [Latest fixes and preserved native attempts](mission-checkpoint-2026-09-30.md).
|
||||
|
||||
RHS Status Quo, WCS Armaments and WCS BMP-1 are current mission dependencies, alongside the separately authorized Parachute Framework and their supporting packs. Infantry resupply now waits for both real convoy cargo phases and captures faction-independent finite magazine identities. The hidden, muted infantry run compiled and captured 56 original magazines, but failed to select an eligible compatible patrol recipient before transfer. Cleanup and unchanged source/external inputs were confirmed. Thirteen existing resource/property/localization errors also remain. [Changes, failed evidence and remaining scope](resupply-fixes-2026-09-30.md).
|
||||
|
||||
The later empty-weapon ammunition fix now derives cargo from the native carried-weapon default when the last magazine has been removed, while preserving loaded variants and excluding auxiliary launcher rounds. Actual-method and neighboring policy regressions pass. The later radio fixture compiled the combined source and completed seven scripted assertions with zero script/runtime failures; native ammunition delivery remains unverified. Review confirmed that the earlier unavailable recipient was a fixture population limitation, not a demonstrated support-reservation defect.
|
||||
|
||||
A failed first settings save no longer leaves a rejected primary file that disables changes after restart; existing backups and runtime settings remain preserved. Two earlier combined route/administrator-stress attempts are retained as failures: the first reached interrupted radio defence before its old total deadline; the bounded retry completed the 129-actor, 100-percent intel reroll but exhausted the separate two-batch reroll budget. Neither completed extraction; the later route-only fixture does complete it without claiming the administrator stress passed. All runs used hidden/muted private profiles; the sealed attempts confirm unchanged source/external inputs and cleanup. The thirteen installed-resource errors remain explicit.
|
||||
|
||||
Use the updated [player route guide](player-route.md) for the single combined scenario. A full ordinary escape, multiplayer acceptance and an equivalent-workload FPS improvement are still unverified. Prison input automation and experimental AI helicopter flight remain paused. Existing September 29 medical, spectator, mortar and body-recovery work remains preserved in the working tree; no release or Workshop publication is implied.
|
||||
|
||||
**20 September 2026 — report-driven road interception:** HQ can now use fresh delivered movement history to select a forward point on an authored road and order an existing infantry group to hold it temporarily. The bounded selector respects reserved destinations, physical clearance and elevated-road geometry; old or weak evidence falls back to search. Existing radio delivery, force limits, home guards and absolute task expiry remain in charge. No barricades, vehicles, mines or new troops are created. [Implementation and scope](road-interception.md).
|
||||
|
||||
All repository checks pass. The [native113607 raw checkpoint](evidence/native-2026-09-20-113607-road-interception-raw/README.md) completes101 assertions/one round with zero script/runtime failures, including an actual Everon road selection and stale-belief refusal from arranged private-memory reports. Four external localization errors remain. A process-exit race prevented the runner's final cleanup seal; its failed verdict is retained. A later independent read-only check found the reported PID absent, the private prefix idle and source bytes unchanged. This is not infantry-arrival, natural-interception, multiplayer or FPS evidence. The [refreshed development handoff](../.build/playtest-2026-09-20-road-interception/README.md) now contains all five packages and matching editable source:261 authored files,222 exact PAK payload entries and15 verified runtime files. [Packed Core](evidence/packed-core-2026-09-20-road-interception/report.json) starts cleanly. [Full external startup](evidence/raw-packed-chat-external-2026-09-20-road-interception/README.md) verifies the13-addon paths, ordinary modules, mission header and local prisoner admission without script/runtime failures, but remains failed on four external localization errors appearing twice. Both packed runs confirm unchanged inputs and hidden/muted cleanup. [Build/handoff record](evidence/package-2026-09-20-road-interception/handoff.json). All533 reference sources are unchanged; previous handoffs remain intact. Native packaging shutdown failures, full human escape, multiplayer and FPS acceptance remain unqualified.
|
||||
|
||||
**20 September 2026 — nearby sighting handoff and resupply approach:** A squad without a usable own radio route can now pass its fresh visual report through an original member to a living friendly radio carrier within 100 m. Original source, position and timestamp remain intact; HQ learns only after radio delivery. Shared callers cannot overlap their originating calls, and interrupted or repeated sightings cannot bypass delivery. The [native checkpoint](evidence/native-2026-09-20-101306-local-handoff/report.json) completes one round/81 assertions without script/runtime failures: an arranged snapshot reaches HQ unchanged, while removing the second caller's radio prevents the next snapshot from arriving. The fixture deliberately removes radios and positions a witness after startup fitting settles; it is not natural perception or multiplayer proof. [Details and retained setup failure](hq-local-handoff.md). Four external localization errors remain, with source/external fingerprints and hidden/muted cleanup confirmed.
|
||||
|
||||
Resupply now waits through unsubmitted geometry/capacity failures instead of spending that magazine and aborting the trip. A submitted native attempt remains strictly once-only. Move/hold radii also no longer accept an approach five metres from the reported truck position. Actual-method regressions reproduce and fix both issues; full native walking rendezvous remains unproved. Full repository checks pass, with the final fixture adjustment covered by focused tests and native compilation/execution. All 533 reference sources remain unchanged. An updated editable source bundle is recorded [here](evidence/source-2026-09-20-handoff-resupply.json); packaged playtests remain older snapshots. Manual play, multiplayer, packaging and FPS qualification are still unfinished.
|
||||
|
||||
**20 September 2026 — native finite magazine transfer:** Before moving a magazine, infantry now need unobstructed physical reach to a root-owned authored truck storage context. The [native transfer checkpoint](evidence/native-2026-09-20-091854-infantry-transfer/report.json) completes one round and 43 assertions, with zero script/runtime failures: one original magazine moves from the automatic convoy's original ammo truck to an original patrol actor, preserving ammunition count and the force ledger. This fixture deliberately positions the recipient and waits for its native pose update; it does **not** prove autonomous rendezvous. Four installed external localization errors still prevent strict qualification. [Access and retained diagnostic failures](infantry-resupply-access.md). Actual-method tests cover obstructions, stock identity, report consumption, reservations, native submission and interrupted fixture cleanup. Source/external input fingerprints and hidden/muted cleanup are confirmed. Full walking resupply, multiplayer, FPS and refreshed packaging remain unfinished; existing handoffs are unchanged.
|
||||
|
||||
**20 September 2026 — automatic convoy and result feedback:** The full AI scenario now defaults to one automatic initial convoy after a 30-second startup grace and existing-force admission. Automatic and manual requests share the same finite receipt, with no automatic retry or replacement. `/esc hq convoy auto set 0|1` saves the next-round choice; old disabled convoy settings migrate correctly. [Startup details](convoy-startup.md). Original physical turret occupants receive scoped skill100, while other enemy crew retain at least80. The [native checkpoint](evidence/native-2026-09-20-081658-automatic-convoy/report.json) completes 93 assertions and one round, proving six automatic vehicles, 19 original seated crew, five turret specializations and duplicate-dispatch rejection, plus the existing HQ radio-memory tests. Zero script/runtime failures; four external localization errors remain. All repository checks pass, and 533 tracked reference sources remain unchanged. Hidden/muted cleanup and unchanged input fingerprints are confirmed. Defeat screens now refresh a late replicated end reason; callback/lifecycle tests pass, but real remote-client timing remains untested. Existing packaged handoffs remain older snapshots; native logistics, multiplayer and FPS qualification remain unfinished.
|
||||
|
||||
**20 September 2026 — finite nearby infantry resupply:** HQ now uses delivered low-ammunition reports to reserve an existing patrol and the manually dispatched convoy's original ammo truck. Separate radio orders stop the truck, request its stopped-position report and send infantry to a nearby rendezvous. Existing captured magazine identities transfer at most once; no replacement stock is created. Low-stock reporting uses 30-second local scans and a 60-second urgent-call cooldown. [Scope and limits](infantry-resupply.md). The [current native run](evidence/native-2026-09-20-072839-infantry-resupply/report.json) compiles the complete integration and completes 59 HQ-memory assertions/one round with zero script/runtime failures and verified hidden/muted cleanup; four external localization errors remain. The first native compile failure is retained and corrected. Direct native resupply/navigation, automatic dispatch, broad logistics parity and multiplayer remain unfinished. All repository checks pass and all 533 tracked reference sources remain unchanged. The existing packaged handoff remains the older `915476f` snapshot.
|
||||
|
||||
**20 September 2026 — radio and finite maintenance:** Enemy groups now use bounded one-time radio fitting, preserving existing radios and excluding mortar-owned allocations. Uplinks hold their original caller for three seconds before network hops and fail on live consciousness/ownership loss. The [native radio/HQ-memory checkpoint](evidence/native-2026-09-20-062203-radio-call-memory/report.json) completes 59 assertions and one round, with zero script/runtime failures; four installed external localization errors remain. All six tested groups were already equipped, so native insertion remains unproved. The western supply cache now holds one finite repair kit and two fuel cans. Its [native stock/transport checkpoint](evidence/native-2026-09-20-062011-maintenance-stock/report.json) passes 131 assertions with zero captured errors, confirming 20 supply units and two five-litre cans plus prior lock/vehicle-loss behavior. Ordinary repair/refuel consumption remains untested. Both runs preserve exact sources and confirm hidden/muted cleanup. Current external packaging has a separate [explicit v3 development workflow](packed-external-development.md); the matching separate handoff is `.build/playtest-2026-09-20-radio-maintenance`. All five PAKs match their authored payloads; [Core ordinary startup](evidence/packed-core-2026-09-20-radio-maintenance/report.json) passes without captured errors. Full packed Chat verifies the exact thirteen-addon closure but remains failed on installed localization errors and did not establish participant readiness before its diagnostic ended. Native build shutdown failures remain; older handoffs are unchanged. All repository checks pass and 533 tracked reference files remain unchanged.
|
||||
|
||||
**20 September 2026 — optics and base interaction follow-up:** Startup optics fitting now uses verified vanilla/RHS resources, preserves existing attachments and remains independent of finite Stinger processing. The supply UAZ has a successor-owned [held lock-breach action and scoped entry guards](vehicle-security.md); the [native supply-vehicle checkpoint](evidence/native-2026-09-20-052915-supply-vehicle-security/report.json) completes 124 assertions with zero captured errors, including lock rejection, one-time unlocking, native driver availability with its declared door context, scripted seating, fuel depletion and no replacement after loss. Ordinary held input and multiplayer verification remain pending. Player guidance now explains pilot responsibility and whole-round extraction consequences, and repeats the current objective after a controlled-body change. [The native convoy diagnostic](evidence/native-2026-09-20-050906-convoy-seat-diagnostic/report.json) compiled the optics integration but failed a combined gunner consciousness/seat/identity check after 170 passing assertions; it did not reach the new radio HOLD/RESUME test. The [second run](evidence/native-2026-09-20-051505-convoy-cover-diagnostic/report.json) passed those driving/seat checks but received no qualifying cover sighting before a combined preservation guard failed. Native HOLD/RESUME remains unverified; more precise diagnostics are included without weakening either guard. The [final full-addon run](evidence/native-2026-09-20-053057-optics-security-hq-integration/report.json) compiles all current source changes and completes 56 HQ-memory assertions with no script/runtime failures; the four known external localization errors remain. All repository checks pass, and all 533 tracked reference sources are unchanged. Existing packaged playtests remain older snapshots.
|
||||
|
||||
**20 September 2026 — delivered ammunition and convoy cover:** HQ now receives detached small-arms ammunition counts with real radio status and avoids new armed assignments only when fresh, complete evidence proves the squad empty. Per-vehicle convoy HOLD/RESUME commands share the original crews' radio downlinks and preserve route/crew/cargo identity. The [ammunition run](evidence/native-2026-09-20-040857-hq-ammunition/report.json) completes 49 assertions; the [current convoy driving recheck](evidence/native-2026-09-20-041150-convoy-cover-driving/report.json) completes 181. Both have zero script/runtime failures and confirmed cleanup, with four external localization errors retained. Native combat HOLD/RESUME and depletion still need direct tests; general resupply, multiplayer/FPS qualification and updated packaged playtests remain unfinished. See [ammunition scope](hq-ammunition.md) and [convoy scope](convoy-migration.md#delivered-hq-mounted-cover-follow-up).
|
||||
|
||||
**20 September 2026 — delivered casualty follow-up:** HQ now merges body and squad-status evidence by immutable original member identity. A [native corpse/radio test](evidence/native-2026-09-20-030533-body-radio-casualties/report.json) completes45 assertions: actual visual observation, no knowledge before delivery, real overlapping status and no double-counting. Transfer-before-death and deleted-corpse safeguards are covered by focused regressions. Four external localization errors remain; packaged playtest binaries have not been refreshed.
|
||||
|
||||
**20 September 2026 — HQ memory and external dependencies:** The editable successor now includes the [AI migration checkpoint](ai-migration-progress.md): bounded report-derived memory/prediction, infantry task selection, delivered negative-search coverage, routine check-ins and missing-patrol investigations, local body observation, finite Stinger grants and the Core force ledger. RHS/WCS/BMP are [declared and audited](external-addons.md). Native memory (56 assertions) and actual-sighting HQ response (35 assertions) complete with zero script/runtime failures; four external localization errors keep strict qualification failed. The older playtest below has not been rebuilt with these changes. The [convoy checkpoint](convoy-migration.md) now proves exact nineteen-person native seating, finite physical truck cargo and duplicate-dispatch rejection. The native driving follow-up completes181 assertions: all six vehicles move at least20m and the lead over100m, preserving exact crew and rejecting repeat dispatch. Combat tactics, unloading and long-route reliability remain unfinished.
|
||||
|
||||
**20 September 2026 — refreshed playtest ready:** `.build/playtest-2026-09-20` now contains the mission-owned Chat menu and current owned AI/Intel behavior from source `5e74269`. All 216 authored source files and all five native PAK payloads match; fifteen runtime files are verified. [Core](evidence/packed-core-2026-09-20-playtest/report.json) and [full scenario](evidence/packed-chat-2026-09-20-playtest/report.json) pass ordinary packaged startup with zero captured errors, unchanged inputs and confirmed hidden/muted cleanup. [Build record](evidence/playtest-2026-09-20/build.json) and [launch/route instructions](playtest-build.md). Separate muted manual launchers and local profiles/runtime are prepared; no visible launcher was run. The old handoff and 533 original reference files are unchanged. The packager's shutdown failures remain, while a narrowly fixed disappearing-audio-stream race passes44 tests and its separate Chat retry produces matching artifacts. Human full escape, multiplayer and FPS remain unqualified.
|
||||
|
||||
**19 September 2026 — mission-owned chat administration:** Core now owns `/esc`, the native settings/HQ/journal menu, authenticated sessions and player tools in dedicated classes. AI and Intel register optional providers; Chat is only the existing full-scenario/development wrapper. Open with `/esc menu`. [Implementation and command reference](chat-integration.md). [Final native regression](evidence/native-2026-09-19-234618-chat-complete/report.json): one full scripted escape round, 101 assertions, zero captured errors, unchanged source and verified private cleanup; checks include actual menu/owner RPCs, saved settings, god-state restoration, visible journal text and scrolling to the newest entry. Earlier Core and two-round full-scenario runs are linked in the implementation notes. All repository checks pass. Original 533 reference files remain unchanged. The frozen playtest package has not been rebuilt; multiplayer and release acceptance remain pending.
|
||||
|
||||
**19 September 2026, 22:59 — owned AI/Intel migration:** Added admin Intel summary/reroll commands, native-operation callbacks and bounded retry handling, coalesced team discovery notifications, and fair per-squad reporting of multiple current visual contacts. [Change details](owned-ai-intel-migration.md). The updated five-addon source passes [two native escape/restart rounds](evidence/native-2026-09-19-225422-owned-ai-intel/report.json), **186 assertions**, zero captured errors, unchanged source and confirmed hidden/muted test cleanup. All repository checks pass. The frozen playtest package below remains its earlier snapshot; these source changes have not been repackaged. Human/multiplayer and release qualification remain pending.
|
||||
|
||||
Updated **19 September 2026,22:12**. The prison and the complete intended base sequence are implemented: prisoner spawning, physical intel/scavenging, radio defence, player-flown helicopter extraction, individual results and restart. Five independent successor projects use vanilla assets without the original mod. Scripted local integration and ordinary startup have native evidence. This is an implemented development build awaiting gameplay qualification, not a completed multiplayer release.
|
||||
|
||||
**Priority correction from the user:** stop spending disproportionate time on automated prison keypress proof and experimental AI aircraft flight. Both experiments are paused. Active work now targets concrete base gameplay bugs, missing user-visible behavior and companion integration. The reproduced first-admission deadlock is fixed, and casualty loading now gives denial/failure feedback to its initiating rescuer. Each clue cache carries one finite replacement map. Manual play and real multiplayer remain necessary, but absence of automated input proof does not mean the prison is still being built.
|
||||
|
||||
The frozen202-file playtest source now passes [two Core escape/restart rounds](evidence/native-2026-09-19-215437-playtest-core-loops/report.json),616 assertions, zero captured errors and confirmed cleanup. All repository checks pass. The [development playtest handoff](playtest-build.md) is ready in `.build/playtest-2026-09-19`: exact-source native packages and editable source, separate user-run `play-full.sh`/`play-core.sh`, prepared isolated local profiles/runtime and a seven-step route guide. [Packed Core](evidence/packed-core-2026-09-19-playtest/report.json) and [full five-addon startup](evidence/packed-chat-2026-09-19-playtest/report.json) both pass with verified cleanup and unchanged artifacts. Workbench packaging errors remain recorded separately; this is a development candidate for human testing, not a qualified release.
|
||||
|
||||
Recent retained checkpoints:
|
||||
|
||||
- [Ordinary coarse approach/facing/lock selection](evidence/game-2026-09-19-212117-coarse-facing-selection/runner.json.txt) passed using actual private mouse/W input and one wheel pair. Facing took2.726seconds; no F was sent. The [first opt-in held-action attempt](evidence/game-2026-09-19-214138-held-prerequisite-refusal/runner.json.txt) later refused its independent facing prerequisite before wheel/F, confirmed all releases and cleaned up. Further input automation is paused.
|
||||
- [Typed aircraft service20m route](evidence/native-2026-09-19-210233-typed-service-route/report.json) passed40 assertions, destination hold, contact landing and shutdown at its201-file snapshot. The100m survey experiments found terrain/building/tree obstructions before allocating an aircraft; the [last survey](evidence/native-2026-09-19-213726-field-workshop-refusal/report.json) records the workshop bounds. There is no100m flight or operational HQ aircraft qualification. A reviewed contact check prevents ground friction receiving airborne-braking credit; its focused policy checks pass, native validation remains pending.
|
||||
- All repository checks passed after integrating the optional held-action helper and independent validators. The subsequent narrow contact fix has focused regressions. These are development checks, not manual gameplay or release acceptance.
|
||||
|
||||
**All seventeen first-release acceptance cases remain pending.** Full ordinary escape, real multiplayer, improved FPS and clean native packaging are unqualified. The [empty-addon packaging control](evidence/package-control-2026-09-19-201532-exit-after-init/review.json) still reproduces25 shutdown errors. Tests remain hidden/muted, and the original533 reference files were verified unchanged at21:42.
|
||||
|
||||
The [route gain comparison](evidence/route-comparison-2026-09-19-192238/comparison.json) measures one native20m route per gain: translation through arrival hold improved155.365→69.293seconds, and final target error improved0.130→0.099m. The candidate passed38assertions, physical contact landing and engine shutdown. This is an isolated flight-controller result, not an FPS comparison or operational HQ air support; the production callback bridge has separate native evidence, while the later retained-service route/Stop passes are separate historical snapshots and useful field-length routes remain pending.
|
||||
|
||||
[Ordinary prison approach191750](evidence/game-2026-09-19-191750-prison-approach/runner.json.txt) now passes end to end using actual private mouse/W input:14turns,9walking pulses,4.741m path,27.199s native interval, stationary0.490m from the interior waypoint. A disposable2560x720 viewport provides pointer travel while retaining every containment/ownership check. No gate action was sent; the exact lock/context remains unselected from the final view. Earlier pointer-edge, cross-position-API, calibration-return and legacy-summary failures remain archived. The first physically completed route191342 has a separate hashed raw-log review, not a rewritten runner verdict. The later [194128 alignment attempt](evidence/alignment-review-2026-09-19-194128/review.json) acquires the native gate context with the lock available, but does not select the lock; it remains failed. Read-only selected-action diagnostics precede any action cycling or heldF proof.
|
||||
|
||||
The [relative-look observer](ordinary-look-observer.md) now passes an [ordinary Chat run](evidence/game-2026-09-19-183944-relative-look/runner.json.txt): actual +24/−24 pixel input produced a measured 1.935° yaw response and return within 0.149°, with stationary body, then verified W/Tab input. Zero captured errors, source unchanged and cleanup confirmed. The earlier run remains failed because its independent checker assumed identical SAMPLE/READY milliseconds; its [separate corrected review](evidence/look-review-2026-09-19-183353/review.json) preserves the raw archive. The current-source Core attempt reached 292 assertions without errors but exhausted an undersized 180-second budget; its [timeout](evidence/native-2026-09-19-183622-core-budget/runner.json.txt) remains a failure. The later 184647 run used a 600-second budget and completed both rounds with614 assertions; the earlier timeout remains failed. No gate interaction or full normal-input escape is qualified.
|
||||
|
||||
The primary deliverable is an independently authored replacement for the abandoned Escapists base mission, with companion behavior integrated through its interfaces. Five successor addon projects have their own identities, authored Everon sites and vanilla asset references. The first release targets up to twelve players completing prison → scavenging/intel → radio defence → helicopter extraction without the original mod or dependent extensions. Scripted development checkpoints exist; a dependable, manually playable multiplayer release is still unfinished.
|
||||
|
||||
## Established development checkpoints
|
||||
|
||||
| Area | Evidence | Practical limit |
|
||||
| --- | --- | --- |
|
||||
| Integrated base loop | [Core 130347](evidence/native-2026-09-19-130347-core-loops/report.json) completes two rounds, 612 assertions and zero errors, including canonical participant rejection/restored document recovery, rough/exact native markers, radio feedback, extraction and restart. [Companion 131041](evidence/native-2026-09-19-131041-companion-loops/report.json) completes two rounds, 96 assertions and zero errors at its source snapshot. | Scripted local integration with deliberate state/position changes, not a normal-input escape. These earlier archives share their captured source snapshot; the new Core/companion/ordinary runs linked above qualify the later native-end correction. The earlier flight mechanism remains separately source-bound. Future addon edits require fresh qualification. Earlier failures remain archived. |
|
||||
| Ordinary game startup | [Chat 125906](evidence/game-2026-09-19-125906-integrated-prison/report.json) loads all five addons in the regular game, verifies the header/MissionSystems and admits the real local controller to a living canonical prisoner, then observes a clean ready interval. Native screenshots show the real prisoner view and the correct escape objective; the stock-scale yard decal creates a larger irregular bare patch, with substantial wheat remaining. | Explicit diagnostic noSplash and a scoped standalone round-local identity; no complete ordinary route or remote identity proof. The latest bounded keyboard cycle described above passes with visible inventory, while the earlier failed cycles remain archived. [Admission design](local-singleplayer-admission.md). |
|
||||
| Packed addon consumption | [Packed Core 110729](evidence/packed-core-2026-09-19-110729/report.json) passes ordinary startup from the archived project/PAK/resource database plus installed vanilla: exactly three expected addons, real canonical prisoner, a 15-second ready interval and zero captured errors. Package and log hashes are retained. | Artifact-bound startup with explicit noSplash; no loose successor addon was loaded. The artifact predates current mortar edits. [Archived packed Chat 131942](evidence/packed-chat-2026-09-19-131942-current/report.json) passes startup from all five [1317 packages](evidence/package-2026-09-19-1317-all/review.json), with no loose successor source, a real prisoner and zero captured errors. All 151 PAK entries match the captured 183-file addon snapshot before the native-end correction; all fifteen runtime artifacts retain exact hashes. Native packaging remains unqualified: an [empty-addon control](native-packaging-control.md) reproduces the same UI resource-leak errors, without fixing or suppressing them. |
|
||||
| Native game-over | [Preparation 133847](evidence/native-2026-09-19-133847-native-end-preparing/report.json) and [active 134044](evidence/native-2026-09-19-134044-native-end-active/report.json) each pass two rounds/21 assertions: actual inherited game-over, unchanged native data, one shutdown, cancelled preparation/tick/binding, inert stale callbacks and vanilla restart. | Local fixture; pending native preloads and real clients are not arranged. Existing successor extraction results remain covered by normal escape/restart regressions. |
|
||||
| Prison and scavenging | [Prisoner capacity](evidence/native-2026-09-19-063949/report.json) uses one real player plus eleven physical characters, exact starter kits and native clue transfers. [Prison boundary 100148](evidence/native-2026-09-19-100148/report.json) covers the gate/progression corrections. | Extra physical actors are not twelve connected clients. Native action completion and deliberately repositioned boundary crossings do not prove held input or walking through the gate/debris. Equipment scarcity and combat balance need playtesting. |
|
||||
| Medicine and extraction casualties | [Medical treatment](evidence/native-2026-09-19-062406/report.json) demonstrates finite supplies and native recovery at its earlier snapshot. [Casualty 102037](evidence/native-2026-09-19-102037/report.json) passes 101 clean assertions at the committed checkpoint: grounded-aircraft checks, real incapacitation, helper rejection, seat/LOS constraints, one owner-handshake load and idempotent stop. [Native removal](evidence/native-2026-09-19-080058/report.json) proves the inherited exit mechanism. | Casualty loading explicitly adapts helper membership and invokes action completion. Held input, real remote ownership, competing rescuers and disconnect/death/deletion races remain separate. The older medical snapshot retains its historical catalog errors. |
|
||||
| Infantry and HQ | [Actual perception response](evidence/native-2026-09-19-092237/report.json) carries an original soldier's observation through both physical radio legs and HQ to a different original squad, which physically moves. Patrol/preemption/resumption are implemented. | The prisoner is arranged and temporarily protected. Broader combat and interrupted/captured support require additional qualification; no response force is created for this test. |
|
||||
| Finite support | [Mortar expiry](evidence/native-2026-09-19-091306/report.json) verifies fresh native commitments followed by stale-report withholding without duplicate orders. [Courier 095513](evidence/native-2026-09-19-095513/report.json) passes 154 clean assertions through actual radio, original-patrol walking, exact depot-shell delivery and patrol restoration. | Mortar observations are synthetic; impact accuracy and genuine late callbacks remain unproved. The new refresh now passes the bounded 112900 fixture: three actual radio updates, eight physical launches, native event completion, 19 surviving original shells and 25 seconds without replay. The current [114751 expiry regression](evidence/native-2026-09-19-114751-mortar-expiry/report.json) also passes 48 clean assertions. [115232 crew registration](evidence/native-2026-09-19-115232-intel-readiness/report.json) proves all four physical crew receive their one Intel carrying roll after setup, then exercises inventory depletion/loss; broader support-loss checks remain separate. Courier depletion is arranged by physically sequestering the original 27 rounds, not firing or replacing them. Broader losses and multiplayer remain unqualified. |
|
||||
| Aircraft mechanism | [Flight 114504](evidence/native-2026-09-19-114504-powered-flight/report.json) passes 81 assertions with zero captured errors: signed actor-local collective consumption, native autohover, powered takeoff, five-second 7–9m hover, stable contact landing and an engine-off check with finite fuel. The same aircraft and living AI pilot remain inside the original physical limits. | [Translation 120245](evidence/native-2026-09-19-120245-powered-translation/report.json) additionally passes 85 clean assertions for a fixed four-metre target, five-second hold and landing. The reusable production controller separately passes [123439](evidence/native-2026-09-19-123439-aircraft-controller/report.json), 37 assertions including actual post-spawn qualification and its own complete vertical operation. [Airborne cancellation 124915](evidence/native-2026-09-19-124915-aircraft-cancel/report.json) passes 39 assertions with retained control through contact landing and engine-off. The same reusable controller then passes [fixed-target movement 130038](evidence/native-2026-09-19-130038-aircraft-target/report.json), 38 assertions including a physical 2.9m translation and landing. These are isolated flight mechanisms; rotors still coast after engine shutdown. [The fixed 20 m route](evidence/native-2026-09-19-155909-aircraft-route/report.json) now passes one unloaded flight, target hold, contact landing and engine-off with 38 assertions. Useful field-length navigation, operational HQ support, repeated-flight reliability and manual/multiplayer piloting remain unqualified. Earlier input, drift, hover and shutdown failures remain archived. |
|
||||
| Shared field map | [Map ownership 120633](evidence/native-2026-09-19-120633-map-ownership/report.json) passes native replacement-view, delayed-callback, mode-clear and spare/interrupted deletion checks. The fixture observes actual cleanup and waits for native component references to expire. | Camera restore authorization is observed; no public native render-state getter exists. Visible held-map usability, previously focused stock gadget callbacks and remote presentation remain separate. |
|
||||
| Independent runtime controls | [Archived packed Linux Chat 132456](evidence/dedicated-2026-09-19-132456-packed-chat/review.json) compiles the integrated game scripts, loads all five packages and prepares the empty prison mission in an isolated network namespace. Its four resource errors also occur in the earlier vanilla control. All fifteen packed inputs remain unchanged. [Vanilla ordinary 102533](evidence/vanilla-game-2026-09-19-102533/report.json) reproduces the initial splash unknown-class error with exactly two vanilla addons and no successor. | No real dedicated client joined. The vanilla ordinary control remains failed despite entering the menu; it does not test scenario reload or input. [Splash diagnosis](normal-splash-audit.md). |
|
||||
|
||||
## Immediate work
|
||||
|
||||
1. Play the frozen development candidate through the normal route and fix reported blockers. First-spawn exhaustion, silent casualty-loading failures and missing spare maps have been addressed; do not resume disproportionate input/flight automation.
|
||||
2. Review normal-player guidance and supplies across the authored escape route. Fix evidenced usability defects with proportionate checks.
|
||||
3. Distinguish genuinely absent base behavior from existing behavior awaiting playtesting. Pre-round setup UI, broader island population and vehicle break-in/alarm behavior are potential remaining features; the narrow escape sequence already exists. Keep later-scope feature parity separate.
|
||||
4. Prepare and validate the playable development build. Ordinary manual play, real multiplayer, packaging and equivalent-workload FPS tests remain release work. Do not resume elaborate gate-input or experimental aircraft automation at the expense of those priorities.
|
||||
|
||||
## First-release qualification
|
||||
|
||||
The [acceptance ledger](acceptance.json) still requires the complete ordinary escape loop, death/unconsciousness/recovery, reconnect/respawn/spectators, partial escape, defeat/restart, interrupted/stale reports, support/ammunition losses and duplicate-free cleanup with up to twelve connected players. A passed development checkpoint does not promote those pending cases.
|
||||
|
||||
Collect matched original/successor workloads with repeated client-frame and server-tick measurements. **No FPS improvement is demonstrated**; the [comparison tool](performance-comparison.md) has synthetic regression evidence only. Complete provenance/dependency review, obtain a clean native build and satisfy the [release checker](release-qualification.md). The [packed Core startup](packed-core-startup.md) is now demonstrated for its exact archived PAK, while the [packaging shutdown/control failures](native-packaging-control.md) remain unresolved and unqualified. The [development source bundle](development-source-bundle.md) provides editable projects; it is separate from that native candidate and from a qualified release. No release package is published.
|
||||
|
||||
[Private test cleanup](evidence/private-prefix-cleanup-2026-09-19-1631/review.json) now verifies Proton’s trailing-slash prefix spelling, checks idle state under the shared lock, and reaps only positively identified adopted test-device helpers after owned shutdown. The latest companion and ordinary runs record verified cleanup. Earlier strict-byte idle checks could miss those helpers; their historical logs are retained unchanged.
|
||||
|
||||
Original missions remain untouched. Engine tests use private profiles/prefixes, hidden displays and muted test audio. RHS/WCS/BMP are now authorized dependencies for AI/full integration. Additional terrains, complete original feature parity, alternate starts and distant-unit materialization remain unfinished. The [validation ledger](validation.md) preserves the detailed historical checkpoints and failures.
|
||||
|
||||
## 2026-10-04 — Terrain hunter fallback and convoy search
|
||||
|
||||
Live Nogova logs showed both successful three-UAZ rounds and rounds where an exhausted three-way opening scan permanently blocked all independent hunters. Initial deployment now falls back to checked friendly-objective roads with the existing finite force allowance and player exclusion, plus opening-center and active-hunter clearance. Failed placement retries after ten seconds.
|
||||
|
||||
Convoy infantry keeps hunting for three minutes after the last fresh sighting and can sweep twice farther around opposite flanks once each prior sector is reached. Route allocation failure preserves working flank orders, and duplicate reports cannot restart the hunt. Normal road travel still uses the column; combat retains independent infantry and escort orders.
|
||||
|
||||
All 314 registered checks passed. An isolated native Nogova run compiled without script errors, spawned three independent radio-equipped hunter UAZs through a forced opening failure, observed native patrol driving over 25 metres, and physically dismounted both convoy infantry teams with flank/search orders after one synthetic contact. Full organic combat and other terrains remain playtest coverage. No Workshop publish or live server changes. [Evidence](evidence/hunter-search-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Civilian road traffic
|
||||
|
||||
Added ordinary unarmed CIV drivers in S105 cars and S1203 vans, separate from military HQ, intel and equipment systems. The Factions admin page exposes `civilianTrafficCount` (0–6, default 3) through the existing authenticated settings service and unified profile. Zero prevents new traffic; existing traffic retires only when safe.
|
||||
|
||||
Road routes use the current terrain, with side exits available where an opposite endpoint would cross water. Spawns require 1,000 m clearance from all known player bodies/spectator targets and blocked sight lines. Cleanup requires both car and driver to remain at least 1,500 m away and hidden for a sampled 60-second grace period. Unknown views and open editor cameras veto both actions. Native garbage collection is held while traffic owns a car/driver. Player entry permanently releases traffic ownership; foreign occupants or control also release it. Claimed cars retain their slot for the round. See [civilian traffic](civilian-traffic.md) for bounded attempts and lifecycle details.
|
||||
|
||||
All 315 registered repository checks passed on the final source. The final isolated native Nogova run matched the workspace and passed four checks: native garbage refusal, neutral/unarmed seated driver and hidden distant start, more than 25 m of actual driving, and unclaimed retirement after observer departure and the production grace period. Earlier runs also observed three cars and retained-claim survival. A random coastal fixture withheld all spawns rather than bypassing safety; this motivated the bounded side-exit search. The private observer fixture is not multiplayer or visual-menu qualification. No live server modification or publishing. [Evidence](evidence/civilian-traffic-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Post-defeat loading display
|
||||
|
||||
The Chernarus playtest logs show approximately 30 seconds of native postgame delay, 40 seconds reloading the terrain, then procedural preparation. Escape now rebinds the native loading updater after replacing a terrain's respawn manager; previously the cached component could leave the spinner and preparation text without frame updates. Terminal phases and stale owners release held spawn-loading overlays. Active spawn acknowledgement and terrain-generation safeguards remain unchanged.
|
||||
|
||||
The native auto-reload default is ten seconds, with server CLI overrides preserved. The complete repository check and eight focused regression suites pass; the isolated Nogova engine checks pass binding recovery, actual frame delivery and the new prefab delay with zero script errors. Client rendering and a multiplayer death/restart remain playtest checks. No live-server edits or publication. [Evidence](evidence/restart-loading-2026-10-04/README.md).
|
||||
|
||||
## 2026-10-08 — optional Cessna reconnaissance
|
||||
|
||||
Implemented optional Cessna 172/PFC detection, a next-round HQ menu switch,
|
||||
background airport departure survey, native aircrew/flight-control autopilot,
|
||||
ordinary crew-sighting reports to HQ, loss replacement and takeover release.
|
||||
No Cessna/PFC dependency was added to the project. Dedicated-server takeoff,
|
||||
120-second patrol, delivered sighting, replacement and input restoration passed
|
||||
in the isolated engine fixture; addon-absent compilation and relevant menu,
|
||||
settings and registration checks passed. See [details](cessna-reconnaissance.md)
|
||||
and [evidence/limits](evidence/cessna-recon-2026-10-08/README.md). The busy native
|
||||
fixture also logged two optional-site guard-preparation failures; this is not a
|
||||
claim that the entire mission is free of errors. Live server and publication
|
||||
remain unchanged.
|
||||
|
||||
### Cessna menu configuration
|
||||
|
||||
HQ → Configure Cessna now groups the saved enabled state, terrain-clearance
|
||||
altitude, minimum replacement delay and patrol-area interval. Defaults preserve
|
||||
the flight behavior tested above. All four values are captured for the round;
|
||||
mid-round edits do not change the current plane or its replacements. Existing
|
||||
profiles migrate automatically. Focused menu routing/layout, setting boundaries,
|
||||
migration checks and isolated Reforger 1.8 script compilation passed. The new page
|
||||
has not been visually checked in a connected game, and non-default flight
|
||||
altitudes have not received the earlier full flight fixture.
|
||||
|
||||
## 2026-10-08 — guard work spikes and bounded aircraft preparation
|
||||
|
||||
The live populated-session measurements showed up to 856 ms in the combined
|
||||
garrison scope and 981 ms between updates, versus 7 ms for HQ journal flushing.
|
||||
Town/object guard discovery now caches small terrain cells, placement searches
|
||||
resume across background callbacks, and resources/soldiers are created one per
|
||||
slice. Immediate pre/post-spawn distance checks and fresh placement clearance
|
||||
remain enforced. The separate performance file now records background guard
|
||||
work and its own preceding flush duration.
|
||||
|
||||
The isolated Everon/RHS component run admitted two town squads safely, peaked
|
||||
at 19 ms across 1,349 guard work slices, and flew the Cessna. This is not a matched
|
||||
comparison with live Chernarus. Repeated Cessna preparation failures now stop
|
||||
after three attempts per round and identify the failing gate; the original live
|
||||
startup cause was not reproduced. See [evidence and limits](evidence/garrison-slicing-2026-10-08/README.md).
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"BUNDLE-MANIFEST.json": "b4b8640d7cef7120be284d17a649bf22f7dc66f7c212f18ca333f827b5ef195b",
|
||||
"bundle-result.json": "8a9cdafe577f52633ce35c0f1ef934dcec552c82d1ccd51d3bd88d516440fc89",
|
||||
"bundle-review.json": "3475ba7d0fe619e26fc82cf1a83619a8078dcc239525493722429159ad608ccb",
|
||||
"bundle-verification.json": "c0c7c07300b613df8edf4a64f06dd98614f7d3ba339060a3547a993926ce17b5",
|
||||
"current-status.md": "a5cd432da1f4bb14d7e46195d35b59f62828a2cec78378fb3fb0b22399263923",
|
||||
"maintenance-review/checks.json": "988548e2706ac9f2e574fed9a9af08e8d066b270271f0069e067c089c8fd628b",
|
||||
"maintenance-review/review.json": "06276d850a64665536e984f9b054790cd840ef366dba5c6cffbfe36bcec9a4ae",
|
||||
"maintenance-review/test_item_station_lifecycle.py.log": "3f09d567bc194365aad2143b17d0d37557aec3a5f4fde806f425991dd876c0ca",
|
||||
"maintenance-review/test_terrain_support_stations.py.log": "d83385d0846c5ce1164525d14cb892b4f105e31a34b1574fdb11915112351ead",
|
||||
"maintenance-review/test_vehicle_maintenance_stock.py.log": "cf787af4d62cb1f3ef40918e1d3292b6344cea673d4486a5f57837b85e082950",
|
||||
"map-review.json": "e679cf42ef75d9dd9cf07f88f299aa31aba62c60c7fbc761c2a55a229175207c",
|
||||
"native-preflight.json": "b578e4c5552006f96d162f9b2e6af5dd67bbe25368cbd5216092ec93e0139566",
|
||||
"prior-evidence-seals.json": "ddce2fb5c1afce43cdc3f9513776c55b399eabecc5d9765feda21efabb49c7fc",
|
||||
"report.json": "b28c4e911363dd24bc8dae9a1b6ada55ccce514901863338cd1d77bb0840a722",
|
||||
"source-inputs.json": "c6239323a9044555d78707aa63923027507d02148b64b4ebb8a7afee5b069d87"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{
|
||||
"test": "test_vehicle_maintenance_stock.py",
|
||||
"sha256": "89a3c9e1bae2772611981051ae384aa4db86c3f1df8c9c4ae053f2db9cedd5eb",
|
||||
"exit_code": 0,
|
||||
"log": "test_vehicle_maintenance_stock.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_terrain_support_stations.py",
|
||||
"sha256": "42fcec2c3141b49a44a791fca41512dc4b29777816b4c7a025b5b810b9be896f",
|
||||
"exit_code": 0,
|
||||
"log": "test_terrain_support_stations.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_item_station_lifecycle.py",
|
||||
"sha256": "7f9ee7ecb3eb072c58de214764e0d2699a30e8d00a4462a78597776ef012a889",
|
||||
"exit_code": 0,
|
||||
"log": "test_item_station_lifecycle.py.log"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"result": "no demonstrated new defect; no patch proposed",
|
||||
"head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"scope": "Player repair/refuel eligibility, interrupted finite consumption, current successor stock/station lifecycle and terrain handover. Epinephrine excluded.",
|
||||
"current_source_hashes": {
|
||||
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a",
|
||||
"addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
|
||||
"docs/vehicle-maintenance.md": "80a6b74cf090bcd0fe81a43d5637e915436edbd7d6fff6728007a67355110305",
|
||||
"docs/vehicle-maintenance-source-evidence.json": "c84283c91ef554d8c6ded79ae9aecdfe00ad6922a150d4733260dc7a5a3d2fa2"
|
||||
},
|
||||
"reference_source_hashes": {
|
||||
"/home/jakub/devel/escapistsrereintroduced/.local/ai-delegation-18-research/script-diff-v1.8.0.10/scripts/Game/UserActions/SupportStations/SCR_BaseUseSupportStationAction.c": "a8f8e3057bdd878b1a1ab57a9350f543e2d0487b87adfd0f11ceaff15c43a0e4",
|
||||
"/home/jakub/devel/escapistsrereintroduced/.local/ai-delegation-18-research/script-diff-v1.8.0.10/scripts/Game/UserActions/SupportStations/SCR_RefuelAtSupportStationAction.c": "376bbdcc9362d723976fae91cd75aa35ede4825f4844847f39927b89c36a464a",
|
||||
"/home/jakub/devel/escapistsrereintroduced/.local/ai-delegation-18-research/script-diff-v1.8.0.10/scripts/Game/Components/SupportStation/SCR_FuelSupportStationComponent.c": "e90b64e2bf097fc1b968849d7a7afa1970db6c4eee70acb9684d1c479ecb4571",
|
||||
"/home/jakub/devel/escapistsrereintroduced/.local/ai-delegation-18-research/script-diff-v1.8.0.10/scripts/Game/Components/SupportStation/SCR_BaseDamageHealSupportStationComponent.c": "374378deb8d3d838a92c8caca371c34101320e6e8aa3c3c2d8911a7e26976895",
|
||||
"/home/jakub/devel/escapistsrereintroduced/.local/ai-delegation-18-research/script-diff-v1.8.0.10/scripts/Game/Components/SupportStation/SCR_RepairSupportStationComponent.c": "973430dbea58fd3f74ded49aee23c506d7962004013b89093682507f4c844002"
|
||||
},
|
||||
"reference_limit": "Retained vanilla script-diff-v1.8.0.10 files read for call-path context; not claimed newly extracted from or matched to the currently installed engine.",
|
||||
"observations": [
|
||||
"Current successor does not replace repair/refuel action eligibility or execution algorithms; it authors finite stock and extends station initialization/cleanup and terrain takeover registration.",
|
||||
"Retained native PerformAction refreshes references then rechecks shown/performed eligibility on authority before OnExecutedServer. No successor callback schedules deferred duplicate repair/fuel grants.",
|
||||
"Retained native fuel execution clamps by provider fuel/flow and target free capacity, then debits the observed target fuel delta; no new successor quantity override was found.",
|
||||
"Retained native repair validity rejects no eligible damage/DoT, and execution checks finite supply consumption before applying healing; no demonstrated ordinary interleaving invalidates that sequence.",
|
||||
"Native movement, interruption timing, held-item transitions, actual resource debits and remote replication remain unqualified by this audit."
|
||||
],
|
||||
"checks": [
|
||||
{
|
||||
"test": "test_vehicle_maintenance_stock.py",
|
||||
"sha256": "89a3c9e1bae2772611981051ae384aa4db86c3f1df8c9c4ae053f2db9cedd5eb",
|
||||
"exit_code": 0,
|
||||
"log": "test_vehicle_maintenance_stock.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_terrain_support_stations.py",
|
||||
"sha256": "42fcec2c3141b49a44a791fca41512dc4b29777816b4c7a025b5b810b9be896f",
|
||||
"exit_code": 0,
|
||||
"log": "test_terrain_support_stations.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_item_station_lifecycle.py",
|
||||
"sha256": "7f9ee7ecb3eb072c58de214764e0d2699a30e8d00a4462a78597776ef012a889",
|
||||
"exit_code": 0,
|
||||
"log": "test_item_station_lifecycle.py.log"
|
||||
}
|
||||
],
|
||||
"writes": "Only audit JSON/logs in scratch; no source, original, native, staging or publishing changes."
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: catalog-independent cleanup removes original subscriptions once, handles never-initialized/preload items, preserves live validation and opted-out/editor behavior
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: support registrations survive takeover on both peers, deduplicate, skip invalid stations, update item cleanup and clear on world teardown
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"conclusion": "No concrete reproducible map/discovery visibility defect established in bounded review. No proposal created.",
|
||||
"source_findings": [
|
||||
"Local marker updater runs every1500ms on nondedicated surfaces; absent player controller or manager/config causes a retry, not a permanent readiness latch. Replicated Knowledge and Prepared are consulted each update.",
|
||||
"Unknown/rough/identified and show-all changes alter displayed knowledge and refresh exact label/icon/quantized position. Prepared=false removes the marker; source OnDelete removes scheduled callback, stops/removes owned presentation and unregisters location.",
|
||||
"Existing unchanged marker refresh invokes presentation Refresh even on the data-cache fast path; native map close/reopen or canvas/config/container replacement recreates only the owned widget. Stop removes subscriptions and widget.",
|
||||
"Position fast path assumes a stationary location. Ordinary site roots are placed before preparation and no runtime base-route relocation path was found; hypothetical moving arbitrary root is not treated as a demonstrated gameplay bug.",
|
||||
"Location identity and preparation replication callbacks re-register sites; review did not establish a native ordering failure for ordinary new joins. Native remote join/streaming timing is not proven by source inspection."
|
||||
],
|
||||
"existing_coverage_inspected": [
|
||||
"test_site_map_visibility.py actual updater covers delayed manager readiness, hidden/rough/exact, show-all toggle and Prepared removal.",
|
||||
"test_objective_map_presentation.py actual presentation covers repeated starts, reopen, surface replacement, missing resources retry and exact subscription cleanup."
|
||||
],
|
||||
"limits": "No native or test execution, no live/original writes, no replicated multiplayer qualification. Prior intel gate behavior not re-audited.",
|
||||
"source_sha256": {
|
||||
"ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb",
|
||||
"ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237",
|
||||
"ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
|
||||
"ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"read_only": true,
|
||||
"native_started": false,
|
||||
"private_prefix_exists": false,
|
||||
"host_game": "clear",
|
||||
"source_tools_prefix": "Disposable prefix already has a process (PID 3075479); leave it untouched\nDisposable prefix already has a process (PID 3075481); leave it untouched\nDisposable prefix already has a process (PID 3075485); leave it untouched\nDisposable prefix already has a process (PID 3075488); leave it untouched\nDisposable prefix already has a process (PID 3075505); leave it untouched\nDisposable prefix already has a process (PID 3075518); leave it untouched\nDisposable prefix already has a process (PID 3075525); leave it untouched\nDisposable prefix already has a process (PID 3075541); leave it untouched\nDisposable prefix already has a process (PID 3075559); leave it untouched\nDisposable prefix already has a process (PID 3075569); leave it untouched\nDisposable prefix already has a process (PID 3075572); leave it untouched\nDisposable prefix already has a process (PID 3075597); leave it untouched"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"hq-recovery-reserve-2026-11-05": "b3e8335d47e2cb4c3fe00b50666caf3e2acebfbbfe9506980fae9ba471a6bcee",
|
||||
"objective-guidance-2026-11-05": "1d5d93dd0d3642d0ff9f7befdee7ae828df4f0c9ede8602761ab4d29ced2ee95",
|
||||
"integration-check-2026-11-05": "89475d63ca85991c88eea66a169e0401c92128aacc68ccca938904fa2a3cadcd",
|
||||
"epinephrine-eligibility-2026-11-05": "f33bc6f99cb86eae231e2b6f9d82980b825a0b398fe96494fd7f5c667a936eb9"
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"date": "2026-11-05",
|
||||
"head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"bundle": {
|
||||
"archive": "/tmp/escapistsrereintroduced-development-source-20261105.zip",
|
||||
"sha256": "a7bf20772a3ebc1e115238e6787c25e8dc3c50536bdf6fb2d49c65587d332ccb",
|
||||
"bytes": 12372911,
|
||||
"members": 721,
|
||||
"authored_files": 718,
|
||||
"exact_membership": true,
|
||||
"all_payload_hashes_verified": true,
|
||||
"authored_files_match_live": true,
|
||||
"no_native_build": true,
|
||||
"no_installation_or_publication": true
|
||||
},
|
||||
"code_changed_this_continuation": false,
|
||||
"scope": "Fresh editable development source handoff of current successor, including prior HQ recovery/objective guidance/medical eligibility fixes. No native PAK or installation.",
|
||||
"validation": [
|
||||
"Existing source bundler validates project/dependency graph, metadata, authored resources and approved external references.",
|
||||
"Independently verified exact ZIP membership, each payload hash and all718authored payloads against current files.",
|
||||
"Three existing stock/station checks passed during bounded maintenance review; no demonstrated defect.",
|
||||
"Read-only map and player-action review found no demonstrated defect."
|
||||
],
|
||||
"native": {
|
||||
"started": false,
|
||||
"reason": "Private test prefix absent; read-only existing Tools prefix check finds live processes. No clone attempted and existing processes untouched."
|
||||
},
|
||||
"limits": [
|
||||
"Editable ZIP resides in /tmp and may expire; archived manifest and digest allow verification of a rebuilt unchanged-source archive.",
|
||||
"Previous full-suite and seven medical checks retain their exact prior source scope; no new native/multiplayer/performance qualification.",
|
||||
"Physical extraction/casualty loading and inherited repair/refuel transfer behavior still require live testing."
|
||||
],
|
||||
"original_workspace_modified": false,
|
||||
"installed_or_published": false,
|
||||
"index_unchanged": true
|
||||
}
|
||||
@@ -0,0 +1,720 @@
|
||||
{
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6",
|
||||
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318",
|
||||
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7",
|
||||
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b",
|
||||
"addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6",
|
||||
"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": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f",
|
||||
"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": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a",
|
||||
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072",
|
||||
"addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4",
|
||||
"addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a",
|
||||
"addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1",
|
||||
"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": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3",
|
||||
"addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
|
||||
"addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3",
|
||||
"addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
|
||||
"addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457",
|
||||
"addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8",
|
||||
"addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18",
|
||||
"addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5",
|
||||
"addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4",
|
||||
"addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02",
|
||||
"addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c",
|
||||
"addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
|
||||
"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": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911",
|
||||
"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": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f",
|
||||
"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/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9",
|
||||
"addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537",
|
||||
"addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb",
|
||||
"addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42",
|
||||
"addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068",
|
||||
"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": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
|
||||
"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": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b",
|
||||
"addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8",
|
||||
"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_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d",
|
||||
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a",
|
||||
"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": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "2978e44217db17f03e336088c733d42fe8c8d36479bba1fe40f1cfa55d9e5133",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "63e27e74a5e0b1cf1c82ca776b9166e713f59918da02a5a89fccfd50a1036e9e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "39f7b77029834403ad98ecd398a364bdd5c7c4473c67816240c23160e8dd4080",
|
||||
"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": "6fdca5f333332b7bb2349c4ecd1f11278201770829aeac486a4f2fa7cd4221b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "b8f9df2cccd49d917389a1f872b1dba2704d3de657ac0b236d88f2ec0c4c43c1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "4321499b0d0ac09142fd8ec013f5020d115b64a40a5648169cea9fbb60cca0c2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
|
||||
"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": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637",
|
||||
"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": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e",
|
||||
"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": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661",
|
||||
"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_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "b22d75484cc671392f623fddd175882f9a430227247355f35c0aef4c68a7e0a2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1",
|
||||
"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": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "1d20d0ecd77849ce1cf93bc89516059e25a6cbd89bf4c0ffc098be71f3ccd76b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30",
|
||||
"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": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393",
|
||||
"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": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138",
|
||||
"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_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543",
|
||||
"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": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1",
|
||||
"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": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057",
|
||||
"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": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035",
|
||||
"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_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93",
|
||||
"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_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013",
|
||||
"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": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577",
|
||||
"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": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
|
||||
"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": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f",
|
||||
"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": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89",
|
||||
"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_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "e4622ef82a3a3ecaf251c865786b97ff0f95bbeba147cde848c722708e151b2b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "012cc0f3928d883b99a9922fd3b30cbafc6363a73ee27772e359116e0e6233f7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "75ac61a9ba0d984a5c6d21ad6a020bb1562914ab09dafac8a80e822f0af77611",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a",
|
||||
"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": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27",
|
||||
"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_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c",
|
||||
"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": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d",
|
||||
"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_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68",
|
||||
"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": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51",
|
||||
"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_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "ee8e5f0483ad738f6254adcd66e71ad4872fd000c92f44405c4dcc0453a40308",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10",
|
||||
"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": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb",
|
||||
"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": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb",
|
||||
"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": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb",
|
||||
"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_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "f24f92d0f5d2e6f29c5c80562bf1ecf10c050433872de42956d578b329855bdf",
|
||||
"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": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
|
||||
"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_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
|
||||
"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_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
|
||||
"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": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
|
||||
"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_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
|
||||
"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_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "01007951eea6a4eb980c3d88f3aad10219ae54f8d4f9982c40922edaa9d55300",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba",
|
||||
"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": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6",
|
||||
"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": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733",
|
||||
"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_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427",
|
||||
"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": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957",
|
||||
"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": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf",
|
||||
"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_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26",
|
||||
"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_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2",
|
||||
"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": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147",
|
||||
"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": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d",
|
||||
"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": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869",
|
||||
"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_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae",
|
||||
"addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798",
|
||||
"addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3",
|
||||
"addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad",
|
||||
"addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14",
|
||||
"addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e",
|
||||
"addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c",
|
||||
"addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816",
|
||||
"addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc",
|
||||
"addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720",
|
||||
"addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453",
|
||||
"addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660",
|
||||
"addons/core/UI/layouts/ERR/AdminMenu.layout": "a9afb8957e26738df5ca48a6de0ebd57dd14a10046fd136b5cb9c858ef79e584",
|
||||
"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": "942e33bf2e08550446b40bcac31fb4504b7d8c717a42c196f54bf4025c72706c",
|
||||
"addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout": "6d364ce48158b90abd2185ca87ee27b095d0f7a5c8d59a0c65940e4be5488ac3",
|
||||
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
|
||||
"addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d",
|
||||
"addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79",
|
||||
"addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3",
|
||||
"addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e",
|
||||
"addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a",
|
||||
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
|
||||
"addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615",
|
||||
"addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115",
|
||||
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
|
||||
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a",
|
||||
"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,27 @@
|
||||
{
|
||||
"finding": null,
|
||||
"scope": "Current mission-owned admin/chat transport authorization, controller replacement, mission scope and late item delivery. Settings persistence excluded.",
|
||||
"observations": [
|
||||
"Every command/snapshot/log and live Tick calls Authorize: server authority, captured current mode, exact manager/controller binding and current admin role.",
|
||||
"Server transport refuses terminal mission, nonpositive token, changed token within admitted mission and nonincreasing token across known modes; owner responses pass local current-controller/current-scope acceptance.",
|
||||
"Player tools additionally require active current mode, reciprocal controlled entity and roster CurrentActor; body change and revocation stop prior tools and restore owned damage state.",
|
||||
"Controller-owned grant state retains same-body unresolved insertion quarantine across authorization session replacement. New body discards old callback ownership; late completion cannot import into new body.",
|
||||
"Chat teardown removes its callbacks and cannot close replacement controller menu; menu polls close on mode/controller change."
|
||||
],
|
||||
"coverage": "Inspected existing actual-method authority/token/rate, chat ownership, grant callback and journal routing tests. No tests executed.",
|
||||
"limits": "No remote RPC/native network scheduling proof. No speculative rewrite or new regression proposed without a demonstrated ordinary code path.",
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "b8f9df2cccd49d917389a1f872b1dba2704d3de657ac0b236d88f2ec0c4c43c1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "6fdca5f333332b7bb2349c4ecd1f11278201770829aeac486a4f2fa7cd4221b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "2978e44217db17f03e336088c733d42fe8c8d36479bba1fe40f1cfa55d9e5133",
|
||||
"tests/test_admin_session.py": "6e1850c625e18460a5d64ccbadac992b663a46bd612fcc16b6006f19b3014896",
|
||||
"tests/test_chat_client_ownership.py": "c559dbda1af996455038da9eeb5ffcfc6332da9b93082da8ad3071f5d72b8bdf",
|
||||
"tests/test_admin_player_tools.py": "7520c768b760ef3a03dd2f17376077fc17695360a89f91df88af924899a74517",
|
||||
"tests/test_admin_tick_delivery.py": "8f61a6aaf07b0c41df2f415a1956d8f09fe61a7d4f256775ca62511030937a5d"
|
||||
},
|
||||
"live_edits": false,
|
||||
"native_runs": false
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,881 @@
|
||||
# Current development status
|
||||
|
||||
**5 November 2026 — strong injectors reject treatment with no benefit:** a
|
||||
conscious, nonbleeding player with only mild blood loss could be offered combat
|
||||
epinephrine even though its effect left that condition unchanged. Blood-only
|
||||
eligibility now uses the same native fainting threshold as the existing effect.
|
||||
Unconscious patients remain eligible for its waking effect, and bleeding,
|
||||
resilience loss and physical injury treatment remain available. Standard
|
||||
injectors, treatment strength and finite supplies are unchanged.
|
||||
|
||||
Seven affected medical/lifecycle regression programs pass on unchanged final
|
||||
inputs. The new actual-method case fails against the prior source; a separate
|
||||
control verifies unconscious treatment remains accepted. The earlier full-suite
|
||||
checkpoint predates this two-file code/test change. No engine run was attempted:
|
||||
the established private prefix is absent. Native consumption/animation, manual
|
||||
play, multiplayer and FPS remain unverified. Existing missions, installed builds,
|
||||
Git index and earlier evidence were preserved; nothing was published.
|
||||
[Fix, independent review and evidence](evidence/epinephrine-eligibility-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — full offline integration check restored:** the complete
|
||||
repository validator passes on 1,229 unchanged recorded input files, including
|
||||
the earlier HQ recovery-hold and objective-guidance changes. Two stale test
|
||||
contracts were repaired: observer ownership doubles now expose the committed
|
||||
hint debounce/quiet-call interface, and preparation checks expect the committed
|
||||
120-second results countdown. Gameplay code and the countdown itself are
|
||||
unchanged by this continuation. Current terrain-takeover documentation agrees.
|
||||
|
||||
Initial sandbox socket, observer compilation and obsolete countdown failures
|
||||
remain archived. Independent base-loop reviews found no demonstrated defect in
|
||||
intel progression, radio occupancy or reconnect/partial-result identity. This is
|
||||
offline validation only. No engine was launched; this continuation did not change
|
||||
installed builds or publish. Manual escape, multiplayer and FPS acceptance remain open.
|
||||
[Exact inputs, failures and results](evidence/integration-check-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — persistent objective guidance matches progression:** radio
|
||||
search instructions now explain keeping undeciphered documents and identifying
|
||||
other distinct non-radio sites first; starting clue markers do not count. This
|
||||
replaces the misleading promise that collecting more starting folders alone
|
||||
reveals the radio. The guidance stays conditional because the server owns the
|
||||
round's configured requirement. Identified-radio instructions and close-view
|
||||
identification remain available. The airborne extraction objective now states
|
||||
30 continuous seconds for all rescue transports, matching the current rule.
|
||||
|
||||
The player-route guide is updated. Four existing objective/intel/rescue checks
|
||||
pass unchanged on the recorded inputs. Only wording changed; native UI rendering,
|
||||
multiplayer and performance were not tested. No engine was launched, installed
|
||||
builds were not replaced, and the earlier HQ fix was preserved.
|
||||
[Evidence](evidence/objective-guidance-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — depleted squads can receive their recovery hold:** HQ already
|
||||
planned a reserve hold after a withdrawal reached shelter, but its radio delivery
|
||||
gate rejected that order when the squad had no ammunition. Delivery now permits
|
||||
that hold only for a coordinated squad whose existing judgment still requires
|
||||
recovery. Ordinary tactical reserve and attack orders retain the ammunition gate;
|
||||
exact task identity, current belief, expiry and force-ownership checks still apply.
|
||||
|
||||
Nine focused HQ regression programs pass on unchanged relevant inputs, including
|
||||
actual delivery and coordinated-admission methods; the prior source compiles but
|
||||
fails the new recovery-hold assertion. Eight base-loop regressions also passed
|
||||
before the change. This is a source-only correction: native radio/physical movement,
|
||||
multiplayer and performance remain unverified. No engine was opened, and this
|
||||
continuation did not install, publish or alter original missions. Concurrent garage
|
||||
work was preserved. [Evidence](evidence/hq-recovery-reserve-2026-11-05/report.json).
|
||||
|
||||
**7 October 2026 — shorten the initial airport survey:** the latest live
|
||||
Chernarus log spent 48.5s between terrain-survey start and airport completion,
|
||||
then admitted the player after the prison/aircraft and client scene were ready.
|
||||
The survey previously processed one 2km tile per 250ms scenario tick. It now
|
||||
batches up to eight tiles, yielding after 4ms of work between native queries.
|
||||
It still completes the full survey and retains navigation, clearance and spawn
|
||||
protection checks. Isolated Nogova comparison: airport survey 21.2s → 7.0s;
|
||||
spawn-ready 27.5s → 13.1s. All 26 sites completed and all 13 native assertions
|
||||
passed, with zero script errors. Scheduler/airfield policy checks and the source
|
||||
bundle preview passed. These are single random-placement runs, not an FPS
|
||||
benchmark or live Chernarus validation. Initial engine terrain loading and the
|
||||
startup map redirect are unchanged. Not published or deployed. Evidence:
|
||||
[`airport-survey-batching-2026-10-07/report.json`](evidence/airport-survey-batching-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — configurable field-site population:** ordinary rounds now
|
||||
request 12 camps and six hospitals, for 26 total mission sites. The new
|
||||
**Forces → Configure sites** page saves camps (1–16) and hospitals (1–8) for
|
||||
the next round. Old settings files receive the new defaults. Required objectives,
|
||||
initial radio-clue sources and discovery/intel rules are retained; extra locations
|
||||
use background generation and may be omitted if safe placement is unavailable.
|
||||
Above eight field sites, the original 32 fixed guards and 16 mobile soldiers are
|
||||
shared across them. The first unbudgeted expansion stalled during guard/scout
|
||||
preparation; the budgeted run completed all 26 sites and scouts, with 13 native
|
||||
assertions passed and zero script errors. Nogova spawn admission opened at 27.5s,
|
||||
background preparation completed at 100.8s. Min/max definitions validated; physical
|
||||
maximum-density placement, connected-client UI and FPS were not tested. Focused
|
||||
settings, menu-routing and roster-budget regressions passed. Not published or
|
||||
installed on the live server. Evidence:
|
||||
[`site-population-2026-10-07/report.json`](evidence/site-population-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — protect loading prisoners:** newly created admission bodies
|
||||
now have a server-owned damage protection lease for the scene-replication,
|
||||
inventory and native asset-preload wait. The final verified handover restores
|
||||
damage; rejection, timeout cleanup, disconnect, round cancellation and discarded
|
||||
tickets release the lease as well. It preserves a pre-existing disabled damage
|
||||
state and never heals or grants another life. Existing-body reconnect handoff is
|
||||
unchanged; this protects newly spawning characters, not offline reserved bodies.
|
||||
Eight isolated engine checks passed: native damage is blocked while held and the
|
||||
same request damages the actor after release; duplicate release, prior protection
|
||||
and ticket destruction behave correctly. Scene/timeout/lease policy tests and
|
||||
native compilation passed. No connected-client playtest was performed. Evidence:
|
||||
[`spawn-loading-protection-2026-10-07/report.json`](evidence/spawn-loading-protection-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — progressive mission generation:** ordinary rounds now admit
|
||||
players once the prison (or crash start), its finite supplies/guards, and the
|
||||
extraction helicopter are ready. The existing per-player replicated-scene,
|
||||
inventory and native asset-preload gate still withholds control until its final
|
||||
client verification; timeout rejects/retries instead of assigning an empty scene.
|
||||
Remaining terrain searches continue in bounded
|
||||
slices; camps are prepared one at a time, followed by scouts, roadblocks and
|
||||
support initialization. Background work runs even with no connected players.
|
||||
Each late site is committed into the existing mission only after stock and guards
|
||||
are ready; unfinished locations stay out of discovery/intel selection. Generic
|
||||
folders are retained when no target exists yet, and late RevealOnEscape sites
|
||||
catch up if players already escaped. Sites within 200m of a living player defer
|
||||
creation. Stopping the round cancels unfinished work without rolling back committed
|
||||
sites. Optional failed sites can be omitted only while required objectives and
|
||||
accessible radio clues remain valid; required failures end the round explicitly.
|
||||
Native 1.8.0.13 Nogova test: spawn-ready at 25.4s, all 16 sites and remaining
|
||||
preparation complete at 82.7s, nine checks passed and zero script errors. Ordinary
|
||||
Everon cancellation test: spawn-ready at 5.7s; partial site cleanup preserved the
|
||||
prison and committed sites, no later generation occurred. These are isolated
|
||||
server-side tests, not a connected-client or FPS benchmark. Evidence:
|
||||
[`progressive-generation-2026-10-07/report.json`](evidence/progressive-generation-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — checkpoint mine laying:** quiet roadblock guards can now make
|
||||
up to four finite off-road placement attempts per post, using original carried
|
||||
PMN4s and the existing mine inventory chance. Jobs start during ordinary HQ ticks
|
||||
(after prison escape), with at most two checkpoint engineers working at once.
|
||||
Every nearby road edge has a 15m exclusion margin; the defend area plus a 20m
|
||||
buffer stays clear. Original hold orders, finite inventory/callback custody,
|
||||
continuous preparation, engineer withdrawal and friendly clearance remain required.
|
||||
Combat, reassignment, custody loss or a 180s deadline cancels placement. The working
|
||||
guard gets a temporary native AI activation/LOD lease, restored on completion.
|
||||
Known checkpoint mines steer friendly foot AI around a safety circle, preserving
|
||||
individual destinations through the detour and cancelling on a changed group order.
|
||||
Players, mine triggers and blast damage are unchanged. Moved/disarmed/destroyed
|
||||
mines lose their stored avoidance entry. This is local steering with physical
|
||||
corridor checks, not an engine-wide navmesh exclusion or friendly immunity.
|
||||
Six focused regression programs and the development source bundle check pass.
|
||||
The isolated Reforger 1.8.0.13 Nogova run placed and armed eight distinct carried
|
||||
mines with zero script errors; a separate crossing probe verified friendly detours
|
||||
around live mines: all three started crossings completed, with 10.06–11.86m
|
||||
minimum clearance and their mines still armed. The final inside-danger-area
|
||||
wait safeguard was native-compiled separately. See [native evidence and limits](evidence/roadblock-mining-2026-10-07/report.json).
|
||||
Not published or installed on the live server.
|
||||
|
||||
**7 October 2026 — editor registration and item-catalog lifecycle errors:** terrain
|
||||
takeover now reuses an existing editor and waits for a valid, distinct player
|
||||
replication identity before creating a missing one. An 80-attempt retry only
|
||||
visits missing editors and cancels on mode detach/end. Normal host ownership and
|
||||
native administrator permissions remain intact. Item-station cleanup records
|
||||
successful native subscriptions and releases their original owners independently
|
||||
of the catalog; transient preloads without a catalog do not initialize a gameplay
|
||||
station. Main-world setup errors remain visible.
|
||||
Five focused regression programs pass. In the isolated 1.8.0.13 Nogova fixture,
|
||||
the previous source reproduced four catalog errors and two failed cleanup checks;
|
||||
the fixed source passes all seven native checks with zero script errors. The
|
||||
fixture includes real kit creation/deletion and kit-local catalog expiry with the
|
||||
global catalog unchanged. Connected two-player restart still needs live validation.
|
||||
These are source fixes, not a published/deployed update; the running server was
|
||||
only inspected. [Evidence](evidence/server-lifecycle-fixes-2026-10-07/report.json).
|
||||
|
||||
|
||||
**7 October 2026 — configurable building guard density:** Forces → Configure
|
||||
guards groups the existing 0–16 soldiers-per-site control with every 1st/2nd/3rd/4th
|
||||
eligible compound (new default: every third) and hold/half-to-HQ/all-to-HQ choices.
|
||||
Settings persist in the unified mission config and are frozen at round setup.
|
||||
Skipped compounds stay skipped for the round; fixed guards retain the existing
|
||||
HQ reservation and reporting path. Site logs include density and HQ mode.
|
||||
Four focused regression programs and isolated 1.8.0.13 script compilation pass.
|
||||
The revised UI and live mission behavior still need playtesting; source only,
|
||||
publication remains with the user. See [guard settings](town-garrisons.md).
|
||||
RKS #2 logs were read after explicit approval of read-only sudo: the last played
|
||||
round spawned 72 object guards (36 fixed/36 responders) plus 18 town soldiers.
|
||||
Two editor-manager registration exceptions occurred at 14:00:58 UTC during terrain
|
||||
takeover; the process continued. Repeated missing entity-catalog errors remain.
|
||||
No live settings were changed and the server was not restarted.
|
||||
|
||||
|
||||
**7 October 2026 — spectator scope view:** first-person camera samples now carry
|
||||
bounded cosmetic scope identity, magnification, vertical reticle offset and
|
||||
illumination. Standard 2D/PiP optics use their authored reticle in a private
|
||||
full-screen spectator display; ordinary first-person poses are unchanged.
|
||||
Weapon/sight identity matching, stale-view fallback and scope transition resets
|
||||
prevent retaining another weapon's scope. No weapon input or native ADS callback
|
||||
is invoked on the watched soldier. The display cleans up on orbit, target loss,
|
||||
menus, camera exit and recovery. Eight focused offline regression programs pass.
|
||||
The hidden 1.8.0.13 client creates and renders the PSO overlay, restores visibility
|
||||
on close, and reopens with illumination; both captures were inspected. This is
|
||||
local rendering evidence, not remote multiplayer/aiming proof. The last
|
||||
ignore-cursor flag is separately compiled. See [evidence and limits](evidence/observer-scopes-2026-10-07/report.json).
|
||||
Source only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — solo death camera and starting supplies:** the observer now
|
||||
detects death from the round roster even if native possession keeps the corpse,
|
||||
initially selects the player's own available body, and restores an observer camera
|
||||
displaced by the native death camera. Open Game Master keeps its camera. Dead-body
|
||||
orbit input also works after selecting player view. The existing final-death grace
|
||||
period and round restart timing are unchanged. Mission-menu settings control the
|
||||
shared starting backpack's pistols (0–12, default 5) and spare magazines (0–48,
|
||||
default 8) for the next round. Focused offline regressions cover saved-setting
|
||||
migration/ranges/failure retention, spectator selection and camera recovery;
|
||||
native multiplayer behavior and the revised menu rendering still need playtesting.
|
||||
Source changes only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — AI offloading decision deferred pending measurements:** preserve
|
||||
the isolated Reforger 1.8 probes and evidence. Ownership transfer and worker-local
|
||||
soldier copies did not move native AI updates. Remote native collision-query
|
||||
batches worked, including authoritative waypoint application and timeout fallback,
|
||||
but no useful CPU saving was established. The user wants to collect representative
|
||||
mission performance data before deciding how to use this. Do not integrate an
|
||||
offloading architecture on the strength of the prototype alone. See the
|
||||
[workaround findings and recorded decision](ai-delegation-workarounds-1.8.md) and
|
||||
[HQ measurement instructions](hq-performance-measurements.md).
|
||||
|
||||
**5 October 2026 — review and regression repair:** all **326 registered regression programs pass**. Audio graph resource validation now handles escaped quotes and checks six verified vanilla audio resources; corrupted IDs/paths remain rejected. Stale roadblock, logging and five-vehicle convoy adapters were repaired without changing gameplay scripts. The development source bundle validates 455 authored files. This is offline validation, not a new native-game, multiplayer or FPS result. [Changes and review limits](evidence/review-audit-2026-10-05/review.json).
|
||||
|
||||
**5 October 2026 — configurable interim roadblocks:** Settings now includes a next-round count from 0–12 (default 4; 0 off), saved in the unified server configuration. Native road sampling places finite four-soldier checkpoints with roadside sandbags, selected-faction equipment and normal VirtualHQ reporting/tasking. A bounded optional search cannot hold up startup indefinitely. The final hidden Workbench run placed four posts with sixteen living guards, passed 51 assertions and completed player admission, prison release and radio progression without script/runtime failures. Its thirteen engine resource errors match the earlier spectator baseline. Live multiplayer and other-terrain placement remain playtest work. [Evidence and limits](evidence/roadblocks-2026-10-05/review.json).
|
||||
|
||||
**4 October 2026 — spectator body cycling and player-camera relay:** when no eligible survivor remains, spectators can cycle the current round's player corpses even after native controllers detach. Player view now uses the teammate's sampled camera transform and zoom, with bounded owner/server/observer relay, short interpolation, stale-stream orbit fallback and native head/helmet fading. Nineteen targeted regression programs pass. A hidden/muted native fixture completes 31 assertions with no script/runtime failures and the same thirteen installed-resource errors as its earlier baseline; both view screenshots were inspected. The fixture uses a physical stand-in with injected samples, so real multiplayer latency, HUD and picture-in-picture optics are not claimed as verified or identical. [Evidence and limits](evidence/observer-player-view-2026-10-04/review.json).
|
||||
|
||||
**4 October 2026 — civilian van and terrain Game Master follow-up:** the reported Chernarus session lacked per-car readiness/motion diagnostics. S1203 driving works in an isolated native baseline. Civilian traffic now logs prefab/readiness/progress, starts its stall allowance after readiness, and makes two bounded attempts to restore remaining fixed route orders. The Game Master pause-menu button now follows native permission changes; takeover reconciles already-connected editor managers using native roles. Full repository checks and focused regressions pass; native van recovery after injected order loss and editor event handover pass. Actual multiplayer Game Master UI and the exact reported Chernarus stall still require playtesting. Source is ready for user publication; live server settings and release were not changed. [Evidence and limits](evidence/playtest-traffic-editor-2026-10-04/README.md).
|
||||
|
||||
**4 October 2026 — refreshed UI/BMP development handoff:** [package and editable source](../.build/playtest-2026-10-04-ui-bmp/README.md).
|
||||
|
||||
The combined addon includes the inventory hit-zone callback correction and mounted BMP ammunition-accounting corrections, alongside selectable static crash starts and the existing finite base escape loop. Prison remains the default. **439 authored files, 378 exact PAK payloads and 3 runtime files** match the handoff. The exact code/tests/tools bind to the completed **309-program regression pass**, with any later checkpoint prose changes recorded separately. The exact-source normal escape completes **64 assertions and 1 completion**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of these exact runtime bytes reaches the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**.
|
||||
|
||||
This is an **unqualified development candidate**. Strict packaging/startup failures remain recorded. Synthetic inventory notifications and bounded BMP inventory/status diagnostics do not establish natural-injury/manual UI behavior, physical interception, human escape, multiplayer/JIP/reconnect, comparative FPS or clean release acceptance. Existing missions and all five prior sealed candidates remain unchanged. No installed runtime is replaced and nothing is published.
|
||||
|
||||
**4 October 2026 — inventory callbacks and original BMP radio accounting verified:** the native inventory check completes **96 assertions**, proving all seven original injury widgets receive the real one-argument event once and detach without late updates; it changes no health. The BMP sampler now recognizes the exact WCS inert control's proved structural attachment when its disabled inventory component is absent, while retaining real-weapon custody, completeness and counting limits.
|
||||
|
||||
The corrected original-BMP check completes **60 assertions**, including a complete mounted sample and actual radio delivery into a detached HQ Watch copy. The exact final-source scripted normal escape completes **64 assertions and one round**. All three completed runs have zero script/runtime failures and retain **13 known engine errors**; they ran hidden and muted with unchanged inputs and verified cleanup. All **309 regression programs pass** on unchanged final inputs. The initial 48-assertion/two-failure BMP diagnostic remains archived. Manual injury/rendering, full-fleet or physical interception reliability, multiplayer, FPS and clean release remain unqualified. Original missions, staged work and prior packages are preserved; installed runtime is unchanged and a refreshed development handoff is next. [Correction, exact evidence and limits](evidence/ui-bmp-corrections-2026-10-04/README.md).
|
||||
|
||||
**3 October 2026 — full regression restored; bounded inventory/BMP checks prepared:** all **309 registered regression programs pass** on unchanged final inputs, including the inventory callback correction and previously quota-blocked packaging checks. Only this task's inactive frozen-source duplicate was moved to disk with all 1031 files verified and its original path retained; no other task's temporary files or evidence were deleted.
|
||||
|
||||
The new opt-in inventory check uses the real menu, seven native injury handlers and one-argument blood notifications to test exact forwarding and genuine detach cleanup, without changing health or using desktop input. BMP diagnostics now distinguish missing inventory components, null/conflicting parent slots and failed zero-muzzle classification. Production ammunition/completeness rules and the callback adapter are unchanged. A running user game prevented native execution; the newly prepared checks remain **native-compilation and execution pending**. Original missions, staged work, five sealed packages and installed runtime are unchanged. [Exact checks, source, reviews and next native commands](evidence/inventory-bmp-checks-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — inventory injury callback corrected in source:** a mission-scoped adapter fixes the one-argument damage event/two-argument UI callback mismatch observed in the installed client. It retains native updates and initialization, with owned-subscription cleanup. Focused regression and native compilation pass; actual injury-widget dispatch, rendered UI and multiplayer remain unverified. The installed package is unchanged.
|
||||
|
||||
The full suite stopped after **134 passing programs** on a shared `/tmp` disk-quota failure in offline packaging; **308 programs are registered**, but no full pass is claimed. No unrelated temporary files were deleted. The hidden, muted BMP check now reaches the original slot-4 vehicle and records **48 assertions**, but its numerically valid snapshot remains incomplete at the exact empty-armament slot binding. Two fixture failures and 13 existing engine errors are retained; radio proof is not reached. Source/dependency preservation and private cleanup are confirmed. Original missions, staged work and five sealed packages are unchanged. [Correction, failed checks and next steps](evidence/inventory-hitzone-compat-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP accounting verification strengthened; native run pending:** an opt-in Workbench check now requires complete armed counts from the original slot-4 BMP and that same vehicle’s actual queued and radio-delivered HQ status. The old generic check could be satisfied by a UAZ. The isolated check stops opening hunters and new town admissions before prison exit, while retaining original site troops, automatic convoy target, body cap, finite stock and the fixed proof deadline. Ordinary mission behavior is unchanged.
|
||||
|
||||
All **10 affected regression programs pass** on unchanged inputs; baseline and missing-completeness controls fail as expected. A read-only host preflight found an existing game, so no native run was started and the game was left untouched. The earlier 117/135 refusal correctly enforced the documented shared cap and was not a demonstrated accounting defect. The current crash-start playtest package is unchanged; it predates this diagnostic only. Native BMP accounting/radio proof, physical support reliability, manual play, multiplayer and FPS remain unqualified. [Prepared check and exact evidence](evidence/bmp-native-proof-preparation-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — refreshed crash-start development handoff:** [package and editable source](../.build/playtest-2026-10-03-crash-start/README.md).
|
||||
|
||||
The combined addon now packages the static crash-start choice, memory-based HQ searches, BMP interception implementation and recent configuration/resupply fixes. Prison remains the default. **437 authored files, 376 exact PAK payloads and 3 runtime files** match the handoff. The unchanged code/tests/tools reuse the completed **307-program regression pass** with three recorded subsequent documentation changes. The exact-source scripted default escape completes **64 assertions and one round**; ordinary startup of the exact package reaches the normal mission and local prisoner. Both have zero script/runtime failures, while retaining **13 and 17 engine errors**, respectively. The earlier 66-assertion crash route predates two terrain Game Master edits; that source difference remains recorded.
|
||||
|
||||
This is an **unqualified development candidate**: strict packaging/startup failures, human play, multiplayer, physical support reliability, comparative FPS and clean release qualification remain outstanding. Tests stayed hidden and muted. Prior packages and existing missions are preserved. [Start controls](mission-starts.md) · [Exact handoff evidence](evidence/playtest-refresh-2026-10-03-crash-start/README.md).
|
||||
|
||||
**3 October 2026 — independent crash aftermath start implemented:** Prison remains the default. Administrators can save Prison or Crash for the next round through Settings or `/esc mission start set prison|crash`. The server freezes and replicates that choice before site preparation. Crash creates a successor-owned static wreck scene, admits ordinary one-life survivors on foot and enters the existing intel → radio defence → extraction loop directly. The original finite supplies and shared field map are retained; the measured full wreck footprint and starting area are surveyed before placement.
|
||||
|
||||
The strengthened scripted crash route completes **66 assertions and one round**; the default prison route completes **64 assertions and one round**, both with zero script/runtime failures with unchanged inputs in each accepted run. The crash snapshot predates two unrelated terrain Game Master edits from the user’s other task; the repeated default route checks a frozen copy of the resulting source. The crash check also observes native activation of retained original clue defenders after the scripted approach, without an activation override. All **307 registered regression programs pass** on an unchanged frozen snapshot; the recorded documentation update follows those checks.
|
||||
|
||||
An initial crash fixture wrongly required every distant enemy to be currently active. Its failure remains archived; the corrected Workbench-only probe checks prison-hold release separately from native activation. Native AI behavior was not changed. The first default run completed but was rejected by the source guard because of the concurrent terrain edits; its raw evidence is retained and the default check was repeated against a frozen copy. A complete suite run also detected a concurrent peer edit; all 307 programs were then rerun on the frozen inputs. Each successful run still retains **13 engine errors**. These hidden, muted fixtures protect and teleport the participant, shorten radio defence and move the extraction vehicle: they do not qualify manual play, real flying, remote clients, twelve-player multiplayer or FPS. Static aftermath does not implement an animated helicopter crash or hideout start. Original missions and prior sealed packages are unchanged; a fresh package is still pending. [Controls and limits](mission-starts.md) · [Exact evidence and source](evidence/crash-start-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — latest mission and HQ native checks completed:** the scripted normal Everon escape route completes **64 assertions and one round**, with zero script/runtime failures. A separate corrected HQ fixture completes **172 assertions and one round**: an original two-member mobile team receives the copied **45 m** native search radius, pauses/resumes its queued search under injected contact, and returns to its existing home-defence waypoint on release. A separate six-member permanent guard patrol physically completes five ordered native moves and travels at least 8 m.
|
||||
|
||||
The first patrol attempt remained in the deliberately frozen prison phase; the second reached physical patrol completion but its historical catalog had no mobile responders. Both failures remain archived. Workbench-only setup now opens the prison through the canonical participant API, prepares two finite responders through the normal site owner, and checks their HQ queue before observing the separate permanent patrol. Ordinary mission behavior, movement criteria and deadlines are unchanged. All **305 registered regression programs pass** on the final unchanged snapshot.
|
||||
|
||||
Each completed native run retains **13 engine errors**, so strict clean-build qualification still fails. Both ran hidden and muted with unchanged source/dependency inputs and confirmed cleanup. The normal route preceded the three diagnostic source edits; exact snapshots and deltas are recorded. Radio transit, same-group physical search/resumption, a 110 m search sweep, twelve-player multiplayer and FPS are not established by these fixtures. Original missions and sealed packages are unchanged; the packages still predate recent source changes. [Checkpoint, failures and next work](evidence/hq-native-checkpoint-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — memory-based ground search areas implemented:** ordinary HQ SEARCH orders copy the delivered belief's uncertainty into a 45–110 m native search radius when queued. Delivery validates that snapshot before allocating a waypoint or replacing the previous task, then installs it once. Search centres still follow delivered tracks and coverage; missing-patrol investigations, road/site defence, interception, containment and the separate air-team path retain their previous behavior.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Six focused programs, a failing baseline and two mutation controls cover queue snapshots and delivery guards. The existing 40 m / 30 s negative-search witness remains unchanged; a visited 500 m cell does not prove every part of that area was cleared. The native search grid grows with radius, so runtime cost and FPS remain unmeasured. Native checks were deferred because an existing game was running. Original missions, the index and sealed development packages remain preserved; packages predate this change. [Implementation and evidence](evidence/hq-search-radius-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — configuration recovery and interrupted rifle resupply corrected:** changing one setting can no longer overwrite the only valid backup of another malformed section. Invalid recognized sections block unrelated saves before disk writes; repairing the damaged section preserves the good backup. Ordinary ammunition trips now retain their exact truck and recipient claims while an accepted native move remains unresolved, preventing a second supply job from racing the first. Existing finite stock, radio demand, deadlines and transfer rules remain in place.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Baseline failures and focused controls reproduce both bugs. Repository and source-bundle validation now recognize one audited optional resource-name comparison without adding a runtime dependency, and the existing vanilla character load has verified resource metadata. The initial validation failure remains archived. A separate bounded base-loop review found no new demonstrated defect in radio defence, extraction ordering, player identity or terminal cleanup. Native checks were deferred because an existing game was running; no window, input, audio or process changes were made. Native transfers, manual escape, multiplayer and FPS remain unqualified. The sealed development packages predate these source changes. [Implementation and evidence](evidence/config-supply-recovery-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — original BMP singleton interception implemented in source:** after six confirmed original-unit losses reach HQ through delivered reports, HQ can assign an existing original slot-4 WCS BMP to a road ahead of the remembered track. Fresh delivered crew/ammunition status, original force custody and a real radio command remain required. Its measured vehicle/attachment envelope governs conservative road and destination clearance. Existing UAZ pairs and singleton fallback share the same two-survey budget; no new vehicle, crew or stock is spawned.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Independent reviews cover dispatch, service and geometry integration. Native compilation, physical BMP driving/interception and path reachability remain unverified: a read-only preflight found an existing user game, so no native test was started. The sealed depot-mines package remains unchanged and predates this source feature. Original missions and earlier packages remain preserved. [Source and regression evidence](evidence/bmp-interception-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP ammunition accounting corrected; native confirmation pending:** two verified non-firing WCS/vanilla controls were counted as weapons with missing muzzles. The sampler now excludes only these exact resources when their native muzzle list is empty and reciprocal mounted ownership is valid. Real weapons and unknown or malformed components retain all completeness checks. This corrects accounting; it does not add BMP interception.
|
||||
|
||||
All **302 registered regression programs pass** on the recorded unchanged test snapshot, including its welcome-voice addition. Subsequent concurrent settings, faction/item preferences, terrain preference and welcome-voice edits are preserved live and are not covered by these results. The old sampler compiles and fails the new actual-method assertion; the correction passes ordinary and WORKBENCH controls. Exact installed resource identities were independently audited. One hidden/muted mounted-ammo run compiles but cannot admit an original convoy within its fixed proof window: the shared body budget reaches 117/135, while a convoy requires 25. It records **32 passing assertions, zero completions, two script test failures and fifteen engine-error entries**, including those two failures and thirteen existing entries. No BMP sample was observed; physical accounting and radio delivery remain unverified. Cleanup and unchanged source/external inputs are confirmed. [Source, tests and failed native evidence](evidence/bmp-ammo-accounting-2026-10-03/README.md).
|
||||
|
||||
The sealed depot-mines development package below predates this correction and excludes later live source changes. Original missions and all earlier packages remain preserved. Manual escape, multiplayer, physical logistics, comparative FPS and clean-release qualification remain unfinished.
|
||||
|
||||
**3 October 2026 — depot-mines development handoff:** [package and editable source](../.build/playtest-2026-10-03-depot-mines/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds ten finite startup PMN4 mines across five original camp caches. An existing original responder can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure; magazine expenditure cannot request mines. The loader also selects a compatible eligible porter from the original roster instead of letting an incompatible first member block magazine loading. Exact cargo identities, typed delivery proof, fixed deadlines and cancellation quarantine remain enforced. Earlier finite engineer-post reuse, compatible-stock supply, mine-flank safety and paired interception are included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **301-program regression pass**; 3 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **64 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. The normal-route read-only stock witness confirms **ten distinct original inert PMN4s in five camp caches**; it does not prove courier travel or transfer. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds the exact tested depot-mines snapshot. Concurrent welcome-voice additions and later source or test changes, including the BMP sampler correction, are preserved live but excluded from this frozen handoff and its qualification. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — finite camp mines join the physical supply chain:** five authored Everon camps now start with two PMN4 mines each. The existing original-responder courier can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure. Magazine expenditure cannot request mines. Cargo type, exact identities, native custody and cancellation are checked throughout; the original engineer entitlement and consumed-post rules remain unchanged.
|
||||
|
||||
All **301 registered regression programs pass**. One hidden/muted normal Everon run completes **64 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. The added read-only stock witness confirms **ten distinct original inert PMN4s stored in five camp caches**. Cleanup and unchanged source/external inputs are confirmed. Autonomous porter travel and native mine delivery, mine placement/arming, real multiplayer and comparative FPS remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this feature. The intermittent zero-radius issue remains unresolved. [Implementation and evidence](evidence/depot-mines-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — camp loading selects a compatible original porter:** a camp's first responder can no longer block loading solely because its rifle is incompatible with the remaining cache magazines. The loader searches the bounded original roster for a compatible eligible member before reserving forces or sending a truck hold. Existing military/ownership eligibility now applies during selection as well as execution. No stock, troops, deadlines or native transfer rules change.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the old mixed-roster failure and preserve the existing cancellation and finite-delivery checks. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled; neither the earlier error nor a caller trace appeared. Its cause remains unresolved; no extra reproduction run was made. Physical autonomous loading, multiplayer and performance remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this correction. [Implementation and evidence](evidence/depot-porter-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — ground-supply development handoff:** [package and editable source](../.build/playtest-2026-10-03-ground-supply/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds finite engineer reuse at genuinely newer radio-delivered road posts: four consumed attempts per original force and thirty-two per mission, with every new post more than 160 m from consumed posts. Original stock, native movement envelopes, fixed deadlines and unresolved-removal quarantine remain intact. Ordinary small-arms supply now refuses trucks lacking compatible nonempty original magazines before spending a report or claiming forces. Earlier mine-flank safety, paired interception and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **300-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ skips ammunition trucks that cannot supply the reported patrol:** ordinary rifle-supply admission now checks for compatible, nonempty original magazines before reserving forces, consuming the report or starting its three-minute cooldown. Previously an incompatible belt or launcher round could trigger a futile trip and stop the convoy. Launcher and mine behavior, delivered positions, original stock and later physical transfer checks remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Independent actual-method tests reproduce the old failure and confirm a later compatible original truck can accept the same delivered report. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled, but neither the error nor a caller trace appeared; the earlier intermittent issue remains unresolved. No additional reproduction run was made. Autonomous resupply, real multiplayer and performance remain unqualified. Original missions, the index and existing packages are preserved; the mine-safety package predates this source change. [Implementation and evidence](evidence/resupply-compatible-stock-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineers can reuse remaining stock at a newer delivered road post:** a mission-owned history now permits a second original mine attempt after a genuinely newer radio-delivered assignment. Each original force has four attempts per round and the mission has thirty-two; every new post must be more than 160 m from all consumed posts. Refused attempts remain spent. Active jobs and unresolved removal callbacks block new work for that original force, and copied prior mine sites constrain the next local work area. Original forces, stock, native defend radius and task deadlines remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the previous second-post refusal and catch quota and pending-callback regressions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **one recurring zero-radius script error and fourteen engine-error entries**. Those entries include the same script error plus thirteen installed-resource errors; the exact caller remains unknown. The first native compile exposed a ledger field/type name collision; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. Physical repeated mining, native path avoidance, multiplayer and FPS remain unqualified; straight corridor and sampled-position checks are not a navigation guarantee. Existing missions, the index and the mine-safety package remain preserved. That package predates this source change. [Implementation and evidence](evidence/engineer-posts-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mine-safety development handoff:** [package and editable source](../.build/playtest-2026-10-03-mine-safety/README.md).
|
||||
|
||||
**422 authored files**, **363 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds engineer mine flanks with at least 15 m clearance from nearby road centerlines and more than 200 m from named settlements. Mine dispatch also respects the group’s current native movement envelope before starting and throughout the job. Original items, fixed deadlines and cancellation quarantine remain intact. Earlier paired interception, finite supply and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **299-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native mine placement, arming and detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — engineer mine orders respect their group's native movement limits:** admission and every active phase now require the current group utility to allow the selected mine position. Previously a point could pass terrain/road/settlement checks but still trigger individual movement outside the group's defend or autonomous radius. A refusal uses existing cancellation without consuming an item attempt before admission; an already-spent item remains quarantined and late callbacks cannot arm it.
|
||||
|
||||
All **299 regression programs pass**. Independent tests reproduce the prior failure and reject an admission-only correction that misses later restrictions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. Cleanup and unchanged source/external inputs are confirmed. Native physical mine placement/arming and multiplayer remain unqualified, and the separate intermittent zero-radius error is unresolved. Original missions, the index and previous development package remain preserved. [Implementation and evidence](evidence/engineer-movement-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — zero-radius caller diagnostic compiles; earlier error remains unresolved:** an opt-in Workbench diagnostic now observes five native script callsites, with one shared sixteen-record cap and AI node/script stacks. Superclass arguments, results, output parameters and random draws remain unchanged. It is disabled by default and excluded outside Workbench.
|
||||
|
||||
All **299 regression programs pass**, including independent checks that catch three deliberate diagnostic regressions. One hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. The engine CLI confirms tracing was enabled, but the earlier zero-radius error did not recur and no trace was emitted. Its caller remains unknown; this is not a gameplay fix or proof that the error is gone. No repeated run was used to chase reproduction. Cleanup and unchanged source/external inputs are confirmed. Original missions, the Git index and the previous development package remain preserved. [Diagnostic and evidence](evidence/random-radius-trace-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineer mine sites recover the owned road/settlement exclusions:** the existing finite engineer now selects a flank position 25–60 metres from its delivered road post, at least fifteen metres from every nearby road centerline and outside the shared two-hundred-metre named-settlement exclusion. Previously the selector chose centerline points and omitted the settlement guard. Crossing and narrow roads participate in clearance; invalid or over-budget geometry refuses placement. Original soldiers, carried mines, HQ orders, attempt limits and arming/withdrawal rules are unchanged.
|
||||
|
||||
All **297 registered regression programs pass** on the corrected source. Independent tests reproduce the old placement-policy failure and catch five deliberate regressions; review also corrected tiny-segment clearance and reversed-polyline rounding. The hidden/muted normal Everon route compiles and completes **63 assertions and one round**, with **one zero-radius random-point script error and fourteen engine-error entries**. The fourteen entries include that same script error plus thirteen installed-resource errors; the exact caller is unknown and no evidence attributes it to the mine-site change. Cleanup and unchanged source/external inputs are confirmed. This does not exercise native mine laying or arming, manual play, multiplayer or FPS. The existing development package and original missions are preserved; the package predates this correction. [Implementation and evidence](evidence/mine-flanks-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — bounded production convoy observation added; travel qualification remains incomplete:** the new opt-in `supply-travel` fixture watches the first naturally admitted production convoy, retaining its six vehicles, eight groups and 25 original actors. No enemy orders, budgets, routes or contacts are injected. The canonical scripted observer alone is temporarily protected from damage, with its prior flag restored on cleanup.
|
||||
|
||||
The hidden/muted run compiled and admitted the full original formation. Slots **0, 1 and 5** each moved at least twenty metres from their first-ready positions; slots **2, 3 and 4** did not meet that requirement before the fixed three-minute window expired. The task remained ready and active in combat state. Original crew/seat/record checks passed through the last pre-deadline observation; the deadline poll itself exits before revalidation. The archived result is a failure: **zero completions, one script test failure and fourteen engine-error entries**, including that same test failure and thirteen installed-resource errors. Its 453 assertion-pass calls include 419 repeated probe-presence checks and are not 453 distinct gameplay checks. Cleanup and unchanged source/external inputs are confirmed.
|
||||
|
||||
All **297 registered regression programs passed** before a reviewed strong-reference cleanup correction; four relevant checks were rerun successfully on the corrected source, with other suite inputs unchanged. No production AI change or package refresh was made. The earlier mounted-pair handoff below remains preserved. Full travel, tactics, resupply/interception, human play, multiplayer and FPS remain unqualified. [Evidence and limits](evidence/supply-travel-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mounted-pair development handoff:** [package and editable source](../.build/playtest-2026-10-03-mounted-pair/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds event-time capture cancellation for original active hunter vehicles, the current inherited terrain presentation, and paired radio interception by two original convoy escorts. Both real order receipts precede detours; finite forces, crew identities, stock and fixed deadlines are preserved. Earlier convoy-survivor, radio interruption and finite-transfer corrections remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **294-program regression pass**; four later prose-only documentation updates are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ can dispatch a pair of original convoy escorts:** two armed escorts from the same finite convoy can receive separate radio orders to spaced positions on one actual road ahead of delivered travel memory. Both receipts are required before either detour begins. Interrupted delivery, stale history or loss of an original crew cancels the pair; there is no replacement partner, deadline renewal or new combat force. Single-escort fallback, force limits and the total two-road-survey budget remain intact.
|
||||
|
||||
All **294 registered regression programs pass**. Independent review corrected a feasible-pair selection gap; source tests cover radio arrival order, interrupted delivery, waypoint allocation failure, exact ownership and two-escort column rejoining. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**. The first native compile caught a field/type naming conflict; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. This establishes compilation and ordinary-loop integration, not native physical paired interception, human play, multiplayer or FPS. Existing missions, the Git index and the previous playtest package are preserved; that package predates this addition. [Implementation and evidence](evidence/mounted-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — current mission survives two native end/restart cycles:** the hidden/muted Core fixture passes **21 assertions across two independently initialized rounds**, with **zero script/runtime failures and thirteen retained engine errors**. Each round reaches the prepared prison phase, ends through vanilla `EndGameMode`, shuts down successor services once, cancels queued work and leaves stale callbacks inert. Native end data remains unchanged, no escape is invented, and vanilla reload initializes the second round with fresh state.
|
||||
|
||||
A fresh **292-program regression run passes** on the same **420-file authored source**, including the inherited terrain-presentation update; earlier source bindings are not reused. Cleanup and unchanged source/external inputs are confirmed. This checks local prepared-round termination and restart, not pending native preloads, field-logistics teardown, complete human play, multiplayer or FPS. Strict native failure remains recorded. No production code changed in this continuation; existing missions, inherited work and the packaged handoff are preserved. [Evidence and limits](evidence/active-restart-current-2026-10-03/review.json).
|
||||
|
||||
**2 October 2026 — combined admin and intel reroll fixture completes on current source:** the hidden/muted native run passes **116 assertions and one escape round**, with **zero script/runtime failures and thirteen retained engine errors**. It exercises the administration menu and owner RPCs, then processes **126 original AI at 100% and again at 0%**, both with zero failed or skipped entries inside the unchanged shared ninety-second gate. The checked guards gain/remove their native folders while the player’s exact collected clues and identified radio remain intact. Interrupted radio defence, extraction and results then complete.
|
||||
|
||||
No production source changed. The prior **292-program regression pass** covers identical authored source, tests and tools; this was not a new full-suite run. The earlier 129-actor timeout remains preserved, and this 126-actor result is not an identical-workload comparison. Scripted local legacy-site/admin checks do not establish ordinary input, remote multiplayer, generated-route balance or FPS. Strict engine failures remain; cleanup and unchanged external inputs are confirmed. Three bounded gameplay reviews found no new demonstrated defect. Original missions and the existing package remain unchanged. [Evidence and scope](evidence/intel-reroll-current-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — active hunter capture is remembered at vehicle entry:** when a current admitted player enters an active original HQ hunter vehicle, the server records capture before native entry callbacks can change player ownership. The existing driving/recovery order and HQ registration are released once, even if current occupancy disappears before the next one-second poll. Vehicles, crew and spent deployment allowances remain physical and unchanged. Entering an already-released vehicle does not revoke its former crew’s independent infantry role.
|
||||
|
||||
All **292 registered regression programs pass**. Independent actual-method tests reproduce the old event gap and a missing survivor-retention guard, then pass with the fix. The installed SDK signature and callback ordering are verified. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**, confirmed cleanup and unchanged inputs. This proves compilation and ordinary-loop integration; native capture-event timing, remote multiplayer and performance remain unverified.
|
||||
|
||||
The existing convoy-survivors package is unchanged and predates this source fix. Original missions and inherited work are preserved; nothing was committed or published. [Implementation and evidence](evidence/hunter-capture-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — convoy-survivors development handoff:** [package and editable source](../.build/playtest-2026-10-02-convoy-survivors/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
The snapshot retains eligible original enemy convoy survivors in their existing HQ registration when travel or boarding ends. Exact ownership, roster and force identity still apply; no new soldiers, equipment or contacts are created. Radio-hop interruption, finite-transfer cancellation and deleted-mortar-shell fixes remain included.
|
||||
|
||||
The exact source passes **291 registered regression programs**. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**2 October 2026 — original convoy survivors stay available to HQ:** ending a convoy travel task or passenger-team boarding task now retains the existing HQ registration for eligible original enemy survivors. Ownership, original roster and force identity must still match. Captured vehicles, player/foreign/replacement groups, old missions and stopped HQs keep the unregister path. No new soldiers, registrations, equipment grants or contacts are created. Existing radio/report state remains, while ordinary on-foot eligibility still requires conscious survivors outside vehicles. Unsettled logistics transfers retain their exact reservation until the existing owner settles them.
|
||||
|
||||
Nine focused regression programs pass, including actual release/retention/eligibility and exact-token cleanup. The first native compilation exposed an Enforce class-layer visibility error; the corrected source clears the already-validated unit support flag directly, and its normal Everon route completes **63 assertions and one round, with zero script/runtime failures and thirteen retained engine errors**. The failed compile and its cascade are preserved separately. Native survivor radio delivery, physical retasking, multiplayer and FPS remain unverified. This source change is newer than the preserved transfer-fixes package. [Implementation and evidence](evidence/convoy-survivors-2026-10-02/review.json).
|
||||
|
||||
A separate earlier diagnostic identifies the released troop truck: its vehicle and all nine original soldiers were alive in the original enemy group; the conscious driver was outside the vehicle. That is a failure-time observation, not proof of the earlier release trigger. The convoy witness still fails before movement/interception, with 124 assertions, zero completions and two script test failures. Its raw result remains retained.
|
||||
|
||||
**2 October 2026 — convoy diagnostic admission corrected; interception still unproved:** the isolated legacy convoy fixture now stops unrelated opening hunters before prison release. Its original 60-body cap and 19-body convoy reservation are unchanged. Previously nine hunter crew pushed its committed population above the cap; stopping their driving after spawn would not refund those bodies. Normal mission behavior is unchanged.
|
||||
|
||||
Four focused regression programs pass. One hidden/muted native run now admits all six vehicles and nineteen original crew and confirms finite truck cargo, reaching **124 assertions**. It then fails before the road-movement proof because a vehicle is missing or released: **zero completions, two script test failures and fifteen retained engine-error entries**. The current log does not identify the vehicle or release cause; nearby contact/gunfire does not prove a casualty. No physical interception was reached, and no production crew/order guard was weakened. Cleanup and unchanged source/external inputs are confirmed. The earlier profile-path refusal occurred before launch and is also retained. [Correction, failed evidence and remaining diagnostic](evidence/convoy-fixture-admission-2026-10-02/review.json).
|
||||
|
||||
The latest transfer-fixes runtime candidate is preserved; this later edit affects only its Workbench diagnostic. Coverage descriptions now match that candidate and the implemented finite mine resupply; all release acceptance statuses remain pending.
|
||||
|
||||
**2 October 2026 — transfer-fixes development handoff:** [sealed package manifest and editable source](../.build/playtest-2026-10-02-transfer-fixes/handoff.json).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the sealed source.
|
||||
|
||||
This snapshot includes the radio-hop interruption checks, cancellation guards for finite supply transactions, and the deleted-mortar-shell settlement fix. Earlier terrain/admin integration and bounded HQ travel-history planning remain included.
|
||||
|
||||
The exact frozen source passes **290 registered regression programs**. The normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
Ordinary startup verifies the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded; this is an **unqualified development candidate**.
|
||||
|
||||
Qualification covers this frozen snapshot, not later live edits. Physical resupply/interception, manual UI behavior, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Existing packages and original missions remain unchanged.
|
||||
|
||||
**2 October 2026 — deleted mortar shells no longer block the battery:** a shell deleted during an accepted transfer now settles as a failed loss. The battery can consider its remaining physical shells; surviving items with uncertain custody remain quarantined, with no refund or retry. Four focused regression programs pass, including actual transfer and battery pending methods. Independent testing reproduces the baseline failure. No native or multiplayer run was made for this change, and existing packaged/source checkpoints predate it. [Fix and verification](evidence/mortar-deleted-shell-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — interrupted radio hops and cancelled supply transactions stay stopped:** HQ radio routes now validate both carriers and the existing range rule on each observed sending tick. A carrier losing its radio, consciousness or ownership, or a receiver leaving the link, cannot recover before the deadline and complete that interrupted hop. Delivery and route advancement still wait for the original deadline; radio capability caching remains unchanged.
|
||||
|
||||
Mine resupply, mounted-ammunition pickup and mounted-magazine exchange now preserve cancellation and recheck authority after native submission. An inline callback can no longer turn a stopped or captured transaction into a successful delivery. Committed stock remains spent, and late exact movement can settle uncertainty without a retry or refund. Existing physical-access checks and trace budgets remain intact.
|
||||
|
||||
**Eleven focused regression programs pass** on the changed source. Independent actual-method tests reproduce the old failures and pass with the fixes. Native boundaries are doubled in those tests; no engine session was launched for this increment after detecting an existing Reforger session, which was left untouched. Physical supply, real multiplayer and performance remain unverified. The prior runtime package and sealed source checkpoint are preserved and predate these fixes; refresh the source snapshot before packaging the latest implementation. [Changes, tests and preservation](evidence/radio-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — gameplay-fixes source verified; new runtime package deferred:** the [sealed editable source](../.build/playtest-source-2026-10-02-gameplay-fixes/PENDING-PACKAGE.md) contains **420 authored files** and passes **290 registered regression programs**. The confirmed normal Everon route completes **63 assertions and one round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
The snapshot includes the rifle-supply callback cancellation guard, bounded HQ road-survey fairness, and inherited terrain/admin-item integration. These are source inclusions; manual UI behavior, physical resupply/interception, complete human escape, multiplayer and comparative FPS remain unqualified.
|
||||
|
||||
Packaging was refused before creating its session because an existing Reforger session was detected. It was left untouched, and no new runtime candidate was produced. No native process was left waiting to launch; continuation will recheck host idleness before packaging. The [latest existing playtest package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) remains unchanged. The first normal-route cleanup refusal (a transient compiler process could not be classified), successful retry and package refusal are all [retained with source bindings and review](evidence/source-refresh-2026-10-02-gameplay-fixes/review.json). Strict failures are not waived.
|
||||
|
||||
**2 October 2026 — cancelled rifle resupply stays cancelled:** a synchronous native inventory callback could move the magazine while cancelling the transfer, capturing its donor or changing ownership. Rifle transfers then skipped the guards used by launcher transfers and could record a successful delivery. Both modes now recheck terminal state and authority after submission. Submitted items remain spent; late physical arrival can settle uncertainty without counting a delivery or permitting another attempt.
|
||||
|
||||
Four focused regression programs pass for the current source, including the actual transfer and coordinator, shared finite reservations and convoy budget admission. Independent tests reproduce the old failure and pass with the correction; a mutation also demonstrates the ownership guard. No new engine or multiplayer run was made for this two-line correction. [Fix, tests and preservation](evidence/rifle-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
The earlier **415-file frozen source** now completes **288 registered programs across resumed verification**: 233 unchanged passing records plus 55 freshly passing programs. Preserving an inactive task-owned temporary snapshot elsewhere, with every file verified and its old path retained, freed the required temporary quota. Earlier failed attempts remain archived. This finishes that snapshot's checks; it is not a full-suite result for the current 417-file source. Existing missions, inherited work and the previous development package are unchanged. Physical interception, manual escape, real multiplayer, comparative FPS and release qualification remain open.
|
||||
|
||||
**2 October 2026 — fair bounded HQ road surveying and an opt-in physical interception witness:** HQ road surveying now rotates through delivered tracks while retaining the existing two-survey limit. Previously, the first two eligible tracks with blocked road candidates could consume every pass and permanently starve a later usable track. The actual-method regression fails before the change and passes afterward; independent review confirms the bounded cursor and unchanged radio, force-claim and expiry policy.
|
||||
|
||||
Resumed verification retains **233 passing programs** against identical frozen input hashes and attempts **1 fresh suffix program**; the current resumed result exits **1** after **234 total recorded programs**. Complete passing verification remains unestablished. The initial deadline-test adapter failure, later `/tmp` quota failure and rejected alternate-directory attempt remain archived. Resumed temporary files use `/tmp`; no production/native source changed for this resumption. The final canonical `/tmp` retry stops in `test_native_package.py` with disk-quota errors (Errno 122); the remaining suffix is unverified. No full-suite pass is claimed. The bounded native run records **33 assertions**, **0 completions**, **2 script/runtime failures** and **15 retained engine errors**; runner result: `test-failed`. It does not establish the complete physical interception sequence; preserve the failed or incomplete result and its raw logs. The canonical convoy admission assertion failed before the interception stage; no physical interception was exercised and no admission policy was weakened. Cleanup confirmed: `True`. Strict engine errors are retained. A separate normal-route run of the same source records **63 assertions**, **1 completion**, **0 script/runtime failures** and **13 retained engine errors**; runner result: `smoke-completed` and cleanup confirmed: `True`. This ordinary route does not validate physical interception.
|
||||
|
||||
The opt-in Workbench witness uses two synthetic observation positions in an original soldier’s local inbox. Radio hops, HQ memory/planning, the original escort and physical AI movement remain production paths. It is not natural detection, a human escape, multiplayer, interception effectiveness, FPS or release qualification. No vehicles, crew or stock are created by the new interception stage. The separate [HQ-memory/menu-fix development package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) is unchanged and predates this survey correction and opt-in witness. Concurrent terrain work and older evidence remain preserved. [Source, regression, native and independent-review evidence](evidence/mounted-native-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — corrected HQ-memory/menu-startup development handoff:** [separate package and editable source](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md). 409 authored files, 351 exact PAK payloads and three runtime files match editable source and `handoff.json`.
|
||||
|
||||
A startup guard now skips automatic terrain takeover in mode-less menu worlds; ordinary supported scenarios and unsupported-mode diagnostics keep their existing behavior. This snapshot includes observer recovery/defeat guidance, finite resupply of supported reloadable launchers, and one original armed convoy escort receiving a radio interception order ahead of delivered player travel history. Earlier finite logistics, controller ownership and authored discovery/mine-warning map presentation remain included. The frozen snapshot includes the earlier parallel task’s automatic terrain takeover behavior; newer concurrent terrain-name/presentation edits remain in the live workspace and are not in this package; this handoff’s fresh scripted route targets Everon.
|
||||
|
||||
The exact source passes **285 registered regression programs** and the [fresh normal escape fixture](evidence/native-2026-10-02-hq-memory-menu-fix-normal/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. Fresh ordinary startup of this exact package verifies the normal mission and local prisoner with zero script/runtime failures and 17 retained engine errors. Strict packaging/startup failures remain recorded.
|
||||
|
||||
The initial HQ-memory candidate and its one script/eighteen engine errors remain retained; this corrected package includes the demonstrated menu-world guard. This is an **unqualified development candidate**. Physical launcher delivery, native interception movement/holding/rejoining, a complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Historical standard-map visual checks do not prove physical held-map rendering or current remote UI behavior. No new native flight or prison-input experiments are included. Previous packages, original missions and inherited work remain preserved; nothing was committed or published. [Package hashes](evidence/package-2026-10-02-hq-memory-menu-fix/handoff.json).
|
||||
|
||||
|
||||
**2 October 2026 — HQ motorized interception implemented in source:** one original armed UAZ convoy escort can receive a radio command to hold a road ahead of remembered player travel, then rejoin its convoy. Orders use delivered history and complete original-formation status, share force limits, expire on a fixed deadline and cannot spawn replacements or compete with logistics. [Behavior and limits](mounted-interception.md).
|
||||
|
||||
All **285 registered regression programs pass**. The [hidden/muted final-source normal escape](evidence/native-2026-10-02-mounted-intercept-normal/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. The initial missing-hook compilation failure and test default-path failure are preserved with their fixes. [Implementation, review and preservation](evidence/mounted-interception-2026-10-02/review.json).
|
||||
|
||||
Native driving to the intercept, physical holding/rejoining and interception effectiveness remain unverified; the normal escape run proves compilation and base-loop integration only. Human play, real multiplayer, comparative FPS and clean release remain pending. The existing 416-file playtest package is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published.
|
||||
|
||||
|
||||
**2 October 2026 — recovery warnings and finite launcher resupply:** unconscious spectators now receive the already-replicated recovery, reconnection or thirty-second defeat warning. Hints refresh when that information changes and clear on awakening. HQ can also arrange supply for a reported empty, supported reloadable launcher using original compatible truck stock, after rifle and mounted demand. Disposable launchers remain excluded. [Implementation and review](evidence/recovery-launcher-2026-10-02/review.json).
|
||||
|
||||
All **283 registered regression programs pass**. The hidden/muted [observer fixture](evidence/native-2026-10-02-recovery-warning/report.json) passes **29 assertions**, including accepted recovery text and clearing on wake; the [final-source normal escape](evidence/native-2026-10-02-recovery-launcher-normal/report.json) passes **63 assertions and one round**. Both have zero script/runtime failures and **thirteen retained engine errors**, with confirmed cleanup. The observer run predates the four AI changes but uses exactly the final observer/probe code; the normal route binds all 407 final authored files.
|
||||
|
||||
Actual launcher transfer/reloading, full human play, multiplayer and comparative FPS remain unverified; no release qualification is claimed. The existing 416-file playtest package predates these changes and is unchanged. Original missions and inherited work are preserved; nothing was committed or published. A separate motorized-interception proposal remains design-only.
|
||||
|
||||
**2 October 2026 — current package checked on an isolated Linux dedicated server:** the unchanged [objective-map playtest](../.build/playtest-2026-10-02-objective-map/README.md) loads its exact ten-addon closure, compiles Game scripts and reaches the normal Everon prison phase. The empty server stays under observation for fifteen seconds afterward; there are zero script/runtime failures and **eleven retained engine errors**. [Raw evidence and independent review](evidence/dedicated-packed-2026-10-02-objective-map/report.json).
|
||||
|
||||
This is packaged dedicated startup, **not connected-client, multiplayer, complete-escape, performance or release qualification**. The private supervisor stops its own server with SIGTERM after 72 seconds; graceful shutdown is unproved. Network/PID isolation, no display/audio, cleanup and unchanged package/external inputs are recorded. Three bounded gameplay reviews found no demonstrated defect; no production code changed. All 407 authored files, 416 candidate files, 533 original reference files and 70 inherited unstaged paths remain unchanged. The prior 283-program pass still covers identical source. [Preservation](evidence/dedicated-packed-2026-10-02-objective-map/review.json).
|
||||
|
||||
**2 October 2026 — objective-map playtest package refreshed:** the [new separate development handoff](../.build/playtest-2026-10-02-objective-map/README.md) contains the authored discovery/mine-warning UI alongside the earlier controller ownership, HQ and logistics work. **407 authored files, 349 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-objective-map/handoff.json).
|
||||
|
||||
The unchanged source retains its **283-program regression pass**, **101 map-fixture assertions** and **63-assertion normal escape route**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-objective-map/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained engine errors. Strict packaging/startup failures remain; this is **not a qualified release**. Shared-map evidence remains geometry-only, with physical held-map capture unverified.
|
||||
|
||||
Three bounded parallel reviews of base radio/extraction/guidance, map lifecycle and intel/loot ownership found no demonstrated new defect; no production code changed for this packaging increment. All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, existing working changes and the previous 412-file candidate are preserved; nothing was committed or published. [Review and preservation](evidence/playtest-refresh-2026-10-02-objective-map/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — independent objective map UI integrated:** discovered sites and recovered mine warnings now use authored UI outside the native player-annotation lists. Stable rough positions, exact identification, pan/zoom culling and close/reopen cleanup remain intact. Supported standard-map and shared-map containers replace the rejected Canvas parent. Player annotations and their restrictions are unchanged. [Implementation and limits](objective-map-presentation.md).
|
||||
|
||||
All **283 registered regression programs pass**. The [final hidden/muted map fixture](evidence/native-2026-10-02-objective-map-final/report.json) completes **101 assertions and one completion**, and the [normal escape route](evidence/native-2026-10-02-objective-map-normal/report.json) completes **63 assertions and one round**. Both record zero script/runtime failures; **16/13 engine errors and strict failed verdicts remain**. Earlier compile, Canvas-parent and asynchronous-close fixture failures are retained.
|
||||
|
||||
Read-only private-window captures show the standard question/radio glyphs, reopened marker and long-warning text at the small Workbench viewport. Shared-map checks establish widget geometry/lifecycle only: its disabled render target does not appear in screenshots, and physical held-map capture remains unverified. [Review, raw captures and preservation](evidence/objective-map-2026-10-02/summary.json).
|
||||
|
||||
Source contains **407 authored files**. The existing owner-fixes playtest is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published. Human play, manual map interaction, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — development package refreshed with controller ownership fixes:** the [separate owner-fixes handoff](../.build/playtest-2026-10-02-owner-fixes/README.md) now includes the tested observer/rebinding and chat-menu cleanup corrections alongside the earlier ground-depot/guide features. **403 authored files, 346 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-owner-fixes/handoff.json).
|
||||
|
||||
The unchanged source retains its **280-program regression pass** and **63-assertion normal escape**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-owner-fixes/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**. The earlier route retains thirteen installed-resource errors.
|
||||
|
||||
All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, 61 inherited unstaged paths and the previous 412-file candidate are preserved. No production code changed for this packaging increment. A separate authored map-overlay proposal is not included. Human play, real multiplayer, native controller replacement, physical logistics, comparative FPS and clean release remain unfinished. [Independent review and preservation](evidence/playtest-refresh-2026-10-02-owner-fixes/review.json).
|
||||
|
||||
**2 October 2026 — old chat callbacks preserve the current administration menu:** a retained former local controller now removes only its own chat listener and timers; it cannot close a replacement controller's newly opened panel. Current-owner shutdown and mission-change cleanup remain intact. Independent actual-method tests compile and reproduce the old failure, then pass with the ownership check; all **280 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted normal escape](evidence/native-2026-10-02-chat-ownership/report.json) completes **63 assertions and one round**, with zero script/runtime failures, thirteen retained installed-resource errors, confirmed cleanup and unchanged source/external inputs. This is compilation and ordinary scripted-route evidence, not native controller-replacement or multiplayer qualification. [Review and preservation](evidence/chat-ownership-2026-10-02/review.json). Original missions, inherited changes and the existing 412-file playtest are unchanged; that package predates the observer and chat ownership fixes. Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — partial-clue loss recovery checked on current source:** the [hidden/muted fixed-site fixture](evidence/native-2026-10-02-partial-document-loss/report.json) passes **76 assertions and one completion**. After ordinary partial discovery and deliberate loss of all four targeted documents, distant, unauthorized and obstructed observations remain rejected; a clear close approach identifies the radio once and permits entry into radio defence without replacement clues. This uses the existing LegacySites test catalog, teleports, damage protection and direct mission interfaces, then explicitly ends the round. It does not prove generated-site coverage, held interactions, defence completion or a full escape.
|
||||
|
||||
Zero script/runtime failures, thirteen retained installed-resource errors and confirmed cleanup; source and external inputs remain unchanged. Three bounded parallel gameplay reviews found no demonstrated new defect. No production changes or package refresh were made; the previous 279-program pass covers identical addon source. Original missions, 61 inherited unstaged paths and the existing playtest are preserved. [Review and exact limitations](evidence/base-progression-review-2026-10-02/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — spectator callbacks respect local controller ownership:** a retained old controller can no longer restore its old body camera, close the current editor or create a new spectator view after replacement. It stops only its own monitor and releases its owned presentation state. The existing binder keeps watching for a replacement controller and starts its monitor once, retaining normal stop/end cleanup. Independent actual-method tests reproduce the old fault and verify the corrected behavior; all **279 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted unconscious-camera run](evidence/native-2026-10-02-observer-ownership/report.json) completes **27 assertions and one round**, preserving ordinary unconsciousness, both spectator views, tracking, pose-gap fallback, healing and repeated knockout. It records zero script/runtime failures and thirteen retained installed-resource errors, with confirmed cleanup and unchanged inputs. The first attempt used the wrong Chat fixture selector and failed because the general smoke also ran; that evidence is retained, and the runner now refuses that selector combination before native setup. This is normal camera integration evidence; native controller replacement and real multiplayer remain unverified. [Review and exact limits](evidence/observer-ownership-2026-10-02/review.json).
|
||||
|
||||
Playtest instructions now open the actual combined Core project and point to the latest retained build. Original missions and inherited changes are preserved. The existing 412-file packaged candidate is unchanged and does not yet contain this observer fix. Human play, multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — updated development playtest and objective-hint ownership fix:** the [separate ground-depot/guide handoff](../.build/playtest-2026-10-02-ground-depot-guide/README.md) now includes recent finite camp loading, zero-stock engineer resupply, HQ count optimization and a correction preventing a retained old controller from displaying hints after local ownership changes. It contains **403 authored files, 346 exact PAK payloads and three runtime files**, with matching editable source. [Artifact hashes and strict limits](evidence/package-2026-10-02-ground-depot-guide/handoff.json).
|
||||
|
||||
All **277 registered regression programs pass**; the guide regression independently fails on the old code and passes with the fix. The [fresh source-matched normal escape](evidence/native-2026-10-02-ground-depot-guide/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-02-ground-depot-guide/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**.
|
||||
|
||||
A bounded admission/reconnect source audit found no demonstrated additional bug. [Guide fix and exact validation scope](evidence/guide-controller-2026-10-02/review.json). Native controller replacement, human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted and cleaned up; original missions, 61 inherited unstaged paths and the prior 409-file candidate are preserved. Nothing was committed or published. [Preservation and build review](evidence/playtest-refresh-2026-10-02-ground-depot-guide/review.json).
|
||||
|
||||
**2 October 2026 — finite camp-to-truck ammunition loading:** HQ can assign one available original camp responder to carry one exact original cache magazine to a nearby original ammunition truck after delivered radio orders. Recorded finite magazine expenditure gates admission; separate pickup/delivery proof, unchanged rounds, original identities and bounded reservations prevent refill or replay. Existing tactical/logistics work retains priority. [Behavior and limits](ground-depot-loading.md).
|
||||
|
||||
The full **277-program regression suite passed** before native compilation. The first native run exposed getter formatting and a helper-name conflict; its [failed evidence](evidence/native-2026-10-02-ground-depot-compile/report.json) is retained. After those behavior-preserving corrections, all four relevant programs passed again. The [corrected hidden/muted normal route](evidence/native-2026-10-02-ground-depot-integration/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged source/external inputs are confirmed. This qualifies compilation and normal-loop integration only. [Independent review, mutation evidence and preservation](evidence/ground-depot-loading-2026-10-02/review.json). The existing playtest package predates this feature. Original missions, inherited changes and that package remain preserved. Physical loading, human play, real multiplayer, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — HQ planning removes repeated force counts:** the final pursuit selection pass now counts global commitments once after cleanup/retasking/investigation and increments only for a newly queued order. Separate hunting/global limits, orders and reservations are preserved. A controlled 64-belief/128-unit no-dispatch regression reduces the repeated count scans from over 10,000 unit visits to 128; this measures that subpass only, **not FPS**.
|
||||
|
||||
All **273 registered regression programs pass**. Independent review includes a compiled failing increment-removal mutation and 360 before/after order, reservation and cooldown comparisons. The [hidden/muted frozen-source normal escape](evidence/native-2026-10-02-hq-planner-budget/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged inputs are confirmed. [Scope and preservation](evidence/hq-planner-budget-2026-10-02/review.json). Existing missions, inherited changes and the prior packaged playtest remain preserved; human play, real multiplayer, physical logistics, measured performance and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — finite replacement for empty designated engineers:** HQ can now dispatch one existing convoy PMN4 to an original engineer whose startup designation and settled grant are recorded, using fresh complete delivered zero-stock reports. Unknown inventory does not count as empty; the same original actor and zero/one mode stay fixed through retries. Shared finite stock, spent items and unresolved cross-truck claims remain protected. No replacement mine is spawned and no mine-laying attempt is reset.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, with independent review and a compiled regression failure on the old planning method. The [hidden/muted frozen-source normal route](evidence/native-2026-10-02-zero-mine-integration/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation and normal-loop integration, **not physical mine delivery or placement**. The initial temporary-quota failure, verified recovery and [preservation evidence](evidence/zero-mine-resupply-2026-10-02/review.json) are retained. Existing missions, inherited work and the prior playtest package remain unchanged; the package predates this increment. Human play, real multiplayer, physical maintenance/resupply, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — casualty and terminal-lifecycle fixture corrected:** the old death check incorrectly expected an ordinary protected prisoner to die. The repaired editor-only fixture first verifies living unconsciousness, then explicitly forces fatal loss on its exact registered actor to check spent-life spectator selection, native camera and all-dead defeat. Ordinary game/server casualty protection is unchanged. The [native run](evidence/native-2026-10-02-protected-fatal-lifecycle/report.json) passes **38 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, including the actual hitzone damage cap and deferred processing. Earlier failed native attempts and validation environment failures are preserved; the historical premature Workbench reload was not reproduced and remains unexplained. Tests stayed hidden/muted with confirmed cleanup. Original missions, all inherited working changes and the existing playtest package are preserved. [Repair, independent review and exact limits](evidence/death-fixture-repair-2026-10-02/review.json). Human play, real multiplayer, physical maintenance/mine operations, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — automatic local restart and readmission verified:** the current combined source completes two distinct scripted Everon escape rounds: first victory/results, inherited native world restart, fresh prisoner preload/admission, then the full second route and victory. The [sealed native archive](evidence/native-2026-10-01-two-round-restart/report.json) records **126 assertions, two completions, zero script/runtime failures and thirteen retained installed-resource errors**. An independent raw-log review confirms separate world instances rather than duplicate completion markers. [Sequence and preservation](evidence/native-2026-10-01-two-round-restart/review.json).
|
||||
|
||||
All 400 authored files match the existing convoy-stock candidate. Hidden/muted execution and cleanup are confirmed; original missions, inherited changes and the candidate are unchanged. This qualifies local automatic restart/readmission only: human play, death/spectators, exhaustive cleanup, real multiplayer, comparative FPS and clean release remain pending. No production code changed for this check.
|
||||
|
||||
**1 October 2026 — refreshed development playtest candidate:** the [separate convoy-stock handoff](../.build/playtest-2026-10-01-convoy-stock/README.md) packages the current combined successor: **400 authored files, 343 exact PAK payloads and three runtime files**, with matching editable source. It includes the recent finite mine systems and loaded-truck inventory correction. [Artifact hashes and packaging limits](evidence/package-2026-10-01-convoy-stock/handoff.json).
|
||||
|
||||
A [fresh normal Everon route](evidence/native-2026-10-01-convoy-stock/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-01-convoy-stock/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. The existing 271-regression pass and 202-assertion mine-stock result match this unchanged source. Strict packaging/startup failure verdicts are retained; this is **not a qualified release**.
|
||||
|
||||
Radio-document recovery and restart cleanup audits found no demonstrated new bug; one stale historical fixture heading was corrected. The unexplained death/restart Workbench reload was not rerun or worked around. Full human escape, real multiplayer, mine transfer/placement, maintenance/mounted interactions, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted with confirmed cleanup. Original missions, 61 inherited unstaged paths and prior candidates are unchanged; nothing was committed or published. [Review](evidence/playtest-refresh-2026-10-01-convoy-stock/review.json).
|
||||
|
||||
**1 October 2026 — loaded convoy sampling fixed; physical mine stock observed:** native diagnostics identified deposited cargo exhausting the mounted sampler's shared 128-node queue. Separate structural/cargo budgets now preserve bounded inspection without misreporting cargo as mounted weapons. All **271 registered regression programs pass**, including failing-before/passing-after cases and independent mutations of every budget guard. [Fix and preservation](evidence/mounted-traversal-2026-10-01/review.json).
|
||||
|
||||
The [corrected hidden/muted native run](evidence/native-2026-10-01-mounted-traversal-fixed/report.json) completes **202 assertions and one fixture round**, with zero script/runtime failures and thirteen retained installed-resource errors. One original automatic convoy contains **two callback-proved inactive PMN4s**, whose exact identities and physical custody remain unchanged through real mounted-ammunition radio delivery; 64 primary cargo callbacks also remain settled and unchanged. The earlier diagnosed failure remains archived. Both sessions have confirmed cleanup and unchanged inputs.
|
||||
|
||||
This establishes initial mine stock in one convoy, **not walking resupply, mine transfer or placement**. The prior field-update package is unchanged. Original missions and all 61 inherited unstaged paths are preserved; no commit or publication was made. Full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — bounded convoy mine-stock check:** the new optional read-only fixture preserves the original convoy/batch and checks exact PMN4 callback identities and physical custody around normal radio delivery. All **271 registered regression programs pass** (counted from the current runner). Independent negative controls reject empty stock and missing callback proof. [Review and preservation](evidence/convoy-mine-native-2026-10-01/review.json).
|
||||
|
||||
The single [hidden/muted native run](evidence/native-2026-10-01-convoy-mine-stock/report.json) compiles and passes **39 assertions**, then fails the existing ammunition-truck mounted snapshot completeness check **before the mine assertions**. Two test failures and thirteen underlying installed-resource errors remain recorded. **Native mine insertion and transfer are still unverified.** Source and external inputs are unchanged, cleanup is confirmed, and no second native attempt was made.
|
||||
|
||||
RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared dependencies. A separate installed-catalog/equipment audit found no reproduced automatic-equipment mine duplication defect. Original missions, inherited working changes and the packaged candidate are preserved. Human play, multiplayer, physical maintenance/mounted/mine interactions, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — finite mine top-up integration:** HQ can now authorize one original truck PMN4 for an original carrier with exactly one usable mine, using fresh delivered status and the existing radio/rendezvous controller. Infantry and mounted ammunition retain priority. Startup grants must settle first; uncertain moves retain both claims so another truck cannot duplicate a late delivery. [Behavior and limits](infantry-resupply.md#finite-mine-top-ups-1-october-2026).
|
||||
|
||||
All **268 regression programs pass**. Independent mutation controls demonstrate the startup, one-mine entitlement and cross-truck quarantine guards. The [hidden/muted native normal route from frozen source](evidence/native-2026-10-01-mine-resupply-frozen/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation/base-loop integration only; actual mine approach/transfer remains unverified. [Review and preserved inputs](evidence/mine-resupply-2026-10-01/review.json).
|
||||
|
||||
Original missions and the existing packaged candidate are preserved. Concurrent automatic-equipment edits are retained; the first native run was invalidated by source changes, so the repeated check used a frozen combined-source copy. Its evidence does not silently qualify later source edits. No extra mine grant, stock refill or placement reset was added. Depleted-zero resupply, repeated placement, full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished; the field-update package predates this source change.
|
||||
|
||||
**1 October 2026 — finite optional convoy mine cargo:** each original ammunition truck now attempts up to two PMN4s once, after its primary weapons and ammunition have settled. Separate callbacks keep ordinary stock initialization independent. Exact initial mine identities are frozen with ownership/custody checks; failures, late callbacks and looting never refill the truck. [Behavior and remaining delivery work](supply-convoys.md#optional-finite-mine-cargo-1-october-2026).
|
||||
|
||||
All **265 regression programs pass**, including independent review and a failing mutation that attempts to adopt preexisting stock. The [hidden/muted native normal route](evidence/native-2026-10-01-mine-stock/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This proves base-loop integration, not physical mine insertion or delivery. [Evidence and preservation](evidence/convoy-mine-stock-2026-10-01/review.json).
|
||||
|
||||
No original mission or inherited working change was altered. The existing field-update package is preserved and predates this source addition. A separate radio-to-extraction eligibility audit found no reproduced progression bug. Human escape, real multiplayer, physical maintenance/mounted/mine interactions, comparative FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — carried mine capability reaches HQ:** formation status now carries independent, bounded counts of exact inactive PMN4s from the original owned roster. Unknown inventory/custody stays unknown. Counts and completeness travel through the normal radio route, remain detached in delivered history and appear in the private HQ status journal. Mine scarcity alone creates no extra urgent call, task or replacement stock. [Behavior and scope](hq-ammunition.md#carried-mine-reports-1-october-2026).
|
||||
|
||||
All **264 regression programs pass**, including actual inventory/snapshot methods, interrupted/stale delivery and no-extra-urgency checks. The [native normal route](evidence/native-2026-10-01-mine-status/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is base-loop integration evidence; native mine reporting/placement, replenishment and multiplayer remain unqualified. [Independent review, regression evidence and preservation](evidence/carried-mine-status-2026-10-01/review.json).
|
||||
|
||||
The native run waited for another private test's lock, then stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, unrelated working changes and the packaged field-update candidate are preserved; that package predates this addition. The prior death/restart reload remains unexplained after comparison with exact historical source; no workaround was applied. Full human escape, multiplayer, maintenance/mounted interactions, FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — terminal cargo loss releases convoy holds:** a submitted mounted pickup now settles uncertainty when its exact incoming entity is deleted. A swap requires both original exchange entities to be deleted; damage, capture or one surviving item retain quarantine. Stock stays spent and matching holds can release for later requests using surviving original cargo. [Fix, independent review and preservation](evidence/mounted-terminal-loss-2026-10-01/review.json).
|
||||
|
||||
All **263 regression programs pass**, including failing-before/passing-after actual-method checks. The [integrated normal escape route](evidence/native-2026-10-01-supply-loss/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This verifies compilation and base-loop integration, not physical mounted rearming or terminal deletion.
|
||||
|
||||
A separate pre-fix [death/restart check](evidence/native-2026-10-01-player-death-timeout/review.json) timed out after 30 setup assertions: Workbench reloaded before death/spectator checks, for an unknown reason. Neither death nor restart is qualified by that run. Both sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the packaged field-update candidate remain preserved; the package predates this correction. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — bounded maintenance follow-up:** one hidden/muted run of the unchanged field-update source passes **60 assertions**, including original-can pickup and held equip, then loses the exact-held support-station condition after the fixture's scripted approach. It stops before tank depletion or refuel action; **fuel transfer remains unverified**. Two diagnostic failures and thirteen underlying installed-resource errors are retained, with confirmed cleanup and unchanged inputs. No guard was relaxed and no second attempt was made. [Result and preservation](evidence/native-2026-10-01-refuel-snapshot/review.json).
|
||||
|
||||
Three parallel bounded reviews of HQ memory, base progression and owned-AI settings/equipment found no demonstrated new defect; ten focused regression programs passed. The verified development candidate below remains unchanged. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — field-update playtest candidate:** the [new separate handoff](../.build/playtest-2026-10-01-field-update/README.md) packages recovered mine warnings, recent HQ pursuit/cooldown corrections and consistent Stinger Random commands: **392 authored files, 336 exact PAK payloads and three runtime files**, with matching editable source. All **263 regression programs pass**. The [exact-source normal route](evidence/native-2026-10-01-field-update/report.json) completes **63 assertions and one round** through extraction/results, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-field-update/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Native packaging retains its strict failed verdict despite exact output and exit zero. All sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, prior working changes and previous candidates remain preserved; nothing was published.
|
||||
|
||||
The legacy `hq stinger` alias now accepts/displays Random through the shared parser without rerolling existing equipment. The optional refuel fixture's corrected range reaches the native context, then fails before transfer on its node snapshot. Subsequent snapshot bounds/detachment is regression-tested and compiled by the normal route; **fuel transfer remains unverified**. [Fixes, initial test failure, native failure and review](evidence/field-update-2026-10-01/review.json). Human play, real multiplayer, maintenance/mine/mounted interactions, comparative FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — HQ can replace unavailable pursuit squads:** losing the only assigned squad no longer leaves its abandoned long-distance order blocking other available forces for up to 13 minutes. HQ releases that work, retains surviving active/pending orders and recomputes the hunt's delay. Completed-search quiet intervals remain remembered across later losses, replacement orders and either cleanup order; capacity trims and already shorter holds are preserved. No force or player observation is created.
|
||||
|
||||
Actual-method regressions reproduce the original bug and review-found expiry/order boundaries; all **263 regression programs pass**. The [integrated normal route](evidence/native-2026-10-01-hq-force-loss/report.json) compiles and completes **63 assertions and one escape round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is normal-loop integration evidence, not native qualification of force-loss replacement. [Changes, independent review and preservation](evidence/hq-force-loss-2026-10-01/review.json).
|
||||
|
||||
The separate [bounded refuel run](evidence/native-2026-10-01-refuel-clock/review.json) now confirms original-can pickup, callback/slot custody and held equip, then times out before any refuel action. Its optional reach check is stricter than the inspected native interaction-retention logic; ordinary refuelling failure is **not** demonstrated. Fuel transfer, repair, human play, multiplayer, mounted rearming, comparative FPS and release qualification remain pending. Both native sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the existing packaged candidate are preserved.
|
||||
|
||||
**1 October 2026 — optional refuel diagnostic corrected:** RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared external dependencies. The corrected native action-context fixture compiles, but its [one hidden/muted run](evidence/native-2026-10-01-refuel-context/report.json) stops after 54 passing assertions at its first clock check, before fuel selection or transfer. It retains two script test failures and thirteen underlying installed-resource errors, with confirmed cleanup and unchanged inputs.
|
||||
|
||||
The fixture had reconstructed its start time by adding/subtracting 120000 milliseconds; float rounding could put that value after the current tick. It now stores the original start directly. Actual clock initialization fails before the fix and passes afterward across fractional timestamps. All **263 regression programs pass**. The timestamp fix has not been rerun natively; refuelling, interruption/depletion and repair consumption remain unverified. The fixture is opt-in and does not change ordinary gameplay. Original missions, existing working changes and the packaged handoff are preserved. [Evidence and scope](evidence/refuel-context-2026-10-01/review.json).
|
||||
|
||||
**1 October 2026 — recovered mine warnings:** successful engineer arming can seal a historical 500 m mine warning into the same generic intel folder already carried when that job began. Recovering that exact document adds a persistent warning alongside its existing site clue; objective documents and normal spending remain unchanged. Unknown records stay server-local, and recovery never refreshes live mine or soldier positions. The service is bounded to 32 records and 128 folder bindings. [Behavior and limits](road-interception.md#recovered-mine-warnings).
|
||||
|
||||
All **262 regression programs pass**, including actual sealing/recovery, caps, marker lifecycle and controller/discovery integration methods. Review caught and corrected contradictory exhausted-intel feedback and marker cleanup after list shrinkage. The [integrated normal route](evidence/native-2026-10-01-mine-intel/report.json) compiles and completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. That route does **not** execute physical mine/intel interactions or qualify warning rendering/remote replication. [Review and preservation evidence](evidence/mine-intel-2026-10-01/review.json).
|
||||
|
||||
The run remained hidden and muted, with confirmed cleanup and unchanged inputs. Existing missions and the last packaged handoff are preserved; that package predates this source addition. Human play, multiplayer, physical mine placement/arming, mounted rearming, comparative FPS and release packaging remain unfinished.
|
||||
|
||||
|
||||
**1 October 2026 — refreshed dependency-enabled playtest:** the [new separate candidate](../.build/playtest-2026-10-01-dependency-review/README.md) includes Southern maintenance supplies, HQ reservation/cooldown corrections and finite engineer mines: **388 authored files, 332 exact PAK payloads and three runtime files**, with matching source. RHS, WCS and BMP remain declared dependencies.
|
||||
|
||||
Independent reviews fixed observed foreign mine custody being reaccepted after a nearby redrop, and redundant intel folders flooding global chat. Both have failing-before/passing-after actual-method regressions. All **260 regression programs pass**. The [fresh normal route](evidence/native-2026-10-01-dependency-review/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Review and preservation checks](evidence/dependency-review-2026-10-01/review.json).
|
||||
|
||||
[Ordinary packaged startup](evidence/packed-2026-10-01-dependency-review/archive-review.json) verifies the mission and local prisoner, with zero script/runtime failures and seventeen unchanged installed-resource errors. Native packaging retains its strict failure despite matching output and exit zero. An initial native-tool crash produced no package; [its evidence](evidence/package-2026-10-01-dependency-review-failed/review.json) is retained alongside the fresh retry. All native checks stayed hidden/muted with confirmed cleanup and unchanged inputs. Physical mine placement/arming, mounted rearming, human escape, multiplayer, FPS improvement and release qualification remain unfinished. Previous handoffs and original missions are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — finite engineer mine behavior integrated:** an existing squad
|
||||
holding a delivered HQ road-interception order can use one original carried PMN4.
|
||||
The engineer approaches, prepares for ten continuous seconds, submits one tracked
|
||||
inventory drop and withdraws before guarded native pressure arming. Original
|
||||
actor/task/item ownership, combat cancellation, friendly clearance and retained
|
||||
late callbacks are enforced. HQ permits two simultaneous jobs, 32 retained jobs
|
||||
per round and one new road-site query per tick. No mines or forces are created.
|
||||
[Behavior and limits](road-interception.md#finite-engineer-mines--1-october-2026).
|
||||
|
||||
All **260 repository regression programs pass**. The [final integrated normal route](evidence/native-2026-10-01-engineer-mines-final/report.json)
|
||||
compiles and completes **63 scripted assertions through extraction/results** with
|
||||
zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
**Physical engineer placement/arming and multiplayer are not yet demonstrated**;
|
||||
this route proves base-gameplay integration, not that interaction. Both native
|
||||
runs stayed hidden and muted with confirmed cleanup and unchanged inputs. Original
|
||||
missions, 53 prior unstaged paths and the existing packaged handoff remain preserved.
|
||||
[Independent review and exact evidence](evidence/engineer-mines-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — interrupted HQ orders release their unused delay:** failed or
|
||||
expired radio retasks no longer prolong pursuit cooldowns using an order that
|
||||
never arrived. Active and pending surviving orders keep their own deadlines and
|
||||
waypoints. Two actual-method regressions fail before the correction; all **257
|
||||
repository programs pass** afterward. The [current-source normal escape route](evidence/native-2026-10-01-hq-lost-retask-route/report.json)
|
||||
completes **63 assertions through extraction/results**, with zero script/runtime
|
||||
failures and thirteen retained installed-resource errors.
|
||||
|
||||
The separate [HQ awareness check](evidence/native-2026-10-01-hq-lost-retask/report.json)
|
||||
compiles and passes 53 assertions, then times out waiting to queue its completed-sweep
|
||||
fixture report; that failed qualification is retained. Both runs stayed hidden and
|
||||
muted, with confirmed cleanup and unchanged inputs. The original missions and
|
||||
existing packaged handoff remain unchanged. [Fix, review and limits](evidence/hq-lost-retask-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — bounded maintenance test retained as a failure:** the optional
|
||||
fuel-transfer fixture did not compile because the installed fuel manager has no
|
||||
`GetOwner` method. It executed no gameplay assertions. The entire experimental
|
||||
fixture and integration were removed, restoring the earlier playable source;
|
||||
existing finite maintenance stock and HQ retasking remain unchanged. Native fuel
|
||||
transfer and repair consumption remain unverified. The failed launch and its
|
||||
source snapshot are [retained](evidence/native-2026-10-01-maintenance-refuel/report.json).
|
||||
All 257 repository checks pass again after restoration. No additional native
|
||||
retry was made; the private muted runtime was cleaned up.
|
||||
|
||||
|
||||
**1 October 2026 — live maintenance supplies and safer HQ retasking:** the Southern cache now carries **one finite repair kit (20 supplies) and two fuel cans (five litres each)** alongside its existing weapons and radio documents. The hidden/muted [normal route](evidence/native-2026-10-01-southern-maintenance/report.json) verifies the exact original stock and completes **63 assertions through extraction/results**. Held repair/refuel consumption remains unverified. [Player behavior and scope](vehicle-maintenance.md).
|
||||
|
||||
HQ now reserves a squad's active destination and pending replacement together, preventing another search from taking the old cell while a radio retask is in transit. It retains the active approach bearing during retask admission and still counts each squad once. The bug and a review-found bearing gap both have red-before/green-after actual-method evidence. All **257 repository regression programs pass**. The [integrated-source native awareness/radio run](evidence/native-2026-10-01-hq-dual-reservations/report.json) completes **77 assertions**; only the two HQ files differ from the earlier maintenance-route snapshot. Both runs have zero script/runtime failures and thirteen retained installed-resource errors, confirmed cleanup and unchanged inputs. [Implementation, review and limits](evidence/maintenance-hq-2026-10-01/review.json).
|
||||
|
||||
The packaged candidate below remains unchanged and predates these source improvements. Original reference files and all previous working changes are preserved. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — integrated playtest handoff refreshed:** the [new isolated candidate](../.build/playtest-2026-10-01-base-integrated/README.md) now includes the recent admission, HQ evidence, finite-stock and mounted courier changes: **384 authored files, 329 exact PAK payloads and three runtime files** with matching editable source. All **256 regression programs pass**. Its unchanged addon source exactly matches the retained [55-assertion normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json); no redundant route run was needed. [Artifact hashes and scope](evidence/package-2026-10-01-base-integrated/handoff.json).
|
||||
|
||||
A fresh [ordinary packed startup](evidence/packed-2026-10-01-base-integrated/archive-review.json) verifies normal modules, exact dependency mounts, mission readiness and a local prisoner with zero script/runtime failures. Its seventeen installed-resource errors match the preceding handoff and retain strict failure. Native packaging also retains localization/shutdown and completion-semantics failures despite exit 0 and matching output. All runs stayed hidden/muted with confirmed cleanup and unchanged inputs. The player guide now names the precise gate and vehicle actions. **Mounted physical rearming, full human escape, multiplayer, FPS improvement and release qualification remain unfinished.** Previous packages, the original reference workspace and pre-existing working changes are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — mounted courier integration:** finite mounted resupply is now connected to the existing HQ planner and original convoy stock, with shared infantry reservations, radio-delivered holds, one original non-driver courier, bounded pickup/swap/reboarding and retained uncertain operations. The 256-program regression suite passes; final changed-method checks also pass. The [normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json) completes **55 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. **Physical mounted rearming is not yet demonstrated:** one native trip failed at pickup, another timed out approaching cargo; both journals record original-seat return and hold release. All failures, compiler fixes, source/dependency invariance and cleanup are retained in the [review](evidence/mounted-courier-2026-10-01/review.json). Existing missions and packaged handoffs remain unchanged. [Behavior and remaining work](hq-ammunition.md#mounted-courier-integration-1-october-2026).
|
||||
|
||||
Current source now uses one combined addon. Open `addons/core/addon.gproj` and
|
||||
`Missions/ERR_Everon.conf`; see [single-mod migration](single-mod.md). The older
|
||||
five-addon checkpoints below retain their original scope and do not qualify the
|
||||
merged source.
|
||||
**1 October 2026 — admission timeout and physical HQ evidence:** a delayed preload can no longer bypass the server's admission deadline. HQ rejects stale containment after radio transit, plans only from valid movement headings, reports exact original vehicle positions, and requires an original soldier physically present before reporting a negative search. **251 regression programs pass**. The hidden/muted [normal generated escape route](evidence/native-2026-10-01-mission-hq-fixes/report.json) completes **55 assertions and one round** with zero script/runtime failures; thirteen installed-resource errors retain strict failure. Source/dependency invariance and cleanup are confirmed. A reviewed mounted-transfer second-leg proposal is retained but remains unapplied until the physical courier/HQ coordinator exists. [Changes, evidence and limits](mission-hq-fixes-2026-10-01.md). Existing missions and packaged handoffs remain untouched.
|
||||
|
||||
**1 October 2026 — finite mounted stock and native eligibility:** convoy startup now requests a small, once-only stock matching exact originally installed mounted magazines, after the existing infantry cargo priority. Original identity, callback settlement and physical headroom checks prevent delayed replacement seeding or extra overbooking. Independent review caught and fixed the late-original-callback case. **250 regression programs pass**. The [hidden/muted native run](evidence/native-2026-10-01-mounted-initial-stock/report.json) completes **34 assertions and one round**, finds a real compatible PKM box and gets a successful read-only swap-eligibility result with both slots unchanged. No worker is on foot at the required location and no transfer occurs. Zero script/runtime failures; thirteen installed-resource errors retain strict failure. Cleanup and unchanged source/dependency inputs are confirmed. [Implementation and limits](supply-convoys.md#finite-initial-mounted-stock-1-october-2026). The packaged candidate remains unchanged; mounted physical rearming, multiplayer and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native mounted delivery and cheaper refused convoy startup:** the [production mounted-report fixture](evidence/native-2026-10-01-mounted-delivery/report.json) now completes **56 assertions and one round**, proving original six-root ownership, cargo exclusion and a detached matching snapshot delivered through the real radio path. UAZs report one installed gun each; BMP counts remain explicitly incomplete. One convoy deployed, not the configured three. Zero script/runtime failures and thirteen installed-resource errors are retained.
|
||||
|
||||
New-convoy startup now skips terrain surveys when its source cannot fit the shared body allowance, while reusing already reserved original receipts correctly. **249 regression programs pass**, including actual pool/startup red-before/green-after evidence; no measured FPS gain is claimed. A separate [read-only mounted-slot probe](evidence/native-2026-10-01-mounted-swap-unavailable/report.json) verifies the original PKM loaded slot, muzzle and storage owner, then stops because no eligible compatible cargo candidate is found. It retains 32 passing assertions, two fixture failures and thirteen installed-resource errors; **CanSwap was not called and no transfer occurred**. Final completion wording now keeps eligibility separate from radio proof; its post-run change has executable focused regression evidence. [Review and scope](evidence/mounted-budget-2026-10-01/review.json).
|
||||
|
||||
Both native runs were hidden/muted and confirm cleanup plus unchanged source/external inputs. All 52 pre-existing unstaged file contents are retained apart from explicit test/runner additions; 533 reference sources and previous packages remain unchanged. Physical mounted rearming, manual escape, multiplayer, full-fleet reliability, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — consistent fire-support memory and finite logistics ownership:** a reproduced bug allowed fire-support contacts to infer 30 m/s on-foot motion that HQ memory rejected. Contacts now use the same accepted delivered history as pursuit, retain the original time/position, and leave radio reports unchanged. Infantry transfer now consumes a shared finite-magazine reservation; mounted sampling consumes a read-only original-root query while preserving permanent loss/capture observation. These are physical-rearming prerequisites, not mounted rearming. [Behavior and regression review](evidence/hq-contact-reservations-2026-10-01/review.json).
|
||||
|
||||
All **247 repository regression programs pass**. The hidden/muted [native awareness run](evidence/native-2026-10-01-hq-contact-memory/report.json) completes **61 scripted assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. It verifies compilation and the existing physical radio/memory path; the new movement edge cases have actual-method regression evidence. Cleanup, source/external invariance, all 52 pre-existing unstaged file contents (apart from the added test registration), and 533 reference sources are verified. The packaged alarm-memory handoff below remains unchanged and predates this source checkpoint. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — refreshed combined development handoff:** a [new isolated playtest build](../.build/playtest-2026-10-01-alarm-memory/README.md) now contains matching editable source and package for all recent memory, mounted-reporting and alarm fixes: **377 authored files, 322 exact PAK payloads and three runtime files**. Current source completes **55 normal-route scripted checks** through extraction/result display, with zero script/runtime failures and thirteen installed-resource errors. [Normal-route evidence](evidence/native-2026-10-01-normal-alarm-memory/report.json), [artifact hashes](evidence/package-2026-10-01-alarm-memory/handoff.json).
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-alarm-memory/packed-startup-report.json) verifies the exact dependency mounts, normal modules, ready mission and local prisoner with zero script/runtime failures; the same seventeen installed-resource errors retain its strict failed verdict. Native packaging also retains its localization/shutdown failures despite exit 0 and complete hash-matched output. All native runs remain hidden/muted, with confirmed cleanup and unchanged inputs. The [playtest guide](playtest-build.md) now uses the combined addon and current scenario identity. All 246 regression programs pass for this unchanged source; independent resupply and object-lifetime reviews found no new defect. Existing handoffs, existing missions and all 533 reference sources remain unchanged. Manual play, multiplayer, mounted rearming, performance and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native alarm delivery and mounted low-stock check-ins:** an existing AI witness now demonstrably hears the native alarm event and sends its original-time, coarse anonymous report through the actual radio route into HQ memory. The hidden/muted controlled run completes **55 scripted assertions and one round**, with **zero script/runtime failures** and thirteen installed-resource errors. The earlier active-scene attempt exposed a real memory-ingestion lifetime crash; retaining the sanitized report through ingestion fixes that path, and its failed evidence remains archived. [Native result](evidence/native-2026-10-01-alarm-hearing-retained/report.json), [arrangement and limits](vehicle-security.md#native-alarm-delivery-and-memory-lifetime-correction).
|
||||
|
||||
Complete low mounted magazines can also request early status through the existing scan, shared cooldown and radio gate, without entering carried-ammunition totals or authorizing a refill. All **246 repository programs pass**; independent review found no additional demonstrated base-loop defect. [Mounted behavior and remaining rearming work](hq-ammunition.md#early-mounted-ammunition-check-ins-1-october-2026), [regression/review evidence](evidence/mounted-urgency-2026-10-01/review.json). Human breach input, audible and remote presentation, physical alarm investigation, mounted rearming, multiplayer and FPS remain unqualified. Existing packaged handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**1 October 2026 — conservative movement memory and bounded diagnostics:** HQ no longer infers a stationary/forward track by skipping a contradictory recent sighting. Mounted sampling normalizes exact native slot wrappers to their physical gun before counting it, and convoy startup reports the actual shared-body budget and refusal reason. All **246 repository programs pass**. The first alarm fixture incidentally records mounted UAZ magazines and a convoy refusal at **134/135 bodies, 25 required**; full mounted snapshot/radio proof is still outstanding. [Review and evidence](evidence/hq-followup-2026-10-01/review.json), [memory correction](hq-chronology-and-admission-2026-09-30.md#contradictory-recent-sightings), [mounted correction](hq-ammunition.md#native-slot-wrapper-deduplication-1-october-2026).
|
||||
|
||||
The current-source hidden/muted alarm diagnostic compiles, then correctly refuses emission because the relocated witness is **inactive at native LOD 10**, despite valid group, binding, distance and danger-event configuration. It passes 34 assertions and retains two fixture failures plus thirteen installed-resource errors. No event was emitted in that retry, so native hearing and radio delivery remain unqualified. Both attempts preserve failures, exact source/external inputs and confirmed cleanup. [Alarm fixture limits and next step](vehicle-security.md#native-alarm-hearing-fixture-1-october-2026). The latest packaged handoff below predates these changes and remains untouched; all 533 reference sources are unchanged. No multiplayer, FPS or release qualification is claimed.
|
||||
|
||||
**30 September 2026 — current-source handoff and installed-slot correction:** mounted weapons/magazines now use their exact native weapon-slot or muzzle ownership when ordinary inventory storage is unavailable. The same check protects structural seat admission, while retaining cargo exclusion, original crew/ledger checks and traversal bounds. All **245 repository programs pass**. An independent lifecycle/objective review found no demonstrated additional bug. [Implementation and remaining native scope](hq-ammunition.md#installed-weapon-slots-and-shared-structural-admission), [review record](evidence/installed-slot-2026-09-30/review.json).
|
||||
|
||||
The integrated source again completes **55 normal-route scripted assertions** through extraction/result display with zero script/runtime failures and thirteen installed-resource errors. A [fresh separate development handoff](../.build/playtest-2026-09-30-installed-slot/README.md) contains matching source and PAK: 376 authored files, 321 exact PAK payloads and three verified runtime files. [Ordinary packaged startup](evidence/packed-2026-09-30-installed-slot/packed-startup-report.json) verifies the normal mission and local prisoner, with zero script/runtime failures; seventeen installed-resource errors retain its strict failed verdict. [Native packaging](evidence/package-2026-09-30-installed-slot/package-report.json) also retains localization/shutdown failures despite native exit 0 and confirmed cleanup. All runs remain hidden/muted with unchanged inputs. The bounded mounted fixture still does **not** qualify installed counts or delivery: no production convoy appeared within its 180-second window. Native alarm hearing, mounted rearming, fleet reliability, manual play, multiplayer and measured FPS remain unfinished. Earlier handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**30 September 2026 — local alarm intelligence and structural vehicle sampling:** successful vehicle alarms now emit one tagged native horn event. Eligible nearby enemy witnesses retain the original observation time and send a coarse, targetless report through ordinary radio delivery. HQ sanitizes that evidence and can assign one existing mobile search group; it cannot turn an alarm into a tracked player, road interception or fire-support target. Native compilation succeeds; actual native hearing and remote delivery remain unqualified. All **245 repository programs pass**. [Alarm behavior](vehicle-security.md#local-alarm-evidence-for-hq-30-september-2026), [regression and review record](evidence/alarm-intelligence-2026-09-30/review.json).
|
||||
|
||||
Mounted vehicle eligibility now traverses structural seats without descending into soldiers' carried inventories or deposited cargo; exact original crew/ledger guards remain. The latest [production-fleet test](evidence/native-2026-09-30-mounted-structural/report.json) passes 48 assertions, including all six original roots and exclusion of eight actual cargo weapons, but fails to observe installed weapon magazines. It does not reach radio-delivery proof. Earlier compilation and production-fixture failures remain archived. Thirteen installed-resource errors and two final fixture failures remain explicit; hidden/muted cleanup and unchanged source/external inputs pass. No armed-count, three-convoy reliability, rearming, multiplayer or FPS qualification is claimed. Existing packaged handoffs remain unchanged.
|
||||
|
||||
**30 September 2026 — separate mounted-ammunition reports:** admitted convoy crews now report bounded original-vehicle ammunition snapshots through normal radio delivery, separate from carried infantry stock. Capture, foreign crew, lost roots or changed ledger ownership invalidate mounted sampling; deposited cargo is excluded. All 242 repository programs pass, with focused checks after the final diagnostic phase fix. [Behavior and remaining scope](hq-ammunition.md#mounted-convoy-reporting-30-september-2026), [regression/review evidence](evidence/mounted-ammunition-2026-09-30/review.json). Native compilation succeeds, but direct mounted sampling remains unproved: the [first convoy fixture](evidence/native-2026-09-30-mounted-initial/report.json) deadlocked waiting for HQ during prison; its checked escape transition is now fixed. The [second run](evidence/native-2026-09-30-mounted-ready/report.json) passes 33 assertions and road survey, then rejects canonical convoy dispatch before sampling. Both failures and the thirteen installed-resource errors are preserved; both confirm hidden/muted cleanup and unchanged inputs. Mounted rearming, real depletion/delivery, multiplayer and performance qualification remain unfinished. Existing packaged handoffs are unchanged.
|
||||
|
||||
**30 September 2026 — one-shot vehicle horn alarm:** successful UAZ lock breach now starts a replicated eight-second alarm with one owned audio handle. Duplicate state cannot replay it; expiry, destruction, mission inactivity and deletion clean up. Dedicated servers skip playback. All 240 repository programs pass, including final focused audio-query regressions. The hidden/muted native vehicle run completes **135 assertions**, observes the playing handle and fixed stop/no-replay behavior, and retains thirteen installed-resource errors with zero script/runtime failures. The earlier failed diagnostic interpretation is preserved. [Implementation, evidence and limits](vehicle-security.md). Audible/spatial presentation, remote clients and AI-hearing/radio integration remain unqualified or absent. The matching normal-route handoff below predates this alarm source change and remains untouched.
|
||||
|
||||
**30 September 2026 — normal generated-route checkpoint:** the ordinary Everon catalog now completes the scripted prison → physical clues → interrupted/resumed radio defence → helicopter extraction → victory/result-screen path, with **55 assertions and zero script/runtime failures**. The Southern optional UAZ passes its parking/readiness checks and starts locked; safe omission remains regression-tested. Generated sites were retained, unlike the older historical route fixture. Thirteen installed-resource errors still prevent strict qualification. Source/external hashes and hidden/muted cleanup are verified. [Native evidence](evidence/native-2026-09-30-normal-route/report.json), [transport scope](ground-transport.md). The earlier 236-program check and occupied-prefix refusal remain preserved. A [fresh matching development handoff](../.build/playtest-2026-09-30-normal-route/README.md) contains 373 authored files, 318 verified PAK payloads and three runtime files. [Ordinary packed startup](evidence/packed-2026-09-30-normal-route/packed-startup-report.json) verifies normal modules, mission readiness and a local prisoner with zero script/runtime failures; seventeen installed-resource errors retain its strict failure. The [packaging report](evidence/package-2026-09-30-normal-route/package-report.json) also retains localization, Steam stats and resource-leak errors despite native exit 0 and confirmed cleanup. Ordinary human escape, driving, multiplayer and FPS qualification remain pending; older handoffs below remain untouched.
|
||||
|
||||
**30 September 2026 — normal-route guidance and editable handoff:** in-game objectives and the [player guide](player-route.md) now match the prison backpack and normal Southern-cache/Field-hospital-1 clue route. The Western cache/locked UAZ is legacy-fixture content, not a normal starting option. A [verified updated source handoff](../.build/playtest-2026-09-30-source-update/README.md) contains the latest integrated changes; only the guidance strings differ from the last native escape snapshot, and focused feedback checks pass. Native packaging was deferred by its existing-game guard; the active user play session and older packages were left untouched. [Source hashes and refusal records](evidence/source-2026-09-30-guidance/handoff.json).
|
||||
|
||||
**30 September 2026 — empty-magazine return:** ground resupply can now return one exact unused compatible empty magazine to its original truck when inventory capacity blocks incoming ammunition. Separate callbacks and ownership proof guard both moves; failure or shutdown retains uncertain operations without retries. All 234 repository programs pass, and hidden/muted native compilation plus the 52-assertion scripted escape completes with zero script/runtime failures. The thirteen installed-resource errors remain; the empty-return branch itself still needs native validation. [Implementation, provenance and limits](empty-magazine-return.md). The [original feature ledger](original-feature-coverage.md) now distinguishes implemented systems from absent behavior and unfinished qualification. Existing packaged candidates remain unchanged.
|
||||
|
||||
**30 September 2026 — report chronology and retry ownership:** delayed negative reports about another target no longer overwrite newer positive sightings in a shared HQ search cell; old admission callbacks cannot consume a reconnected controller's retry budget; completed Intel reroll entries no longer consume native-work slots. All 234 repository programs pass. The focused hidden/muted HQ awareness run completes 61 scripted assertions with zero script/runtime failures; thirteen installed-resource errors remain. The separately failed legacy convoy/memory fixture is retained. [Changes, evidence and limits](hq-chronology-and-admission-2026-09-30.md). The packaged candidate remains the older snapshot.
|
||||
|
||||
**30 September 2026 — all-convoy infantry resupply:** HQ can now use every existing finite convoy's original ammo truck, up to the configured twenty, rather than only the first. Per-truck stock stays separate; shared report/cooldown history prevents cross-truck replay, and planning rotates donors with at most one new trip per five-second cadence. All 234 repository regression programs pass. A hidden/muted native run initializes three independent 56-magazine stocks and completes the 52-check scripted escape with zero script/runtime failures; the thirteen installed-resource errors remain. No actual multi-truck delivery was exercised. [Implementation and evidence](multiconvoy-resupply.md). The packaged development candidate below predates this source change and remains untouched.
|
||||
|
||||
**30 September 2026 — combined development candidate:** a fresh [single-addon handoff](../.build/playtest-2026-09-30-current/README.md) contains matching editable source and native PAK. The focused combined-mission escape fixture completes 52 assertions through victory and the result screen, with zero script/runtime failures. Ordinary packaged startup independently loads the exact ten engine/vanilla/owned/dependency mounts and verifies a local prisoner in the ready mission. Strict qualification still fails on installed-resource errors and the retained packaging verdict. [Evidence, scope and build details](combined-candidate-2026-09-30.md).
|
||||
|
||||
**30 September 2026 — earlier settings checkpoint:** the complete repository check now passes all 232 registered regression programs, including the settings-save recovery correction and full-route fixture budget. The subsequent route-selector and cleanup changes pass their focused regressions; the older 231-program, 191-program and 101-assertion results below are historical checkpoints, not acceptance for the current tree. [Latest fixes and preserved native attempts](mission-checkpoint-2026-09-30.md).
|
||||
|
||||
RHS Status Quo, WCS Armaments and WCS BMP-1 are current mission dependencies, alongside the separately authorized Parachute Framework and their supporting packs. Infantry resupply now waits for both real convoy cargo phases and captures faction-independent finite magazine identities. The hidden, muted infantry run compiled and captured 56 original magazines, but failed to select an eligible compatible patrol recipient before transfer. Cleanup and unchanged source/external inputs were confirmed. Thirteen existing resource/property/localization errors also remain. [Changes, failed evidence and remaining scope](resupply-fixes-2026-09-30.md).
|
||||
|
||||
The later empty-weapon ammunition fix now derives cargo from the native carried-weapon default when the last magazine has been removed, while preserving loaded variants and excluding auxiliary launcher rounds. Actual-method and neighboring policy regressions pass. The later radio fixture compiled the combined source and completed seven scripted assertions with zero script/runtime failures; native ammunition delivery remains unverified. Review confirmed that the earlier unavailable recipient was a fixture population limitation, not a demonstrated support-reservation defect.
|
||||
|
||||
A failed first settings save no longer leaves a rejected primary file that disables changes after restart; existing backups and runtime settings remain preserved. Two earlier combined route/administrator-stress attempts are retained as failures: the first reached interrupted radio defence before its old total deadline; the bounded retry completed the 129-actor, 100-percent intel reroll but exhausted the separate two-batch reroll budget. Neither completed extraction; the later route-only fixture does complete it without claiming the administrator stress passed. All runs used hidden/muted private profiles; the sealed attempts confirm unchanged source/external inputs and cleanup. The thirteen installed-resource errors remain explicit.
|
||||
|
||||
Use the updated [player route guide](player-route.md) for the single combined scenario. A full ordinary escape, multiplayer acceptance and an equivalent-workload FPS improvement are still unverified. Prison input automation and experimental AI helicopter flight remain paused. Existing September 29 medical, spectator, mortar and body-recovery work remains preserved in the working tree; no release or Workshop publication is implied.
|
||||
|
||||
**20 September 2026 — report-driven road interception:** HQ can now use fresh delivered movement history to select a forward point on an authored road and order an existing infantry group to hold it temporarily. The bounded selector respects reserved destinations, physical clearance and elevated-road geometry; old or weak evidence falls back to search. Existing radio delivery, force limits, home guards and absolute task expiry remain in charge. No barricades, vehicles, mines or new troops are created. [Implementation and scope](road-interception.md).
|
||||
|
||||
All repository checks pass. The [native113607 raw checkpoint](evidence/native-2026-09-20-113607-road-interception-raw/README.md) completes101 assertions/one round with zero script/runtime failures, including an actual Everon road selection and stale-belief refusal from arranged private-memory reports. Four external localization errors remain. A process-exit race prevented the runner's final cleanup seal; its failed verdict is retained. A later independent read-only check found the reported PID absent, the private prefix idle and source bytes unchanged. This is not infantry-arrival, natural-interception, multiplayer or FPS evidence. The [refreshed development handoff](../.build/playtest-2026-09-20-road-interception/README.md) now contains all five packages and matching editable source:261 authored files,222 exact PAK payload entries and15 verified runtime files. [Packed Core](evidence/packed-core-2026-09-20-road-interception/report.json) starts cleanly. [Full external startup](evidence/raw-packed-chat-external-2026-09-20-road-interception/README.md) verifies the13-addon paths, ordinary modules, mission header and local prisoner admission without script/runtime failures, but remains failed on four external localization errors appearing twice. Both packed runs confirm unchanged inputs and hidden/muted cleanup. [Build/handoff record](evidence/package-2026-09-20-road-interception/handoff.json). All533 reference sources are unchanged; previous handoffs remain intact. Native packaging shutdown failures, full human escape, multiplayer and FPS acceptance remain unqualified.
|
||||
|
||||
**20 September 2026 — nearby sighting handoff and resupply approach:** A squad without a usable own radio route can now pass its fresh visual report through an original member to a living friendly radio carrier within 100 m. Original source, position and timestamp remain intact; HQ learns only after radio delivery. Shared callers cannot overlap their originating calls, and interrupted or repeated sightings cannot bypass delivery. The [native checkpoint](evidence/native-2026-09-20-101306-local-handoff/report.json) completes one round/81 assertions without script/runtime failures: an arranged snapshot reaches HQ unchanged, while removing the second caller's radio prevents the next snapshot from arriving. The fixture deliberately removes radios and positions a witness after startup fitting settles; it is not natural perception or multiplayer proof. [Details and retained setup failure](hq-local-handoff.md). Four external localization errors remain, with source/external fingerprints and hidden/muted cleanup confirmed.
|
||||
|
||||
Resupply now waits through unsubmitted geometry/capacity failures instead of spending that magazine and aborting the trip. A submitted native attempt remains strictly once-only. Move/hold radii also no longer accept an approach five metres from the reported truck position. Actual-method regressions reproduce and fix both issues; full native walking rendezvous remains unproved. Full repository checks pass, with the final fixture adjustment covered by focused tests and native compilation/execution. All 533 reference sources remain unchanged. An updated editable source bundle is recorded [here](evidence/source-2026-09-20-handoff-resupply.json); packaged playtests remain older snapshots. Manual play, multiplayer, packaging and FPS qualification are still unfinished.
|
||||
|
||||
**20 September 2026 — native finite magazine transfer:** Before moving a magazine, infantry now need unobstructed physical reach to a root-owned authored truck storage context. The [native transfer checkpoint](evidence/native-2026-09-20-091854-infantry-transfer/report.json) completes one round and 43 assertions, with zero script/runtime failures: one original magazine moves from the automatic convoy's original ammo truck to an original patrol actor, preserving ammunition count and the force ledger. This fixture deliberately positions the recipient and waits for its native pose update; it does **not** prove autonomous rendezvous. Four installed external localization errors still prevent strict qualification. [Access and retained diagnostic failures](infantry-resupply-access.md). Actual-method tests cover obstructions, stock identity, report consumption, reservations, native submission and interrupted fixture cleanup. Source/external input fingerprints and hidden/muted cleanup are confirmed. Full walking resupply, multiplayer, FPS and refreshed packaging remain unfinished; existing handoffs are unchanged.
|
||||
|
||||
**20 September 2026 — automatic convoy and result feedback:** The full AI scenario now defaults to one automatic initial convoy after a 30-second startup grace and existing-force admission. Automatic and manual requests share the same finite receipt, with no automatic retry or replacement. `/esc hq convoy auto set 0|1` saves the next-round choice; old disabled convoy settings migrate correctly. [Startup details](convoy-startup.md). Original physical turret occupants receive scoped skill100, while other enemy crew retain at least80. The [native checkpoint](evidence/native-2026-09-20-081658-automatic-convoy/report.json) completes 93 assertions and one round, proving six automatic vehicles, 19 original seated crew, five turret specializations and duplicate-dispatch rejection, plus the existing HQ radio-memory tests. Zero script/runtime failures; four external localization errors remain. All repository checks pass, and 533 tracked reference sources remain unchanged. Hidden/muted cleanup and unchanged input fingerprints are confirmed. Defeat screens now refresh a late replicated end reason; callback/lifecycle tests pass, but real remote-client timing remains untested. Existing packaged handoffs remain older snapshots; native logistics, multiplayer and FPS qualification remain unfinished.
|
||||
|
||||
**20 September 2026 — finite nearby infantry resupply:** HQ now uses delivered low-ammunition reports to reserve an existing patrol and the manually dispatched convoy's original ammo truck. Separate radio orders stop the truck, request its stopped-position report and send infantry to a nearby rendezvous. Existing captured magazine identities transfer at most once; no replacement stock is created. Low-stock reporting uses 30-second local scans and a 60-second urgent-call cooldown. [Scope and limits](infantry-resupply.md). The [current native run](evidence/native-2026-09-20-072839-infantry-resupply/report.json) compiles the complete integration and completes 59 HQ-memory assertions/one round with zero script/runtime failures and verified hidden/muted cleanup; four external localization errors remain. The first native compile failure is retained and corrected. Direct native resupply/navigation, automatic dispatch, broad logistics parity and multiplayer remain unfinished. All repository checks pass and all 533 tracked reference sources remain unchanged. The existing packaged handoff remains the older `915476f` snapshot.
|
||||
|
||||
**20 September 2026 — radio and finite maintenance:** Enemy groups now use bounded one-time radio fitting, preserving existing radios and excluding mortar-owned allocations. Uplinks hold their original caller for three seconds before network hops and fail on live consciousness/ownership loss. The [native radio/HQ-memory checkpoint](evidence/native-2026-09-20-062203-radio-call-memory/report.json) completes 59 assertions and one round, with zero script/runtime failures; four installed external localization errors remain. All six tested groups were already equipped, so native insertion remains unproved. The western supply cache now holds one finite repair kit and two fuel cans. Its [native stock/transport checkpoint](evidence/native-2026-09-20-062011-maintenance-stock/report.json) passes 131 assertions with zero captured errors, confirming 20 supply units and two five-litre cans plus prior lock/vehicle-loss behavior. Ordinary repair/refuel consumption remains untested. Both runs preserve exact sources and confirm hidden/muted cleanup. Current external packaging has a separate [explicit v3 development workflow](packed-external-development.md); the matching separate handoff is `.build/playtest-2026-09-20-radio-maintenance`. All five PAKs match their authored payloads; [Core ordinary startup](evidence/packed-core-2026-09-20-radio-maintenance/report.json) passes without captured errors. Full packed Chat verifies the exact thirteen-addon closure but remains failed on installed localization errors and did not establish participant readiness before its diagnostic ended. Native build shutdown failures remain; older handoffs are unchanged. All repository checks pass and 533 tracked reference files remain unchanged.
|
||||
|
||||
**20 September 2026 — optics and base interaction follow-up:** Startup optics fitting now uses verified vanilla/RHS resources, preserves existing attachments and remains independent of finite Stinger processing. The supply UAZ has a successor-owned [held lock-breach action and scoped entry guards](vehicle-security.md); the [native supply-vehicle checkpoint](evidence/native-2026-09-20-052915-supply-vehicle-security/report.json) completes 124 assertions with zero captured errors, including lock rejection, one-time unlocking, native driver availability with its declared door context, scripted seating, fuel depletion and no replacement after loss. Ordinary held input and multiplayer verification remain pending. Player guidance now explains pilot responsibility and whole-round extraction consequences, and repeats the current objective after a controlled-body change. [The native convoy diagnostic](evidence/native-2026-09-20-050906-convoy-seat-diagnostic/report.json) compiled the optics integration but failed a combined gunner consciousness/seat/identity check after 170 passing assertions; it did not reach the new radio HOLD/RESUME test. The [second run](evidence/native-2026-09-20-051505-convoy-cover-diagnostic/report.json) passed those driving/seat checks but received no qualifying cover sighting before a combined preservation guard failed. Native HOLD/RESUME remains unverified; more precise diagnostics are included without weakening either guard. The [final full-addon run](evidence/native-2026-09-20-053057-optics-security-hq-integration/report.json) compiles all current source changes and completes 56 HQ-memory assertions with no script/runtime failures; the four known external localization errors remain. All repository checks pass, and all 533 tracked reference sources are unchanged. Existing packaged playtests remain older snapshots.
|
||||
|
||||
**20 September 2026 — delivered ammunition and convoy cover:** HQ now receives detached small-arms ammunition counts with real radio status and avoids new armed assignments only when fresh, complete evidence proves the squad empty. Per-vehicle convoy HOLD/RESUME commands share the original crews' radio downlinks and preserve route/crew/cargo identity. The [ammunition run](evidence/native-2026-09-20-040857-hq-ammunition/report.json) completes 49 assertions; the [current convoy driving recheck](evidence/native-2026-09-20-041150-convoy-cover-driving/report.json) completes 181. Both have zero script/runtime failures and confirmed cleanup, with four external localization errors retained. Native combat HOLD/RESUME and depletion still need direct tests; general resupply, multiplayer/FPS qualification and updated packaged playtests remain unfinished. See [ammunition scope](hq-ammunition.md) and [convoy scope](convoy-migration.md#delivered-hq-mounted-cover-follow-up).
|
||||
|
||||
**20 September 2026 — delivered casualty follow-up:** HQ now merges body and squad-status evidence by immutable original member identity. A [native corpse/radio test](evidence/native-2026-09-20-030533-body-radio-casualties/report.json) completes45 assertions: actual visual observation, no knowledge before delivery, real overlapping status and no double-counting. Transfer-before-death and deleted-corpse safeguards are covered by focused regressions. Four external localization errors remain; packaged playtest binaries have not been refreshed.
|
||||
|
||||
**20 September 2026 — HQ memory and external dependencies:** The editable successor now includes the [AI migration checkpoint](ai-migration-progress.md): bounded report-derived memory/prediction, infantry task selection, delivered negative-search coverage, routine check-ins and missing-patrol investigations, local body observation, finite Stinger grants and the Core force ledger. RHS/WCS/BMP are [declared and audited](external-addons.md). Native memory (56 assertions) and actual-sighting HQ response (35 assertions) complete with zero script/runtime failures; four external localization errors keep strict qualification failed. The older playtest below has not been rebuilt with these changes. The [convoy checkpoint](convoy-migration.md) now proves exact nineteen-person native seating, finite physical truck cargo and duplicate-dispatch rejection. The native driving follow-up completes181 assertions: all six vehicles move at least20m and the lead over100m, preserving exact crew and rejecting repeat dispatch. Combat tactics, unloading and long-route reliability remain unfinished.
|
||||
|
||||
**20 September 2026 — refreshed playtest ready:** `.build/playtest-2026-09-20` now contains the mission-owned Chat menu and current owned AI/Intel behavior from source `5e74269`. All 216 authored source files and all five native PAK payloads match; fifteen runtime files are verified. [Core](evidence/packed-core-2026-09-20-playtest/report.json) and [full scenario](evidence/packed-chat-2026-09-20-playtest/report.json) pass ordinary packaged startup with zero captured errors, unchanged inputs and confirmed hidden/muted cleanup. [Build record](evidence/playtest-2026-09-20/build.json) and [launch/route instructions](playtest-build.md). Separate muted manual launchers and local profiles/runtime are prepared; no visible launcher was run. The old handoff and 533 original reference files are unchanged. The packager's shutdown failures remain, while a narrowly fixed disappearing-audio-stream race passes44 tests and its separate Chat retry produces matching artifacts. Human full escape, multiplayer and FPS remain unqualified.
|
||||
|
||||
**19 September 2026 — mission-owned chat administration:** Core now owns `/esc`, the native settings/HQ/journal menu, authenticated sessions and player tools in dedicated classes. AI and Intel register optional providers; Chat is only the existing full-scenario/development wrapper. Open with `/esc menu`. [Implementation and command reference](chat-integration.md). [Final native regression](evidence/native-2026-09-19-234618-chat-complete/report.json): one full scripted escape round, 101 assertions, zero captured errors, unchanged source and verified private cleanup; checks include actual menu/owner RPCs, saved settings, god-state restoration, visible journal text and scrolling to the newest entry. Earlier Core and two-round full-scenario runs are linked in the implementation notes. All repository checks pass. Original 533 reference files remain unchanged. The frozen playtest package has not been rebuilt; multiplayer and release acceptance remain pending.
|
||||
|
||||
**19 September 2026, 22:59 — owned AI/Intel migration:** Added admin Intel summary/reroll commands, native-operation callbacks and bounded retry handling, coalesced team discovery notifications, and fair per-squad reporting of multiple current visual contacts. [Change details](owned-ai-intel-migration.md). The updated five-addon source passes [two native escape/restart rounds](evidence/native-2026-09-19-225422-owned-ai-intel/report.json), **186 assertions**, zero captured errors, unchanged source and confirmed hidden/muted test cleanup. All repository checks pass. The frozen playtest package below remains its earlier snapshot; these source changes have not been repackaged. Human/multiplayer and release qualification remain pending.
|
||||
|
||||
Updated **19 September 2026,22:12**. The prison and the complete intended base sequence are implemented: prisoner spawning, physical intel/scavenging, radio defence, player-flown helicopter extraction, individual results and restart. Five independent successor projects use vanilla assets without the original mod. Scripted local integration and ordinary startup have native evidence. This is an implemented development build awaiting gameplay qualification, not a completed multiplayer release.
|
||||
|
||||
**Priority correction from the user:** stop spending disproportionate time on automated prison keypress proof and experimental AI aircraft flight. Both experiments are paused. Active work now targets concrete base gameplay bugs, missing user-visible behavior and companion integration. The reproduced first-admission deadlock is fixed, and casualty loading now gives denial/failure feedback to its initiating rescuer. Each clue cache carries one finite replacement map. Manual play and real multiplayer remain necessary, but absence of automated input proof does not mean the prison is still being built.
|
||||
|
||||
The frozen202-file playtest source now passes [two Core escape/restart rounds](evidence/native-2026-09-19-215437-playtest-core-loops/report.json),616 assertions, zero captured errors and confirmed cleanup. All repository checks pass. The [development playtest handoff](playtest-build.md) is ready in `.build/playtest-2026-09-19`: exact-source native packages and editable source, separate user-run `play-full.sh`/`play-core.sh`, prepared isolated local profiles/runtime and a seven-step route guide. [Packed Core](evidence/packed-core-2026-09-19-playtest/report.json) and [full five-addon startup](evidence/packed-chat-2026-09-19-playtest/report.json) both pass with verified cleanup and unchanged artifacts. Workbench packaging errors remain recorded separately; this is a development candidate for human testing, not a qualified release.
|
||||
|
||||
Recent retained checkpoints:
|
||||
|
||||
- [Ordinary coarse approach/facing/lock selection](evidence/game-2026-09-19-212117-coarse-facing-selection/runner.json.txt) passed using actual private mouse/W input and one wheel pair. Facing took2.726seconds; no F was sent. The [first opt-in held-action attempt](evidence/game-2026-09-19-214138-held-prerequisite-refusal/runner.json.txt) later refused its independent facing prerequisite before wheel/F, confirmed all releases and cleaned up. Further input automation is paused.
|
||||
- [Typed aircraft service20m route](evidence/native-2026-09-19-210233-typed-service-route/report.json) passed40 assertions, destination hold, contact landing and shutdown at its201-file snapshot. The100m survey experiments found terrain/building/tree obstructions before allocating an aircraft; the [last survey](evidence/native-2026-09-19-213726-field-workshop-refusal/report.json) records the workshop bounds. There is no100m flight or operational HQ aircraft qualification. A reviewed contact check prevents ground friction receiving airborne-braking credit; its focused policy checks pass, native validation remains pending.
|
||||
- All repository checks passed after integrating the optional held-action helper and independent validators. The subsequent narrow contact fix has focused regressions. These are development checks, not manual gameplay or release acceptance.
|
||||
|
||||
**All seventeen first-release acceptance cases remain pending.** Full ordinary escape, real multiplayer, improved FPS and clean native packaging are unqualified. The [empty-addon packaging control](evidence/package-control-2026-09-19-201532-exit-after-init/review.json) still reproduces25 shutdown errors. Tests remain hidden/muted, and the original533 reference files were verified unchanged at21:42.
|
||||
|
||||
The [route gain comparison](evidence/route-comparison-2026-09-19-192238/comparison.json) measures one native20m route per gain: translation through arrival hold improved155.365→69.293seconds, and final target error improved0.130→0.099m. The candidate passed38assertions, physical contact landing and engine shutdown. This is an isolated flight-controller result, not an FPS comparison or operational HQ air support; the production callback bridge has separate native evidence, while the later retained-service route/Stop passes are separate historical snapshots and useful field-length routes remain pending.
|
||||
|
||||
[Ordinary prison approach191750](evidence/game-2026-09-19-191750-prison-approach/runner.json.txt) now passes end to end using actual private mouse/W input:14turns,9walking pulses,4.741m path,27.199s native interval, stationary0.490m from the interior waypoint. A disposable2560x720 viewport provides pointer travel while retaining every containment/ownership check. No gate action was sent; the exact lock/context remains unselected from the final view. Earlier pointer-edge, cross-position-API, calibration-return and legacy-summary failures remain archived. The first physically completed route191342 has a separate hashed raw-log review, not a rewritten runner verdict. The later [194128 alignment attempt](evidence/alignment-review-2026-09-19-194128/review.json) acquires the native gate context with the lock available, but does not select the lock; it remains failed. Read-only selected-action diagnostics precede any action cycling or heldF proof.
|
||||
|
||||
The [relative-look observer](ordinary-look-observer.md) now passes an [ordinary Chat run](evidence/game-2026-09-19-183944-relative-look/runner.json.txt): actual +24/−24 pixel input produced a measured 1.935° yaw response and return within 0.149°, with stationary body, then verified W/Tab input. Zero captured errors, source unchanged and cleanup confirmed. The earlier run remains failed because its independent checker assumed identical SAMPLE/READY milliseconds; its [separate corrected review](evidence/look-review-2026-09-19-183353/review.json) preserves the raw archive. The current-source Core attempt reached 292 assertions without errors but exhausted an undersized 180-second budget; its [timeout](evidence/native-2026-09-19-183622-core-budget/runner.json.txt) remains a failure. The later 184647 run used a 600-second budget and completed both rounds with614 assertions; the earlier timeout remains failed. No gate interaction or full normal-input escape is qualified.
|
||||
|
||||
The primary deliverable is an independently authored replacement for the abandoned Escapists base mission, with companion behavior integrated through its interfaces. Five successor addon projects have their own identities, authored Everon sites and vanilla asset references. The first release targets up to twelve players completing prison → scavenging/intel → radio defence → helicopter extraction without the original mod or dependent extensions. Scripted development checkpoints exist; a dependable, manually playable multiplayer release is still unfinished.
|
||||
|
||||
## Established development checkpoints
|
||||
|
||||
| Area | Evidence | Practical limit |
|
||||
| --- | --- | --- |
|
||||
| Integrated base loop | [Core 130347](evidence/native-2026-09-19-130347-core-loops/report.json) completes two rounds, 612 assertions and zero errors, including canonical participant rejection/restored document recovery, rough/exact native markers, radio feedback, extraction and restart. [Companion 131041](evidence/native-2026-09-19-131041-companion-loops/report.json) completes two rounds, 96 assertions and zero errors at its source snapshot. | Scripted local integration with deliberate state/position changes, not a normal-input escape. These earlier archives share their captured source snapshot; the new Core/companion/ordinary runs linked above qualify the later native-end correction. The earlier flight mechanism remains separately source-bound. Future addon edits require fresh qualification. Earlier failures remain archived. |
|
||||
| Ordinary game startup | [Chat 125906](evidence/game-2026-09-19-125906-integrated-prison/report.json) loads all five addons in the regular game, verifies the header/MissionSystems and admits the real local controller to a living canonical prisoner, then observes a clean ready interval. Native screenshots show the real prisoner view and the correct escape objective; the stock-scale yard decal creates a larger irregular bare patch, with substantial wheat remaining. | Explicit diagnostic noSplash and a scoped standalone round-local identity; no complete ordinary route or remote identity proof. The latest bounded keyboard cycle described above passes with visible inventory, while the earlier failed cycles remain archived. [Admission design](local-singleplayer-admission.md). |
|
||||
| Packed addon consumption | [Packed Core 110729](evidence/packed-core-2026-09-19-110729/report.json) passes ordinary startup from the archived project/PAK/resource database plus installed vanilla: exactly three expected addons, real canonical prisoner, a 15-second ready interval and zero captured errors. Package and log hashes are retained. | Artifact-bound startup with explicit noSplash; no loose successor addon was loaded. The artifact predates current mortar edits. [Archived packed Chat 131942](evidence/packed-chat-2026-09-19-131942-current/report.json) passes startup from all five [1317 packages](evidence/package-2026-09-19-1317-all/review.json), with no loose successor source, a real prisoner and zero captured errors. All 151 PAK entries match the captured 183-file addon snapshot before the native-end correction; all fifteen runtime artifacts retain exact hashes. Native packaging remains unqualified: an [empty-addon control](native-packaging-control.md) reproduces the same UI resource-leak errors, without fixing or suppressing them. |
|
||||
| Native game-over | [Preparation 133847](evidence/native-2026-09-19-133847-native-end-preparing/report.json) and [active 134044](evidence/native-2026-09-19-134044-native-end-active/report.json) each pass two rounds/21 assertions: actual inherited game-over, unchanged native data, one shutdown, cancelled preparation/tick/binding, inert stale callbacks and vanilla restart. | Local fixture; pending native preloads and real clients are not arranged. Existing successor extraction results remain covered by normal escape/restart regressions. |
|
||||
| Prison and scavenging | [Prisoner capacity](evidence/native-2026-09-19-063949/report.json) uses one real player plus eleven physical characters, exact starter kits and native clue transfers. [Prison boundary 100148](evidence/native-2026-09-19-100148/report.json) covers the gate/progression corrections. | Extra physical actors are not twelve connected clients. Native action completion and deliberately repositioned boundary crossings do not prove held input or walking through the gate/debris. Equipment scarcity and combat balance need playtesting. |
|
||||
| Medicine and extraction casualties | [Medical treatment](evidence/native-2026-09-19-062406/report.json) demonstrates finite supplies and native recovery at its earlier snapshot. [Casualty 102037](evidence/native-2026-09-19-102037/report.json) passes 101 clean assertions at the committed checkpoint: grounded-aircraft checks, real incapacitation, helper rejection, seat/LOS constraints, one owner-handshake load and idempotent stop. [Native removal](evidence/native-2026-09-19-080058/report.json) proves the inherited exit mechanism. | Casualty loading explicitly adapts helper membership and invokes action completion. Held input, real remote ownership, competing rescuers and disconnect/death/deletion races remain separate. The older medical snapshot retains its historical catalog errors. |
|
||||
| Infantry and HQ | [Actual perception response](evidence/native-2026-09-19-092237/report.json) carries an original soldier's observation through both physical radio legs and HQ to a different original squad, which physically moves. Patrol/preemption/resumption are implemented. | The prisoner is arranged and temporarily protected. Broader combat and interrupted/captured support require additional qualification; no response force is created for this test. |
|
||||
| Finite support | [Mortar expiry](evidence/native-2026-09-19-091306/report.json) verifies fresh native commitments followed by stale-report withholding without duplicate orders. [Courier 095513](evidence/native-2026-09-19-095513/report.json) passes 154 clean assertions through actual radio, original-patrol walking, exact depot-shell delivery and patrol restoration. | Mortar observations are synthetic; impact accuracy and genuine late callbacks remain unproved. The new refresh now passes the bounded 112900 fixture: three actual radio updates, eight physical launches, native event completion, 19 surviving original shells and 25 seconds without replay. The current [114751 expiry regression](evidence/native-2026-09-19-114751-mortar-expiry/report.json) also passes 48 clean assertions. [115232 crew registration](evidence/native-2026-09-19-115232-intel-readiness/report.json) proves all four physical crew receive their one Intel carrying roll after setup, then exercises inventory depletion/loss; broader support-loss checks remain separate. Courier depletion is arranged by physically sequestering the original 27 rounds, not firing or replacing them. Broader losses and multiplayer remain unqualified. |
|
||||
| Aircraft mechanism | [Flight 114504](evidence/native-2026-09-19-114504-powered-flight/report.json) passes 81 assertions with zero captured errors: signed actor-local collective consumption, native autohover, powered takeoff, five-second 7–9m hover, stable contact landing and an engine-off check with finite fuel. The same aircraft and living AI pilot remain inside the original physical limits. | [Translation 120245](evidence/native-2026-09-19-120245-powered-translation/report.json) additionally passes 85 clean assertions for a fixed four-metre target, five-second hold and landing. The reusable production controller separately passes [123439](evidence/native-2026-09-19-123439-aircraft-controller/report.json), 37 assertions including actual post-spawn qualification and its own complete vertical operation. [Airborne cancellation 124915](evidence/native-2026-09-19-124915-aircraft-cancel/report.json) passes 39 assertions with retained control through contact landing and engine-off. The same reusable controller then passes [fixed-target movement 130038](evidence/native-2026-09-19-130038-aircraft-target/report.json), 38 assertions including a physical 2.9m translation and landing. These are isolated flight mechanisms; rotors still coast after engine shutdown. [The fixed 20 m route](evidence/native-2026-09-19-155909-aircraft-route/report.json) now passes one unloaded flight, target hold, contact landing and engine-off with 38 assertions. Useful field-length navigation, operational HQ support, repeated-flight reliability and manual/multiplayer piloting remain unqualified. Earlier input, drift, hover and shutdown failures remain archived. |
|
||||
| Shared field map | [Map ownership 120633](evidence/native-2026-09-19-120633-map-ownership/report.json) passes native replacement-view, delayed-callback, mode-clear and spare/interrupted deletion checks. The fixture observes actual cleanup and waits for native component references to expire. | Camera restore authorization is observed; no public native render-state getter exists. Visible held-map usability, previously focused stock gadget callbacks and remote presentation remain separate. |
|
||||
| Independent runtime controls | [Archived packed Linux Chat 132456](evidence/dedicated-2026-09-19-132456-packed-chat/review.json) compiles the integrated game scripts, loads all five packages and prepares the empty prison mission in an isolated network namespace. Its four resource errors also occur in the earlier vanilla control. All fifteen packed inputs remain unchanged. [Vanilla ordinary 102533](evidence/vanilla-game-2026-09-19-102533/report.json) reproduces the initial splash unknown-class error with exactly two vanilla addons and no successor. | No real dedicated client joined. The vanilla ordinary control remains failed despite entering the menu; it does not test scenario reload or input. [Splash diagnosis](normal-splash-audit.md). |
|
||||
|
||||
## Immediate work
|
||||
|
||||
1. Play the frozen development candidate through the normal route and fix reported blockers. First-spawn exhaustion, silent casualty-loading failures and missing spare maps have been addressed; do not resume disproportionate input/flight automation.
|
||||
2. Review normal-player guidance and supplies across the authored escape route. Fix evidenced usability defects with proportionate checks.
|
||||
3. Distinguish genuinely absent base behavior from existing behavior awaiting playtesting. Pre-round setup UI, broader island population and vehicle break-in/alarm behavior are potential remaining features; the narrow escape sequence already exists. Keep later-scope feature parity separate.
|
||||
4. Prepare and validate the playable development build. Ordinary manual play, real multiplayer, packaging and equivalent-workload FPS tests remain release work. Do not resume elaborate gate-input or experimental aircraft automation at the expense of those priorities.
|
||||
|
||||
## First-release qualification
|
||||
|
||||
The [acceptance ledger](acceptance.json) still requires the complete ordinary escape loop, death/unconsciousness/recovery, reconnect/respawn/spectators, partial escape, defeat/restart, interrupted/stale reports, support/ammunition losses and duplicate-free cleanup with up to twelve connected players. A passed development checkpoint does not promote those pending cases.
|
||||
|
||||
Collect matched original/successor workloads with repeated client-frame and server-tick measurements. **No FPS improvement is demonstrated**; the [comparison tool](performance-comparison.md) has synthetic regression evidence only. Complete provenance/dependency review, obtain a clean native build and satisfy the [release checker](release-qualification.md). The [packed Core startup](packed-core-startup.md) is now demonstrated for its exact archived PAK, while the [packaging shutdown/control failures](native-packaging-control.md) remain unresolved and unqualified. The [development source bundle](development-source-bundle.md) provides editable projects; it is separate from that native candidate and from a qualified release. No release package is published.
|
||||
|
||||
[Private test cleanup](evidence/private-prefix-cleanup-2026-09-19-1631/review.json) now verifies Proton’s trailing-slash prefix spelling, checks idle state under the shared lock, and reaps only positively identified adopted test-device helpers after owned shutdown. The latest companion and ordinary runs record verified cleanup. Earlier strict-byte idle checks could miss those helpers; their historical logs are retained unchanged.
|
||||
|
||||
Original missions remain untouched. Engine tests use private profiles/prefixes, hidden displays and muted test audio. RHS/WCS/BMP are now authorized dependencies for AI/full integration. Additional terrains, complete original feature parity, alternate starts and distant-unit materialization remain unfinished. The [validation ledger](validation.md) preserves the detailed historical checkpoints and failures.
|
||||
|
||||
## 2026-10-04 — Terrain hunter fallback and convoy search
|
||||
|
||||
Live Nogova logs showed both successful three-UAZ rounds and rounds where an exhausted three-way opening scan permanently blocked all independent hunters. Initial deployment now falls back to checked friendly-objective roads with the existing finite force allowance and player exclusion, plus opening-center and active-hunter clearance. Failed placement retries after ten seconds.
|
||||
|
||||
Convoy infantry keeps hunting for three minutes after the last fresh sighting and can sweep twice farther around opposite flanks once each prior sector is reached. Route allocation failure preserves working flank orders, and duplicate reports cannot restart the hunt. Normal road travel still uses the column; combat retains independent infantry and escort orders.
|
||||
|
||||
All 314 registered checks passed. An isolated native Nogova run compiled without script errors, spawned three independent radio-equipped hunter UAZs through a forced opening failure, observed native patrol driving over 25 metres, and physically dismounted both convoy infantry teams with flank/search orders after one synthetic contact. Full organic combat and other terrains remain playtest coverage. No Workshop publish or live server changes. [Evidence](evidence/hunter-search-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Civilian road traffic
|
||||
|
||||
Added ordinary unarmed CIV drivers in S105 cars and S1203 vans, separate from military HQ, intel and equipment systems. The Factions admin page exposes `civilianTrafficCount` (0–6, default 3) through the existing authenticated settings service and unified profile. Zero prevents new traffic; existing traffic retires only when safe.
|
||||
|
||||
Road routes use the current terrain, with side exits available where an opposite endpoint would cross water. Spawns require 1,000 m clearance from all known player bodies/spectator targets and blocked sight lines. Cleanup requires both car and driver to remain at least 1,500 m away and hidden for a sampled 60-second grace period. Unknown views and open editor cameras veto both actions. Native garbage collection is held while traffic owns a car/driver. Player entry permanently releases traffic ownership; foreign occupants or control also release it. Claimed cars retain their slot for the round. See [civilian traffic](civilian-traffic.md) for bounded attempts and lifecycle details.
|
||||
|
||||
All 315 registered repository checks passed on the final source. The final isolated native Nogova run matched the workspace and passed four checks: native garbage refusal, neutral/unarmed seated driver and hidden distant start, more than 25 m of actual driving, and unclaimed retirement after observer departure and the production grace period. Earlier runs also observed three cars and retained-claim survival. A random coastal fixture withheld all spawns rather than bypassing safety; this motivated the bounded side-exit search. The private observer fixture is not multiplayer or visual-menu qualification. No live server modification or publishing. [Evidence](evidence/civilian-traffic-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Post-defeat loading display
|
||||
|
||||
The Chernarus playtest logs show approximately 30 seconds of native postgame delay, 40 seconds reloading the terrain, then procedural preparation. Escape now rebinds the native loading updater after replacing a terrain's respawn manager; previously the cached component could leave the spinner and preparation text without frame updates. Terminal phases and stale owners release held spawn-loading overlays. Active spawn acknowledgement and terrain-generation safeguards remain unchanged.
|
||||
|
||||
The native auto-reload default is ten seconds, with server CLI overrides preserved. The complete repository check and eight focused regression suites pass; the isolated Nogova engine checks pass binding recovery, actual frame delivery and the new prefab delay with zero script errors. Client rendering and a multiplayer death/restart remain playtest checks. No live-server edits or publication. [Evidence](evidence/restart-loading-2026-10-04/README.md).
|
||||
|
||||
## 2026-10-08 — optional Cessna reconnaissance
|
||||
|
||||
Implemented optional Cessna 172/PFC detection, a next-round HQ menu switch,
|
||||
background airport departure survey, native aircrew/flight-control autopilot,
|
||||
ordinary crew-sighting reports to HQ, loss replacement and takeover release.
|
||||
No Cessna/PFC dependency was added to the project. Dedicated-server takeoff,
|
||||
120-second patrol, delivered sighting, replacement and input restoration passed
|
||||
in the isolated engine fixture; addon-absent compilation and relevant menu,
|
||||
settings and registration checks passed. See [details](cessna-reconnaissance.md)
|
||||
and [evidence/limits](evidence/cessna-recon-2026-10-08/README.md). The busy native
|
||||
fixture also logged two optional-site guard-preparation failures; this is not a
|
||||
claim that the entire mission is free of errors. Live server and publication
|
||||
remain unchanged.
|
||||
|
||||
### Cessna menu configuration
|
||||
|
||||
HQ → Configure Cessna now groups the saved enabled state, terrain-clearance
|
||||
altitude, minimum replacement delay and patrol-area interval. Defaults preserve
|
||||
the flight behavior tested above. All four values are captured for the round;
|
||||
mid-round edits do not change the current plane or its replacements. Existing
|
||||
profiles migrate automatically. Focused menu routing/layout, setting boundaries,
|
||||
migration checks and isolated Reforger 1.8 script compilation passed. The new page
|
||||
has not been visually checked in a connected game, and non-default flight
|
||||
altitudes have not received the earlier full flight fixture.
|
||||
|
||||
## 2026-10-08 — guard work spikes and bounded aircraft preparation
|
||||
|
||||
The live populated-session measurements showed up to 856 ms in the combined
|
||||
garrison scope and 981 ms between updates, versus 7 ms for HQ journal flushing.
|
||||
Town/object guard discovery now caches small terrain cells, placement searches
|
||||
resume across background callbacks, and resources/soldiers are created one per
|
||||
slice. Immediate pre/post-spawn distance checks and fresh placement clearance
|
||||
remain enforced. The separate performance file now records background guard
|
||||
work and its own preceding flush duration.
|
||||
|
||||
The isolated Everon/RHS component run admitted two town squads safely, peaked
|
||||
at 19 ms across 1,349 guard work slices, and flew the Cessna. This is not a matched
|
||||
comparison with live Chernarus. Repeated Cessna preparation failures now stop
|
||||
after three attempts per round and identify the failing gate; the original live
|
||||
startup cause was not reproduced. See [evidence and limits](evidence/garrison-slicing-2026-10-08/README.md).
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"admin-review.json": "78797de7dd67f24dc3a17b38706a397199dc92c51e0e5f7237a004161e9307ea",
|
||||
"before-inputs.json": "3e092dc0ddb9ea9f1ab9f35f7fc1f36affa139ca8c4ba031544427b4afcb37da",
|
||||
"current-status.md": "8b1265b39affc6e0121f9b9b445090c09ef82be54b6969151e72df7e9ac35844",
|
||||
"final-inputs.json": "28d86a6e9b1ad517462bbd4e6b556ef71690e1f7b989043a7de8ef71dd0fe726",
|
||||
"focused-results.json": "ef7d0c825b5cedd27eb7f217c709f503ae671bf6778ebfa77bcd86e986d222c8",
|
||||
"hitzone-sdk-proof.json": "bf8d4660fa0c2ba161ea463b3937d643b49439d74b52064bef4be63643c9f1e2",
|
||||
"hq-review.json": "ff6bb1b5573b581045d618c5b1b2b1d0090746715abeb1848ba1c9dff9a46c6c",
|
||||
"medical-final-review.json": "604655add1ca8be3297f76d0cc27cf61d8fc651408af2b1629466c7bb8b5ebdd",
|
||||
"medical-premise-review.json": "534656281475364268b5ea7d31b1ef7718112a9604eb111caa748e8223ee5c77",
|
||||
"prior-evidence-seals.json": "ebf5eb16e8ea08cd22d2a299fbc0c73895aec7b91b220ec463ab97ab9f0599d8",
|
||||
"proposal/baseline/addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
|
||||
"proposal/baseline/tests/test_player_medical.py": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"proposal/baseline-red.log": "92e380e7077199ec186bd9bcd33a5d43132fd7176b8d3648b9857b8131fe94a0",
|
||||
"proposal/consciousness-mutation-red.log": "04a6739ae37c3fa99e8608b798e4066bba114e7c3504b6334acdebd43b1867fb",
|
||||
"proposal/finding.json": "ff9df65aec786981022aead10b1abebbdd7c1f82a3c6735e1530a13aee5b4496",
|
||||
"proposal/fix.patch": "276641f08ce7eaac621b146364dee292c7be05eb5ad3546d3513750b2efcb937",
|
||||
"proposal/green.log": "015695a0ee8782f7cce3a6527821a00818af2e18c0565b75511d7620b7845095",
|
||||
"proposal/mutation-unused-local-compile-failure.log": "d40e852a12dd1cf5f4fa5919c3d68c62d04ac962fcc4e13a60973d86180f7fc2",
|
||||
"proposal/proposal/addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c",
|
||||
"proposal/proposal/tests/test_player_medical.py": "2cd8792af614fe077611c8f7fcd9f5fac2cc0258cdca5444a713cd8262ed7030",
|
||||
"proposal/results.json": "b89a5ebf49d9e980bdcf457bce5fedea95596560b18eb371c3848118855a8194",
|
||||
"proposal/source-manifest.json": "0fe57eedaad354fc68b3db6487deddd43540915fb26823e900032909104f9842",
|
||||
"proposal/test_combat_epinephrine.py": "db908da05fe8565c9aac48e4ec6cfa090dd37db8780fbf97eadcdfd28ea87582",
|
||||
"proposal/without-consciousness-control.c": "566c793adffd3ac34fd765d759fc0c53efe721a59e60bca3a631197408e8c012",
|
||||
"report.json": "90fdbccb1bbe6f8f891476c189a2da7926fd25c91d9503290ca6cc8a7fac6f28",
|
||||
"settings-review.json": "e05e7638e1e6cdd0ef9daacfac197d97471019f47d6d719de4a7f177be8436ba",
|
||||
"test_casualty_incapacitation.py.log": "0acefd1196035dfc07757f264ac093f45b1548a70a5b170265feb32b8ef0006a",
|
||||
"test_enemy_medicine.py.log": "73cb4c71e3a946b255e7a7ccc15e5a2935a9d3b0dceae0b592db37d20392e604",
|
||||
"test_player_medical.py.log": "015695a0ee8782f7cce3a6527821a00818af2e18c0565b75511d7620b7845095",
|
||||
"test_recovery_forecast.py.log": "12fd44dd23490dfbadcd0543882374e0e002c6210669168e5df1b6471371bb3f",
|
||||
"test_recovery_policy.py.log": "81511c9f2254c54c6f969941e8c9d7b55ef08215d4c270f8badb85725663cbe5",
|
||||
"test_self_epinephrine.py.log": "ed03766e5e044642e20affc1b145f0a7d7e1c4dc49d9afab254a6142e6551432",
|
||||
"test_spectator_recovery.py.log": "3dfe3707030c8fb65f64de9474d8e33d31d864e40a84c9a5c3491a8bb69c1d6d"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"checks": [
|
||||
{
|
||||
"test": "test_player_medical.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 1.11,
|
||||
"log": "test_player_medical.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_self_epinephrine.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.27,
|
||||
"log": "test_self_epinephrine.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_enemy_medicine.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.4,
|
||||
"log": "test_enemy_medicine.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_recovery_policy.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.1,
|
||||
"log": "test_recovery_policy.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_recovery_forecast.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.23,
|
||||
"log": "test_recovery_forecast.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_casualty_incapacitation.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.1,
|
||||
"log": "test_casualty_incapacitation.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_spectator_recovery.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.44,
|
||||
"log": "test_spectator_recovery.py.log"
|
||||
}
|
||||
],
|
||||
"input_files": 1229,
|
||||
"changed_inputs": [],
|
||||
"changed_from_full_checkpoint": [
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c",
|
||||
"tests/test_player_medical.py"
|
||||
],
|
||||
"index_unchanged": true,
|
||||
"native_run": false
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"archive": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
|
||||
"path": "scripts/Game/generated/HitZone/HitZone.c",
|
||||
"sha256": "551f5ada8bf9427075f8adf1f65986462c1fab3f9e0b2fb789bb8820f3599b13",
|
||||
"declarations": [
|
||||
{
|
||||
"line": 12,
|
||||
"text": "class HitZone: ScriptAndConfig"
|
||||
},
|
||||
{
|
||||
"line": 55,
|
||||
"text": "\tproto external float GetDamageStateThreshold(EDamageState damageState);"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"conclusion": "No demonstrated defect in bounded delivered-contact/negative-search/replay/expiry audit; no correction proposed.",
|
||||
"evidence": [
|
||||
"Memory.Ingest enforces finite monotonic clock, observed age<=120s, positive unique message ID and strictly newer observation per track. Seen IDs are retired only once their original observation is too old to ingest. Snapshots detach caller mutations; bounded history refuses cross-travel-mode or implausible motion and clamps prediction to30s/300m.",
|
||||
"AcceptSweep requires current belief revision; Coverage.Ingest validates delivery freshness, completed no-contact report, source message replay watermark and positive observation-time watermark. NegativeSearch applies0.65 once per current revision, and a newer observation resets SearchConfidence.",
|
||||
"Accepted ordinary sighting invokes both coarse and local coverage.Forget. Accepted execution contact invokes local Forget. New positives remove overlapping older negatives; retained positive watermarks prevent delayed negatives restoring them. Local coverage multiplier uses only recent actually inspected patches, not whole hypothesis clearance.",
|
||||
"DeliverOrder rechecks current belief/revision/actionability plus precision role gates before native waypoint allocation. Invalid/lost pending orders retain old delivered assignment. Legacy assignment pass retires missing-memory orders and fixed deadlines; coordinated doctrine intentionally preserves delivered orders until ownership loss or their finite deadline, so new HQ intention does not silently act without radio delivery.",
|
||||
"AssignCoordinated releases finite expired original execution/assignment while preserving truthful unconfirmed-outcome journal. Current source comments explicitly document that ownership/deadline boundary."
|
||||
],
|
||||
"limits": "Read-only source audit plus inspection of existing memory/local-coverage/delivery regressions; no new tests, no engine or native runs, no edits. No claim that all native physical behavior is qualified. Prior recovery RESERVE fix preserved and not re-audited.",
|
||||
"source_sha256": {
|
||||
"ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
|
||||
"ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
|
||||
"ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f",
|
||||
"ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
|
||||
"ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"approved": true,
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": {
|
||||
"baseline_sha256": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
|
||||
"proposal_sha256": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c",
|
||||
"index_sha256": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2"
|
||||
},
|
||||
"tests/test_player_medical.py": {
|
||||
"baseline_sha256": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"proposal_sha256": "2cd8792af614fe077611c8f7fcd9f5fac2cc0258cdca5444a713cd8262ed7030",
|
||||
"index_sha256": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f"
|
||||
}
|
||||
},
|
||||
"patch_sha256": "276641f08ce7eaac621b146364dee292c7be05eb5ad3546d3513750b2efcb937",
|
||||
"source_manifest_sha256": "0fe57eedaad354fc68b3db6487deddd43540915fb26823e900032909104f9842",
|
||||
"review": [
|
||||
"Blood predicate uses exact inclusive native FAINTING threshold matching unchanged instant effect; stops mild blood-only no-benefit admission.",
|
||||
"Explicit unconscious benefit follows missing/dead manager refusal and preserves forced waking; bleeding, low resilience, physical wounds and missing-controller other-benefit branches remain. Standard epinephrine and instant effect are byte-unchanged.",
|
||||
"Installed vanilla generated HitZone.c declares GetDamageStateThreshold on base HitZone, so existing generic blood variable supports new call. SDK proof independently read from installed data007.pak; no native compile claimed.",
|
||||
"Existing test program retains prior controls and executes actual admission and instant effect using documented native doubles. Baseline and unconscious-branch mutation both compile then SIGABRT at intended assertions; proposal green log verified. Initial unused-local compile failure retained and excluded from runtime proof."
|
||||
],
|
||||
"sdk_proof_sha256": "bf8d4660fa0c2ba161ea463b3937d643b49439d74b52064bef4be63643c9f1e2",
|
||||
"limits": "Read-only independent source/test/log/hash review; no reviewer tests or native run. Native superclass and inventory consumption/animation/replication remain unqualified."
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"premise_confirmed": true,
|
||||
"current_mismatch": "Conscious living target with blood above FAINTING but below1, full resilience, no bleeding and no injured physical zones passes CanApplyEffect, yet custom instant effect changes no medical value; authored regeneration speed/duration are0.",
|
||||
"required_preservation": [
|
||||
"Dead damage-state guard must remain first.",
|
||||
"Bleeding, reduced resilience and injured physical hit zones independently authorize useful effects and must remain.",
|
||||
"Unconscious controller independently benefits from SetUnconscious(false); explicit unconscious eligibility avoids regression for mild-blood-loss/full-resilience/no-wound unconscious targets when blood threshold is tightened.",
|
||||
"Use exact native FAINTING threshold inclusive boundary matching OnEffectAdded; do not invent a numeric threshold."
|
||||
],
|
||||
"self_rescue_link": "SelfEpinephrine.FindUsable uses effect.CanApplyEffect; eligibility change therefore also affects its usable-inventory proof.",
|
||||
"limits": "Read-only source/resource review; no engine, no tests, no live edits. Frozen implementation review pending author bytes.",
|
||||
"sha256": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
|
||||
"addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"hq-recovery-reserve-2026-11-05": "b3e8335d47e2cb4c3fe00b50666caf3e2acebfbbfe9506980fae9ba471a6bcee",
|
||||
"objective-guidance-2026-11-05": "1d5d93dd0d3642d0ff9f7befdee7ae828df4f0c9ede8602761ab4d29ced2ee95",
|
||||
"integration-check-2026-11-05": "89475d63ca85991c88eea66a169e0401c92128aacc68ccca938904fa2a3cadcd"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
check: /tmp/err-policy-qg43b_h1/check.cpp:81: int main(): Assertion `!f.Allowed()' failed.
|
||||
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
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105-1134/supply-proposal/proposal/tests/test_player_medical.py", line 153, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<53 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-qg43b_h1/check']' died with <Signals.SIGABRT: 6>.
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
// Native injection animation/consumption; only resilience is restored over time.
|
||||
// This is not a blood replacement, bandage, full heal, or resurrection.
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED || !controller || !controller.IsUnconscious())
|
||||
{ failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
array<ref SCR_PersistentDamageEffect> effects = damage.GetAllPersistentEffectsOfType(ERR_EpinephrineEffect);
|
||||
if (!effects.IsEmpty()) { failReason = SCR_EConsumableFailReason.ALREADY_APPLIED; return false; }
|
||||
return true;
|
||||
}
|
||||
}
|
||||
class ERR_EpinephrineEffect : SCR_DotDamageEffect
|
||||
{
|
||||
override bool HijackDamageEffect(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (damage) SetAffectedHitZone(damage.GetResilienceHitZone());
|
||||
return false;
|
||||
}
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
}
|
||||
// Separate stronger field injector. Standard epinephrine above keeps its
|
||||
// resilience-over-time behavior; neither item restores a dead character.
|
||||
class ERR_CombatEpinephrineRules
|
||||
{
|
||||
static float Heal(float current, bool leg)
|
||||
{
|
||||
float amount = 0.15;
|
||||
if (leg) amount = 0.5;
|
||||
return Math.Min(current + amount, 1.0);
|
||||
}
|
||||
static float Blood(float current, float threshold) { return Math.Min(1, current + threshold + 0.01); }
|
||||
}
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableCombatEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) { failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
if (damage.IsBleeding()) return true;
|
||||
HitZone blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();
|
||||
if ((blood && blood.GetHealthScaled() < 1) || (resilience && resilience.GetHealthScaled() < 1)) return true;
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones) if (zone && zone.GetHealthScaled() < 1) return true;
|
||||
failReason = SCR_EConsumableFailReason.UNDAMAGED; return false;
|
||||
}
|
||||
}
|
||||
class ERR_CombatEpinephrineEffect : SCR_InstantDamageEffect
|
||||
{
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
override void OnEffectAdded(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
super.OnEffectAdded(dmgManager);
|
||||
if (!Replication.IsServer()) return;
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) return;
|
||||
foreach (ECharacterHitZoneGroup group : {ECharacterHitZoneGroup.HEAD, ECharacterHitZoneGroup.UPPERTORSO, ECharacterHitZoneGroup.LOWERTORSO, ECharacterHitZoneGroup.LEFTARM, ECharacterHitZoneGroup.RIGHTARM, ECharacterHitZoneGroup.LEFTLEG, ECharacterHitZoneGroup.RIGHTLEG}) damage.RemoveGroupBleeding(group);
|
||||
SCR_CharacterBloodHitZone blood = damage.GetBloodHitZone();
|
||||
if (blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING))
|
||||
blood.SetHealthScaled(ERR_CombatEpinephrineRules.Blood(blood.GetHealthScaled(), blood.GetDamageStateThreshold(ECharacterBloodState.UNCONSCIOUS)));
|
||||
SCR_CharacterResilienceHitZone resilience = damage.GetResilienceHitZone();
|
||||
if (resilience) resilience.SetHealthScaled(1);
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones)
|
||||
{
|
||||
SCR_CharacterHitZone physical = SCR_CharacterHitZone.Cast(zone);
|
||||
if (!physical || zone.GetHealthScaled() >= 1) continue;
|
||||
int group = physical.GetHitZoneGroup();
|
||||
zone.SetHealthScaled(ERR_CombatEpinephrineRules.Heal(zone.GetHealthScaled(), group == ECharacterHitZoneGroup.LEFTLEG || group == ECharacterHitZoneGroup.RIGHTLEG));
|
||||
}
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent));
|
||||
if (controller && controller.IsUnconscious()) controller.SetUnconscious(false);
|
||||
}
|
||||
}
|
||||
// The held injector uses the existing native injection interaction and animation.
|
||||
// Only its displayed name changes; ordinary morphine keeps its native behavior.
|
||||
modded class SCR_MorphineUserAction
|
||||
{
|
||||
protected bool m_ERRHoldingEpinephrine;
|
||||
protected bool m_ERRHoldingCombatEpinephrine;
|
||||
override bool CanBeShownScript(IEntity user)
|
||||
{
|
||||
m_ERRHoldingEpinephrine = false; m_ERRHoldingCombatEpinephrine = false;
|
||||
bool shown = super.CanBeShownScript(user);
|
||||
ChimeraCharacter character = ChimeraCharacter.Cast(user);
|
||||
if (shown && character)
|
||||
{
|
||||
SCR_ConsumableItemComponent item = GetConsumableComponent(character);
|
||||
m_ERRHoldingEpinephrine = item && ERR_ConsumableEpinephrine.Cast(item.GetConsumableEffect());
|
||||
m_ERRHoldingCombatEpinephrine = item && ERR_ConsumableCombatEpinephrine.Cast(item.GetConsumableEffect());
|
||||
}
|
||||
return shown;
|
||||
}
|
||||
override bool GetActionNameScript(out string outName)
|
||||
{
|
||||
if (m_ERRHoldingCombatEpinephrine) { outName = "Administer combat epinephrine"; return true; }
|
||||
if (m_ERRHoldingEpinephrine) { outName = "Administer epinephrine"; return true; }
|
||||
return super.GetActionNameScript(outName);
|
||||
}
|
||||
}
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
"""Execute player policy methods; native damage/regen boundaries are modeled."""
|
||||
from policy_harness import ROOT, body, run
|
||||
p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c'
|
||||
source=p.read_text()
|
||||
methods='\n'.join(body(p,s) for s in ['void ERR_EnableCasualtyProtection(', 'override protected bool IsIndefinitelyUnconscious(', 'override float GetResilienceRegenScale('])
|
||||
methods=methods.replace('override ','').replace('protected ','').replace('Replication.IsServer()','server').replace('super.','Native::')
|
||||
run('''#include <cassert>
|
||||
bool server=true;
|
||||
struct Native {bool unconscious=false,changed=false;float regen=1;int writes=0;bool bleeding=false;
|
||||
void SetPermitUnconsciousness(bool value,bool c){unconscious=value;changed=c;writes++;}
|
||||
void SetRegenScale(float value,bool){regen=value;writes++;}
|
||||
bool IsIndefinitelyUnconscious(bool){return true;}bool IsBleeding(){return bleeding;}float GetResilienceRegenScale(){return .8f;}
|
||||
};
|
||||
struct Policy:Native{bool m_ERRRevivablePlayer=false;
|
||||
'''+methods+'''
|
||||
};
|
||||
int main(){Policy p;server=false;p.ERR_EnableCasualtyProtection();assert(!p.m_ERRRevivablePlayer&&p.writes==0);
|
||||
server=true;p.ERR_EnableCasualtyProtection();assert(p.unconscious&&p.changed&&p.regen==.25f);
|
||||
assert(!p.IsIndefinitelyUnconscious());p.bleeding=true;assert(p.GetResilienceRegenScale()==0);
|
||||
p.bleeding=false;assert(p.GetResilienceRegenScale()==.8f);Policy ai;assert(ai.IsIndefinitelyUnconscious());ai.bleeding=true;assert(ai.GetResilienceRegenScale()==.8f);
|
||||
}
|
||||
''')
|
||||
# Execute the real damage cap across wound/blood scales; healing is untouched.
|
||||
cap=body(p, 'static float AllowedDamage(').replace('Math.Clamp','std::clamp').replace('Math.Min','std::min').replace('Math.Max','std::max').replace('0.01','0.01f').replace(', 1)',', 1.0f)').replace('(0,','(0.0f,')
|
||||
run('''#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
'''+cap+'''
|
||||
int main(){
|
||||
for(float maximum:{100.0f,5000.0f}) for(float threshold:{0.0f,.05f,.2f}) {
|
||||
float floor=maximum*(threshold+.01f);
|
||||
assert(AllowedDamage(-10,maximum,maximum,threshold)==-10);
|
||||
assert(AllowedDamage(100000, floor,maximum,threshold)==0);
|
||||
assert(AllowedDamage(100000, floor/2,maximum,threshold)==0);
|
||||
float health=maximum;
|
||||
for(int i=0;i<1000;i++) health-=AllowedDamage(13,health,maximum,threshold);
|
||||
assert(std::abs(health-floor)<.001f);
|
||||
assert(AllowedDamage(1,maximum,maximum,threshold)==1);
|
||||
}
|
||||
}
|
||||
''')
|
||||
# Passive resilience has its own native rate; treatment DPS bypasses this getter.
|
||||
rate=body(p,'override float CalculatePassiveRegenDPS(').replace('override ','').replace('super.','Native::').replace('SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());','Manager* manager = target;').replace('manager.','manager->')
|
||||
run('''#include <cassert>
|
||||
struct Manager { bool player; bool ERR_IsRevivablePlayer(){return player;} };
|
||||
struct Native {float CalculatePassiveRegenDPS(bool){return 4;}};
|
||||
struct Policy:Native {Manager* target=nullptr;
|
||||
'''+rate+'''
|
||||
};
|
||||
int main(){Policy p;assert(p.CalculatePassiveRegenDPS()==4);Manager ai{false};p.target=&ai;assert(p.CalculatePassiveRegenDPS()==4);ai.player=true;assert(p.CalculatePassiveRegenDPS()==1);assert(p.CalculatePassiveRegenDPS(false)==4);}
|
||||
''')
|
||||
assert 'SCR_CharacterResilienceHitZone.Cast(this)) return damage' in source
|
||||
assert 'damage <= 0' in source and '!manager.ERR_IsRevivablePlayer()' in source
|
||||
assert 'override void Kill(' in source
|
||||
assert 'FullHeal(' not in source and 'SetHealth(' not in source
|
||||
print('PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing')
|
||||
# The native bleeding evaluator recomputes severity after the hit has already
|
||||
# lowered health. Exercise production query/cap methods with native armour at
|
||||
# the virtual-call boundary: low remaining health must not erase wound severity.
|
||||
query=body(p, 'float ERR_ComputeWoundDamage(').replace('notnull BaseDamageContext', 'Context')
|
||||
effective=body(p, 'override float ComputeEffectiveDamage(')
|
||||
effective=effective.replace('override ', 'virtual ').replace('notnull BaseDamageContext', 'Context').replace('super.', 'Native::')
|
||||
effective=effective.replace('Replication.IsServer()', 'server').replace('SCR_CharacterResilienceHitZone.Cast(this)', 'resilience')
|
||||
effective=effective.replace('SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());', 'Manager* manager = target;').replace('manager.', 'manager->')
|
||||
effective=effective.replace('ERR_PlayerMedicalRules.', '').replace('EDamageState.DESTROYED', '0')
|
||||
run('''#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
bool server=true;
|
||||
struct Context {float value;};
|
||||
struct Manager {bool player=true;int knockouts=0;bool ERR_IsRevivablePlayer(){return player;}void ERR_RequestKnockout(){knockouts++;}};
|
||||
struct Native {virtual float ComputeEffectiveDamage(Context c,bool){return c.value;}};
|
||||
'''+cap+'''
|
||||
struct Policy:Native {
|
||||
bool m_ERRWoundQuery=false,resilience=false;Manager* target=nullptr;float health=1;
|
||||
float GetHealth(){return health;}float GetMaxHealth(){return 100;}float GetDamageStateThreshold(int){return 0;}
|
||||
'''+query+effective+'''
|
||||
};
|
||||
struct Armoured:Policy {float armour=1;float ComputeEffectiveDamage(Context c,bool dot) override {if(!dot)c.value*=armour;return Policy::ComputeEffectiveDamage(c,dot);}};
|
||||
int main(){Manager player;Armoured zone;zone.target=&player;
|
||||
assert(zone.ComputeEffectiveDamage({60},false)==0 && player.knockouts==1);
|
||||
assert(zone.ERR_ComputeWoundDamage({60})==60 && player.knockouts==1);
|
||||
assert(!zone.m_ERRWoundQuery && zone.ComputeEffectiveDamage({60},true)==0);
|
||||
assert(zone.ERR_ComputeWoundDamage({2})==2);
|
||||
zone.armour=.2f;assert(std::abs(zone.ERR_ComputeWoundDamage({60})-12)<.001f);
|
||||
assert(zone.ComputeEffectiveDamage({60},false)==0);
|
||||
zone.health=100;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
zone.health=1;player.player=false;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
player.player=true;zone.resilience=true;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
zone.resilience=false;server=false;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
}
|
||||
''')
|
||||
print('PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap')
|
||||
# Run the production recovery prediction over real effect states modeled at the
|
||||
# native boundary, including a pending regeneration delay and exhausted effects.
|
||||
future=body(p,'bool ERR_CanRecoverNaturally(')
|
||||
future=future.replace('array<ref SCR_PersistentDamageEffect> effects','auto effects').replace('GetAllPersistentEffectsOfType(SCR_PassiveHitZoneRegenDamageEffect, true)','GetAllPersistentEffectsOfType()')
|
||||
future=future.replace('foreach (SCR_PersistentDamageEffect effect : effects)','for (Effect* effect : effects)').replace('DotDamageEffect dot = DotDamageEffect.Cast(effect);','Effect* dot = effect;').replace('HitZone zone','Zone* zone').replace('dot.','dot->').replace('zone.','zone->').replace('EDamageType.REGENERATION','1')
|
||||
run('''#include <cassert>
|
||||
#include <vector>
|
||||
struct Zone {float value=0;float GetHealthScaled(){return value;}};
|
||||
struct Effect {Zone* zone;float dps;int type=1;int GetDamageType(){return type;}float GetDPS(){return dps;}Zone* GetAffectedHitZone(){return zone;}};
|
||||
struct Policy {bool m_ERRRevivablePlayer=true,bleeding=false;float scale=1;Zone blood,resilience;std::vector<Effect*> effects;
|
||||
bool IsBleeding(){return bleeding;}auto GetAllPersistentEffectsOfType(){return effects;}
|
||||
Zone* GetBloodHitZone(){return &blood;}Zone* GetResilienceHitZone(){return &resilience;}float GetResilienceRegenScale(){return scale;}
|
||||
'''+future+'''
|
||||
};
|
||||
int main(){Policy p;assert(!p.ERR_CanRecoverNaturally());Effect e{&p.blood,-.1f};p.effects={&e};
|
||||
assert(p.ERR_CanRecoverNaturally());p.bleeding=true;assert(!p.ERR_CanRecoverNaturally());p.bleeding=false;
|
||||
p.blood.value=1;assert(!p.ERR_CanRecoverNaturally());p.blood.value=.2;
|
||||
e.dps=0;assert(!p.ERR_CanRecoverNaturally());e.dps=-1;e.type=2;assert(!p.ERR_CanRecoverNaturally());e.type=1;
|
||||
e.zone=&p.resilience;p.scale=0;assert(!p.ERR_CanRecoverNaturally());p.scale=.1;assert(p.ERR_CanRecoverNaturally());
|
||||
p.m_ERRRevivablePlayer=false;assert(!p.ERR_CanRecoverNaturally());
|
||||
}
|
||||
''')
|
||||
print('PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat')
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
check: /tmp/err-policy-gy4hr1ou/check.cpp:86: int main(): Assertion `f.Allowed()' failed.
|
||||
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
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105-1134/supply-proposal/proposal/tests/test_player_medical.py", line 153, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<53 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-gy4hr1ou/check']' died with <Signals.SIGABRT: 6>.
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"status": "demonstrated in actual-method policy harness",
|
||||
"trigger": "Living conscious nonbleeding patient; blood above native FAINTING threshold but below full; resilience and physical zones full.",
|
||||
"before": "CanApplyEffect admits blood<1; actual authored OnEffectAdded leaves this patient unchanged. Native ordinary consumable application deletes on use, so eligibility can offer a finite useless dose.",
|
||||
"after": "Blood-only admission uses the same <=FAINTING threshold as the unchanged effect. Explicit native unconsciousness is independently useful and admitted after missing/dead guard; missing controller does not block other benefits.",
|
||||
"scope": "One eligibility method and appended controls in existing registered test_player_medical.py; no new effect, refill, stock, source actor or controller flow.",
|
||||
"unchanged_method_hashes": {
|
||||
"class ERR_ConsumableEpinephrine": "f9e1d20314a2fe27f91b54fd129406b5aa3ad07f88f07094c2677652a5ea9597",
|
||||
"class ERR_EpinephrineEffect": "fbce1bd66fecbcc5e36772aaea16291e380a1b3eb5c77ae93c34f7aac5f240e1",
|
||||
"class ERR_CombatEpinephrineRules": "b9d8faa84f90a8ab7d159136c6273c957ab363337d83ba28d29c2ab613e10fd9",
|
||||
"class ERR_CombatEpinephrineEffect": "21b78b827258b76e0edd51dc6b9f39f7d354a2b1876fe15c6e7dd37c45c917d7",
|
||||
"modded class SCR_MorphineUserAction": "633db427c1b287075f922d97b2fe5ef27f4bae795b0dacb3221562ca7b0b5059"
|
||||
},
|
||||
"validation": [
|
||||
{
|
||||
"case": "baseline-red",
|
||||
"exit_code": 1,
|
||||
"log": "baseline-red.log",
|
||||
"expected": "runtime assertion failure",
|
||||
"result": "compiled, assertion !f.Allowed() fails for mild blood-only patient"
|
||||
},
|
||||
{
|
||||
"case": "green",
|
||||
"exit_code": 0,
|
||||
"log": "green.log",
|
||||
"expected": 0,
|
||||
"result": "all existing and appended controls pass"
|
||||
},
|
||||
{
|
||||
"case": "consciousness-mutation-red",
|
||||
"exit_code": 1,
|
||||
"log": "consciousness-mutation-red.log",
|
||||
"expected": "runtime assertion failure",
|
||||
"result": "compiled, assertion f.Allowed() fails for unconscious patient"
|
||||
}
|
||||
],
|
||||
"limitations": [
|
||||
"Native superclass/effect propagation and inventory/animation/remote consumption are opaque doubles; no new native test or multiplayer qualification.",
|
||||
"Inspected vanilla consumable implementation is retained local script-diff-v1.8.0.10 source, not a newly verified live SDK version.",
|
||||
"Prior compile-only mutant rejected due unused variable is preserved separately and is not runtime proof."
|
||||
],
|
||||
"reference_metadata": {
|
||||
"/home/jakub/devel/escapistsrereintroduced/addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c
|
||||
@@ -43,9 +43,11 @@
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) { failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
+ CharacterControllerComponent controller = CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent));
|
||||
+ if (controller && controller.IsUnconscious()) return true;
|
||||
if (damage.IsBleeding()) return true;
|
||||
HitZone blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();
|
||||
- if ((blood && blood.GetHealthScaled() < 1) || (resilience && resilience.GetHealthScaled() < 1)) return true;
|
||||
+ if ((blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING)) || (resilience && resilience.GetHealthScaled() < 1)) return true;
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones) if (zone && zone.GetHealthScaled() < 1) return true;
|
||||
failReason = SCR_EConsumableFailReason.UNDAMAGED; return false;
|
||||
--- a/tests/test_player_medical.py
|
||||
+++ b/tests/test_player_medical.py
|
||||
@@ -114,3 +114,100 @@
|
||||
}
|
||||
''')
|
||||
print('PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat')
|
||||
+
|
||||
+
|
||||
+"""Actual combat injector admission/effect; native component/effect boundaries doubled.
|
||||
+No animation, inventory consumption, replication or native base-effect qualification.
|
||||
+"""
|
||||
+from pathlib import Path
|
||||
+import os, re
|
||||
+from policy_harness import ROOT, body, run
|
||||
+p=Path(os.environ.get('ERR_EPINEPHRINE_SOURCE', ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c'))
|
||||
+s=p.read_text()
|
||||
+def method(class_name, signature):
|
||||
+ start=s.index('class '+class_name)
|
||||
+ a=s.index(signature,start); b=s.index('{',a); end=b+1; depth=1
|
||||
+ while depth:
|
||||
+ depth+=(s[end]=='{')-(s[end]=='}'); end+=1
|
||||
+ return s[a:end]
|
||||
+def cpp(t):
|
||||
+ t=t.replace('override ', '').replace('notnull ', '').replace('out SCR_EConsumableFailReason failReason','SCR_EConsumableFailReason& failReason')
|
||||
+ t=t.replace('SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent))','target->damage')
|
||||
+ t=t.replace('SCR_CharacterDamageManagerComponent.Cast(dmgManager)','dmgManager')
|
||||
+ t=t.replace('CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent))','target->controller')
|
||||
+ t=t.replace('CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent))','damage->owner->controller')
|
||||
+ t=t.replace('SCR_CharacterHitZone.Cast(zone)','dynamic_cast<SCR_CharacterHitZone*>(zone)')
|
||||
+ t=t.replace('array<HitZone>', 'Array<HitZone*>').replace('foreach (', 'for (').replace('null','nullptr')
|
||||
+ for typ in ('SCR_CharacterDamageManagerComponent','SCR_ExtendedDamageManagerComponent','HitZone','SCR_CharacterBloodHitZone','SCR_CharacterResilienceHitZone','SCR_CharacterHitZone','CharacterControllerComponent'):
|
||||
+ t=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',t)
|
||||
+ t=t.replace('HitZone* blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();','HitZone* blood = damage.GetBloodHitZone(); HitZone* resilience = damage.GetResilienceHitZone();')
|
||||
+ for obj in ('damage','blood','resilience','zone','physical','controller'):
|
||||
+ t=t.replace(obj+'.',obj+'->')
|
||||
+ for obj in ('EDamageState','SCR_EConsumableFailReason','ECharacterBloodState','ECharacterHitZoneGroup','ERR_CombatEpinephrineRules','Replication','Math'):
|
||||
+ t=t.replace(obj+'.',obj+'::')
|
||||
+ t=t.replace('super.', 'Native::')
|
||||
+ return t
|
||||
+rules=cpp(body(p,'class ERR_CombatEpinephrineRules')).replace('class ERR_CombatEpinephrineRules','struct ERR_CombatEpinephrineRules')+';'
|
||||
+admit=cpp(method('ERR_ConsumableCombatEpinephrine','override bool CanApplyEffect('))
|
||||
+effect=cpp(method('ERR_CombatEpinephrineEffect','override void OnEffectAdded('))
|
||||
+run(r'''
|
||||
+#include <cassert>
|
||||
+#include <vector>
|
||||
+#include <algorithm>
|
||||
+#include <cmath>
|
||||
+namespace EDamageState{enum{UNDAMAGED,DESTROYED};}
|
||||
+enum class SCR_EConsumableFailReason{NONE,UNDAMAGED};
|
||||
+namespace ECharacterBloodState{enum{FAINTING,UNCONSCIOUS};}
|
||||
+enum class ECharacterHitZoneGroup{HEAD,UPPERTORSO,LOWERTORSO,LEFTARM,RIGHTARM,LEFTLEG,RIGHTLEG};
|
||||
+namespace Replication{bool server=true;bool IsServer(){return server;}}
|
||||
+namespace Math{float Min(float a,float b){return std::min(a,b);}}
|
||||
+template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;};
|
||||
+struct HitZone{float health=1;virtual ~HitZone()=default;float GetHealthScaled(){return health;}void SetHealthScaled(float n){health=n;}virtual float GetDamageStateThreshold(int){return .7f;}};
|
||||
+struct SCR_CharacterBloodHitZone:HitZone{float faint=.7f,unconscious=.5f;float GetDamageStateThreshold(int state)override{return state==ECharacterBloodState::FAINTING?faint:unconscious;}};
|
||||
+struct SCR_CharacterResilienceHitZone:HitZone{};
|
||||
+struct SCR_CharacterHitZone:HitZone{ECharacterHitZoneGroup group=ECharacterHitZoneGroup::LEFTARM;int GetHitZoneGroup(){return int(group);}};
|
||||
+// The source compares enum to an int; Enforce permits this conversion.
|
||||
+bool operator==(int a,ECharacterHitZoneGroup b){return a==int(b);}
|
||||
+struct CharacterControllerComponent{bool unconscious=false;bool IsUnconscious(){return unconscious;}void SetUnconscious(bool n){unconscious=n;}};
|
||||
+struct SCR_CharacterDamageManagerComponent;
|
||||
+struct Entity{SCR_CharacterDamageManagerComponent* damage=nullptr;CharacterControllerComponent*controller=nullptr;};using IEntity=Entity*;
|
||||
+struct SCR_CharacterDamageManagerComponent{Entity*owner=nullptr;int state=EDamageState::UNDAMAGED;bool bleeding=false;SCR_CharacterBloodHitZone*blood=nullptr;SCR_CharacterResilienceHitZone*resilience=nullptr;Array<HitZone*>zones;
|
||||
+ int GetState(){return state;}bool IsBleeding(){return bleeding;}SCR_CharacterBloodHitZone*GetBloodHitZone(){return blood;}SCR_CharacterResilienceHitZone*GetResilienceHitZone(){return resilience;}void GetPhysicalHitZones(Array<HitZone*>&out){out=zones;}void RemoveGroupBleeding(ECharacterHitZoneGroup){bleeding=false;}
|
||||
+};
|
||||
+using SCR_ExtendedDamageManagerComponent=SCR_CharacterDamageManagerComponent;
|
||||
+// Native inherited effect handling is opaque. No extra health restoration is
|
||||
+// fabricated: the authored effect is instant and supplies no generic damage.
|
||||
+struct Native{int calls=0;void OnEffectAdded(SCR_ExtendedDamageManagerComponent*){calls++;}};
|
||||
+'''+rules+'\nstruct Admission{'+admit+'};\nstruct Effect:Native{'+effect+r'''};
|
||||
+struct Fixture{Entity actor;CharacterControllerComponent controller;SCR_CharacterDamageManagerComponent damage;SCR_CharacterBloodHitZone blood;SCR_CharacterResilienceHitZone resilience;SCR_CharacterHitZone arm,leg;Admission admission;Effect effect;
|
||||
+ Fixture(){actor.damage=&damage;actor.controller=&controller;damage.owner=&actor;damage.blood=&blood;damage.resilience=&resilience;leg.group=ECharacterHitZoneGroup::LEFTLEG;damage.zones={&arm,&leg};Replication::server=true;}
|
||||
+ bool Allowed(){SCR_EConsumableFailReason reason=SCR_EConsumableFailReason::NONE;return admission.CanApplyEffect(&actor,&actor,reason);}
|
||||
+ void Apply(){effect.OnEffectAdded(&damage);}
|
||||
+};
|
||||
+int main(){
|
||||
+ // Concrete baseline mismatch: mild blood loss is the only injury. Applying the
|
||||
+ // actual effect changes no health/bleeding/consciousness, so admission must refuse.
|
||||
+ for(float value:{.7001f,.85f,.999f}){Fixture f;f.blood.health=value;f.Apply();assert(f.effect.calls==1&&f.blood.health==value&&f.resilience.health==1&&f.arm.health==1&&f.leg.health==1&&!f.damage.bleeding&&!f.controller.unconscious);assert(!f.Allowed());}
|
||||
+ // Native threshold is data-driven, including exact equality; no guessed cutoff.
|
||||
+ for(float cutoff:{.6f,.7f,.8f}){Fixture f;f.blood.faint=cutoff;f.blood.health=cutoff;assert(f.Allowed());f.Apply();assert(f.blood.health>cutoff);}
|
||||
+ {Fixture f;f.blood.health=.3f;assert(f.Allowed());f.Apply();assert(f.blood.health>.3f);}
|
||||
+ // Waking is an independent implemented benefit, including full health.
|
||||
+ for(float blood:{.9f,1.f}){Fixture f;f.blood.health=blood;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(!f.controller.unconscious&&f.blood.health==blood);}
|
||||
+ {Fixture f;f.controller.unconscious=true;f.damage.state=EDamageState::DESTROYED;assert(!f.Allowed());f.Apply();assert(f.controller.unconscious);}
|
||||
+ // Preserve all other useful existing benefits even with mildly depleted blood.
|
||||
+ {Fixture f;f.blood.health=.9f;f.damage.bleeding=true;assert(f.Allowed());f.Apply();assert(!f.damage.bleeding&&f.blood.health==.9f);}
|
||||
+ {Fixture f;f.blood.health=.9f;f.resilience.health=.2f;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(f.resilience.health==1&&!f.controller.unconscious&&f.blood.health==.9f);}
|
||||
+ {Fixture f;f.blood.health=.9f;f.arm.health=.5f;assert(f.Allowed());f.Apply();assert(std::abs(f.arm.health-.65f)<.00001f);}
|
||||
+ {Fixture f;f.leg.health=.2f;assert(f.Allowed());f.Apply();assert(std::abs(f.leg.health-.7f)<.00001f);}
|
||||
+ // A missing controller must not suppress non-consciousness benefits.
|
||||
+ for(int benefit=0;benefit<4;benefit++){Fixture f;f.actor.controller=nullptr;if(benefit==0)f.damage.bleeding=true;if(benefit==1)f.blood.health=.3f;if(benefit==2)f.resilience.health=.3f;if(benefit==3)f.arm.health=.3f;assert(f.Allowed());f.Apply();}
|
||||
+ {Fixture f;assert(!f.Allowed());f.actor.damage=nullptr;assert(!f.Allowed());}
|
||||
+ {Fixture f;f.damage.state=EDamageState::DESTROYED;f.damage.bleeding=true;f.blood.health=.1f;assert(!f.Allowed());f.Apply();assert(f.blood.health==.1f&&f.damage.bleeding);}
|
||||
+ {Fixture f;f.damage.blood=nullptr;f.damage.resilience=nullptr;assert(!f.Allowed());f.arm.health=.5f;assert(f.Allowed());}
|
||||
+ {Fixture f;f.blood.health=.1f;Replication::server=false;f.Apply();assert(f.blood.health==.1f);}
|
||||
+}
|
||||
+''')
|
||||
+prefab=(ROOT/'addons/core/Prefabs/ERR/CombatEpinephrine.et').read_text()
|
||||
+assert 'm_fItemRegenerationSpeed 0' in prefab and 'm_fItemRegenerationDuration 0' in prefab
|
||||
+assert 'ERR_CombatEpinephrineEffect' in prefab
|
||||
+print('PASS: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested')
|
||||
@@ -0,0 +1,4 @@
|
||||
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: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
/tmp/err-policy-_hmozrxx/check.cpp: In member function ‘bool Admission::CanApplyEffect(IEntity, IEntity, SCR_EConsumableFailReason&)’:
|
||||
/tmp/err-policy-_hmozrxx/check.cpp:43:33: error: unused variable ‘controller’ [-Werror=unused-variable]
|
||||
43 | CharacterControllerComponent* controller = target->controller;
|
||||
| ^~~~~~~~~~
|
||||
cc1plus: all warnings being treated as errors
|
||||
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
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105-1134/supply-proposal/proposal/tests/test_player_medical.py", line 153, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<53 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 13, in run
|
||||
subprocess.run(['g++','-std=c++17','-Wall','-Werror',str(p/'check.cpp'),'-o',str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['g++', '-std=c++17', '-Wall', '-Werror', '/tmp/err-policy-_hmozrxx/check.cpp', '-o', '/tmp/err-policy-_hmozrxx/check']' returned non-zero exit status 1.
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
// Native injection animation/consumption; only resilience is restored over time.
|
||||
// This is not a blood replacement, bandage, full heal, or resurrection.
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED || !controller || !controller.IsUnconscious())
|
||||
{ failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
array<ref SCR_PersistentDamageEffect> effects = damage.GetAllPersistentEffectsOfType(ERR_EpinephrineEffect);
|
||||
if (!effects.IsEmpty()) { failReason = SCR_EConsumableFailReason.ALREADY_APPLIED; return false; }
|
||||
return true;
|
||||
}
|
||||
}
|
||||
class ERR_EpinephrineEffect : SCR_DotDamageEffect
|
||||
{
|
||||
override bool HijackDamageEffect(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (damage) SetAffectedHitZone(damage.GetResilienceHitZone());
|
||||
return false;
|
||||
}
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
}
|
||||
// Separate stronger field injector. Standard epinephrine above keeps its
|
||||
// resilience-over-time behavior; neither item restores a dead character.
|
||||
class ERR_CombatEpinephrineRules
|
||||
{
|
||||
static float Heal(float current, bool leg)
|
||||
{
|
||||
float amount = 0.15;
|
||||
if (leg) amount = 0.5;
|
||||
return Math.Min(current + amount, 1.0);
|
||||
}
|
||||
static float Blood(float current, float threshold) { return Math.Min(1, current + threshold + 0.01); }
|
||||
}
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableCombatEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) { failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent));
|
||||
if (controller && controller.IsUnconscious()) return true;
|
||||
if (damage.IsBleeding()) return true;
|
||||
HitZone blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();
|
||||
if ((blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING)) || (resilience && resilience.GetHealthScaled() < 1)) return true;
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones) if (zone && zone.GetHealthScaled() < 1) return true;
|
||||
failReason = SCR_EConsumableFailReason.UNDAMAGED; return false;
|
||||
}
|
||||
}
|
||||
class ERR_CombatEpinephrineEffect : SCR_InstantDamageEffect
|
||||
{
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
override void OnEffectAdded(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
super.OnEffectAdded(dmgManager);
|
||||
if (!Replication.IsServer()) return;
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) return;
|
||||
foreach (ECharacterHitZoneGroup group : {ECharacterHitZoneGroup.HEAD, ECharacterHitZoneGroup.UPPERTORSO, ECharacterHitZoneGroup.LOWERTORSO, ECharacterHitZoneGroup.LEFTARM, ECharacterHitZoneGroup.RIGHTARM, ECharacterHitZoneGroup.LEFTLEG, ECharacterHitZoneGroup.RIGHTLEG}) damage.RemoveGroupBleeding(group);
|
||||
SCR_CharacterBloodHitZone blood = damage.GetBloodHitZone();
|
||||
if (blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING))
|
||||
blood.SetHealthScaled(ERR_CombatEpinephrineRules.Blood(blood.GetHealthScaled(), blood.GetDamageStateThreshold(ECharacterBloodState.UNCONSCIOUS)));
|
||||
SCR_CharacterResilienceHitZone resilience = damage.GetResilienceHitZone();
|
||||
if (resilience) resilience.SetHealthScaled(1);
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones)
|
||||
{
|
||||
SCR_CharacterHitZone physical = SCR_CharacterHitZone.Cast(zone);
|
||||
if (!physical || zone.GetHealthScaled() >= 1) continue;
|
||||
int group = physical.GetHitZoneGroup();
|
||||
zone.SetHealthScaled(ERR_CombatEpinephrineRules.Heal(zone.GetHealthScaled(), group == ECharacterHitZoneGroup.LEFTLEG || group == ECharacterHitZoneGroup.RIGHTLEG));
|
||||
}
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent));
|
||||
if (controller && controller.IsUnconscious()) controller.SetUnconscious(false);
|
||||
}
|
||||
}
|
||||
// The held injector uses the existing native injection interaction and animation.
|
||||
// Only its displayed name changes; ordinary morphine keeps its native behavior.
|
||||
modded class SCR_MorphineUserAction
|
||||
{
|
||||
protected bool m_ERRHoldingEpinephrine;
|
||||
protected bool m_ERRHoldingCombatEpinephrine;
|
||||
override bool CanBeShownScript(IEntity user)
|
||||
{
|
||||
m_ERRHoldingEpinephrine = false; m_ERRHoldingCombatEpinephrine = false;
|
||||
bool shown = super.CanBeShownScript(user);
|
||||
ChimeraCharacter character = ChimeraCharacter.Cast(user);
|
||||
if (shown && character)
|
||||
{
|
||||
SCR_ConsumableItemComponent item = GetConsumableComponent(character);
|
||||
m_ERRHoldingEpinephrine = item && ERR_ConsumableEpinephrine.Cast(item.GetConsumableEffect());
|
||||
m_ERRHoldingCombatEpinephrine = item && ERR_ConsumableCombatEpinephrine.Cast(item.GetConsumableEffect());
|
||||
}
|
||||
return shown;
|
||||
}
|
||||
override bool GetActionNameScript(out string outName)
|
||||
{
|
||||
if (m_ERRHoldingCombatEpinephrine) { outName = "Administer combat epinephrine"; return true; }
|
||||
if (m_ERRHoldingEpinephrine) { outName = "Administer epinephrine"; return true; }
|
||||
return super.GetActionNameScript(outName);
|
||||
}
|
||||
}
|
||||
+213
@@ -0,0 +1,213 @@
|
||||
"""Execute player policy methods; native damage/regen boundaries are modeled."""
|
||||
from policy_harness import ROOT, body, run
|
||||
p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c'
|
||||
source=p.read_text()
|
||||
methods='\n'.join(body(p,s) for s in ['void ERR_EnableCasualtyProtection(', 'override protected bool IsIndefinitelyUnconscious(', 'override float GetResilienceRegenScale('])
|
||||
methods=methods.replace('override ','').replace('protected ','').replace('Replication.IsServer()','server').replace('super.','Native::')
|
||||
run('''#include <cassert>
|
||||
bool server=true;
|
||||
struct Native {bool unconscious=false,changed=false;float regen=1;int writes=0;bool bleeding=false;
|
||||
void SetPermitUnconsciousness(bool value,bool c){unconscious=value;changed=c;writes++;}
|
||||
void SetRegenScale(float value,bool){regen=value;writes++;}
|
||||
bool IsIndefinitelyUnconscious(bool){return true;}bool IsBleeding(){return bleeding;}float GetResilienceRegenScale(){return .8f;}
|
||||
};
|
||||
struct Policy:Native{bool m_ERRRevivablePlayer=false;
|
||||
'''+methods+'''
|
||||
};
|
||||
int main(){Policy p;server=false;p.ERR_EnableCasualtyProtection();assert(!p.m_ERRRevivablePlayer&&p.writes==0);
|
||||
server=true;p.ERR_EnableCasualtyProtection();assert(p.unconscious&&p.changed&&p.regen==.25f);
|
||||
assert(!p.IsIndefinitelyUnconscious());p.bleeding=true;assert(p.GetResilienceRegenScale()==0);
|
||||
p.bleeding=false;assert(p.GetResilienceRegenScale()==.8f);Policy ai;assert(ai.IsIndefinitelyUnconscious());ai.bleeding=true;assert(ai.GetResilienceRegenScale()==.8f);
|
||||
}
|
||||
''')
|
||||
# Execute the real damage cap across wound/blood scales; healing is untouched.
|
||||
cap=body(p, 'static float AllowedDamage(').replace('Math.Clamp','std::clamp').replace('Math.Min','std::min').replace('Math.Max','std::max').replace('0.01','0.01f').replace(', 1)',', 1.0f)').replace('(0,','(0.0f,')
|
||||
run('''#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
'''+cap+'''
|
||||
int main(){
|
||||
for(float maximum:{100.0f,5000.0f}) for(float threshold:{0.0f,.05f,.2f}) {
|
||||
float floor=maximum*(threshold+.01f);
|
||||
assert(AllowedDamage(-10,maximum,maximum,threshold)==-10);
|
||||
assert(AllowedDamage(100000, floor,maximum,threshold)==0);
|
||||
assert(AllowedDamage(100000, floor/2,maximum,threshold)==0);
|
||||
float health=maximum;
|
||||
for(int i=0;i<1000;i++) health-=AllowedDamage(13,health,maximum,threshold);
|
||||
assert(std::abs(health-floor)<.001f);
|
||||
assert(AllowedDamage(1,maximum,maximum,threshold)==1);
|
||||
}
|
||||
}
|
||||
''')
|
||||
# Passive resilience has its own native rate; treatment DPS bypasses this getter.
|
||||
rate=body(p,'override float CalculatePassiveRegenDPS(').replace('override ','').replace('super.','Native::').replace('SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());','Manager* manager = target;').replace('manager.','manager->')
|
||||
run('''#include <cassert>
|
||||
struct Manager { bool player; bool ERR_IsRevivablePlayer(){return player;} };
|
||||
struct Native {float CalculatePassiveRegenDPS(bool){return 4;}};
|
||||
struct Policy:Native {Manager* target=nullptr;
|
||||
'''+rate+'''
|
||||
};
|
||||
int main(){Policy p;assert(p.CalculatePassiveRegenDPS()==4);Manager ai{false};p.target=&ai;assert(p.CalculatePassiveRegenDPS()==4);ai.player=true;assert(p.CalculatePassiveRegenDPS()==1);assert(p.CalculatePassiveRegenDPS(false)==4);}
|
||||
''')
|
||||
assert 'SCR_CharacterResilienceHitZone.Cast(this)) return damage' in source
|
||||
assert 'damage <= 0' in source and '!manager.ERR_IsRevivablePlayer()' in source
|
||||
assert 'override void Kill(' in source
|
||||
assert 'FullHeal(' not in source and 'SetHealth(' not in source
|
||||
print('PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing')
|
||||
# The native bleeding evaluator recomputes severity after the hit has already
|
||||
# lowered health. Exercise production query/cap methods with native armour at
|
||||
# the virtual-call boundary: low remaining health must not erase wound severity.
|
||||
query=body(p, 'float ERR_ComputeWoundDamage(').replace('notnull BaseDamageContext', 'Context')
|
||||
effective=body(p, 'override float ComputeEffectiveDamage(')
|
||||
effective=effective.replace('override ', 'virtual ').replace('notnull BaseDamageContext', 'Context').replace('super.', 'Native::')
|
||||
effective=effective.replace('Replication.IsServer()', 'server').replace('SCR_CharacterResilienceHitZone.Cast(this)', 'resilience')
|
||||
effective=effective.replace('SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());', 'Manager* manager = target;').replace('manager.', 'manager->')
|
||||
effective=effective.replace('ERR_PlayerMedicalRules.', '').replace('EDamageState.DESTROYED', '0')
|
||||
run('''#include <algorithm>
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
bool server=true;
|
||||
struct Context {float value;};
|
||||
struct Manager {bool player=true;int knockouts=0;bool ERR_IsRevivablePlayer(){return player;}void ERR_RequestKnockout(){knockouts++;}};
|
||||
struct Native {virtual float ComputeEffectiveDamage(Context c,bool){return c.value;}};
|
||||
'''+cap+'''
|
||||
struct Policy:Native {
|
||||
bool m_ERRWoundQuery=false,resilience=false;Manager* target=nullptr;float health=1;
|
||||
float GetHealth(){return health;}float GetMaxHealth(){return 100;}float GetDamageStateThreshold(int){return 0;}
|
||||
'''+query+effective+'''
|
||||
};
|
||||
struct Armoured:Policy {float armour=1;float ComputeEffectiveDamage(Context c,bool dot) override {if(!dot)c.value*=armour;return Policy::ComputeEffectiveDamage(c,dot);}};
|
||||
int main(){Manager player;Armoured zone;zone.target=&player;
|
||||
assert(zone.ComputeEffectiveDamage({60},false)==0 && player.knockouts==1);
|
||||
assert(zone.ERR_ComputeWoundDamage({60})==60 && player.knockouts==1);
|
||||
assert(!zone.m_ERRWoundQuery && zone.ComputeEffectiveDamage({60},true)==0);
|
||||
assert(zone.ERR_ComputeWoundDamage({2})==2);
|
||||
zone.armour=.2f;assert(std::abs(zone.ERR_ComputeWoundDamage({60})-12)<.001f);
|
||||
assert(zone.ComputeEffectiveDamage({60},false)==0);
|
||||
zone.health=100;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
zone.health=1;player.player=false;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
player.player=true;zone.resilience=true;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
zone.resilience=false;server=false;assert(std::abs(zone.ComputeEffectiveDamage({60},false)-12)<.001f);
|
||||
}
|
||||
''')
|
||||
print('PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap')
|
||||
# Run the production recovery prediction over real effect states modeled at the
|
||||
# native boundary, including a pending regeneration delay and exhausted effects.
|
||||
future=body(p,'bool ERR_CanRecoverNaturally(')
|
||||
future=future.replace('array<ref SCR_PersistentDamageEffect> effects','auto effects').replace('GetAllPersistentEffectsOfType(SCR_PassiveHitZoneRegenDamageEffect, true)','GetAllPersistentEffectsOfType()')
|
||||
future=future.replace('foreach (SCR_PersistentDamageEffect effect : effects)','for (Effect* effect : effects)').replace('DotDamageEffect dot = DotDamageEffect.Cast(effect);','Effect* dot = effect;').replace('HitZone zone','Zone* zone').replace('dot.','dot->').replace('zone.','zone->').replace('EDamageType.REGENERATION','1')
|
||||
run('''#include <cassert>
|
||||
#include <vector>
|
||||
struct Zone {float value=0;float GetHealthScaled(){return value;}};
|
||||
struct Effect {Zone* zone;float dps;int type=1;int GetDamageType(){return type;}float GetDPS(){return dps;}Zone* GetAffectedHitZone(){return zone;}};
|
||||
struct Policy {bool m_ERRRevivablePlayer=true,bleeding=false;float scale=1;Zone blood,resilience;std::vector<Effect*> effects;
|
||||
bool IsBleeding(){return bleeding;}auto GetAllPersistentEffectsOfType(){return effects;}
|
||||
Zone* GetBloodHitZone(){return &blood;}Zone* GetResilienceHitZone(){return &resilience;}float GetResilienceRegenScale(){return scale;}
|
||||
'''+future+'''
|
||||
};
|
||||
int main(){Policy p;assert(!p.ERR_CanRecoverNaturally());Effect e{&p.blood,-.1f};p.effects={&e};
|
||||
assert(p.ERR_CanRecoverNaturally());p.bleeding=true;assert(!p.ERR_CanRecoverNaturally());p.bleeding=false;
|
||||
p.blood.value=1;assert(!p.ERR_CanRecoverNaturally());p.blood.value=.2;
|
||||
e.dps=0;assert(!p.ERR_CanRecoverNaturally());e.dps=-1;e.type=2;assert(!p.ERR_CanRecoverNaturally());e.type=1;
|
||||
e.zone=&p.resilience;p.scale=0;assert(!p.ERR_CanRecoverNaturally());p.scale=.1;assert(p.ERR_CanRecoverNaturally());
|
||||
p.m_ERRRevivablePlayer=false;assert(!p.ERR_CanRecoverNaturally());
|
||||
}
|
||||
''')
|
||||
print('PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat')
|
||||
|
||||
|
||||
"""Actual combat injector admission/effect; native component/effect boundaries doubled.
|
||||
No animation, inventory consumption, replication or native base-effect qualification.
|
||||
"""
|
||||
from pathlib import Path
|
||||
import os, re
|
||||
from policy_harness import ROOT, body, run
|
||||
p=Path(os.environ.get('ERR_EPINEPHRINE_SOURCE', ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c'))
|
||||
s=p.read_text()
|
||||
def method(class_name, signature):
|
||||
start=s.index('class '+class_name)
|
||||
a=s.index(signature,start); b=s.index('{',a); end=b+1; depth=1
|
||||
while depth:
|
||||
depth+=(s[end]=='{')-(s[end]=='}'); end+=1
|
||||
return s[a:end]
|
||||
def cpp(t):
|
||||
t=t.replace('override ', '').replace('notnull ', '').replace('out SCR_EConsumableFailReason failReason','SCR_EConsumableFailReason& failReason')
|
||||
t=t.replace('SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent))','target->damage')
|
||||
t=t.replace('SCR_CharacterDamageManagerComponent.Cast(dmgManager)','dmgManager')
|
||||
t=t.replace('CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent))','target->controller')
|
||||
t=t.replace('CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent))','damage->owner->controller')
|
||||
t=t.replace('SCR_CharacterHitZone.Cast(zone)','dynamic_cast<SCR_CharacterHitZone*>(zone)')
|
||||
t=t.replace('array<HitZone>', 'Array<HitZone*>').replace('foreach (', 'for (').replace('null','nullptr')
|
||||
for typ in ('SCR_CharacterDamageManagerComponent','SCR_ExtendedDamageManagerComponent','HitZone','SCR_CharacterBloodHitZone','SCR_CharacterResilienceHitZone','SCR_CharacterHitZone','CharacterControllerComponent'):
|
||||
t=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',t)
|
||||
t=t.replace('HitZone* blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();','HitZone* blood = damage.GetBloodHitZone(); HitZone* resilience = damage.GetResilienceHitZone();')
|
||||
for obj in ('damage','blood','resilience','zone','physical','controller'):
|
||||
t=t.replace(obj+'.',obj+'->')
|
||||
for obj in ('EDamageState','SCR_EConsumableFailReason','ECharacterBloodState','ECharacterHitZoneGroup','ERR_CombatEpinephrineRules','Replication','Math'):
|
||||
t=t.replace(obj+'.',obj+'::')
|
||||
t=t.replace('super.', 'Native::')
|
||||
return t
|
||||
rules=cpp(body(p,'class ERR_CombatEpinephrineRules')).replace('class ERR_CombatEpinephrineRules','struct ERR_CombatEpinephrineRules')+';'
|
||||
admit=cpp(method('ERR_ConsumableCombatEpinephrine','override bool CanApplyEffect('))
|
||||
effect=cpp(method('ERR_CombatEpinephrineEffect','override void OnEffectAdded('))
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
namespace EDamageState{enum{UNDAMAGED,DESTROYED};}
|
||||
enum class SCR_EConsumableFailReason{NONE,UNDAMAGED};
|
||||
namespace ECharacterBloodState{enum{FAINTING,UNCONSCIOUS};}
|
||||
enum class ECharacterHitZoneGroup{HEAD,UPPERTORSO,LOWERTORSO,LEFTARM,RIGHTARM,LEFTLEG,RIGHTLEG};
|
||||
namespace Replication{bool server=true;bool IsServer(){return server;}}
|
||||
namespace Math{float Min(float a,float b){return std::min(a,b);}}
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;};
|
||||
struct HitZone{float health=1;virtual ~HitZone()=default;float GetHealthScaled(){return health;}void SetHealthScaled(float n){health=n;}virtual float GetDamageStateThreshold(int){return .7f;}};
|
||||
struct SCR_CharacterBloodHitZone:HitZone{float faint=.7f,unconscious=.5f;float GetDamageStateThreshold(int state)override{return state==ECharacterBloodState::FAINTING?faint:unconscious;}};
|
||||
struct SCR_CharacterResilienceHitZone:HitZone{};
|
||||
struct SCR_CharacterHitZone:HitZone{ECharacterHitZoneGroup group=ECharacterHitZoneGroup::LEFTARM;int GetHitZoneGroup(){return int(group);}};
|
||||
// The source compares enum to an int; Enforce permits this conversion.
|
||||
bool operator==(int a,ECharacterHitZoneGroup b){return a==int(b);}
|
||||
struct CharacterControllerComponent{bool unconscious=false;bool IsUnconscious(){return unconscious;}void SetUnconscious(bool n){unconscious=n;}};
|
||||
struct SCR_CharacterDamageManagerComponent;
|
||||
struct Entity{SCR_CharacterDamageManagerComponent* damage=nullptr;CharacterControllerComponent*controller=nullptr;};using IEntity=Entity*;
|
||||
struct SCR_CharacterDamageManagerComponent{Entity*owner=nullptr;int state=EDamageState::UNDAMAGED;bool bleeding=false;SCR_CharacterBloodHitZone*blood=nullptr;SCR_CharacterResilienceHitZone*resilience=nullptr;Array<HitZone*>zones;
|
||||
int GetState(){return state;}bool IsBleeding(){return bleeding;}SCR_CharacterBloodHitZone*GetBloodHitZone(){return blood;}SCR_CharacterResilienceHitZone*GetResilienceHitZone(){return resilience;}void GetPhysicalHitZones(Array<HitZone*>&out){out=zones;}void RemoveGroupBleeding(ECharacterHitZoneGroup){bleeding=false;}
|
||||
};
|
||||
using SCR_ExtendedDamageManagerComponent=SCR_CharacterDamageManagerComponent;
|
||||
// Native inherited effect handling is opaque. No extra health restoration is
|
||||
// fabricated: the authored effect is instant and supplies no generic damage.
|
||||
struct Native{int calls=0;void OnEffectAdded(SCR_ExtendedDamageManagerComponent*){calls++;}};
|
||||
'''+rules+'\nstruct Admission{'+admit+'};\nstruct Effect:Native{'+effect+r'''};
|
||||
struct Fixture{Entity actor;CharacterControllerComponent controller;SCR_CharacterDamageManagerComponent damage;SCR_CharacterBloodHitZone blood;SCR_CharacterResilienceHitZone resilience;SCR_CharacterHitZone arm,leg;Admission admission;Effect effect;
|
||||
Fixture(){actor.damage=&damage;actor.controller=&controller;damage.owner=&actor;damage.blood=&blood;damage.resilience=&resilience;leg.group=ECharacterHitZoneGroup::LEFTLEG;damage.zones={&arm,&leg};Replication::server=true;}
|
||||
bool Allowed(){SCR_EConsumableFailReason reason=SCR_EConsumableFailReason::NONE;return admission.CanApplyEffect(&actor,&actor,reason);}
|
||||
void Apply(){effect.OnEffectAdded(&damage);}
|
||||
};
|
||||
int main(){
|
||||
// Concrete baseline mismatch: mild blood loss is the only injury. Applying the
|
||||
// actual effect changes no health/bleeding/consciousness, so admission must refuse.
|
||||
for(float value:{.7001f,.85f,.999f}){Fixture f;f.blood.health=value;f.Apply();assert(f.effect.calls==1&&f.blood.health==value&&f.resilience.health==1&&f.arm.health==1&&f.leg.health==1&&!f.damage.bleeding&&!f.controller.unconscious);assert(!f.Allowed());}
|
||||
// Native threshold is data-driven, including exact equality; no guessed cutoff.
|
||||
for(float cutoff:{.6f,.7f,.8f}){Fixture f;f.blood.faint=cutoff;f.blood.health=cutoff;assert(f.Allowed());f.Apply();assert(f.blood.health>cutoff);}
|
||||
{Fixture f;f.blood.health=.3f;assert(f.Allowed());f.Apply();assert(f.blood.health>.3f);}
|
||||
// Waking is an independent implemented benefit, including full health.
|
||||
for(float blood:{.9f,1.f}){Fixture f;f.blood.health=blood;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(!f.controller.unconscious&&f.blood.health==blood);}
|
||||
{Fixture f;f.controller.unconscious=true;f.damage.state=EDamageState::DESTROYED;assert(!f.Allowed());f.Apply();assert(f.controller.unconscious);}
|
||||
// Preserve all other useful existing benefits even with mildly depleted blood.
|
||||
{Fixture f;f.blood.health=.9f;f.damage.bleeding=true;assert(f.Allowed());f.Apply();assert(!f.damage.bleeding&&f.blood.health==.9f);}
|
||||
{Fixture f;f.blood.health=.9f;f.resilience.health=.2f;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(f.resilience.health==1&&!f.controller.unconscious&&f.blood.health==.9f);}
|
||||
{Fixture f;f.blood.health=.9f;f.arm.health=.5f;assert(f.Allowed());f.Apply();assert(std::abs(f.arm.health-.65f)<.00001f);}
|
||||
{Fixture f;f.leg.health=.2f;assert(f.Allowed());f.Apply();assert(std::abs(f.leg.health-.7f)<.00001f);}
|
||||
// A missing controller must not suppress non-consciousness benefits.
|
||||
for(int benefit=0;benefit<4;benefit++){Fixture f;f.actor.controller=nullptr;if(benefit==0)f.damage.bleeding=true;if(benefit==1)f.blood.health=.3f;if(benefit==2)f.resilience.health=.3f;if(benefit==3)f.arm.health=.3f;assert(f.Allowed());f.Apply();}
|
||||
{Fixture f;assert(!f.Allowed());f.actor.damage=nullptr;assert(!f.Allowed());}
|
||||
{Fixture f;f.damage.state=EDamageState::DESTROYED;f.damage.bleeding=true;f.blood.health=.1f;assert(!f.Allowed());f.Apply();assert(f.blood.health==.1f&&f.damage.bleeding);}
|
||||
{Fixture f;f.damage.blood=nullptr;f.damage.resilience=nullptr;assert(!f.Allowed());f.arm.health=.5f;assert(f.Allowed());}
|
||||
{Fixture f;f.blood.health=.1f;Replication::server=false;f.Apply();assert(f.blood.health==.1f);}
|
||||
}
|
||||
''')
|
||||
prefab=(ROOT/'addons/core/Prefabs/ERR/CombatEpinephrine.et').read_text()
|
||||
assert 'm_fItemRegenerationSpeed 0' in prefab and 'm_fItemRegenerationDuration 0' in prefab
|
||||
assert 'ERR_CombatEpinephrineEffect' in prefab
|
||||
print('PASS: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested')
|
||||
@@ -0,0 +1,23 @@
|
||||
[
|
||||
{
|
||||
"case": "baseline-red",
|
||||
"exit_code": 1,
|
||||
"log": "baseline-red.log",
|
||||
"expected": "runtime assertion failure",
|
||||
"result": "compiled, assertion !f.Allowed() fails for mild blood-only patient"
|
||||
},
|
||||
{
|
||||
"case": "green",
|
||||
"exit_code": 0,
|
||||
"log": "green.log",
|
||||
"expected": 0,
|
||||
"result": "all existing and appended controls pass"
|
||||
},
|
||||
{
|
||||
"case": "consciousness-mutation-red",
|
||||
"exit_code": 1,
|
||||
"log": "consciousness-mutation-red.log",
|
||||
"expected": "runtime assertion failure",
|
||||
"result": "compiled, assertion f.Allowed() fails for unconscious patient"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": {
|
||||
"baseline_sha256": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
|
||||
"proposal_sha256": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c",
|
||||
"index_sha256": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2"
|
||||
},
|
||||
"tests/test_player_medical.py": {
|
||||
"baseline_sha256": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"proposal_sha256": "2cd8792af614fe077611c8f7fcd9f5fac2cc0258cdca5444a713cd8262ed7030",
|
||||
"index_sha256": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f"
|
||||
}
|
||||
},
|
||||
"patch_sha256": "276641f08ce7eaac621b146364dee292c7be05eb5ad3546d3513750b2efcb937",
|
||||
"artifacts": {
|
||||
"finding.json": "ff9df65aec786981022aead10b1abebbdd7c1f82a3c6735e1530a13aee5b4496",
|
||||
"consciousness-mutation-red.log": "04a6739ae37c3fa99e8608b798e4066bba114e7c3504b6334acdebd43b1867fb",
|
||||
"mutation-unused-local-compile-failure.log": "d40e852a12dd1cf5f4fa5919c3d68c62d04ac962fcc4e13a60973d86180f7fc2",
|
||||
"results.json": "b89a5ebf49d9e980bdcf457bce5fedea95596560b18eb371c3848118855a8194",
|
||||
"baseline-red.log": "92e380e7077199ec186bd9bcd33a5d43132fd7176b8d3648b9857b8131fe94a0",
|
||||
"without-consciousness-control.c": "566c793adffd3ac34fd765d759fc0c53efe721a59e60bca3a631197408e8c012",
|
||||
"green.log": "015695a0ee8782f7cce3a6527821a00818af2e18c0565b75511d7620b7845095"
|
||||
},
|
||||
"apply_check": true,
|
||||
"working_baselines_exact": true
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
"""Actual combat injector admission/effect; native component/effect boundaries doubled.
|
||||
No animation, inventory consumption, replication or native base-effect qualification.
|
||||
"""
|
||||
from pathlib import Path
|
||||
import os, re
|
||||
from policy_harness import ROOT, body, run
|
||||
p=Path(os.environ.get('ERR_EPINEPHRINE_SOURCE', ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c'))
|
||||
s=p.read_text()
|
||||
def method(class_name, signature):
|
||||
start=s.index('class '+class_name)
|
||||
a=s.index(signature,start); b=s.index('{',a); end=b+1; depth=1
|
||||
while depth:
|
||||
depth+=(s[end]=='{')-(s[end]=='}'); end+=1
|
||||
return s[a:end]
|
||||
def cpp(t):
|
||||
t=t.replace('override ', '').replace('notnull ', '').replace('out SCR_EConsumableFailReason failReason','SCR_EConsumableFailReason& failReason')
|
||||
t=t.replace('SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent))','target->damage')
|
||||
t=t.replace('SCR_CharacterDamageManagerComponent.Cast(dmgManager)','dmgManager')
|
||||
t=t.replace('CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent))','target->controller')
|
||||
t=t.replace('CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent))','damage->owner->controller')
|
||||
t=t.replace('SCR_CharacterHitZone.Cast(zone)','dynamic_cast<SCR_CharacterHitZone*>(zone)')
|
||||
t=t.replace('array<HitZone>', 'Array<HitZone*>').replace('foreach (', 'for (').replace('null','nullptr')
|
||||
for typ in ('SCR_CharacterDamageManagerComponent','SCR_ExtendedDamageManagerComponent','HitZone','SCR_CharacterBloodHitZone','SCR_CharacterResilienceHitZone','SCR_CharacterHitZone','CharacterControllerComponent'):
|
||||
t=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',t)
|
||||
t=t.replace('HitZone* blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();','HitZone* blood = damage.GetBloodHitZone(); HitZone* resilience = damage.GetResilienceHitZone();')
|
||||
for obj in ('damage','blood','resilience','zone','physical','controller'):
|
||||
t=t.replace(obj+'.',obj+'->')
|
||||
for obj in ('EDamageState','SCR_EConsumableFailReason','ECharacterBloodState','ECharacterHitZoneGroup','ERR_CombatEpinephrineRules','Replication','Math'):
|
||||
t=t.replace(obj+'.',obj+'::')
|
||||
t=t.replace('super.', 'Native::')
|
||||
return t
|
||||
rules=cpp(body(p,'class ERR_CombatEpinephrineRules')).replace('class ERR_CombatEpinephrineRules','struct ERR_CombatEpinephrineRules')+';'
|
||||
admit=cpp(method('ERR_ConsumableCombatEpinephrine','override bool CanApplyEffect('))
|
||||
effect=cpp(method('ERR_CombatEpinephrineEffect','override void OnEffectAdded('))
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
namespace EDamageState{enum{UNDAMAGED,DESTROYED};}
|
||||
enum class SCR_EConsumableFailReason{NONE,UNDAMAGED};
|
||||
namespace ECharacterBloodState{enum{FAINTING,UNCONSCIOUS};}
|
||||
enum class ECharacterHitZoneGroup{HEAD,UPPERTORSO,LOWERTORSO,LEFTARM,RIGHTARM,LEFTLEG,RIGHTLEG};
|
||||
namespace Replication{bool server=true;bool IsServer(){return server;}}
|
||||
namespace Math{float Min(float a,float b){return std::min(a,b);}}
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;};
|
||||
struct HitZone{float health=1;virtual ~HitZone()=default;float GetHealthScaled(){return health;}void SetHealthScaled(float n){health=n;}virtual float GetDamageStateThreshold(int){return .7f;}};
|
||||
struct SCR_CharacterBloodHitZone:HitZone{float faint=.7f,unconscious=.5f;float GetDamageStateThreshold(int state)override{return state==ECharacterBloodState::FAINTING?faint:unconscious;}};
|
||||
struct SCR_CharacterResilienceHitZone:HitZone{};
|
||||
struct SCR_CharacterHitZone:HitZone{ECharacterHitZoneGroup group=ECharacterHitZoneGroup::LEFTARM;int GetHitZoneGroup(){return int(group);}};
|
||||
// The source compares enum to an int; Enforce permits this conversion.
|
||||
bool operator==(int a,ECharacterHitZoneGroup b){return a==int(b);}
|
||||
struct CharacterControllerComponent{bool unconscious=false;bool IsUnconscious(){return unconscious;}void SetUnconscious(bool n){unconscious=n;}};
|
||||
struct SCR_CharacterDamageManagerComponent;
|
||||
struct Entity{SCR_CharacterDamageManagerComponent* damage=nullptr;CharacterControllerComponent*controller=nullptr;};using IEntity=Entity*;
|
||||
struct SCR_CharacterDamageManagerComponent{Entity*owner=nullptr;int state=EDamageState::UNDAMAGED;bool bleeding=false;SCR_CharacterBloodHitZone*blood=nullptr;SCR_CharacterResilienceHitZone*resilience=nullptr;Array<HitZone*>zones;
|
||||
int GetState(){return state;}bool IsBleeding(){return bleeding;}SCR_CharacterBloodHitZone*GetBloodHitZone(){return blood;}SCR_CharacterResilienceHitZone*GetResilienceHitZone(){return resilience;}void GetPhysicalHitZones(Array<HitZone*>&out){out=zones;}void RemoveGroupBleeding(ECharacterHitZoneGroup){bleeding=false;}
|
||||
};
|
||||
using SCR_ExtendedDamageManagerComponent=SCR_CharacterDamageManagerComponent;
|
||||
// Native inherited effect handling is opaque. No extra health restoration is
|
||||
// fabricated: the authored effect is instant and supplies no generic damage.
|
||||
struct Native{int calls=0;void OnEffectAdded(SCR_ExtendedDamageManagerComponent*){calls++;}};
|
||||
'''+rules+'\nstruct Admission{'+admit+'};\nstruct Effect:Native{'+effect+r'''};
|
||||
struct Fixture{Entity actor;CharacterControllerComponent controller;SCR_CharacterDamageManagerComponent damage;SCR_CharacterBloodHitZone blood;SCR_CharacterResilienceHitZone resilience;SCR_CharacterHitZone arm,leg;Admission admission;Effect effect;
|
||||
Fixture(){actor.damage=&damage;actor.controller=&controller;damage.owner=&actor;damage.blood=&blood;damage.resilience=&resilience;leg.group=ECharacterHitZoneGroup::LEFTLEG;damage.zones={&arm,&leg};Replication::server=true;}
|
||||
bool Allowed(){SCR_EConsumableFailReason reason=SCR_EConsumableFailReason::NONE;return admission.CanApplyEffect(&actor,&actor,reason);}
|
||||
void Apply(){effect.OnEffectAdded(&damage);}
|
||||
};
|
||||
int main(){
|
||||
// Concrete baseline mismatch: mild blood loss is the only injury. Applying the
|
||||
// actual effect changes no health/bleeding/consciousness, so admission must refuse.
|
||||
for(float value:{.7001f,.85f,.999f}){Fixture f;f.blood.health=value;f.Apply();assert(f.effect.calls==1&&f.blood.health==value&&f.resilience.health==1&&f.arm.health==1&&f.leg.health==1&&!f.damage.bleeding&&!f.controller.unconscious);assert(!f.Allowed());}
|
||||
// Native threshold is data-driven, including exact equality; no guessed cutoff.
|
||||
for(float cutoff:{.6f,.7f,.8f}){Fixture f;f.blood.faint=cutoff;f.blood.health=cutoff;assert(f.Allowed());f.Apply();assert(f.blood.health>cutoff);}
|
||||
{Fixture f;f.blood.health=.3f;assert(f.Allowed());f.Apply();assert(f.blood.health>.3f);}
|
||||
// Waking is an independent implemented benefit, including full health.
|
||||
for(float blood:{.9f,1.f}){Fixture f;f.blood.health=blood;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(!f.controller.unconscious&&f.blood.health==blood);}
|
||||
{Fixture f;f.controller.unconscious=true;f.damage.state=EDamageState::DESTROYED;assert(!f.Allowed());f.Apply();assert(f.controller.unconscious);}
|
||||
// Preserve all other useful existing benefits even with mildly depleted blood.
|
||||
{Fixture f;f.blood.health=.9f;f.damage.bleeding=true;assert(f.Allowed());f.Apply();assert(!f.damage.bleeding&&f.blood.health==.9f);}
|
||||
{Fixture f;f.blood.health=.9f;f.resilience.health=.2f;f.controller.unconscious=true;assert(f.Allowed());f.Apply();assert(f.resilience.health==1&&!f.controller.unconscious&&f.blood.health==.9f);}
|
||||
{Fixture f;f.blood.health=.9f;f.arm.health=.5f;assert(f.Allowed());f.Apply();assert(std::abs(f.arm.health-.65f)<.00001f);}
|
||||
{Fixture f;f.leg.health=.2f;assert(f.Allowed());f.Apply();assert(std::abs(f.leg.health-.7f)<.00001f);}
|
||||
// A missing controller must not suppress non-consciousness benefits.
|
||||
for(int benefit=0;benefit<4;benefit++){Fixture f;f.actor.controller=nullptr;if(benefit==0)f.damage.bleeding=true;if(benefit==1)f.blood.health=.3f;if(benefit==2)f.resilience.health=.3f;if(benefit==3)f.arm.health=.3f;assert(f.Allowed());f.Apply();}
|
||||
{Fixture f;assert(!f.Allowed());f.actor.damage=nullptr;assert(!f.Allowed());}
|
||||
{Fixture f;f.damage.state=EDamageState::DESTROYED;f.damage.bleeding=true;f.blood.health=.1f;assert(!f.Allowed());f.Apply();assert(f.blood.health==.1f&&f.damage.bleeding);}
|
||||
{Fixture f;f.damage.blood=nullptr;f.damage.resilience=nullptr;assert(!f.Allowed());f.arm.health=.5f;assert(f.Allowed());}
|
||||
{Fixture f;f.blood.health=.1f;Replication::server=false;f.Apply();assert(f.blood.health==.1f);}
|
||||
}
|
||||
''')
|
||||
prefab=(ROOT/'addons/core/Prefabs/ERR/CombatEpinephrine.et').read_text()
|
||||
assert 'm_fItemRegenerationSpeed 0' in prefab and 'm_fItemRegenerationDuration 0' in prefab
|
||||
assert 'ERR_CombatEpinephrineEffect' in prefab
|
||||
print('PASS: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested')
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
// Native injection animation/consumption; only resilience is restored over time.
|
||||
// This is not a blood replacement, bandage, full heal, or resurrection.
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(target.FindComponent(CharacterControllerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED || !controller || !controller.IsUnconscious())
|
||||
{ failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
array<ref SCR_PersistentDamageEffect> effects = damage.GetAllPersistentEffectsOfType(ERR_EpinephrineEffect);
|
||||
if (!effects.IsEmpty()) { failReason = SCR_EConsumableFailReason.ALREADY_APPLIED; return false; }
|
||||
return true;
|
||||
}
|
||||
}
|
||||
class ERR_EpinephrineEffect : SCR_DotDamageEffect
|
||||
{
|
||||
override bool HijackDamageEffect(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (damage) SetAffectedHitZone(damage.GetResilienceHitZone());
|
||||
return false;
|
||||
}
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
}
|
||||
// Separate stronger field injector. Standard epinephrine above keeps its
|
||||
// resilience-over-time behavior; neither item restores a dead character.
|
||||
class ERR_CombatEpinephrineRules
|
||||
{
|
||||
static float Heal(float current, bool leg)
|
||||
{
|
||||
float amount = 0.15;
|
||||
if (leg) amount = 0.5;
|
||||
return Math.Min(current + amount, 1.0);
|
||||
}
|
||||
static float Blood(float current, float threshold) { return Math.Min(1, current + threshold + 0.01); }
|
||||
}
|
||||
[BaseContainerProps()]
|
||||
class ERR_ConsumableCombatEpinephrine : SCR_ConsumableMorphine
|
||||
{
|
||||
override bool CanApplyEffect(notnull IEntity target, notnull IEntity user, out SCR_EConsumableFailReason failReason)
|
||||
{
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(target.FindComponent(SCR_CharacterDamageManagerComponent));
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) { failReason = SCR_EConsumableFailReason.UNDAMAGED; return false; }
|
||||
if (damage.IsBleeding()) return true;
|
||||
HitZone blood = damage.GetBloodHitZone(), resilience = damage.GetResilienceHitZone();
|
||||
if ((blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING)) || (resilience && resilience.GetHealthScaled() < 1)) return true;
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones) if (zone && zone.GetHealthScaled() < 1) return true;
|
||||
failReason = SCR_EConsumableFailReason.UNDAMAGED; return false;
|
||||
}
|
||||
}
|
||||
class ERR_CombatEpinephrineEffect : SCR_InstantDamageEffect
|
||||
{
|
||||
override EDamageType GetDefaultDamageType() { return EDamageType.HEALING; }
|
||||
override void OnEffectAdded(SCR_ExtendedDamageManagerComponent dmgManager)
|
||||
{
|
||||
super.OnEffectAdded(dmgManager);
|
||||
if (!Replication.IsServer()) return;
|
||||
SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
|
||||
if (!damage || damage.GetState() == EDamageState.DESTROYED) return;
|
||||
foreach (ECharacterHitZoneGroup group : {ECharacterHitZoneGroup.HEAD, ECharacterHitZoneGroup.UPPERTORSO, ECharacterHitZoneGroup.LOWERTORSO, ECharacterHitZoneGroup.LEFTARM, ECharacterHitZoneGroup.RIGHTARM, ECharacterHitZoneGroup.LEFTLEG, ECharacterHitZoneGroup.RIGHTLEG}) damage.RemoveGroupBleeding(group);
|
||||
SCR_CharacterBloodHitZone blood = damage.GetBloodHitZone();
|
||||
if (blood && blood.GetHealthScaled() <= blood.GetDamageStateThreshold(ECharacterBloodState.FAINTING))
|
||||
blood.SetHealthScaled(ERR_CombatEpinephrineRules.Blood(blood.GetHealthScaled(), blood.GetDamageStateThreshold(ECharacterBloodState.UNCONSCIOUS)));
|
||||
SCR_CharacterResilienceHitZone resilience = damage.GetResilienceHitZone();
|
||||
if (resilience) resilience.SetHealthScaled(1);
|
||||
array<HitZone> zones = {}; damage.GetPhysicalHitZones(zones);
|
||||
foreach (HitZone zone : zones)
|
||||
{
|
||||
SCR_CharacterHitZone physical = SCR_CharacterHitZone.Cast(zone);
|
||||
if (!physical || zone.GetHealthScaled() >= 1) continue;
|
||||
int group = physical.GetHitZoneGroup();
|
||||
zone.SetHealthScaled(ERR_CombatEpinephrineRules.Heal(zone.GetHealthScaled(), group == ECharacterHitZoneGroup.LEFTLEG || group == ECharacterHitZoneGroup.RIGHTLEG));
|
||||
}
|
||||
CharacterControllerComponent controller = CharacterControllerComponent.Cast(damage.GetOwner().FindComponent(CharacterControllerComponent));
|
||||
if (controller && controller.IsUnconscious()) controller.SetUnconscious(false);
|
||||
}
|
||||
}
|
||||
// The held injector uses the existing native injection interaction and animation.
|
||||
// Only its displayed name changes; ordinary morphine keeps its native behavior.
|
||||
modded class SCR_MorphineUserAction
|
||||
{
|
||||
protected bool m_ERRHoldingEpinephrine;
|
||||
protected bool m_ERRHoldingCombatEpinephrine;
|
||||
override bool CanBeShownScript(IEntity user)
|
||||
{
|
||||
m_ERRHoldingEpinephrine = false; m_ERRHoldingCombatEpinephrine = false;
|
||||
bool shown = super.CanBeShownScript(user);
|
||||
ChimeraCharacter character = ChimeraCharacter.Cast(user);
|
||||
if (shown && character)
|
||||
{
|
||||
SCR_ConsumableItemComponent item = GetConsumableComponent(character);
|
||||
m_ERRHoldingEpinephrine = item && ERR_ConsumableEpinephrine.Cast(item.GetConsumableEffect());
|
||||
m_ERRHoldingCombatEpinephrine = item && ERR_ConsumableCombatEpinephrine.Cast(item.GetConsumableEffect());
|
||||
}
|
||||
return shown;
|
||||
}
|
||||
override bool GetActionNameScript(out string outName)
|
||||
{
|
||||
if (m_ERRHoldingCombatEpinephrine) { outName = "Administer combat epinephrine"; return true; }
|
||||
if (m_ERRHoldingEpinephrine) { outName = "Administer epinephrine"; return true; }
|
||||
return super.GetActionNameScript(outName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"date": "2026-11-05",
|
||||
"head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"issue": "Strong epinephrine admitted conscious patients with only mild blood loss, although its authored instant effect does not improve their state.",
|
||||
"fix": "Admit blood-only treatment only at/below the actual native FAINTING threshold. Independently admit unconscious patients because the unchanged effect wakes them. Missing/dead refusal and other useful treatments retained.",
|
||||
"changed_files": [
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c",
|
||||
"tests/test_player_medical.py"
|
||||
],
|
||||
"checks": {
|
||||
"checks": [
|
||||
{
|
||||
"test": "test_player_medical.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 1.11,
|
||||
"log": "test_player_medical.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_self_epinephrine.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.27,
|
||||
"log": "test_self_epinephrine.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_enemy_medicine.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.4,
|
||||
"log": "test_enemy_medicine.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_recovery_policy.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.1,
|
||||
"log": "test_recovery_policy.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_recovery_forecast.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.23,
|
||||
"log": "test_recovery_forecast.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_casualty_incapacitation.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.1,
|
||||
"log": "test_casualty_incapacitation.py.log"
|
||||
},
|
||||
{
|
||||
"test": "test_spectator_recovery.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.44,
|
||||
"log": "test_spectator_recovery.py.log"
|
||||
}
|
||||
],
|
||||
"input_files": 1229,
|
||||
"changed_inputs": [],
|
||||
"changed_from_full_checkpoint": [
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c",
|
||||
"tests/test_player_medical.py"
|
||||
],
|
||||
"index_unchanged": true,
|
||||
"native_run": false
|
||||
},
|
||||
"baseline": "New actual-method regression compiles then fails mild blood-only refusal on previous source.",
|
||||
"mutation": "Removing consciousness eligibility compiles then fails the unconscious patient assertion. Earlier unused-local compile-only mutant retained, not counted as behavioral proof.",
|
||||
"native_api_review": "Installed generated HitZone declaration independently inspected; not a compiler/runtime pass.",
|
||||
"full_suite": "Prior full1229input checkpoint passed; only listed2code/test files differ. Seven affected checks rerun; no claim of new full-suite or engine pass.",
|
||||
"native_run": false,
|
||||
"native_limit": "Established disposable prefix absent; read-only host preflight found a wineserver. No prefix rebuilt or process/window/audio changed.",
|
||||
"limits": [
|
||||
"Native inventory consumption, animation, superclass effect propagation and multiplayer not exercised.",
|
||||
"Standard epinephrine, combat effect strength, finite stock and resource identities unchanged.",
|
||||
"Manual escape, multiplayer, packaging and FPS release acceptance remain open."
|
||||
],
|
||||
"installed_or_published_by_this_continuation": false,
|
||||
"original_workspace_modified_by_this_continuation": false,
|
||||
"index_unchanged": true
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"scope": "Root read-only settings/shared profile persistence and command semantics review",
|
||||
"finding": "No new demonstrated defect",
|
||||
"observations": [
|
||||
"Failed saves preserve runtime setting; resolved random values invalidate only after successful changed save.",
|
||||
"Shared profile intentionally rejects unrelated edits while another known section is invalid, preserving the last good backup; dedicated existing test covers repairing the damaged section.",
|
||||
"Unknown/dormant keys are preserved during section merge; unsupported schema remains read-only."
|
||||
],
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "6fdca5f333332b7bb2349c4ecd1f11278201770829aeac486a4f2fa7cd4221b7"
|
||||
},
|
||||
"native_preflight": {
|
||||
"private_prefix_exists": false,
|
||||
"matching_host_processes": [
|
||||
{
|
||||
"pid": 3075481,
|
||||
"name": "wineserver"
|
||||
}
|
||||
],
|
||||
"decision": "No native run or prefix rebuild attempted; no process/window/audio changes."
|
||||
},
|
||||
"native_run": false
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards
|
||||
@@ -0,0 +1,4 @@
|
||||
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: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested
|
||||
@@ -0,0 +1 @@
|
||||
PASS: real forecast code: joint thresholds, five-minute boundary, delays, medicine expiry and bleeding
|
||||
@@ -0,0 +1 @@
|
||||
PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual self-injection eligibility matrix and authority/rate limit; default-off persistence, authenticated menu route, owned finite injector and native effect/consumption boundaries
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual open-chat capture/context renewal and camera/menu priority, text-entry isolation, held-key release; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"head_at_application": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"index_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": {
|
||||
"before_sha256": "2334a96e1e29c70a9f3076f9fbef53949e39d5560e23d078639d73559cb0b823",
|
||||
"after_sha256": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f"
|
||||
},
|
||||
"tests/test_hq_ammo_dispatch.py": {
|
||||
"before_sha256": "e2e4dfb26e17b85953c2ba40a3732b04514ae3b8cf099e3ca67466c0a7b9a05b",
|
||||
"after_sha256": "89858dcb20dc8da6856140223bbff38bf0cef2b62f081ed70b9d239c53197abb"
|
||||
},
|
||||
"tests/test_hq_delivered_task.py": {
|
||||
"before_sha256": "2c535df5ea11969051e92d7fbeb2ff26e03f7eb20bfe69ead0067fd2d42bd7ec",
|
||||
"after_sha256": "9fd05d454b07f15a90d01761684f7019c650d63587d9fe54e5cc131ee236b445"
|
||||
}
|
||||
},
|
||||
"review_sha256": "2f9fd20d0745df855719f08b7d8e958ebf08692b1da6b530401d607c8d557baa",
|
||||
"installed_or_published": false
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
check: /tmp/err-policy-w3j61nmi/check.cpp:320: int main(): Assertion `f.unit.Task==&f.next&&f.unit.Assignment==&f.newReport&&f.unit.Waypoint&&f.unit.Waypoint->resource==2' failed.
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105/hq-recovery-proposal/tests/test_hq_delivered_task.py", line 36, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<262 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
|
||||
subprocess.run([str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['/tmp/err-policy-w3j61nmi/check']' died with <Signals.SIGABRT: 6>.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"application.json": "4b9216848b6b91afdb9f0e91317fd93ca2c9de29c76ae0b0d8da0ea203f4cef9",
|
||||
"baseline/ERR_HQ.c": "2334a96e1e29c70a9f3076f9fbef53949e39d5560e23d078639d73559cb0b823",
|
||||
"baseline-red.log": "09fd626e64135553a80e909d0791d13ecaec01af69297fb1e4e7189afac071f6",
|
||||
"finding.json": "b40a3b77e8bdc92a2e9a781d571142acee200bd99b8aa8bc52a4f638d6974eb6",
|
||||
"fix.patch": "55c7b38be296d287d5af3aa05749dd0ddc19507a041062e40109887839d6496e",
|
||||
"focused-inputs.json": "c9643938b1ec3207ae196c0a2c3d5896bb18a36606b3a34566800aebc36789df",
|
||||
"focused-result.json": "03d8e3391cce5f979a5452b0501b2433d8f9534fc1a8391b395a94c84254cfa1",
|
||||
"green-ammo.log": "8aa65db678e64c600682c049ced50cf12fdaed343c64c228d7bf182d6bf8cb3b",
|
||||
"green-delivery.log": "3e4c1177f828b2b47baa6fb274ed2ac27ca33fee42e75f49dfbd0124cd5049dd",
|
||||
"independent-review.json": "2f9fd20d0745df855719f08b7d8e958ebf08692b1da6b530401d607c8d557baa",
|
||||
"mutation-red.log": "467da3d81928a1f2081ac04160dfc24e3d387b80a8ff090a4a6277ff4c1b884c",
|
||||
"mutation.c": "db7898c0a16cdb3ea289f448b6d8ea2711b38c4598b8c1fbbbbbab4baf78a7f1",
|
||||
"report.json": "abc914f7624729cdb7f9c5f12f4bbfcb4255a7632c2826ec09426ce9f9aec6ad",
|
||||
"source/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f",
|
||||
"source/tests/test_hq_ammo_dispatch.py": "89858dcb20dc8da6856140223bbff38bf0cef2b62f081ed70b9d239c53197abb",
|
||||
"source/tests/test_hq_delivered_task.py": "9fd05d454b07f15a90d01761684f7019c650d63587d9fe54e5cc131ee236b445",
|
||||
"source-before.json": "68410da58f02c0f3e897ffd22a22cf92a5187555226d989b5f84e446b7e8346c",
|
||||
"source-manifest.json": "3913aa39a8f0490dc95cd8b81862fcac124a05adbf575fb5010c87eabd45ac3a",
|
||||
"test_casualty_incapacitation.py.log": "0acefd1196035dfc07757f264ac093f45b1548a70a5b170265feb32b8ef0006a",
|
||||
"test_hq_ammo_dispatch.py.log": "8aa65db678e64c600682c049ced50cf12fdaed343c64c228d7bf182d6bf8cb3b",
|
||||
"test_hq_assignment_lifecycle.py.log": "261750e7934a5b0fc94357eba49f2090491e27ed8304d6eeb8c90cfb6c04b0ab",
|
||||
"test_hq_coordinated.py.log": "f6764aaf5c09e1b00e48c99a352e19f2b6d27ba8226cc949472d7c64fb9a8ab9",
|
||||
"test_hq_delivered_task.py.log": "3e4c1177f828b2b47baa6fb274ed2ac27ca33fee42e75f49dfbd0124cd5049dd",
|
||||
"test_hq_execution.py.log": "136099eac9c70ec4defaf722a0acb274805e86711db78f20ba9fc74c724e7042",
|
||||
"test_hq_operations.py.log": "7dd09545f173ca0c80af48e8a446b863325c20506a5ac601a7d2796cb54a15e9",
|
||||
"test_hq_report_selection.py.log": "ab95bc7379a50df6c2a872bdf63ed786eac145f994a757987d4afd3ef203e146",
|
||||
"test_hq_squad_judgment.py.log": "c64bd2d4baf755197d060a738a6b46a642d181eb625e8a4366b1ab3982959906",
|
||||
"test_hq_watch.py.log": "a99998936642ce699a1775dc0ceb3273fb375e7493e699d5893e70869fc9cff2",
|
||||
"test_native_end_lifecycle.py.log": "d458af76e6e283c9cb0c515089f9d2fb0bcda7e5af373486943738828b2b9711",
|
||||
"test_radio_defence_policy.py.log": "59cfb9d5936db3d56e1c65422808db71e15f7615cf0e23e34f4eba2c6d17639f",
|
||||
"test_radio_document_defence.py.log": "819aad9f38b45e043d73d794124d13a7ee73e246c7a6e4ef7cd365bcf7969f14",
|
||||
"test_reconnect_recovery.py.log": "52de44f798403c0cc3589e0c85aa56b58b68fb0c6c557c86be87675a37765ce9",
|
||||
"test_rescue_boarding.py.log": "80260a91526cec22b9607d05d7768e6e7c0b35818ab90d1a742db3e3f2d554f9",
|
||||
"test_rescue_capacity.py.log": "161fcbd43f6a486b8a045dfe8fdc2c7fadd15f6f526fc3ce91a1004ae0c85ac6",
|
||||
"test_rescue_recovery.py.log": "bcc468e66fe29bfcf24495b51b4ec8bcd1a938cf2ba8e12578e21b1580f824c3",
|
||||
"tests.json": "0d98e669626594155c7491ac7f706fa45638ad1ab4b5d24c9a6c4cae5d9708d5"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"finding": "Known-empty recovering squads produce a coordinated RESERVE after withdrawal arrival, but delivery previously admitted only WITHDRAW through the empty-ammo gate.",
|
||||
"correction": "Allow empty-ammo coordinated RESERVE only with the current original squad judgment Recovering. Existing WITHDRAW exemption and later exact CoordinatedDelivery task/slot/revision/execution gates remain intact.",
|
||||
"judgment_stability": "Live CoordinatedForces excludes PendingOrder/PendingTask/Downlink. ObserveForces is the live judgment writer; pending radio delivery therefore retains the planner recovery judgment.",
|
||||
"validation": {
|
||||
"baseline": "Final full delivery test compiles then fails its first recovery RESERVE assertion with SIGABRT.",
|
||||
"proposal": "Full actual DeliverOrder plus actual CoordinatedDelivery and existing ammo dispatch tests pass. Positive WITHDRAW has no recovery judgment; ordinary armed reserve still passes; 15 reserve invalid cases and five attacking roles retain old assignment.",
|
||||
"mutation": "Nonqualifying attempted broad-reserve mutation failed compilation due unused squad under -Werror. Retained, not counted as runtime evidence."
|
||||
},
|
||||
"limits": "Native waypoint/memory/watch/judgment lookup boundaries are doubled. No native or live engine validation; no live changes. Only own three live baseline hashes checked; concurrent garage/changelog and HEAD changes preserved."
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
@@ -1203,7 +1203,18 @@
|
||||
else unit.CancelPending();
|
||||
return;
|
||||
}
|
||||
- if (m_Watch.ArmedSearchBlocked(unit.ForceSourceId, now) && !(task.OperationId > 0 && task.OperationRole == ERR_HQOperationRole.WITHDRAW)) { LostOrder(unit, now); return; }
|
||||
+ if (m_Watch.ArmedSearchBlocked(unit.ForceSourceId, now))
|
||||
+ {
|
||||
+ bool recoveryOrder = task.OperationId > 0 && task.OperationRole == ERR_HQOperationRole.WITHDRAW;
|
||||
+ if (m_Coordinated && task.OperationId > 0 && task.OperationRole == ERR_HQOperationRole.RESERVE)
|
||||
+ {
|
||||
+ // Pending radio orders exclude this squad from ObserveForces. Its delivered
|
||||
+ // recovery judgment stays current until the exact queued task is validated below.
|
||||
+ ERR_HQSquadJudgment squad = m_Operations.Judgment(unit.Id);
|
||||
+ recoveryOrder = squad && squad.Recovering;
|
||||
+ }
|
||||
+ if (!recoveryOrder) { LostOrder(unit, now); return; }
|
||||
+ }
|
||||
if (task.Investigation())
|
||||
{
|
||||
if (!WatchTaskValid(task)) { LostOrder(unit, now); return; }
|
||||
--- a/tests/test_hq_ammo_dispatch.py
|
||||
+++ b/tests/test_hq_ammo_dispatch.py
|
||||
@@ -1,6 +1,8 @@
|
||||
"""Delivered ammo gates new tasks without becoming active-order cancellation."""
|
||||
from policy_harness import ROOT, body, run
|
||||
-H=ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'
|
||||
+from pathlib import Path
|
||||
+import os
|
||||
+H=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
for method in ('protected void Investigate(', 'protected void Retask(', 'protected void Assign('):
|
||||
s=body(H,method)
|
||||
assert 'if (m_Watch.ArmedSearchBlocked(unit.ForceSourceId, now)) continue;' in s
|
||||
@@ -8,20 +10,23 @@
|
||||
s=body(H,'protected void DeliverOrder(')
|
||||
s=s[:s.index(' if (task.Investigation())')]+' admitted++;\n }'
|
||||
s=s.replace('protected ','').replace('null','nullptr').replace('.IsEmpty()', '.empty()').replace('ERR_HQUnit unit','ERR_HQUnit* unit').replace('ERR_HQOperationRole.','ERR_HQOperationRole::')
|
||||
+s=s.replace('ERR_HQSquadJudgment squad', 'ERR_HQSquadJudgment* squad').replace('squad.', 'squad->')
|
||||
s=s.replace('ERR_HQReport order','ERR_HQReport* order').replace('ERR_HQTask task','ERR_HQTask* task')
|
||||
for name in ('unit','task','order'):s=s.replace(name+'.',name+'->')
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
struct ERR_HQReport{};
|
||||
-enum class ERR_HQOperationRole{SEARCH,WITHDRAW};
|
||||
+enum class ERR_HQOperationRole{SEARCH,WITHDRAW,RESERVE};
|
||||
+struct ERR_HQSquadJudgment{bool Recovering=false;};
|
||||
+struct Operations{ERR_HQSquadJudgment* squad=nullptr;ERR_HQSquadJudgment* Judgment(int id){assert(id==1);return squad;}};
|
||||
struct ERR_HQTask{int OperationId=0;ERR_HQOperationRole OperationRole=ERR_HQOperationRole::SEARCH;std::string SecuritySite;float ExpiresAt=100000;bool ReleaseOnly=false;ERR_HQTask* ReplacesTask=nullptr;};
|
||||
struct ERR_HQUnit{ERR_HQReport* PendingOrder=nullptr;ERR_HQTask* PendingTask=nullptr;ERR_HQTask* Task=nullptr;
|
||||
- std::string ForceSourceId="original-1";bool eligible=true;int cancellations=0;
|
||||
+ int Id=1;std::string ForceSourceId="original-1";bool eligible=true;int cancellations=0;
|
||||
bool Eligible(void*){return eligible;}void CancelPending(){cancellations++;PendingOrder=nullptr;PendingTask=nullptr;}};
|
||||
struct Watch {bool empty=false;int calls=0;bool ArmedSearchBlocked(std::string s,float){assert(s=="original-1");calls++;return empty;}};
|
||||
struct Journal {void Write(std::string,std::string){}};
|
||||
-struct HQ{Watch m_Watch;Journal m_Journal;void* m_Mode=nullptr;int admitted=0,lost=0,released=0;
|
||||
+struct HQ{bool m_Coordinated=false;Operations m_Operations;Watch m_Watch;Journal m_Journal;void* m_Mode=nullptr;int admitted=0,lost=0,released=0;
|
||||
void LostOrder(ERR_HQUnit* u,float){lost++;u->CancelPending();}void ReleaseUnit(ERR_HQUnit* u,float){released++;u->Task=nullptr;u->CancelPending();}
|
||||
'''+s+r'''
|
||||
};
|
||||
--- a/tests/test_hq_delivered_task.py
|
||||
+++ b/tests/test_hq_delivered_task.py
|
||||
@@ -7,13 +7,13 @@
|
||||
def cpp(s):
|
||||
s=s.replace('EngineerMine.', 'EngineerMine->')
|
||||
s=s.replace('ref ', '')
|
||||
- s=s.replace('protected ','').replace('null','nullptr').replace('string.Format','Format')
|
||||
- for name in ('ERR_SupplyConvoyTactics','Math','ERR_GameMode','SCR_EntityHelper','ERR_HQPursuitRules','AIWaypoint','ERR_Actors','ERR_Resources','ERR_ForceDuty','ERR_HQRoadIntercept','ERR_ForceRules','ERR_HQPursuitRole','ERR_HQMemoryKind','ERR_HQOperationRole'):
|
||||
+ s=s.replace('override ', '').replace('protected ','').replace('null','nullptr').replace('string.Format','Format')
|
||||
+ for name in ('ERR_SupplyConvoyTactics','Math','ERR_GameMode','SCR_EntityHelper','ERR_HQPursuitRules','AIWaypoint','ERR_Actors','ERR_Resources','ERR_ForceDuty','ERR_HQRoadIntercept','ERR_ForceRules','ERR_HQPursuitRole','ERR_HQMemoryKind','ERR_HQOperationRole','ERR_HQExecutionRules'):
|
||||
s=s.replace(name+'.',name+'::')
|
||||
- for typ in ('ERR_HQUnit','ERR_HQTask','ERR_GameMode','ERR_HQReport','ERR_HQBelief','ERR_ForceRecord','ERR_HQHuntWindow','AIWaypoint'):
|
||||
+ for typ in ('ERR_HQUnit','ERR_HQTask','ERR_GameMode','ERR_HQReport','ERR_HQBelief','ERR_ForceRecord','ERR_HQHuntWindow','AIWaypoint','ERR_HQSquadJudgment','ERR_HQOperationSlot'):
|
||||
s=re.sub(r'\b'+typ+r' (?=\w)',typ+'* ',s)
|
||||
s=re.sub(r'foreach \((ERR_HQUnit\*) (\w+) : ([^)]+)\)',r'for (\1 \2 : \3)',s)
|
||||
- for name in ('unit','other','task','planned','order','belief','record','mode','Group','hunt','waypoint','m_Mode','lostActive','lostPending'):
|
||||
+ for name in ('unit','other','task','planned','order','belief','record','mode','Group','hunt','waypoint','m_Mode','lostActive','lostPending','squad','slot'):
|
||||
s=s.replace(name+'.',name+'->')
|
||||
s=s.replace('ResourceName ', 'int ').replace('.IsEmpty()', '.empty()')
|
||||
s=s.replace('PendingOrder.', 'PendingOrder->').replace('Assignment.', 'Assignment->')
|
||||
@@ -28,6 +28,8 @@
|
||||
if 'protected void ReleaseLostForce(' in P.read_text(): methods=cpp(body(P,'protected void ReleaseLostForce('))+'\n'+methods
|
||||
missing=cpp(body(P,'if (!unit.Group && !unit.Uplink)')).replace('m_Units.Remove(i)', 'm_Units.erase(m_Units.begin()+i)')
|
||||
cleanup=cpp(body(P,' foreach (ERR_HQUnit unit : m_Units)\n {\n if (!unit.Assignment && !unit.PendingOrder) continue;\n bool security = SecurityAssigned(unit);'))
|
||||
+C=Path(os.environ.get('ERR_HQ_COORDINATED_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c'))
|
||||
+methods=cpp(body(C,'override protected bool CoordinatedDelivery('))+'\n'+methods
|
||||
R=Path(os.environ.get('ERR_HQ_PURSUIT_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c'))
|
||||
rules='\n'.join(cpp(body(R,x)) for x in ('static bool Finite(', 'static bool PositionValid(', 'static bool Actionable(', 'static bool Heading(', 'static ERR_HQPursuitRole Role('))
|
||||
eligible=cpp(body(ROAD,'static bool Eligible('))
|
||||
@@ -49,7 +51,7 @@
|
||||
'''+rules+r'''
|
||||
};
|
||||
struct Math{static float Min(float a,float b){return std::min(a,b);}static float Max(float a,float b){return std::max(a,b);}};
|
||||
-struct ERR_HQTask{ERR_HQOperationRole OperationRole=ERR_HQOperationRole::SEARCH;int OperationId=0,ExecutionId=0;string SecuritySite;bool Maneuver=false,RoadIntercept=false,ReleaseOnly=false;ERR_HQTask* ReplacesTask=nullptr;string WatchSourceId;int WatchMessageId=0,WatchRequestId=0;
|
||||
+struct ERR_HQTask{ERR_HQOperationRole OperationRole=ERR_HQOperationRole::SEARCH;int OperationId=0,ExecutionId=0,OperationRevision=2,SupportSourceId=0;float SupportUntil=0;string SecuritySite;bool Maneuver=false,RoadIntercept=false,ReleaseOnly=false;ERR_HQTask* ReplacesTask=nullptr;string WatchSourceId;int WatchMessageId=0,WatchRequestId=0;
|
||||
int BeliefId=1,BeliefRevision=2;ERR_HQPursuitRole Role=ERR_HQPursuitRole::SEARCH;vector Destination{40,0,50};float SearchRadiusMetres=60,QueuedAt=0,ExpiresAt=60000;bool Investigation(){return !WatchSourceId.empty();}string Name(){return "search";}};
|
||||
struct ERR_HQReport{string TravelMode="on foot";int MessageId=10;float ObservedAt=0;};
|
||||
struct ERR_HQRoute{int MessageId=20;};
|
||||
@@ -67,7 +69,7 @@
|
||||
struct TestWorld{operator bool(){return true;}float GetWorldTime(){return 0;}};struct TestGame{operator bool(){return true;}TestWorld GetWorld(){return {};}};TestGame GetGame(){return {};}struct ExecutionDouble{void Update(void*,float){}operator bool(){return false;}void Stop(float,bool){}void Receive(ERR_HQTask*,float){}};
|
||||
struct ERR_HQUnit{ExecutionDouble Execution;MineJob* EngineerMine=nullptr;int Id=1;string ForceSourceId="original";SCR_AIGroup* Group=nullptr;AIWaypoint* Waypoint=nullptr;
|
||||
ERR_HQTask* Task=nullptr;ERR_HQTask* PendingTask=nullptr;ERR_HQReport* Assignment=nullptr;ERR_HQReport* PendingOrder=nullptr;
|
||||
- ERR_HQRoute* Downlink=nullptr;ERR_HQRoute* Uplink=nullptr;void* PendingConvoyOrder=nullptr;bool HomeGuard=false,PendingCheckin=false,eligible=true,fighting=false,PlanEligible=true;
|
||||
+ ERR_HQRoute* Downlink=nullptr;ERR_HQRoute* Uplink=nullptr;void* PendingConvoyOrder=nullptr;int LogisticsReservation=0;bool ReservedForSupport=false,HomeGuard=false,PendingCheckin=false,eligible=true,fighting=false,PlanEligible=true;
|
||||
bool Eligible(ERR_GameMode*){return eligible&&Group;}
|
||||
'''+units+r'''
|
||||
};
|
||||
@@ -79,7 +81,11 @@
|
||||
struct Watch{bool empty=false;int finished=0;bool ArmedSearchBlocked(string,float){return empty;}bool FinishInvestigation(string,int,int,float){finished++;return true;}};
|
||||
struct Journal{int writes=0;void Write(string,string,int=0){writes++;}};
|
||||
struct ERR_HQHuntWindow{float CompletedUntil=0;float NextHunt=200000;};
|
||||
-struct HQ{bool CoordinatedDelivery(ERR_HQUnit*,ERR_HQTask*,float){return false;}struct Operations{void Release(int,int,float){}}m_Operations;ERR_GameMode* m_Mode;Memory m_Memory;Watch m_Watch;Journal m_Journal;std::vector<ERR_HQUnit*>m_Units;ERR_HQHuntWindow hunt,otherHunt;bool watchValid=true;
|
||||
+struct ERR_HQSquadJudgment{bool Recovering=false;};
|
||||
+struct ERR_HQOperationSlot{ERR_HQTask* Task=nullptr;};
|
||||
+struct ERR_HQExecutionRules{static bool SupportFresh(float until,float now){return std::isfinite(until)&&until>now&&until<=now+20000;}};
|
||||
+struct Operations{ERR_HQSquadJudgment* squad=nullptr;ERR_HQOperationSlot* slot=nullptr;ERR_HQSquadJudgment* Judgment(int id){assert(id==1);return squad;}ERR_HQOperationSlot* Find(int id){assert(id==1);return slot;}void Release(int,int,float){}};
|
||||
+struct HQ{bool m_Coordinated=false;Operations m_Operations;ERR_GameMode* m_Mode;Memory m_Memory;Watch m_Watch;Journal m_Journal;std::vector<ERR_HQUnit*>m_Units;ERR_HQHuntWindow hunt,otherHunt;bool watchValid=true;
|
||||
bool Fighting(ERR_HQUnit* u){return u->fighting;}bool WatchTaskValid(ERR_HQTask*){return watchValid;}ERR_HQHuntWindow* Hunt(int id){return id==2?&otherHunt:&hunt;}
|
||||
'''+methods+'\nvoid Cleanup(float now,int assigned,int globalLimit){'+cleanup+'}\nvoid RemoveMissing(float now){for(int i=int(m_Units.size())-1;i>=0;i--){ERR_HQUnit* unit=m_Units[i];'+missing+'}}'+r'''
|
||||
};
|
||||
@@ -89,6 +95,50 @@
|
||||
void Retained(){assert(unit.Task==&active&&unit.Assignment==&oldReport&&unit.Waypoint==&previous&&previous.deletes==0&&group.removals==0&&!unit.PendingTask&&!unit.PendingOrder&&!unit.Downlink);}
|
||||
};
|
||||
int main(){
|
||||
+ // Real delivery and actual coordinated identity admission must permit rest for
|
||||
+ // a known-empty recovering squad, without admitting ordinary reserve/attacks.
|
||||
+ for(bool withdrawing:{false,true}){
|
||||
+ Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;
|
||||
+ mood.Recovering=true;slot.Task=&f.next;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
+ f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.next.OperationId=1;f.next.ExecutionId=12;
|
||||
+ f.next.OperationRole=withdrawing?ERR_HQOperationRole::WITHDRAW:ERR_HQOperationRole::RESERVE;
|
||||
+ // WITHDRAW keeps its original exemption without a recovery judgment.
|
||||
+ if(withdrawing)f.hq.m_Operations.squad=nullptr;
|
||||
+ f.hq.DeliverOrder(&f.unit,1000);
|
||||
+ assert(f.unit.Task==&f.next&&f.unit.Assignment==&f.newReport&&f.unit.Waypoint&&f.unit.Waypoint->resource==2);
|
||||
+ assert(ERR_Actors::spawns==1&&f.group.additions==1&&f.previous.deletes==1&&!f.unit.PendingTask);
|
||||
+ }
|
||||
+ for(int invalid=0;invalid<15;invalid++){
|
||||
+ Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;ERR_HQTask foreign;
|
||||
+ mood.Recovering=true;slot.Task=&f.next;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
+ f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.next.OperationId=1;f.next.ExecutionId=12;f.next.OperationRole=ERR_HQOperationRole::RESERVE;
|
||||
+ if(invalid==0)mood.Recovering=false;
|
||||
+ if(invalid==1)f.hq.m_Operations.squad=nullptr;
|
||||
+ if(invalid==2)f.next.OperationId=0;
|
||||
+ if(invalid==3)f.hq.m_Coordinated=false;
|
||||
+ if(invalid==4)slot.Task=&foreign;
|
||||
+ if(invalid==5)f.hq.m_Operations.slot=nullptr;
|
||||
+ if(invalid==6)f.next.ExpiresAt=1000;
|
||||
+ if(invalid==7)f.unit.eligible=false;
|
||||
+ if(invalid==8)f.next.BeliefRevision=3;
|
||||
+ if(invalid==9)f.next.OperationRevision=3;
|
||||
+ if(invalid==10)f.unit.HomeGuard=true;
|
||||
+ if(invalid==11)f.unit.ReservedForSupport=true;
|
||||
+ if(invalid==12)f.unit.LogisticsReservation=1;
|
||||
+ if(invalid==13)f.hq.m_Memory.belief=nullptr;
|
||||
+ if(invalid==14)f.belief.Confidence=0;
|
||||
+ f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);
|
||||
+ }
|
||||
+ for(auto role:{ERR_HQOperationRole::SEARCH,ERR_HQOperationRole::OBSERVE,ERR_HQOperationRole::FIX,ERR_HQOperationRole::FLANK,ERR_HQOperationRole::BLOCK}){
|
||||
+ Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;mood.Recovering=true;slot.Task=&f.next;
|
||||
+ f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
+ f.next.OperationId=1;f.next.OperationRole=role;f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);
|
||||
+ }
|
||||
+ // A tactical reserve still uses the ordinary ammo gate: with ammo present it
|
||||
+ // is valid even without a recovery judgment; empty it is rejected above.
|
||||
+ {Fixture f;ERR_HQOperationSlot slot;slot.Task=&f.next;f.hq.m_Coordinated=true;f.hq.m_Operations.slot=&slot;
|
||||
+ f.next.OperationId=1;f.next.OperationRole=ERR_HQOperationRole::RESERVE;f.hq.DeliverOrder(&f.unit,1000);assert(f.unit.Task==&f.next&&ERR_Actors::spawns==1);}
|
||||
+
|
||||
// The copied radius is used before installation even if current uncertainty grows.
|
||||
for(float radius:{45.f,60.f,110.f}){Fixture f;f.next.SearchRadiusMetres=radius;f.belief.Radius=500;
|
||||
float deadline=f.next.ExpiresAt;f.hq.DeliverOrder(&f.unit,1000);
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1",
|
||||
"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_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
|
||||
"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": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
|
||||
"tests/test_hq_delivered_task.py": "9fd05d454b07f15a90d01761684f7019c650d63587d9fe54e5cc131ee236b445",
|
||||
"tests/test_hq_ammo_dispatch.py": "89858dcb20dc8da6856140223bbff38bf0cef2b62f081ed70b9d239c53197abb",
|
||||
"tests/test_hq_operations.py": "4178677b2b1189c427b98020d8075d67fad37af03a58e42a8317473e2b1f45ee",
|
||||
"tests/test_hq_coordinated.py": "8f70c188f4d514c2eb6896d2348e1fec4955cce015621b778fc2329ddad1ed62",
|
||||
"tests/test_hq_squad_judgment.py": "2c0ce7dad79c85eeed92d3be7462cf7f141fc63abf048a33ba013e518372438a",
|
||||
"tests/test_hq_watch.py": "3f117474ec227ff974fa6530477fa8ee12b26ec9c2bbb2d26ba0a67a3bc38d3c",
|
||||
"tests/test_hq_execution.py": "f37370af914f73bde4b19165bd670cbf6c40ae115f6a30fcf2eff2f554be7b79",
|
||||
"tests/test_hq_assignment_lifecycle.py": "aeb4122128f5c2949489cbe8b0c541de5064600ac2cb671e02c6e86d39841d7a",
|
||||
"tests/test_hq_report_selection.py": "4bd4c4800c217584ad9e1b4a37968350eb9a160e0151fc8b0375781736726cc0",
|
||||
"tests/policy_harness.py": "e861c30037b3e456f0c8ef1c02e9fe1417b601ffb15d2037974715008865e4be"
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"tests": [
|
||||
{
|
||||
"test": "test_hq_delivered_task.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.56
|
||||
},
|
||||
{
|
||||
"test": "test_hq_ammo_dispatch.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.27
|
||||
},
|
||||
{
|
||||
"test": "test_hq_operations.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.73
|
||||
},
|
||||
{
|
||||
"test": "test_hq_coordinated.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.6
|
||||
},
|
||||
{
|
||||
"test": "test_hq_squad_judgment.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.43
|
||||
},
|
||||
{
|
||||
"test": "test_hq_watch.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.79
|
||||
},
|
||||
{
|
||||
"test": "test_hq_execution.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 1.53
|
||||
},
|
||||
{
|
||||
"test": "test_hq_assignment_lifecycle.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.36
|
||||
},
|
||||
{
|
||||
"test": "test_hq_report_selection.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.27
|
||||
}
|
||||
],
|
||||
"changed_inputs": [],
|
||||
"all_passed": true,
|
||||
"native_run": false
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"approved": true,
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": {
|
||||
"before_sha256": "2334a96e1e29c70a9f3076f9fbef53949e39d5560e23d078639d73559cb0b823",
|
||||
"after_sha256": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f"
|
||||
},
|
||||
"tests/test_hq_ammo_dispatch.py": {
|
||||
"before_sha256": "e2e4dfb26e17b85953c2ba40a3732b04514ae3b8cf099e3ca67466c0a7b9a05b",
|
||||
"after_sha256": "89858dcb20dc8da6856140223bbff38bf0cef2b62f081ed70b9d239c53197abb"
|
||||
},
|
||||
"tests/test_hq_delivered_task.py": {
|
||||
"before_sha256": "2c535df5ea11969051e92d7fbeb2ff26e03f7eb20bfe69ead0067fd2d42bd7ec",
|
||||
"after_sha256": "9fd05d454b07f15a90d01761684f7019c650d63587d9fe54e5cc131ee236b445"
|
||||
}
|
||||
},
|
||||
"proposal_manifest_sha256": "3913aa39a8f0490dc95cd8b81862fcac124a05adbf575fb5010c87eabd45ac3a",
|
||||
"patch_sha256": "55c7b38be296d287d5af3aa05749dd0ddc19507a041062e40109887839d6496e",
|
||||
"reviewed_head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"scope": "Independent read-only three-file source/test diff and retained evidence review. Reviewer did not compile, run tests or launch native. Live targets match recorded baselines; no whole-repository/index invariance claim. Concurrent garage/changelog changes are excluded.",
|
||||
"findings": [
|
||||
"Production change only widens known-empty admission for enabled coordinated positive-operation RESERVE when current original squad judgment exists and Recovering is true.",
|
||||
"Existing WITHDRAW exemption and release-only path retained; ordinary tactical reserve and SEARCH/OBSERVE/FIX/FLANK/BLOCK remain rejected when known empty.",
|
||||
"All later belief actionability, revision, expiry, eligible-unit, exact coordinated slot/task/execution and support/logistics/home-guard vetoes are unchanged.",
|
||||
"Judgment lookup is existing public API on initialized m_Operations; pending order/task/downlink exclusion prevents planner roster resampling while that delivery is queued. No native API or resource dependency added.",
|
||||
"Ammunition sampling/freshness and finite supply stock are unchanged. The exemption allows a recovery hold; it does not produce rounds or establish replenishment.",
|
||||
"Existing harness assertions remain; extension replaces a blanket coordinated-refusal double with actual CoordinatedDelivery and adds reserve positive/negative controls."
|
||||
],
|
||||
"tested_scope": {
|
||||
"author_logs_sha256": {
|
||||
"green-delivery.log": "3e4c1177f828b2b47baa6fb274ed2ac27ca33fee42e75f49dfbd0124cd5049dd",
|
||||
"green-ammo.log": "8aa65db678e64c600682c049ced50cf12fdaed343c64c228d7bf182d6bf8cb3b",
|
||||
"baseline-red.log": "09fd626e64135553a80e909d0791d13ecaec01af69297fb1e4e7189afac071f6",
|
||||
"mutation-red.log": "467da3d81928a1f2081ac04160dfc24e3d387b80a8ff090a4a6277ff4c1b884c"
|
||||
},
|
||||
"baseline": "Exact final full-delivery test compiled, then failed first empty-ammo recovery RESERVE assertion with SIGABRT.",
|
||||
"proposal": "Author green logs cover actual full DeliverOrder and actual CoordinatedDelivery, positive recovering reserve, unchanged WITHDRAW without judgment, ordinary armed reserve, 15 rejection controls and five attacking roles, plus existing ammo admission/release tests.",
|
||||
"mutation": "Retained attempted broad-reserve mutation is compile failure (unused squad under -Werror), not behavioral/runtime evidence; excluded from correctness claim."
|
||||
},
|
||||
"limits": [
|
||||
"Opaque native waypoint/group, memory/watch and judgment lookup boundaries are doubled.",
|
||||
"No native compilation, radio transit, physical withdrawal/arrival/resupply, multiplayer or performance result is established by this proposal.",
|
||||
"Existing planner tests/source establish withdrawal-to-reserve policy separately; new test controls delivery rather than recreating the entire planner-radio simulation."
|
||||
],
|
||||
"supporting_source_sha256": {
|
||||
"ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
/tmp/err-policy-g80ah01t/check.cpp: In member function ‘void HQ::DeliverOrder(ERR_HQUnit*, float)’:
|
||||
/tmp/err-policy-g80ah01t/check.cpp:228:26: error: unused variable ‘squad’ [-Werror=unused-variable]
|
||||
228 | ERR_HQSquadJudgment* squad = m_Operations.Judgment(unit->Id);
|
||||
| ^~~~~
|
||||
cc1plus: all warnings being treated as errors
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105/hq-recovery-proposal/tests/test_hq_delivered_task.py", line 36, in <module>
|
||||
run(r'''
|
||||
~~~^^^^^
|
||||
#include <cassert>
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
...<260 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 13, in run
|
||||
subprocess.run(['g++','-std=c++17','-Wall','-Werror',str(p/'check.cpp'),'-o',str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['g++', '-std=c++17', '-Wall', '-Werror', '/tmp/err-policy-g80ah01t/check.cpp', '-o', '/tmp/err-policy-g80ah01t/check']' returned non-zero exit status 1.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"change": "Allow original recovering squad RESERVE through known-empty radio delivery gate",
|
||||
"production_files": 1,
|
||||
"focused_programs": 9,
|
||||
"focused_inputs_unchanged": true,
|
||||
"prior_base_programs": 8,
|
||||
"baseline_control": "Compiled old production delivery fails new recovery hold assertion at runtime",
|
||||
"mutation_control": "Nonqualifying compiler failure retained; not counted as behavioral evidence",
|
||||
"native_compilation": false,
|
||||
"multiplayer": false,
|
||||
"installed": false,
|
||||
"published_by_this_continuation": false,
|
||||
"concurrent_work": "Garage/changelog work committed by another task while auditing; preserved. No whole-tree invariant claim.",
|
||||
"head_at_record": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"documentation": {
|
||||
"path": "docs/current-status.md",
|
||||
"before_sha256": "dc0088f44345c2b10d068874e840f8e9499f2bd4b370438b33f6950bd407d071",
|
||||
"after_sha256": "bc690d6b0a578ab7d753c51e0e89ec9b3ef37837c7773df89b6128f543a6f645"
|
||||
},
|
||||
"review_sha256": "2f9fd20d0745df855719f08b7d8e958ebf08692b1da6b530401d607c8d557baa"
|
||||
}
|
||||
@@ -0,0 +1,805 @@
|
||||
{
|
||||
"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/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c",
|
||||
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
|
||||
"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_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "b8f9df2cccd49d917389a1f872b1dba2704d3de657ac0b236d88f2ec0c4c43c1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "1d20d0ecd77849ce1cf93bc89516059e25a6cbd89bf4c0ffc098be71f3ccd76b",
|
||||
"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_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb",
|
||||
"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_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "4321499b0d0ac09142fd8ec013f5020d115b64a40a5648169cea9fbb60cca0c2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "e4622ef82a3a3ecaf251c865786b97ff0f95bbeba147cde848c722708e151b2b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "012cc0f3928d883b99a9922fd3b30cbafc6363a73ee27772e359116e0e6233f7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "b22d75484cc671392f623fddd175882f9a430227247355f35c0aef4c68a7e0a2",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "6fdca5f333332b7bb2349c4ecd1f11278201770829aeac486a4f2fa7cd4221b7",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "2978e44217db17f03e336088c733d42fe8c8d36479bba1fe40f1cfa55d9e5133",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "0d1e84c7e20cfd60876330221929e33f920df31d8907413d5e2f6c04fb0a6026",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "75ac61a9ba0d984a5c6d21ad6a020bb1562914ab09dafac8a80e822f0af77611",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "63e27e74a5e0b1cf1c82ca776b9166e713f59918da02a5a89fccfd50a1036e9e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "39f7b77029834403ad98ecd398a364bdd5c7c4473c67816240c23160e8dd4080",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693",
|
||||
"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_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1",
|
||||
"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_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
|
||||
"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": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
|
||||
"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_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
|
||||
"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": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733",
|
||||
"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_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957",
|
||||
"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_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99",
|
||||
"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_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
|
||||
"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_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "01007951eea6a4eb980c3d88f3aad10219ae54f8d4f9982c40922edaa9d55300",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "ee8e5f0483ad738f6254adcd66e71ad4872fd000c92f44405c4dcc0453a40308",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "2334a96e1e29c70a9f3076f9fbef53949e39d5560e23d078639d73559cb0b823",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "47e7c984814558d1c355ec15959ae3dae82285ab33f1363b7ab965069136d14f",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e",
|
||||
"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_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203",
|
||||
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d",
|
||||
"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": "97d3c77c6a94220edadcc84de2bcfc3a574796cbc61130bc99ec88a6aff7fd3b",
|
||||
"tests/test_admin_setting_policy.py": "f5468ff6e067d6836b384ac09670e07df485251028ee35ba3d6f26bcdd7b0b37",
|
||||
"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": "bdf2475a47491547d0c5044acdcee241e7c267b42c18965700c9912c03aa7745",
|
||||
"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": "10e133a3258b860b03bff368dac4c9ab8f4fc948e327f7fcb3224d7e25337412",
|
||||
"tests/test_mortar_aim_renewal.py": "cf228b7f83d247d93277ec4c8644eb1090a20336a7e9ee2b90086c78199a70ca",
|
||||
"tests/test_native_mortar_transfer.py": "3b2a201a73c9ff2509276428988e4a98023c6aa94f8eeb42bc06c6cc604473d2",
|
||||
"tests/test_dedicated_native.py": "5f6d78255fe40db12cea89ccdd1f5d6093b8035439e7c540e4111a108fd741f8",
|
||||
"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": "942b4ce0a27882c498f16422e625886f2dbf84df01de57948c8ffba67e437ebe",
|
||||
"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": "2c7af4d7d6250d47a4759479ed7e780cb137f42837ac1794a6ac50ecbfb87b80",
|
||||
"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": "7d3e27323e049296c5aaf47e478ee4790d1298d57293f583d12876d0eaf2db60",
|
||||
"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": "cedf4491ea91a457c1ebf381bd299d954703ad1a3cdfd1f7384b834b4e66e141",
|
||||
"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": "efe119365111d77577058ba2511b11de873c1ba72d4560f5ccfdff5f08988a00",
|
||||
"tests/test_native_shared_map_ownership.py": "672d248550339dc6350e548034c50b3440d44b91668457f3efb2d91c8445c3dc",
|
||||
"tests/test_participant_selection.py": "87052a9344b9a875c84f5ca1590d99ae9a23ecc0b16b33399c3761a1c73832ca",
|
||||
"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": "7ed310fe62eeab3fe386f7ed9ba0f91d0b5df350f05a4c312ac3d760c5db7296",
|
||||
"tests/test_native_end_runner.py": "aed94be9b370a412937303cc5b66f0151c2cd64c3e1358f983f9ea53eb0d1057",
|
||||
"tests/test_escape_result_wording.py": "7b3613cccd4f24d3ef4665dfc1854cfc958a69018a59f9b8090617f0185a82a8",
|
||||
"tests/test_preparation_status.py": "3b1a7c30d12f0b6fcba36b57ecfcfefaec044735211205da844c65988ec60029",
|
||||
"tests/test_headless_display_probe.py": "d4d6c9907d7419ca888d5d9ba7448cbe6f5d2e53810f74c85660dfbdfc9f7e2d",
|
||||
"tests/test_headless_display_runner.py": "f03a908e813c9ca4dc2ff13b3ade08549931e39490b8636742390a304c73974f",
|
||||
"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_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": "4794772604b814c66ef6ea1d1fc7984b8b6d247541ea883b53581d3900d5bf7b",
|
||||
"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": "782b7a9ca87cc30ed7367ce68775942b8baeda4f43890dd494e5386f84b5b067",
|
||||
"tests/test_casualty_feedback.py": "6e885a07fa75f57d08170c98b1cf185bbad2cf3d9beb5c929d4413899ef688f6",
|
||||
"tests/test_intel_admin.py": "17c3681181f8fa5ef7803fe7edab73cceb610be597ffc424c3ba8a3e1babf71c",
|
||||
"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": "13a0aca210c1039230ea4ab9c24344341ee5c3f5bb0cf340b68f4e01d15aac1e",
|
||||
"tests/test_convoy_dispatch.py": "d3cba23fa14ece5b8be38d78977eeb6a48e1bbb6bc5e28d99eb58964ffbbfbc1",
|
||||
"tests/test_convoy_admission.py": "e1efbaf8cd6f4cb52ebeebb8a3fdcc020edf779925011aae7f9f4822aac3ecf5",
|
||||
"tests/test_native_package_external.py": "8eb3eaee401640521c67a51607104a28de89ea9c32b3b6dffd05d9d3026fca3d",
|
||||
"tests/test_convoy_road_plan.py": "62bb655a84f90e934bb894f8e472a8a06905d72e1c0b05bd641e46eb8f4873b4",
|
||||
"tests/test_actor_group.py": "0d808be40d13866bf8bd983d62ea3a8e7772e9c49a41109fffb02c5352153a4d",
|
||||
"tests/test_external_addons.py": "691e26cb7442b79ca18b85cb91613871d55e57c8085fb97614c63b6b9d26f46e",
|
||||
"tests/test_external_profile_review.py": "a35e9670a8f5eb47d28b4d6afe498e5a58b2ab2dbdc59912a206010ac8dc5240",
|
||||
"tests/test_hq_delivered_casualties.py": "c22ad9e395b36b41e8292b034f170e14b5d13a6a02b2a81dc619dd37110ad905",
|
||||
"tests/test_hq_ammo_dispatch.py": "e2e4dfb26e17b85953c2ba40a3732b04514ae3b8cf099e3ca67466c0a7b9a05b",
|
||||
"tests/test_convoy_combat.py": "140d5e8c8c978f97f7f15238bf2aa4efc6ca4d9b6370ef5a0c68bf469cec0b9a",
|
||||
"tests/test_native_hq_body_probe.py": "f2b761fadf013d55d4e9c2ae11c5349fc054e767cf950aa632a43b8f4fe1d758",
|
||||
"tests/test_enemy_optics.py": "812b51a4d61e842bf9ce9bc7ab027480a9071822441039d4c1b9da8e72182206",
|
||||
"tests/test_native_convoy_cover_probe.py": "0aaaa7902192472c13e4b7aff3ebdaf972c66fcb329d13e0fb4f2b3d5bf0ead1",
|
||||
"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": "b032100c9971bb7edb9533c0f2ae3b5959b94dc22a16b309bccb7f2aa913e7ab",
|
||||
"tests/test_convoy_startup.py": "2c9106023ecb6dcfb5c96c2edc98b51695c325c685b2ced37b999b6cd4504c65",
|
||||
"tests/test_failure_result_refresh.py": "79281e8d2f18b5ca79b7db4bf146fff0d13374eb5b3a8542e4b862b71b98f6c6",
|
||||
"tests/test_convoy_auto_settings.py": "eb83ad197063c6103ae8a990070a6cdf751ba7fa340187621377b60f5f780b03",
|
||||
"tests/test_native_memory_deadlines.py": "66cf766ff2477518610eaab231572633ae7c2920cb183909bef346f9835ba889",
|
||||
"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": "5604884009aa68ce45a4d43291513cbb44765e23eee9e1524aa83bd62a629297",
|
||||
"tests/test_native_local_handoff_probe.py": "5a0904863ea00fd7ad262fcf91d8c1e55036b2041f16b043104f333c37d8c7ba",
|
||||
"tests/test_hq_road_intercept.py": "0e83cb7c63131141ab50a38e7da1dfb41b631a6cb5768dff1066a0ad385ba7fd",
|
||||
"tests/test_prefab_identity.py": "2a1c6e4cb1ead0c7b36b8fffb2ba0c59dc7e025dafaf8344a8158d38fe17582d",
|
||||
"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": "446e2236cc2d17c624d54046c212b9838c9698d049fe82333634a4d26689e490",
|
||||
"tests/test_faction_selection.py": "77e4789499b3560e729a115197c5b02d032c291ae1bd44b1cac5a2c2c476e450",
|
||||
"tests/test_generated_sites.py": "c84311f255b776477e6a0659a3012cff508bab0d6184f8f035c3fb4331cc632c",
|
||||
"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": "7ef7491bd76df5169bb988c5eb533d7a4a7240b69578c34779bba04aab72ec65",
|
||||
"tests/test_intel_body_inspection.py": "aac607f4ed02556b053d2cd75f4aa91253877ea214b92bce99eeb0bed3de47b5",
|
||||
"tests/test_air_logistics_orders.py": "adf7181998f522f8825b71ef10955c9311aba9086e5bb601cfd47599baa46d8a",
|
||||
"tests/test_enemy_awareness.py": "881289417a1e4af219546b113d018e9bc6a402a16cf4bfa7e983ab240f41c2aa",
|
||||
"tests/test_faction_menu.py": "9e6381a4786487962358362b75a2287532a688ab27df756e84801e2bb6dc2e55",
|
||||
"tests/test_hunter_opening.py": "9d37ed0c801726f1e35fb03408d52e5acab4bc50b9d3a446e045fd16dbaa32c9",
|
||||
"tests/test_journal_readability.py": "47764126522e7d7a90100cd9beff741bf49e4d8390111f977919d3e323a5c7df",
|
||||
"tests/test_player_medical.py": "e4b3140a3afc0161db53f261e5480e51f1ca09f85657e25b0efb7dbba3336e3f",
|
||||
"tests/test_gameplay_session_regressions.py": "8a62b82e0421c5a73caa6636059297ba0c7e9fc9824ebedc4bc51b5124feccd5",
|
||||
"tests/test_field_sites.py": "bff034a8aeee567e3a447d2a323e6cbb505e8ea8b8826de84e9ae226184f112e",
|
||||
"tests/test_town_garrisons.py": "4f85c3ec47c1296957176d48383917eb644bfec1756e5b56e89819bd6198a246",
|
||||
"tests/test_unconscious_controls.py": "74d4008a5c02ad0087b55030c177c8320b7099c11b97a14d93acf0ad14941356",
|
||||
"tests/test_hq_local_awareness.py": "76f8ba662c1269d65a37248a0b9e0a35c243d4ea127fefcb0305280fde22beaa",
|
||||
"tests/test_hunter_combat.py": "2058dcb015f897b8a55ee3d7903951946e4c90e2278ad05493bf1b487a1750f3",
|
||||
"tests/test_enemy_medicine.py": "24644fc0bb25905f755afc236e4c5c0edd841de16b55dec987ffd50bc1144ca6",
|
||||
"tests/test_infantry_combat.py": "50e07bcd5a0cd0f0a6ae1cc12d232d7d9ba1e84fdf3652b001c4a28016cb100f",
|
||||
"tests/test_hunter_profiles.py": "d9593f8c1681a28f3faf79a140e9b94566091a74f4b04ba733926b8d0768b1c2",
|
||||
"tests/test_gameplay_review_fixes.py": "425ec245d9861e62adae29dbd4b60b4d07b256a653add941a0c8de3070ce0ba9",
|
||||
"tests/test_spectator_recovery.py": "897a4f384727762a835b822f14eb6528b722af4cf65af40f0555409d5644e0be",
|
||||
"tests/test_server_log_regressions.py": "733084d7d2e33eb96740768c48d9e25bd7f3ffa9081949e38d0776c6822f5748",
|
||||
"tests/test_mortar_load_ack.py": "6eceee33969ec268d904f062bd1ac12ec4269cf87acd235469052b193b048774",
|
||||
"tests/test_body_recovery_lifecycle.py": "242e185d2934dbe756c5d90c45211d3c1bcdd5d8cf829c867c9e9f9a110f2cfb",
|
||||
"tests/test_native_infantry_cargo.py": "0d27423c6834503840813327d0d3ba0d675206ca759260ff79cb775adf83e314",
|
||||
"tests/test_native_infantry_setup.py": "467ff9b3f52603357f2895955899162596ea4c79bee0b4def2a911f71fb33740",
|
||||
"tests/test_view_distance.py": "ddc6cbeb41485f14a4f2ce23a7a86f1708e7e335bbeecee6309be49fd72e00e7",
|
||||
"tests/test_optional_transport.py": "554fb3634d7b65d5c36d7bc4603928a222a69727ad2d1d6c469a641c6a7e067c",
|
||||
"tests/test_terrain_adapter.py": "bcc6f469a12399f833651c591b3e1ca9a8e7f49d8b98e223a271fddc245bc4c4",
|
||||
"tests/test_terrain_sites.py": "53c39258d9f874fa7b9c166e4fe5df03bc46442fed7fd1d4a784ffd6527bd7d8",
|
||||
"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": "3f844917d31a769a5c45789d63cc3dc3e4c6338244155daca44bb3e79cd4fa85",
|
||||
"tests/test_supply_budget_admission.py": "61519e61d2b675bf071d595f0d1d3269f88a71101520b9eafa9fe17157d1dbad",
|
||||
"tests/test_native_mounted_swap_probe.py": "08674b3c0121756fe94762bd0acd5b6880ba5b234691557851eca5558718e2ea",
|
||||
"tests/test_mounted_initial_stock.py": "cf7d101d8bd31cbdaaa0e7d66f0d8b39aff9b3b70acf51641902c6d0de5be096",
|
||||
"tests/test_spawn_scene.py": "d5dc2530308534ffc607ba430e7af04cf9b164d39b95d2aadb59012dc558f730",
|
||||
"tests/test_spawn_preload_timeout.py": "1bfff91a5758197dc7b0ef68127c2c68db72e9186dca56eefdd0c8efdd92367c",
|
||||
"tests/test_hq_uplink_fairness.py": "c1e06cfba19a0ae67adecd8b10e8fa536c52a70c2249834997ccab4bcb18c66e",
|
||||
"tests/test_hq_pursuit.py": "caf00e5a3a4f0efaf1bd8159c3290eca3d0cec60bfa1368844410d65f3a20ea3",
|
||||
"tests/test_supply_convoys.py": "54f0ecdcd2b61db46ec85ce5092e5ce3f6f948e98ec961586055af6d9c8c9fd9",
|
||||
"tests/test_native_mounted_courier_probe.py": "4dadd3157f7da193ce8996b5b08e802f891295ad82a4236366f3018c778c07e7",
|
||||
"tests/test_vehicle_maintenance_stock.py": "89a3c9e1bae2772611981051ae384aa4db86c3f1df8c9c4ae053f2db9cedd5eb",
|
||||
"tests/test_hq_coverage.py": "d790ae0e5b533f702284e6deeb2c84f7ede5c89bb2b6a68847400e915d50c146",
|
||||
"tests/test_engineer_mine_hq.py": "40cb6cb73a00311e9e3d2dfd2cbc10f7f2ea61d3e7281a69f227584a773d8684",
|
||||
"tests/test_intel_discovery_feedback.py": "ffdce25a6c753da12822bf3f1cc7a66d21207dadb0e024ba1f4035cb6971a74d",
|
||||
"tests/test_mine_intel_discovery_integration.py": "c68dcdd7b78bdbb25dd07e124f04b6344713f91955fd41f254ea6c15487fdc58",
|
||||
"tests/test_hq_delivered_task.py": "2c535df5ea11969051e92d7fbeb2ff26e03f7eb20bfe69ead0067fd2d42bd7ec",
|
||||
"tests/test_hq_assignment_lifecycle.py": "aeb4122128f5c2949489cbe8b0c541de5064600ac2cb671e02c6e86d39841d7a",
|
||||
"tests/test_hq_task_reservations.py": "e79b051ce75642d74b81091dfbecde50f1d2fd2ced246536ecbdaeb37f709290",
|
||||
"tests/test_terrain_takeover.py": "12365036f81e0874910f100626d2e26b4b2a83042327a927727fda87f05e80db",
|
||||
"tests/test_ai_stinger_admin.py": "d645813857f85854aeca60c9010689662d7cc43f298256d73ae37b05d74e94c1",
|
||||
"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": "0d7b8df331d4cfeb2ed76c538b3d010e527dd359fb9ce12cae0a3d8fb2e8765f",
|
||||
"tests/test_admin_providers.py": "ddfa1fff6d207d866acf1e29635c9e17a21b2b391c16870a91360dc0d993c2f7",
|
||||
"tests/test_native_mine_stock_runner.py": "51b30d4d7d7543b1674285448d382dcbca55272a0403ea977d2cf08db6a5290c",
|
||||
"tests/test_native_convoy_mine_stock.py": "f069900030cb644ba9e04adb01a6d847a1afa6248a6c458f547aa4fcbd4b5a40",
|
||||
"tests/test_native_player_death_fixture.py": "0d0825ebb948a68ff8b8f5cbdcc7e27bdf940e5af1e277ba1780d03e12f2ba33",
|
||||
"tests/test_enemy_loadout.py": "0cdfd28ce4d9c89223a7f439eaec1cad762cfc6c9e1cc4c3213d4600a3501b37",
|
||||
"tests/test_enemy_equipment.py": "8fa450774cde31ce4e6a7d4515883ad8bf3da58b03ce1382bcb9d14b7c7a2cd6",
|
||||
"tests/test_infantry_mine_transfer.py": "55caf2735f2d86aa4cc474ef2d3998f847935e0a0b0d881d5390b2039a055704",
|
||||
"tests/test_infantry_mine_coordinator.py": "2fdb2138685a329cef11557973450bd5189d3d7d657dac5cc51b3df2530fab6b",
|
||||
"tests/test_enemy_radio.py": "d4c6ff5383a2c36e1a8a225571fef7cc9436bbfcc6139804996a9ce647a86716",
|
||||
"tests/test_hq_planner_budget.py": "17557084991093b87cdb992cc4c23cf4158b839ebab1d2738dee457af6da8682",
|
||||
"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": "c3bda94af2eacc3254e8e00c0c07f7dbf080f29b5ad5f67d07f344ac57e70e42",
|
||||
"tests/test_native_observer_selector.py": "11ff98fe3c07c847ca9587248f6e1ab26fb09893f33f767c4a69565e25489e1b",
|
||||
"tests/test_chat_client_ownership.py": "c559dbda1af996455038da9eeb5ffcfc6332da9b93082da8ad3071f5d72b8bdf",
|
||||
"tests/test_mine_intel.py": "db64129001c0010ad11389ff764356893ac7c4fbf45e7c82aa56bbe4c75f4929",
|
||||
"tests/test_objective_map_element.py": "0611600fdb0caa35380ebc78f38ec1062ccd9d2085898e7eefdbc1986142f1f4",
|
||||
"tests/test_objective_map_presentation.py": "2418f4c0f370bd436b316e56d5ead97ff4b6aa7cdfb3777c9d2af22486148268",
|
||||
"tests/test_native_objective_map_probe.py": "f87215a3ceef43cdc26970bc09099a64d69482a322a3c326fd1b2cc12b16d10e",
|
||||
"tests/test_hint_delivery.py": "cf6487295395d2afc75d5571dfbb2700fa7a6bb11f7c83b4d96bd2728ea89835",
|
||||
"tests/test_observer_ownership.py": "d06efedfdf07861f82b0d2429f21db1d7e20945b74a8e9f7eca8f10374328771",
|
||||
"tests/test_hq_ammo_reporting.py": "9ab5c593aeadbdaac88c5ea38a653c9a6244091064cb114167573bfd65b8e052",
|
||||
"tests/test_hq_ammo_sampler.py": "e9c2d147eb1547be471df7459f1be815cdc9ef0a64c9a4ae4ef58936424dbc55",
|
||||
"tests/test_hq_multiconvoy_supply.py": "e58d1d6eba48b2c5c6073d54c76302b2a7250ad22176fa94c386e1bc2ce65588",
|
||||
"tests/test_hq_watch.py": "3f117474ec227ff974fa6530477fa8ee12b26ec9c2bbb2d26ba0a67a3bc38d3c",
|
||||
"tests/test_infantry_ammo_transfer.py": "18029a092262d0d1a309108a158597a174c1a05f58157eafd096c1c707fa0e29",
|
||||
"tests/test_infantry_resupply_coordinator.py": "a7eaa26e21f587fd8abde5dee6f7f8afc1e9f2f7ed0bcf40ed6a087a56908adc",
|
||||
"tests/test_infantry_resupply_planning.py": "9879a27816dbc6b9c4da19c4714407614b4c6e20b2dd831b2701e5f3500ede6a",
|
||||
"tests/test_mounted_supply_integration.py": "f52acf7a16c9d5273894eb5a4afe7657a7c97de2ed72ba06671d25e163eea5d7",
|
||||
"tests/test_hq_mounted_intercept.py": "dc28ee9625d961cdbecdd6061879cd42a882f183f70a3a04670f225e61d52776",
|
||||
"tests/test_hq_mounted_dispatch.py": "d6882a1fe51747ecfc2c1ae0f3c5573b142e46c6bf2a0904d7ff9f5f2d04473c",
|
||||
"tests/test_terrain_presentation.py": "9cc526ae7fbd40309295166e3f186683eaefb8b2e86c4286da899c42fb419f92",
|
||||
"tests/test_terrain_selection.py": "3f43ed1d003415c7c942fe09009f386866da5ed99bb20a8ad96417d69a8423fe",
|
||||
"tests/test_native_mounted_intercept.py": "b06185d37af3621b847ab2b1ace87d221326aa3b15d48581b3895a54c209a2e8",
|
||||
"tests/test_server_item_catalog.py": "df5c85631d71bdd505faa3fc07f5a7ce01ddeb26c5c23ec040d64032d999a63a",
|
||||
"tests/test_mortar_transactions.py": "5db4ec737355a7ae995240dc93f1dce146e07c0110c2da2c23451f180b134d26",
|
||||
"tests/test_native_convoy_probe.py": "3d98fed9c597b38e27264108b2a7e5af2a8a8e5b529430d0d95c8a7dfc2eb09f",
|
||||
"tests/test_convoy_lifecycle.py": "67e385ab8c843df1cb138ae9fc4c276bf30fda42eea63ee1303174cef2387415",
|
||||
"tests/test_hunter_lifecycle.py": "1e5131b3b3a86ba2042b9e9bcc77764b5b95eddfb7c04fb8e0a10654a77e0d0f",
|
||||
"tests/test_convoy_survivors.py": "3970d814166850753f99ca002fe37116c67332b5e1253922687e4cd106ff7f72",
|
||||
"tests/test_hunter_capture.py": "740ee96ffb59e17d485a6e1e17ab1e687193239b413e9f4999d5144bd558955a",
|
||||
"tests/test_hq_mounted_intercept_pair.py": "1136c04270a7d63acbf00b8d2ce81d152e00c2110a280463fe547d6c18103d0d",
|
||||
"tests/test_convoy_intercept_pair.py": "3a587a043be3482a6cc5b4d0d152a22113126b637565cc627694aceae9d66eb5",
|
||||
"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": "b1ff855002215403bd58e7d5d38de4d5163519b9b8512a62d49aa22360f66922",
|
||||
"tests/test_engineer_mine_posts.py": "6185b5ab6576948fd8b47bb945fbe40107ec6944eafde2d04dd60ff49d5ec89c",
|
||||
"tests/test_ground_depot_mine_claim.py": "dfe117f58cdf420974fc0d821b1a4153c9fd4da7585fb3e6b872a418d22d2083",
|
||||
"tests/test_welcome_voice.py": "1e159ace9ad1f1e561a2477dd62a485f2dc279dd3f03df178929aff5664296c7",
|
||||
"tests/test_item_preferences.py": "f93979082b6d6bddb117319afd476e5a632557baa4b82209cca9401388b2ee99",
|
||||
"tests/test_profile_config.py": "727dc330db23d744fca0c965474f834d0cb70432e58938f286fde28bd8415435",
|
||||
"tests/test_bmp_intercept_geometry.py": "5b3322e7f7f29dfe47e2ffc52ab71c08c16db3548b1e880d47d4bc49a5188a90",
|
||||
"tests/test_intercept_vehicle_footprint.py": "5acfa2d3c16c924a5c88ae734814242dae96b168997a1bc4617476a7a48afb42",
|
||||
"tests/test_recon_search.py": "75f017eb29b03389cfd1f5d03be7e70cd15e726d6777d3cd48ca19237b665192",
|
||||
"tests/test_body_recovery_selection.py": "72715eedddbc443538426f4fe52cda09af60c8d132d2dbd62df6dc7286b376c9",
|
||||
"tests/test_admin_menu.py": "bed7a65ca6fadc2b43a4b2f7e6cb0c93535a5204f9330c86f7340c9304deda6d",
|
||||
"tests/test_settings_migration.py": "960f13d3d737a1e2ad16340917205baab2b2bb3827104f3de81d681615a40830",
|
||||
"tests/test_rough_intel_feedback.py": "5a36b2b00ac205a65ef625f2f9f01cdc760030568049b8adc66c01317ae4f7bc",
|
||||
"tests/test_radio_waiting_text.py": "7f4b4ce57075322d1e5f337c31b0a3fe2edd7b07f22f502c0cdfd3e963140f4e",
|
||||
"tests/test_start_settings.py": "7a28f853bb8bc567f7feb7a891d92da9ff60ed0b2779388aabd692f74a868b26",
|
||||
"tests/test_crash_start.py": "a0da29a58053e2fde28899cd0ccb67fe7345afa7901c424bfe4a8bd04953627d",
|
||||
"tests/test_hq_convoy_dispatch.py": "f616e4c8687fd0839be186e94df9b689a3fcb1cd4b9cdd0506050a408de672de",
|
||||
"tests/test_prison_ai.py": "9c0db6205bde7df7710acfc6bb20231f9e893b0f3913b7a2c4cfcf45e219a70d",
|
||||
"tests/test_terrain_editor.py": "02e83af98451b532440f58b7c0b37d27bc8582a6fae4ced47c9e05338551a6ce",
|
||||
"tests/test_native_mounted_ammo_probe.py": "87bc8b9952be2e13fd7778af59504078e694b7bd9f0bdfea173feeec58a10f0e",
|
||||
"tests/test_inventory_hitzone_compat.py": "bffa64c645a4282a1ed1ce244a9a2de37f20a70c60e8ff5b1544b7289c12c877",
|
||||
"tests/test_native_inventory_hitzone.py": "bb67f3e2002661331b1f170955989df5bf30a60b48a294ff979bb6db335ca819",
|
||||
"tests/test_hq_mounted_ammo_sampler.py": "6cebbf3ba4fe44a7a60a2004f679fd0ee39e9e5bd19a69f5e1a5fd1ed1f5c418",
|
||||
"tests/test_hunter_fallback.py": "04b48d0ba208b43e3abd3cd4026bf00f833fdd8f58801afa78eccbcbcad96a61",
|
||||
"tests/test_convoy_hunt.py": "c0f2755fc616e78f4ad1800bcb191fc7a0f5b16e7c437cf64d915c37e91e1248",
|
||||
"tests/test_civilian_traffic.py": "b94ba3e06c5755a97308d3b30864eac5266259acc82b6330424a55cc0f04d105",
|
||||
"tests/test_hunter_tactics.py": "34581151f0b0d42d100cc47c1e8684c30bc31e84c14931499f1e50af7d0ef798",
|
||||
"tests/test_hunter_coordination.py": "05cb5b4489a90481478fdaf1d39a5f621b2dd62df33398d8d9b73929f008df13",
|
||||
"tests/test_attack_coordination.py": "e60d4845a5a5cbdc64265c8feda314b1a14a66ebf10934a3cec18b61ab881566",
|
||||
"tests/test_welcome_lifecycle.py": "512037d00d22f7a71be975f5ef90db5ec4f7989662efe3d69a277aa0420611a7",
|
||||
"tests/test_speech_service.py": "a610e7c207660273af11f9ed389d10e7ae3e356cc7bc3006ff0f7f2edefe1c81",
|
||||
"tests/test_speech_menu.py": "ddd3e891aedf0aa5224c21191687366f9355de08d84adb9d40a824ef0b0fc09d",
|
||||
"tests/test_welcome_identity.py": "fae4147e35262ba6899c7b1bb372f928c00d6452bfe397d0864de229b717f75f",
|
||||
"tests/test_reconnect_recovery.py": "a951da374ef1d17bb28a164d0a6242e673bd956603af6bbdcc3185afd80b87a5",
|
||||
"tests/test_observer_view_buffer.py": "0fa98bd8d77c32265e0e8b402d29ad714c088ad31422d19aab29bfd14318be7f",
|
||||
"tests/test_observer_view_relay.py": "eb5d2364412d4517e8f17207535ad03cb2d879629067bece102554e0cef3e78b",
|
||||
"tests/test_observer_head_visibility.py": "6b0c8eb989819bf2c0ed7a6c31e49f0d95358b4dd497d4508d1706e54c05495d",
|
||||
"tests/test_roadblocks.py": "59cc7e111d3cc2054dea1e704b38cf4266a7932d09c2d76b2779310d07bd72ef",
|
||||
"tests/test_hunter_close_contact.py": "9296bf490c88c3909b3a82a8a5458944820ad47d27e452c4d8de8b7cb857e289",
|
||||
"tests/test_hunter_driver_handoff.py": "08cc3c56dbe465ae58cf3c2a98103d749f8a59631011313f27cac0999d847f99",
|
||||
"tests/test_soldier_speech.py": "d9f763e75e749a4f5cb012fc6e586bf8b1ac6db65d79a8f5a7f5377f39371cac",
|
||||
"tests/test_soldier_conversation.py": "ce2eb71c96017371f608eb3f96eeac7a8d82e41297177bfe649228e66a2f1bb5",
|
||||
"tests/test_soldier_observation.py": "86a33e8fe02d19fff36178d709b8f42de8ba2f7674566c407a2a46d73fc574df",
|
||||
"tests/test_hunter_transport.py": "032a3f06e333559f0e7103398142b1054fa2c3e4af7cf2ec1c2c2f90ee3dea95",
|
||||
"tests/test_hunter_search_memory.py": "c4bc443c6dee8db5e55c1d2509079a1702bcccd67a589d0d87e460e70bc6ac8f",
|
||||
"tests/test_hunter_gun_team.py": "6ab2dea290d1b5f3b0294773001d1f99e0c0a7fb2bb202f63104c5d01430ff66",
|
||||
"tests/test_convoy_column.py": "a2bec70712a27c2e5c17d46801b8b71a2ddf079e92ddeb1a584b2b1f1815e5dd",
|
||||
"tests/test_convoy_placement.py": "ce904d781fbc0dad8bcb6231b6c7196f8a4d2f6836ab8d3d217a82f8f5c2562e",
|
||||
"tests/test_observer_scope.py": "f70d9dea673fb680c589fce8eb143380fd2ce407be602c04835b0e887904d0fb",
|
||||
"tests/test_terrain_editor_registration.py": "45f9767f70d28a88b296934d35f96b4c58d2edff477c2b9d185c34a779599a6e",
|
||||
"tests/test_item_station_lifecycle.py": "7f9ee7ecb3eb072c58de214764e0d2699a30e8d00a4462a78597776ef012a889",
|
||||
"tests/test_roadblock_mining.py": "846afc3d6363d743bf566503ddb34001e6054f31e3e5dc313d377e796ede42f4",
|
||||
"tests/test_spawn_loading_protection.py": "7aded823d3dc8a24babd8e2986c7cd5796c76b3a0e4613acc235cbfea7e4b9e4",
|
||||
"tests/test_observer_view_anchor.py": "66f62058a28a7921715f4242aa4d196c171462e4c8799a1044d29a230101410c",
|
||||
"tests/test_observer_pip.py": "45e51eb12ff4056630b8982a40fabbfa05d851fe8e4b43a90601e360466c7eaf",
|
||||
"tests/test_equipment_log.py": "d92d809738f4bd50f9c4de3de1214a5f0c0ff84cb714e9ef1a3ad15528479f35",
|
||||
"tests/test_mortar_spotting.py": "90876bd802f7a2c1b540607af204aaa656943e32489ad05a5dcc291768080261",
|
||||
"tests/test_server_memory_sampler.py": "188ea6274f767fcb73f26c5f15ee9196a638378c05671626125216d51ac98989",
|
||||
"tests/test_optional_motorbikes.py": "309f7958cb178fe31ddf22a8f9ccb1bee2003912842586ca36357d3246f2ecc8",
|
||||
"tests/test_rescue_boarding.py": "f00e60ba24f55fee371a5837af9422a83cdc4c9822c1b16a36ab43b0bad22c4b",
|
||||
"tests/test_rescue_capacity.py": "32ae986c6c9d4cae64c82de533539fae276cabf5d58a2db0d5d0c30108881672",
|
||||
"tests/test_shared_map_viewport.py": "35281694475d87b8cc05b8589fe13f4b00a9ebbdb7b83ddfa69e886439c8bb2c",
|
||||
"tests/test_shared_map_pages.py": "d60b68e4fecef3c876568500a68436c12348339aa2ff953e287a5ac173365d6f",
|
||||
"tests/test_hunter_reserve.py": "1c967099d1434e26d88957265dd021490ab732ea0128992a7fb12d083cf334b5",
|
||||
"tests/test_hunter_sector_search.py": "ff77dff04378da62d6d3c7fb892b6cf86e363e353ec0d71c3449f22449f49fb6",
|
||||
"tests/test_radio_document_defence.py": "86984359f401afe48a6c722fb90e54cc0fc8b4a11af73df3252c1393fdc5f589",
|
||||
"tests/test_hq_hypotheses.py": "867bb1ae57a4269625dc872df60961560cd13b3f67b1fb0c90b77a57ac26cc07",
|
||||
"tests/test_hq_local_coverage.py": "3495806815dcbe43500299c45dabb65f669c94d37baaf65e32eb47fbd87c4104",
|
||||
"tests/test_hq_execution.py": "f37370af914f73bde4b19165bd670cbf6c40ae115f6a30fcf2eff2f554be7b79",
|
||||
"tests/test_hq_operations.py": "4178677b2b1189c427b98020d8075d67fad37af03a58e42a8317473e2b1f45ee",
|
||||
"tests/test_ai_pursuit_replay.py": "17ccc84dd98be98eeb3f4733bec00d697aaae330818e20d4094c8264cb1a77ff",
|
||||
"tests/test_hq_coordinated.py": "8f70c188f4d514c2eb6896d2348e1fec4955cce015621b778fc2329ddad1ed62",
|
||||
"tests/test_hq_hunter_operations.py": "5407c5e82e02f99273bcb18452bd45258b43011c37ac4872ffadbe28cd8ce6eb",
|
||||
"tests/test_native_coordinated_runner.py": "94c805ce7b741a84d35969678213c43460a4b5178627e662c07e1f960d65b956",
|
||||
"tests/test_hq_squad_judgment.py": "2c0ce7dad79c85eeed92d3be7462cf7f141fc63abf048a33ba013e518372438a",
|
||||
"tests/test_hq_tactical_ground.py": "04205ed85a5be804ce981b711077af1a121b08d630ca8a2fae7c72a38c51d0ce",
|
||||
"tests/test_hq_operation_speech.py": "40d394b10ef64f17a29de86470b1766562a1517f9d3520cd61ae77917973ca8c",
|
||||
"tests/test_plane_boarding.py": "7ea9004a09e0d803e1cd2c1a6dc509333559c3f950875bd5f43a2476d602e2a6",
|
||||
"tests/test_casualty_fleet.py": "f378b052c9ebf14ebf21497f22286a8c3a412924ed6c2e33233b2871ec1e617d",
|
||||
"tests/test_rescue_factions.py": "963ec7f2fc29c88341e4bee4a17cfd9f9a45e769fa517fb4985ba6c2be8f9efb",
|
||||
"tests/test_rescue_landing.py": "5e6b34247448cec0cefb65aadf5c4e55ed9c59a93ef13bde85e57bbca59a6f99",
|
||||
"tests/test_rescue_descent.py": "672bf21bec14dea182f1baf3352425849ef4b43e11d756e43db0ad7e121c39e1",
|
||||
"tests/test_observer_orbit.py": "eb63e18763ddd1c69effffd9b7b4c9096843bf9857ea0436bda41f25443302a4",
|
||||
"tests/test_speech_preparation.py": "cfcfba617162ab192e40c7e5e8d633ed69d3725ee0e363aa35b63e242b966729",
|
||||
"tests/test_empty_server_restart.py": "76826e3b4f60e0b3b7d7bb171507c59452fc57cd40d651f9e352106d6989b4c2",
|
||||
"tests/test_terrain_chat_retention.py": "e37185019a33e0336f69b6180619754ae7edb13517319eedc038edc9a6eef117",
|
||||
"tests/test_terrain_controller_init.py": "0faa86f15f88d816d5f4316f8798f981806151f157d5b193cacf01aa7fbd8165",
|
||||
"tests/test_hunter_stuck.py": "dc52c9b6b8c15524bb834da11fd83f5c71c224c40c64102359abe865cd6d5deb",
|
||||
"tests/test_roadblock_background.py": "a38eb845d73168d3fa3fc91036c9ecabd4dbaf07f2ec516767f3a4a5fac7d394",
|
||||
"tests/test_roadblock_layout.py": "8552cdcb06ecfae320f6dca8477c542fb64a1807479ee0dc51b307aca2d55ec5",
|
||||
"tests/test_self_epinephrine.py": "1c7810aa9e2ad1617e70f66f435e12c598350e1d5f49070b061214830c56aaac",
|
||||
"tests/test_start_backpack.py": "af35e268fa8c94c3f38cbc69b0c52f99f39374b2218e3f61c9a8811d4a6af48f",
|
||||
"tests/test_atlas_markers.py": "5c89e05aa7bae76625e39fbad9a01594e0ec18c4345bf0a53a6f3c5ce128ac15",
|
||||
"tests/test_bundled_speech.py": "622ff23a0457d654215e26f83768cdce3420441b221b5cedd84cb6e6fe8d33b5",
|
||||
"tests/test_sarka_hunters.py": "d125b8bb589d1115ae3e0008d00b80c52f0bd6ad93aa94bac0f7040fb882b302",
|
||||
"tests/test_discord_changelog_ci.py": "9ae5ef3c261d4ec0bce0fa5c17243b04ce947102f0f578a9f7c325adbd36d5df",
|
||||
"tests/test_workshop_changelog.py": "c3acf84bdfcf7935bcccb765ccf8ec0b24fd2f6878a578d1cfa240a656b4c09d",
|
||||
"tests/test_admin_menu_sources.py": "5baf9c7b0531b1d79f7c300cc9da78a58f088940e75ed13333564f40320d3add",
|
||||
"tests/test_hunter_recovery_wait.py": "5a475e06326b46c2f1df10f4eb24c7db3c5238d36282b311d86c890309db784f",
|
||||
"tests/test_intel_cleanup.py": "fbf347688344f154beae92ffd4d2a6e4087e9c41276024607034c77f29f17d80",
|
||||
"tests/test_site_map_visibility.py": "b19ef39365b6b1d42502a374bc08856c1653c7d768c5d6fb4030854041c12107",
|
||||
"tests/test_drone_recon.py": "83936ea1d29a0985f927beb68b3bed078608446091bdd5550bc7a517a1e3d61f",
|
||||
"tests/test_body_burial.py": "c060fa9ba66770822e4a8308ad9bf7d70a220455e739066696620e25208ca8d7",
|
||||
"tests/test_radio_intel.py": "e3cd012a7c3475c58e44f3940fc7b4798aed03e67e0b44b7df365705695b7012",
|
||||
"tests/test_placement_diagnostics.py": "4bdc1fddd3e8ffdcd647a1291d86a8ac5733745a20413fdec47fef1b604351ab",
|
||||
"tests/test_preparation_failure_menu.py": "41a68eb26cf0869916e48c4a03b8b3a3432561de309804ea803ad3cb0675cad2",
|
||||
"tests/test_telemetry.py": "1105fff7cd113df423cb546b4ff795cd5972a90dd7d8989af341d69ffcf3d36b",
|
||||
"tests/test_start_stock_overflow.py": "1631dfdfb478fc6a93a1b2bdfdae64a4975169b150e253d5c065761ad6b78085",
|
||||
"tests/test_round_statistics.py": "a787158274dae6af44ceaf0897227dda0e614a679889b49ae68c7cf7f098f391",
|
||||
"tests/test_telemetry_credentials.py": "276fa4178779f236f5da9a1e7ba8d184f8c086e7b6dab52aa0cd344fe424fde0",
|
||||
"tests/test_community_statistics.py": "91f858ebc1678508e77e42d048f1ab1f284b4453500fab3f884567af159fa448",
|
||||
"tests/test_ai_driver_horn.py": "f878c760f224ba16e428a9c3d04e69b38763c98fdf3d088e2973fbb2528c8202",
|
||||
"tests/test_telemetry_terrain.py": "dfacced49e4b88f20a8dc24bc682965d336e915bfd596f6a85079e0a908e9988",
|
||||
"tests/test_terrain_support_stations.py": "42fcec2c3141b49a44a791fca41512dc4b29777816b4c7a025b5b810b9be896f",
|
||||
"tests/test_garage_vehicle_rules.py": "38c07ba3f6ea6b0c0b5e150a1a58c3c119ec9e788a391447d23d3cfd85d12e09",
|
||||
"tests/test_garage_vehicle_observers.py": "3522035d6559de2501e763ee2e8835aa78d9ac7292beec3791a3dab6bfb3dc9a",
|
||||
"tests/test_garage_vehicle_lifecycle.py": "9dd19fff913c42e3cc50a4880624defccecc74f97c61427039a30f0e3378a8fb",
|
||||
"tests/test_recovery_forecast.py": "ab8f147e73ef8a1ce9b84ba995a5c4c2c1b2e3823df349cdea592763d0ae3448",
|
||||
"tests/test_rescue_recovery.py": "ff690dc9530a6c378c30c32960ae479d608e7c512ca3d916b234fcc115d9acdc",
|
||||
"tests/test_telemetry_server_name.py": "d8e250a106ba1c447e7eda2f84ab0d95a6bf6c07c70694a64016c2936c5b48bf"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": {
|
||||
"baseline_sha256": "2334a96e1e29c70a9f3076f9fbef53949e39d5560e23d078639d73559cb0b823",
|
||||
"proposal_sha256": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f"
|
||||
},
|
||||
"tests/test_hq_ammo_dispatch.py": {
|
||||
"baseline_sha256": "e2e4dfb26e17b85953c2ba40a3732b04514ae3b8cf099e3ca67466c0a7b9a05b",
|
||||
"proposal_sha256": "89858dcb20dc8da6856140223bbff38bf0cef2b62f081ed70b9d239c53197abb"
|
||||
},
|
||||
"tests/test_hq_delivered_task.py": {
|
||||
"baseline_sha256": "2c535df5ea11969051e92d7fbeb2ff26e03f7eb20bfe69ead0067fd2d42bd7ec",
|
||||
"proposal_sha256": "9fd05d454b07f15a90d01761684f7019c650d63587d9fe54e5cc131ee236b445"
|
||||
}
|
||||
},
|
||||
"patch_sha256": "55c7b38be296d287d5af3aa05749dd0ddc19507a041062e40109887839d6496e",
|
||||
"finding_sha256": "b40a3b77e8bdc92a2e9a781d571142acee200bd99b8aa8bc52a4f638d6974eb6",
|
||||
"logs": {
|
||||
"green-delivery.log": "3e4c1177f828b2b47baa6fb274ed2ac27ca33fee42e75f49dfbd0124cd5049dd",
|
||||
"green-ammo.log": "8aa65db678e64c600682c049ced50cf12fdaed343c64c228d7bf182d6bf8cb3b",
|
||||
"baseline-red.log": "09fd626e64135553a80e909d0791d13ecaec01af69297fb1e4e7189afac071f6",
|
||||
"mutation-red.log": "467da3d81928a1f2081ac04160dfc24e3d387b80a8ff090a4a6277ff4c1b884c"
|
||||
},
|
||||
"supporting_source": {
|
||||
"ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
|
||||
"ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
|
||||
"ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4"
|
||||
}
|
||||
}
|
||||
+1949
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
"""Delivered ammo gates new tasks without becoming active-order cancellation."""
|
||||
from policy_harness import ROOT, body, run
|
||||
from pathlib import Path
|
||||
import os
|
||||
H=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
for method in ('protected void Investigate(', 'protected void Retask(', 'protected void Assign('):
|
||||
s=body(H,method)
|
||||
assert 'if (m_Watch.ArmedSearchBlocked(unit.ForceSourceId, now)) continue;' in s
|
||||
# Execute the production delivery admission before unrelated native waypoint creation.
|
||||
s=body(H,'protected void DeliverOrder(')
|
||||
s=s[:s.index(' if (task.Investigation())')]+' admitted++;\n }'
|
||||
s=s.replace('protected ','').replace('null','nullptr').replace('.IsEmpty()', '.empty()').replace('ERR_HQUnit unit','ERR_HQUnit* unit').replace('ERR_HQOperationRole.','ERR_HQOperationRole::')
|
||||
s=s.replace('ERR_HQSquadJudgment squad', 'ERR_HQSquadJudgment* squad').replace('squad.', 'squad->')
|
||||
s=s.replace('ERR_HQReport order','ERR_HQReport* order').replace('ERR_HQTask task','ERR_HQTask* task')
|
||||
for name in ('unit','task','order'):s=s.replace(name+'.',name+'->')
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
struct ERR_HQReport{};
|
||||
enum class ERR_HQOperationRole{SEARCH,WITHDRAW,RESERVE};
|
||||
struct ERR_HQSquadJudgment{bool Recovering=false;};
|
||||
struct Operations{ERR_HQSquadJudgment* squad=nullptr;ERR_HQSquadJudgment* Judgment(int id){assert(id==1);return squad;}};
|
||||
struct ERR_HQTask{int OperationId=0;ERR_HQOperationRole OperationRole=ERR_HQOperationRole::SEARCH;std::string SecuritySite;float ExpiresAt=100000;bool ReleaseOnly=false;ERR_HQTask* ReplacesTask=nullptr;};
|
||||
struct ERR_HQUnit{ERR_HQReport* PendingOrder=nullptr;ERR_HQTask* PendingTask=nullptr;ERR_HQTask* Task=nullptr;
|
||||
int Id=1;std::string ForceSourceId="original-1";bool eligible=true;int cancellations=0;
|
||||
bool Eligible(void*){return eligible;}void CancelPending(){cancellations++;PendingOrder=nullptr;PendingTask=nullptr;}};
|
||||
struct Watch {bool empty=false;int calls=0;bool ArmedSearchBlocked(std::string s,float){assert(s=="original-1");calls++;return empty;}};
|
||||
struct Journal {void Write(std::string,std::string){}};
|
||||
struct HQ{bool m_Coordinated=false;Operations m_Operations;Watch m_Watch;Journal m_Journal;void* m_Mode=nullptr;int admitted=0,lost=0,released=0;
|
||||
void LostOrder(ERR_HQUnit* u,float){lost++;u->CancelPending();}void ReleaseUnit(ERR_HQUnit* u,float){released++;u->Task=nullptr;u->CancelPending();}
|
||||
'''+s+r'''
|
||||
};
|
||||
int main(){HQ h;ERR_HQUnit u;ERR_HQReport report;ERR_HQTask active,next;u.Task=&active;
|
||||
auto queue=[&](){u.PendingOrder=&report;u.PendingTask=&next;};
|
||||
queue();h.m_Watch.empty=true;h.DeliverOrder(&u,1000);assert(h.lost==1&&h.admitted==0&&u.Task==&active&&!u.PendingTask);
|
||||
queue();h.m_Watch.empty=false;h.DeliverOrder(&u,1000);assert(h.admitted==1&&u.Task==&active);
|
||||
// Delivered release commands still work for empty squads and do not consult ammo.
|
||||
next.ReleaseOnly=true;next.ReplacesTask=&active;queue();h.m_Watch.empty=true;int calls=h.m_Watch.calls;
|
||||
h.DeliverOrder(&u,1000);assert(h.released==1&&!u.Task&&h.m_Watch.calls==calls);
|
||||
// Stale orders fail before inventory knowledge is consulted.
|
||||
next.ReleaseOnly=false;next.ExpiresAt=500;queue();h.DeliverOrder(&u,1000);assert(h.lost==2&&h.m_Watch.calls==calls);
|
||||
}
|
||||
''')
|
||||
print('PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved')
|
||||
@@ -0,0 +1,305 @@
|
||||
"""Actual radio task delivery/ownership methods with native waypoint and memory doubles."""
|
||||
from pathlib import Path
|
||||
import os,re
|
||||
from policy_harness import ROOT,body,run
|
||||
P=Path(os.environ.get('ERR_HQ_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c'))
|
||||
ROAD=Path(os.environ.get('ERR_HQ_ROAD_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c'))
|
||||
def cpp(s):
|
||||
s=s.replace('EngineerMine.', 'EngineerMine->')
|
||||
s=s.replace('ref ', '')
|
||||
s=s.replace('override ', '').replace('protected ','').replace('null','nullptr').replace('string.Format','Format')
|
||||
for name in ('ERR_SupplyConvoyTactics','Math','ERR_GameMode','SCR_EntityHelper','ERR_HQPursuitRules','AIWaypoint','ERR_Actors','ERR_Resources','ERR_ForceDuty','ERR_HQRoadIntercept','ERR_ForceRules','ERR_HQPursuitRole','ERR_HQMemoryKind','ERR_HQOperationRole','ERR_HQExecutionRules'):
|
||||
s=s.replace(name+'.',name+'::')
|
||||
for typ in ('ERR_HQUnit','ERR_HQTask','ERR_GameMode','ERR_HQReport','ERR_HQBelief','ERR_ForceRecord','ERR_HQHuntWindow','AIWaypoint','ERR_HQSquadJudgment','ERR_HQOperationSlot'):
|
||||
s=re.sub(r'\b'+typ+r' (?=\w)',typ+'* ',s)
|
||||
s=re.sub(r'foreach \((ERR_HQUnit\*) (\w+) : ([^)]+)\)',r'for (\1 \2 : \3)',s)
|
||||
for name in ('unit','other','task','planned','order','belief','record','mode','Group','hunt','waypoint','m_Mode','lostActive','lostPending','squad','slot'):
|
||||
s=s.replace(name+'.',name+'->')
|
||||
s=s.replace('ResourceName ', 'int ').replace('.IsEmpty()', '.empty()')
|
||||
s=s.replace('PendingOrder.', 'PendingOrder->').replace('Assignment.', 'Assignment->')
|
||||
s=s.replace('PendingTask.', 'PendingTask->').replace('Task.', 'Task->')
|
||||
s=s.replace('Downlink.', 'Downlink->').replace('Forces().','Forces()->').replace('ERR_ForceRecord* record;','ERR_ForceRecord* record=nullptr;')
|
||||
return s
|
||||
units='\n'.join(cpp(body(P,x)) for x in ('void CancelPending(', 'ERR_HQTask PlannedTask(', 'void ReleaseAssignment(', 'void Release()'))
|
||||
methods='\n'.join(cpp(body(P,x)) for x in ('protected bool SecurityAssigned(', 'protected bool AlarmCommitted(', 'protected void FinishWatch(', 'protected void ReleaseUnit(', 'protected void LostOrder(', 'protected void DeliverOrder('))
|
||||
if 'protected float HuntCommitment(' in P.read_text(): methods=cpp(body(P,'protected float HuntCommitment('))+'\n'+methods
|
||||
if 'protected void ReconsiderHunt(' in P.read_text(): methods=cpp(body(P,'protected void ReconsiderHunt('))+'\n'+methods
|
||||
if 'protected void RememberCompletedHunt(' in P.read_text(): methods=cpp(body(P,'protected void RememberCompletedHunt('))+'\n'+methods
|
||||
if 'protected void ReleaseLostForce(' in P.read_text(): methods=cpp(body(P,'protected void ReleaseLostForce('))+'\n'+methods
|
||||
missing=cpp(body(P,'if (!unit.Group && !unit.Uplink)')).replace('m_Units.Remove(i)', 'm_Units.erase(m_Units.begin()+i)')
|
||||
cleanup=cpp(body(P,' foreach (ERR_HQUnit unit : m_Units)\n {\n if (!unit.Assignment && !unit.PendingOrder) continue;\n bool security = SecurityAssigned(unit);'))
|
||||
C=Path(os.environ.get('ERR_HQ_COORDINATED_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c'))
|
||||
methods=cpp(body(C,'override protected bool CoordinatedDelivery('))+'\n'+methods
|
||||
R=Path(os.environ.get('ERR_HQ_PURSUIT_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c'))
|
||||
rules='\n'.join(cpp(body(R,x)) for x in ('static bool Finite(', 'static bool PositionValid(', 'static bool Actionable(', 'static bool Heading(', 'static ERR_HQPursuitRole Role('))
|
||||
eligible=cpp(body(ROAD,'static bool Eligible('))
|
||||
run(r'''
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
using string=std::string;
|
||||
template<class... T>string Format(T...){return "order";}
|
||||
struct vector{float x=0,y=0,z=0;float& operator[](int i){return i==0?x:(i==1?y:z);}float Length(){return std::sqrt(x*x+y*y+z*z);}};
|
||||
enum class ERR_HQOperationRole{OBSERVE,FIX,FLANK,BLOCK,SEARCH,RESERVE,WITHDRAW};
|
||||
enum class ERR_HQPursuitRole{SEARCH,INTERCEPT,CONTAIN};
|
||||
struct ERR_ForceRules{static bool Finite(float f){return std::isfinite(f);}};
|
||||
struct ERR_HQMemoryKind{static const int SIGHTING=1,ALARM=4;};
|
||||
struct ERR_HQPursuitRules{
|
||||
'''+rules+r'''
|
||||
};
|
||||
struct Math{static float Min(float a,float b){return std::min(a,b);}static float Max(float a,float b){return std::max(a,b);}};
|
||||
struct ERR_HQTask{ERR_HQOperationRole OperationRole=ERR_HQOperationRole::SEARCH;int OperationId=0,ExecutionId=0,OperationRevision=2,SupportSourceId=0;float SupportUntil=0;string SecuritySite;bool Maneuver=false,RoadIntercept=false,ReleaseOnly=false;ERR_HQTask* ReplacesTask=nullptr;string WatchSourceId;int WatchMessageId=0,WatchRequestId=0;
|
||||
int BeliefId=1,BeliefRevision=2;ERR_HQPursuitRole Role=ERR_HQPursuitRole::SEARCH;vector Destination{40,0,50};float SearchRadiusMetres=60,QueuedAt=0,ExpiresAt=60000;bool Investigation(){return !WatchSourceId.empty();}string Name(){return "search";}};
|
||||
struct ERR_HQReport{string TravelMode="on foot";int MessageId=10;float ObservedAt=0;};
|
||||
struct ERR_HQRoute{int MessageId=20;};
|
||||
struct AIWaypoint{bool commanded=false;int resource=0,deletes=0,configured=0;float radius=30;void SetCompletionRadius(float r){assert(!configured);radius=r;configured++;}static AIWaypoint* Cast(AIWaypoint* p){return p;}};
|
||||
struct ERR_SupplyConvoyTactics{static void Command(AIWaypoint* w){w->commanded=true;}};
|
||||
struct SCR_AIGroup{int removals=0,additions=0;AIWaypoint* last=nullptr;void RemoveWaypoint(AIWaypoint* w){removals++;last=w;}void AddWaypointAt(AIWaypoint* w,int at){assert(at==0);additions++;last=w;}};
|
||||
struct ERR_ForceRecord{bool Eliminated=false;int Duty=2,HomeDuty=1;vector DutyTarget,HomePosition;};
|
||||
struct Ledger{ERR_ForceRecord record;ERR_ForceRecord* FindGroup(SCR_AIGroup*){return &record;}};
|
||||
struct ERR_GameMode{static inline ERR_GameMode* current=nullptr;Ledger ledger;static ERR_GameMode* Get(){return current;}Ledger* Forces(){return &ledger;}};
|
||||
struct SCR_EntityHelper{static void DeleteEntityAndChildren(AIWaypoint* p){p->deletes++;}};
|
||||
struct ERR_Actors{static inline bool refuse=false;static inline int spawns=0;static AIWaypoint* Spawn(int resource,vector){spawns++;if(refuse)return nullptr;auto w=new AIWaypoint;w->resource=resource;return w;}static vector Ground(vector p){return p;}};
|
||||
struct ERR_Resources{static int MoveWaypoint(){return 3;}static int SearchWaypoint(){return 1;}static int DefendWaypoint(){return 2;}};
|
||||
struct ERR_ForceDuty{static const int SEARCH=2;};
|
||||
struct MineJob {int stops=0;void Stop(){stops++;}};
|
||||
struct TestWorld{operator bool(){return true;}float GetWorldTime(){return 0;}};struct TestGame{operator bool(){return true;}TestWorld GetWorld(){return {};}};TestGame GetGame(){return {};}struct ExecutionDouble{void Update(void*,float){}operator bool(){return false;}void Stop(float,bool){}void Receive(ERR_HQTask*,float){}};
|
||||
struct ERR_HQUnit{ExecutionDouble Execution;MineJob* EngineerMine=nullptr;int Id=1;string ForceSourceId="original";SCR_AIGroup* Group=nullptr;AIWaypoint* Waypoint=nullptr;
|
||||
ERR_HQTask* Task=nullptr;ERR_HQTask* PendingTask=nullptr;ERR_HQReport* Assignment=nullptr;ERR_HQReport* PendingOrder=nullptr;
|
||||
ERR_HQRoute* Downlink=nullptr;ERR_HQRoute* Uplink=nullptr;void* PendingConvoyOrder=nullptr;int LogisticsReservation=0;bool ReservedForSupport=false,HomeGuard=false,PendingCheckin=false,eligible=true,fighting=false,PlanEligible=true;
|
||||
bool Eligible(ERR_GameMode*){return eligible&&Group;}
|
||||
'''+units+r'''
|
||||
};
|
||||
struct ERR_HQBelief{int BeliefId=1,BeliefRevision=2,Kind=1,SampleCount=2,MessageId=10;float Confidence=.8f,Radius=60,ObservedAt=0,LastDeliveredAt=0;string TravelMode="on foot";vector Velocity{0,0,3};bool HasVelocity=true;};
|
||||
struct ERR_HQRoadIntercept{
|
||||
'''+eligible+r'''
|
||||
};
|
||||
struct Memory{ERR_HQBelief* belief=nullptr;ERR_HQBelief* GetById(int id){return belief&&belief->BeliefId==id?belief:nullptr;}};
|
||||
struct Watch{bool empty=false;int finished=0;bool ArmedSearchBlocked(string,float){return empty;}bool FinishInvestigation(string,int,int,float){finished++;return true;}};
|
||||
struct Journal{int writes=0;void Write(string,string,int=0){writes++;}};
|
||||
struct ERR_HQHuntWindow{float CompletedUntil=0;float NextHunt=200000;};
|
||||
struct ERR_HQSquadJudgment{bool Recovering=false;};
|
||||
struct ERR_HQOperationSlot{ERR_HQTask* Task=nullptr;};
|
||||
struct ERR_HQExecutionRules{static bool SupportFresh(float until,float now){return std::isfinite(until)&&until>now&&until<=now+20000;}};
|
||||
struct Operations{ERR_HQSquadJudgment* squad=nullptr;ERR_HQOperationSlot* slot=nullptr;ERR_HQSquadJudgment* Judgment(int id){assert(id==1);return squad;}ERR_HQOperationSlot* Find(int id){assert(id==1);return slot;}void Release(int,int,float){}};
|
||||
struct HQ{bool m_Coordinated=false;Operations m_Operations;ERR_GameMode* m_Mode;Memory m_Memory;Watch m_Watch;Journal m_Journal;std::vector<ERR_HQUnit*>m_Units;ERR_HQHuntWindow hunt,otherHunt;bool watchValid=true;
|
||||
bool Fighting(ERR_HQUnit* u){return u->fighting;}bool WatchTaskValid(ERR_HQTask*){return watchValid;}ERR_HQHuntWindow* Hunt(int id){return id==2?&otherHunt:&hunt;}
|
||||
'''+methods+'\nvoid Cleanup(float now,int assigned,int globalLimit){'+cleanup+'}\nvoid RemoveMissing(float now){for(int i=int(m_Units.size())-1;i>=0;i--){ERR_HQUnit* unit=m_Units[i];'+missing+'}}'+r'''
|
||||
};
|
||||
struct Fixture{ERR_GameMode mode;HQ hq;ERR_HQUnit unit;SCR_AIGroup group;AIWaypoint previous;ERR_HQTask active,next;ERR_HQReport oldReport,newReport;ERR_HQRoute route;ERR_HQBelief belief;
|
||||
Fixture(){ERR_GameMode::current=&mode;ERR_Actors::refuse=false;ERR_Actors::spawns=0;hq.m_Mode=&mode;hq.m_Units={&unit};hq.m_Memory.belief=&belief;
|
||||
unit.Group=&group;unit.Task=&active;unit.Assignment=&oldReport;unit.Waypoint=&previous;unit.PendingTask=&next;unit.PendingOrder=&newReport;unit.Downlink=&route;active.BeliefId=9;}
|
||||
void Retained(){assert(unit.Task==&active&&unit.Assignment==&oldReport&&unit.Waypoint==&previous&&previous.deletes==0&&group.removals==0&&!unit.PendingTask&&!unit.PendingOrder&&!unit.Downlink);}
|
||||
};
|
||||
int main(){
|
||||
// Real delivery and actual coordinated identity admission must permit rest for
|
||||
// a known-empty recovering squad, without admitting ordinary reserve/attacks.
|
||||
for(bool withdrawing:{false,true}){
|
||||
Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;
|
||||
mood.Recovering=true;slot.Task=&f.next;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.next.OperationId=1;f.next.ExecutionId=12;
|
||||
f.next.OperationRole=withdrawing?ERR_HQOperationRole::WITHDRAW:ERR_HQOperationRole::RESERVE;
|
||||
// WITHDRAW keeps its original exemption without a recovery judgment.
|
||||
if(withdrawing)f.hq.m_Operations.squad=nullptr;
|
||||
f.hq.DeliverOrder(&f.unit,1000);
|
||||
assert(f.unit.Task==&f.next&&f.unit.Assignment==&f.newReport&&f.unit.Waypoint&&f.unit.Waypoint->resource==2);
|
||||
assert(ERR_Actors::spawns==1&&f.group.additions==1&&f.previous.deletes==1&&!f.unit.PendingTask);
|
||||
}
|
||||
for(int invalid=0;invalid<15;invalid++){
|
||||
Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;ERR_HQTask foreign;
|
||||
mood.Recovering=true;slot.Task=&f.next;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.next.OperationId=1;f.next.ExecutionId=12;f.next.OperationRole=ERR_HQOperationRole::RESERVE;
|
||||
if(invalid==0)mood.Recovering=false;
|
||||
if(invalid==1)f.hq.m_Operations.squad=nullptr;
|
||||
if(invalid==2)f.next.OperationId=0;
|
||||
if(invalid==3)f.hq.m_Coordinated=false;
|
||||
if(invalid==4)slot.Task=&foreign;
|
||||
if(invalid==5)f.hq.m_Operations.slot=nullptr;
|
||||
if(invalid==6)f.next.ExpiresAt=1000;
|
||||
if(invalid==7)f.unit.eligible=false;
|
||||
if(invalid==8)f.next.BeliefRevision=3;
|
||||
if(invalid==9)f.next.OperationRevision=3;
|
||||
if(invalid==10)f.unit.HomeGuard=true;
|
||||
if(invalid==11)f.unit.ReservedForSupport=true;
|
||||
if(invalid==12)f.unit.LogisticsReservation=1;
|
||||
if(invalid==13)f.hq.m_Memory.belief=nullptr;
|
||||
if(invalid==14)f.belief.Confidence=0;
|
||||
f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);
|
||||
}
|
||||
for(auto role:{ERR_HQOperationRole::SEARCH,ERR_HQOperationRole::OBSERVE,ERR_HQOperationRole::FIX,ERR_HQOperationRole::FLANK,ERR_HQOperationRole::BLOCK}){
|
||||
Fixture f;ERR_HQSquadJudgment mood;ERR_HQOperationSlot slot;mood.Recovering=true;slot.Task=&f.next;
|
||||
f.hq.m_Coordinated=true;f.hq.m_Watch.empty=true;f.hq.m_Operations.squad=&mood;f.hq.m_Operations.slot=&slot;
|
||||
f.next.OperationId=1;f.next.OperationRole=role;f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);
|
||||
}
|
||||
// A tactical reserve still uses the ordinary ammo gate: with ammo present it
|
||||
// is valid even without a recovery judgment; empty it is rejected above.
|
||||
{Fixture f;ERR_HQOperationSlot slot;slot.Task=&f.next;f.hq.m_Coordinated=true;f.hq.m_Operations.slot=&slot;
|
||||
f.next.OperationId=1;f.next.OperationRole=ERR_HQOperationRole::RESERVE;f.hq.DeliverOrder(&f.unit,1000);assert(f.unit.Task==&f.next&&ERR_Actors::spawns==1);}
|
||||
|
||||
// The copied radius is used before installation even if current uncertainty grows.
|
||||
for(float radius:{45.f,60.f,110.f}){Fixture f;f.next.SearchRadiusMetres=radius;f.belief.Radius=500;
|
||||
float deadline=f.next.ExpiresAt;f.hq.DeliverOrder(&f.unit,1000);
|
||||
assert(f.group.additions==1&&f.unit.Waypoint->radius==radius&&f.unit.Waypoint->configured==1);
|
||||
assert(f.next.SearchRadiusMetres==radius&&f.next.ExpiresAt==deadline);}
|
||||
// Malformed snapshot cannot spawn or replace the delivered previous assignment.
|
||||
for(float radius:{0.f,44.99f,110.01f,-1.f,std::numeric_limits<float>::quiet_NaN(),std::numeric_limits<float>::infinity()}){
|
||||
Fixture f;f.next.SearchRadiusMetres=radius;f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
// Missing patrol, road/security defend, interception and containment keep native defaults.
|
||||
for(int kind=0;kind<5;kind++){Fixture f;f.next.SearchRadiusMetres=std::numeric_limits<float>::quiet_NaN();
|
||||
if(kind==0)f.next.WatchSourceId="missing-original";
|
||||
if(kind==1)f.next.RoadIntercept=true;
|
||||
if(kind==2)f.next.SecuritySite="site";
|
||||
if(kind==3)f.next.Role=ERR_HQPursuitRole::INTERCEPT;
|
||||
if(kind==4){f.next.Role=ERR_HQPursuitRole::CONTAIN;f.belief.Confidence=.9f;}
|
||||
f.hq.DeliverOrder(&f.unit,1000);assert(f.group.additions==1&&f.unit.Waypoint->radius==(kind==1?70:30)&&f.unit.Waypoint->configured==(kind==1?1:0));}
|
||||
|
||||
// Alarm-only deliveries retain their weak SEARCH/mobile policy even if a queued task is tampered with.
|
||||
for(int invalid=0;invalid<5;invalid++){Fixture f;f.belief.Kind=ERR_HQMemoryKind::ALARM;
|
||||
ERR_HQUnit other;ERR_HQTask otherTask;ERR_HQReport alarm;alarm.TravelMode="heard vehicle alarm";
|
||||
if(invalid==0)f.unit.HomeGuard=true;
|
||||
if(invalid==1)f.next.Role=ERR_HQPursuitRole::INTERCEPT;
|
||||
if(invalid==2)f.next.RoadIntercept=true;
|
||||
if(invalid==3){other.PendingTask=&otherTask;other.PendingOrder=&alarm;f.hq.m_Units.push_back(&other);}
|
||||
if(invalid==4){other.Task=&otherTask;other.Assignment=&alarm;f.hq.m_Units.push_back(&other);}
|
||||
f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
{Fixture f;f.belief.Kind=ERR_HQMemoryKind::ALARM;f.newReport.TravelMode="heard vehicle alarm";
|
||||
assert(f.hq.AlarmCommitted()&&!f.hq.AlarmCommitted(&f.unit));
|
||||
f.hq.DeliverOrder(&f.unit,1000);assert(ERR_Actors::spawns==1&&f.unit.Waypoint->resource==1&&f.hq.AlarmCommitted());
|
||||
f.unit.ReleaseAssignment();assert(!f.hq.AlarmCommitted());}
|
||||
// A changed belief revision or absent/stale/uncertain track cannot create a native destination.
|
||||
for(int invalid=0;invalid<5;invalid++){Fixture f;
|
||||
if(invalid==0){f.belief.BeliefRevision=3;}if(invalid==1){f.hq.m_Memory.belief=nullptr;}
|
||||
if(invalid==2){f.belief.ObservedAt=2000;}if(invalid==3){f.belief.Confidence=.1f;}if(invalid==4){f.belief.Radius=2001;}
|
||||
f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
// Exact absolute expiry boundary, combat, physical reservation eligibility and known-empty ammo remain gates.
|
||||
for(int invalid=0;invalid<4;invalid++){Fixture f;
|
||||
if(invalid==0){f.next.ExpiresAt=1000;}if(invalid==1){f.unit.fighting=true;}if(invalid==2){f.unit.eligible=false;}if(invalid==3){f.hq.m_Watch.empty=true;}
|
||||
f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
// Fresh delivered flank orders continue through contact; stale orders preserve the old assignment.
|
||||
{Fixture f;f.unit.fighting=true;f.next.Maneuver=true;f.hq.DeliverOrder(&f.unit,1000);
|
||||
assert(f.group.additions==1&&f.unit.Waypoint->commanded);}
|
||||
{Fixture f;f.next.Maneuver=true;f.next.ExpiresAt=120000;f.hq.DeliverOrder(&f.unit,60001);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
{Fixture f;f.hq.DeliverOrder(&f.unit,1000);assert(!f.unit.Waypoint->commanded);}
|
||||
// Native spawn refusal must leave the delivered old waypoint and duty intact.
|
||||
{Fixture f;ERR_Actors::refuse=true;f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==1&&f.mode.ledger.record.Duty==2);}
|
||||
// Commit swaps the old task only after native success. Duplicate delivery has no pending lineage and cannot spawn twice.
|
||||
{Fixture f;f.hq.DeliverOrder(&f.unit,1000);assert(ERR_Actors::spawns==1&&f.previous.deletes==1&&f.group.removals==1&&f.group.additions==1);
|
||||
assert(f.unit.Waypoint->resource==1);
|
||||
assert(f.unit.Task==&f.next&&f.unit.Assignment==&f.newReport&&f.unit.Waypoint!=&f.previous&&!f.unit.PendingTask&&!f.unit.Downlink);
|
||||
auto retained=f.unit.Waypoint;f.hq.DeliverOrder(&f.unit,1001);assert(ERR_Actors::spawns==1&&f.unit.Waypoint==retained&&f.group.additions==1);
|
||||
assert(f.mode.ledger.record.DutyTarget.x==f.next.Destination.x);f.unit.ReleaseAssignment();assert(retained->deletes==1&&f.mode.ledger.record.Duty==f.mode.ledger.record.HomeDuty);}
|
||||
// Actual assignment-pass expiry releases only the expired reservation, preserving the other lineage.
|
||||
{Fixture f;f.active.ExpiresAt=1000;f.hq.Cleanup(1000,1,4);
|
||||
assert(!f.unit.Task&&!f.unit.Assignment&&!f.unit.Waypoint&&f.previous.deletes==1&&f.unit.PendingTask==&f.next&&f.unit.Downlink==&f.route);
|
||||
assert(f.mode.ledger.record.Duty==f.mode.ledger.record.HomeDuty);f.hq.Cleanup(1001,1,4);assert(f.previous.deletes==1&&f.unit.PendingTask==&f.next);}
|
||||
{Fixture f;f.active.BeliefId=1;f.next.ExpiresAt=1000;f.hq.Cleanup(1000,1,4);f.Retained();}
|
||||
{Fixture f;f.unit.PlanEligible=false;f.hq.Cleanup(1000,1,4);assert(!f.unit.Task&&!f.unit.PendingTask&&!f.unit.Downlink&&f.previous.deletes==1);}
|
||||
// Fixed site defence survives a full pursuit budget, including pending downlinks.
|
||||
for(bool pending:{false,true}){Fixture f;f.active.BeliefId=1;
|
||||
if(pending){f.next.SecuritySite="radio";f.next.ExpiresAt=600000;}
|
||||
else {f.unit.CancelPending();f.active.SecuritySite="radio";f.active.ExpiresAt=600000;}
|
||||
f.hq.Cleanup(1000,5,1);assert(f.unit.Task==&f.active&&f.unit.Waypoint==&f.previous);
|
||||
if(pending)assert(f.unit.PendingTask==&f.next&&f.unit.Downlink==&f.route);
|
||||
f.unit.PlanEligible=false;f.hq.Cleanup(1001,5,1);assert(!f.unit.Task&&!f.unit.PendingTask);}
|
||||
// Loss of the only physical pursuit squad releases its unfulfilled long hold.
|
||||
{Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;f.unit.PlanEligible=false;
|
||||
f.hq.Cleanup(10000,1,4);assert(f.hq.hunt.NextHunt==25000);assert(!f.unit.Task&&!f.unit.Assignment&&f.previous.deletes==1);}
|
||||
// Native group deletion takes the earlier Tick cleanup path, before Assign.
|
||||
{Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;f.unit.Group=nullptr;
|
||||
f.hq.RemoveMissing(10000);assert(f.hq.m_Units.empty()&&f.hq.hunt.NextHunt==25000&&!f.unit.Task&&f.previous.deletes==1);}
|
||||
// Finishing an ordinary delivered search retains its completed-hunt cooldown.
|
||||
{Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=10000;f.hq.hunt.NextHunt=190000;
|
||||
f.hq.Cleanup(10000,1,4);assert(f.hq.hunt.NextHunt==190000&&!f.unit.Assignment);}
|
||||
// Simultaneous expiry and unavailable-force detection cannot erase a completed
|
||||
// hunt's quiet interval, including after loss of a pending same-belief retask.
|
||||
for(int removed=0;removed<2;removed++)for(int pending=0;pending<3;pending++)for(int shorter=0;shorter<2;shorter++){
|
||||
Fixture f;f.active.BeliefId=1;f.active.ExpiresAt=10000;f.hq.hunt.NextHunt=shorter?12000:190000;f.hq.otherHunt.NextHunt=780000;
|
||||
if(pending==0)f.unit.CancelPending();else {f.next.BeliefId=pending==1?1:2;f.next.ExpiresAt=600000;}
|
||||
f.unit.PlanEligible=false;if(removed){f.unit.Group=nullptr;f.hq.RemoveMissing(10000);}else f.hq.Cleanup(10000,1,4);
|
||||
assert(f.hq.hunt.NextHunt==(shorter?12000:190000));assert(f.hq.otherHunt.NextHunt==(pending==2?25000:780000));
|
||||
assert(!f.unit.Task&&!f.unit.PendingTask&&f.previous.deletes==1);
|
||||
}
|
||||
// A completed squad's floor survives a different lost squad in either cleanup
|
||||
// order, whether the completed squad expires normally or is also unavailable.
|
||||
for(int reverse=0;reverse<2;reverse++)for(int completedLost=0;completedLost<2;completedLost++){
|
||||
Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=10000;f.unit.PlanEligible=!completedLost;f.hq.hunt.NextHunt=780000;
|
||||
ERR_HQUnit lost;SCR_AIGroup lostGroup;ERR_HQTask lostTask;ERR_HQReport lostReport;lost.Group=&lostGroup;lost.Task=&lostTask;lost.Assignment=&lostReport;lost.PlanEligible=false;lostTask.BeliefId=1;lostTask.ExpiresAt=600000;
|
||||
f.hq.m_Units.push_back(&lost);if(reverse)std::reverse(f.hq.m_Units.begin(),f.hq.m_Units.end());f.hq.Cleanup(10000,2,4);assert(f.hq.hunt.NextHunt==190000);
|
||||
}
|
||||
// A replacement can arrive before Assign processes the original expiry.
|
||||
// Native commit must preserve completion history before clearing old ownership.
|
||||
{Fixture f;f.active.BeliefId=1;f.active.ExpiresAt=10000;f.next.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;
|
||||
f.hq.DeliverOrder(&f.unit,10000);assert(f.unit.Task==&f.next&&f.hq.hunt.CompletedUntil==190000);
|
||||
f.unit.PlanEligible=false;f.hq.Cleanup(11000,1,4);assert(f.hq.hunt.NextHunt==190000&&!f.unit.Task);}
|
||||
// Only expired delivered pursuit work creates completion history.
|
||||
for(int kind=0;kind<5;kind++){Fixture f;f.active.BeliefId=1;f.active.ExpiresAt=10000;
|
||||
if(kind==0){f.active.ExpiresAt=10001;}if(kind==1){f.active.ReleaseOnly=true;}if(kind==2){f.active.SecuritySite="security";}if(kind==3){f.active.WatchSourceId="watch";}if(kind==4){f.unit.Assignment=nullptr;}
|
||||
f.hq.ReleaseUnit(&f.unit,10000);assert(f.hq.hunt.CompletedUntil==0&&f.hq.otherHunt.CompletedUntil==0);}
|
||||
// Capacity trimming is deliberately unchanged: it is not evidence of force loss.
|
||||
{Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;
|
||||
f.hq.Cleanup(10000,2,1);assert(f.hq.hunt.NextHunt==780000&&!f.unit.Assignment);}
|
||||
// Surviving active and pending same-belief commitments both retain their own
|
||||
// horizon; foreign replacements cannot hide active work or prolong this hunt.
|
||||
for(int scenario=0;scenario<5;scenario++){Fixture f;f.unit.CancelPending();f.active.BeliefId=1;f.active.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;f.unit.PlanEligible=false;
|
||||
ERR_HQUnit peer;SCR_AIGroup peerGroup;ERR_HQTask surviving,replacement;ERR_HQReport activeReport,pendingReport;peer.Group=&peerGroup;peer.Task=&surviving;peer.Assignment=&activeReport;peer.PendingTask=&replacement;peer.PendingOrder=&pendingReport;
|
||||
surviving.BeliefId=1;surviving.ExpiresAt=120000;replacement.BeliefId=1;replacement.ExpiresAt=180000;
|
||||
if(scenario==1)replacement.BeliefId=2;
|
||||
if(scenario==2){surviving.SecuritySite="outpost";replacement.ReleaseOnly=true;}
|
||||
if(scenario==3){peer.Assignment=nullptr;peer.PendingOrder=nullptr;}
|
||||
if(scenario==4)f.hq.hunt.NextHunt=12000;
|
||||
f.hq.m_Units.push_back(&peer);f.hq.Cleanup(10000,2,4);float expected=scenario==0?360000:scenario==1?300000:scenario==4?12000:25000;
|
||||
assert(f.hq.hunt.NextHunt==expected);assert(peer.Task==&surviving);}
|
||||
// Expired undelivered retasks use the same bounded rollback as lost radio.
|
||||
// Both original and replacement expire here; no unfulfilled hunt owns 780s.
|
||||
{Fixture f;f.active.ExpiresAt=120000;f.next.ExpiresAt=600000;f.hq.hunt.NextHunt=780000;
|
||||
f.hq.Cleanup(600000,1,4);assert(f.hq.hunt.NextHunt==615000);
|
||||
assert(!f.unit.Task&&!f.unit.PendingTask&&!f.unit.Downlink&&f.previous.deletes==1);}
|
||||
// A still-live containment order also needs current authorization at delivery.
|
||||
// The fixed task deadline is not permission to use an older/weaker movement belief.
|
||||
for(int invalid=0;invalid<6;invalid++){Fixture f;f.next.Role=ERR_HQPursuitRole::CONTAIN;
|
||||
f.next.QueuedAt=30000;f.next.ExpiresAt=120000;float now=45000;
|
||||
if(invalid==0){now=45001;}
|
||||
if(invalid==1){f.belief.Radius=100.01f;}
|
||||
if(invalid==2){f.belief.Confidence=.799f;}
|
||||
if(invalid==3){f.belief.HasVelocity=false;}
|
||||
if(invalid==4){f.belief.Velocity={0,0,.49f};}
|
||||
if(invalid==5){f.belief.Velocity={0,0,71};}
|
||||
f.hq.DeliverOrder(&f.unit,now);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
{Fixture f;f.next.Role=ERR_HQPursuitRole::CONTAIN;f.next.QueuedAt=30000;f.next.ExpiresAt=120000;
|
||||
f.belief.Radius=100;f.belief.Confidence=.8f;f.belief.Velocity={0,0,.5f};
|
||||
f.hq.DeliverOrder(&f.unit,45000);assert(ERR_Actors::spawns==1&&f.unit.Task==&f.next&&f.previous.deletes==1);
|
||||
f.hq.DeliverOrder(&f.unit,45001);assert(ERR_Actors::spawns==1&&f.group.additions==1);}
|
||||
// Radio latency may age a precision interception beyond its 45-second authorization.
|
||||
// Eligibility uses the actual road helper and pursuit rules, never a test predicate.
|
||||
for(int invalid=0;invalid<9;invalid++){Fixture f;f.next.RoadIntercept=true;float now=1000;
|
||||
if(invalid==0)now=45001;
|
||||
if(invalid==1)f.belief.LastDeliveredAt=1001;
|
||||
if(invalid==2)f.belief.SampleCount=1;
|
||||
if(invalid==3)f.belief.Velocity={0,0,1.99f};
|
||||
if(invalid==4)f.belief.HasVelocity=false;
|
||||
if(invalid==5)f.belief.TravelMode="aircraft";
|
||||
if(invalid==6)f.belief.Kind=2;
|
||||
if(invalid==7)f.belief.MessageId=0;
|
||||
if(invalid==8){f.belief.ObservedAt=1;f.belief.LastDeliveredAt=0;}
|
||||
f.hq.DeliverOrder(&f.unit,now);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
{Fixture f;f.next.RoadIntercept=true;f.hq.DeliverOrder(&f.unit,45000);
|
||||
assert(ERR_Actors::spawns==1&&f.unit.Waypoint&&f.unit.Waypoint->resource==2&&f.unit.Task==&f.next&&f.previous.deletes==1);
|
||||
f.hq.DeliverOrder(&f.unit,45001);assert(ERR_Actors::spawns==1&&f.group.additions==1);
|
||||
f.hq.Cleanup(60000,1,4);assert(!f.unit.Task&&!f.unit.Waypoint&&f.mode.ledger.record.Duty==f.mode.ledger.record.HomeDuty);}
|
||||
// Security orders carry an inspected-site hypothesis, not a fabricated enemy track.
|
||||
{Fixture f;f.next.SecuritySite="mortar-1";f.next.BeliefId=999;
|
||||
f.hq.DeliverOrder(&f.unit,1000);assert(f.unit.Task==&f.next&&f.unit.Waypoint->resource==2);
|
||||
f.hq.Cleanup(1001,1,4);assert(f.unit.Task==&f.next);
|
||||
f.hq.Cleanup(60000,1,4);assert(!f.unit.Task&&!f.unit.Waypoint);}
|
||||
// Cancelling a mismatched recall never releases a replacement task which arrived first.
|
||||
{Fixture f;f.next.ReleaseOnly=true;f.next.ReplacesTask=nullptr;f.hq.DeliverOrder(&f.unit,1000);f.Retained();assert(ERR_Actors::spawns==0);}
|
||||
{Fixture f;f.next.ReleaseOnly=true;f.next.ReplacesTask=&f.active;f.hq.DeliverOrder(&f.unit,1000);assert(!f.unit.Task&&!f.unit.Assignment&&!f.unit.Waypoint&&f.previous.deletes==1&&ERR_Actors::spawns==0);}
|
||||
}
|
||||
''')
|
||||
print('PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery')
|
||||
|
||||
delivery=body(P,'protected void DeliverOrder(')
|
||||
assert delivery.index('waypoint.SetCompletionRadius(task.SearchRadiusMetres)') < delivery.index('unit.Release();') < delivery.index('unit.Group.AddWaypointAt')
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths
|
||||
@@ -0,0 +1 @@
|
||||
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual coordinated adapter report gates, local evidence, delivered-force snapshots, ownership/lease checks, continuous-contact arbitration, legacy isolation and shadow no-native-order boundary
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
|
||||
@@ -0,0 +1,6 @@
|
||||
PASS: actual execution lifecycle, original physical arrivals, failed movement, quiet footprint, local support expiry and delivered report acknowledgments
|
||||
PASS: native support wiring requires own activity, soldier suppression, actual projectile event and immutable roster; no waypoint-completion arrival shortcut
|
||||
PASS: actual finite native LOD leases restore prior overrides and protect transferred agents, player ownership and intervening overrides
|
||||
PASS: actual waypoint pause/resume owns only its finite order, preserves unrelated routes and cannot resurrect a superseded or deleted hold
|
||||
PASS: installed native priorities authorize group suppression71 over ordinary combat70, below native healing80; tagged soldier suppression91 yields ammo100, retreat110, medics111 and immediate danger (action SHA256=eb9ba812538707940b90d2386432faeb8c8aca3c83a547d5b59bf7af4887627c)
|
||||
PASS: actual suppression and projectile methods retain a fixed eight-second last-seen area, deny blind support, require exact owned behavior, preserve finite ammo/shot budgets and bound retries
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual operation selection/replay, pending reservations, detached reports, identity/sequence/time gates, terminal lifecycle, bounded ledger, finite roles, no shadow mutation or hidden-player inputs
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual squad judgment, stable caution, delivered casualty/contact/ammo trends, isolation, replay/time validation, recovery hysteresis, no invented healing or enemy knowledge
|
||||
@@ -0,0 +1 @@
|
||||
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
|
||||
@@ -0,0 +1 @@
|
||||
PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards
|
||||
@@ -0,0 +1 @@
|
||||
PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary
|
||||
@@ -0,0 +1 @@
|
||||
PASS: four-team/twelve-wave bounds; two-thirds nearby radio defence; nearest selection, radio failures, expiry, perimeter separation, protected duties and independent response budgets
|
||||
@@ -0,0 +1 @@
|
||||
PASS: original body/equipment retained past old timeout; expiry, death, canonical account/body, occupied controller, failed handoff, missing/dead/expired body replacement and extraction/duplicate-audit guards
|
||||
@@ -0,0 +1,2 @@
|
||||
PASS: all survivors required, continuous eight-second boarding hold, reset on exit and clock rollback
|
||||
PASS: thirty continuous airborne seconds, grounded reset and clock rollback
|
||||
@@ -0,0 +1 @@
|
||||
PASS: unique usable cargo seats; duplicate parent/child slots, crew, occupied, reserved and locked seats excluded
|
||||
@@ -0,0 +1 @@
|
||||
PASS: split-fleet boarding, escort rejection, lost transport failure and both transports airborne for thirty seconds
|
||||
@@ -0,0 +1,42 @@
|
||||
[
|
||||
{
|
||||
"test": "test_rescue_recovery.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.51
|
||||
},
|
||||
{
|
||||
"test": "test_rescue_boarding.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.16
|
||||
},
|
||||
{
|
||||
"test": "test_rescue_capacity.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.27
|
||||
},
|
||||
{
|
||||
"test": "test_radio_defence_policy.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.11
|
||||
},
|
||||
{
|
||||
"test": "test_radio_document_defence.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.76
|
||||
},
|
||||
{
|
||||
"test": "test_reconnect_recovery.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.3
|
||||
},
|
||||
{
|
||||
"test": "test_native_end_lifecycle.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.43
|
||||
},
|
||||
{
|
||||
"test": "test_casualty_incapacitation.py",
|
||||
"exit_code": 0,
|
||||
"seconds": 0.1
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,93 @@
|
||||
# Co10 Escape Reintroduced
|
||||
|
||||
Author: **Jakub Jim Žáček**.
|
||||
|
||||
An independently authored replacement for the abandoned Escapists base mission, targeting Everon and up to twelve players. This is a separate repository and **not a completed or release-ready replacement**. The base rewrite is the primary deliverable; companion migration supports it.
|
||||
|
||||
The current base supplies prison spawning, two independent scavenging/clue routes, finite medical and outpost stock, an optional ground vehicle, physical radio documents, named discovery markers, native objectives, a separate radio-defence service, capacity-checked helicopter extraction, identity-based partial results, early helicopter-loss defeat, saved mission time/speed, defeat/restart, identity-based lives and local spectator following. Authored site definitions and an injected vanilla faction/asset catalog own the initial physical population. Core provides administration and startup diagnostics; the AI, Intel, Chat and Map modules extend its interfaces inside one addon. HQ coordinates enemy responses through physical radios and available forces.
|
||||
|
||||
The complete repository validator passes at the [5 November integration checkpoint](docs/evidence/integration-check-2026-11-05/report.json), bound to 1,229 unchanged input files. These offline checks do not establish native gameplay or multiplayer correctness.
|
||||
|
||||
The [4 October development playtest handoff](.build/playtest-2026-10-04-ui-bmp/README.md) includes the inventory callback and BMP ammunition-accounting corrections. Its 439 authored files match 378 PAK payloads and three runtime files. At that archived checkpoint, code/tests/tools bound to 309 passing regression programs; exact-source normal escape and ordinary packaged startup complete with retained engine errors. It remains an **unqualified development candidate**. Existing missions and prior packages are preserved. See [current status](docs/current-status.md) for exact scope and limits.
|
||||
|
||||
The [AI migration checkpoint](docs/ai-migration-progress.md) adds delivered-report memory, bounded trajectory prediction, physical infantry pursuit, status checks, body observations and finite equipment. Native memory and actual-sighting response fixtures pass their assertions, with four retained upstream localization errors. See [current development status](docs/current-status.md) for source-bound checkpoints. The earlier five-addon checkpoint shows the [real prisoner view and starting objective](docs/evidence/game-2026-09-19-125906-integrated-prison/ordinary-prison-view.png). Native tests cover scripted escape/restart, finite mortar support, physical radio delivery, shared-map ownership, and the reusable aircraft controller's vertical flight, airborne cancellation and an isolated 20 m fixed route. Archived five-addon packages pass ordinary Chat startup without loose successor source and compile/prepare the empty mission on an isolated Linux server. The latter retains four installed-asset errors reproduced by a vanilla control.
|
||||
|
||||
Native game-over now stops successor services and queued preparation before vanilla restart; unknown personal results use neutral wording. Two-round preparation/active-end regressions pass at their archived source checkpoint. Current Core/companion escape/restart and ordinary startup also pass after the guidance and route changes; the ordinary read-only sampler is separate from player-input acceptance.
|
||||
|
||||
Later ordinary input checks demonstrate walking, clean inventory interaction and selecting the original prison lock. Automated held-action testing and experimental AI aircraft work are paused in favor of concrete base gameplay bugs and a playable development build. The complete player-controlled escape, real multiplayer, operational HQ aircraft routes and measured FPS improvement remain unfinished. Native packaging still produces [UI shutdown errors also reproduced by an empty-addon control](docs/native-packaging-control.md); successful packed startup does not qualify that build process. All seventeen first-release acceptance cases remain pending. The [original responsibility inventory](docs/original-feature-coverage.md) tracks the unfinished scope.
|
||||
|
||||
## Workbench project and scenario
|
||||
|
||||
Open **`addons/core/addon.gproj`**, titled **Co10 Escape Reintroduced**. This is the
|
||||
single project to develop, package and eventually publish as one Workshop mod.
|
||||
Select **Co10 Escape Reintroduced — Automatic terrain**,
|
||||
**`Missions/ERR_Everon.conf`** (`{C1E20667DCE324ED}`), as the universal starting
|
||||
scenario. It opens Escape on Everon by default; a saved choice in the admin
|
||||
**Terrains** menu loads another installed terrain after restart. The existing
|
||||
resource ID is unchanged. The public browser may keep the generic Automatic
|
||||
terrain title after switching maps; it no longer labels this entry as Everon.
|
||||
The Core directory and addon GUID `2528466DE220D91C` are retained for continuity.
|
||||
|
||||
Scripts are organized under `addons/core/Scripts/Game/ERR/`:
|
||||
|
||||
- `00_Core`: mission, players, settings and administration
|
||||
- `10_AI`: HQ, patrols, logistics and support
|
||||
- `20_Intel`: enemy documents and discovery feedback
|
||||
- `30_Map`: shared field map
|
||||
- `40_Chat`: command integration and full-scenario test fixtures
|
||||
|
||||
The prefixes preserve Enforce script extension order. All modules load together.
|
||||
Resources retain their existing paths and GUIDs within the combined project.
|
||||
|
||||
Menu appearance and navigation are maintained in [ui/admin_menu](ui/admin_menu/README.md):
|
||||
one theme, a navigation manifest, and separate page layouts. Run
|
||||
`python3 tools/build_admin_menu.py` after changing those sources; the generated
|
||||
native layouts remain in the addon for Workbench and publishing.
|
||||
|
||||
Register only this project and its external dependencies in Workbench. Remove stale
|
||||
AI/Intel/Map/Chat project entries if you previously added them. RHS: Status Quo,
|
||||
WCS Armaments and WCS BMP-1 (including their dependencies) remain separate,
|
||||
author-supplied mods; see [external dependencies](docs/external-addons.md).
|
||||
Their assets are referenced, never redistributed.
|
||||
|
||||
With a shovel equipped, look at a dead body and hold **Bury body** for eight
|
||||
seconds. This removes the corpse and its remaining equipment; loot it first.
|
||||
Living and unconscious characters cannot be buried. Existing HQ casualty reports
|
||||
remain valid after burial.
|
||||
|
||||
Optional [enemy reconnaissance drones](docs/drone-reconnaissance.md) use Realistic
|
||||
Combat Drones. Configure their limit and cooldown in **HQ → Recon drones**;
|
||||
they are disabled by default.
|
||||
|
||||
See the [single-mod migration and current commands](docs/single-mod.md).
|
||||
Earlier five-addon build reports below are historical evidence, not validation of
|
||||
the merged project. Nothing has been published to Workshop.
|
||||
|
||||
[Automatic terrain takeover](docs/terrain-takeover.md) starts Escape when an admin
|
||||
loads Escape alongside a terrain and selects that terrain's existing scenario.
|
||||
No connector, custom startup flag or airport coordinates are required. The map
|
||||
must provide usable navigation and safe placement space. Published authenticated
|
||||
multiplayer validation remains outstanding; see the linked test scope.
|
||||
Terrain authors can optionally use the [shared connector prefab](docs/terrain-adapters.md)
|
||||
for an authored Escape scenario; [Nogova setup](docs/nogova-publishing.md) describes
|
||||
both routes.
|
||||
|
||||
See the [player route playtest guide](docs/player-route.md), [player lifecycle](docs/player-lifecycle.md), [manual gameplay gaps](docs/base-gameplay-gaps.md), [release qualification](docs/release-qualification.md), [performance comparison tooling](docs/performance-comparison.md), [configuration and commands](docs/configuration.md), [site authoring](docs/site-authoring.md), [architecture](docs/architecture.md) and [migration priorities](docs/base-replacement.md).
|
||||
|
||||
## Validation
|
||||
|
||||
Run source/resource isolation and production-policy regressions with Python 3 and a C++17 compiler:
|
||||
|
||||
```sh
|
||||
python3 tools/check.py
|
||||
```
|
||||
|
||||
For bounded hidden, muted local native tests, see [runtime testing](docs/runtime-testing.md). Recorded Workbench checkpoints include Core-only and companion-loaded escape/restart, finite stock and document-loss recovery, twelve physical prisoner/seat fixtures, real medical treatment, local result/objective widgets, patrol movement and HQ preemption/resumption. Clean environment/restart evidence exists after narrowing the vanilla vehicle catalogs; it does not qualify subsequent source changes.
|
||||
|
||||
These scripted local fixtures manipulate positions and selected native states. They do not establish manual escape/piloting, real remote reconnects, twelve connected players or improved FPS. Separate regular-game runs establish standalone startup/admission; an isolated native Linux run establishes empty-server preparation, with inherited resource errors reproduced by a vanilla control. [Current status](docs/current-status.md) separates those gaps from demonstrated development behavior. [Validation evidence](docs/validation.md) preserves exact source checkpoints and failed iterations; `docs/acceptance.json` keeps unverified release requirements pending.
|
||||
|
||||
The [development source bundle tool](docs/development-source-bundle.md) previews a deterministic handoff of the single editable project and writes only an explicitly requested new ZIP. It is **DEVELOPMENT SOURCE BUNDLE**, not a native `.pak` or qualified release; release-mode requests remain blocked by pending acceptance. No release package has been published.
|
||||
|
||||
Random field hospitals and camps, their permanent/mobile guard split, finite supplies and authoring options are documented in [Field sites](docs/field-sites.md).
|
||||
|
||||
Town population, configurable factory guards and safe tower/roof posts: [town and object garrisons](docs/town-garrisons.md).
|
||||
@@ -0,0 +1,864 @@
|
||||
# Current development status
|
||||
|
||||
**5 November 2026 — full offline integration check restored:** the complete
|
||||
repository validator passes on 1,229 unchanged recorded input files, including
|
||||
the earlier HQ recovery-hold and objective-guidance changes. Two stale test
|
||||
contracts were repaired: observer ownership doubles now expose the committed
|
||||
hint debounce/quiet-call interface, and preparation checks expect the committed
|
||||
120-second results countdown. Gameplay code and the countdown itself are
|
||||
unchanged by this continuation. Current terrain-takeover documentation agrees.
|
||||
|
||||
Initial sandbox socket, observer compilation and obsolete countdown failures
|
||||
remain archived. Independent base-loop reviews found no demonstrated defect in
|
||||
intel progression, radio occupancy or reconnect/partial-result identity. This is
|
||||
offline validation only. No engine was launched; this continuation did not change
|
||||
installed builds or publish. Manual escape, multiplayer and FPS acceptance remain open.
|
||||
[Exact inputs, failures and results](evidence/integration-check-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — persistent objective guidance matches progression:** radio
|
||||
search instructions now explain keeping undeciphered documents and identifying
|
||||
other distinct non-radio sites first; starting clue markers do not count. This
|
||||
replaces the misleading promise that collecting more starting folders alone
|
||||
reveals the radio. The guidance stays conditional because the server owns the
|
||||
round's configured requirement. Identified-radio instructions and close-view
|
||||
identification remain available. The airborne extraction objective now states
|
||||
30 continuous seconds for all rescue transports, matching the current rule.
|
||||
|
||||
The player-route guide is updated. Four existing objective/intel/rescue checks
|
||||
pass unchanged on the recorded inputs. Only wording changed; native UI rendering,
|
||||
multiplayer and performance were not tested. No engine was launched, installed
|
||||
builds were not replaced, and the earlier HQ fix was preserved.
|
||||
[Evidence](evidence/objective-guidance-2026-11-05/report.json).
|
||||
|
||||
**5 November 2026 — depleted squads can receive their recovery hold:** HQ already
|
||||
planned a reserve hold after a withdrawal reached shelter, but its radio delivery
|
||||
gate rejected that order when the squad had no ammunition. Delivery now permits
|
||||
that hold only for a coordinated squad whose existing judgment still requires
|
||||
recovery. Ordinary tactical reserve and attack orders retain the ammunition gate;
|
||||
exact task identity, current belief, expiry and force-ownership checks still apply.
|
||||
|
||||
Nine focused HQ regression programs pass on unchanged relevant inputs, including
|
||||
actual delivery and coordinated-admission methods; the prior source compiles but
|
||||
fails the new recovery-hold assertion. Eight base-loop regressions also passed
|
||||
before the change. This is a source-only correction: native radio/physical movement,
|
||||
multiplayer and performance remain unverified. No engine was opened, and this
|
||||
continuation did not install, publish or alter original missions. Concurrent garage
|
||||
work was preserved. [Evidence](evidence/hq-recovery-reserve-2026-11-05/report.json).
|
||||
|
||||
**7 October 2026 — shorten the initial airport survey:** the latest live
|
||||
Chernarus log spent 48.5s between terrain-survey start and airport completion,
|
||||
then admitted the player after the prison/aircraft and client scene were ready.
|
||||
The survey previously processed one 2km tile per 250ms scenario tick. It now
|
||||
batches up to eight tiles, yielding after 4ms of work between native queries.
|
||||
It still completes the full survey and retains navigation, clearance and spawn
|
||||
protection checks. Isolated Nogova comparison: airport survey 21.2s → 7.0s;
|
||||
spawn-ready 27.5s → 13.1s. All 26 sites completed and all 13 native assertions
|
||||
passed, with zero script errors. Scheduler/airfield policy checks and the source
|
||||
bundle preview passed. These are single random-placement runs, not an FPS
|
||||
benchmark or live Chernarus validation. Initial engine terrain loading and the
|
||||
startup map redirect are unchanged. Not published or deployed. Evidence:
|
||||
[`airport-survey-batching-2026-10-07/report.json`](evidence/airport-survey-batching-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — configurable field-site population:** ordinary rounds now
|
||||
request 12 camps and six hospitals, for 26 total mission sites. The new
|
||||
**Forces → Configure sites** page saves camps (1–16) and hospitals (1–8) for
|
||||
the next round. Old settings files receive the new defaults. Required objectives,
|
||||
initial radio-clue sources and discovery/intel rules are retained; extra locations
|
||||
use background generation and may be omitted if safe placement is unavailable.
|
||||
Above eight field sites, the original 32 fixed guards and 16 mobile soldiers are
|
||||
shared across them. The first unbudgeted expansion stalled during guard/scout
|
||||
preparation; the budgeted run completed all 26 sites and scouts, with 13 native
|
||||
assertions passed and zero script errors. Nogova spawn admission opened at 27.5s,
|
||||
background preparation completed at 100.8s. Min/max definitions validated; physical
|
||||
maximum-density placement, connected-client UI and FPS were not tested. Focused
|
||||
settings, menu-routing and roster-budget regressions passed. Not published or
|
||||
installed on the live server. Evidence:
|
||||
[`site-population-2026-10-07/report.json`](evidence/site-population-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — protect loading prisoners:** newly created admission bodies
|
||||
now have a server-owned damage protection lease for the scene-replication,
|
||||
inventory and native asset-preload wait. The final verified handover restores
|
||||
damage; rejection, timeout cleanup, disconnect, round cancellation and discarded
|
||||
tickets release the lease as well. It preserves a pre-existing disabled damage
|
||||
state and never heals or grants another life. Existing-body reconnect handoff is
|
||||
unchanged; this protects newly spawning characters, not offline reserved bodies.
|
||||
Eight isolated engine checks passed: native damage is blocked while held and the
|
||||
same request damages the actor after release; duplicate release, prior protection
|
||||
and ticket destruction behave correctly. Scene/timeout/lease policy tests and
|
||||
native compilation passed. No connected-client playtest was performed. Evidence:
|
||||
[`spawn-loading-protection-2026-10-07/report.json`](evidence/spawn-loading-protection-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — progressive mission generation:** ordinary rounds now admit
|
||||
players once the prison (or crash start), its finite supplies/guards, and the
|
||||
extraction helicopter are ready. The existing per-player replicated-scene,
|
||||
inventory and native asset-preload gate still withholds control until its final
|
||||
client verification; timeout rejects/retries instead of assigning an empty scene.
|
||||
Remaining terrain searches continue in bounded
|
||||
slices; camps are prepared one at a time, followed by scouts, roadblocks and
|
||||
support initialization. Background work runs even with no connected players.
|
||||
Each late site is committed into the existing mission only after stock and guards
|
||||
are ready; unfinished locations stay out of discovery/intel selection. Generic
|
||||
folders are retained when no target exists yet, and late RevealOnEscape sites
|
||||
catch up if players already escaped. Sites within 200m of a living player defer
|
||||
creation. Stopping the round cancels unfinished work without rolling back committed
|
||||
sites. Optional failed sites can be omitted only while required objectives and
|
||||
accessible radio clues remain valid; required failures end the round explicitly.
|
||||
Native 1.8.0.13 Nogova test: spawn-ready at 25.4s, all 16 sites and remaining
|
||||
preparation complete at 82.7s, nine checks passed and zero script errors. Ordinary
|
||||
Everon cancellation test: spawn-ready at 5.7s; partial site cleanup preserved the
|
||||
prison and committed sites, no later generation occurred. These are isolated
|
||||
server-side tests, not a connected-client or FPS benchmark. Evidence:
|
||||
[`progressive-generation-2026-10-07/report.json`](evidence/progressive-generation-2026-10-07/report.json).
|
||||
|
||||
**7 October 2026 — checkpoint mine laying:** quiet roadblock guards can now make
|
||||
up to four finite off-road placement attempts per post, using original carried
|
||||
PMN4s and the existing mine inventory chance. Jobs start during ordinary HQ ticks
|
||||
(after prison escape), with at most two checkpoint engineers working at once.
|
||||
Every nearby road edge has a 15m exclusion margin; the defend area plus a 20m
|
||||
buffer stays clear. Original hold orders, finite inventory/callback custody,
|
||||
continuous preparation, engineer withdrawal and friendly clearance remain required.
|
||||
Combat, reassignment, custody loss or a 180s deadline cancels placement. The working
|
||||
guard gets a temporary native AI activation/LOD lease, restored on completion.
|
||||
Known checkpoint mines steer friendly foot AI around a safety circle, preserving
|
||||
individual destinations through the detour and cancelling on a changed group order.
|
||||
Players, mine triggers and blast damage are unchanged. Moved/disarmed/destroyed
|
||||
mines lose their stored avoidance entry. This is local steering with physical
|
||||
corridor checks, not an engine-wide navmesh exclusion or friendly immunity.
|
||||
Six focused regression programs and the development source bundle check pass.
|
||||
The isolated Reforger 1.8.0.13 Nogova run placed and armed eight distinct carried
|
||||
mines with zero script errors; a separate crossing probe verified friendly detours
|
||||
around live mines: all three started crossings completed, with 10.06–11.86m
|
||||
minimum clearance and their mines still armed. The final inside-danger-area
|
||||
wait safeguard was native-compiled separately. See [native evidence and limits](evidence/roadblock-mining-2026-10-07/report.json).
|
||||
Not published or installed on the live server.
|
||||
|
||||
**7 October 2026 — editor registration and item-catalog lifecycle errors:** terrain
|
||||
takeover now reuses an existing editor and waits for a valid, distinct player
|
||||
replication identity before creating a missing one. An 80-attempt retry only
|
||||
visits missing editors and cancels on mode detach/end. Normal host ownership and
|
||||
native administrator permissions remain intact. Item-station cleanup records
|
||||
successful native subscriptions and releases their original owners independently
|
||||
of the catalog; transient preloads without a catalog do not initialize a gameplay
|
||||
station. Main-world setup errors remain visible.
|
||||
Five focused regression programs pass. In the isolated 1.8.0.13 Nogova fixture,
|
||||
the previous source reproduced four catalog errors and two failed cleanup checks;
|
||||
the fixed source passes all seven native checks with zero script errors. The
|
||||
fixture includes real kit creation/deletion and kit-local catalog expiry with the
|
||||
global catalog unchanged. Connected two-player restart still needs live validation.
|
||||
These are source fixes, not a published/deployed update; the running server was
|
||||
only inspected. [Evidence](evidence/server-lifecycle-fixes-2026-10-07/report.json).
|
||||
|
||||
|
||||
**7 October 2026 — configurable building guard density:** Forces → Configure
|
||||
guards groups the existing 0–16 soldiers-per-site control with every 1st/2nd/3rd/4th
|
||||
eligible compound (new default: every third) and hold/half-to-HQ/all-to-HQ choices.
|
||||
Settings persist in the unified mission config and are frozen at round setup.
|
||||
Skipped compounds stay skipped for the round; fixed guards retain the existing
|
||||
HQ reservation and reporting path. Site logs include density and HQ mode.
|
||||
Four focused regression programs and isolated 1.8.0.13 script compilation pass.
|
||||
The revised UI and live mission behavior still need playtesting; source only,
|
||||
publication remains with the user. See [guard settings](town-garrisons.md).
|
||||
RKS #2 logs were read after explicit approval of read-only sudo: the last played
|
||||
round spawned 72 object guards (36 fixed/36 responders) plus 18 town soldiers.
|
||||
Two editor-manager registration exceptions occurred at 14:00:58 UTC during terrain
|
||||
takeover; the process continued. Repeated missing entity-catalog errors remain.
|
||||
No live settings were changed and the server was not restarted.
|
||||
|
||||
|
||||
**7 October 2026 — spectator scope view:** first-person camera samples now carry
|
||||
bounded cosmetic scope identity, magnification, vertical reticle offset and
|
||||
illumination. Standard 2D/PiP optics use their authored reticle in a private
|
||||
full-screen spectator display; ordinary first-person poses are unchanged.
|
||||
Weapon/sight identity matching, stale-view fallback and scope transition resets
|
||||
prevent retaining another weapon's scope. No weapon input or native ADS callback
|
||||
is invoked on the watched soldier. The display cleans up on orbit, target loss,
|
||||
menus, camera exit and recovery. Eight focused offline regression programs pass.
|
||||
The hidden 1.8.0.13 client creates and renders the PSO overlay, restores visibility
|
||||
on close, and reopens with illumination; both captures were inspected. This is
|
||||
local rendering evidence, not remote multiplayer/aiming proof. The last
|
||||
ignore-cursor flag is separately compiled. See [evidence and limits](evidence/observer-scopes-2026-10-07/report.json).
|
||||
Source only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — solo death camera and starting supplies:** the observer now
|
||||
detects death from the round roster even if native possession keeps the corpse,
|
||||
initially selects the player's own available body, and restores an observer camera
|
||||
displaced by the native death camera. Open Game Master keeps its camera. Dead-body
|
||||
orbit input also works after selecting player view. The existing final-death grace
|
||||
period and round restart timing are unchanged. Mission-menu settings control the
|
||||
shared starting backpack's pistols (0–12, default 5) and spare magazines (0–48,
|
||||
default 8) for the next round. Focused offline regressions cover saved-setting
|
||||
migration/ranges/failure retention, spectator selection and camera recovery;
|
||||
native multiplayer behavior and the revised menu rendering still need playtesting.
|
||||
Source changes only; publication remains with the user.
|
||||
|
||||
|
||||
**7 October 2026 — AI offloading decision deferred pending measurements:** preserve
|
||||
the isolated Reforger 1.8 probes and evidence. Ownership transfer and worker-local
|
||||
soldier copies did not move native AI updates. Remote native collision-query
|
||||
batches worked, including authoritative waypoint application and timeout fallback,
|
||||
but no useful CPU saving was established. The user wants to collect representative
|
||||
mission performance data before deciding how to use this. Do not integrate an
|
||||
offloading architecture on the strength of the prototype alone. See the
|
||||
[workaround findings and recorded decision](ai-delegation-workarounds-1.8.md) and
|
||||
[HQ measurement instructions](hq-performance-measurements.md).
|
||||
|
||||
**5 October 2026 — review and regression repair:** all **326 registered regression programs pass**. Audio graph resource validation now handles escaped quotes and checks six verified vanilla audio resources; corrupted IDs/paths remain rejected. Stale roadblock, logging and five-vehicle convoy adapters were repaired without changing gameplay scripts. The development source bundle validates 455 authored files. This is offline validation, not a new native-game, multiplayer or FPS result. [Changes and review limits](evidence/review-audit-2026-10-05/review.json).
|
||||
|
||||
**5 October 2026 — configurable interim roadblocks:** Settings now includes a next-round count from 0–12 (default 4; 0 off), saved in the unified server configuration. Native road sampling places finite four-soldier checkpoints with roadside sandbags, selected-faction equipment and normal VirtualHQ reporting/tasking. A bounded optional search cannot hold up startup indefinitely. The final hidden Workbench run placed four posts with sixteen living guards, passed 51 assertions and completed player admission, prison release and radio progression without script/runtime failures. Its thirteen engine resource errors match the earlier spectator baseline. Live multiplayer and other-terrain placement remain playtest work. [Evidence and limits](evidence/roadblocks-2026-10-05/review.json).
|
||||
|
||||
**4 October 2026 — spectator body cycling and player-camera relay:** when no eligible survivor remains, spectators can cycle the current round's player corpses even after native controllers detach. Player view now uses the teammate's sampled camera transform and zoom, with bounded owner/server/observer relay, short interpolation, stale-stream orbit fallback and native head/helmet fading. Nineteen targeted regression programs pass. A hidden/muted native fixture completes 31 assertions with no script/runtime failures and the same thirteen installed-resource errors as its earlier baseline; both view screenshots were inspected. The fixture uses a physical stand-in with injected samples, so real multiplayer latency, HUD and picture-in-picture optics are not claimed as verified or identical. [Evidence and limits](evidence/observer-player-view-2026-10-04/review.json).
|
||||
|
||||
**4 October 2026 — civilian van and terrain Game Master follow-up:** the reported Chernarus session lacked per-car readiness/motion diagnostics. S1203 driving works in an isolated native baseline. Civilian traffic now logs prefab/readiness/progress, starts its stall allowance after readiness, and makes two bounded attempts to restore remaining fixed route orders. The Game Master pause-menu button now follows native permission changes; takeover reconciles already-connected editor managers using native roles. Full repository checks and focused regressions pass; native van recovery after injected order loss and editor event handover pass. Actual multiplayer Game Master UI and the exact reported Chernarus stall still require playtesting. Source is ready for user publication; live server settings and release were not changed. [Evidence and limits](evidence/playtest-traffic-editor-2026-10-04/README.md).
|
||||
|
||||
**4 October 2026 — refreshed UI/BMP development handoff:** [package and editable source](../.build/playtest-2026-10-04-ui-bmp/README.md).
|
||||
|
||||
The combined addon includes the inventory hit-zone callback correction and mounted BMP ammunition-accounting corrections, alongside selectable static crash starts and the existing finite base escape loop. Prison remains the default. **439 authored files, 378 exact PAK payloads and 3 runtime files** match the handoff. The exact code/tests/tools bind to the completed **309-program regression pass**, with any later checkpoint prose changes recorded separately. The exact-source normal escape completes **64 assertions and 1 completion**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of these exact runtime bytes reaches the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**.
|
||||
|
||||
This is an **unqualified development candidate**. Strict packaging/startup failures remain recorded. Synthetic inventory notifications and bounded BMP inventory/status diagnostics do not establish natural-injury/manual UI behavior, physical interception, human escape, multiplayer/JIP/reconnect, comparative FPS or clean release acceptance. Existing missions and all five prior sealed candidates remain unchanged. No installed runtime is replaced and nothing is published.
|
||||
|
||||
**4 October 2026 — inventory callbacks and original BMP radio accounting verified:** the native inventory check completes **96 assertions**, proving all seven original injury widgets receive the real one-argument event once and detach without late updates; it changes no health. The BMP sampler now recognizes the exact WCS inert control's proved structural attachment when its disabled inventory component is absent, while retaining real-weapon custody, completeness and counting limits.
|
||||
|
||||
The corrected original-BMP check completes **60 assertions**, including a complete mounted sample and actual radio delivery into a detached HQ Watch copy. The exact final-source scripted normal escape completes **64 assertions and one round**. All three completed runs have zero script/runtime failures and retain **13 known engine errors**; they ran hidden and muted with unchanged inputs and verified cleanup. All **309 regression programs pass** on unchanged final inputs. The initial 48-assertion/two-failure BMP diagnostic remains archived. Manual injury/rendering, full-fleet or physical interception reliability, multiplayer, FPS and clean release remain unqualified. Original missions, staged work and prior packages are preserved; installed runtime is unchanged and a refreshed development handoff is next. [Correction, exact evidence and limits](evidence/ui-bmp-corrections-2026-10-04/README.md).
|
||||
|
||||
**3 October 2026 — full regression restored; bounded inventory/BMP checks prepared:** all **309 registered regression programs pass** on unchanged final inputs, including the inventory callback correction and previously quota-blocked packaging checks. Only this task's inactive frozen-source duplicate was moved to disk with all 1031 files verified and its original path retained; no other task's temporary files or evidence were deleted.
|
||||
|
||||
The new opt-in inventory check uses the real menu, seven native injury handlers and one-argument blood notifications to test exact forwarding and genuine detach cleanup, without changing health or using desktop input. BMP diagnostics now distinguish missing inventory components, null/conflicting parent slots and failed zero-muzzle classification. Production ammunition/completeness rules and the callback adapter are unchanged. A running user game prevented native execution; the newly prepared checks remain **native-compilation and execution pending**. Original missions, staged work, five sealed packages and installed runtime are unchanged. [Exact checks, source, reviews and next native commands](evidence/inventory-bmp-checks-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — inventory injury callback corrected in source:** a mission-scoped adapter fixes the one-argument damage event/two-argument UI callback mismatch observed in the installed client. It retains native updates and initialization, with owned-subscription cleanup. Focused regression and native compilation pass; actual injury-widget dispatch, rendered UI and multiplayer remain unverified. The installed package is unchanged.
|
||||
|
||||
The full suite stopped after **134 passing programs** on a shared `/tmp` disk-quota failure in offline packaging; **308 programs are registered**, but no full pass is claimed. No unrelated temporary files were deleted. The hidden, muted BMP check now reaches the original slot-4 vehicle and records **48 assertions**, but its numerically valid snapshot remains incomplete at the exact empty-armament slot binding. Two fixture failures and 13 existing engine errors are retained; radio proof is not reached. Source/dependency preservation and private cleanup are confirmed. Original missions, staged work and five sealed packages are unchanged. [Correction, failed checks and next steps](evidence/inventory-hitzone-compat-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP accounting verification strengthened; native run pending:** an opt-in Workbench check now requires complete armed counts from the original slot-4 BMP and that same vehicle’s actual queued and radio-delivered HQ status. The old generic check could be satisfied by a UAZ. The isolated check stops opening hunters and new town admissions before prison exit, while retaining original site troops, automatic convoy target, body cap, finite stock and the fixed proof deadline. Ordinary mission behavior is unchanged.
|
||||
|
||||
All **10 affected regression programs pass** on unchanged inputs; baseline and missing-completeness controls fail as expected. A read-only host preflight found an existing game, so no native run was started and the game was left untouched. The earlier 117/135 refusal correctly enforced the documented shared cap and was not a demonstrated accounting defect. The current crash-start playtest package is unchanged; it predates this diagnostic only. Native BMP accounting/radio proof, physical support reliability, manual play, multiplayer and FPS remain unqualified. [Prepared check and exact evidence](evidence/bmp-native-proof-preparation-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — refreshed crash-start development handoff:** [package and editable source](../.build/playtest-2026-10-03-crash-start/README.md).
|
||||
|
||||
The combined addon now packages the static crash-start choice, memory-based HQ searches, BMP interception implementation and recent configuration/resupply fixes. Prison remains the default. **437 authored files, 376 exact PAK payloads and 3 runtime files** match the handoff. The unchanged code/tests/tools reuse the completed **307-program regression pass** with three recorded subsequent documentation changes. The exact-source scripted default escape completes **64 assertions and one round**; ordinary startup of the exact package reaches the normal mission and local prisoner. Both have zero script/runtime failures, while retaining **13 and 17 engine errors**, respectively. The earlier 66-assertion crash route predates two terrain Game Master edits; that source difference remains recorded.
|
||||
|
||||
This is an **unqualified development candidate**: strict packaging/startup failures, human play, multiplayer, physical support reliability, comparative FPS and clean release qualification remain outstanding. Tests stayed hidden and muted. Prior packages and existing missions are preserved. [Start controls](mission-starts.md) · [Exact handoff evidence](evidence/playtest-refresh-2026-10-03-crash-start/README.md).
|
||||
|
||||
**3 October 2026 — independent crash aftermath start implemented:** Prison remains the default. Administrators can save Prison or Crash for the next round through Settings or `/esc mission start set prison|crash`. The server freezes and replicates that choice before site preparation. Crash creates a successor-owned static wreck scene, admits ordinary one-life survivors on foot and enters the existing intel → radio defence → extraction loop directly. The original finite supplies and shared field map are retained; the measured full wreck footprint and starting area are surveyed before placement.
|
||||
|
||||
The strengthened scripted crash route completes **66 assertions and one round**; the default prison route completes **64 assertions and one round**, both with zero script/runtime failures with unchanged inputs in each accepted run. The crash snapshot predates two unrelated terrain Game Master edits from the user’s other task; the repeated default route checks a frozen copy of the resulting source. The crash check also observes native activation of retained original clue defenders after the scripted approach, without an activation override. All **307 registered regression programs pass** on an unchanged frozen snapshot; the recorded documentation update follows those checks.
|
||||
|
||||
An initial crash fixture wrongly required every distant enemy to be currently active. Its failure remains archived; the corrected Workbench-only probe checks prison-hold release separately from native activation. Native AI behavior was not changed. The first default run completed but was rejected by the source guard because of the concurrent terrain edits; its raw evidence is retained and the default check was repeated against a frozen copy. A complete suite run also detected a concurrent peer edit; all 307 programs were then rerun on the frozen inputs. Each successful run still retains **13 engine errors**. These hidden, muted fixtures protect and teleport the participant, shorten radio defence and move the extraction vehicle: they do not qualify manual play, real flying, remote clients, twelve-player multiplayer or FPS. Static aftermath does not implement an animated helicopter crash or hideout start. Original missions and prior sealed packages are unchanged; a fresh package is still pending. [Controls and limits](mission-starts.md) · [Exact evidence and source](evidence/crash-start-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — latest mission and HQ native checks completed:** the scripted normal Everon escape route completes **64 assertions and one round**, with zero script/runtime failures. A separate corrected HQ fixture completes **172 assertions and one round**: an original two-member mobile team receives the copied **45 m** native search radius, pauses/resumes its queued search under injected contact, and returns to its existing home-defence waypoint on release. A separate six-member permanent guard patrol physically completes five ordered native moves and travels at least 8 m.
|
||||
|
||||
The first patrol attempt remained in the deliberately frozen prison phase; the second reached physical patrol completion but its historical catalog had no mobile responders. Both failures remain archived. Workbench-only setup now opens the prison through the canonical participant API, prepares two finite responders through the normal site owner, and checks their HQ queue before observing the separate permanent patrol. Ordinary mission behavior, movement criteria and deadlines are unchanged. All **305 registered regression programs pass** on the final unchanged snapshot.
|
||||
|
||||
Each completed native run retains **13 engine errors**, so strict clean-build qualification still fails. Both ran hidden and muted with unchanged source/dependency inputs and confirmed cleanup. The normal route preceded the three diagnostic source edits; exact snapshots and deltas are recorded. Radio transit, same-group physical search/resumption, a 110 m search sweep, twelve-player multiplayer and FPS are not established by these fixtures. Original missions and sealed packages are unchanged; the packages still predate recent source changes. [Checkpoint, failures and next work](evidence/hq-native-checkpoint-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — memory-based ground search areas implemented:** ordinary HQ SEARCH orders copy the delivered belief's uncertainty into a 45–110 m native search radius when queued. Delivery validates that snapshot before allocating a waypoint or replacing the previous task, then installs it once. Search centres still follow delivered tracks and coverage; missing-patrol investigations, road/site defence, interception, containment and the separate air-team path retain their previous behavior.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Six focused programs, a failing baseline and two mutation controls cover queue snapshots and delivery guards. The existing 40 m / 30 s negative-search witness remains unchanged; a visited 500 m cell does not prove every part of that area was cleared. The native search grid grows with radius, so runtime cost and FPS remain unmeasured. Native checks were deferred because an existing game was running. Original missions, the index and sealed development packages remain preserved; packages predate this change. [Implementation and evidence](evidence/hq-search-radius-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — configuration recovery and interrupted rifle resupply corrected:** changing one setting can no longer overwrite the only valid backup of another malformed section. Invalid recognized sections block unrelated saves before disk writes; repairing the damaged section preserves the good backup. Ordinary ammunition trips now retain their exact truck and recipient claims while an accepted native move remains unresolved, preventing a second supply job from racing the first. Existing finite stock, radio demand, deadlines and transfer rules remain in place.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Baseline failures and focused controls reproduce both bugs. Repository and source-bundle validation now recognize one audited optional resource-name comparison without adding a runtime dependency, and the existing vanilla character load has verified resource metadata. The initial validation failure remains archived. A separate bounded base-loop review found no new demonstrated defect in radio defence, extraction ordering, player identity or terminal cleanup. Native checks were deferred because an existing game was running; no window, input, audio or process changes were made. Native transfers, manual escape, multiplayer and FPS remain unqualified. The sealed development packages predate these source changes. [Implementation and evidence](evidence/config-supply-recovery-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — original BMP singleton interception implemented in source:** after six confirmed original-unit losses reach HQ through delivered reports, HQ can assign an existing original slot-4 WCS BMP to a road ahead of the remembered track. Fresh delivered crew/ammunition status, original force custody and a real radio command remain required. Its measured vehicle/attachment envelope governs conservative road and destination clearance. Existing UAZ pairs and singleton fallback share the same two-survey budget; no new vehicle, crew or stock is spawned.
|
||||
|
||||
All **305 registered regression programs pass** on the recorded unchanged snapshot. Independent reviews cover dispatch, service and geometry integration. Native compilation, physical BMP driving/interception and path reachability remain unverified: a read-only preflight found an existing user game, so no native test was started. The sealed depot-mines package remains unchanged and predates this source feature. Original missions and earlier packages remain preserved. [Source and regression evidence](evidence/bmp-interception-2026-10-03/README.md).
|
||||
|
||||
**3 October 2026 — BMP ammunition accounting corrected; native confirmation pending:** two verified non-firing WCS/vanilla controls were counted as weapons with missing muzzles. The sampler now excludes only these exact resources when their native muzzle list is empty and reciprocal mounted ownership is valid. Real weapons and unknown or malformed components retain all completeness checks. This corrects accounting; it does not add BMP interception.
|
||||
|
||||
All **302 registered regression programs pass** on the recorded unchanged test snapshot, including its welcome-voice addition. Subsequent concurrent settings, faction/item preferences, terrain preference and welcome-voice edits are preserved live and are not covered by these results. The old sampler compiles and fails the new actual-method assertion; the correction passes ordinary and WORKBENCH controls. Exact installed resource identities were independently audited. One hidden/muted mounted-ammo run compiles but cannot admit an original convoy within its fixed proof window: the shared body budget reaches 117/135, while a convoy requires 25. It records **32 passing assertions, zero completions, two script test failures and fifteen engine-error entries**, including those two failures and thirteen existing entries. No BMP sample was observed; physical accounting and radio delivery remain unverified. Cleanup and unchanged source/external inputs are confirmed. [Source, tests and failed native evidence](evidence/bmp-ammo-accounting-2026-10-03/README.md).
|
||||
|
||||
The sealed depot-mines development package below predates this correction and excludes later live source changes. Original missions and all earlier packages remain preserved. Manual escape, multiplayer, physical logistics, comparative FPS and clean-release qualification remain unfinished.
|
||||
|
||||
**3 October 2026 — depot-mines development handoff:** [package and editable source](../.build/playtest-2026-10-03-depot-mines/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds ten finite startup PMN4 mines across five original camp caches. An existing original responder can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure; magazine expenditure cannot request mines. The loader also selects a compatible eligible porter from the original roster instead of letting an incompatible first member block magazine loading. Exact cargo identities, typed delivery proof, fixed deadlines and cancellation quarantine remain enforced. Earlier finite engineer-post reuse, compatible-stock supply, mine-flank safety and paired interception are included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **301-program regression pass**; 3 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **64 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. The normal-route read-only stock witness confirms **ten distinct original inert PMN4s in five camp caches**; it does not prove courier travel or transfer. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds the exact tested depot-mines snapshot. Concurrent welcome-voice additions and later source or test changes, including the BMP sampler correction, are preserved live but excluded from this frozen handoff and its qualification. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — finite camp mines join the physical supply chain:** five authored Everon camps now start with two PMN4 mines each. The existing original-responder courier can carry one inert original mine to an existing ammunition truck after separately tracked mine expenditure. Magazine expenditure cannot request mines. Cargo type, exact identities, native custody and cancellation are checked throughout; the original engineer entitlement and consumed-post rules remain unchanged.
|
||||
|
||||
All **301 registered regression programs pass**. One hidden/muted normal Everon run completes **64 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. The added read-only stock witness confirms **ten distinct original inert PMN4s stored in five camp caches**. Cleanup and unchanged source/external inputs are confirmed. Autonomous porter travel and native mine delivery, mine placement/arming, real multiplayer and comparative FPS remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this feature. The intermittent zero-radius issue remains unresolved. [Implementation and evidence](evidence/depot-mines-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — camp loading selects a compatible original porter:** a camp's first responder can no longer block loading solely because its rifle is incompatible with the remaining cache magazines. The loader searches the bounded original roster for a compatible eligible member before reserving forces or sending a truck hold. Existing military/ownership eligibility now applies during selection as well as execution. No stock, troops, deadlines or native transfer rules change.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the old mixed-roster failure and preserve the existing cancellation and finite-delivery checks. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled; neither the earlier error nor a caller trace appeared. Its cause remains unresolved; no extra reproduction run was made. Physical autonomous loading, multiplayer and performance remain unqualified. Existing missions, the index and packages are preserved; the ground-supply package predates this correction. [Implementation and evidence](evidence/depot-porter-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — ground-supply development handoff:** [package and editable source](../.build/playtest-2026-10-03-ground-supply/README.md).
|
||||
|
||||
**423 authored files**, **364 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds finite engineer reuse at genuinely newer radio-delivered road posts: four consumed attempts per original force and thirty-two per mission, with every new post more than 160 m from consumed posts. Original stock, native movement envelopes, fixed deadlines and unresolved-removal quarantine remain intact. Ordinary small-arms supply now refuses trucks lacking compatible nonempty original magazines before spending a report or claiming forces. Earlier mine-flank safety, paired interception and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **300-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native repeated mining and route avoidance, mine placement/arming/detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ skips ammunition trucks that cannot supply the reported patrol:** ordinary rifle-supply admission now checks for compatible, nonempty original magazines before reserving forces, consuming the report or starting its three-minute cooldown. Previously an incompatible belt or launcher round could trigger a futile trip and stop the convoy. Launcher and mine behavior, delivered positions, original stock and later physical transfer checks remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Independent actual-method tests reproduce the old failure and confirm a later compatible original truck can accept the same delivered report. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **0 script/runtime failures and 13 retained engine-error entries**. Cleanup and unchanged source/external inputs are confirmed. The existing zero-radius trace was enabled, but neither the error nor a caller trace appeared; the earlier intermittent issue remains unresolved. No additional reproduction run was made. Autonomous resupply, real multiplayer and performance remain unqualified. Original missions, the index and existing packages are preserved; the mine-safety package predates this source change. [Implementation and evidence](evidence/resupply-compatible-stock-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineers can reuse remaining stock at a newer delivered road post:** a mission-owned history now permits a second original mine attempt after a genuinely newer radio-delivered assignment. Each original force has four attempts per round and the mission has thirty-two; every new post must be more than 160 m from all consumed posts. Refused attempts remain spent. Active jobs and unresolved removal callbacks block new work for that original force, and copied prior mine sites constrain the next local work area. Original forces, stock, native defend radius and task deadlines remain unchanged.
|
||||
|
||||
All **300 registered regression programs pass**. Actual-method tests reproduce the previous second-post refusal and catch quota and pending-callback regressions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **one recurring zero-radius script error and fourteen engine-error entries**. Those entries include the same script error plus thirteen installed-resource errors; the exact caller remains unknown. The first native compile exposed a ledger field/type name collision; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. Physical repeated mining, native path avoidance, multiplayer and FPS remain unqualified; straight corridor and sampled-position checks are not a navigation guarantee. Existing missions, the index and the mine-safety package remain preserved. That package predates this source change. [Implementation and evidence](evidence/engineer-posts-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mine-safety development handoff:** [package and editable source](../.build/playtest-2026-10-03-mine-safety/README.md).
|
||||
|
||||
**422 authored files**, **363 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds engineer mine flanks with at least 15 m clearance from nearby road centerlines and more than 200 m from named settlements. Mine dispatch also respects the group’s current native movement envelope before starting and throughout the job. Original items, fixed deadlines and cancellation quarantine remain intact. Earlier paired interception, finite supply and player-recovery changes remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **299-program regression pass**; 2 later documentation-only differences are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native mine placement, arming and detonation, physical resupply/interception and survivor retasking remain unverified, as do complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. An intermittent zero-radius engine diagnostic remains unresolved; the opt-in trace preserves native behavior and is not a fix or proof of the caller. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — engineer mine orders respect their group's native movement limits:** admission and every active phase now require the current group utility to allow the selected mine position. Previously a point could pass terrain/road/settlement checks but still trigger individual movement outside the group's defend or autonomous radius. A refusal uses existing cancellation without consuming an item attempt before admission; an already-spent item remains quarantined and late callbacks cannot arm it.
|
||||
|
||||
All **299 regression programs pass**. Independent tests reproduce the prior failure and reject an admission-only correction that misses later restrictions. One hidden/muted normal Everon run compiles and completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. Cleanup and unchanged source/external inputs are confirmed. Native physical mine placement/arming and multiplayer remain unqualified, and the separate intermittent zero-radius error is unresolved. Original missions, the index and previous development package remain preserved. [Implementation and evidence](evidence/engineer-movement-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — zero-radius caller diagnostic compiles; earlier error remains unresolved:** an opt-in Workbench diagnostic now observes five native script callsites, with one shared sixteen-record cap and AI node/script stacks. Superclass arguments, results, output parameters and random draws remain unchanged. It is disabled by default and excluded outside Workbench.
|
||||
|
||||
All **299 regression programs pass**, including independent checks that catch three deliberate diagnostic regressions. One hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script errors and thirteen retained resource errors**. The engine CLI confirms tracing was enabled, but the earlier zero-radius error did not recur and no trace was emitted. Its caller remains unknown; this is not a gameplay fix or proof that the error is gone. No repeated run was used to chase reproduction. Cleanup and unchanged source/external inputs are confirmed. Original missions, the Git index and the previous development package remain preserved. [Diagnostic and evidence](evidence/random-radius-trace-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — engineer mine sites recover the owned road/settlement exclusions:** the existing finite engineer now selects a flank position 25–60 metres from its delivered road post, at least fifteen metres from every nearby road centerline and outside the shared two-hundred-metre named-settlement exclusion. Previously the selector chose centerline points and omitted the settlement guard. Crossing and narrow roads participate in clearance; invalid or over-budget geometry refuses placement. Original soldiers, carried mines, HQ orders, attempt limits and arming/withdrawal rules are unchanged.
|
||||
|
||||
All **297 registered regression programs pass** on the corrected source. Independent tests reproduce the old placement-policy failure and catch five deliberate regressions; review also corrected tiny-segment clearance and reversed-polyline rounding. The hidden/muted normal Everon route compiles and completes **63 assertions and one round**, with **one zero-radius random-point script error and fourteen engine-error entries**. The fourteen entries include that same script error plus thirteen installed-resource errors; the exact caller is unknown and no evidence attributes it to the mine-site change. Cleanup and unchanged source/external inputs are confirmed. This does not exercise native mine laying or arming, manual play, multiplayer or FPS. The existing development package and original missions are preserved; the package predates this correction. [Implementation and evidence](evidence/mine-flanks-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — bounded production convoy observation added; travel qualification remains incomplete:** the new opt-in `supply-travel` fixture watches the first naturally admitted production convoy, retaining its six vehicles, eight groups and 25 original actors. No enemy orders, budgets, routes or contacts are injected. The canonical scripted observer alone is temporarily protected from damage, with its prior flag restored on cleanup.
|
||||
|
||||
The hidden/muted run compiled and admitted the full original formation. Slots **0, 1 and 5** each moved at least twenty metres from their first-ready positions; slots **2, 3 and 4** did not meet that requirement before the fixed three-minute window expired. The task remained ready and active in combat state. Original crew/seat/record checks passed through the last pre-deadline observation; the deadline poll itself exits before revalidation. The archived result is a failure: **zero completions, one script test failure and fourteen engine-error entries**, including that same test failure and thirteen installed-resource errors. Its 453 assertion-pass calls include 419 repeated probe-presence checks and are not 453 distinct gameplay checks. Cleanup and unchanged source/external inputs are confirmed.
|
||||
|
||||
All **297 registered regression programs passed** before a reviewed strong-reference cleanup correction; four relevant checks were rerun successfully on the corrected source, with other suite inputs unchanged. No production AI change or package refresh was made. The earlier mounted-pair handoff below remains preserved. Full travel, tactics, resupply/interception, human play, multiplayer and FPS remain unqualified. [Evidence and limits](evidence/supply-travel-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — mounted-pair development handoff:** [package and editable source](../.build/playtest-2026-10-03-mounted-pair/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
This snapshot adds event-time capture cancellation for original active hunter vehicles, the current inherited terrain presentation, and paired radio interception by two original convoy escorts. Both real order receipts precede detours; finite forces, crew identities, stock and fixed deadlines are preserved. Earlier convoy-survivor, radio interruption and finite-transfer corrections remain included.
|
||||
|
||||
The unchanged authored source, tests and tools reuse the completed **294-program regression pass**; four later prose-only documentation updates are separately reviewed. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**3 October 2026 — HQ can dispatch a pair of original convoy escorts:** two armed escorts from the same finite convoy can receive separate radio orders to spaced positions on one actual road ahead of delivered travel memory. Both receipts are required before either detour begins. Interrupted delivery, stale history or loss of an original crew cancels the pair; there is no replacement partner, deadline renewal or new combat force. Single-escort fallback, force limits and the total two-road-survey budget remain intact.
|
||||
|
||||
All **294 registered regression programs pass**. Independent review corrected a feasible-pair selection gap; source tests cover radio arrival order, interrupted delivery, waypoint allocation failure, exact ownership and two-escort column rejoining. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**. The first native compile caught a field/type naming conflict; its failed result is retained, and the corrected source was retested. Cleanup and unchanged source/external inputs are confirmed. This establishes compilation and ordinary-loop integration, not native physical paired interception, human play, multiplayer or FPS. Existing missions, the Git index and the previous playtest package are preserved; that package predates this addition. [Implementation and evidence](evidence/mounted-pair-2026-10-03/review.json).
|
||||
|
||||
**3 October 2026 — current mission survives two native end/restart cycles:** the hidden/muted Core fixture passes **21 assertions across two independently initialized rounds**, with **zero script/runtime failures and thirteen retained engine errors**. Each round reaches the prepared prison phase, ends through vanilla `EndGameMode`, shuts down successor services once, cancels queued work and leaves stale callbacks inert. Native end data remains unchanged, no escape is invented, and vanilla reload initializes the second round with fresh state.
|
||||
|
||||
A fresh **292-program regression run passes** on the same **420-file authored source**, including the inherited terrain-presentation update; earlier source bindings are not reused. Cleanup and unchanged source/external inputs are confirmed. This checks local prepared-round termination and restart, not pending native preloads, field-logistics teardown, complete human play, multiplayer or FPS. Strict native failure remains recorded. No production code changed in this continuation; existing missions, inherited work and the packaged handoff are preserved. [Evidence and limits](evidence/active-restart-current-2026-10-03/review.json).
|
||||
|
||||
**2 October 2026 — combined admin and intel reroll fixture completes on current source:** the hidden/muted native run passes **116 assertions and one escape round**, with **zero script/runtime failures and thirteen retained engine errors**. It exercises the administration menu and owner RPCs, then processes **126 original AI at 100% and again at 0%**, both with zero failed or skipped entries inside the unchanged shared ninety-second gate. The checked guards gain/remove their native folders while the player’s exact collected clues and identified radio remain intact. Interrupted radio defence, extraction and results then complete.
|
||||
|
||||
No production source changed. The prior **292-program regression pass** covers identical authored source, tests and tools; this was not a new full-suite run. The earlier 129-actor timeout remains preserved, and this 126-actor result is not an identical-workload comparison. Scripted local legacy-site/admin checks do not establish ordinary input, remote multiplayer, generated-route balance or FPS. Strict engine failures remain; cleanup and unchanged external inputs are confirmed. Three bounded gameplay reviews found no new demonstrated defect. Original missions and the existing package remain unchanged. [Evidence and scope](evidence/intel-reroll-current-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — active hunter capture is remembered at vehicle entry:** when a current admitted player enters an active original HQ hunter vehicle, the server records capture before native entry callbacks can change player ownership. The existing driving/recovery order and HQ registration are released once, even if current occupancy disappears before the next one-second poll. Vehicles, crew and spent deployment allowances remain physical and unchanged. Entering an already-released vehicle does not revoke its former crew’s independent infantry role.
|
||||
|
||||
All **292 registered regression programs pass**. Independent actual-method tests reproduce the old event gap and a missing survivor-retention guard, then pass with the fix. The installed SDK signature and callback ordering are verified. A hidden/muted normal Everon run completes **63 assertions and one round**, with **zero script/runtime failures and thirteen retained engine errors**, confirmed cleanup and unchanged inputs. This proves compilation and ordinary-loop integration; native capture-event timing, remote multiplayer and performance remain unverified.
|
||||
|
||||
The existing convoy-survivors package is unchanged and predates this source fix. Original missions and inherited work are preserved; nothing was committed or published. [Implementation and evidence](evidence/hunter-capture-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — convoy-survivors development handoff:** [package and editable source](../.build/playtest-2026-10-02-convoy-survivors/README.md).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the editable source and handoff manifest.
|
||||
|
||||
The snapshot retains eligible original enemy convoy survivors in their existing HQ registration when travel or boarding ends. Exact ownership, roster and force identity still apply; no new soldiers, equipment or contacts are created. Radio-hop interruption, finite-transfer cancellation and deleted-mortar-shell fixes remain included.
|
||||
|
||||
The exact source passes **291 registered regression programs**. The unchanged-source archived normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**. Ordinary startup of the exact new runtime bytes verifies the normal mission and local prisoner, with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded.
|
||||
|
||||
This is an **unqualified development candidate**. Native survivor radio delivery and physical retasking remain unverified, as do physical resupply/interception, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, manual UI behavior, comparative FPS and a clean release. Qualification binds this frozen snapshot; later live edits are excluded. Earlier packages and original missions remain preserved.
|
||||
|
||||
**Earlier source and package checkpoints (historical):**
|
||||
|
||||
**2 October 2026 — original convoy survivors stay available to HQ:** ending a convoy travel task or passenger-team boarding task now retains the existing HQ registration for eligible original enemy survivors. Ownership, original roster and force identity must still match. Captured vehicles, player/foreign/replacement groups, old missions and stopped HQs keep the unregister path. No new soldiers, registrations, equipment grants or contacts are created. Existing radio/report state remains, while ordinary on-foot eligibility still requires conscious survivors outside vehicles. Unsettled logistics transfers retain their exact reservation until the existing owner settles them.
|
||||
|
||||
Nine focused regression programs pass, including actual release/retention/eligibility and exact-token cleanup. The first native compilation exposed an Enforce class-layer visibility error; the corrected source clears the already-validated unit support flag directly, and its normal Everon route completes **63 assertions and one round, with zero script/runtime failures and thirteen retained engine errors**. The failed compile and its cascade are preserved separately. Native survivor radio delivery, physical retasking, multiplayer and FPS remain unverified. This source change is newer than the preserved transfer-fixes package. [Implementation and evidence](evidence/convoy-survivors-2026-10-02/review.json).
|
||||
|
||||
A separate earlier diagnostic identifies the released troop truck: its vehicle and all nine original soldiers were alive in the original enemy group; the conscious driver was outside the vehicle. That is a failure-time observation, not proof of the earlier release trigger. The convoy witness still fails before movement/interception, with 124 assertions, zero completions and two script test failures. Its raw result remains retained.
|
||||
|
||||
**2 October 2026 — convoy diagnostic admission corrected; interception still unproved:** the isolated legacy convoy fixture now stops unrelated opening hunters before prison release. Its original 60-body cap and 19-body convoy reservation are unchanged. Previously nine hunter crew pushed its committed population above the cap; stopping their driving after spawn would not refund those bodies. Normal mission behavior is unchanged.
|
||||
|
||||
Four focused regression programs pass. One hidden/muted native run now admits all six vehicles and nineteen original crew and confirms finite truck cargo, reaching **124 assertions**. It then fails before the road-movement proof because a vehicle is missing or released: **zero completions, two script test failures and fifteen retained engine-error entries**. The current log does not identify the vehicle or release cause; nearby contact/gunfire does not prove a casualty. No physical interception was reached, and no production crew/order guard was weakened. Cleanup and unchanged source/external inputs are confirmed. The earlier profile-path refusal occurred before launch and is also retained. [Correction, failed evidence and remaining diagnostic](evidence/convoy-fixture-admission-2026-10-02/review.json).
|
||||
|
||||
The latest transfer-fixes runtime candidate is preserved; this later edit affects only its Workbench diagnostic. Coverage descriptions now match that candidate and the implemented finite mine resupply; all release acceptance statuses remain pending.
|
||||
|
||||
**2 October 2026 — transfer-fixes development handoff:** [sealed package manifest and editable source](../.build/playtest-2026-10-02-transfer-fixes/handoff.json).
|
||||
|
||||
**420 authored files**, **361 exact PAK payloads** and **3 runtime files** match the sealed source.
|
||||
|
||||
This snapshot includes the radio-hop interruption checks, cancellation guards for finite supply transactions, and the deleted-mortar-shell settlement fix. Earlier terrain/admin integration and bounded HQ travel-history planning remain included.
|
||||
|
||||
The exact frozen source passes **290 registered regression programs**. The normal Everon route completes **63 assertions and 1 round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
Ordinary startup verifies the normal mission and local prisoner with zero script/runtime failures and **17 retained engine errors**. Strict packaging/startup failures remain recorded; this is an **unqualified development candidate**.
|
||||
|
||||
Qualification covers this frozen snapshot, not later live edits. Physical resupply/interception, manual UI behavior, complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Existing packages and original missions remain unchanged.
|
||||
|
||||
**2 October 2026 — deleted mortar shells no longer block the battery:** a shell deleted during an accepted transfer now settles as a failed loss. The battery can consider its remaining physical shells; surviving items with uncertain custody remain quarantined, with no refund or retry. Four focused regression programs pass, including actual transfer and battery pending methods. Independent testing reproduces the baseline failure. No native or multiplayer run was made for this change, and existing packaged/source checkpoints predate it. [Fix and verification](evidence/mortar-deleted-shell-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — interrupted radio hops and cancelled supply transactions stay stopped:** HQ radio routes now validate both carriers and the existing range rule on each observed sending tick. A carrier losing its radio, consciousness or ownership, or a receiver leaving the link, cannot recover before the deadline and complete that interrupted hop. Delivery and route advancement still wait for the original deadline; radio capability caching remains unchanged.
|
||||
|
||||
Mine resupply, mounted-ammunition pickup and mounted-magazine exchange now preserve cancellation and recheck authority after native submission. An inline callback can no longer turn a stopped or captured transaction into a successful delivery. Committed stock remains spent, and late exact movement can settle uncertainty without a retry or refund. Existing physical-access checks and trace budgets remain intact.
|
||||
|
||||
**Eleven focused regression programs pass** on the changed source. Independent actual-method tests reproduce the old failures and pass with the fixes. Native boundaries are doubled in those tests; no engine session was launched for this increment after detecting an existing Reforger session, which was left untouched. Physical supply, real multiplayer and performance remain unverified. The prior runtime package and sealed source checkpoint are preserved and predate these fixes; refresh the source snapshot before packaging the latest implementation. [Changes, tests and preservation](evidence/radio-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — gameplay-fixes source verified; new runtime package deferred:** the [sealed editable source](../.build/playtest-source-2026-10-02-gameplay-fixes/PENDING-PACKAGE.md) contains **420 authored files** and passes **290 registered regression programs**. The confirmed normal Everon route completes **63 assertions and one round**, with zero script/runtime failures and **13 retained engine errors**.
|
||||
|
||||
The snapshot includes the rifle-supply callback cancellation guard, bounded HQ road-survey fairness, and inherited terrain/admin-item integration. These are source inclusions; manual UI behavior, physical resupply/interception, complete human escape, multiplayer and comparative FPS remain unqualified.
|
||||
|
||||
Packaging was refused before creating its session because an existing Reforger session was detected. It was left untouched, and no new runtime candidate was produced. No native process was left waiting to launch; continuation will recheck host idleness before packaging. The [latest existing playtest package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) remains unchanged. The first normal-route cleanup refusal (a transient compiler process could not be classified), successful retry and package refusal are all [retained with source bindings and review](evidence/source-refresh-2026-10-02-gameplay-fixes/review.json). Strict failures are not waived.
|
||||
|
||||
**2 October 2026 — cancelled rifle resupply stays cancelled:** a synchronous native inventory callback could move the magazine while cancelling the transfer, capturing its donor or changing ownership. Rifle transfers then skipped the guards used by launcher transfers and could record a successful delivery. Both modes now recheck terminal state and authority after submission. Submitted items remain spent; late physical arrival can settle uncertainty without counting a delivery or permitting another attempt.
|
||||
|
||||
Four focused regression programs pass for the current source, including the actual transfer and coordinator, shared finite reservations and convoy budget admission. Independent tests reproduce the old failure and pass with the correction; a mutation also demonstrates the ownership guard. No new engine or multiplayer run was made for this two-line correction. [Fix, tests and preservation](evidence/rifle-transfer-cancellation-2026-10-02/review.json).
|
||||
|
||||
The earlier **415-file frozen source** now completes **288 registered programs across resumed verification**: 233 unchanged passing records plus 55 freshly passing programs. Preserving an inactive task-owned temporary snapshot elsewhere, with every file verified and its old path retained, freed the required temporary quota. Earlier failed attempts remain archived. This finishes that snapshot's checks; it is not a full-suite result for the current 417-file source. Existing missions, inherited work and the previous development package are unchanged. Physical interception, manual escape, real multiplayer, comparative FPS and release qualification remain open.
|
||||
|
||||
**2 October 2026 — fair bounded HQ road surveying and an opt-in physical interception witness:** HQ road surveying now rotates through delivered tracks while retaining the existing two-survey limit. Previously, the first two eligible tracks with blocked road candidates could consume every pass and permanently starve a later usable track. The actual-method regression fails before the change and passes afterward; independent review confirms the bounded cursor and unchanged radio, force-claim and expiry policy.
|
||||
|
||||
Resumed verification retains **233 passing programs** against identical frozen input hashes and attempts **1 fresh suffix program**; the current resumed result exits **1** after **234 total recorded programs**. Complete passing verification remains unestablished. The initial deadline-test adapter failure, later `/tmp` quota failure and rejected alternate-directory attempt remain archived. Resumed temporary files use `/tmp`; no production/native source changed for this resumption. The final canonical `/tmp` retry stops in `test_native_package.py` with disk-quota errors (Errno 122); the remaining suffix is unverified. No full-suite pass is claimed. The bounded native run records **33 assertions**, **0 completions**, **2 script/runtime failures** and **15 retained engine errors**; runner result: `test-failed`. It does not establish the complete physical interception sequence; preserve the failed or incomplete result and its raw logs. The canonical convoy admission assertion failed before the interception stage; no physical interception was exercised and no admission policy was weakened. Cleanup confirmed: `True`. Strict engine errors are retained. A separate normal-route run of the same source records **63 assertions**, **1 completion**, **0 script/runtime failures** and **13 retained engine errors**; runner result: `smoke-completed` and cleanup confirmed: `True`. This ordinary route does not validate physical interception.
|
||||
|
||||
The opt-in Workbench witness uses two synthetic observation positions in an original soldier’s local inbox. Radio hops, HQ memory/planning, the original escort and physical AI movement remain production paths. It is not natural detection, a human escape, multiplayer, interception effectiveness, FPS or release qualification. No vehicles, crew or stock are created by the new interception stage. The separate [HQ-memory/menu-fix development package](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md) is unchanged and predates this survey correction and opt-in witness. Concurrent terrain work and older evidence remain preserved. [Source, regression, native and independent-review evidence](evidence/mounted-native-2026-10-02/review.json).
|
||||
|
||||
**2 October 2026 — corrected HQ-memory/menu-startup development handoff:** [separate package and editable source](../.build/playtest-2026-10-02-hq-memory-menu-fix/README.md). 409 authored files, 351 exact PAK payloads and three runtime files match editable source and `handoff.json`.
|
||||
|
||||
A startup guard now skips automatic terrain takeover in mode-less menu worlds; ordinary supported scenarios and unsupported-mode diagnostics keep their existing behavior. This snapshot includes observer recovery/defeat guidance, finite resupply of supported reloadable launchers, and one original armed convoy escort receiving a radio interception order ahead of delivered player travel history. Earlier finite logistics, controller ownership and authored discovery/mine-warning map presentation remain included. The frozen snapshot includes the earlier parallel task’s automatic terrain takeover behavior; newer concurrent terrain-name/presentation edits remain in the live workspace and are not in this package; this handoff’s fresh scripted route targets Everon.
|
||||
|
||||
The exact source passes **285 registered regression programs** and the [fresh normal escape fixture](evidence/native-2026-10-02-hq-memory-menu-fix-normal/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. Fresh ordinary startup of this exact package verifies the normal mission and local prisoner with zero script/runtime failures and 17 retained engine errors. Strict packaging/startup failures remain recorded.
|
||||
|
||||
The initial HQ-memory candidate and its one script/eighteen engine errors remain retained; this corrected package includes the demonstrated menu-world guard. This is an **unqualified development candidate**. Physical launcher delivery, native interception movement/holding/rejoining, a complete human escape, real multiplayer/JIP/reconnect/twelve-player play, comparative FPS and a clean release remain unverified. Historical standard-map visual checks do not prove physical held-map rendering or current remote UI behavior. No new native flight or prison-input experiments are included. Previous packages, original missions and inherited work remain preserved; nothing was committed or published. [Package hashes](evidence/package-2026-10-02-hq-memory-menu-fix/handoff.json).
|
||||
|
||||
|
||||
**2 October 2026 — HQ motorized interception implemented in source:** one original armed UAZ convoy escort can receive a radio command to hold a road ahead of remembered player travel, then rejoin its convoy. Orders use delivered history and complete original-formation status, share force limits, expire on a fixed deadline and cannot spawn replacements or compete with logistics. [Behavior and limits](mounted-interception.md).
|
||||
|
||||
All **285 registered regression programs pass**. The [hidden/muted final-source normal escape](evidence/native-2026-10-02-mounted-intercept-normal/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained engine errors. The initial missing-hook compilation failure and test default-path failure are preserved with their fixes. [Implementation, review and preservation](evidence/mounted-interception-2026-10-02/review.json).
|
||||
|
||||
Native driving to the intercept, physical holding/rejoining and interception effectiveness remain unverified; the normal escape run proves compilation and base-loop integration only. Human play, real multiplayer, comparative FPS and clean release remain pending. The existing 416-file playtest package is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published.
|
||||
|
||||
|
||||
**2 October 2026 — recovery warnings and finite launcher resupply:** unconscious spectators now receive the already-replicated recovery, reconnection or thirty-second defeat warning. Hints refresh when that information changes and clear on awakening. HQ can also arrange supply for a reported empty, supported reloadable launcher using original compatible truck stock, after rifle and mounted demand. Disposable launchers remain excluded. [Implementation and review](evidence/recovery-launcher-2026-10-02/review.json).
|
||||
|
||||
All **283 registered regression programs pass**. The hidden/muted [observer fixture](evidence/native-2026-10-02-recovery-warning/report.json) passes **29 assertions**, including accepted recovery text and clearing on wake; the [final-source normal escape](evidence/native-2026-10-02-recovery-launcher-normal/report.json) passes **63 assertions and one round**. Both have zero script/runtime failures and **thirteen retained engine errors**, with confirmed cleanup. The observer run predates the four AI changes but uses exactly the final observer/probe code; the normal route binds all 407 final authored files.
|
||||
|
||||
Actual launcher transfer/reloading, full human play, multiplayer and comparative FPS remain unverified; no release qualification is claimed. The existing 416-file playtest package predates these changes and is unchanged. Original missions and inherited work are preserved; nothing was committed or published. A separate motorized-interception proposal remains design-only.
|
||||
|
||||
**2 October 2026 — current package checked on an isolated Linux dedicated server:** the unchanged [objective-map playtest](../.build/playtest-2026-10-02-objective-map/README.md) loads its exact ten-addon closure, compiles Game scripts and reaches the normal Everon prison phase. The empty server stays under observation for fifteen seconds afterward; there are zero script/runtime failures and **eleven retained engine errors**. [Raw evidence and independent review](evidence/dedicated-packed-2026-10-02-objective-map/report.json).
|
||||
|
||||
This is packaged dedicated startup, **not connected-client, multiplayer, complete-escape, performance or release qualification**. The private supervisor stops its own server with SIGTERM after 72 seconds; graceful shutdown is unproved. Network/PID isolation, no display/audio, cleanup and unchanged package/external inputs are recorded. Three bounded gameplay reviews found no demonstrated defect; no production code changed. All 407 authored files, 416 candidate files, 533 original reference files and 70 inherited unstaged paths remain unchanged. The prior 283-program pass still covers identical source. [Preservation](evidence/dedicated-packed-2026-10-02-objective-map/review.json).
|
||||
|
||||
**2 October 2026 — objective-map playtest package refreshed:** the [new separate development handoff](../.build/playtest-2026-10-02-objective-map/README.md) contains the authored discovery/mine-warning UI alongside the earlier controller ownership, HQ and logistics work. **407 authored files, 349 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-objective-map/handoff.json).
|
||||
|
||||
The unchanged source retains its **283-program regression pass**, **101 map-fixture assertions** and **63-assertion normal escape route**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-objective-map/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained engine errors. Strict packaging/startup failures remain; this is **not a qualified release**. Shared-map evidence remains geometry-only, with physical held-map capture unverified.
|
||||
|
||||
Three bounded parallel reviews of base radio/extraction/guidance, map lifecycle and intel/loot ownership found no demonstrated new defect; no production code changed for this packaging increment. All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, existing working changes and the previous 412-file candidate are preserved; nothing was committed or published. [Review and preservation](evidence/playtest-refresh-2026-10-02-objective-map/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — independent objective map UI integrated:** discovered sites and recovered mine warnings now use authored UI outside the native player-annotation lists. Stable rough positions, exact identification, pan/zoom culling and close/reopen cleanup remain intact. Supported standard-map and shared-map containers replace the rejected Canvas parent. Player annotations and their restrictions are unchanged. [Implementation and limits](objective-map-presentation.md).
|
||||
|
||||
All **283 registered regression programs pass**. The [final hidden/muted map fixture](evidence/native-2026-10-02-objective-map-final/report.json) completes **101 assertions and one completion**, and the [normal escape route](evidence/native-2026-10-02-objective-map-normal/report.json) completes **63 assertions and one round**. Both record zero script/runtime failures; **16/13 engine errors and strict failed verdicts remain**. Earlier compile, Canvas-parent and asynchronous-close fixture failures are retained.
|
||||
|
||||
Read-only private-window captures show the standard question/radio glyphs, reopened marker and long-warning text at the small Workbench viewport. Shared-map checks establish widget geometry/lifecycle only: its disabled render target does not appear in screenshots, and physical held-map capture remains unverified. [Review, raw captures and preservation](evidence/objective-map-2026-10-02/summary.json).
|
||||
|
||||
Source contains **407 authored files**. The existing owner-fixes playtest is unchanged and predates this increment. Original missions and inherited work are preserved; nothing was committed or published. Human play, manual map interaction, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — development package refreshed with controller ownership fixes:** the [separate owner-fixes handoff](../.build/playtest-2026-10-02-owner-fixes/README.md) now includes the tested observer/rebinding and chat-menu cleanup corrections alongside the earlier ground-depot/guide features. **403 authored files, 346 exact PAK payloads and three runtime files** match editable source. [Artifact hashes](evidence/package-2026-10-02-owner-fixes/handoff.json).
|
||||
|
||||
The unchanged source retains its **280-program regression pass** and **63-assertion normal escape**. [Fresh ordinary startup of the exact package](evidence/packed-2026-10-02-owner-fixes/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**. The earlier route retains thirteen installed-resource errors.
|
||||
|
||||
All native work stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, 61 inherited unstaged paths and the previous 412-file candidate are preserved. No production code changed for this packaging increment. A separate authored map-overlay proposal is not included. Human play, real multiplayer, native controller replacement, physical logistics, comparative FPS and clean release remain unfinished. [Independent review and preservation](evidence/playtest-refresh-2026-10-02-owner-fixes/review.json).
|
||||
|
||||
**2 October 2026 — old chat callbacks preserve the current administration menu:** a retained former local controller now removes only its own chat listener and timers; it cannot close a replacement controller's newly opened panel. Current-owner shutdown and mission-change cleanup remain intact. Independent actual-method tests compile and reproduce the old failure, then pass with the ownership check; all **280 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted normal escape](evidence/native-2026-10-02-chat-ownership/report.json) completes **63 assertions and one round**, with zero script/runtime failures, thirteen retained installed-resource errors, confirmed cleanup and unchanged source/external inputs. This is compilation and ordinary scripted-route evidence, not native controller-replacement or multiplayer qualification. [Review and preservation](evidence/chat-ownership-2026-10-02/review.json). Original missions, inherited changes and the existing 412-file playtest are unchanged; that package predates the observer and chat ownership fixes. Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — partial-clue loss recovery checked on current source:** the [hidden/muted fixed-site fixture](evidence/native-2026-10-02-partial-document-loss/report.json) passes **76 assertions and one completion**. After ordinary partial discovery and deliberate loss of all four targeted documents, distant, unauthorized and obstructed observations remain rejected; a clear close approach identifies the radio once and permits entry into radio defence without replacement clues. This uses the existing LegacySites test catalog, teleports, damage protection and direct mission interfaces, then explicitly ends the round. It does not prove generated-site coverage, held interactions, defence completion or a full escape.
|
||||
|
||||
Zero script/runtime failures, thirteen retained installed-resource errors and confirmed cleanup; source and external inputs remain unchanged. Three bounded parallel gameplay reviews found no demonstrated new defect. No production changes or package refresh were made; the previous 279-program pass covers identical addon source. Original missions, 61 inherited unstaged paths and the existing playtest are preserved. [Review and exact limitations](evidence/base-progression-review-2026-10-02/review.json). Human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — spectator callbacks respect local controller ownership:** a retained old controller can no longer restore its old body camera, close the current editor or create a new spectator view after replacement. It stops only its own monitor and releases its owned presentation state. The existing binder keeps watching for a replacement controller and starts its monitor once, retaining normal stop/end cleanup. Independent actual-method tests reproduce the old fault and verify the corrected behavior; all **279 registered regression programs pass**.
|
||||
|
||||
The [hidden/muted unconscious-camera run](evidence/native-2026-10-02-observer-ownership/report.json) completes **27 assertions and one round**, preserving ordinary unconsciousness, both spectator views, tracking, pose-gap fallback, healing and repeated knockout. It records zero script/runtime failures and thirteen retained installed-resource errors, with confirmed cleanup and unchanged inputs. The first attempt used the wrong Chat fixture selector and failed because the general smoke also ran; that evidence is retained, and the runner now refuses that selector combination before native setup. This is normal camera integration evidence; native controller replacement and real multiplayer remain unverified. [Review and exact limits](evidence/observer-ownership-2026-10-02/review.json).
|
||||
|
||||
Playtest instructions now open the actual combined Core project and point to the latest retained build. Original missions and inherited changes are preserved. The existing 412-file packaged candidate is unchanged and does not yet contain this observer fix. Human play, multiplayer, physical logistics, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — updated development playtest and objective-hint ownership fix:** the [separate ground-depot/guide handoff](../.build/playtest-2026-10-02-ground-depot-guide/README.md) now includes recent finite camp loading, zero-stock engineer resupply, HQ count optimization and a correction preventing a retained old controller from displaying hints after local ownership changes. It contains **403 authored files, 346 exact PAK payloads and three runtime files**, with matching editable source. [Artifact hashes and strict limits](evidence/package-2026-10-02-ground-depot-guide/handoff.json).
|
||||
|
||||
All **277 registered regression programs pass**; the guide regression independently fails on the old code and passes with the fix. The [fresh source-matched normal escape](evidence/native-2026-10-02-ground-depot-guide/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-02-ground-depot-guide/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Strict packaging/startup failures remain; this is **not a qualified release**.
|
||||
|
||||
A bounded admission/reconnect source audit found no demonstrated additional bug. [Guide fix and exact validation scope](evidence/guide-controller-2026-10-02/review.json). Native controller replacement, human play, real multiplayer, physical logistics, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted and cleaned up; original missions, 61 inherited unstaged paths and the prior 409-file candidate are preserved. Nothing was committed or published. [Preservation and build review](evidence/playtest-refresh-2026-10-02-ground-depot-guide/review.json).
|
||||
|
||||
**2 October 2026 — finite camp-to-truck ammunition loading:** HQ can assign one available original camp responder to carry one exact original cache magazine to a nearby original ammunition truck after delivered radio orders. Recorded finite magazine expenditure gates admission; separate pickup/delivery proof, unchanged rounds, original identities and bounded reservations prevent refill or replay. Existing tactical/logistics work retains priority. [Behavior and limits](ground-depot-loading.md).
|
||||
|
||||
The full **277-program regression suite passed** before native compilation. The first native run exposed getter formatting and a helper-name conflict; its [failed evidence](evidence/native-2026-10-02-ground-depot-compile/report.json) is retained. After those behavior-preserving corrections, all four relevant programs passed again. The [corrected hidden/muted normal route](evidence/native-2026-10-02-ground-depot-integration/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged source/external inputs are confirmed. This qualifies compilation and normal-loop integration only. [Independent review, mutation evidence and preservation](evidence/ground-depot-loading-2026-10-02/review.json). The existing playtest package predates this feature. Original missions, inherited changes and that package remain preserved. Physical loading, human play, real multiplayer, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — HQ planning removes repeated force counts:** the final pursuit selection pass now counts global commitments once after cleanup/retasking/investigation and increments only for a newly queued order. Separate hunting/global limits, orders and reservations are preserved. A controlled 64-belief/128-unit no-dispatch regression reduces the repeated count scans from over 10,000 unit visits to 128; this measures that subpass only, **not FPS**.
|
||||
|
||||
All **273 registered regression programs pass**. Independent review includes a compiled failing increment-removal mutation and 360 before/after order, reservation and cooldown comparisons. The [hidden/muted frozen-source normal escape](evidence/native-2026-10-02-hq-planner-budget/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. Cleanup and unchanged inputs are confirmed. [Scope and preservation](evidence/hq-planner-budget-2026-10-02/review.json). Existing missions, inherited changes and the prior packaged playtest remain preserved; human play, real multiplayer, physical logistics, measured performance and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — finite replacement for empty designated engineers:** HQ can now dispatch one existing convoy PMN4 to an original engineer whose startup designation and settled grant are recorded, using fresh complete delivered zero-stock reports. Unknown inventory does not count as empty; the same original actor and zero/one mode stay fixed through retries. Shared finite stock, spent items and unresolved cross-truck claims remain protected. No replacement mine is spawned and no mine-laying attempt is reset.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, with independent review and a compiled regression failure on the old planning method. The [hidden/muted frozen-source normal route](evidence/native-2026-10-02-zero-mine-integration/report.json) passes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation and normal-loop integration, **not physical mine delivery or placement**. The initial temporary-quota failure, verified recovery and [preservation evidence](evidence/zero-mine-resupply-2026-10-02/review.json) are retained. Existing missions, inherited work and the prior playtest package remain unchanged; the package predates this increment. Human play, real multiplayer, physical maintenance/resupply, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**2 October 2026 — casualty and terminal-lifecycle fixture corrected:** the old death check incorrectly expected an ordinary protected prisoner to die. The repaired editor-only fixture first verifies living unconsciousness, then explicitly forces fatal loss on its exact registered actor to check spent-life spectator selection, native camera and all-dead defeat. Ordinary game/server casualty protection is unchanged. The [native run](evidence/native-2026-10-02-protected-fatal-lifecycle/report.json) passes **38 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
All **272 registered regression programs pass across a resumed run**, including the actual hitzone damage cap and deferred processing. Earlier failed native attempts and validation environment failures are preserved; the historical premature Workbench reload was not reproduced and remains unexplained. Tests stayed hidden/muted with confirmed cleanup. Original missions, all inherited working changes and the existing playtest package are preserved. [Repair, independent review and exact limits](evidence/death-fixture-repair-2026-10-02/review.json). Human play, real multiplayer, physical maintenance/mine operations, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — automatic local restart and readmission verified:** the current combined source completes two distinct scripted Everon escape rounds: first victory/results, inherited native world restart, fresh prisoner preload/admission, then the full second route and victory. The [sealed native archive](evidence/native-2026-10-01-two-round-restart/report.json) records **126 assertions, two completions, zero script/runtime failures and thirteen retained installed-resource errors**. An independent raw-log review confirms separate world instances rather than duplicate completion markers. [Sequence and preservation](evidence/native-2026-10-01-two-round-restart/review.json).
|
||||
|
||||
All 400 authored files match the existing convoy-stock candidate. Hidden/muted execution and cleanup are confirmed; original missions, inherited changes and the candidate are unchanged. This qualifies local automatic restart/readmission only: human play, death/spectators, exhaustive cleanup, real multiplayer, comparative FPS and clean release remain pending. No production code changed for this check.
|
||||
|
||||
**1 October 2026 — refreshed development playtest candidate:** the [separate convoy-stock handoff](../.build/playtest-2026-10-01-convoy-stock/README.md) packages the current combined successor: **400 authored files, 343 exact PAK payloads and three runtime files**, with matching editable source. It includes the recent finite mine systems and loaded-truck inventory correction. [Artifact hashes and packaging limits](evidence/package-2026-10-01-convoy-stock/handoff.json).
|
||||
|
||||
A [fresh normal Everon route](evidence/native-2026-10-01-convoy-stock/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Ordinary startup of the exact package](evidence/packed-2026-10-01-convoy-stock/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. The existing 271-regression pass and 202-assertion mine-stock result match this unchanged source. Strict packaging/startup failure verdicts are retained; this is **not a qualified release**.
|
||||
|
||||
Radio-document recovery and restart cleanup audits found no demonstrated new bug; one stale historical fixture heading was corrected. The unexplained death/restart Workbench reload was not rerun or worked around. Full human escape, real multiplayer, mine transfer/placement, maintenance/mounted interactions, comparative FPS and clean release remain unfinished. All native sessions stayed hidden/muted with confirmed cleanup. Original missions, 61 inherited unstaged paths and prior candidates are unchanged; nothing was committed or published. [Review](evidence/playtest-refresh-2026-10-01-convoy-stock/review.json).
|
||||
|
||||
**1 October 2026 — loaded convoy sampling fixed; physical mine stock observed:** native diagnostics identified deposited cargo exhausting the mounted sampler's shared 128-node queue. Separate structural/cargo budgets now preserve bounded inspection without misreporting cargo as mounted weapons. All **271 registered regression programs pass**, including failing-before/passing-after cases and independent mutations of every budget guard. [Fix and preservation](evidence/mounted-traversal-2026-10-01/review.json).
|
||||
|
||||
The [corrected hidden/muted native run](evidence/native-2026-10-01-mounted-traversal-fixed/report.json) completes **202 assertions and one fixture round**, with zero script/runtime failures and thirteen retained installed-resource errors. One original automatic convoy contains **two callback-proved inactive PMN4s**, whose exact identities and physical custody remain unchanged through real mounted-ammunition radio delivery; 64 primary cargo callbacks also remain settled and unchanged. The earlier diagnosed failure remains archived. Both sessions have confirmed cleanup and unchanged inputs.
|
||||
|
||||
This establishes initial mine stock in one convoy, **not walking resupply, mine transfer or placement**. The prior field-update package is unchanged. Original missions and all 61 inherited unstaged paths are preserved; no commit or publication was made. Full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished.
|
||||
|
||||
**1 October 2026 — bounded convoy mine-stock check:** the new optional read-only fixture preserves the original convoy/batch and checks exact PMN4 callback identities and physical custody around normal radio delivery. All **271 registered regression programs pass** (counted from the current runner). Independent negative controls reject empty stock and missing callback proof. [Review and preservation](evidence/convoy-mine-native-2026-10-01/review.json).
|
||||
|
||||
The single [hidden/muted native run](evidence/native-2026-10-01-convoy-mine-stock/report.json) compiles and passes **39 assertions**, then fails the existing ammunition-truck mounted snapshot completeness check **before the mine assertions**. Two test failures and thirteen underlying installed-resource errors remain recorded. **Native mine insertion and transfer are still unverified.** Source and external inputs are unchanged, cleanup is confirmed, and no second native attempt was made.
|
||||
|
||||
RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared dependencies. A separate installed-catalog/equipment audit found no reproduced automatic-equipment mine duplication defect. Original missions, inherited working changes and the packaged candidate are preserved. Human play, multiplayer, physical maintenance/mounted/mine interactions, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — finite mine top-up integration:** HQ can now authorize one original truck PMN4 for an original carrier with exactly one usable mine, using fresh delivered status and the existing radio/rendezvous controller. Infantry and mounted ammunition retain priority. Startup grants must settle first; uncertain moves retain both claims so another truck cannot duplicate a late delivery. [Behavior and limits](infantry-resupply.md#finite-mine-top-ups-1-october-2026).
|
||||
|
||||
All **268 regression programs pass**. Independent mutation controls demonstrate the startup, one-mine entitlement and cross-truck quarantine guards. The [hidden/muted native normal route from frozen source](evidence/native-2026-10-01-mine-resupply-frozen/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This qualifies compilation/base-loop integration only; actual mine approach/transfer remains unverified. [Review and preserved inputs](evidence/mine-resupply-2026-10-01/review.json).
|
||||
|
||||
Original missions and the existing packaged candidate are preserved. Concurrent automatic-equipment edits are retained; the first native run was invalidated by source changes, so the repeated check used a frozen combined-source copy. Its evidence does not silently qualify later source edits. No extra mine grant, stock refill or placement reset was added. Depleted-zero resupply, repeated placement, full human escape, true multiplayer, maintenance/mounted interactions, comparative FPS and clean release remain unfinished; the field-update package predates this source change.
|
||||
|
||||
**1 October 2026 — finite optional convoy mine cargo:** each original ammunition truck now attempts up to two PMN4s once, after its primary weapons and ammunition have settled. Separate callbacks keep ordinary stock initialization independent. Exact initial mine identities are frozen with ownership/custody checks; failures, late callbacks and looting never refill the truck. [Behavior and remaining delivery work](supply-convoys.md#optional-finite-mine-cargo-1-october-2026).
|
||||
|
||||
All **265 regression programs pass**, including independent review and a failing mutation that attempts to adopt preexisting stock. The [hidden/muted native normal route](evidence/native-2026-10-01-mine-stock/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This proves base-loop integration, not physical mine insertion or delivery. [Evidence and preservation](evidence/convoy-mine-stock-2026-10-01/review.json).
|
||||
|
||||
No original mission or inherited working change was altered. The existing field-update package is preserved and predates this source addition. A separate radio-to-extraction eligibility audit found no reproduced progression bug. Human escape, real multiplayer, physical maintenance/mounted/mine interactions, comparative FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — carried mine capability reaches HQ:** formation status now carries independent, bounded counts of exact inactive PMN4s from the original owned roster. Unknown inventory/custody stays unknown. Counts and completeness travel through the normal radio route, remain detached in delivered history and appear in the private HQ status journal. Mine scarcity alone creates no extra urgent call, task or replacement stock. [Behavior and scope](hq-ammunition.md#carried-mine-reports-1-october-2026).
|
||||
|
||||
All **264 regression programs pass**, including actual inventory/snapshot methods, interrupted/stale delivery and no-extra-urgency checks. The [native normal route](evidence/native-2026-10-01-mine-status/report.json) compiles and completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is base-loop integration evidence; native mine reporting/placement, replenishment and multiplayer remain unqualified. [Independent review, regression evidence and preservation](evidence/carried-mine-status-2026-10-01/review.json).
|
||||
|
||||
The native run waited for another private test's lock, then stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, unrelated working changes and the packaged field-update candidate are preserved; that package predates this addition. The prior death/restart reload remains unexplained after comparison with exact historical source; no workaround was applied. Full human escape, multiplayer, maintenance/mounted interactions, FPS and clean release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — terminal cargo loss releases convoy holds:** a submitted mounted pickup now settles uncertainty when its exact incoming entity is deleted. A swap requires both original exchange entities to be deleted; damage, capture or one surviving item retain quarantine. Stock stays spent and matching holds can release for later requests using surviving original cargo. [Fix, independent review and preservation](evidence/mounted-terminal-loss-2026-10-01/review.json).
|
||||
|
||||
All **263 regression programs pass**, including failing-before/passing-after actual-method checks. The [integrated normal escape route](evidence/native-2026-10-01-supply-loss/report.json) completes **63 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. This verifies compilation and base-loop integration, not physical mounted rearming or terminal deletion.
|
||||
|
||||
A separate pre-fix [death/restart check](evidence/native-2026-10-01-player-death-timeout/review.json) timed out after 30 setup assertions: Workbench reloaded before death/spectator checks, for an unknown reason. Neither death nor restart is qualified by that run. Both sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the packaged field-update candidate remain preserved; the package predates this correction. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — bounded maintenance follow-up:** one hidden/muted run of the unchanged field-update source passes **60 assertions**, including original-can pickup and held equip, then loses the exact-held support-station condition after the fixture's scripted approach. It stops before tank depletion or refuel action; **fuel transfer remains unverified**. Two diagnostic failures and thirteen underlying installed-resource errors are retained, with confirmed cleanup and unchanged inputs. No guard was relaxed and no second attempt was made. [Result and preservation](evidence/native-2026-10-01-refuel-snapshot/review.json).
|
||||
|
||||
Three parallel bounded reviews of HQ memory, base progression and owned-AI settings/equipment found no demonstrated new defect; ten focused regression programs passed. The verified development candidate below remains unchanged. Human play, real multiplayer, maintenance/mine/mounted interactions, FPS and clean release qualification remain outstanding.
|
||||
|
||||
**1 October 2026 — field-update playtest candidate:** the [new separate handoff](../.build/playtest-2026-10-01-field-update/README.md) packages recovered mine warnings, recent HQ pursuit/cooldown corrections and consistent Stinger Random commands: **392 authored files, 336 exact PAK payloads and three runtime files**, with matching editable source. All **263 regression programs pass**. The [exact-source normal route](evidence/native-2026-10-01-field-update/report.json) completes **63 assertions and one round** through extraction/results, with zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-field-update/archive-review.json) verifies the normal mission and local prisoner, with zero script/runtime failures and seventeen retained installed-resource errors. Native packaging retains its strict failed verdict despite exact output and exit zero. All sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Existing missions, prior working changes and previous candidates remain preserved; nothing was published.
|
||||
|
||||
The legacy `hq stinger` alias now accepts/displays Random through the shared parser without rerolling existing equipment. The optional refuel fixture's corrected range reaches the native context, then fails before transfer on its node snapshot. Subsequent snapshot bounds/detachment is regression-tested and compiled by the normal route; **fuel transfer remains unverified**. [Fixes, initial test failure, native failure and review](evidence/field-update-2026-10-01/review.json). Human play, real multiplayer, maintenance/mine/mounted interactions, comparative FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — HQ can replace unavailable pursuit squads:** losing the only assigned squad no longer leaves its abandoned long-distance order blocking other available forces for up to 13 minutes. HQ releases that work, retains surviving active/pending orders and recomputes the hunt's delay. Completed-search quiet intervals remain remembered across later losses, replacement orders and either cleanup order; capacity trims and already shorter holds are preserved. No force or player observation is created.
|
||||
|
||||
Actual-method regressions reproduce the original bug and review-found expiry/order boundaries; all **263 regression programs pass**. The [integrated normal route](evidence/native-2026-10-01-hq-force-loss/report.json) compiles and completes **63 assertions and one escape round**, with zero script/runtime failures and thirteen retained installed-resource errors. This is normal-loop integration evidence, not native qualification of force-loss replacement. [Changes, independent review and preservation](evidence/hq-force-loss-2026-10-01/review.json).
|
||||
|
||||
The separate [bounded refuel run](evidence/native-2026-10-01-refuel-clock/review.json) now confirms original-can pickup, callback/slot custody and held equip, then times out before any refuel action. Its optional reach check is stricter than the inspected native interaction-retention logic; ordinary refuelling failure is **not** demonstrated. Fuel transfer, repair, human play, multiplayer, mounted rearming, comparative FPS and release qualification remain pending. Both native sessions stayed hidden/muted with confirmed cleanup and unchanged inputs. Original missions, prior working changes and the existing packaged candidate are preserved.
|
||||
|
||||
**1 October 2026 — optional refuel diagnostic corrected:** RHS: Status Quo, WCS Armaments and WCS BMP-1 remain declared external dependencies. The corrected native action-context fixture compiles, but its [one hidden/muted run](evidence/native-2026-10-01-refuel-context/report.json) stops after 54 passing assertions at its first clock check, before fuel selection or transfer. It retains two script test failures and thirteen underlying installed-resource errors, with confirmed cleanup and unchanged inputs.
|
||||
|
||||
The fixture had reconstructed its start time by adding/subtracting 120000 milliseconds; float rounding could put that value after the current tick. It now stores the original start directly. Actual clock initialization fails before the fix and passes afterward across fractional timestamps. All **263 regression programs pass**. The timestamp fix has not been rerun natively; refuelling, interruption/depletion and repair consumption remain unverified. The fixture is opt-in and does not change ordinary gameplay. Original missions, existing working changes and the packaged handoff are preserved. [Evidence and scope](evidence/refuel-context-2026-10-01/review.json).
|
||||
|
||||
**1 October 2026 — recovered mine warnings:** successful engineer arming can seal a historical 500 m mine warning into the same generic intel folder already carried when that job began. Recovering that exact document adds a persistent warning alongside its existing site clue; objective documents and normal spending remain unchanged. Unknown records stay server-local, and recovery never refreshes live mine or soldier positions. The service is bounded to 32 records and 128 folder bindings. [Behavior and limits](road-interception.md#recovered-mine-warnings).
|
||||
|
||||
All **262 regression programs pass**, including actual sealing/recovery, caps, marker lifecycle and controller/discovery integration methods. Review caught and corrected contradictory exhausted-intel feedback and marker cleanup after list shrinkage. The [integrated normal route](evidence/native-2026-10-01-mine-intel/report.json) compiles and completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. That route does **not** execute physical mine/intel interactions or qualify warning rendering/remote replication. [Review and preservation evidence](evidence/mine-intel-2026-10-01/review.json).
|
||||
|
||||
The run remained hidden and muted, with confirmed cleanup and unchanged inputs. Existing missions and the last packaged handoff are preserved; that package predates this source addition. Human play, multiplayer, physical mine placement/arming, mounted rearming, comparative FPS and release packaging remain unfinished.
|
||||
|
||||
|
||||
**1 October 2026 — refreshed dependency-enabled playtest:** the [new separate candidate](../.build/playtest-2026-10-01-dependency-review/README.md) includes Southern maintenance supplies, HQ reservation/cooldown corrections and finite engineer mines: **388 authored files, 332 exact PAK payloads and three runtime files**, with matching source. RHS, WCS and BMP remain declared dependencies.
|
||||
|
||||
Independent reviews fixed observed foreign mine custody being reaccepted after a nearby redrop, and redundant intel folders flooding global chat. Both have failing-before/passing-after actual-method regressions. All **260 regression programs pass**. The [fresh normal route](evidence/native-2026-10-01-dependency-review/report.json) completes **63 assertions through extraction/results**, with zero script/runtime failures and thirteen retained installed-resource errors. [Review and preservation checks](evidence/dependency-review-2026-10-01/review.json).
|
||||
|
||||
[Ordinary packaged startup](evidence/packed-2026-10-01-dependency-review/archive-review.json) verifies the mission and local prisoner, with zero script/runtime failures and seventeen unchanged installed-resource errors. Native packaging retains its strict failure despite matching output and exit zero. An initial native-tool crash produced no package; [its evidence](evidence/package-2026-10-01-dependency-review-failed/review.json) is retained alongside the fresh retry. All native checks stayed hidden/muted with confirmed cleanup and unchanged inputs. Physical mine placement/arming, mounted rearming, human escape, multiplayer, FPS improvement and release qualification remain unfinished. Previous handoffs and original missions are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — finite engineer mine behavior integrated:** an existing squad
|
||||
holding a delivered HQ road-interception order can use one original carried PMN4.
|
||||
The engineer approaches, prepares for ten continuous seconds, submits one tracked
|
||||
inventory drop and withdraws before guarded native pressure arming. Original
|
||||
actor/task/item ownership, combat cancellation, friendly clearance and retained
|
||||
late callbacks are enforced. HQ permits two simultaneous jobs, 32 retained jobs
|
||||
per round and one new road-site query per tick. No mines or forces are created.
|
||||
[Behavior and limits](road-interception.md#finite-engineer-mines--1-october-2026).
|
||||
|
||||
All **260 repository regression programs pass**. The [final integrated normal route](evidence/native-2026-10-01-engineer-mines-final/report.json)
|
||||
compiles and completes **63 scripted assertions through extraction/results** with
|
||||
zero script/runtime failures and thirteen retained installed-resource errors.
|
||||
**Physical engineer placement/arming and multiplayer are not yet demonstrated**;
|
||||
this route proves base-gameplay integration, not that interaction. Both native
|
||||
runs stayed hidden and muted with confirmed cleanup and unchanged inputs. Original
|
||||
missions, 53 prior unstaged paths and the existing packaged handoff remain preserved.
|
||||
[Independent review and exact evidence](evidence/engineer-mines-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — interrupted HQ orders release their unused delay:** failed or
|
||||
expired radio retasks no longer prolong pursuit cooldowns using an order that
|
||||
never arrived. Active and pending surviving orders keep their own deadlines and
|
||||
waypoints. Two actual-method regressions fail before the correction; all **257
|
||||
repository programs pass** afterward. The [current-source normal escape route](evidence/native-2026-10-01-hq-lost-retask-route/report.json)
|
||||
completes **63 assertions through extraction/results**, with zero script/runtime
|
||||
failures and thirteen retained installed-resource errors.
|
||||
|
||||
The separate [HQ awareness check](evidence/native-2026-10-01-hq-lost-retask/report.json)
|
||||
compiles and passes 53 assertions, then times out waiting to queue its completed-sweep
|
||||
fixture report; that failed qualification is retained. Both runs stayed hidden and
|
||||
muted, with confirmed cleanup and unchanged inputs. The original missions and
|
||||
existing packaged handoff remain unchanged. [Fix, review and limits](evidence/hq-lost-retask-2026-10-01/review.json).
|
||||
|
||||
|
||||
**1 October 2026 — bounded maintenance test retained as a failure:** the optional
|
||||
fuel-transfer fixture did not compile because the installed fuel manager has no
|
||||
`GetOwner` method. It executed no gameplay assertions. The entire experimental
|
||||
fixture and integration were removed, restoring the earlier playable source;
|
||||
existing finite maintenance stock and HQ retasking remain unchanged. Native fuel
|
||||
transfer and repair consumption remain unverified. The failed launch and its
|
||||
source snapshot are [retained](evidence/native-2026-10-01-maintenance-refuel/report.json).
|
||||
All 257 repository checks pass again after restoration. No additional native
|
||||
retry was made; the private muted runtime was cleaned up.
|
||||
|
||||
|
||||
**1 October 2026 — live maintenance supplies and safer HQ retasking:** the Southern cache now carries **one finite repair kit (20 supplies) and two fuel cans (five litres each)** alongside its existing weapons and radio documents. The hidden/muted [normal route](evidence/native-2026-10-01-southern-maintenance/report.json) verifies the exact original stock and completes **63 assertions through extraction/results**. Held repair/refuel consumption remains unverified. [Player behavior and scope](vehicle-maintenance.md).
|
||||
|
||||
HQ now reserves a squad's active destination and pending replacement together, preventing another search from taking the old cell while a radio retask is in transit. It retains the active approach bearing during retask admission and still counts each squad once. The bug and a review-found bearing gap both have red-before/green-after actual-method evidence. All **257 repository regression programs pass**. The [integrated-source native awareness/radio run](evidence/native-2026-10-01-hq-dual-reservations/report.json) completes **77 assertions**; only the two HQ files differ from the earlier maintenance-route snapshot. Both runs have zero script/runtime failures and thirteen retained installed-resource errors, confirmed cleanup and unchanged inputs. [Implementation, review and limits](evidence/maintenance-hq-2026-10-01/review.json).
|
||||
|
||||
The packaged candidate below remains unchanged and predates these source improvements. Original reference files and all previous working changes are preserved. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — integrated playtest handoff refreshed:** the [new isolated candidate](../.build/playtest-2026-10-01-base-integrated/README.md) now includes the recent admission, HQ evidence, finite-stock and mounted courier changes: **384 authored files, 329 exact PAK payloads and three runtime files** with matching editable source. All **256 regression programs pass**. Its unchanged addon source exactly matches the retained [55-assertion normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json); no redundant route run was needed. [Artifact hashes and scope](evidence/package-2026-10-01-base-integrated/handoff.json).
|
||||
|
||||
A fresh [ordinary packed startup](evidence/packed-2026-10-01-base-integrated/archive-review.json) verifies normal modules, exact dependency mounts, mission readiness and a local prisoner with zero script/runtime failures. Its seventeen installed-resource errors match the preceding handoff and retain strict failure. Native packaging also retains localization/shutdown and completion-semantics failures despite exit 0 and matching output. All runs stayed hidden/muted with confirmed cleanup and unchanged inputs. The player guide now names the precise gate and vehicle actions. **Mounted physical rearming, full human escape, multiplayer, FPS improvement and release qualification remain unfinished.** Previous packages, the original reference workspace and pre-existing working changes are preserved.
|
||||
|
||||
|
||||
**1 October 2026 — mounted courier integration:** finite mounted resupply is now connected to the existing HQ planner and original convoy stock, with shared infantry reservations, radio-delivered holds, one original non-driver courier, bounded pickup/swap/reboarding and retained uncertain operations. The 256-program regression suite passes; final changed-method checks also pass. The [normal generated escape route](evidence/native-2026-10-01-mounted-courier-normal-route/report.json) completes **55 assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. **Physical mounted rearming is not yet demonstrated:** one native trip failed at pickup, another timed out approaching cargo; both journals record original-seat return and hold release. All failures, compiler fixes, source/dependency invariance and cleanup are retained in the [review](evidence/mounted-courier-2026-10-01/review.json). Existing missions and packaged handoffs remain unchanged. [Behavior and remaining work](hq-ammunition.md#mounted-courier-integration-1-october-2026).
|
||||
|
||||
Current source now uses one combined addon. Open `addons/core/addon.gproj` and
|
||||
`Missions/ERR_Everon.conf`; see [single-mod migration](single-mod.md). The older
|
||||
five-addon checkpoints below retain their original scope and do not qualify the
|
||||
merged source.
|
||||
**1 October 2026 — admission timeout and physical HQ evidence:** a delayed preload can no longer bypass the server's admission deadline. HQ rejects stale containment after radio transit, plans only from valid movement headings, reports exact original vehicle positions, and requires an original soldier physically present before reporting a negative search. **251 regression programs pass**. The hidden/muted [normal generated escape route](evidence/native-2026-10-01-mission-hq-fixes/report.json) completes **55 assertions and one round** with zero script/runtime failures; thirteen installed-resource errors retain strict failure. Source/dependency invariance and cleanup are confirmed. A reviewed mounted-transfer second-leg proposal is retained but remains unapplied until the physical courier/HQ coordinator exists. [Changes, evidence and limits](mission-hq-fixes-2026-10-01.md). Existing missions and packaged handoffs remain untouched.
|
||||
|
||||
**1 October 2026 — finite mounted stock and native eligibility:** convoy startup now requests a small, once-only stock matching exact originally installed mounted magazines, after the existing infantry cargo priority. Original identity, callback settlement and physical headroom checks prevent delayed replacement seeding or extra overbooking. Independent review caught and fixed the late-original-callback case. **250 regression programs pass**. The [hidden/muted native run](evidence/native-2026-10-01-mounted-initial-stock/report.json) completes **34 assertions and one round**, finds a real compatible PKM box and gets a successful read-only swap-eligibility result with both slots unchanged. No worker is on foot at the required location and no transfer occurs. Zero script/runtime failures; thirteen installed-resource errors retain strict failure. Cleanup and unchanged source/dependency inputs are confirmed. [Implementation and limits](supply-convoys.md#finite-initial-mounted-stock-1-october-2026). The packaged candidate remains unchanged; mounted physical rearming, multiplayer and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native mounted delivery and cheaper refused convoy startup:** the [production mounted-report fixture](evidence/native-2026-10-01-mounted-delivery/report.json) now completes **56 assertions and one round**, proving original six-root ownership, cargo exclusion and a detached matching snapshot delivered through the real radio path. UAZs report one installed gun each; BMP counts remain explicitly incomplete. One convoy deployed, not the configured three. Zero script/runtime failures and thirteen installed-resource errors are retained.
|
||||
|
||||
New-convoy startup now skips terrain surveys when its source cannot fit the shared body allowance, while reusing already reserved original receipts correctly. **249 regression programs pass**, including actual pool/startup red-before/green-after evidence; no measured FPS gain is claimed. A separate [read-only mounted-slot probe](evidence/native-2026-10-01-mounted-swap-unavailable/report.json) verifies the original PKM loaded slot, muzzle and storage owner, then stops because no eligible compatible cargo candidate is found. It retains 32 passing assertions, two fixture failures and thirteen installed-resource errors; **CanSwap was not called and no transfer occurred**. Final completion wording now keeps eligibility separate from radio proof; its post-run change has executable focused regression evidence. [Review and scope](evidence/mounted-budget-2026-10-01/review.json).
|
||||
|
||||
Both native runs were hidden/muted and confirm cleanup plus unchanged source/external inputs. All 52 pre-existing unstaged file contents are retained apart from explicit test/runner additions; 533 reference sources and previous packages remain unchanged. Physical mounted rearming, manual escape, multiplayer, full-fleet reliability, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — consistent fire-support memory and finite logistics ownership:** a reproduced bug allowed fire-support contacts to infer 30 m/s on-foot motion that HQ memory rejected. Contacts now use the same accepted delivered history as pursuit, retain the original time/position, and leave radio reports unchanged. Infantry transfer now consumes a shared finite-magazine reservation; mounted sampling consumes a read-only original-root query while preserving permanent loss/capture observation. These are physical-rearming prerequisites, not mounted rearming. [Behavior and regression review](evidence/hq-contact-reservations-2026-10-01/review.json).
|
||||
|
||||
All **247 repository regression programs pass**. The hidden/muted [native awareness run](evidence/native-2026-10-01-hq-contact-memory/report.json) completes **61 scripted assertions and one round**, with zero script/runtime failures and thirteen retained installed-resource errors. It verifies compilation and the existing physical radio/memory path; the new movement edge cases have actual-method regression evidence. Cleanup, source/external invariance, all 52 pre-existing unstaged file contents (apart from the added test registration), and 533 reference sources are verified. The packaged alarm-memory handoff below remains unchanged and predates this source checkpoint. Manual play, multiplayer, mounted rearming, FPS and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — refreshed combined development handoff:** a [new isolated playtest build](../.build/playtest-2026-10-01-alarm-memory/README.md) now contains matching editable source and package for all recent memory, mounted-reporting and alarm fixes: **377 authored files, 322 exact PAK payloads and three runtime files**. Current source completes **55 normal-route scripted checks** through extraction/result display, with zero script/runtime failures and thirteen installed-resource errors. [Normal-route evidence](evidence/native-2026-10-01-normal-alarm-memory/report.json), [artifact hashes](evidence/package-2026-10-01-alarm-memory/handoff.json).
|
||||
|
||||
[Ordinary packed startup](evidence/packed-2026-10-01-alarm-memory/packed-startup-report.json) verifies the exact dependency mounts, normal modules, ready mission and local prisoner with zero script/runtime failures; the same seventeen installed-resource errors retain its strict failed verdict. Native packaging also retains its localization/shutdown failures despite exit 0 and complete hash-matched output. All native runs remain hidden/muted, with confirmed cleanup and unchanged inputs. The [playtest guide](playtest-build.md) now uses the combined addon and current scenario identity. All 246 regression programs pass for this unchanged source; independent resupply and object-lifetime reviews found no new defect. Existing handoffs, existing missions and all 533 reference sources remain unchanged. Manual play, multiplayer, mounted rearming, performance and release qualification remain unfinished.
|
||||
|
||||
**1 October 2026 — native alarm delivery and mounted low-stock check-ins:** an existing AI witness now demonstrably hears the native alarm event and sends its original-time, coarse anonymous report through the actual radio route into HQ memory. The hidden/muted controlled run completes **55 scripted assertions and one round**, with **zero script/runtime failures** and thirteen installed-resource errors. The earlier active-scene attempt exposed a real memory-ingestion lifetime crash; retaining the sanitized report through ingestion fixes that path, and its failed evidence remains archived. [Native result](evidence/native-2026-10-01-alarm-hearing-retained/report.json), [arrangement and limits](vehicle-security.md#native-alarm-delivery-and-memory-lifetime-correction).
|
||||
|
||||
Complete low mounted magazines can also request early status through the existing scan, shared cooldown and radio gate, without entering carried-ammunition totals or authorizing a refill. All **246 repository programs pass**; independent review found no additional demonstrated base-loop defect. [Mounted behavior and remaining rearming work](hq-ammunition.md#early-mounted-ammunition-check-ins-1-october-2026), [regression/review evidence](evidence/mounted-urgency-2026-10-01/review.json). Human breach input, audible and remote presentation, physical alarm investigation, mounted rearming, multiplayer and FPS remain unqualified. Existing packaged handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**1 October 2026 — conservative movement memory and bounded diagnostics:** HQ no longer infers a stationary/forward track by skipping a contradictory recent sighting. Mounted sampling normalizes exact native slot wrappers to their physical gun before counting it, and convoy startup reports the actual shared-body budget and refusal reason. All **246 repository programs pass**. The first alarm fixture incidentally records mounted UAZ magazines and a convoy refusal at **134/135 bodies, 25 required**; full mounted snapshot/radio proof is still outstanding. [Review and evidence](evidence/hq-followup-2026-10-01/review.json), [memory correction](hq-chronology-and-admission-2026-09-30.md#contradictory-recent-sightings), [mounted correction](hq-ammunition.md#native-slot-wrapper-deduplication-1-october-2026).
|
||||
|
||||
The current-source hidden/muted alarm diagnostic compiles, then correctly refuses emission because the relocated witness is **inactive at native LOD 10**, despite valid group, binding, distance and danger-event configuration. It passes 34 assertions and retains two fixture failures plus thirteen installed-resource errors. No event was emitted in that retry, so native hearing and radio delivery remain unqualified. Both attempts preserve failures, exact source/external inputs and confirmed cleanup. [Alarm fixture limits and next step](vehicle-security.md#native-alarm-hearing-fixture-1-october-2026). The latest packaged handoff below predates these changes and remains untouched; all 533 reference sources are unchanged. No multiplayer, FPS or release qualification is claimed.
|
||||
|
||||
**30 September 2026 — current-source handoff and installed-slot correction:** mounted weapons/magazines now use their exact native weapon-slot or muzzle ownership when ordinary inventory storage is unavailable. The same check protects structural seat admission, while retaining cargo exclusion, original crew/ledger checks and traversal bounds. All **245 repository programs pass**. An independent lifecycle/objective review found no demonstrated additional bug. [Implementation and remaining native scope](hq-ammunition.md#installed-weapon-slots-and-shared-structural-admission), [review record](evidence/installed-slot-2026-09-30/review.json).
|
||||
|
||||
The integrated source again completes **55 normal-route scripted assertions** through extraction/result display with zero script/runtime failures and thirteen installed-resource errors. A [fresh separate development handoff](../.build/playtest-2026-09-30-installed-slot/README.md) contains matching source and PAK: 376 authored files, 321 exact PAK payloads and three verified runtime files. [Ordinary packaged startup](evidence/packed-2026-09-30-installed-slot/packed-startup-report.json) verifies the normal mission and local prisoner, with zero script/runtime failures; seventeen installed-resource errors retain its strict failed verdict. [Native packaging](evidence/package-2026-09-30-installed-slot/package-report.json) also retains localization/shutdown failures despite native exit 0 and confirmed cleanup. All runs remain hidden/muted with unchanged inputs. The bounded mounted fixture still does **not** qualify installed counts or delivery: no production convoy appeared within its 180-second window. Native alarm hearing, mounted rearming, fleet reliability, manual play, multiplayer and measured FPS remain unfinished. Earlier handoffs and all 533 reference sources are unchanged.
|
||||
|
||||
**30 September 2026 — local alarm intelligence and structural vehicle sampling:** successful vehicle alarms now emit one tagged native horn event. Eligible nearby enemy witnesses retain the original observation time and send a coarse, targetless report through ordinary radio delivery. HQ sanitizes that evidence and can assign one existing mobile search group; it cannot turn an alarm into a tracked player, road interception or fire-support target. Native compilation succeeds; actual native hearing and remote delivery remain unqualified. All **245 repository programs pass**. [Alarm behavior](vehicle-security.md#local-alarm-evidence-for-hq-30-september-2026), [regression and review record](evidence/alarm-intelligence-2026-09-30/review.json).
|
||||
|
||||
Mounted vehicle eligibility now traverses structural seats without descending into soldiers' carried inventories or deposited cargo; exact original crew/ledger guards remain. The latest [production-fleet test](evidence/native-2026-09-30-mounted-structural/report.json) passes 48 assertions, including all six original roots and exclusion of eight actual cargo weapons, but fails to observe installed weapon magazines. It does not reach radio-delivery proof. Earlier compilation and production-fixture failures remain archived. Thirteen installed-resource errors and two final fixture failures remain explicit; hidden/muted cleanup and unchanged source/external inputs pass. No armed-count, three-convoy reliability, rearming, multiplayer or FPS qualification is claimed. Existing packaged handoffs remain unchanged.
|
||||
|
||||
**30 September 2026 — separate mounted-ammunition reports:** admitted convoy crews now report bounded original-vehicle ammunition snapshots through normal radio delivery, separate from carried infantry stock. Capture, foreign crew, lost roots or changed ledger ownership invalidate mounted sampling; deposited cargo is excluded. All 242 repository programs pass, with focused checks after the final diagnostic phase fix. [Behavior and remaining scope](hq-ammunition.md#mounted-convoy-reporting-30-september-2026), [regression/review evidence](evidence/mounted-ammunition-2026-09-30/review.json). Native compilation succeeds, but direct mounted sampling remains unproved: the [first convoy fixture](evidence/native-2026-09-30-mounted-initial/report.json) deadlocked waiting for HQ during prison; its checked escape transition is now fixed. The [second run](evidence/native-2026-09-30-mounted-ready/report.json) passes 33 assertions and road survey, then rejects canonical convoy dispatch before sampling. Both failures and the thirteen installed-resource errors are preserved; both confirm hidden/muted cleanup and unchanged inputs. Mounted rearming, real depletion/delivery, multiplayer and performance qualification remain unfinished. Existing packaged handoffs are unchanged.
|
||||
|
||||
**30 September 2026 — one-shot vehicle horn alarm:** successful UAZ lock breach now starts a replicated eight-second alarm with one owned audio handle. Duplicate state cannot replay it; expiry, destruction, mission inactivity and deletion clean up. Dedicated servers skip playback. All 240 repository programs pass, including final focused audio-query regressions. The hidden/muted native vehicle run completes **135 assertions**, observes the playing handle and fixed stop/no-replay behavior, and retains thirteen installed-resource errors with zero script/runtime failures. The earlier failed diagnostic interpretation is preserved. [Implementation, evidence and limits](vehicle-security.md). Audible/spatial presentation, remote clients and AI-hearing/radio integration remain unqualified or absent. The matching normal-route handoff below predates this alarm source change and remains untouched.
|
||||
|
||||
**30 September 2026 — normal generated-route checkpoint:** the ordinary Everon catalog now completes the scripted prison → physical clues → interrupted/resumed radio defence → helicopter extraction → victory/result-screen path, with **55 assertions and zero script/runtime failures**. The Southern optional UAZ passes its parking/readiness checks and starts locked; safe omission remains regression-tested. Generated sites were retained, unlike the older historical route fixture. Thirteen installed-resource errors still prevent strict qualification. Source/external hashes and hidden/muted cleanup are verified. [Native evidence](evidence/native-2026-09-30-normal-route/report.json), [transport scope](ground-transport.md). The earlier 236-program check and occupied-prefix refusal remain preserved. A [fresh matching development handoff](../.build/playtest-2026-09-30-normal-route/README.md) contains 373 authored files, 318 verified PAK payloads and three runtime files. [Ordinary packed startup](evidence/packed-2026-09-30-normal-route/packed-startup-report.json) verifies normal modules, mission readiness and a local prisoner with zero script/runtime failures; seventeen installed-resource errors retain its strict failure. The [packaging report](evidence/package-2026-09-30-normal-route/package-report.json) also retains localization, Steam stats and resource-leak errors despite native exit 0 and confirmed cleanup. Ordinary human escape, driving, multiplayer and FPS qualification remain pending; older handoffs below remain untouched.
|
||||
|
||||
**30 September 2026 — normal-route guidance and editable handoff:** in-game objectives and the [player guide](player-route.md) now match the prison backpack and normal Southern-cache/Field-hospital-1 clue route. The Western cache/locked UAZ is legacy-fixture content, not a normal starting option. A [verified updated source handoff](../.build/playtest-2026-09-30-source-update/README.md) contains the latest integrated changes; only the guidance strings differ from the last native escape snapshot, and focused feedback checks pass. Native packaging was deferred by its existing-game guard; the active user play session and older packages were left untouched. [Source hashes and refusal records](evidence/source-2026-09-30-guidance/handoff.json).
|
||||
|
||||
**30 September 2026 — empty-magazine return:** ground resupply can now return one exact unused compatible empty magazine to its original truck when inventory capacity blocks incoming ammunition. Separate callbacks and ownership proof guard both moves; failure or shutdown retains uncertain operations without retries. All 234 repository programs pass, and hidden/muted native compilation plus the 52-assertion scripted escape completes with zero script/runtime failures. The thirteen installed-resource errors remain; the empty-return branch itself still needs native validation. [Implementation, provenance and limits](empty-magazine-return.md). The [original feature ledger](original-feature-coverage.md) now distinguishes implemented systems from absent behavior and unfinished qualification. Existing packaged candidates remain unchanged.
|
||||
|
||||
**30 September 2026 — report chronology and retry ownership:** delayed negative reports about another target no longer overwrite newer positive sightings in a shared HQ search cell; old admission callbacks cannot consume a reconnected controller's retry budget; completed Intel reroll entries no longer consume native-work slots. All 234 repository programs pass. The focused hidden/muted HQ awareness run completes 61 scripted assertions with zero script/runtime failures; thirteen installed-resource errors remain. The separately failed legacy convoy/memory fixture is retained. [Changes, evidence and limits](hq-chronology-and-admission-2026-09-30.md). The packaged candidate remains the older snapshot.
|
||||
|
||||
**30 September 2026 — all-convoy infantry resupply:** HQ can now use every existing finite convoy's original ammo truck, up to the configured twenty, rather than only the first. Per-truck stock stays separate; shared report/cooldown history prevents cross-truck replay, and planning rotates donors with at most one new trip per five-second cadence. All 234 repository regression programs pass. A hidden/muted native run initializes three independent 56-magazine stocks and completes the 52-check scripted escape with zero script/runtime failures; the thirteen installed-resource errors remain. No actual multi-truck delivery was exercised. [Implementation and evidence](multiconvoy-resupply.md). The packaged development candidate below predates this source change and remains untouched.
|
||||
|
||||
**30 September 2026 — combined development candidate:** a fresh [single-addon handoff](../.build/playtest-2026-09-30-current/README.md) contains matching editable source and native PAK. The focused combined-mission escape fixture completes 52 assertions through victory and the result screen, with zero script/runtime failures. Ordinary packaged startup independently loads the exact ten engine/vanilla/owned/dependency mounts and verifies a local prisoner in the ready mission. Strict qualification still fails on installed-resource errors and the retained packaging verdict. [Evidence, scope and build details](combined-candidate-2026-09-30.md).
|
||||
|
||||
**30 September 2026 — earlier settings checkpoint:** the complete repository check now passes all 232 registered regression programs, including the settings-save recovery correction and full-route fixture budget. The subsequent route-selector and cleanup changes pass their focused regressions; the older 231-program, 191-program and 101-assertion results below are historical checkpoints, not acceptance for the current tree. [Latest fixes and preserved native attempts](mission-checkpoint-2026-09-30.md).
|
||||
|
||||
RHS Status Quo, WCS Armaments and WCS BMP-1 are current mission dependencies, alongside the separately authorized Parachute Framework and their supporting packs. Infantry resupply now waits for both real convoy cargo phases and captures faction-independent finite magazine identities. The hidden, muted infantry run compiled and captured 56 original magazines, but failed to select an eligible compatible patrol recipient before transfer. Cleanup and unchanged source/external inputs were confirmed. Thirteen existing resource/property/localization errors also remain. [Changes, failed evidence and remaining scope](resupply-fixes-2026-09-30.md).
|
||||
|
||||
The later empty-weapon ammunition fix now derives cargo from the native carried-weapon default when the last magazine has been removed, while preserving loaded variants and excluding auxiliary launcher rounds. Actual-method and neighboring policy regressions pass. The later radio fixture compiled the combined source and completed seven scripted assertions with zero script/runtime failures; native ammunition delivery remains unverified. Review confirmed that the earlier unavailable recipient was a fixture population limitation, not a demonstrated support-reservation defect.
|
||||
|
||||
A failed first settings save no longer leaves a rejected primary file that disables changes after restart; existing backups and runtime settings remain preserved. Two earlier combined route/administrator-stress attempts are retained as failures: the first reached interrupted radio defence before its old total deadline; the bounded retry completed the 129-actor, 100-percent intel reroll but exhausted the separate two-batch reroll budget. Neither completed extraction; the later route-only fixture does complete it without claiming the administrator stress passed. All runs used hidden/muted private profiles; the sealed attempts confirm unchanged source/external inputs and cleanup. The thirteen installed-resource errors remain explicit.
|
||||
|
||||
Use the updated [player route guide](player-route.md) for the single combined scenario. A full ordinary escape, multiplayer acceptance and an equivalent-workload FPS improvement are still unverified. Prison input automation and experimental AI helicopter flight remain paused. Existing September 29 medical, spectator, mortar and body-recovery work remains preserved in the working tree; no release or Workshop publication is implied.
|
||||
|
||||
**20 September 2026 — report-driven road interception:** HQ can now use fresh delivered movement history to select a forward point on an authored road and order an existing infantry group to hold it temporarily. The bounded selector respects reserved destinations, physical clearance and elevated-road geometry; old or weak evidence falls back to search. Existing radio delivery, force limits, home guards and absolute task expiry remain in charge. No barricades, vehicles, mines or new troops are created. [Implementation and scope](road-interception.md).
|
||||
|
||||
All repository checks pass. The [native113607 raw checkpoint](evidence/native-2026-09-20-113607-road-interception-raw/README.md) completes101 assertions/one round with zero script/runtime failures, including an actual Everon road selection and stale-belief refusal from arranged private-memory reports. Four external localization errors remain. A process-exit race prevented the runner's final cleanup seal; its failed verdict is retained. A later independent read-only check found the reported PID absent, the private prefix idle and source bytes unchanged. This is not infantry-arrival, natural-interception, multiplayer or FPS evidence. The [refreshed development handoff](../.build/playtest-2026-09-20-road-interception/README.md) now contains all five packages and matching editable source:261 authored files,222 exact PAK payload entries and15 verified runtime files. [Packed Core](evidence/packed-core-2026-09-20-road-interception/report.json) starts cleanly. [Full external startup](evidence/raw-packed-chat-external-2026-09-20-road-interception/README.md) verifies the13-addon paths, ordinary modules, mission header and local prisoner admission without script/runtime failures, but remains failed on four external localization errors appearing twice. Both packed runs confirm unchanged inputs and hidden/muted cleanup. [Build/handoff record](evidence/package-2026-09-20-road-interception/handoff.json). All533 reference sources are unchanged; previous handoffs remain intact. Native packaging shutdown failures, full human escape, multiplayer and FPS acceptance remain unqualified.
|
||||
|
||||
**20 September 2026 — nearby sighting handoff and resupply approach:** A squad without a usable own radio route can now pass its fresh visual report through an original member to a living friendly radio carrier within 100 m. Original source, position and timestamp remain intact; HQ learns only after radio delivery. Shared callers cannot overlap their originating calls, and interrupted or repeated sightings cannot bypass delivery. The [native checkpoint](evidence/native-2026-09-20-101306-local-handoff/report.json) completes one round/81 assertions without script/runtime failures: an arranged snapshot reaches HQ unchanged, while removing the second caller's radio prevents the next snapshot from arriving. The fixture deliberately removes radios and positions a witness after startup fitting settles; it is not natural perception or multiplayer proof. [Details and retained setup failure](hq-local-handoff.md). Four external localization errors remain, with source/external fingerprints and hidden/muted cleanup confirmed.
|
||||
|
||||
Resupply now waits through unsubmitted geometry/capacity failures instead of spending that magazine and aborting the trip. A submitted native attempt remains strictly once-only. Move/hold radii also no longer accept an approach five metres from the reported truck position. Actual-method regressions reproduce and fix both issues; full native walking rendezvous remains unproved. Full repository checks pass, with the final fixture adjustment covered by focused tests and native compilation/execution. All 533 reference sources remain unchanged. An updated editable source bundle is recorded [here](evidence/source-2026-09-20-handoff-resupply.json); packaged playtests remain older snapshots. Manual play, multiplayer, packaging and FPS qualification are still unfinished.
|
||||
|
||||
**20 September 2026 — native finite magazine transfer:** Before moving a magazine, infantry now need unobstructed physical reach to a root-owned authored truck storage context. The [native transfer checkpoint](evidence/native-2026-09-20-091854-infantry-transfer/report.json) completes one round and 43 assertions, with zero script/runtime failures: one original magazine moves from the automatic convoy's original ammo truck to an original patrol actor, preserving ammunition count and the force ledger. This fixture deliberately positions the recipient and waits for its native pose update; it does **not** prove autonomous rendezvous. Four installed external localization errors still prevent strict qualification. [Access and retained diagnostic failures](infantry-resupply-access.md). Actual-method tests cover obstructions, stock identity, report consumption, reservations, native submission and interrupted fixture cleanup. Source/external input fingerprints and hidden/muted cleanup are confirmed. Full walking resupply, multiplayer, FPS and refreshed packaging remain unfinished; existing handoffs are unchanged.
|
||||
|
||||
**20 September 2026 — automatic convoy and result feedback:** The full AI scenario now defaults to one automatic initial convoy after a 30-second startup grace and existing-force admission. Automatic and manual requests share the same finite receipt, with no automatic retry or replacement. `/esc hq convoy auto set 0|1` saves the next-round choice; old disabled convoy settings migrate correctly. [Startup details](convoy-startup.md). Original physical turret occupants receive scoped skill100, while other enemy crew retain at least80. The [native checkpoint](evidence/native-2026-09-20-081658-automatic-convoy/report.json) completes 93 assertions and one round, proving six automatic vehicles, 19 original seated crew, five turret specializations and duplicate-dispatch rejection, plus the existing HQ radio-memory tests. Zero script/runtime failures; four external localization errors remain. All repository checks pass, and 533 tracked reference sources remain unchanged. Hidden/muted cleanup and unchanged input fingerprints are confirmed. Defeat screens now refresh a late replicated end reason; callback/lifecycle tests pass, but real remote-client timing remains untested. Existing packaged handoffs remain older snapshots; native logistics, multiplayer and FPS qualification remain unfinished.
|
||||
|
||||
**20 September 2026 — finite nearby infantry resupply:** HQ now uses delivered low-ammunition reports to reserve an existing patrol and the manually dispatched convoy's original ammo truck. Separate radio orders stop the truck, request its stopped-position report and send infantry to a nearby rendezvous. Existing captured magazine identities transfer at most once; no replacement stock is created. Low-stock reporting uses 30-second local scans and a 60-second urgent-call cooldown. [Scope and limits](infantry-resupply.md). The [current native run](evidence/native-2026-09-20-072839-infantry-resupply/report.json) compiles the complete integration and completes 59 HQ-memory assertions/one round with zero script/runtime failures and verified hidden/muted cleanup; four external localization errors remain. The first native compile failure is retained and corrected. Direct native resupply/navigation, automatic dispatch, broad logistics parity and multiplayer remain unfinished. All repository checks pass and all 533 tracked reference sources remain unchanged. The existing packaged handoff remains the older `915476f` snapshot.
|
||||
|
||||
**20 September 2026 — radio and finite maintenance:** Enemy groups now use bounded one-time radio fitting, preserving existing radios and excluding mortar-owned allocations. Uplinks hold their original caller for three seconds before network hops and fail on live consciousness/ownership loss. The [native radio/HQ-memory checkpoint](evidence/native-2026-09-20-062203-radio-call-memory/report.json) completes 59 assertions and one round, with zero script/runtime failures; four installed external localization errors remain. All six tested groups were already equipped, so native insertion remains unproved. The western supply cache now holds one finite repair kit and two fuel cans. Its [native stock/transport checkpoint](evidence/native-2026-09-20-062011-maintenance-stock/report.json) passes 131 assertions with zero captured errors, confirming 20 supply units and two five-litre cans plus prior lock/vehicle-loss behavior. Ordinary repair/refuel consumption remains untested. Both runs preserve exact sources and confirm hidden/muted cleanup. Current external packaging has a separate [explicit v3 development workflow](packed-external-development.md); the matching separate handoff is `.build/playtest-2026-09-20-radio-maintenance`. All five PAKs match their authored payloads; [Core ordinary startup](evidence/packed-core-2026-09-20-radio-maintenance/report.json) passes without captured errors. Full packed Chat verifies the exact thirteen-addon closure but remains failed on installed localization errors and did not establish participant readiness before its diagnostic ended. Native build shutdown failures remain; older handoffs are unchanged. All repository checks pass and 533 tracked reference files remain unchanged.
|
||||
|
||||
**20 September 2026 — optics and base interaction follow-up:** Startup optics fitting now uses verified vanilla/RHS resources, preserves existing attachments and remains independent of finite Stinger processing. The supply UAZ has a successor-owned [held lock-breach action and scoped entry guards](vehicle-security.md); the [native supply-vehicle checkpoint](evidence/native-2026-09-20-052915-supply-vehicle-security/report.json) completes 124 assertions with zero captured errors, including lock rejection, one-time unlocking, native driver availability with its declared door context, scripted seating, fuel depletion and no replacement after loss. Ordinary held input and multiplayer verification remain pending. Player guidance now explains pilot responsibility and whole-round extraction consequences, and repeats the current objective after a controlled-body change. [The native convoy diagnostic](evidence/native-2026-09-20-050906-convoy-seat-diagnostic/report.json) compiled the optics integration but failed a combined gunner consciousness/seat/identity check after 170 passing assertions; it did not reach the new radio HOLD/RESUME test. The [second run](evidence/native-2026-09-20-051505-convoy-cover-diagnostic/report.json) passed those driving/seat checks but received no qualifying cover sighting before a combined preservation guard failed. Native HOLD/RESUME remains unverified; more precise diagnostics are included without weakening either guard. The [final full-addon run](evidence/native-2026-09-20-053057-optics-security-hq-integration/report.json) compiles all current source changes and completes 56 HQ-memory assertions with no script/runtime failures; the four known external localization errors remain. All repository checks pass, and all 533 tracked reference sources are unchanged. Existing packaged playtests remain older snapshots.
|
||||
|
||||
**20 September 2026 — delivered ammunition and convoy cover:** HQ now receives detached small-arms ammunition counts with real radio status and avoids new armed assignments only when fresh, complete evidence proves the squad empty. Per-vehicle convoy HOLD/RESUME commands share the original crews' radio downlinks and preserve route/crew/cargo identity. The [ammunition run](evidence/native-2026-09-20-040857-hq-ammunition/report.json) completes 49 assertions; the [current convoy driving recheck](evidence/native-2026-09-20-041150-convoy-cover-driving/report.json) completes 181. Both have zero script/runtime failures and confirmed cleanup, with four external localization errors retained. Native combat HOLD/RESUME and depletion still need direct tests; general resupply, multiplayer/FPS qualification and updated packaged playtests remain unfinished. See [ammunition scope](hq-ammunition.md) and [convoy scope](convoy-migration.md#delivered-hq-mounted-cover-follow-up).
|
||||
|
||||
**20 September 2026 — delivered casualty follow-up:** HQ now merges body and squad-status evidence by immutable original member identity. A [native corpse/radio test](evidence/native-2026-09-20-030533-body-radio-casualties/report.json) completes45 assertions: actual visual observation, no knowledge before delivery, real overlapping status and no double-counting. Transfer-before-death and deleted-corpse safeguards are covered by focused regressions. Four external localization errors remain; packaged playtest binaries have not been refreshed.
|
||||
|
||||
**20 September 2026 — HQ memory and external dependencies:** The editable successor now includes the [AI migration checkpoint](ai-migration-progress.md): bounded report-derived memory/prediction, infantry task selection, delivered negative-search coverage, routine check-ins and missing-patrol investigations, local body observation, finite Stinger grants and the Core force ledger. RHS/WCS/BMP are [declared and audited](external-addons.md). Native memory (56 assertions) and actual-sighting HQ response (35 assertions) complete with zero script/runtime failures; four external localization errors keep strict qualification failed. The older playtest below has not been rebuilt with these changes. The [convoy checkpoint](convoy-migration.md) now proves exact nineteen-person native seating, finite physical truck cargo and duplicate-dispatch rejection. The native driving follow-up completes181 assertions: all six vehicles move at least20m and the lead over100m, preserving exact crew and rejecting repeat dispatch. Combat tactics, unloading and long-route reliability remain unfinished.
|
||||
|
||||
**20 September 2026 — refreshed playtest ready:** `.build/playtest-2026-09-20` now contains the mission-owned Chat menu and current owned AI/Intel behavior from source `5e74269`. All 216 authored source files and all five native PAK payloads match; fifteen runtime files are verified. [Core](evidence/packed-core-2026-09-20-playtest/report.json) and [full scenario](evidence/packed-chat-2026-09-20-playtest/report.json) pass ordinary packaged startup with zero captured errors, unchanged inputs and confirmed hidden/muted cleanup. [Build record](evidence/playtest-2026-09-20/build.json) and [launch/route instructions](playtest-build.md). Separate muted manual launchers and local profiles/runtime are prepared; no visible launcher was run. The old handoff and 533 original reference files are unchanged. The packager's shutdown failures remain, while a narrowly fixed disappearing-audio-stream race passes44 tests and its separate Chat retry produces matching artifacts. Human full escape, multiplayer and FPS remain unqualified.
|
||||
|
||||
**19 September 2026 — mission-owned chat administration:** Core now owns `/esc`, the native settings/HQ/journal menu, authenticated sessions and player tools in dedicated classes. AI and Intel register optional providers; Chat is only the existing full-scenario/development wrapper. Open with `/esc menu`. [Implementation and command reference](chat-integration.md). [Final native regression](evidence/native-2026-09-19-234618-chat-complete/report.json): one full scripted escape round, 101 assertions, zero captured errors, unchanged source and verified private cleanup; checks include actual menu/owner RPCs, saved settings, god-state restoration, visible journal text and scrolling to the newest entry. Earlier Core and two-round full-scenario runs are linked in the implementation notes. All repository checks pass. Original 533 reference files remain unchanged. The frozen playtest package has not been rebuilt; multiplayer and release acceptance remain pending.
|
||||
|
||||
**19 September 2026, 22:59 — owned AI/Intel migration:** Added admin Intel summary/reroll commands, native-operation callbacks and bounded retry handling, coalesced team discovery notifications, and fair per-squad reporting of multiple current visual contacts. [Change details](owned-ai-intel-migration.md). The updated five-addon source passes [two native escape/restart rounds](evidence/native-2026-09-19-225422-owned-ai-intel/report.json), **186 assertions**, zero captured errors, unchanged source and confirmed hidden/muted test cleanup. All repository checks pass. The frozen playtest package below remains its earlier snapshot; these source changes have not been repackaged. Human/multiplayer and release qualification remain pending.
|
||||
|
||||
Updated **19 September 2026,22:12**. The prison and the complete intended base sequence are implemented: prisoner spawning, physical intel/scavenging, radio defence, player-flown helicopter extraction, individual results and restart. Five independent successor projects use vanilla assets without the original mod. Scripted local integration and ordinary startup have native evidence. This is an implemented development build awaiting gameplay qualification, not a completed multiplayer release.
|
||||
|
||||
**Priority correction from the user:** stop spending disproportionate time on automated prison keypress proof and experimental AI aircraft flight. Both experiments are paused. Active work now targets concrete base gameplay bugs, missing user-visible behavior and companion integration. The reproduced first-admission deadlock is fixed, and casualty loading now gives denial/failure feedback to its initiating rescuer. Each clue cache carries one finite replacement map. Manual play and real multiplayer remain necessary, but absence of automated input proof does not mean the prison is still being built.
|
||||
|
||||
The frozen202-file playtest source now passes [two Core escape/restart rounds](evidence/native-2026-09-19-215437-playtest-core-loops/report.json),616 assertions, zero captured errors and confirmed cleanup. All repository checks pass. The [development playtest handoff](playtest-build.md) is ready in `.build/playtest-2026-09-19`: exact-source native packages and editable source, separate user-run `play-full.sh`/`play-core.sh`, prepared isolated local profiles/runtime and a seven-step route guide. [Packed Core](evidence/packed-core-2026-09-19-playtest/report.json) and [full five-addon startup](evidence/packed-chat-2026-09-19-playtest/report.json) both pass with verified cleanup and unchanged artifacts. Workbench packaging errors remain recorded separately; this is a development candidate for human testing, not a qualified release.
|
||||
|
||||
Recent retained checkpoints:
|
||||
|
||||
- [Ordinary coarse approach/facing/lock selection](evidence/game-2026-09-19-212117-coarse-facing-selection/runner.json.txt) passed using actual private mouse/W input and one wheel pair. Facing took2.726seconds; no F was sent. The [first opt-in held-action attempt](evidence/game-2026-09-19-214138-held-prerequisite-refusal/runner.json.txt) later refused its independent facing prerequisite before wheel/F, confirmed all releases and cleaned up. Further input automation is paused.
|
||||
- [Typed aircraft service20m route](evidence/native-2026-09-19-210233-typed-service-route/report.json) passed40 assertions, destination hold, contact landing and shutdown at its201-file snapshot. The100m survey experiments found terrain/building/tree obstructions before allocating an aircraft; the [last survey](evidence/native-2026-09-19-213726-field-workshop-refusal/report.json) records the workshop bounds. There is no100m flight or operational HQ aircraft qualification. A reviewed contact check prevents ground friction receiving airborne-braking credit; its focused policy checks pass, native validation remains pending.
|
||||
- All repository checks passed after integrating the optional held-action helper and independent validators. The subsequent narrow contact fix has focused regressions. These are development checks, not manual gameplay or release acceptance.
|
||||
|
||||
**All seventeen first-release acceptance cases remain pending.** Full ordinary escape, real multiplayer, improved FPS and clean native packaging are unqualified. The [empty-addon packaging control](evidence/package-control-2026-09-19-201532-exit-after-init/review.json) still reproduces25 shutdown errors. Tests remain hidden/muted, and the original533 reference files were verified unchanged at21:42.
|
||||
|
||||
The [route gain comparison](evidence/route-comparison-2026-09-19-192238/comparison.json) measures one native20m route per gain: translation through arrival hold improved155.365→69.293seconds, and final target error improved0.130→0.099m. The candidate passed38assertions, physical contact landing and engine shutdown. This is an isolated flight-controller result, not an FPS comparison or operational HQ air support; the production callback bridge has separate native evidence, while the later retained-service route/Stop passes are separate historical snapshots and useful field-length routes remain pending.
|
||||
|
||||
[Ordinary prison approach191750](evidence/game-2026-09-19-191750-prison-approach/runner.json.txt) now passes end to end using actual private mouse/W input:14turns,9walking pulses,4.741m path,27.199s native interval, stationary0.490m from the interior waypoint. A disposable2560x720 viewport provides pointer travel while retaining every containment/ownership check. No gate action was sent; the exact lock/context remains unselected from the final view. Earlier pointer-edge, cross-position-API, calibration-return and legacy-summary failures remain archived. The first physically completed route191342 has a separate hashed raw-log review, not a rewritten runner verdict. The later [194128 alignment attempt](evidence/alignment-review-2026-09-19-194128/review.json) acquires the native gate context with the lock available, but does not select the lock; it remains failed. Read-only selected-action diagnostics precede any action cycling or heldF proof.
|
||||
|
||||
The [relative-look observer](ordinary-look-observer.md) now passes an [ordinary Chat run](evidence/game-2026-09-19-183944-relative-look/runner.json.txt): actual +24/−24 pixel input produced a measured 1.935° yaw response and return within 0.149°, with stationary body, then verified W/Tab input. Zero captured errors, source unchanged and cleanup confirmed. The earlier run remains failed because its independent checker assumed identical SAMPLE/READY milliseconds; its [separate corrected review](evidence/look-review-2026-09-19-183353/review.json) preserves the raw archive. The current-source Core attempt reached 292 assertions without errors but exhausted an undersized 180-second budget; its [timeout](evidence/native-2026-09-19-183622-core-budget/runner.json.txt) remains a failure. The later 184647 run used a 600-second budget and completed both rounds with614 assertions; the earlier timeout remains failed. No gate interaction or full normal-input escape is qualified.
|
||||
|
||||
The primary deliverable is an independently authored replacement for the abandoned Escapists base mission, with companion behavior integrated through its interfaces. Five successor addon projects have their own identities, authored Everon sites and vanilla asset references. The first release targets up to twelve players completing prison → scavenging/intel → radio defence → helicopter extraction without the original mod or dependent extensions. Scripted development checkpoints exist; a dependable, manually playable multiplayer release is still unfinished.
|
||||
|
||||
## Established development checkpoints
|
||||
|
||||
| Area | Evidence | Practical limit |
|
||||
| --- | --- | --- |
|
||||
| Integrated base loop | [Core 130347](evidence/native-2026-09-19-130347-core-loops/report.json) completes two rounds, 612 assertions and zero errors, including canonical participant rejection/restored document recovery, rough/exact native markers, radio feedback, extraction and restart. [Companion 131041](evidence/native-2026-09-19-131041-companion-loops/report.json) completes two rounds, 96 assertions and zero errors at its source snapshot. | Scripted local integration with deliberate state/position changes, not a normal-input escape. These earlier archives share their captured source snapshot; the new Core/companion/ordinary runs linked above qualify the later native-end correction. The earlier flight mechanism remains separately source-bound. Future addon edits require fresh qualification. Earlier failures remain archived. |
|
||||
| Ordinary game startup | [Chat 125906](evidence/game-2026-09-19-125906-integrated-prison/report.json) loads all five addons in the regular game, verifies the header/MissionSystems and admits the real local controller to a living canonical prisoner, then observes a clean ready interval. Native screenshots show the real prisoner view and the correct escape objective; the stock-scale yard decal creates a larger irregular bare patch, with substantial wheat remaining. | Explicit diagnostic noSplash and a scoped standalone round-local identity; no complete ordinary route or remote identity proof. The latest bounded keyboard cycle described above passes with visible inventory, while the earlier failed cycles remain archived. [Admission design](local-singleplayer-admission.md). |
|
||||
| Packed addon consumption | [Packed Core 110729](evidence/packed-core-2026-09-19-110729/report.json) passes ordinary startup from the archived project/PAK/resource database plus installed vanilla: exactly three expected addons, real canonical prisoner, a 15-second ready interval and zero captured errors. Package and log hashes are retained. | Artifact-bound startup with explicit noSplash; no loose successor addon was loaded. The artifact predates current mortar edits. [Archived packed Chat 131942](evidence/packed-chat-2026-09-19-131942-current/report.json) passes startup from all five [1317 packages](evidence/package-2026-09-19-1317-all/review.json), with no loose successor source, a real prisoner and zero captured errors. All 151 PAK entries match the captured 183-file addon snapshot before the native-end correction; all fifteen runtime artifacts retain exact hashes. Native packaging remains unqualified: an [empty-addon control](native-packaging-control.md) reproduces the same UI resource-leak errors, without fixing or suppressing them. |
|
||||
| Native game-over | [Preparation 133847](evidence/native-2026-09-19-133847-native-end-preparing/report.json) and [active 134044](evidence/native-2026-09-19-134044-native-end-active/report.json) each pass two rounds/21 assertions: actual inherited game-over, unchanged native data, one shutdown, cancelled preparation/tick/binding, inert stale callbacks and vanilla restart. | Local fixture; pending native preloads and real clients are not arranged. Existing successor extraction results remain covered by normal escape/restart regressions. |
|
||||
| Prison and scavenging | [Prisoner capacity](evidence/native-2026-09-19-063949/report.json) uses one real player plus eleven physical characters, exact starter kits and native clue transfers. [Prison boundary 100148](evidence/native-2026-09-19-100148/report.json) covers the gate/progression corrections. | Extra physical actors are not twelve connected clients. Native action completion and deliberately repositioned boundary crossings do not prove held input or walking through the gate/debris. Equipment scarcity and combat balance need playtesting. |
|
||||
| Medicine and extraction casualties | [Medical treatment](evidence/native-2026-09-19-062406/report.json) demonstrates finite supplies and native recovery at its earlier snapshot. [Casualty 102037](evidence/native-2026-09-19-102037/report.json) passes 101 clean assertions at the committed checkpoint: grounded-aircraft checks, real incapacitation, helper rejection, seat/LOS constraints, one owner-handshake load and idempotent stop. [Native removal](evidence/native-2026-09-19-080058/report.json) proves the inherited exit mechanism. | Casualty loading explicitly adapts helper membership and invokes action completion. Held input, real remote ownership, competing rescuers and disconnect/death/deletion races remain separate. The older medical snapshot retains its historical catalog errors. |
|
||||
| Infantry and HQ | [Actual perception response](evidence/native-2026-09-19-092237/report.json) carries an original soldier's observation through both physical radio legs and HQ to a different original squad, which physically moves. Patrol/preemption/resumption are implemented. | The prisoner is arranged and temporarily protected. Broader combat and interrupted/captured support require additional qualification; no response force is created for this test. |
|
||||
| Finite support | [Mortar expiry](evidence/native-2026-09-19-091306/report.json) verifies fresh native commitments followed by stale-report withholding without duplicate orders. [Courier 095513](evidence/native-2026-09-19-095513/report.json) passes 154 clean assertions through actual radio, original-patrol walking, exact depot-shell delivery and patrol restoration. | Mortar observations are synthetic; impact accuracy and genuine late callbacks remain unproved. The new refresh now passes the bounded 112900 fixture: three actual radio updates, eight physical launches, native event completion, 19 surviving original shells and 25 seconds without replay. The current [114751 expiry regression](evidence/native-2026-09-19-114751-mortar-expiry/report.json) also passes 48 clean assertions. [115232 crew registration](evidence/native-2026-09-19-115232-intel-readiness/report.json) proves all four physical crew receive their one Intel carrying roll after setup, then exercises inventory depletion/loss; broader support-loss checks remain separate. Courier depletion is arranged by physically sequestering the original 27 rounds, not firing or replacing them. Broader losses and multiplayer remain unqualified. |
|
||||
| Aircraft mechanism | [Flight 114504](evidence/native-2026-09-19-114504-powered-flight/report.json) passes 81 assertions with zero captured errors: signed actor-local collective consumption, native autohover, powered takeoff, five-second 7–9m hover, stable contact landing and an engine-off check with finite fuel. The same aircraft and living AI pilot remain inside the original physical limits. | [Translation 120245](evidence/native-2026-09-19-120245-powered-translation/report.json) additionally passes 85 clean assertions for a fixed four-metre target, five-second hold and landing. The reusable production controller separately passes [123439](evidence/native-2026-09-19-123439-aircraft-controller/report.json), 37 assertions including actual post-spawn qualification and its own complete vertical operation. [Airborne cancellation 124915](evidence/native-2026-09-19-124915-aircraft-cancel/report.json) passes 39 assertions with retained control through contact landing and engine-off. The same reusable controller then passes [fixed-target movement 130038](evidence/native-2026-09-19-130038-aircraft-target/report.json), 38 assertions including a physical 2.9m translation and landing. These are isolated flight mechanisms; rotors still coast after engine shutdown. [The fixed 20 m route](evidence/native-2026-09-19-155909-aircraft-route/report.json) now passes one unloaded flight, target hold, contact landing and engine-off with 38 assertions. Useful field-length navigation, operational HQ support, repeated-flight reliability and manual/multiplayer piloting remain unqualified. Earlier input, drift, hover and shutdown failures remain archived. |
|
||||
| Shared field map | [Map ownership 120633](evidence/native-2026-09-19-120633-map-ownership/report.json) passes native replacement-view, delayed-callback, mode-clear and spare/interrupted deletion checks. The fixture observes actual cleanup and waits for native component references to expire. | Camera restore authorization is observed; no public native render-state getter exists. Visible held-map usability, previously focused stock gadget callbacks and remote presentation remain separate. |
|
||||
| Independent runtime controls | [Archived packed Linux Chat 132456](evidence/dedicated-2026-09-19-132456-packed-chat/review.json) compiles the integrated game scripts, loads all five packages and prepares the empty prison mission in an isolated network namespace. Its four resource errors also occur in the earlier vanilla control. All fifteen packed inputs remain unchanged. [Vanilla ordinary 102533](evidence/vanilla-game-2026-09-19-102533/report.json) reproduces the initial splash unknown-class error with exactly two vanilla addons and no successor. | No real dedicated client joined. The vanilla ordinary control remains failed despite entering the menu; it does not test scenario reload or input. [Splash diagnosis](normal-splash-audit.md). |
|
||||
|
||||
## Immediate work
|
||||
|
||||
1. Play the frozen development candidate through the normal route and fix reported blockers. First-spawn exhaustion, silent casualty-loading failures and missing spare maps have been addressed; do not resume disproportionate input/flight automation.
|
||||
2. Review normal-player guidance and supplies across the authored escape route. Fix evidenced usability defects with proportionate checks.
|
||||
3. Distinguish genuinely absent base behavior from existing behavior awaiting playtesting. Pre-round setup UI, broader island population and vehicle break-in/alarm behavior are potential remaining features; the narrow escape sequence already exists. Keep later-scope feature parity separate.
|
||||
4. Prepare and validate the playable development build. Ordinary manual play, real multiplayer, packaging and equivalent-workload FPS tests remain release work. Do not resume elaborate gate-input or experimental aircraft automation at the expense of those priorities.
|
||||
|
||||
## First-release qualification
|
||||
|
||||
The [acceptance ledger](acceptance.json) still requires the complete ordinary escape loop, death/unconsciousness/recovery, reconnect/respawn/spectators, partial escape, defeat/restart, interrupted/stale reports, support/ammunition losses and duplicate-free cleanup with up to twelve connected players. A passed development checkpoint does not promote those pending cases.
|
||||
|
||||
Collect matched original/successor workloads with repeated client-frame and server-tick measurements. **No FPS improvement is demonstrated**; the [comparison tool](performance-comparison.md) has synthetic regression evidence only. Complete provenance/dependency review, obtain a clean native build and satisfy the [release checker](release-qualification.md). The [packed Core startup](packed-core-startup.md) is now demonstrated for its exact archived PAK, while the [packaging shutdown/control failures](native-packaging-control.md) remain unresolved and unqualified. The [development source bundle](development-source-bundle.md) provides editable projects; it is separate from that native candidate and from a qualified release. No release package is published.
|
||||
|
||||
[Private test cleanup](evidence/private-prefix-cleanup-2026-09-19-1631/review.json) now verifies Proton’s trailing-slash prefix spelling, checks idle state under the shared lock, and reaps only positively identified adopted test-device helpers after owned shutdown. The latest companion and ordinary runs record verified cleanup. Earlier strict-byte idle checks could miss those helpers; their historical logs are retained unchanged.
|
||||
|
||||
Original missions remain untouched. Engine tests use private profiles/prefixes, hidden displays and muted test audio. RHS/WCS/BMP are now authorized dependencies for AI/full integration. Additional terrains, complete original feature parity, alternate starts and distant-unit materialization remain unfinished. The [validation ledger](validation.md) preserves the detailed historical checkpoints and failures.
|
||||
|
||||
## 2026-10-04 — Terrain hunter fallback and convoy search
|
||||
|
||||
Live Nogova logs showed both successful three-UAZ rounds and rounds where an exhausted three-way opening scan permanently blocked all independent hunters. Initial deployment now falls back to checked friendly-objective roads with the existing finite force allowance and player exclusion, plus opening-center and active-hunter clearance. Failed placement retries after ten seconds.
|
||||
|
||||
Convoy infantry keeps hunting for three minutes after the last fresh sighting and can sweep twice farther around opposite flanks once each prior sector is reached. Route allocation failure preserves working flank orders, and duplicate reports cannot restart the hunt. Normal road travel still uses the column; combat retains independent infantry and escort orders.
|
||||
|
||||
All 314 registered checks passed. An isolated native Nogova run compiled without script errors, spawned three independent radio-equipped hunter UAZs through a forced opening failure, observed native patrol driving over 25 metres, and physically dismounted both convoy infantry teams with flank/search orders after one synthetic contact. Full organic combat and other terrains remain playtest coverage. No Workshop publish or live server changes. [Evidence](evidence/hunter-search-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Civilian road traffic
|
||||
|
||||
Added ordinary unarmed CIV drivers in S105 cars and S1203 vans, separate from military HQ, intel and equipment systems. The Factions admin page exposes `civilianTrafficCount` (0–6, default 3) through the existing authenticated settings service and unified profile. Zero prevents new traffic; existing traffic retires only when safe.
|
||||
|
||||
Road routes use the current terrain, with side exits available where an opposite endpoint would cross water. Spawns require 1,000 m clearance from all known player bodies/spectator targets and blocked sight lines. Cleanup requires both car and driver to remain at least 1,500 m away and hidden for a sampled 60-second grace period. Unknown views and open editor cameras veto both actions. Native garbage collection is held while traffic owns a car/driver. Player entry permanently releases traffic ownership; foreign occupants or control also release it. Claimed cars retain their slot for the round. See [civilian traffic](civilian-traffic.md) for bounded attempts and lifecycle details.
|
||||
|
||||
All 315 registered repository checks passed on the final source. The final isolated native Nogova run matched the workspace and passed four checks: native garbage refusal, neutral/unarmed seated driver and hidden distant start, more than 25 m of actual driving, and unclaimed retirement after observer departure and the production grace period. Earlier runs also observed three cars and retained-claim survival. A random coastal fixture withheld all spawns rather than bypassing safety; this motivated the bounded side-exit search. The private observer fixture is not multiplayer or visual-menu qualification. No live server modification or publishing. [Evidence](evidence/civilian-traffic-2026-10-04/review.json).
|
||||
|
||||
## 2026-10-04 — Post-defeat loading display
|
||||
|
||||
The Chernarus playtest logs show approximately 30 seconds of native postgame delay, 40 seconds reloading the terrain, then procedural preparation. Escape now rebinds the native loading updater after replacing a terrain's respawn manager; previously the cached component could leave the spinner and preparation text without frame updates. Terminal phases and stale owners release held spawn-loading overlays. Active spawn acknowledgement and terrain-generation safeguards remain unchanged.
|
||||
|
||||
The native auto-reload default is ten seconds, with server CLI overrides preserved. The complete repository check and eight focused regression suites pass; the isolated Nogova engine checks pass binding recovery, actual frame delivery and the new prefab delay with zero script errors. Client rendering and a multiplayer death/restart remain playtest checks. No live-server edits or publication. [Evidence](evidence/restart-loading-2026-10-04/README.md).
|
||||
|
||||
## 2026-10-08 — optional Cessna reconnaissance
|
||||
|
||||
Implemented optional Cessna 172/PFC detection, a next-round HQ menu switch,
|
||||
background airport departure survey, native aircrew/flight-control autopilot,
|
||||
ordinary crew-sighting reports to HQ, loss replacement and takeover release.
|
||||
No Cessna/PFC dependency was added to the project. Dedicated-server takeoff,
|
||||
120-second patrol, delivered sighting, replacement and input restoration passed
|
||||
in the isolated engine fixture; addon-absent compilation and relevant menu,
|
||||
settings and registration checks passed. See [details](cessna-reconnaissance.md)
|
||||
and [evidence/limits](evidence/cessna-recon-2026-10-08/README.md). The busy native
|
||||
fixture also logged two optional-site guard-preparation failures; this is not a
|
||||
claim that the entire mission is free of errors. Live server and publication
|
||||
remain unchanged.
|
||||
|
||||
### Cessna menu configuration
|
||||
|
||||
HQ → Configure Cessna now groups the saved enabled state, terrain-clearance
|
||||
altitude, minimum replacement delay and patrol-area interval. Defaults preserve
|
||||
the flight behavior tested above. All four values are captured for the round;
|
||||
mid-round edits do not change the current plane or its replacements. Existing
|
||||
profiles migrate automatically. Focused menu routing/layout, setting boundaries,
|
||||
migration checks and isolated Reforger 1.8 script compilation passed. The new page
|
||||
has not been visually checked in a connected game, and non-default flight
|
||||
altitudes have not received the earlier full flight fixture.
|
||||
|
||||
## 2026-10-08 — guard work spikes and bounded aircraft preparation
|
||||
|
||||
The live populated-session measurements showed up to 856 ms in the combined
|
||||
garrison scope and 981 ms between updates, versus 7 ms for HQ journal flushing.
|
||||
Town/object guard discovery now caches small terrain cells, placement searches
|
||||
resume across background callbacks, and resources/soldiers are created one per
|
||||
slice. Immediate pre/post-spawn distance checks and fresh placement clearance
|
||||
remain enforced. The separate performance file now records background guard
|
||||
work and its own preceding flush duration.
|
||||
|
||||
The isolated Everon/RHS component run admitted two town squads safely, peaked
|
||||
at 19 ms across 1,349 guard work slices, and flew the Cessna. This is not a matched
|
||||
comparison with live Chernarus. Repeated Cessna preparation failures now stop
|
||||
after three attempts per round and identify the failing gate; the original live
|
||||
startup cause was not reproduced. See [evidence and limits](evidence/garrison-slicing-2026-10-08/README.md).
|
||||
@@ -0,0 +1,370 @@
|
||||
# Automatic Escape on added terrains
|
||||
|
||||
For a universal starting scenario, select **Co10 Escape Reintroduced — Automatic
|
||||
terrain** from this mod:
|
||||
|
||||
```text
|
||||
{C1E20667DCE324ED}Missions/ERR_Everon.conf
|
||||
```
|
||||
|
||||
This is the existing full Escape scenario with its original resource ID and path,
|
||||
now named for its role as the universal launcher. Existing server configurations
|
||||
using that ID continue to work. The duplicate Base diagnostic header is no longer
|
||||
shipped. Servers using its retired `{AD62322D5213C440}` ID must select the main
|
||||
entry above; the diagnostic tools already use it. It starts on Everon when no terrain override is
|
||||
saved, so administrators can always reach the Escape menu. Add the desired terrain
|
||||
to the server's mods, select one of its scenarios in **Terrains**, save, and restart.
|
||||
The existing saved selection loads that map and Escape creates its mission there.
|
||||
No AMP-specific settings, external startup helper, connector addon or changes by
|
||||
the terrain author are needed.
|
||||
|
||||
The published scenario name and description now identify Escape itself. After a
|
||||
terrain switch the public browser can retain **Automatic terrain**; this entry
|
||||
intentionally does not name a map that may no longer be running. It is not a fix
|
||||
for dynamic backend metadata refresh. The runtime title on a taken-over terrain
|
||||
still follows the loaded map. Server owners currently starting with a terrain's
|
||||
Exploration/Game Master scenario must select the Escape entry once to use this
|
||||
registration identity. An addon update cannot change that choice for them.
|
||||
|
||||
[Launcher validation](evidence/automatic-launcher-2026-10-04/report.json) reached
|
||||
the prison phase both on default Everon and after following a saved Nogova
|
||||
selection. The native title callback returned the terrain-neutral launcher name
|
||||
before switching. These private tests used no backend; public listing and
|
||||
Workshop metadata still need verification after publication.
|
||||
|
||||
The original direct-terrain route remains supported: add Escape and a terrain,
|
||||
then select an existing scenario supplied by that terrain. For Nogova that is:
|
||||
|
||||
```text
|
||||
{469880DFE1B48F95}Missions/Nogova_TerrainTest.conf
|
||||
```
|
||||
|
||||
In a standard server configuration, the selected entry is `game.scenarioId`.
|
||||
Select a mission header (`Missions/*.conf`), not the terrain's world resource.
|
||||
Installing multiple terrains does not choose one automatically. With no saved
|
||||
selection, the server's configured scenario remains the default; only the
|
||||
Automatic terrain entry defaults to Everon. Workshop 0.0.45 predates automatic
|
||||
takeover. Publish the updated Escape core to expose the new launcher name and
|
||||
description; the mission resource ID is unchanged.
|
||||
|
||||
Before publishing the updated core, reopen/rescan the project in Workbench so
|
||||
`Prefabs/ERR/TerrainTakeover.et` and its metadata enter the resource index. An old
|
||||
cache can include the script but still fail to register the replicated prefab.
|
||||
This is a publishing check, not a server-admin setup requirement.
|
||||
|
||||
## In-game terrain selection
|
||||
|
||||
Game Master keeps Reforger's normal administrator permissions after takeover.
|
||||
Escape transfers the editor core's player registration, disconnect, spawn,
|
||||
death, deletion and role-change listeners from the original game mode to the
|
||||
replacement before replaying admissions. Without this transfer, an admin on an
|
||||
exploration scenario could have a disabled Game Master button because the editor
|
||||
still listened to the removed mode. The transfer retains existing editor managers
|
||||
and does not grant Game Master to ordinary players.
|
||||
After replaying admissions, Escape also checks already-connected players, creates only missing editor managers, and reapplies native role-derived modes. This covers registration that happened before the new game mode attached its listeners. The repair now waits for a valid, distinct controller replication identity (a dedicated server’s temporary local identity is not a player). Editor creation is idempotent during takeover, so the subsequent native registration event reuses the manager instead of registering it twice. Missing managers are retried up to 80 times at 250 ms intervals; retries touch only missing editors and are cancelled at detach/world shutdown. A later registration may start another repair window. The pause menu refreshes the Game Master button from native editor availability: vanilla can leave it disabled when an administrator's mode arrives while the menu is already open. These repairs do not assign administrator roles or preserve a login that the server revoked during restart.
|
||||
|
||||
The native loading-screen updater also follows the replacement respawn manager. This keeps the spinner and mission-preparation text updating after takeover, including when the original scenario disabled its deploy-menu updater. A pending spawn-loading overlay releases on victory/defeat and cannot hold the result screen underneath it.
|
||||
|
||||
Escape's default end-of-round reload delay is 120 seconds. The native server `-autoreload` override still applies, including disabling automatic reload. Terrain loading and procedural preparation happen after that delay and can take substantially longer on large islands.
|
||||
|
||||
|
||||
The [editor handover check](evidence/terrain-editor-2026-10-03/report.json)
|
||||
passed five native Nogova checks and the focused regression tests. It exercises
|
||||
event delivery on a playerless server; a connected administrator clicking the
|
||||
pause-menu button remains an in-game verification step.
|
||||
|
||||
Open the Escape administration menu and choose **Terrains**. Select a scenario
|
||||
and press **Save terrain**. Saving leaves the current round running; the saved
|
||||
scenario takes effect after a normal mission restart or a full server restart.
|
||||
Changing terrain disconnects connected players without a ban: **rejoin after the
|
||||
new map has loaded**. Reforger otherwise makes connected clients reload the old
|
||||
world while the server loads the new one. Restarting on the same terrain does
|
||||
not use this extra disconnect.
|
||||
|
||||
The list is discovered on the server from enabled mods' scenario catalog and
|
||||
mounted `Missions/*.conf` resources. It lists scenario entry points, so an island
|
||||
can appear several times. Prefer an exploration or Escape scenario; discovery
|
||||
alone does not certify its navigation or compatibility. The selector does not
|
||||
download or enable additional mods. Add the terrain to the server first.
|
||||
|
||||
**Use server default**, then **Save terrain**, removes the override. With no
|
||||
selection, Escape continues using the server's configured scenario, including
|
||||
Nogova; its administration menu remains available after takeover. For a fresh
|
||||
server, select **Co10 Escape Reintroduced — Automatic terrain** as the initial entry point:
|
||||
|
||||
```text
|
||||
{C1E20667DCE324ED}Missions/ERR_Everon.conf
|
||||
```
|
||||
|
||||
The server still needs a valid initial scenario to start the engine. A script
|
||||
cannot provide a menu if startup fails before a world loads. Forcing Everon on
|
||||
all unconfigured servers would also replace an administrator's valid existing
|
||||
terrain selection unnecessarily.
|
||||
|
||||
The override is stored as `terrain.scenario` in `$profile:Escapists.json`
|
||||
(with a shared `.bak` backup).
|
||||
Only authenticated administrators can save a discovered scenario. A removed or
|
||||
unavailable saved scenario falls back to the configured server scenario and
|
||||
shows a warning. Corrupt preferences are preserved for inspection; removing or
|
||||
repairing the `terrain` section, then restarting, restores editing. See
|
||||
[unified configuration](configuration.md#one-server-configuration) for migration
|
||||
and backup recovery; do not remove the whole file just to clear a terrain choice. Startup
|
||||
redirects are bounded and do not repeatedly reload an unreachable destination.
|
||||
|
||||
[Native test evidence](evidence/terrain-selection-2026-10-02/report.json) covers
|
||||
discovery, save authorization, persistence, restart, disconnect and rejoin on
|
||||
Everon. The menu screenshot uses a labeled offline presentation fixture.
|
||||
|
||||
## Placement and requirements
|
||||
|
||||
Escape surveys clear helicopter landing zones across the entire terrain from the
|
||||
first candidate, whether airports exist or not. There is no airport-first search
|
||||
or dedicated airport-discovery wait. Every candidate still passes terrain,
|
||||
navigation, slope, aircraft-clearance and rescue-fleet space checks. Searches
|
||||
have finite time and attempt budgets and never fall back to coordinates from
|
||||
another map.
|
||||
|
||||
Terrain-generated placement allows up to 48,000 candidates or 120 seconds per
|
||||
site, whichever comes first, keeping the existing cooperative 8 ms work slices.
|
||||
|
||||
Extraction pads do not use the camp-only 12 m road exclusion, and their initial
|
||||
ground survey uses the same 0.8 m height variation limit as the landing-zone
|
||||
survey. Camp footprints retain their 0.6 m limit and road exclusion. Aircraft
|
||||
clearance is tested at the centre's actual terrain height, matching pickup
|
||||
registration, rather than the lowest point sampled across the camp grid.
|
||||
Water, physical obstacles, guard/patrol ground and navigation, the 28 m landing
|
||||
footprint, overhead clearance and additional transport-pad checks still apply.
|
||||
|
||||
Dry ground is determined from the terrain's actual water surface, not a fixed
|
||||
world-altitude minimum. Site clearance queries water at every sampled terrain
|
||||
height instead of testing placeholder candidate heights. Dry terrain below
|
||||
one metre (including negative map elevations) can qualify; submerged terrain,
|
||||
invalid heights, excessive slopes and physical obstructions remain rejected.
|
||||
Site creation, character spawn slots, airfield pads and mortar setup use the
|
||||
same terrain-height water check, without the 10 cm character spawn lift.
|
||||
|
||||
On terrain-generated maps, prison-to-airport separation is 15% of the shorter
|
||||
world axis, clamped to 200–1,500 m (300 m on a 2 km map). This changes tactical
|
||||
spacing, not the physical footprint or slope allowance. Original authored Everon
|
||||
placement retains its 1,500 m airport buffer and existing search/fallback rules.
|
||||
Maps without sufficient clear ground or a working Soldiers navigation mesh can
|
||||
still fail preparation. See [placement validation](evidence/small-terrain-placement-2026-10-24/README.md).
|
||||
|
||||
Search diagnostics use the `Reintroduced [placement search]` log prefix. Each
|
||||
summary identifies the site, attempts and elapsed milliseconds, with counts for
|
||||
failed or deferred checks: water, uneven ground, obstacles, road/airport distance,
|
||||
site spacing, navigation and aircraft clearance. Summaries appear on completion,
|
||||
exhaustion, plus every 30 seconds during a long search.
|
||||
Counts describe checks rather than unique candidates: a candidate awaiting a
|
||||
navigation tile can be checked repeatedly. Mandatory placement failures also
|
||||
include the site and rejection summary directly on the loading screen, so no
|
||||
chat command is needed. The same detail remains available in mission status.
|
||||
|
||||
On startup failure, a local `ChimeraMenuBase` error menu provides **Return to
|
||||
main menu** and **Pause menu (Esc / Back)**. The loading placeholder is hidden
|
||||
while an interactive menu or dialog is available, so it cannot cover native
|
||||
pause/exit controls. Existing menus keep focus; ordinary preparation retains its
|
||||
loading overlay. Returning uses the native local gameplay-end transition and
|
||||
does not admit players or change the failed mission state. If the custom menu
|
||||
cannot open, the native pause menu is the fallback.
|
||||
|
||||
The selected scenario must supply `SCR_BaseGameMode`, a usable `Soldiers` navmesh,
|
||||
world bounds spanning 1–100 km on both axes, and enough clear navigable ground.
|
||||
Navigation remains the terrain author's responsibility. A plain exploration
|
||||
scenario is the recommended starting point. Arbitrary scripted scenarios can
|
||||
retain their own tasks and entities; saved campaigns and every third-party game
|
||||
mode are not qualified. Escape disables further saving when taking over; it does
|
||||
not delete existing saves. Existing authored Escape scenarios and editor worlds
|
||||
are left on their normal startup path.
|
||||
|
||||
## Displayed mission name and text
|
||||
|
||||
Automatic takeover reports **Co10 Escape Reintroduced - <terrain>** through the
|
||||
native server mission-name callback, for example **Co10 Escape Reintroduced -
|
||||
Armenhof**. Once takeover is confirmed, the running world and its root scene supply the terrain
|
||||
name, even if the source header still refers to the original island. Before confirmation,
|
||||
an incoming header cannot pick up the outgoing world’s name. Before loading, the header's world resource is used: parent containers are
|
||||
followed where available, with conventional scenario prefixes/suffixes removed
|
||||
when packed resources hide their parents. Internal `Eden` is displayed as Everon.
|
||||
Unknown custom naming can fall back to the world filename; the selected next-round
|
||||
terrain never replaces the current round's label. Once takeover succeeds, the server and clients
|
||||
receiving the Escape bootstrap also display that mission name and game mode
|
||||
`Escape` in their runtime header. The terrain's scenario ID, world, imagery and
|
||||
Workshop entry stay unchanged; those still identify the terrain scenario used to
|
||||
load the map. Existing authored Escape titles are preserved.
|
||||
|
||||
Presentation is refreshed every half second after confirmation, including when the
|
||||
same header already says `Escape` and its root scene only becomes available later.
|
||||
The native mission-name callback refreshes it too. Repeated refreshes compare
|
||||
world paths as strings: `GetWorldFile()` can return `$Addon:Worlds/...`, and
|
||||
calling `ResourceName.GetPath()` on that path each tick caused repeated zero-GUID
|
||||
resource warnings. GUID prefixes are stripped as text, and parent-resource
|
||||
resolution runs only when the cached terrain input changes.
|
||||
The [native comparison](evidence/terrain-lookup-loop-2026-10-04/report.json)
|
||||
reproduced 80 repeated warnings over 20 seconds before this correction and zero
|
||||
afterward, with the same terrain title and scenario resource. The loading screen refreshes
|
||||
its existing title and description widgets, so copying the header before the Escape bootstrap no
|
||||
longer leaves the original scenario name or instructions on screen. Confirmed takeover reads `m_sDescription` and `m_sDetails` from Escape’s authored `Missions/ERR_Everon.conf`, without copying its world or scenario identity. Details take precedence over the short description, matching native translation and the 1,000-character display limit. It accepts the current header
|
||||
or another copy of that same scenario; other incoming scenarios retain their own
|
||||
titles and descriptions. Loading progress, imagery and hints keep their native lifecycle. The authored Escape text is read once at takeover; resource-load failure leaves the source text intact.
|
||||
|
||||
The [31 October native widget checks](evidence/terrain-mission-text-2026-10-31/native-checks.log) verified that an already-created loading screen changes from terrain details to the authored Escape text, then restores the original text. The isolated Workbench world has no mission header, so the fixture supplies one at the header-read boundary; the resource loader, presentation methods and actual loading layout/component run in the engine. This is not remote multiplayer or initial connection timing acceptance. All focused presentation/takeover/selection/loading regressions passed. The final native run completed with unchanged inputs and confirmed cleanup; the strict runner reports 13 existing world/localization errors plus two empty-image errors from the synthetic header, with no script errors. The text assertions passed; this fixture does not qualify loading imagery. Earlier fixture setup failures are recorded in the evidence directory.
|
||||
|
||||
The original runtime name, game-mode label, description and details are restored on world cleanup, so
|
||||
restarting with takeover disabled cannot inherit Escape labels or instructions. Later text changes by another system are preserved. Clients wait
|
||||
for the actual Escape bootstrap instead of guessing from locally enabled mods.
|
||||
The public server-browser listing can retain the startup terrain after an in-process
|
||||
terrain redirect. A live RKS #2 check on 2026-10-04 confirmed Chernarus was loaded
|
||||
and its runtime title updated, while the browser still showed the initial Nogova
|
||||
scenario. The earlier runtime and loading-title checks did not prove public listing
|
||||
refresh. Starting the server directly with the selected terrain in `game.scenarioId`
|
||||
avoids this initial-terrain redirect; verify the public listing after changing it.
|
||||
See [live browser follow-up](evidence/terrain-live-title-2026-10-04/live-browser-followup.json). The
|
||||
[name-change evidence](evidence/terrain-name-2026-10-02/report.json) records server
|
||||
and client metadata across restart, including the retained respawn-order diagnostic.
|
||||
[Terrain suffix validation](evidence/terrain-browser-suffix-2026-10-02/report.json)
|
||||
checks the real Armenhof callback, Nogova/Everon resolution and title restoration.
|
||||
[Live-title refresh evidence](evidence/terrain-live-title-2026-10-04/report.json)
|
||||
adds native Nogova checks for an already-presented stale title and a stale Everon
|
||||
world header, plus executable loading-widget and late-root regression checks.
|
||||
This later run is headless; it does not visually qualify the loading screen or
|
||||
verify the public backend cache.
|
||||
|
||||
A subsequent [registration investigation](evidence/terrain-registration-2026-10-04/report.json)
|
||||
ran two isolated native experiments. Rehosting with
|
||||
`RequestPublicServerTransition` from gameplay was explicitly rejected as an
|
||||
unsupported transition. Writing a replacement `World` through a cloned header
|
||||
container did not change the engine's selected world. Neither experiment provides
|
||||
a universal registration fix. No supported scenario-registration setter was found
|
||||
in the inspected script interfaces. A portable pre-launch integration remains an
|
||||
external setup option to investigate; it is not implemented here and would not by
|
||||
itself replace the loader scenario's published Workshop metadata.
|
||||
|
||||
|
||||
## Optional overrides
|
||||
|
||||
To keep the original scenario while Escape remains loaded, pass
|
||||
`-errTerrainTakeover 0`, or set the mission-header field
|
||||
`m_bERR_EnableEscape` to `false`, then restart. The CLI override takes precedence;
|
||||
only its exact value `1` enables takeover when explicitly supplied. With no
|
||||
overrides, takeover is enabled.
|
||||
|
||||
Optional airport-centre hints use `-errAirfields "1525 5075"` or the header field
|
||||
`m_sERR_Airfields`. Use X/Z pairs separated by semicolons, up to 16 centres.
|
||||
Hints must be on dry land inside the terrain and do not bypass clearance checks.
|
||||
An explicitly supplied CLI hint takes precedence over the header. Empty hints
|
||||
use automatic discovery and the landing-zone fallback.
|
||||
|
||||
## Validation of the automatic default
|
||||
|
||||
Production-method regressions exercise default activation, editor/authority
|
||||
protection, opt-out precedence, airport discovery and bounded placement. Native
|
||||
Nogova server/client evidence is recorded in
|
||||
[evidence/automatic-terrain-takeover-2026-10-02](evidence/automatic-terrain-takeover-2026-10-02/).
|
||||
The no-flags Nogova test completed two takeovers and two prison phases across a
|
||||
connected restart, with all 16 sites and a supported, fueled helicopter in each
|
||||
round. Client manager checks passed with no client script errors. The evidence
|
||||
report retains server authentication refusals and installed-resource diagnostics;
|
||||
it is not a clean-release verdict. A freshly built package also reached the
|
||||
prison phase on Nogova without flags, loose Escape source, test probes or script
|
||||
errors. Its 351 payload files matched the authored source. Packaging's strict
|
||||
resource/shutdown failures remain recorded separately.
|
||||
Authenticated prisoner spawning, late joining and reconnecting still require a
|
||||
published-build multiplayer check; offline backend-disabled tests cannot prove
|
||||
account admission. Publication and live-server changes remain with the owner.
|
||||
|
||||
## Handover behavior and earlier validation
|
||||
|
||||
- Invalid airport syntax, terrain bounds, navigation or missing bootstrap assets
|
||||
are rejected before the original mode is stopped.
|
||||
- The old mode ends before deletion. Its catalog and data-collector references
|
||||
are released. Once native registrations clear, the replacement is created in
|
||||
the same update, avoiding a period with no mode to create joining players'
|
||||
controllers. A 10-second deadline bounds unexpectedly deferred registrations.
|
||||
- The original radio manager is retained, detached first if its parent is being
|
||||
removed. A missing radio manager is created from the standard game prefab.
|
||||
- The private `Prefabs/ERR/TerrainTakeover.et` triggers client cleanup. It releases
|
||||
only the captured original singleton components, waits for the new factions
|
||||
before catalog/identity initialization, and receives the server's faction
|
||||
delegates. The terrain's native chat service is retained on both peers, detached
|
||||
from any removed entity/replication parent, and never replaced or attached to
|
||||
the new mode. The ordinary authored connector retains its own chat service.
|
||||
If the terrain has no chat service, `TerrainTakeoverWithChat.et` supplies a
|
||||
non-streaming replicated chat child instead. Selection depends on service
|
||||
presence, not terrain name; both variants share the same takeover mode.
|
||||
- Arsenal, group, support-station and task managers release the original mode's
|
||||
cached instances on both peers. Task, map-marker and respawn getters resolve
|
||||
the current takeover mode even if an old destructor clears a shared cache.
|
||||
- Faction delegates use a paired serialization prefix to bind their faction
|
||||
before the base deserializer reads faction data. Both peers must load the same
|
||||
Escape build, including when using an ordinary authored Escape scenario.
|
||||
- Old faction delegates are removed explicitly because vanilla creates them as
|
||||
standalone entities. The new mode, managers and delegates are linked in the
|
||||
replication hierarchy so delegates cannot arrive before their prerequisites.
|
||||
- Native player admission events received during handover are held and replayed
|
||||
only for the same connected controller and account. No backend identity or
|
||||
authentication event is fabricated. Disconnect and world cleanup clear the queue.
|
||||
- Existing controllers resolve spawn handlers on the replacement Escape mode.
|
||||
- World cleanup clears the handover state and configured centres. Local native
|
||||
restart has passed in Workbench, on an empty Linux dedicated server, and with
|
||||
a separate connected Windows client. The connected test recreates the player's
|
||||
controller and verifies the replacement managers in both rounds.
|
||||
|
||||
On 14 October, the original Everon client log showed delayed removal of the
|
||||
original `ScriptedChatEntity` after the replacement registered, followed by
|
||||
`Cannot send message - ChatEntity is missing.` This blocked native chat commands,
|
||||
including administrator login, before authentication. `test_terrain_chat_retention.py`
|
||||
checks shared-service retention, nested parent detachment and fallback selection.
|
||||
The revised scripts compiled in Workbench; the authored-world native restart
|
||||
smoke completed two rounds and 21 assertions with no script/runtime failures.
|
||||
That run still reported existing engine/dependency errors, and the full repository
|
||||
check stopped on the existing missing root ID in `ERRM_AtlasLeaf.et`.
|
||||
Live remote login and takeover of both chat variants remain separate verification
|
||||
steps; the authored-world smoke does not exercise those paths.
|
||||
|
||||
The earlier isolated prototype passed a Nogova Workbench prisoner-spawn test with
|
||||
16 generated sites and zero script errors. See
|
||||
[prototype evidence](evidence/scenario-takeover-2026-10-01/report.json). The current
|
||||
feature has additional configuration, readiness and admission checks. It passed
|
||||
native offline spawning and an actual scenario restart: two prisoner spawns,
|
||||
16 sites per round, zero script errors, and all handover state cleared between
|
||||
rounds. Invalid configuration was also rejected before stopping the original mode.
|
||||
Repository checks passed. See the
|
||||
[feature test report](evidence/terrain-takeover-feature-2026-10-01/report.json).
|
||||
|
||||
Earlier opt-in builds required enable flags and airport hints. The following
|
||||
results describe those builds, before the automatic default and landing-zone fallback.
|
||||
|
||||
The command-line listen-server route did not apply either custom mission-header
|
||||
overrides or the standard `m_eSaveTypes` override. Its diagnostic read the original
|
||||
defaults and left Nogova's mode running. Consequently the example server JSON
|
||||
used in those tests still needs testing through the actual dedicated-server route. A read-only
|
||||
copy of the RKS 2 engine executables was subsequently authorized and completed.
|
||||
The dedicated JSON route could not complete addon/backend initialization with
|
||||
external networking disabled. The explicit CLI route did load Nogova, generate
|
||||
16 sites and reach the prison phase with zero script errors on the Linux server.
|
||||
The dedicated server also passed an actual scenario restart, cleared the takeover
|
||||
state and reached the prison phase again, with zero script errors. Both dedicated
|
||||
checks used an empty server.
|
||||
|
||||
Subsequent tests used the final takeover files on the same frozen core baseline,
|
||||
with a real Windows client joining the isolated Linux server through a localhost
|
||||
relay. Client manager replication, catalog/identity faction references and radio
|
||||
retention passed. A real scenario restart cleared both peers' takeover state,
|
||||
recreated the client's controller and reached the prison phase again. No client
|
||||
script errors occurred. The backend-disabled server correctly withheld soldier
|
||||
spawning for missing account identity, so these checks do **not** prove
|
||||
authenticated prisoner spawning. Native delayed-unregistration diagnostics and
|
||||
existing resource errors remain in the raw logs. No RKS 2 configuration or
|
||||
running process was changed.
|
||||
|
||||
A separate disconnect/reconnect test passed with two successive client launches
|
||||
against the same server and no client script errors. That run preceded the final
|
||||
replication-hierarchy change; the final hierarchy was then tested through a fresh
|
||||
client join and a connected restart. Radio preservation when attached to the old
|
||||
mode, and creation when missing, passed separate authority-only fixtures. These
|
||||
fixtures change the loaded test world in memory, not the terrain's source files.
|
||||
|
||||
The separate Nogova connector and authored integration remain available in
|
||||
[the existing integration instructions](terrain-adapters.md). Do not delete them
|
||||
from a deployment that still selects their mission header.
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"complete-inputs.json": "3e092dc0ddb9ea9f1ab9f35f7fc1f36affa139ca8c4ba031544427b4afcb37da",
|
||||
"documentation/README.md": "2b3a14b61f713b9cef8f303679f5437ff8322dcac1950f916135a26f0aad85be",
|
||||
"documentation/docs/current-status.md": "ffb9d63995600cbad91a035b6daf38bc1b072afed9cf5e85dac53239cdcb1eba",
|
||||
"documentation/docs/terrain-takeover.md": "f79fbead432e577557e7db71d93531f493725cbcc35a461a9ed85aa0d908e0c4",
|
||||
"identity-review.json": "9170e5630bdc532e961075362ef3ec69dc04deb843bdc0592a43059f02d4ee44",
|
||||
"intel-checks.json": "d931dfd227b8ab0fb7a8a6982a9ee70989fbbe28d95e7af7f6ea5064a0554846",
|
||||
"intel-review.json": "855f0a24f77cd2f3d1749373b39adfba68dd5ba9e8451a5b7fc413bf9581c0fa",
|
||||
"lifecycle-review.json": "f8e512fef33bced47887d3ccf33a4c7c811104e2fa6950b560749920c8d00faa",
|
||||
"observer-proposal/baseline/tests/test_observer_ownership.py": "d06efedfdf07861f82b0d2429f21db1d7e20945b74a8e9f7eca8f10374328771",
|
||||
"observer-proposal/baseline.log": "2ddd1eb6bfd32185cc5b085624908690f41fcf054af3edf811ce996b7df049de",
|
||||
"observer-proposal/finding.json": "3b06694aeb1562160fb9d3d8dd7dc4c9abb7d3b3fe507b7f011249d80ca8d120",
|
||||
"observer-proposal/fix.patch": "c76cd98979abb8b3372831955fbe4ddbcfe4d6869bcadaaa844d8e611b4c83ce",
|
||||
"observer-proposal/proposal.log": "359367fd4e4c429eca157de941b568ba6c66b18e27f64d95e057fe512c73e78d",
|
||||
"observer-proposal/source-manifest.json": "f8dc64da544b29cdb11b6c168b58eca769dd21eaa4d99317a4f6d807c1ef5a79",
|
||||
"observer-proposal/tests/test_observer_ownership.py": "ab6ce2a7f2e62659020c3f707806435c8baa94bfd95bc5cfdd1e4715a754d7aa",
|
||||
"prior-evidence-preservation.json": "460858b240ce3f431a861f794c6c5c4e9ed8bdadef43683626201223cac5a8aa",
|
||||
"radio-review.json": "8fee379a3e45f68c10dc826951ee240fa9d33a8e62f85891ade78b04a922b652",
|
||||
"reload-proposal/baseline/docs/terrain-takeover.md": "f2620e896a97aaa9280ca9fc1c32020dcfcbc2fdea57afe718f6ed5af845a732",
|
||||
"reload-proposal/baseline/tests/test_preparation_status.py": "3b1a7c30d12f0b6fcba36b57ecfcfefaec044735211205da844c65988ec60029",
|
||||
"reload-proposal/baseline.log": "bc4e19b78cf353d1e3a29a3a31a215e32467f5e720c6dd152e0b8b80f6ca8d35",
|
||||
"reload-proposal/docs/terrain-takeover.md": "f79fbead432e577557e7db71d93531f493725cbcc35a461a9ed85aa0d908e0c4",
|
||||
"reload-proposal/finding.json": "2114bc38bc293f5085d57c171926b5addf3239e6a932ba354fb33df204c22981",
|
||||
"reload-proposal/fix.patch": "cc18a3c88d43f31d0338b015da338fedd8caa9b1e6ee6df22cf4dfb63adb1f53",
|
||||
"reload-proposal/proposal.log": "bc6bbc9037fa44f86fdc5f3dc4b1a6e2b07c0b425d891e6fe53aa1b1e1026509",
|
||||
"reload-proposal/source-manifest.json": "902d614fc01e020843a01eea409e2a9b029a1e81cf5c4662dba6cbd342ec5b76",
|
||||
"reload-proposal/tests/test_preparation_status.py": "e9b2a3c5b6627573ff923dacc3e9aece0ef2d6829d243ccaaa65661fedf65b2e",
|
||||
"remaining-suite-result.json": "61419a83ca644cf2594c1074c38e0a9c3db2f9fa2c3f5cd5eec50b9c48d487e4",
|
||||
"remaining-suite.log": "7cba0ab12242dc06ff713bde978f6e30ac2a31b002b560d88ad3758aa0dde117",
|
||||
"report.json": "98b5d166c86ab12def969dabfa11680622634cf94e9d4e808b7093efa9edd323",
|
||||
"source/addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f",
|
||||
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af",
|
||||
"source/tests/test_observer_ownership.py": "ab6ce2a7f2e62659020c3f707806435c8baa94bfd95bc5cfdd1e4715a754d7aa",
|
||||
"source/tests/test_preparation_status.py": "e9b2a3c5b6627573ff923dacc3e9aece0ef2d6829d243ccaaa65661fedf65b2e",
|
||||
"suite-complete-result.json": "fb4bbeb41c11a0dd25706be20897fd56dc958446689ae44568a9c797f0ba2bb3",
|
||||
"suite-complete.log": "62b0a5e1b444d9d3402eb84adc709460faf0bfcf806d459381d71da0649f39e6",
|
||||
"suite-final-inputs.json": "e6ba4d033a3759d8f9f64b574047222dbdce2ae9c315e8fc3d2b56970ef03f33",
|
||||
"suite-final-result.json": "9d230cfd7689bd14b65dfc349da535de9bc3c6fd55810bb8893487234cc1bd80",
|
||||
"suite-final.log": "b7e9c34741e1e67b4f3ea4b826a0f18c6d7812a16d854c6fb9fe95d5a6bda689",
|
||||
"suite-inputs.json": "4460822b4b55e7428b4df04b3a3a08536be876cc24fd9c721ea1b2eb5e4e6ffd",
|
||||
"suite-local-sockets-result.json": "55dbf85c1c4d2bbeebaaf546166c7e2311acf43a46415331a0df0dcf8de4b5b9",
|
||||
"suite-local-sockets.log": "7c6ad4d388f7a7adc7fcdd090b367a5272d6d38c154ebb318118bb0252ca05ec",
|
||||
"suite-result.json": "3d64d3407a6ebbccd307040e108e02ffb438e4c820b8484fd41fbef8ecff9e4d",
|
||||
"suite.log": "cd749e43abada5a35a866b68fbf40601a337159a4a022a0e1f7e138ff4b91fbc",
|
||||
"test_intel_cleanup.py.log": "84cb6d38beeff29d9eb576ed154ed75c520999f666adcb4409b18517aeeb2e05",
|
||||
"test_intel_discovery_feedback.py.log": "5c9a019d6e6ed71905b424fd4cf56a2d2852058cbd83a442c65b5d66f1a7447d",
|
||||
"test_radio_intel.py.log": "0ba63f93a6077518aa4ebbc31b1571a085125577980f28d6eedb6970b2d41697"
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"finding": null,
|
||||
"verdict": "No demonstrated production identity fault in bounded current reconnect/admission/partial-victory review.",
|
||||
"traces": [
|
||||
{
|
||||
"path": "ERR_PlayerRoster.Bind/CurrentActor",
|
||||
"result": "Persistent account record separated from transient connection; occupied duplicate account refused; recycled ID disconnects prior binding; current actor requires reciprocal native control, connected used-life and exact body."
|
||||
},
|
||||
{
|
||||
"path": "ERR_PlayerReconnect.HandlePlayerReconnect/PrepareReplacement",
|
||||
"result": "Requires audited matching account, current roster body, no foreign owner or different controlled body. Failed native handoff restores reservation without extending expiry. Replacement requires real reconnect, no live controlled/reserved body and pre-extraction phase, consistent with current documented policy."
|
||||
},
|
||||
{
|
||||
"path": "ERR_SpawnLogic.RetrySpawn/ObserveAfterLoss/MayFinalizeSpawn",
|
||||
"result": "Delayed callbacks pin controller and account; finalization additionally pins round, request, exact actor and unused life before native possession."
|
||||
},
|
||||
{
|
||||
"path": "ERR_ExtractionService.Tick/ConnectedWinners + ERR_PlayerEscapeResult",
|
||||
"result": "Partial victory snapshots living actual transport occupants by account; connected winner IDs are rebuilt only from current reciprocal roster bindings. Personal result is mission-ID bound and does not use stale native winner IDs."
|
||||
}
|
||||
],
|
||||
"coverage_reviewed": "Existing reconnect actual-method cases cover account/body mismatch, occupied controller, expiry/death, failed handoff, duplicate audit and extraction restriction. Existing rescue test covers partial account snapshot; native result fixture source covers recycled winner ID presentation. No tests/fixture run in this review.",
|
||||
"limits": "Read-only source/test inspection is not multiplayer authentication, asynchronous native handoff or replication acceptance. No production patch proposed.",
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
|
||||
"tests/test_reconnect_recovery.py": "a951da374ef1d17bb28a164d0a6242e673bd956603af6bbdcc3185afd80b87a5",
|
||||
"tests/test_player_admission_policy.py": "745ec0a9e491ffcf5bec53ebf67ecee8333f4dcfa5d19bafbde31cbd1cad7f8b",
|
||||
"tests/test_participant_selection.py": "87052a9344b9a875c84f5ca1590d99ae9a23ecc0b16b33399c3761a1c73832ca",
|
||||
"tests/test_rescue_recovery.py": "ff690dc9530a6c378c30c32960ae479d608e7c512ca3d916b234fcc115d9acdc",
|
||||
"tests/test_progression_identity.py": "2c7af4d7d6250d47a4759479ed7e780cb137f42837ac1794a6ac50ecbfb87b80",
|
||||
"docs/player-lifecycle.md": "7b0172272427b268ad253d59d90395f580c8207bff7a762eeb6dfa0e61c68bc1"
|
||||
},
|
||||
"live_changes": false,
|
||||
"native_runs": false,
|
||||
"test_runs": false
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{
|
||||
"path": "tests/test_radio_intel.py",
|
||||
"sha256": "e3cd012a7c3475c58e44f3940fc7b4798aed03e67e0b44b7df365705695b7012",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_radio_intel.py.log"
|
||||
},
|
||||
{
|
||||
"path": "tests/test_intel_cleanup.py",
|
||||
"sha256": "fbf347688344f154beae92ffd4d2a6e4087e9c41276024607034c77f29f17d80",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_intel_cleanup.py.log"
|
||||
},
|
||||
{
|
||||
"path": "tests/test_intel_discovery_feedback.py",
|
||||
"sha256": "ffdce25a6c753da12822bf3f1cc7a66d21207dadb0e024ba1f4035cb6971a74d",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_intel_discovery_feedback.py.log"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"result": "no demonstrated defect",
|
||||
"scope": "Current carried-document recovery, multiplayer shared identity/progression gates, consumption and cleanup; no optional-site audit repeated.",
|
||||
"head": "9418b6950a12610361d96a99d058e9e10de03713",
|
||||
"created_utc": "2026-11-05T10:54:22.330701+00:00",
|
||||
"source_sha256": {
|
||||
"AGENTS.md": "5f6b6364b02d9ba70664b78c1c28559e2071e3eee079d8db044a6df1e865448e",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26",
|
||||
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020",
|
||||
"docs/player-route.md": "979d47b33b085a87bd589b327f772dff5bd84ffe743e2e4643f62d2718741e80"
|
||||
},
|
||||
"findings": [],
|
||||
"observations": [
|
||||
"Recovery requires a current living friendly player body. A shared spent-entity ledger prevents one recovered document granting again after transfer or repeated scans.",
|
||||
"Fixed objective radio documents remain unspent and are never queued for deletion while progression is locked; a later scan processes them after unlock.",
|
||||
"The radio requirement counts distinct fully identified eligible location IDs across the team, excludes automatically revealed starting clues, and caps for sparse terrain only after active world preparation ends.",
|
||||
"Ordinary folder cleanup follows current reciprocal player custody before submission; accepted operations are observed without duplicate submission, unknown completion remains quarantined, and terminal failure retry is bounded.",
|
||||
"A rough clue is deliberately one consumed document; a different document or direct physical observation can identify the site. Reusing the same folder is intentionally ineffective."
|
||||
],
|
||||
"checks": [
|
||||
{
|
||||
"path": "tests/test_radio_intel.py",
|
||||
"sha256": "e3cd012a7c3475c58e44f3940fc7b4798aed03e67e0b44b7df365705695b7012",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_radio_intel.py.log"
|
||||
},
|
||||
{
|
||||
"path": "tests/test_intel_cleanup.py",
|
||||
"sha256": "fbf347688344f154beae92ffd4d2a6e4087e9c41276024607034c77f29f17d80",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_intel_cleanup.py.log"
|
||||
},
|
||||
{
|
||||
"path": "tests/test_intel_discovery_feedback.py",
|
||||
"sha256": "ffdce25a6c753da12822bf3f1cc7a66d21207dadb0e024ba1f4035cb6971a74d",
|
||||
"exit_code": 0,
|
||||
"log": "/tmp/erri-heartbeat-20261105-1052/test_intel_discovery_feedback.py.log"
|
||||
}
|
||||
],
|
||||
"limitations": [
|
||||
"Tests extract actual methods into C++ with explicit native boundary doubles; they do not establish native inventory callback semantics or multiplayer RPC/replication behavior.",
|
||||
"Read-only bounded audit; no gameplay source, original workspace, staging, publishing or native-engine changes."
|
||||
],
|
||||
"changes": "Only audit JSON and three focused test logs under /tmp/erri-heartbeat-20261105-1052."
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"finding": null,
|
||||
"scope": "Bounded current empty-server restart, preparation/background callbacks, native termination and terminal cleanup review. No demonstrated ordinary-gameplay defect.",
|
||||
"evidence": [
|
||||
"CheckEmptyServerRestart counts every native connection, precedes Active/tactical work, and latches before requesting native end.",
|
||||
"OnGameModeEnd and StopServices latch before listeners; shutdown removes queued preparation and server ticks, preserves native end data and existing terminal outcomes.",
|
||||
"StartScenario independently rejects stale invocation; BackgroundStep rejects inactive/wrong mode, StopBackground rolls back pending site, and SiteService.Activate refuses stopped service.",
|
||||
"Garage Step refuses stopped work and Stop removes callback. Extraction terminal snapshot survives release; radio completion latches before its callbacks.",
|
||||
"Existing empty-server and native-end actual-method tests cover boundary/duplicate/reentrant/stale-callback cases; inspected only, not executed."
|
||||
],
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "f24f92d0f5d2e6f29c5c80562bf1ecf10c050433872de42956d578b329855bdf",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5",
|
||||
"tests/test_empty_server_restart.py": "76826e3b4f60e0b3b7d7bb171507c59452fc57cd40d651f9e352106d6989b4c2",
|
||||
"tests/test_native_end_lifecycle.py": "7ed310fe62eeab3fe386f7ed9ba0f91d0b5df350f05a4c312ac3d760c5db7296"
|
||||
},
|
||||
"changes": "No live or original edits; no native, tests or compilers run. Existing uncommitted fixes preserved."
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp: In member function ‘void Controller::ERR_UpdateObserverClient()’:
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:99:21: error: ‘GetTickCount’ is not a member of ‘System’
|
||||
99 | int now = System::GetTickCount();
|
||||
| ^~~~~~~~~~~~
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:103:7: error: ‘m_ERRPendingRecoveryStatus’ was not declared in this scope; did you mean ‘m_ERRShownRecoveryStatus’?
|
||||
103 | if (m_ERRPendingRecoveryStatus != recovery || now < m_ERRRecoveryStatusSince)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| m_ERRShownRecoveryStatus
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:103:55: error: ‘m_ERRRecoveryStatusSince’ was not declared in this scope; did you mean ‘m_ERRRecoveryDeadline’?
|
||||
103 | if (m_ERRPendingRecoveryStatus != recovery || now < m_ERRRecoveryStatusSince)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| m_ERRRecoveryDeadline
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:108:72: error: ‘m_ERRRecoveryStatusSince’ was not declared in this scope; did you mean ‘m_ERRRecoveryDeadline’?
|
||||
108 | if (!contextChanged && m_ERRShownRecoveryStatus != recovery && now - m_ERRRecoveryStatusSince < 3000) return;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| m_ERRRecoveryDeadline
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:115:26: error: no matching function for call to ‘SCR_HintManagerComponent::ShowCustom(string&, const char [11], int, bool&)’
|
||||
115 | if (!hints->ShowCustom(message, "Spectating", 12, m_ERRObserverReady)) return;
|
||||
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
• there is 1 candidate
|
||||
• candidate 1: ‘bool SCR_HintManagerComponent::ShowCustom(string, string, int)’
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:26:144:
|
||||
26 | struct SCR_HintManagerComponent{int attempts=0;static SCR_HintManagerComponent*GetInstance(){static SCR_HintManagerComponent h;return &h;}bool ShowCustom(string,string,int){attempts++;return true;}};
|
||||
| ^~~~~~~~~~
|
||||
• candidate expects 3 arguments, 4 provided
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp: In member function ‘void Controller::ERR_CloseObserverCamera()’:
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:149:3: error: ‘m_ERRPendingRecoveryStatus’ was not declared in this scope; did you mean ‘m_ERRShownRecoveryStatus’?
|
||||
149 | m_ERRPendingRecoveryStatus = "";
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| m_ERRShownRecoveryStatus
|
||||
/tmp/err-policy-0ymhyzgr/check.cpp:150:3: error: ‘m_ERRRecoveryStatusSince’ was not declared in this scope; did you mean ‘m_ERRRecoveryDeadline’?
|
||||
150 | m_ERRRecoveryStatusSince = 0;
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| m_ERRRecoveryDeadline
|
||||
Traceback (most recent call last):
|
||||
File "/tmp/erri-heartbeat-20261105-1015/observer-proposal/baseline/tests/test_observer_ownership.py", line 23, in <module>
|
||||
run(r'''#include <cassert>
|
||||
~~~^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#include <set>
|
||||
^^^^^^^^^^^^^^
|
||||
...<120 lines>...
|
||||
}
|
||||
^
|
||||
''')
|
||||
^^^^
|
||||
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 13, in run
|
||||
subprocess.run(['g++','-std=c++17','-Wall','-Werror',str(p/'check.cpp'),'-o',str(p/'check')],check=True)
|
||||
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/usr/lib/python3.14/subprocess.py", line 578, in run
|
||||
raise CalledProcessError(retcode, process.args,
|
||||
output=stdout, stderr=stderr)
|
||||
subprocess.CalledProcessError: Command '['g++', '-std=c++17', '-Wall', '-Werror', '/tmp/err-policy-0ymhyzgr/check.cpp', '-o', '/tmp/err-policy-0ymhyzgr/check']' returned non-zero exit status 1.
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
"""Actual observer monitor/recovery/cleanup; native camera lifecycle is doubled."""
|
||||
import os,re
|
||||
from pathlib import Path
|
||||
from policy_harness import ROOT,body,run
|
||||
p=Path(os.environ.get('ERR_OBSERVER_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c'))
|
||||
game_mode=Path(os.environ.get('ERR_GAME_MODE_SOURCE',ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c'))
|
||||
binder=body(game_mode,'protected void BindLocalObserver(')
|
||||
binder=binder.replace('protected ', '').replace('SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());','Controller* controller = static_cast<Controller*>(GetGame()->GetPlayerController());')
|
||||
binder=binder.replace('GetGame().','GetGame()->').replace('GetCallqueue().','GetCallqueue()->').replace('Remove(BindLocalObserver)','Remove(this)').replace('controller.','controller->')
|
||||
def cpp(s):
|
||||
s=s.replace('protected ','').replace('null','nullptr')
|
||||
for n in ('ERR_GameMode','ERR_Actors','ERR_ObserverRules','ERR_ObserverGuidance','SCR_HintManagerComponent','SCR_RespawnSystemComponent','SCR_EditorManagerEntity','Resource','SCR_ManualCamera','RplId','ETransformMode','LogLevel','System'):
|
||||
s=s.replace(n+'.',n+'::')
|
||||
for n in ('ERR_GameMode','SCR_HintManagerComponent','SCR_RespawnSystemComponent','SCR_EditorManagerEntity','Resource','CameraManager','CameraBase'):
|
||||
s=re.sub(r'\b'+n+r' (\w+)',n+r'* \1',s)
|
||||
for n in ('mode','hints','respawn','editor','resource','manager','m_ERRObserverCamera'):
|
||||
s=s.replace(n+'.',n+'->')
|
||||
s=s.replace('GetGame().','GetGame()->').replace('GetWorld().','GetWorld()->').replace('GetCallqueue().','GetCallqueue()->')
|
||||
s=s.replace('Remove(ERR_UpdateObserverClient)','Remove(this)').replace('CallLater(ERR_UpdateObserverClient, 250, true)','CallLater(this, 250, true)')
|
||||
s=s.replace('EntitySpawnParams params = new EntitySpawnParams();','EntitySpawnParams params;')
|
||||
return s
|
||||
methods='\n'.join(cpp(body(p,n)) for n in ('void ERR_StartObserverMonitor(', 'protected void ERR_UpdateObserverClient(', 'protected void ERR_UpdateRecoveryCamera(', 'protected void ERR_CloseObserverCamera('))
|
||||
run(r'''#include <cassert>
|
||||
#include <set>
|
||||
#include <string>
|
||||
struct string:std::string {using std::string::string;using std::string::operator=;string(std::string s):std::string(s){}bool IsEmpty()const{return empty();}};
|
||||
struct Actor {bool alive=true,conscious=true;};using IEntity=Actor*;
|
||||
struct ERR_Actors {static bool Alive(IEntity a){return a&&a->alive;}static bool CanFight(IEntity a){return Alive(a)&&a->conscious;}};
|
||||
struct ERR_GameMode {string RecoveryStatus(){return "";}bool active=true;static ERR_GameMode*current;static ERR_GameMode*Get(){return current;}bool Active(){return active;}} mode;
|
||||
ERR_GameMode*ERR_GameMode::current=&mode;
|
||||
struct ERR_ObserverRules {static bool View(int reason,bool active,bool alive,bool conscious){return active&&((reason==4&&alive&&!conscious)||(reason!=0&&!alive));}};
|
||||
struct ERR_ObserverGuidance {static bool Refresh(bool ready,int oldReason,int reason,bool oldAvailable,bool available){return !ready||oldReason!=reason||oldAvailable!=available;}static string Message(int,bool){return "spectating";}};
|
||||
struct Vec{Vec operator+(const char*)const{return {};}};
|
||||
struct EntitySpawnParams{int TransformMode=0;Vec Transform[4];};namespace ETransformMode{enum{WORLD};}
|
||||
struct Resource{static Resource*Load(const char*){static Resource r;return &r;}bool IsValid(){return true;}};
|
||||
struct CameraBase{virtual ~CameraBase()=default;};
|
||||
struct CameraManager{CameraBase*current=nullptr;int sets=0;CameraBase*CurrentCamera(){return current;}void SetCamera(CameraBase*c){current=c;sets++;}} manager;
|
||||
int terminated=0,deleted=0,explicitSwitch=0;
|
||||
struct SCR_ManualCamera:CameraBase{
|
||||
CameraBase*previous=nullptr;bool ended=false;
|
||||
static SCR_ManualCamera*Cast(SCR_ManualCamera*c){return c;}
|
||||
void TrySwitchToControlledEntityCamera(){explicitSwitch++;}
|
||||
void Terminate(){if(!ended){ended=true;terminated++;}}
|
||||
// SDK SCR_ManualCamera destructor invokes SwitchToPreviousCamera, which
|
||||
// changes only its own currently selected camera, never a foreign current one.
|
||||
~SCR_ManualCamera(){Terminate();if(manager.current==this&&previous)manager.SetCamera(previous);deleted++;}
|
||||
};
|
||||
struct SCR_HintManagerComponent{int attempts=0;static SCR_HintManagerComponent*GetInstance(){static SCR_HintManagerComponent h;return &h;}bool ShowCustom(string,string,int){attempts++;return true;}};
|
||||
struct SCR_RespawnSystemComponent{int clears=0;static SCR_RespawnSystemComponent*GetInstance(){static SCR_RespawnSystemComponent r;return &r;}void DestroyLoadingPlaceholder(){clears++;}};
|
||||
struct SCR_EditorManagerEntity{bool opened=false;int closes=0;static SCR_EditorManagerEntity*GetInstance(){static SCR_EditorManagerEntity e;return &e;}bool IsOpened(){return opened;}void Close(bool){opened=false;closes++;}};
|
||||
struct RplId{static int Invalid(){return -1;}};namespace LogLevel{enum{WARNING};}void Print(const char*,int){}
|
||||
namespace System{bool IsConsoleApp(){return false;}}
|
||||
struct Queue{std::set<void*>owners;int added=0;void CallLater(void*owner,int,bool){owners.insert(owner);added++;}void Remove(void*owner){owners.erase(owner);}} queue;
|
||||
struct World{float now=1;float GetWorldTime(){return now;}} world;
|
||||
struct Game{void*local=nullptr;int spawns=0;void*GetPlayerController(){return local;}Queue*GetCallqueue(){return &queue;}World*GetWorld(){return &world;}CameraManager*GetCameraManager(){return &manager;}
|
||||
SCR_ManualCamera*SpawnEntityPrefabLocal(Resource*,World*,EntitySpawnParams){spawns++;auto*c=new SCR_ManualCamera();c->previous=manager.current;manager.SetCamera(c);return c;}} game;
|
||||
bool gameAvailable=true;Game*GetGame(){return gameAvailable?&game:nullptr;}
|
||||
struct Controller{
|
||||
string ERR_SelfEpinephrineHint(){return "";}
|
||||
IEntity actor=nullptr,m_ERRRecoveryBody=nullptr;float m_ERRRecoveryDeadline=-1;
|
||||
bool m_ERRObserverMonitor=false,m_ERRObserverReady=false,m_ERRShownObserverAvailable=false;
|
||||
string m_ERRShownRecoveryStatus;
|
||||
int m_ERRObserverReason=0,m_ERRShownObserverReason=0,m_ERRObservedId=1,starts=0;
|
||||
Vec m_ERRObserverAnchor;SCR_ManualCamera*m_ERRObserverCamera=nullptr;CameraBase*playerCamera=nullptr;
|
||||
IEntity GetControlledEntity(){return actor;}CameraBase*GetPlayerCamera(){return playerCamera;}
|
||||
void ERR_OnObserverMonitorStarted(){starts++;}
|
||||
'''+methods+r'''
|
||||
};
|
||||
struct Binder {bool m_Stopped=false,m_NativeEndHandled=false;
|
||||
'''+binder+r'''
|
||||
};
|
||||
int main(){
|
||||
// The real repeating binder must survive the first controller and gaps.
|
||||
Binder binder;Controller first,replacement;queue.owners.insert(&binder);
|
||||
game.local=nullptr;binder.BindLocalObserver();assert(queue.owners.count(&binder)&&queue.added==0);
|
||||
game.local=&first;binder.BindLocalObserver();
|
||||
assert(first.m_ERRObserverMonitor&&first.starts==1&&queue.owners.count(&first));
|
||||
assert(queue.owners.count(&binder));
|
||||
binder.BindLocalObserver();assert(first.starts==1&&queue.added==1);
|
||||
game.local=nullptr;binder.BindLocalObserver();assert(queue.owners.count(&binder));
|
||||
game.local=&replacement;binder.BindLocalObserver();
|
||||
assert(replacement.m_ERRObserverMonitor&&replacement.starts==1&&queue.owners.count(&replacement));
|
||||
first.ERR_UpdateObserverClient();
|
||||
assert(!first.m_ERRObserverMonitor&&!queue.owners.count(&first)&&queue.owners.count(&replacement));
|
||||
binder.BindLocalObserver();assert(replacement.starts==1&&queue.added==2);
|
||||
binder.m_Stopped=true;binder.BindLocalObserver();assert(!queue.owners.count(&binder)&&queue.owners.count(&replacement));
|
||||
binder.m_Stopped=false;binder.m_NativeEndHandled=true;queue.owners.insert(&binder);binder.BindLocalObserver();
|
||||
assert(!queue.owners.count(&binder)&&queue.owners.count(&replacement)&&queue.added==2);
|
||||
queue.owners.clear();queue.added=0;game.local=nullptr;
|
||||
|
||||
Actor body;CameraBase formerBodyCamera,newBodyCamera;
|
||||
Controller former,current;former.actor=&body;former.playerCamera=&formerBodyCamera;
|
||||
game.local=&former;manager.current=&formerBodyCamera;former.ERR_StartObserverMonitor();
|
||||
body.conscious=false;former.m_ERRObserverReason=4;former.ERR_UpdateObserverClient();
|
||||
assert(former.m_ERRRecoveryBody==&body&&former.m_ERRObserverCamera&&queue.owners.count(&former));
|
||||
SCR_ManualCamera*oldOwned=former.m_ERRObserverCamera;
|
||||
// New controller owns a separate spectator camera; old body wakes meanwhile.
|
||||
current.playerCamera=&newBodyCamera;current.m_ERRObserverReason=1;game.local=¤t;current.ERR_StartObserverMonitor();current.ERR_UpdateObserverClient();
|
||||
SCR_ManualCamera*newOwned=current.m_ERRObserverCamera;assert(newOwned&&newOwned!=oldOwned&&manager.current==newOwned);
|
||||
auto*editor=SCR_EditorManagerEntity::GetInstance();editor->opened=true;body.conscious=true;
|
||||
int beforeClears=SCR_RespawnSystemComponent::GetInstance()->clears;
|
||||
int beforeSets=manager.sets,beforeHints=SCR_HintManagerComponent::GetInstance()->attempts,beforeSpawns=game.spawns,beforeDeleted=deleted;
|
||||
former.ERR_UpdateObserverClient();
|
||||
assert(manager.current==newOwned&&manager.sets==beforeSets&&editor->opened&&editor->closes==0);
|
||||
assert(!former.m_ERRRecoveryBody&&former.m_ERRRecoveryDeadline==-1&&!former.m_ERRObserverMonitor&&!former.m_ERRObserverCamera);
|
||||
assert(deleted==beforeDeleted+1&&terminated==deleted&&explicitSwitch==0);
|
||||
assert(current.m_ERRObserverCamera==newOwned&&queue.owners.count(¤t)==1&&queue.owners.count(&former)==0);
|
||||
assert(SCR_HintManagerComponent::GetInstance()->attempts==beforeHints&&game.spawns==beforeSpawns&&SCR_RespawnSystemComponent::GetInstance()->clears==beforeClears);
|
||||
// Even a queued stale spectator callback cannot create a camera or a hint.
|
||||
former.actor=nullptr;former.m_ERRObserverReason=1;former.ERR_UpdateObserverClient();
|
||||
assert(game.spawns==beforeSpawns&&manager.current==newOwned&&SCR_HintManagerComponent::GetInstance()->attempts==beforeHints);
|
||||
// Start is still local-only; reacquisition restarts exactly one owned timer.
|
||||
int added=queue.added;former.ERR_StartObserverMonitor();assert(queue.added==added);
|
||||
game.local=&former;former.actor=&body;former.m_ERRObserverReason=0;former.ERR_StartObserverMonitor();former.ERR_StartObserverMonitor();
|
||||
assert(queue.added==added+1&&former.starts==2&&queue.owners.count(¤t)==1);
|
||||
// Normal recovery still closes the editor and returns this controller's body.
|
||||
body.conscious=false;former.ERR_UpdateObserverClient();assert(former.m_ERRRecoveryBody==&body);
|
||||
body.conscious=true;former.ERR_UpdateObserverClient();assert(manager.current==&formerBodyCamera&&!editor->opened&&editor->closes==1&&!former.m_ERRRecoveryBody);
|
||||
// Foreign current camera survives this controller's retained camera cleanup.
|
||||
game.local=¤t;manager.current=&newBodyCamera;current.ERR_CloseObserverCamera();assert(manager.current==&newBodyCamera&&deleted==beforeDeleted+2);
|
||||
// If the old owned camera is still current at replacement, its native
|
||||
// destructor may restore its own previous camera; no new-controller camera is deleted.
|
||||
Controller abandoned;abandoned.m_ERRObserverReason=1;game.local=&abandoned;manager.current=&newBodyCamera;
|
||||
abandoned.ERR_StartObserverMonitor();abandoned.ERR_UpdateObserverClient();assert(manager.current==abandoned.m_ERRObserverCamera);
|
||||
game.local=¤t;beforeSets=manager.sets;beforeDeleted=deleted;abandoned.ERR_UpdateObserverClient();
|
||||
assert(!abandoned.m_ERRObserverCamera&&manager.current==&newBodyCamera&&manager.sets==beforeSets+1&&deleted==beforeDeleted+1);
|
||||
assert(queue.owners.count(&abandoned)==0&&queue.owners.count(¤t)==1);
|
||||
// Solo death may leave the controlled corpse assigned; restore the orbit
|
||||
// camera if the native death camera replaces it on a later tick.
|
||||
Controller solo;Actor corpse;corpse.alive=false;corpse.conscious=false;
|
||||
solo.actor=&corpse;solo.m_ERRObserverReason=1;game.local=&solo;editor->opened=false;
|
||||
solo.ERR_UpdateObserverClient();auto*corpseCamera=solo.m_ERRObserverCamera;
|
||||
assert(corpseCamera&&manager.current==corpseCamera);
|
||||
manager.current=&newBodyCamera;beforeClears=SCR_RespawnSystemComponent::GetInstance()->clears;beforeSpawns=game.spawns;
|
||||
solo.ERR_UpdateObserverClient();
|
||||
assert(manager.current==corpseCamera&&game.spawns==beforeSpawns&&SCR_RespawnSystemComponent::GetInstance()->clears==beforeClears+1);
|
||||
// Game Master remains usable during spectating, including before first camera creation.
|
||||
editor->opened=true;manager.current=&newBodyCamera;solo.ERR_UpdateObserverClient();
|
||||
assert(manager.current==&newBodyCamera&&game.spawns==beforeSpawns);
|
||||
solo.ERR_CloseObserverCamera();solo.ERR_UpdateObserverClient();
|
||||
assert(!solo.m_ERRObserverCamera&&manager.current==&newBodyCamera&&game.spawns==beforeSpawns);
|
||||
editor->opened=false;solo.ERR_UpdateObserverClient();assert(solo.m_ERRObserverCamera&&manager.current==solo.m_ERRObserverCamera);
|
||||
solo.ERR_CloseObserverCamera();
|
||||
gameAvailable=false;former.ERR_UpdateObserverClient();gameAvailable=true;
|
||||
}
|
||||
''')
|
||||
print('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')
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"scope": "Test double compatibility only; no production edits.",
|
||||
"changes": "Add current debounce state, controllable System.GetTickCount, and fourth ShowCustom quiet flag (same API as test_hint_delivery). All ownership test cases and assertions unchanged.",
|
||||
"limits": "Baseline fails compilation, not a demonstrated production regression. Proposal actual-method harness passes; no native run. Existing hint_delivery owns debounce behavioral coverage."
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
--- a/tests/test_observer_ownership.py
|
||||
+++ b/tests/test_observer_ownership.py
|
||||
@@ -45,11 +45,11 @@
|
||||
// changes only its own currently selected camera, never a foreign current one.
|
||||
~SCR_ManualCamera(){Terminate();if(manager.current==this&&previous)manager.SetCamera(previous);deleted++;}
|
||||
};
|
||||
-struct SCR_HintManagerComponent{int attempts=0;static SCR_HintManagerComponent*GetInstance(){static SCR_HintManagerComponent h;return &h;}bool ShowCustom(string,string,int){attempts++;return true;}};
|
||||
+struct SCR_HintManagerComponent{int attempts=0;bool silent=false;static SCR_HintManagerComponent*GetInstance(){static SCR_HintManagerComponent h;return &h;}bool ShowCustom(string,string,int,bool quiet=false){attempts++;silent=quiet;return true;}};
|
||||
struct SCR_RespawnSystemComponent{int clears=0;static SCR_RespawnSystemComponent*GetInstance(){static SCR_RespawnSystemComponent r;return &r;}void DestroyLoadingPlaceholder(){clears++;}};
|
||||
struct SCR_EditorManagerEntity{bool opened=false;int closes=0;static SCR_EditorManagerEntity*GetInstance(){static SCR_EditorManagerEntity e;return &e;}bool IsOpened(){return opened;}void Close(bool){opened=false;closes++;}};
|
||||
struct RplId{static int Invalid(){return -1;}};namespace LogLevel{enum{WARNING};}void Print(const char*,int){}
|
||||
-namespace System{bool IsConsoleApp(){return false;}}
|
||||
+namespace System{int now=0;int GetTickCount(){return now;}bool IsConsoleApp(){return false;}}
|
||||
struct Queue{std::set<void*>owners;int added=0;void CallLater(void*owner,int,bool){owners.insert(owner);added++;}void Remove(void*owner){owners.erase(owner);}} queue;
|
||||
struct World{float now=1;float GetWorldTime(){return now;}} world;
|
||||
struct Game{void*local=nullptr;int spawns=0;void*GetPlayerController(){return local;}Queue*GetCallqueue(){return &queue;}World*GetWorld(){return &world;}CameraManager*GetCameraManager(){return &manager;}
|
||||
@@ -59,7 +59,8 @@
|
||||
string ERR_SelfEpinephrineHint(){return "";}
|
||||
IEntity actor=nullptr,m_ERRRecoveryBody=nullptr;float m_ERRRecoveryDeadline=-1;
|
||||
bool m_ERRObserverMonitor=false,m_ERRObserverReady=false,m_ERRShownObserverAvailable=false;
|
||||
- string m_ERRShownRecoveryStatus;
|
||||
+ string m_ERRShownRecoveryStatus,m_ERRPendingRecoveryStatus;
|
||||
+ int m_ERRRecoveryStatusSince=0;
|
||||
int m_ERRObserverReason=0,m_ERRShownObserverReason=0,m_ERRObservedId=1,starts=0;
|
||||
Vec m_ERRObserverAnchor;SCR_ManualCamera*m_ERRObserverCamera=nullptr;CameraBase*playerCamera=nullptr;
|
||||
IEntity GetControlledEntity(){return actor;}CameraBase*GetPlayerCamera(){return playerCamera;}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user