Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
+162
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob": "E443663E5241622A",
|
||||
"Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob": "77C9FCF3FB1246E9",
|
||||
"Assets/Items/Equipment/workspaces/paper_map.agr": "83675D0B0AB1B2C3",
|
||||
"Assets/Items/Equipment/workspaces/player_map.asi": "56794534F6B8C3D7",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat": "B47B52D9DA68905D",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat": "610803CC3F3D6649",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat": "7D2E831AFA5CF50D",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob": "819ED3266EE5113B",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat": "2169E8EB73E1C127",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat": "31529E064AA7C917",
|
||||
"Assets/Props/Military/Sandbags/Sandbag_01_short.xob": "268DBDABB3C94AD7",
|
||||
"Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob": "E3BC73BFBC7AA497",
|
||||
"Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob": "0B96D139FEBCA006",
|
||||
"Configs/Callsigns/Callsigns_US.conf": "CB7824D572DD0D5C",
|
||||
"Configs/Callsigns/Callsigns_USSR.conf": "958043CE1648EC43",
|
||||
"Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf": "B56E8B4D4B195559",
|
||||
"Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf": "4E70E7C4C2C17D4A",
|
||||
"Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf": "5F7EC52FC40A03E2",
|
||||
"Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf": "0BF36EFF9FFAF92B",
|
||||
"Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf": "0E4B62F186F97C43",
|
||||
"Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf": "3B679F1799D55F6F",
|
||||
"Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf": "37D5B75AAC3E72EA",
|
||||
"Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf": "C53421647C3D0D2E",
|
||||
"Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf": "B4CA6761AC935808",
|
||||
"Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf": "DDF17C8C140BD1F2",
|
||||
"Configs/Factions/BLUFOR.conf": "E7B7EA4823DD81F0",
|
||||
"Configs/Factions/FIA.conf": "8053DB656DD18B14",
|
||||
"Configs/Factions/OPFOR.conf": "B122E3B10BB3404B",
|
||||
"Configs/GameOverScreen/BaseGameOverScreensConfig.conf": "651583FFFB7FC765",
|
||||
"Configs/Identities/FactionIdentity_US.conf": "B600946E9ACC17C2",
|
||||
"Configs/Identities/FactionIdentity_USSR.conf": "FBBCD73926989580",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_US.conf": "B548A5B264939A98",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_USSR.conf": "31FC78AF00523A99",
|
||||
"Configs/Map/MapPlain.conf": "A786DD4868598F15",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf": "8BBC73472092902E",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf": "0228A79846FD8A97",
|
||||
"Configs/System/ActionContext/ManualCameraContext.conf": "C538807EEE48BED8",
|
||||
"Configs/System/chimeraInputCommon.conf": "795184CF9AD764DB",
|
||||
"Configs/System/chimeraMenus.conf": "C747AFB6B750CE9A",
|
||||
"Configs/Systems/MissionSystems.conf": "C50579A2EC48E8EF",
|
||||
"Prefabs/AI/Groups/Group_Base.et": "000CD338713F2B5A",
|
||||
"Prefabs/AI/SCR_AIWorld.et": "E0A05C76552E7F58",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Cycle.et": "35BD6541CBB8AC08",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Defend.et": "93291E72AC23930F",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetIn.et": "712F4795CF8B91C7",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetOut.et": "C40316EE26846CAB",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Move.et": "750A8D1695BD6998",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "B3E7B8DC2BAB8ACC",
|
||||
"Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et": "86E565387A634103",
|
||||
"Prefabs/Characters/Core/Character_Base.et": "37578B1666981FCE",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et": "836E7E39AAC5888B",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_HeliPilot.et": "42A502E3BB727CEB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Sniper.et": "0F6689B491641155",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et": "2F912ED6E399FF47",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF.et": "36E28C628A2F83CB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF_Medic.et": "9A234C5857D92187",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et": "23ADBBC31B6A3DC6",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et": "1C78331E156A3D65",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_HeliPilot.et": "A62FA97C4EC64F14",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et": "BF643BE4ADBDFDD3",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et": "612F43A4D5AE765F",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Rifleman.et": "DCB41B3746FDD1BE",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et": "5436629450D8387A",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et": "333DA6244C7DA34C",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Sharpshooter.et": "976AC400219898FA",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et": "2DB452B3EC386B92",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et": "8CA70597606992EC",
|
||||
"Prefabs/Characters/Footwear/CombatBoots_US_01.et": "DAAFD15478BDE1C3",
|
||||
"Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et": "F545C1BE7C99954A",
|
||||
"Prefabs/Characters/HeadGear/Helmet_PASGT_01/Helmet_PASGT_01_base.et": "8A2B2A544F3ED831",
|
||||
"Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et": "3CCA7A9BB4FD3197",
|
||||
"Prefabs/Characters/Uniforms/Pants_US_BDU.et": "604BB72BE8E023C2",
|
||||
"Prefabs/Decals/Dirt/Decal_Dirt_Patch_03.et": "4AD6EB80A8B1FA3A",
|
||||
"Prefabs/Groups/BLUFOR/Group_US_FireTeam.et": "84E5BBAB25EA23E5",
|
||||
"Prefabs/Groups/INDFOR/Group_FIA_FireTeam.et": "5BEA04939D148B1D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_Base.et": "8DE0C0830FE0C33D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et": "E552DABF3636C2AD",
|
||||
"Prefabs/Items/Core/Item_Base.et": "C95E11C60810F432",
|
||||
"Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et": "41A9C55B61F375F0",
|
||||
"Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et": "243948B23D90BECB",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et": "AE578EEA4244D41F",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et": "21EF98BFC1EB3793",
|
||||
"Prefabs/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.et": "33B2DFDCD0EBA3DB",
|
||||
"Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et": "13772C903CB5E4F7",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et": "9B6B61BB3FE3DFB0",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R107M.et": "54C68E438DD34265",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R148.et": "E1A5D4B878AA8980",
|
||||
"Prefabs/Items/Equipment/Watches/Watch_SandY184A.et": "78ED4FEF62BBA728",
|
||||
"Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et": "12D5AD21E383B768",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et": "C3F1FA1E2EC2B345",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et": "A81F501D3EF6F38E",
|
||||
"Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et": "0D9A5DCF89AE7AA9",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et": "527D7C5D2E476BDC",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et": "00E36F41CA310E2A",
|
||||
"Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et": "D70216B1B2889129",
|
||||
"Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et": "6D56FED1E55A8F84",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_Base.et": "A242612865F2A48E",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et": "589540B35EBA8CDC",
|
||||
"Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et": "97EF4C1A41F63DDB",
|
||||
"Prefabs/MP/Modes/GameMode_Base.et": "0F307326459A1395",
|
||||
"Prefabs/MP/ScriptedChatEntity.et": "F69BC912AC8236F9",
|
||||
"Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et": "EBBC859CCD94D96D",
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
"Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et": "01AE5FD77A9A4C21",
|
||||
"Prefabs/Structures/Military/Camps/TentUSSR_01/TentUSSR_01_base.et": "BE5D5CFA90224646",
|
||||
"Prefabs/Structures/Military/Camps/TentUS_01/TentUSMedical_01.et": "F8427C3EFC52644E",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Long_noStake.et": "46904AF5D473FB75",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et": "CAE1588B6265A2AB",
|
||||
"Prefabs/Structures/Walls/Concrete/ConcreteWall_01/ConcreteWall_01_3m.et": "60E5729BEA18F875",
|
||||
"Prefabs/Systems/Radio/RadioManager.et": "B8E09FAB91C4ECCD",
|
||||
"Prefabs/Tasks/BaseTask.et": "1D0F815858EE24AD",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et": "7BD282AF716ED639",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et": "DF5CCB7C0FF049F4",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et": "259EE7B78C51B624",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et": "0B4DEA8078B78A9B",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/VehParts/Seats/UAZ469_seats_rear.et": "780AAF0A51AEE61A",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et": "3336BE330C4F355B",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et": "16C1F16C9B053801",
|
||||
"Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et": "98EC9C526AFBA282",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
"Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": "7E1DD1CE4D6A23F4",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x51_M14_20rnd_SpecialBall.et": "627255315038152A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x54_SVD_10rnd_Sniper.et": "9CCB46C6EE632C1A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et": "8B853CDD11BA916E",
|
||||
"Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et": "D1FFE458E8AC4BDB",
|
||||
"Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et": "FA5C25BF66A53DCF",
|
||||
"Prefabs/World/Game/PerceptionManager.et": "028DAEAD63E056BE",
|
||||
"Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp": "13F8D0DE67678118",
|
||||
"Sounds/Vehicles/Wheeled/UAZ469/Vehicles_UAZ469_Horn.acp": "7E64D37BE3E1F3FA",
|
||||
"UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt": "3E7733BAC8C831F6",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset": "21533F2089005056",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset": "F8AC305446D5D480",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds": "EB7F65DBC9392557",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds": "40B12B0DF911B856",
|
||||
"UI/Textures/Flags/US-flag-base-3it.edds": "46FB2FB2C2125A3C",
|
||||
"UI/Textures/Flags/USSR-flag-base-3it.edds": "50824EB9F2C215AB",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI-glow.imageset": "67B3A6DC2D712B52",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI.imageset": "E23427CAC80DA8B7",
|
||||
"UI/Textures/Icons/icons_wrapperUI-glow.imageset": "00FE3DBDFD15227B",
|
||||
"UI/Textures/Icons/icons_wrapperUI.imageset": "3262679C50EF4F01",
|
||||
"UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout": "C4507D07F3C54831",
|
||||
"UI/layouts/Menus/PauseMenu/PauseMenuButton.layout": "9ECCD201BCF07E95",
|
||||
"UI/layouts/Task/TaskListEntry.layout": "B71975032150BAFB",
|
||||
"UI/layouts/Task/TaskListEntryDescription.layout": "552EB1921B5C548C",
|
||||
"UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout": "75C912A1C89BE6C2",
|
||||
"UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout": "4B5AE6E64037FFB4",
|
||||
"UI/layouts/WidgetLibrary/EditBox/WLib_EditBox.layout": "0022F0B45ADBC5AC",
|
||||
"system/textures/defWhite.edds": "A64A8C63E0FBAE87",
|
||||
"worlds/Eden/Eden.ent": "853E92315D1D9EFE",
|
||||
"worlds/MP/Navmeshes/LowResEden.nmn": "5E19E60F26327356"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS actual runner selector/admission; unchanged default display/audio; authored identity consistency and bounded cleanup source controls. No native/managed-lifetime/geometry execution proof.
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"verdict": "No concrete resource placement or ownership conflict found in bounded read-only review.",
|
||||
"core_patch_sha256": "82d2f6c481caef7dc777fd6bf3d92258a4af4b9bf87b207aa7bc1ff4c3aabead",
|
||||
"core_manifest_sha256": "fb7315649ff74edc39375459df6acfd2018c11115dcf3a8f1ec44f7576d08161",
|
||||
"inspected_live": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "15a28876954bbbe0e80d5b5b19e7336f154023cd05b67d65dd709ae7fd9ac712",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "8709753e86dc2ca777183f08cb8fbb9851e0c0de495ca01520ebcb1b3dfa59b9"
|
||||
},
|
||||
"findings": [
|
||||
"Site prop elevation offset is reapplied after terrain grounding, preserving derived -minimumY.",
|
||||
"Site prop yaw and offset rotation match shared survey heading.",
|
||||
"Exact spawned static wrapper is appended to rollback ownership and site props before native navmesh rebuild.",
|
||||
"Ready mode ownership retains existing normal cleanup path; preparation failure deletes own wrapper via existing Rollback.",
|
||||
"Preparing to RadioSearch transition invokes existing prison-AI phase handler and wakes original mission forces.",
|
||||
"Two measured bounded surveys retain existing start/cache square and cover padded wreck AABB square."
|
||||
],
|
||||
"limits": [
|
||||
"No compiler or native execution by reviewer.",
|
||||
"Source Bounds intentionally false until exact measurement.",
|
||||
"Terrain sampling, physical placement, remote replication and manual play require native follow-up."
|
||||
]
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"verdict": "Verified exact raw/archive/current-source binding and strengthened scene/nearby guard evidence.",
|
||||
"archive": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-crash-start-nearby",
|
||||
"raw": "/tmp/erri-workbench-crash-nearby-20261003-1918/logs/logs_2026-10-03_19-19-25",
|
||||
"byte_verified_files": {
|
||||
"console.log.txt": "452172a013b7e38d4bc39a04b127dfea26cd590af2ab6e0cad4c6f08390938ed",
|
||||
"script.log.txt": "c0537e90f36254c930ae48b3bf2a7541726141c3885a7643f950bb73b40876e9",
|
||||
"error.log.txt": "b2f9ba80ba656a90981d456d45267e70cff7555a85af89268d5ee5ef5df002b7",
|
||||
"rereintroduced-hq.log.txt": "772b3e7d9a3d46d404b64a37a7efb95f91b322d03dc7ba656fca2a26843eba23",
|
||||
"runner.json.txt": "396397efca4b20057a563bf6120372383f663f89ea2df0111e87010302c855f9",
|
||||
"external-addons-inputs.json.txt": "f28aa36e1e9c8352773836551ad58e47df1703de3c742b069596b6fb622c6fa3",
|
||||
"launch-source.json": "4db9240e6f220a903b3b5daca0c8e319c15cfaab588627c0db185cc224f7ca31",
|
||||
"launch-source-sha256.json": "513004bc879f0850f5ffb6959725b5958df1ad737635d6b3b47be43ea35c9f5e"
|
||||
},
|
||||
"source_manifest_sha256": "513004bc879f0850f5ffb6959725b5958df1ad737635d6b3b47be43ea35c9f5e",
|
||||
"authored_source_files": 437,
|
||||
"all_current_authored_match_launch": true,
|
||||
"assertions_passed": 66,
|
||||
"smoke_completions": 1,
|
||||
"script_failures": 0,
|
||||
"engine_errors_retained": 13,
|
||||
"cleanup_confirmed": true,
|
||||
"scene": {
|
||||
"direct_start": "RADIO_SEARCH without PRISON",
|
||||
"root": "one generated owned replicated CrashSite, no prison guards/gate",
|
||||
"wreck": "one exact owned static UH1H wrapper, measured bounds fit on all3axes, offset outside all16slot positions",
|
||||
"salvage": "one finite owned bag",
|
||||
"current_direct_stock": [
|
||||
{
|
||||
"item": "PM pistols",
|
||||
"effective_resource": "{C0F7DD85A86B2900}Prefabs/Weapons/Handguns/PM/Handgun_PM.et",
|
||||
"count": 5
|
||||
},
|
||||
{
|
||||
"item": "loose PM magazines",
|
||||
"effective_resource": "{8B853CDD11BA916E}Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et",
|
||||
"count": 8
|
||||
},
|
||||
{
|
||||
"item": "shared field map",
|
||||
"effective_resource": "{A46500E4A30B653B}Prefabs/Items/Equipment/ERRM_SharedFieldMap.et",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"stock_proof": "Passing actual count==definition.Count assertions with native direct reciprocal bag storage; current counts, not immutable startup identity ledger."
|
||||
},
|
||||
"enemy_release": {
|
||||
"global_observation": {
|
||||
"checked": 75,
|
||||
"prison_held": 0,
|
||||
"native_active": 1,
|
||||
"native_dormant": 74
|
||||
},
|
||||
"nearby_originals": {
|
||||
"retained": 5,
|
||||
"nearby_within_100m": 5,
|
||||
"active": 5,
|
||||
"lod": 0,
|
||||
"permanent_lod": -1,
|
||||
"prison_held": 0,
|
||||
"identity_checks": "Exact captured original agents/bodies, retained group/current membership, alive fighting nonplayer and distance; no replaced group accepted.",
|
||||
"threshold_limit": "Fixture requires at least one active original; this native run actually logged all five active."
|
||||
},
|
||||
"activation_overrides_in_probe_or_smoke": false
|
||||
},
|
||||
"scope": [
|
||||
"Scripted local Workbench route uses player teleports and damage-protected player.",
|
||||
"Actual native inventory transfers recover existing clue documents; configured defence shortened to30seconds with interruption/reset control.",
|
||||
"Existing extraction occupancy is forced through native GetInVehicle; no manual interaction or flight proof.",
|
||||
"No multiplayer/JIP, FPS, combat survival, route walkability or helicopter flight qualification.",
|
||||
"Static wreck geometry/native placement is observed; no simulated crash, forced injuries, flight or seat transfer at initial spawn.",
|
||||
"Default prison run is separate and was still active; this review makes no claim about its completion."
|
||||
],
|
||||
"review_execution": "Read-only source/hash/log inspection only; no compiler/native run."
|
||||
}
|
||||
@@ -0,0 +1,242 @@
|
||||
{
|
||||
"verdict": "No missing authorized dependency declaration or forbidden original Escapists requirement found.",
|
||||
"authored_files_validated": 437,
|
||||
"project": {
|
||||
"core": {
|
||||
"id": "ERR_Core",
|
||||
"guid": "2528466DE220D91C",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"595F2BF2F44836FB",
|
||||
"5E524E4FEECCA92B",
|
||||
"629B2BA37EFFD577",
|
||||
"65930CB4CD0237B2"
|
||||
]
|
||||
}
|
||||
},
|
||||
"external_policy_sha256": "47c644504a55074c781f0e004b2b086c01dda30748240c3e5cdeb90eb40be869",
|
||||
"installed_addons": {
|
||||
"1337C0DE5DABBEEF": {
|
||||
"title": "RHS: Status Quo - Content Pack 01",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc",
|
||||
"rdb_sha256": "e8706d6b9bb2474b65f7c588de9fcfad4516bd26dc12e7b6b687e7973a41e7a6",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"595F2BF2F44836FB": {
|
||||
"title": "RHS: Status Quo",
|
||||
"dependencies": [
|
||||
"1337C0DE5DABBEEF",
|
||||
"58D0FB3206B6F859",
|
||||
"BADC0DEDABBEDA5E"
|
||||
],
|
||||
"project_sha256": "1b83e9df126db639cfcdb6d5119e65a1581c028becd6c09998143ed527ad0721",
|
||||
"rdb_sha256": "25f6405084fd228ff400868b21f033c4c43d44162ce73de562e06d8003b94a49",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"5E389BB9F58B79A6": {
|
||||
"title": "WCS_SpaceCore",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34",
|
||||
"rdb_sha256": "c4293fef30948a3538751533cc52c9ce449ffada931b47a8fdf1ca48c1618e75",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"5E524E4FEECCA92B": {
|
||||
"title": "WCS_BMP-1",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859",
|
||||
"5E389BB9F58B79A6",
|
||||
"629B2BA37EFFD577"
|
||||
],
|
||||
"project_sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259",
|
||||
"rdb_sha256": "c65677e8767d92c96c6f35b482350d56e3dccfa026a3c5470b332120990f047c",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"629B2BA37EFFD577": {
|
||||
"title": "WCS_Armaments",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1",
|
||||
"rdb_sha256": "7f38b7ed578b0b47864648a7b70288fe49dae4cc2556d5754377a1c28b2b6532",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"65930CB4CD0237B2": {
|
||||
"title": "Parachute Framework",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc",
|
||||
"rdb_sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4",
|
||||
"matches_last_native_inputs": true
|
||||
},
|
||||
"BADC0DEDABBEDA5E": {
|
||||
"title": "RHS: Status Quo - Content Pack 02",
|
||||
"dependencies": [
|
||||
"58D0FB3206B6F859"
|
||||
],
|
||||
"project_sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4",
|
||||
"rdb_sha256": "736bcd2e60177e5af99d93c6b5f07ad79a950899aaca23000f33ad405cd1b74e",
|
||||
"matches_last_native_inputs": true
|
||||
}
|
||||
},
|
||||
"exact_external_resource_identities": [
|
||||
{
|
||||
"path": "Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1M2.et",
|
||||
"guid": "A1D5833FF10C6503",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Attachments/Optics/1p21/Optic_1P21.et",
|
||||
"guid": "695AAA77F84EB238",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Attachments/Optics/m8541/Optic_M8541.et",
|
||||
"guid": "333A794F0B55C019",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Attachments/Optics/1p78/Optic_1P78.et",
|
||||
"guid": "8D4BAA235F7EDBEA",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Configs/Factions/RHS_ION.conf",
|
||||
"guid": "CB76A36EACFBDF35",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Configs/Factions/RHS_RF_MSV.conf",
|
||||
"guid": "627A8CDE681D223D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Configs/Factions/RHS_US_USMC.conf",
|
||||
"guid": "F33C7BF22CBF3A8A",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Groups/BLUFOR/RHS_USAF/RHS_USAF_USMC_MEF/Group_USAF_USMC_MEF_FireTeam.et",
|
||||
"guid": "19843E954790DF28",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Groups/INDFOR/RHS_ION/RHS_ION_COY/Group_RHS_ION_COY_StaticSecurityTeam.et",
|
||||
"guid": "516C8C7400DF2C4D",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Groups/OPFOR/RHS_AFRF/MSV/Flora/Group_RHS_RF_MSV_Flora_FireGroup.et",
|
||||
"guid": "AB905EF799E0A0AE",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Rifleman_Random.et",
|
||||
"guid": "844936B168DFAB8E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/BLUFOR/RHS_USAF/RHS_USAF_MARSOC/RandomSoldiers/Character_RHS_USMC_MARSOC_Medic_Random.et",
|
||||
"guid": "DBB8D1F13930220E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_SL.et",
|
||||
"guid": "B3C496CCFA72D25E",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/OPFOR/RHS_AFRF/MSV/Flora/Character_RHS_RF_MSV_Flora_Medic.et",
|
||||
"guid": "D9AF475A4E5DC52C",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Rifleman_Random.et",
|
||||
"guid": "140001FC383DF9A2",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Characters/Factions/INDFOR/RHS_ION_Coy/RandomSoldiers/Character_RHS_ION_Coy_Medic_Random.et",
|
||||
"guid": "0FA8ACE19A772327",
|
||||
"addon": "595F2BF2F44836FB",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Vehicles/Tracked/BMP1/BMP1_Base.et",
|
||||
"guid": "1DC01AAACFFA8B63",
|
||||
"addon": "5E524E4FEECCA92B",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Launchers/FIM92_Stinger/Launcher_FIM92_Stinger.et",
|
||||
"guid": "3DF204EEE0534EF2",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Launchers/9K38_IGLA/Launcher_9K38_IGLA.et",
|
||||
"guid": "962C400354E4BD6C",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/Weapons/Core/Armament_Empty.et",
|
||||
"guid": "52120E4BA120661B",
|
||||
"addon": "629B2BA37EFFD577",
|
||||
"unique_installed_identity": true
|
||||
},
|
||||
{
|
||||
"path": "Prefabs/DeployedParachutes/Core/DeployedParachuteMK4.et",
|
||||
"guid": "9ADD554959C09197",
|
||||
"addon": "65930CB4CD0237B2",
|
||||
"unique_installed_identity": true
|
||||
}
|
||||
],
|
||||
"source_package_contract": [
|
||||
"Current437 authored files pass actual source_bundle.inventory + validate read-only.",
|
||||
"Exact direct dependency set is vanilla + RHS StatusQuo + WCS Armaments + WCS BMP1 + Parachute Framework.",
|
||||
"Audited transitive closure includes two RHS content packs and WCS SpaceCore; seven external addons total.",
|
||||
"Source bundle contains own addon source plus dependency metadata; external assets are not embedded.",
|
||||
"Known original ecosystem namespaces ESCT/SCRTC_/SCRT_/EAI_ rejected in authored payload; closed project and dependency identity checks exclude original Escapists addon.",
|
||||
"Native package copy_payload delegates actual source bundle validation, copies only addons/ owned payload, and exposes external addons via exact audited private-profile links.",
|
||||
"External-profile policy rejects unrelated addon directories/changed manifests/unreviewed dependency edges."
|
||||
],
|
||||
"tools": {
|
||||
"tools/source_bundle.py": "5d1d0150d8009f24a950ee85501d0da8b1f69d5fcbb5a7118b08957f14658f57",
|
||||
"tools/native_package.py": "32195bf9b43024028e9931a99885d0a131b28ba1b77b32e9d6ed70b914625559",
|
||||
"tools/external_addons.py": "c389b76c4d5f0f763420cd7d564d3ff5ebb7350cac10d2a26164c17f59b72dde",
|
||||
"tools/check.py": "2965f354c39b6dd44f9f8a0c8d923fc65056fb1464d0227adf75ad98ab707d36",
|
||||
"tools/source_manifest.py": "c1a985348bad16f3b5b69ef7e545b6341eca298d8ae08111b8340b31535cc199",
|
||||
"addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4"
|
||||
},
|
||||
"native_input_reference": {
|
||||
"path": "/tmp/erri-workbench-crash-nearby-20261003-1918/logs/logs_2026-10-03_19-19-25/external-addons-inputs.json",
|
||||
"sha256": "f28aa36e1e9c8352773836551ad58e47df1703de3c742b069596b6fb622c6fa3"
|
||||
},
|
||||
"limits": [
|
||||
"Read-only Python validation and manifest/RDB identity hashing; no native process, compiler, package build or live mutation.",
|
||||
"No new runtime candidate created or existing package requalified.",
|
||||
"This checks explicit declared dependencies and admitted resource identities, not redistribution/licensing of external assets."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
{
|
||||
"Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob": "E443663E5241622A",
|
||||
"Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob": "77C9FCF3FB1246E9",
|
||||
"Assets/Items/Equipment/workspaces/paper_map.agr": "83675D0B0AB1B2C3",
|
||||
"Assets/Items/Equipment/workspaces/player_map.asi": "56794534F6B8C3D7",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat": "B47B52D9DA68905D",
|
||||
"Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat": "610803CC3F3D6649",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat": "7D2E831AFA5CF50D",
|
||||
"Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob": "819ED3266EE5113B",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat": "2169E8EB73E1C127",
|
||||
"Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat": "31529E064AA7C917",
|
||||
"Assets/Props/Military/Sandbags/Sandbag_01_short.xob": "268DBDABB3C94AD7",
|
||||
"Assets/Structures/BuildingsParts/Doors/DoorFrame_door_metal_A_RIGHT_EXT_B.xob": "E3BC73BFBC7AA497",
|
||||
"Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob": "0B96D139FEBCA006",
|
||||
"Configs/Callsigns/Callsigns_US.conf": "CB7824D572DD0D5C",
|
||||
"Configs/Callsigns/Callsigns_USSR.conf": "958043CE1648EC43",
|
||||
"Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf": "B56E8B4D4B195559",
|
||||
"Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf": "4E70E7C4C2C17D4A",
|
||||
"Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf": "5F7EC52FC40A03E2",
|
||||
"Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf": "0BF36EFF9FFAF92B",
|
||||
"Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf": "0E4B62F186F97C43",
|
||||
"Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf": "3B679F1799D55F6F",
|
||||
"Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf": "37D5B75AAC3E72EA",
|
||||
"Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf": "C53421647C3D0D2E",
|
||||
"Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf": "B4CA6761AC935808",
|
||||
"Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf": "DDF17C8C140BD1F2",
|
||||
"Configs/Factions/BLUFOR.conf": "E7B7EA4823DD81F0",
|
||||
"Configs/Factions/FIA.conf": "8053DB656DD18B14",
|
||||
"Configs/Factions/OPFOR.conf": "B122E3B10BB3404B",
|
||||
"Configs/GameOverScreen/BaseGameOverScreensConfig.conf": "651583FFFB7FC765",
|
||||
"Configs/Identities/FactionIdentity_US.conf": "B600946E9ACC17C2",
|
||||
"Configs/Identities/FactionIdentity_USSR.conf": "FBBCD73926989580",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_US.conf": "B548A5B264939A98",
|
||||
"Configs/Identities/Territories/FactionHomeTerritory_USSR.conf": "31FC78AF00523A99",
|
||||
"Configs/Map/MapPlain.conf": "A786DD4868598F15",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf": "8BBC73472092902E",
|
||||
"Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf": "0228A79846FD8A97",
|
||||
"Configs/System/ActionContext/ManualCameraContext.conf": "C538807EEE48BED8",
|
||||
"Configs/System/chimeraInputCommon.conf": "795184CF9AD764DB",
|
||||
"Configs/System/chimeraMenus.conf": "C747AFB6B750CE9A",
|
||||
"Configs/Systems/MissionSystems.conf": "C50579A2EC48E8EF",
|
||||
"Prefabs/AI/Groups/Group_Base.et": "000CD338713F2B5A",
|
||||
"Prefabs/AI/SCR_AIWorld.et": "E0A05C76552E7F58",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Cycle.et": "35BD6541CBB8AC08",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Defend.et": "93291E72AC23930F",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetIn.et": "712F4795CF8B91C7",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_GetOut.et": "C40316EE26846CAB",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_Move.et": "750A8D1695BD6998",
|
||||
"Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et": "B3E7B8DC2BAB8ACC",
|
||||
"Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et": "86E565387A634103",
|
||||
"Prefabs/Characters/Core/Character_Base.et": "37578B1666981FCE",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et": "836E7E39AAC5888B",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_HeliPilot.et": "42A502E3BB727CEB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Sniper.et": "0F6689B491641155",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Unarmed.et": "2F912ED6E399FF47",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF.et": "36E28C628A2F83CB",
|
||||
"Prefabs/Characters/Factions/BLUFOR/US_Army/GreenBerets/Character_US_SF_Medic.et": "9A234C5857D92187",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et": "23ADBBC31B6A3DC6",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et": "1C78331E156A3D65",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_HeliPilot.et": "A62FA97C4EC64F14",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et": "BF643BE4ADBDFDD3",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et": "612F43A4D5AE765F",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Rifleman.et": "DCB41B3746FDD1BE",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et": "5436629450D8387A",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et": "333DA6244C7DA34C",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_Sharpshooter.et": "976AC400219898FA",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et": "2DB452B3EC386B92",
|
||||
"Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et": "8CA70597606992EC",
|
||||
"Prefabs/Characters/Footwear/CombatBoots_US_01.et": "DAAFD15478BDE1C3",
|
||||
"Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et": "F545C1BE7C99954A",
|
||||
"Prefabs/Characters/HeadGear/Helmet_PASGT_01/Helmet_PASGT_01_base.et": "8A2B2A544F3ED831",
|
||||
"Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et": "3CCA7A9BB4FD3197",
|
||||
"Prefabs/Characters/Uniforms/Pants_US_BDU.et": "604BB72BE8E023C2",
|
||||
"Prefabs/Decals/Dirt/Decal_Dirt_Patch_03.et": "4AD6EB80A8B1FA3A",
|
||||
"Prefabs/Groups/BLUFOR/Group_US_FireTeam.et": "84E5BBAB25EA23E5",
|
||||
"Prefabs/Groups/INDFOR/Group_FIA_FireTeam.et": "5BEA04939D148B1D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_Base.et": "8DE0C0830FE0C33D",
|
||||
"Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et": "E552DABF3636C2AD",
|
||||
"Prefabs/Items/Core/Item_Base.et": "C95E11C60810F432",
|
||||
"Prefabs/Items/Equipment/Backpacks/Backpack_Kolobok.et": "41A9C55B61F375F0",
|
||||
"Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et": "243948B23D90BECB",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et": "AE578EEA4244D41F",
|
||||
"Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et": "21EF98BFC1EB3793",
|
||||
"Prefabs/Items/Equipment/Kits/RepairKit_01/RepairKit_01_wrench.et": "33B2DFDCD0EBA3DB",
|
||||
"Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et": "13772C903CB5E4F7",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et": "9B6B61BB3FE3DFB0",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R107M.et": "54C68E438DD34265",
|
||||
"Prefabs/Items/Equipment/Radios/Radio_R148.et": "E1A5D4B878AA8980",
|
||||
"Prefabs/Items/Equipment/Watches/Watch_SandY184A.et": "78ED4FEF62BBA728",
|
||||
"Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et": "12D5AD21E383B768",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et": "C3F1FA1E2EC2B345",
|
||||
"Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et": "A81F501D3EF6F38E",
|
||||
"Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et": "0D9A5DCF89AE7AA9",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et": "527D7C5D2E476BDC",
|
||||
"Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et": "00E36F41CA310E2A",
|
||||
"Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et": "D70216B1B2889129",
|
||||
"Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et": "6D56FED1E55A8F84",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_Base.et": "A242612865F2A48E",
|
||||
"Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et": "589540B35EBA8CDC",
|
||||
"Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et": "97EF4C1A41F63DDB",
|
||||
"Prefabs/MP/Modes/GameMode_Base.et": "0F307326459A1395",
|
||||
"Prefabs/MP/ScriptedChatEntity.et": "F69BC912AC8236F9",
|
||||
"Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et": "EBBC859CCD94D96D",
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
"Prefabs/Props/Wrecks/UH1H_wreck/UH1H_wreck_static.et": "74DCE1AEC6832E18",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
"Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et": "01AE5FD77A9A4C21",
|
||||
"Prefabs/Structures/Military/Camps/TentUSSR_01/TentUSSR_01_base.et": "BE5D5CFA90224646",
|
||||
"Prefabs/Structures/Military/Camps/TentUS_01/TentUSMedical_01.et": "F8427C3EFC52644E",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Long_noStake.et": "46904AF5D473FB75",
|
||||
"Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et": "CAE1588B6265A2AB",
|
||||
"Prefabs/Structures/Walls/Concrete/ConcreteWall_01/ConcreteWall_01_3m.et": "60E5729BEA18F875",
|
||||
"Prefabs/Systems/Radio/RadioManager.et": "B8E09FAB91C4ECCD",
|
||||
"Prefabs/Tasks/BaseTask.et": "1D0F815858EE24AD",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_armed.et": "7BD282AF716ED639",
|
||||
"Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et": "DF5CCB7C0FF049F4",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et": "259EE7B78C51B624",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et": "0B4DEA8078B78A9B",
|
||||
"Prefabs/Vehicles/Wheeled/UAZ469/VehParts/Seats/UAZ469_seats_rear.et": "780AAF0A51AEE61A",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et": "3336BE330C4F355B",
|
||||
"Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_transport.et": "16C1F16C9B053801",
|
||||
"Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et": "98EC9C526AFBA282",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_4x20/Optic_4x20.et": "BD496EE1B40DC510",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_ARTII/Optic_ARTII.et": "D2018EDB1BBF4C88",
|
||||
"Prefabs/Weapons/Attachments/Optics/Optic_PSO1/Optic_PSO1.et": "C850A33226B8F9C1",
|
||||
"Prefabs/Weapons/Core/VehiclePeriscope_DummyWeapon_Base.et": "7E1DD1CE4D6A23F4",
|
||||
"Prefabs/Weapons/Explosives/Mine_PMN4/Mine_PMN4.et": "B05A816C0BF50802",
|
||||
"Prefabs/Weapons/Handguns/PM/Handgun_PM.et": "C0F7DD85A86B2900",
|
||||
"Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et": "BBB50A815A2F916B",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x51_M14_20rnd_SpecialBall.et": "627255315038152A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_762x54_SVD_10rnd_Sniper.et": "9CCB46C6EE632C1A",
|
||||
"Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et": "8B853CDD11BA916E",
|
||||
"Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et": "D1FFE458E8AC4BDB",
|
||||
"Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et": "FA5C25BF66A53DCF",
|
||||
"Prefabs/World/Game/PerceptionManager.et": "028DAEAD63E056BE",
|
||||
"Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp": "13F8D0DE67678118",
|
||||
"Sounds/Vehicles/Wheeled/UAZ469/Vehicles_UAZ469_Horn.acp": "7E64D37BE3E1F3FA",
|
||||
"UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt": "3E7733BAC8C831F6",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset": "21533F2089005056",
|
||||
"UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset": "F8AC305446D5D480",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds": "EB7F65DBC9392557",
|
||||
"UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds": "40B12B0DF911B856",
|
||||
"UI/Textures/Flags/US-flag-base-3it.edds": "46FB2FB2C2125A3C",
|
||||
"UI/Textures/Flags/USSR-flag-base-3it.edds": "50824EB9F2C215AB",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI-glow.imageset": "67B3A6DC2D712B52",
|
||||
"UI/Textures/Icons/icons_mapMarkersUI.imageset": "E23427CAC80DA8B7",
|
||||
"UI/Textures/Icons/icons_wrapperUI-glow.imageset": "00FE3DBDFD15227B",
|
||||
"UI/Textures/Icons/icons_wrapperUI.imageset": "3262679C50EF4F01",
|
||||
"UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout": "C4507D07F3C54831",
|
||||
"UI/layouts/Menus/PauseMenu/PauseMenuButton.layout": "9ECCD201BCF07E95",
|
||||
"UI/layouts/Task/TaskListEntry.layout": "B71975032150BAFB",
|
||||
"UI/layouts/Task/TaskListEntryDescription.layout": "552EB1921B5C548C",
|
||||
"UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout": "75C912A1C89BE6C2",
|
||||
"UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout": "4B5AE6E64037FFB4",
|
||||
"UI/layouts/WidgetLibrary/EditBox/WLib_EditBox.layout": "0022F0B45ADBC5AC",
|
||||
"system/textures/defWhite.edds": "A64A8C63E0FBAE87",
|
||||
"worlds/Eden/Eden.ent": "853E92315D1D9EFE",
|
||||
"worlds/MP/Navmeshes/LowResEden.nmn": "5E19E60F26327356"
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"status": "first native measurement proposal ready; exact source geometry unknown",
|
||||
"source_manifest_sha256": "e2d0794b0479de737ac897200fc37ea57471d7aec9c3f31d77a1a65f81bad49f",
|
||||
"patch_sha256": "bb9299bc8bc95c3f63751253eba685611d152b65ce0b113f8da54e30254acc51",
|
||||
"resource_audit_sha256": "6233bc8d785dd8cbb05cec1b2ec1f27a30721f51bb3ef311057a695484987b92",
|
||||
"new_guids_no_live_meta_collision": [
|
||||
"174211DDE2F6422B",
|
||||
"486DDD0B811047EE"
|
||||
],
|
||||
"tests": {
|
||||
"command": "python3 /tmp/erri-crash-resource-1806/test_measurement_contract.py",
|
||||
"test_sha256": "6491b6b289ff93e549f766d987072409109b15b045dc29021aa1e44cd6328f6a",
|
||||
"log_sha256": "e21e2ee6206319a6942dc45008252af6d096d57ca31fe30dc4442945736f8c58",
|
||||
"result": "pass",
|
||||
"scope": "actual Python AST admission; static resource and bounded cleanup source guards, not native execution"
|
||||
},
|
||||
"native_command_options": "--smoke crash-geometry --project chat --rounds 1 --timeout 180",
|
||||
"geometry_contract": "ERR_CrashSiteResources.Bounds(out minimum,out maximum) returns false until exact wrapper native bounds are archived; core derives offset/survey from measured values",
|
||||
"limits": [
|
||||
"No engine launch or compiler executed by author.",
|
||||
"No native placement, collision walkability, multiplayer visibility or FPS qualification.",
|
||||
"No aircraft flight, seat, crew, inventory, injury, fire or control system added.",
|
||||
"Probe creates only static owned wrapper at high altitude then immediately deletes it on both measurement success and refusal.",
|
||||
"Existing scene/player setup runs; crash-geometry never unlocks prison or changes existing actors.",
|
||||
"No third-party prefab/model bytes copied; owned wrapper inherits installed vanilla resource."
|
||||
],
|
||||
"files": [
|
||||
"addons/core/Prefabs/ERR/CrashSite.et",
|
||||
"addons/core/Prefabs/ERR/CrashSite.et.meta",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et.meta",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c",
|
||||
"tools/headless_workbench.py",
|
||||
"docs/vanilla-resources.json"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Prefabs/ERR/CrashSite.et
|
||||
@@ -0,0 +1,7 @@
|
||||
+GenericEntity {
|
||||
+ ID "46B3FAD3A89A4EA3"
|
||||
+ components {
|
||||
+ ERR_LocationComponent "{606DF66235E34CA9}" { m_Kind 0 }
|
||||
+ RplComponent "{B6AB8FE43FE143B4}" { Streamable Disabled }
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Prefabs/ERR/CrashSite.et.meta
|
||||
@@ -0,0 +1,7 @@
|
||||
+MetaFileClass {
|
||||
+ Name "{174211DDE2F6422B}Prefabs/ERR/CrashSite.et"
|
||||
+ Configurations {
|
||||
+ ResourceClass PC {}
|
||||
+ ResourceClass HEADLESS : PC {}
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Prefabs/ERR/CrashWreck.et
|
||||
@@ -0,0 +1,9 @@
|
||||
+GenericEntity : "{74DCE1AEC6832E18}Prefabs/Props/Wrecks/UH1H_wreck/UH1H_wreck_static.et" {
|
||||
+ ID "BDBAE020F10A41DF"
|
||||
+ components {
|
||||
+ Hierarchy "{BD920DE465D04435}" {}
|
||||
+ RplComponent "{7E4852E4567E49D6}" { Streamable Disabled }
|
||||
+ }
|
||||
+ coords 0 0 0
|
||||
+ angles 0 0 0
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Prefabs/ERR/CrashWreck.et.meta
|
||||
@@ -0,0 +1,7 @@
|
||||
+MetaFileClass {
|
||||
+ Name "{486DDD0B811047EE}Prefabs/ERR/CrashWreck.et"
|
||||
+ Configurations {
|
||||
+ ResourceClass PC {}
|
||||
+ ResourceClass HEADLESS : PC {}
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c
|
||||
@@ -0,0 +1,12 @@
|
||||
+// Owned static aftermath; no aircraft, crew, flight or inventory systems.
|
||||
+class ERR_CrashSiteResources
|
||||
+{
|
||||
+ static ResourceName SitePrefab() { return "{174211DDE2F6422B}Prefabs/ERR/CrashSite.et"; }
|
||||
+ static ResourceName WreckPrefab() { return "{486DDD0B811047EE}Prefabs/ERR/CrashWreck.et"; }
|
||||
+ static bool Bounds(out vector minimum, out vector maximum)
|
||||
+ {
|
||||
+ // Fail closed until the exact owned wrapper has native measured bounds.
|
||||
+ minimum = vector.Zero; maximum = vector.Zero;
|
||||
+ return false;
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c
|
||||
@@ -0,0 +1,82 @@
|
||||
+// Explicit WORKBENCH measurement only. Never moves or seats a player/AI.
|
||||
+#ifdef WORKBENCH
|
||||
+class ERR_NativeCrashGeometryProbe
|
||||
+{
|
||||
+ protected static bool Finite(vector value)
|
||||
+ {
|
||||
+ for (int axis = 0; axis < 3; axis++)
|
||||
+ if (value[axis] != value[axis] || Math.AbsFloat(value[axis]) > 1000000) return false;
|
||||
+ return true;
|
||||
+ }
|
||||
+ protected static bool Measure(IEntity root, out vector minimum, out vector maximum)
|
||||
+ {
|
||||
+ minimum = "1000000 1000000 1000000"; maximum = "-1000000 -1000000 -1000000";
|
||||
+ if (!root || !root.GetVObject() || !root.FindComponent(RplComponent)) return false;
|
||||
+ Physics physics = root.GetPhysics();
|
||||
+ if (!physics || physics.IsDynamic()) return false;
|
||||
+ array<IEntity> nodes = {root};
|
||||
+ int meshes;
|
||||
+ for (int index = 0; index < nodes.Count(); index++)
|
||||
+ {
|
||||
+ IEntity entity = nodes[index];
|
||||
+ if (!entity) return false;
|
||||
+ Physics childPhysics = entity.GetPhysics();
|
||||
+ if (childPhysics && childPhysics.IsDynamic()) return false;
|
||||
+ if (entity.GetVObject())
|
||||
+ {
|
||||
+ vector low, high; entity.GetBounds(low, high);
|
||||
+ if (!Finite(low) || !Finite(high)) return false;
|
||||
+ for (int axis = 0; axis < 3; axis++)
|
||||
+ if (high[axis] <= low[axis] || high[axis] - low[axis] > 40) return false;
|
||||
+ meshes++;
|
||||
+ for (int x = 0; x < 2; x++)
|
||||
+ {
|
||||
+ for (int y = 0; y < 2; y++)
|
||||
+ {
|
||||
+ for (int z = 0; z < 2; z++)
|
||||
+ {
|
||||
+ vector corner = low;
|
||||
+ if (x) corner[0] = high[0];
|
||||
+ if (y) corner[1] = high[1];
|
||||
+ if (z) corner[2] = high[2];
|
||||
+ vector local = root.CoordToLocal(entity.CoordToParent(corner));
|
||||
+ if (!Finite(local)) return false;
|
||||
+ for (int component = 0; component < 3; component++)
|
||||
+ {
|
||||
+ minimum[component] = Math.Min(minimum[component], local[component]);
|
||||
+ maximum[component] = Math.Max(maximum[component], local[component]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ IEntity child = entity.GetChildren();
|
||||
+ while (child)
|
||||
+ {
|
||||
+ if (nodes.Count() >= 32 || nodes.Contains(child)) return false;
|
||||
+ nodes.Insert(child); child = child.GetSibling();
|
||||
+ }
|
||||
+ }
|
||||
+ if (!meshes || !Finite(minimum) || !Finite(maximum)) return false;
|
||||
+ for (int dimension = 0; dimension < 3; dimension++)
|
||||
+ if (maximum[dimension] <= minimum[dimension] || maximum[dimension] - minimum[dimension] > 40) return false;
|
||||
+ PrintFormat("ERR CRASH GEOMETRY: nodes=%1 meshes=%2 static=1 replicatedRoot=1 minX=%3 minY=%4 minZ=%5", nodes.Count(), meshes, minimum[0], minimum[1], minimum[2]);
|
||||
+ PrintFormat("ERR CRASH GEOMETRY: maxX=%1 maxY=%2 maxZ=%3 resource=%4", maximum[0], maximum[1], maximum[2], ERR_CrashSiteResources.WreckPrefab());
|
||||
+ return true;
|
||||
+ }
|
||||
+ static bool Run()
|
||||
+ {
|
||||
+ if (!Replication.IsServer()) return false;
|
||||
+ // At high altitude, independent of the pending crash-start setup and terrain.
|
||||
+ // This static prop is the only owned probe entity; every return after creation deletes it.
|
||||
+ IEntity wreck = ERR_Actors.Spawn(ERR_CrashSiteResources.WreckPrefab(), "1000 2500 1000");
|
||||
+ if (!wreck) return false;
|
||||
+ vector minimum, maximum;
|
||||
+ bool measured = Measure(wreck, minimum, maximum);
|
||||
+ ERR_Actors.DeleteSpawned(wreck);
|
||||
+ bool deleted = wreck == null;
|
||||
+ PrintFormat("ERR CRASH GEOMETRY CLEANUP: measured=%1 deleted=%2; no terrain placement or multiplayer visibility claim", measured, deleted);
|
||||
+ return measured && deleted;
|
||||
+ }
|
||||
+}
|
||||
+#endif
|
||||
--- a/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c
|
||||
@@ -29,6 +29,7 @@
|
||||
return camps > 0 && seen.Count() == camps * 2;
|
||||
}
|
||||
|
||||
+ protected bool m_ERRTestCrashGeometry;
|
||||
protected bool m_ERRTestPatrolHQ;
|
||||
protected ref ERR_NativePatrolProbe m_ERRHQPatrolMovement;
|
||||
protected ref ERR_NativePatrolHQProbe m_ERRHQPatrolOrder;
|
||||
@@ -137,6 +138,7 @@
|
||||
m_ERRTestMortarCourier = outcome == "mortar-courier";
|
||||
m_ERRTestMortarSalvo = outcome == "mortar-salvo" || outcome == "mortar-refresh";
|
||||
m_ERRTestMortarTransfer = outcome == "mortar-transfer";
|
||||
+ m_ERRTestCrashGeometry = outcome == "crash-geometry";
|
||||
m_ERRTestPatrolHQ = outcome == "patrol-hq";
|
||||
m_ERRTestPlayerDeath = outcome == "player-death" || m_ERRTestRadioNetwork || m_ERRTestHQResponse || m_ERRTestMortar || m_ERRTestHQMemory || m_ERRTestHQBody || m_ERRTestConvoy || m_ERRTestInfantryTransfer;
|
||||
if (m_ERRTestLocalHandoff || m_ERRTestMountedAmmo || m_ERRTestAlarmHearing) m_ERRTestPlayerDeath = true;
|
||||
@@ -322,6 +324,14 @@
|
||||
protected void ERR_SmokePhase(ERR_Phase previous, ERR_Phase current)
|
||||
{
|
||||
if (m_ERRSmokeDone || !ERR_MissionRules.Terminal(current)) return;
|
||||
+ if (m_ERRTestCrashGeometry)
|
||||
+ {
|
||||
+ if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 3501, "static wreck geometry measured and probe deleted before explicit fixture reset")) return;
|
||||
+ m_ERRSmokeDone = true;
|
||||
+ GetGame().GetCallqueue().Remove(ERR_SmokeTick);
|
||||
+ Print("ERR SMOKE COMPLETE: owned static crash wreck native bounds and local cleanup; terrain placement and multiplayer unqualified");
|
||||
+ return;
|
||||
+ }
|
||||
if (m_ERRTestSupplyTravel)
|
||||
{
|
||||
if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 3201, "production supply travel checked before explicit fixture reset")) return;
|
||||
@@ -673,6 +683,13 @@
|
||||
if (!ERR_Check(CanStartSpawnPreload() && m_ERRSpawnPreloadRequested && !m_SpawnPreload, "prisoner admitted only after enabled native spawn preload finishes")) return;
|
||||
m_ERRSmokePlayer = players[0];
|
||||
if (!ERR_CheckRoster() || !ERR_NativeContractsProbe.Run(this, m_ERRSmokePlayer) || !ERR_CheckCompanionCommands()) return;
|
||||
+ if (m_ERRTestCrashGeometry)
|
||||
+ {
|
||||
+ if (!ERR_Check(ERR_NativeCrashGeometryProbe.Run(), "owned static wreck finite aggregate bounds, static physics and local deletion")) return;
|
||||
+ m_ERRSmokeStep = 3501;
|
||||
+ Transition(ERR_Phase.DEFEAT);
|
||||
+ return;
|
||||
+ }
|
||||
if (m_ERRTestSupplyTravel) { ERR_BeginSupplyTravel(now); return; }
|
||||
if (m_ERRTestAircraftField)
|
||||
{
|
||||
--- a/tools/headless_workbench.py
|
||||
+++ b/tools/headless_workbench.py
|
||||
@@ -14,7 +14,7 @@
|
||||
p.add_argument('--external-addons', type=Path, help='Installed RHS/WCS/BMP source root; expose only audited closure in a separate Chat profile')
|
||||
p.add_argument('--compat', type=Path, required=True, help='Disposable cloned Proton compatdata directory outside Steam')
|
||||
p.add_argument('--profile', type=Path, required=True, help='Separate disposable successor Workbench profile')
|
||||
-p.add_argument('--smoke', choices=['normal-escape-route', 'escape-route', 'optional-site-skip', 'infantry-combat', 'medical-combat', 'hunter-faction', 'unconscious-camera', 'objective-map', 'town-garrisons', 'site-garrisons', 'radio-interaction', 'enemy-loadout', 'aggression', 'air-logistics', 'air-assault', 'air-recon', 'airfield-markers', 'opening-tools', 'mortar-station', 'generated-sites', 'hq-local-handoff', 'infantry-transfer', 'hq-body', 'convoy', 'supply-convoys', 'supply-travel', 'mounted-ammo', 'alarm-hearing', 'hq-memory', 'hq-awareness', 'aircraft-field', 'aircraft-route', 'native-end-active', 'native-end-preparing', 'aircraft-control', 'aircraft-cancel', 'aircraft-translate', 'map-ownership', 'mortar-refresh', 'mortar-salvo', 'mortar-courier', 'station-teardown', 'prison-breach', 'powered-flight', 'powered-translate', 'local-admission', 'mortar-expiry', 'mortar-transfer', 'mortar-fire', 'patrol-hq', 'victory', 'lost-helicopter', 'player-death', 'radio-network', 'hq-response', 'mortar-inventory', 'startup-failure', 'site-survey', 'cache-loss', 'extraction-capacity', 'early-helicopter-loss', 'extraction-startup-failure', 'extraction-boundary-failure', 'transport-loss', 'transport-survey', 'lifecycle', 'objective-ui', 'recovery', 'prisoner-kit', 'medical', 'casualty-load', 'casualty-direct', 'casualty-bench', 'casualty-remove', 'environment', 'environment-restart', 'patrols', 'radio-document-loss', 'radio-document-loss-partial', 'guard-cancel', 'casualty-service'], default='victory')
|
||||
+p.add_argument('--smoke', choices=['crash-geometry', 'normal-escape-route', 'escape-route', 'optional-site-skip', 'infantry-combat', 'medical-combat', 'hunter-faction', 'unconscious-camera', 'objective-map', 'town-garrisons', 'site-garrisons', 'radio-interaction', 'enemy-loadout', 'aggression', 'air-logistics', 'air-assault', 'air-recon', 'airfield-markers', 'opening-tools', 'mortar-station', 'generated-sites', 'hq-local-handoff', 'infantry-transfer', 'hq-body', 'convoy', 'supply-convoys', 'supply-travel', 'mounted-ammo', 'alarm-hearing', 'hq-memory', 'hq-awareness', 'aircraft-field', 'aircraft-route', 'native-end-active', 'native-end-preparing', 'aircraft-control', 'aircraft-cancel', 'aircraft-translate', 'map-ownership', 'mortar-refresh', 'mortar-salvo', 'mortar-courier', 'station-teardown', 'prison-breach', 'powered-flight', 'powered-translate', 'local-admission', 'mortar-expiry', 'mortar-transfer', 'mortar-fire', 'patrol-hq', 'victory', 'lost-helicopter', 'player-death', 'radio-network', 'hq-response', 'mortar-inventory', 'startup-failure', 'site-survey', 'cache-loss', 'extraction-capacity', 'early-helicopter-loss', 'extraction-startup-failure', 'extraction-boundary-failure', 'transport-loss', 'transport-survey', 'lifecycle', 'objective-ui', 'recovery', 'prisoner-kit', 'medical', 'casualty-load', 'casualty-direct', 'casualty-bench', 'casualty-remove', 'environment', 'environment-restart', 'patrols', 'radio-document-loss', 'radio-document-loss-partial', 'guard-cancel', 'casualty-service'], default='victory')
|
||||
p.add_argument('--trace-random-radius', action='store_true', help='Workbench-only read-only zero-radius caller traces; one normal Chat round, capped at sixteen records')
|
||||
p.add_argument('--maintenance-refuel', action='store_true', help='Opt-in normal-route check: original held Southern fuel can transfers finite fuel through its native UAZ action; one arranged tank depletion, no stock creation')
|
||||
p.add_argument('--mounted-swap-eligibility', action='store_true', help='Read-only mounted-ammo variant: one exact finite cargo/mounted magazine CanSwap call; no transfer or radio proof')
|
||||
@@ -35,6 +35,7 @@
|
||||
p.add_argument('--timeout', type=int, default=360)
|
||||
p.add_argument('--project', choices=['core', 'chat'], default='chat', help='Diagnostic fixture family (both load the combined mod)')
|
||||
a = p.parse_args()
|
||||
+if a.smoke == 'crash-geometry' and (a.project != 'chat' or a.rounds != 1 or a.timeout < 180): p.error('crash-geometry requires Chat, one round and timeout at least180 seconds')
|
||||
if a.trace_random_radius and (a.smoke != 'normal-escape-route' or a.project != 'chat' or a.rounds != 1 or a.timeout < 420): p.error('--trace-random-radius requires Chat normal-escape-route, one round and timeout at least 420 seconds')
|
||||
if a.smoke == 'objective-map' and (a.project != 'core' or a.rounds != 1): p.error('objective-map requires --project core --rounds 1')
|
||||
if a.smoke == 'unconscious-camera' and a.project != 'core': p.error('unconscious-camera requires --project core to keep the general smoke fixture inactive')
|
||||
--- a/docs/vanilla-resources.json
|
||||
+++ b/docs/vanilla-resources.json
|
||||
@@ -104,6 +104,7 @@
|
||||
"Prefabs/Props/Furniture/Table_01.et": "53506DCB398C7EBE",
|
||||
"Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et": "B3949F6D215A9F78",
|
||||
"Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et": "CFFEB23FBEA00322",
|
||||
+ "Prefabs/Props/Wrecks/UH1H_wreck/UH1H_wreck_static.et": "74DCE1AEC6832E18",
|
||||
"Prefabs/Structures/BuildingParts/Doors/DoorSet_Base.et": "87CADB5ADC989993",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et": "34B08027DBDE322A",
|
||||
"Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et": "67F17696FF278AE0",
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"verdict": "verified geometry archive and measured-constants lineage; route fixture has a separate stock expectation correction proposed",
|
||||
"archive": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/native-2026-10-03-crash-geometry",
|
||||
"raw": "/tmp/erri-workbench-crash-geometry-20261003-1852/logs/logs_2026-10-03_18-53-52",
|
||||
"byte_verified_files": {
|
||||
"console.log.txt": "05be9f2c953f675c3ed9a58a65bc408ac24543e3ad9708ee89a7da6f665721d1",
|
||||
"script.log.txt": "b0d7f0967f6007e4851bc20001c08760521dcbd72644f33afd792f9fcccad0dd",
|
||||
"error.log.txt": "f847b5369efae07a53cb50871806b5544bfe26755190e7d360ec532e0f6f189f",
|
||||
"rereintroduced-hq.log.txt": "5e65839cdbe62faf1dc7b5ae7f5dd9dbc09377ed8561ad8bff97297586ba318c",
|
||||
"runner.json.txt": "7194cabb905a6c3a25f501682f98d8860a3c1ff9c8b07c596f58d6601e1c9f76",
|
||||
"external-addons-inputs.json.txt": "f28aa36e1e9c8352773836551ad58e47df1703de3c742b069596b6fb622c6fa3",
|
||||
"launch-source.json": "055a468fec2907484b4efc2e98db40c14c0fdaf0f261d18ba9ab90dc6258cce4",
|
||||
"launch-source-sha256.json": "29ff23b8b3afa96f4c5508eb180baf18380504443c675a453a52e85a9869b3cb"
|
||||
},
|
||||
"source_snapshot_exact": true,
|
||||
"early_proposal_native_hashes": {
|
||||
"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/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "c6d51831776946dc51464a69987b0ee497eb8fd60bb071b211c658c789309309",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "55819c6d4a94d80d0f0048ec4845fa5162111d5db723eea79fc86a1fffff1aa2"
|
||||
},
|
||||
"assertions_passed": 32,
|
||||
"smoke_completions": 1,
|
||||
"script_failures": 0,
|
||||
"engine_errors_retained": 13,
|
||||
"cleanup_confirmed": true,
|
||||
"native_scope": "one original owned wrapper, nodes1 meshes1 static1 replicatedRoot1; finite bounds, deleted1; no terrain placement or multiplayer visibility proof",
|
||||
"constants_followup_patch_sha256": "3387eb4121abda7ef81ca5be388e50d12d6ca6c91c33a21c6128aac07f017da3",
|
||||
"constants_source_live_sha256": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
|
||||
"raw_bounds": {
|
||||
"min": [
|
||||
-1.43719,
|
||||
0.512451,
|
||||
-8.79651
|
||||
],
|
||||
"max": [
|
||||
1.4325,
|
||||
3.98193,
|
||||
3.94385
|
||||
]
|
||||
},
|
||||
"stored_bounds": {
|
||||
"min": [
|
||||
-1.439,
|
||||
0.511,
|
||||
-8.798
|
||||
],
|
||||
"max": [
|
||||
1.434,
|
||||
3.983,
|
||||
3.945
|
||||
]
|
||||
},
|
||||
"rounding": "expand each direction by1mm then outward millimetre rounding",
|
||||
"review_execution": "Read-only source/archive verification only; no compiler/native run."
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c
|
||||
@@ -5,8 +5,11 @@
|
||||
static ResourceName WreckPrefab() { return "{486DDD0B811047EE}Prefabs/ERR/CrashWreck.et"; }
|
||||
static bool Bounds(out vector minimum, out vector maximum)
|
||||
{
|
||||
- // Fail closed until the exact owned wrapper has native measured bounds.
|
||||
- minimum = vector.Zero; maximum = vector.Zero;
|
||||
- return false;
|
||||
+ // Exact owned static wrapper measured in WORKBENCH on 2026-10-03.
|
||||
+ // Native bounds: (-1.43719, 0.512451, -8.79651) to (1.4325, 3.98193, 3.94385).
|
||||
+ // Expand by 1mm then round outward to millimetres; terrain survey adds its own clearance.
|
||||
+ minimum = "-1.439 0.511 -8.798";
|
||||
+ maximum = "1.434 3.983 3.945";
|
||||
+ return true;
|
||||
}
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"native_log": "/tmp/erri-workbench-crash-geometry-20261003-1852/logs/logs_2026-10-03_18-53-52/console.log",
|
||||
"console_sha256": "05be9f2c953f675c3ed9a58a65bc408ac24543e3ad9708ee89a7da6f665721d1",
|
||||
"runner_sha256": "7194cabb905a6c3a25f501682f98d8860a3c1ff9c8b07c596f58d6601e1c9f76",
|
||||
"launch_source_sha256": "29ff23b8b3afa96f4c5508eb180baf18380504443c675a453a52e85a9869b3cb",
|
||||
"native_result": "smoke-completed",
|
||||
"cleanup_confirmed": true,
|
||||
"measured_source": {
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178"
|
||||
},
|
||||
"raw_min": [
|
||||
-1.43719,
|
||||
0.512451,
|
||||
-8.79651
|
||||
],
|
||||
"raw_max": [
|
||||
1.4325,
|
||||
3.98193,
|
||||
3.94385
|
||||
],
|
||||
"outward_min": [
|
||||
-1.439,
|
||||
0.511,
|
||||
-8.798
|
||||
],
|
||||
"outward_max": [
|
||||
1.434,
|
||||
3.983,
|
||||
3.945
|
||||
],
|
||||
"rounding": "floor(rawMin*1000-1)/1000 and ceil(rawMax*1000+1)/1000",
|
||||
"derived_core_geometry": {
|
||||
"offset": [
|
||||
13.439,
|
||||
-0.511,
|
||||
0
|
||||
],
|
||||
"survey_center": [
|
||||
13.4365,
|
||||
0,
|
||||
-2.4265
|
||||
],
|
||||
"half_size": 8,
|
||||
"height": 5
|
||||
},
|
||||
"limits": "Native isolated wrapper geometry/static physics/Rpl presence/local cleanup only; no terrain placement, walkability or remote replication proof."
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
PASS: each stored bound is >=1mm outward of exact logged native scalar; derived geometry remains within core caps. No engine/compiler run.
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": {
|
||||
"baseline_sha256": "c6d51831776946dc51464a69987b0ee497eb8fd60bb071b211c658c789309309",
|
||||
"proposal_sha256": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
|
||||
"index_sha256": null
|
||||
}
|
||||
},
|
||||
"patch_sha256": "3387eb4121abda7ef81ca5be388e50d12d6ca6c91c33a21c6128aac07f017da3"
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"files": {
|
||||
"addons/core/Prefabs/ERR/CrashSite.et": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Prefabs/ERR/CrashSite.et.meta": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Prefabs/ERR/CrashWreck.et.meta": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "c6d51831776946dc51464a69987b0ee497eb8fd60bb071b211c658c789309309",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": {
|
||||
"baseline_sha256": null,
|
||||
"proposal_sha256": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
|
||||
"index_sha256": null
|
||||
},
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": {
|
||||
"baseline_sha256": "bc548e03f217a6f07f1d0893157281521a531eb21c54763cabba16064a91532c",
|
||||
"proposal_sha256": "55819c6d4a94d80d0f0048ec4845fa5162111d5db723eea79fc86a1fffff1aa2",
|
||||
"index_sha256": "ff651e27c4a981df66f4fc5b55aadb262df75820aef707bb68c369e548c0c3be"
|
||||
},
|
||||
"tools/headless_workbench.py": {
|
||||
"baseline_sha256": "aa971eb48206042315aa7632625d04d44ec9db82ea568a071b977118cb63361f",
|
||||
"proposal_sha256": "a5c3ec5186fa027be816405b6a7c4b3451d61025c74fd3f16dd9c88deb5201c6",
|
||||
"index_sha256": "b82da94e227a45c87b8ad74cac55d1b48dfaed55b82a66fe867ca4f0e5d22190"
|
||||
},
|
||||
"docs/vanilla-resources.json": {
|
||||
"baseline_sha256": "e10f60ce74a743b4619b0c2f2cc7fefcf09a94ab3ca1cbb332f386d6fb0da387",
|
||||
"proposal_sha256": "ec5ea933464f519eeadb416d7d7d7c0c3376da5204e928f5efff1be70fc61ce9",
|
||||
"index_sha256": "30dccbe13f1737ab832bb287cdef7f5a46ae718eafb68aa13c1c13ebdd29923b"
|
||||
}
|
||||
},
|
||||
"patch_sha256": "bb9299bc8bc95c3f63751253eba685611d152b65ce0b113f8da54e30254acc51",
|
||||
"native_status": "pending; Bounds intentionally false until measured",
|
||||
"resource_audit_sha256": "6233bc8d785dd8cbb05cec1b2ec1f27a30721f51bb3ef311057a695484987b92"
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"defect": "Fixture compared authored vanilla-map placeholder to physically substituted shared field map; recursive inventory enumeration could count installed magazines as loose bag allowance.",
|
||||
"scope": "WORKBENCH fixture only, one source file; no inventory/stock/service mutation.",
|
||||
"evidence": {
|
||||
"map_override": "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c",
|
||||
"site_substitution": "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c:428",
|
||||
"enumeration": "ERR_Inventory.Items deduplicates identities but does not distinguish direct slots from nested weapon storage."
|
||||
},
|
||||
"proof_limit": "Exact current direct-bag prefab counts, not persisted startup identity provenance. Inherited pistol contents are excluded. Native fixture remains pending.",
|
||||
"validation": "Read-only source and API pattern inspection plus apply-check; no compiler/native during parent suite."
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c
|
||||
@@ -7,6 +7,19 @@
|
||||
{
|
||||
if (condition) { Print("ERR SMOKE PASS: crash start " + message); return true; }
|
||||
Print("ERR SMOKE FAIL: crash start " + message, LogLevel.ERROR); return false;
|
||||
+ }
|
||||
+ // GetItems can include magazines installed in a contained pistol. Only exact
|
||||
+ // reciprocal slots owned by this bag count toward its loose authored allowance.
|
||||
+ protected static bool DirectBagItem(IEntity item, IEntity bag)
|
||||
+ {
|
||||
+ if (!item || !bag) return false;
|
||||
+ InventoryItemComponent component = InventoryItemComponent.Cast(item.FindComponent(InventoryItemComponent));
|
||||
+ if (!component) return false;
|
||||
+ InventoryStorageSlot slot = component.GetParentSlot();
|
||||
+ if (!slot) return false;
|
||||
+ BaseInventoryStorageComponent storage = slot.GetStorage();
|
||||
+ return storage && storage.GetOwner() == bag && storage.GetSlot(slot.GetID()) == slot
|
||||
+ && slot.GetParentContainer() == storage && slot.GetAttachedEntity() == item;
|
||||
}
|
||||
static bool Run(ERR_GameMode mode, IEntity player)
|
||||
{
|
||||
@@ -39,10 +52,14 @@
|
||||
if (!Check(inventory && items.Count() > 0 && items.Count() <= 128, "finite starting stock is present")) return false;
|
||||
foreach (ERR_SiteStock stock : site.Definition.Stock)
|
||||
{
|
||||
+ // Mirror the current shared-map Scenario FieldMap override; all other
|
||||
+ // finite stock resources remain exactly as authored in the definition.
|
||||
+ ResourceName expected = stock.Prefab;
|
||||
+ if (expected == ERR_Supplies.Map()) expected = "{A46500E4A30B653B}Prefabs/Items/Equipment/ERRM_SharedFieldMap.et";
|
||||
int count;
|
||||
foreach (IEntity item : items)
|
||||
- if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == stock.Prefab) count++;
|
||||
- if (!Check(count == stock.Count, "original starting stock count " + stock.Prefab)) return false;
|
||||
+ if (DirectBagItem(item, site.Container) && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == expected) count++;
|
||||
+ if (!Check(count == stock.Count, "current direct salvage stock count " + expected)) return false;
|
||||
}
|
||||
if (!Check(ERR_ObjectiveText.Description(mode).Contains("salvage"), "initial objective explains the salvage bag")) return false;
|
||||
PrintFormat("ERR CRASH START: anchor=%1 wreck=%2 halfSize=%3 clearance=%4; on-foot static aftermath, no crash flight or multiplayer proof", site.Definition.Position, wreck.GetOrigin(), halfSize, height);
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"files": {
|
||||
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": {
|
||||
"baseline_sha256": "0e2f21e93065b64dfb034df3d5aec3e8286127ff03d5094fd243b5b36508f365",
|
||||
"proposal_sha256": "d039027a462cc57d35d5e4f722e5b6b03e8f95a38fe66b19982092df983b1db0",
|
||||
"index_sha256": null
|
||||
}
|
||||
},
|
||||
"patch_sha256": "83583d38d0aad96c91f602d3f6a419f0781cf90e72631c85180ec8e91d759245"
|
||||
}
|
||||
Reference in New Issue
Block a user