Recover locomotive policy packed event descriptors
This commit is contained in:
parent
1e36e6c929
commit
c04c19ac82
9 changed files with 679 additions and 18 deletions
|
|
@ -29,7 +29,8 @@
|
|||
"packed_event_blocked_missing_condition_context_count": 0,
|
||||
"packed_event_blocked_territory_condition_scope_count": 0,
|
||||
"packed_event_blocked_missing_compact_control_count": 0,
|
||||
"packed_event_blocked_unmapped_real_descriptor_count": 1,
|
||||
"packed_event_blocked_unmapped_real_descriptor_count": 0,
|
||||
"packed_event_blocked_unmapped_world_descriptor_count": 1,
|
||||
"packed_event_blocked_structural_only_count": 0,
|
||||
"event_runtime_record_count": 1,
|
||||
"total_company_cash": 0
|
||||
|
|
@ -47,10 +48,15 @@
|
|||
{
|
||||
"decode_status": "parity_only",
|
||||
"payload_family": "real_packed_v1",
|
||||
"import_outcome": "blocked_unmapped_real_descriptor",
|
||||
"import_outcome": "blocked_unmapped_world_descriptor",
|
||||
"grouped_effect_rows": [
|
||||
{
|
||||
"descriptor_id": 250,
|
||||
"descriptor_label": "Unknown Loco Available",
|
||||
"target_mask_bits": 8,
|
||||
"parameter_family": "locomotive_availability_scalar",
|
||||
"semantic_family": "scalar_assignment",
|
||||
"semantic_preview": "Set Unknown Loco Available to 42",
|
||||
"row_shape": "scalar_assignment"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
"original_save_sha256": "parity-sample-sha256",
|
||||
"notes": [
|
||||
"tracked as JSON save-slice document rather than raw .smp",
|
||||
"preserves one structured-but-unmapped row and one semantically decoded-but-parity-only row"
|
||||
"preserves one recovered-but-unmapped locomotive policy row and one semantically decoded-but-parity-only row"
|
||||
]
|
||||
},
|
||||
"save_slice": {
|
||||
|
|
@ -66,9 +66,9 @@
|
|||
"group_index": 0,
|
||||
"row_index": 0,
|
||||
"descriptor_id": 250,
|
||||
"descriptor_label": null,
|
||||
"target_mask_bits": null,
|
||||
"parameter_family": null,
|
||||
"descriptor_label": "Unknown Loco Available",
|
||||
"target_mask_bits": 8,
|
||||
"parameter_family": "locomotive_availability_scalar",
|
||||
"opcode": 3,
|
||||
"raw_scalar_value": 42,
|
||||
"value_byte_0x09": 0,
|
||||
|
|
@ -78,11 +78,11 @@
|
|||
"value_word_0x14": 0,
|
||||
"value_word_0x16": 0,
|
||||
"row_shape": "scalar_assignment",
|
||||
"semantic_family": null,
|
||||
"semantic_preview": null,
|
||||
"semantic_family": "scalar_assignment",
|
||||
"semantic_preview": "Set Unknown Loco Available to 42",
|
||||
"locomotive_name": null,
|
||||
"notes": [
|
||||
"real grouped-effect row preserved structurally; descriptor identity not yet recovered"
|
||||
"recovered locomotive availability descriptor family remains parity-only until per-locomotive identity is grounded"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
"executable_import_ready": false,
|
||||
"notes": [
|
||||
"decoded from grounded real 0x4e9a row framing",
|
||||
"grouped row preserved structurally but still unmapped in the checked-in descriptor table"
|
||||
"recovered locomotives-page descriptor band is now checked in, but this scalar family still has no executable runtime landing surface"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"format_version": 1,
|
||||
"fixture_id": "packed-event-world-locomotive-policy-save-slice-fixture",
|
||||
"source": {
|
||||
"kind": "captured-runtime",
|
||||
"description": "Fixture proving recovered locomotive policy descriptors import and execute through the ordinary runtime path."
|
||||
},
|
||||
"state_save_slice_path": "packed-event-world-locomotive-policy-save-slice.json",
|
||||
"commands": [
|
||||
{
|
||||
"kind": "service_trigger_kind",
|
||||
"trigger_kind": 6
|
||||
}
|
||||
],
|
||||
"expected_summary": {
|
||||
"packed_event_collection_present": true,
|
||||
"packed_event_record_count": 1,
|
||||
"packed_event_decoded_record_count": 1,
|
||||
"packed_event_imported_runtime_record_count": 1,
|
||||
"event_runtime_record_count": 1,
|
||||
"packed_event_blocked_unmapped_world_descriptor_count": 0,
|
||||
"total_event_record_service_count": 1,
|
||||
"total_trigger_dispatch_count": 1
|
||||
},
|
||||
"expected_state_fragment": {
|
||||
"world_flags": {
|
||||
"world.all_steam_locos_available": true,
|
||||
"world.all_diesel_locos_available": false,
|
||||
"world.all_electric_locos_available": true
|
||||
},
|
||||
"packed_event_collection": {
|
||||
"records": [
|
||||
{
|
||||
"import_outcome": "imported",
|
||||
"decoded_actions": [
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_steam_locos_available",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_diesel_locos_available",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_electric_locos_available",
|
||||
"value": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
{
|
||||
"format_version": 1,
|
||||
"save_slice_id": "packed-event-world-locomotive-policy-save-slice",
|
||||
"source": {
|
||||
"description": "Tracked save-slice document proving recovered locomotive policy descriptors import and execute as keyed world flags.",
|
||||
"original_save_filename": "captured-world-locomotive-policy.gms",
|
||||
"original_save_sha256": "world-locomotive-policy-sample-sha256",
|
||||
"notes": [
|
||||
"tracked as JSON save-slice document rather than raw .smp",
|
||||
"recovered locomotives-page policy descriptors 454..456 now import through checked-in keyed world-flag metadata"
|
||||
]
|
||||
},
|
||||
"save_slice": {
|
||||
"file_extension_hint": "gms",
|
||||
"container_profile_family": "rt3-classic-save-container-v1",
|
||||
"mechanism_family": "classic-save-rehydrate-v1",
|
||||
"mechanism_confidence": "grounded",
|
||||
"trailer_family": null,
|
||||
"bridge_family": null,
|
||||
"profile": null,
|
||||
"candidate_availability_table": null,
|
||||
"special_conditions_table": null,
|
||||
"event_runtime_collection": {
|
||||
"source_kind": "packed-event-runtime-collection",
|
||||
"mechanism_family": "classic-save-rehydrate-v1",
|
||||
"mechanism_confidence": "grounded",
|
||||
"container_profile_family": "rt3-classic-save-container-v1",
|
||||
"metadata_tag_offset": 32512,
|
||||
"records_tag_offset": 32768,
|
||||
"close_tag_offset": 33536,
|
||||
"packed_state_version": 1001,
|
||||
"packed_state_version_hex": "0x000003e9",
|
||||
"live_id_bound": 61,
|
||||
"live_record_count": 1,
|
||||
"live_entry_ids": [61],
|
||||
"decoded_record_count": 1,
|
||||
"imported_runtime_record_count": 1,
|
||||
"records": [
|
||||
{
|
||||
"record_index": 0,
|
||||
"live_entry_id": 61,
|
||||
"payload_offset": 32832,
|
||||
"payload_len": 176,
|
||||
"decode_status": "executable",
|
||||
"payload_family": "real_packed_v1",
|
||||
"trigger_kind": 6,
|
||||
"one_shot": false,
|
||||
"compact_control": {
|
||||
"mode_byte_0x7ef": 6,
|
||||
"primary_selector_0x7f0": 0,
|
||||
"grouped_mode_0x7f4": 2,
|
||||
"one_shot_header_0x7f5": 0,
|
||||
"modifier_flag_0x7f9": 0,
|
||||
"modifier_flag_0x7fa": 0,
|
||||
"grouped_target_scope_ordinals_0x7fb": [0, 0, 0, 0],
|
||||
"grouped_scope_checkboxes_0x7ff": [1, 0, 0, 0],
|
||||
"summary_toggle_0x800": 1,
|
||||
"grouped_territory_selectors_0x80f": [-1, -1, -1, -1]
|
||||
},
|
||||
"text_bands": [],
|
||||
"standalone_condition_row_count": 0,
|
||||
"standalone_condition_rows": [],
|
||||
"negative_sentinel_scope": null,
|
||||
"grouped_effect_row_counts": [3, 0, 0, 0],
|
||||
"grouped_effect_rows": [
|
||||
{
|
||||
"group_index": 0,
|
||||
"row_index": 0,
|
||||
"descriptor_id": 454,
|
||||
"descriptor_label": "All Steam Locos Avail.",
|
||||
"target_mask_bits": 8,
|
||||
"parameter_family": "world_flag_toggle",
|
||||
"opcode": 0,
|
||||
"raw_scalar_value": 1,
|
||||
"value_byte_0x09": 0,
|
||||
"value_dword_0x0d": 0,
|
||||
"value_byte_0x11": 0,
|
||||
"value_byte_0x12": 0,
|
||||
"value_word_0x14": 0,
|
||||
"value_word_0x16": 0,
|
||||
"row_shape": "bool_toggle",
|
||||
"semantic_family": "bool_toggle",
|
||||
"semantic_preview": "Set All Steam Locos Avail. to TRUE",
|
||||
"locomotive_name": null,
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"group_index": 0,
|
||||
"row_index": 1,
|
||||
"descriptor_id": 455,
|
||||
"descriptor_label": "All Diesel Locos Avail.",
|
||||
"target_mask_bits": 8,
|
||||
"parameter_family": "world_flag_toggle",
|
||||
"opcode": 0,
|
||||
"raw_scalar_value": 0,
|
||||
"value_byte_0x09": 0,
|
||||
"value_dword_0x0d": 0,
|
||||
"value_byte_0x11": 0,
|
||||
"value_byte_0x12": 0,
|
||||
"value_word_0x14": 0,
|
||||
"value_word_0x16": 0,
|
||||
"row_shape": "bool_toggle",
|
||||
"semantic_family": "bool_toggle",
|
||||
"semantic_preview": "Set All Diesel Locos Avail. to FALSE",
|
||||
"locomotive_name": null,
|
||||
"notes": []
|
||||
},
|
||||
{
|
||||
"group_index": 0,
|
||||
"row_index": 2,
|
||||
"descriptor_id": 456,
|
||||
"descriptor_label": "All Electric Locos Avail.",
|
||||
"target_mask_bits": 8,
|
||||
"parameter_family": "world_flag_toggle",
|
||||
"opcode": 0,
|
||||
"raw_scalar_value": 1,
|
||||
"value_byte_0x09": 0,
|
||||
"value_dword_0x0d": 0,
|
||||
"value_byte_0x11": 0,
|
||||
"value_byte_0x12": 0,
|
||||
"value_word_0x14": 0,
|
||||
"value_word_0x16": 0,
|
||||
"row_shape": "bool_toggle",
|
||||
"semantic_family": "bool_toggle",
|
||||
"semantic_preview": "Set All Electric Locos Avail. to TRUE",
|
||||
"locomotive_name": null,
|
||||
"notes": []
|
||||
}
|
||||
],
|
||||
"decoded_conditions": [],
|
||||
"decoded_actions": [
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_steam_locos_available",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_diesel_locos_available",
|
||||
"value": false
|
||||
},
|
||||
{
|
||||
"kind": "set_world_flag",
|
||||
"key": "world.all_electric_locos_available",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"executable_import_ready": true,
|
||||
"notes": [
|
||||
"recovered locomotives-page policy descriptor batch now imports as keyed world flags"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"notes": [
|
||||
"whole-game locomotive policy effect sample"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue