Ground add-building compact span semantics

This commit is contained in:
Jan Petykiewicz 2026-04-19 02:50:05 -07:00
commit 9c8a5005f4
2 changed files with 8 additions and 2 deletions

View file

@ -10956,8 +10956,13 @@ fn parse_real_grouped_effect_row_summary(
"add-building descriptor maps to live candidate id {candidate_id}" "add-building descriptor maps to live candidate id {candidate_id}"
)); ));
notes.push( notes.push(
"0x430270 add-building consumer uses placement count byte 0x11 plus packed span words 0x14/0x16 after the descriptor_id - 503 candidate bridge; it does not branch directly on grouped opcode".to_string(), "0x430270 add-building consumer uses placement count byte 0x11, center words 0x12/0x14, and radius word 0x16 after the descriptor_id - 503 candidate bridge; it clamps radius to at least 1 and retries up to 200 randomized placements without branching directly on grouped opcode".to_string(),
); );
if candidate_id > 66 {
notes.push(
"current non-hook candidate-name catalogs only ground concrete add-building names through candidate id 66, so this descriptor remains on the checked-in candidate-slot boundary beyond the live RT3 1.05 table".to_string(),
);
}
} }
Some(SmpLoadedPackedEventGroupedEffectRowSummary { Some(SmpLoadedPackedEventGroupedEffectRowSummary {

View file

@ -348,7 +348,8 @@ Working rule:
- the compact opcode-`8` frontier therefore shifts: - the compact opcode-`8` frontier therefore shifts:
direct disassembly of `0x00430270` now shows that the add-building consumer does not branch on direct disassembly of `0x00430270` now shows that the add-building consumer does not branch on
grouped opcode at all for descriptor strip `503..613`; it consumes the descriptor-derived grouped opcode at all for descriptor strip `503..613`; it consumes the descriptor-derived
candidate id, placement count byte `0x11`, and the packed span words at `0x14/0x16`. candidate id, placement count byte `0x11`, center words `0x12/0x14`, and radius word `0x16`,
clamps that radius to at least `1`, and retries randomized placements up to `200` times.
The next static-analysis pass should therefore target the remaining span-field meaning and The next static-analysis pass should therefore target the remaining span-field meaning and
shell-owned placement-flow ownership on that strip, not more missing-label recovery: the shell-owned placement-flow ownership on that strip, not more missing-label recovery: the
descriptor-side candidate bridge is now checked in across `503..613`, and the honest remaining descriptor-side candidate bridge is now checked in across `503..613`, and the honest remaining