Track add-building row-shape families
This commit is contained in:
parent
2fbc0bd7e7
commit
461cf087e5
4 changed files with 160 additions and 0 deletions
|
|
@ -3988,6 +3988,8 @@ pub struct SmpLoadedEventRuntimeCollectionSummary {
|
|||
#[serde(default)]
|
||||
pub add_building_dispatch_strip_records_missing_trigger_kind: usize,
|
||||
#[serde(default)]
|
||||
pub add_building_dispatch_strip_row_shape_families: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub add_building_dispatch_strip_signature_families: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub add_building_dispatch_strip_condition_tuple_families: Vec<String>,
|
||||
|
|
@ -9995,6 +9997,22 @@ fn parse_event_runtime_collection_summary_with_tag_width(
|
|||
.collect::<Vec<_>>();
|
||||
add_building_dispatch_strip_descriptor_labels.sort_unstable();
|
||||
add_building_dispatch_strip_descriptor_labels.dedup();
|
||||
let mut add_building_dispatch_strip_row_shape_families = records
|
||||
.iter()
|
||||
.filter(|record| {
|
||||
record.grouped_effect_rows.iter().any(|row| {
|
||||
opcode_reaches_world_apply_compact_runtime_effect_dispatch_strip(row.opcode)
|
||||
&& compact_event_dispatch_add_building_descriptor_id(row.descriptor_id)
|
||||
})
|
||||
})
|
||||
.map(|record| {
|
||||
compact_event_dispatch_row_shape_family_from_summary_rows(
|
||||
&record.grouped_effect_rows,
|
||||
)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
add_building_dispatch_strip_row_shape_families.sort_unstable();
|
||||
add_building_dispatch_strip_row_shape_families.dedup();
|
||||
let mut add_building_dispatch_strip_signature_families = records
|
||||
.iter()
|
||||
.filter(|record| {
|
||||
|
|
@ -10174,6 +10192,10 @@ fn parse_event_runtime_collection_summary_with_tag_width(
|
|||
"decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = {:?}",
|
||||
add_building_dispatch_strip_descriptor_labels
|
||||
));
|
||||
control_lane_notes.push(format!(
|
||||
"Add Building row-shape families present in the 0x00431b20 dispatch strip = {:?}",
|
||||
add_building_dispatch_strip_row_shape_families
|
||||
));
|
||||
control_lane_notes.push(format!(
|
||||
"Add Building signature families present in the 0x00431b20 dispatch strip = {:?}",
|
||||
add_building_dispatch_strip_signature_families
|
||||
|
|
@ -10223,6 +10245,7 @@ fn parse_event_runtime_collection_summary_with_tag_width(
|
|||
add_building_dispatch_strip_descriptor_labels,
|
||||
add_building_dispatch_strip_records_with_trigger_kind,
|
||||
add_building_dispatch_strip_records_missing_trigger_kind,
|
||||
add_building_dispatch_strip_row_shape_families,
|
||||
add_building_dispatch_strip_signature_families,
|
||||
add_building_dispatch_strip_condition_tuple_families,
|
||||
add_building_dispatch_strip_signature_condition_clusters,
|
||||
|
|
@ -10265,6 +10288,24 @@ fn compact_event_dispatch_condition_tuple_family_from_summary_rows(
|
|||
format!("[{}]", parts.join(","))
|
||||
}
|
||||
|
||||
fn compact_event_dispatch_row_shape_family_from_summary_rows(
|
||||
rows: &[SmpLoadedPackedEventGroupedEffectRowSummary],
|
||||
) -> String {
|
||||
if rows.is_empty() {
|
||||
return "[]".to_string();
|
||||
}
|
||||
let parts = rows
|
||||
.iter()
|
||||
.map(|row| {
|
||||
format!(
|
||||
"{}:{}:{}",
|
||||
row.group_index, row.opcode, row.raw_scalar_value
|
||||
)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
format!("[{}]", parts.join(","))
|
||||
}
|
||||
|
||||
fn compact_event_dispatch_signature_condition_cluster_from_summary_rows(
|
||||
signature_family: Option<&str>,
|
||||
rows: &[SmpLoadedPackedEventConditionRowSummary],
|
||||
|
|
@ -23169,6 +23210,10 @@ mod tests {
|
|||
.expect("non-direct event runtime collection summary should parse");
|
||||
|
||||
assert_eq!(summary.add_building_dispatch_strip_record_indexes, vec![0]);
|
||||
assert_eq!(
|
||||
summary.add_building_dispatch_strip_row_shape_families,
|
||||
vec!["[0:8:1]".to_string()]
|
||||
);
|
||||
assert_eq!(
|
||||
summary.add_building_dispatch_strip_signature_families,
|
||||
vec!["nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff".to_string()]
|
||||
|
|
@ -23206,6 +23251,11 @@ mod tests {
|
|||
"decoded Add Building descriptor labels present in the 0x00431b20 dispatch strip = [\"Add Building Port01\"]",
|
||||
)
|
||||
}));
|
||||
assert!(summary.control_lane_notes.iter().any(|line| {
|
||||
line.contains(
|
||||
"Add Building row-shape families present in the 0x00431b20 dispatch strip = [\"[0:8:1]\"]",
|
||||
)
|
||||
}));
|
||||
assert!(summary.control_lane_notes.iter().any(|line| {
|
||||
line.contains(
|
||||
"Add Building signature families present in the 0x00431b20 dispatch strip = [\"nondirect-ge1e-h0001-ffff-0004-0000-0200-p0000-0000-0000-ffff\"]",
|
||||
|
|
@ -26005,6 +26055,7 @@ mod tests {
|
|||
add_building_dispatch_strip_descriptor_labels: vec![],
|
||||
add_building_dispatch_strip_records_with_trigger_kind: 0,
|
||||
add_building_dispatch_strip_records_missing_trigger_kind: 0,
|
||||
add_building_dispatch_strip_row_shape_families: vec![],
|
||||
add_building_dispatch_strip_signature_families: vec![],
|
||||
add_building_dispatch_strip_condition_tuple_families: vec![],
|
||||
add_building_dispatch_strip_signature_condition_clusters: vec![],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue