Correct acquisition trace owner lanes
This commit is contained in:
parent
7e9d536af0
commit
cf31d0287b
2 changed files with 70 additions and 39 deletions
|
|
@ -4528,11 +4528,13 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
];
|
||||
let near_city_acquisition_region_input_fields = vec![
|
||||
"[region+0x276] pending amount gate".to_string(),
|
||||
"region vtable +0x80 byte-0x32 class filter consumed through 0x0040d360".to_string(),
|
||||
"[region+0x3d5] age/year delta lane".to_string(),
|
||||
"[region+0x310/+0x338/+0x360] cached tri-lane sampled through 0x0040cac0".to_string(),
|
||||
"[region+0x2a4] winning linked company id output lane".to_string(),
|
||||
"[site+0x276] owner-present gate".to_string(),
|
||||
"placed-structure subject subtype gate [candidate+0x32] == 4 consumed through 0x0040d360"
|
||||
.to_string(),
|
||||
"[site+0x3d5] age/year delta lane".to_string(),
|
||||
"[site+0x310/+0x338/+0x360] cached tri-lane sampled through 0x0040cac0".to_string(),
|
||||
"[site+0x2a4] winning placed-structure id lane later committed through 0x004269b0"
|
||||
.to_string(),
|
||||
];
|
||||
let near_city_acquisition_peer_input_fields = vec![
|
||||
"center-cell token gate 0x0041f6e0 -> 0x0042b2d0 over the current region".to_string(),
|
||||
|
|
@ -4545,12 +4547,16 @@ fn build_periodic_company_service_trace_report(
|
|||
];
|
||||
let near_city_acquisition_company_input_fields = vec![
|
||||
"company stat-family reader 0x2329/0x0d through 0x0042a5d0".to_string(),
|
||||
"cached linked-transit route-anchor entry id [company+0x0d35] through 0x00401860"
|
||||
.to_string(),
|
||||
"linked-transit route-anchor fallback counts [company+0x7664/+0x7668/+0x766c] through 0x00401860"
|
||||
.to_string(),
|
||||
"current chairman profile byte [profile+0x291] through 0x00426ef0".to_string(),
|
||||
"company byte [company+0x5b] and indexed lane [company+0x67 + 12*0x0042a0e0()]".to_string(),
|
||||
"company-root argument [company+0x00] passed into 0x0040d540 and 0x00455f60".to_string(),
|
||||
];
|
||||
let near_city_acquisition_shellless_readiness_status =
|
||||
"peer_and_company_inputs_grounded_region_restore_gap_remaining".to_string();
|
||||
"peer_inputs_grounded_company_route_anchor_and_site_restore_gaps_remaining".to_string();
|
||||
let near_city_acquisition_runtime_backed_input_families = vec![
|
||||
"peer-site restore subset [site+0x3cc/+0x3d0] plus tagged 0x5dc1 [owner+0x23e/+0x242]"
|
||||
.to_string(),
|
||||
|
|
@ -4565,16 +4571,17 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
];
|
||||
let near_city_acquisition_remaining_owner_gaps = vec![
|
||||
"save restore owner for [region+0x276] pending amount on ordinary saves, even though runtime producer 0x00422100 is grounded".to_string(),
|
||||
"save payload or restore owner for [region+0x2a4] winning linked-company lane; current binary scan finds no region-class runtime writer".to_string(),
|
||||
"save payload or restore owner for [region+0x310/+0x338/+0x360] cached tri-lane sampled by 0x0040cac0; current binary scan finds no direct region-class runtime writer".to_string(),
|
||||
"save-native projection of the region type byte consumed by 0x0040d360 as [owner_vtable+0x80+0x32] == 4".to_string(),
|
||||
"runtime-owned company projection for cached linked-transit route-anchor entry id [company+0x0d35] and its fallback count lanes [company+0x7664/+0x7668/+0x766c] consumed through 0x00401860".to_string(),
|
||||
"save-native projection of placed-structure owner field [site+0x276] for the acquisition-side owner-present gate".to_string(),
|
||||
"save payload or restore owner for [site+0x2a4] winning placed-structure id lane before 0x004269b0 commits the chosen site".to_string(),
|
||||
"save payload or restore owner for [site+0x310/+0x338/+0x360] cached tri-lane sampled by 0x0040cac0; current binary scan finds no direct placed-structure runtime writer".to_string(),
|
||||
"save-native projection of the placed-structure subtype byte consumed by 0x0040d360 as [candidate+0x32] == 4".to_string(),
|
||||
];
|
||||
let near_city_acquisition_region_lane_statuses = vec![
|
||||
"[region+0x276] pending amount lane: runtime producer grounded at 0x00422100, ordinary-save restore owner still missing".to_string(),
|
||||
"[region+0x2a4] winning linked-company lane: consumed by 0x004014b0 and 0x0044554e0 path, no region-class runtime writer found in current binary scan".to_string(),
|
||||
"[region+0x310/+0x338/+0x360] cached tri-lane: exact raw delta reader grounded at 0x0040cac0, and the current binary write scan finds no direct region-class runtime writer, so the lane now looks payload/restore-owned".to_string(),
|
||||
"region type filter: 0x0040d360 is the exact test [owner_vtable+0x80+0x32] == 4, but the save-native projection of that byte is still missing".to_string(),
|
||||
"[site+0x276] owner-present gate: consumed directly by 0x004014b0, but its save-native projection is still missing".to_string(),
|
||||
"[site+0x2a4] placed-structure id lane: consumed by 0x004014b0 before 0x004269b0 commits the chosen site, and no separate placed-structure runtime writer is currently grounded for the winning-candidate staging lane".to_string(),
|
||||
"[site+0x310/+0x338/+0x360] cached tri-lane: exact raw delta reader grounded at 0x0040cac0, and the current binary write scan finds no direct placed-structure runtime writer, so the lane now looks payload/restore-owned".to_string(),
|
||||
"placed-structure subtype filter: 0x0040d360 is the exact test [candidate+0x32] == 4, but the save-native projection of that byte is still missing".to_string(),
|
||||
];
|
||||
let atlas_candidate_consumers = vec![
|
||||
"0x004019e0 periodic company outer service owner".to_string(),
|
||||
|
|
@ -4599,9 +4606,9 @@ fn build_periodic_company_service_trace_report(
|
|||
.to_string(),
|
||||
"0x00425b90 pending-bonus/company-state gate over the [region+0x276] companion object"
|
||||
.to_string(),
|
||||
"0x0040cac0 region cached tri-lane delta sampler over [region+0x310/+0x338/+0x360]"
|
||||
"0x0040cac0 placed-structure cached tri-lane delta sampler over [site+0x310/+0x338/+0x360]"
|
||||
.to_string(),
|
||||
"0x0040d360 region type/class filter over the region vtable +0x80 byte-0x32 lane"
|
||||
"0x0040d360 placed-structure subtype-4 predicate over [candidate+0x32]"
|
||||
.to_string(),
|
||||
"0x0040d540 weighted region-to-company proximity scorer with pending-bonus context"
|
||||
.to_string(),
|
||||
|
|
@ -4652,7 +4659,7 @@ fn build_periodic_company_service_trace_report(
|
|||
let next_owner_questions = vec![
|
||||
"Which persisted region and company linkage fields are still missing for a shellless 0x004014b0 implementation once the peer-site restore subset is accepted as sufficient to reconstruct the live runtime subset?".to_string(),
|
||||
"How much of the linked-peer refresh path is strictly post-load versus recurring runtime maintenance now that 0x004133b0 reaches 0x0040ee10 -> 0x0040edf6 -> 0x00480710 during bring-up and 0x004160aa also re-enters 0x0040ee10 later?".to_string(),
|
||||
"Which later save payload or restore owner rehydrates the remaining region-side 0x004014b0 inputs [region+0x2a4] and [region+0x310/+0x338/+0x360] once peer/company inputs are accepted as grounded and [region+0x276] is treated as a producer-known ordinary-save restore gap?".to_string(),
|
||||
"Which later save payload or restore owner rehydrates the remaining placed-structure-side 0x004014b0 inputs [site+0x2a4] and [site+0x310/+0x338/+0x360] once peer/company inputs are accepted as grounded and the owner-present gate [site+0x276] is treated as save-native rather than service-produced?".to_string(),
|
||||
"Which infrastructure consumer above the grounded 0x38a5 seam actually drives the linked-transit branch that 0x00409950 follows?".to_string(),
|
||||
];
|
||||
|
||||
|
|
@ -4781,7 +4788,7 @@ fn build_periodic_company_service_trace_report(
|
|||
"0x00406050 city-connection bonus/news sibling owner",
|
||||
],
|
||||
&[
|
||||
"Direct disassembly now shows this branch iterating the live class-0 region collection, skipping regions with pending amount [region+0x276], reusing the center-cell token gate 0x0041f6e0 -> 0x0042b2d0, reusing the linked-region status branch 0x0047de00 -> 0x0040c990, checking candidate reachability through 0x004801a0, consulting the placed-structure peer-site boolean/selector pair 0x00420030 / 0x00420280 over 0x006cec20, scoring regions against company proximity and aging through 0x0040d540 and 0x0040cac0, and then publishing the winning linked company id from [region+0x2a4]. The peer-site selector seam itself is now grounded through the local helper strip: 0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268, 0x0040ceab and 0x0040d1a1 reach the save-backed 0x0045c150 / 0x0045c310 owner directly, that owner fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] through 0x00456100 -> 0x00455b70 -> 0x0052edf0 into the live backing-record selector [site+0x04]. The remaining linked-site field work is now about which of those persisted site/peer lanes are actually sufficient for shellless acquisition and city-connection behavior, not about who owns [site+0x04].",
|
||||
"Direct disassembly now shows this branch scanning the live placed-structure collection at 0x0062b26c for the best current acquisition target, rejecting sites whose owner field [site+0x276] is already nonzero, reusing the center-cell token gate 0x0041f6e0 -> 0x0042b2d0, reusing the linked-region status branch 0x0047de00 -> 0x0040c990, checking candidate reachability through 0x004801a0, consulting the placed-structure peer-site boolean/selector pair 0x00420030 / 0x00420280 over 0x006cec20, scoring candidate sites against company proximity and age through 0x0040d540 and 0x0040cac0, and then committing the winning site through 0x004269b0. The peer-site selector seam itself is now grounded through the local helper strip: 0x0040cd70 seeds [site+0x3cc/+0x3d0] from 0x62b2fc / 0x62b268, 0x0040ceab and 0x0040d1a1 reach the save-backed 0x0045c150 / 0x0045c310 owner directly, that owner fills [owner+0x23e/+0x242] from tagged payload 0x5dc1, and 0x0045c36e then feeds [owner+0x23e] through 0x00456100 -> 0x00455b70 -> 0x0052edf0 into the live backing-record selector [site+0x04]. The remaining linked-site field work is now about which of those persisted site/peer lanes are actually sufficient for shellless acquisition and city-connection behavior, not about who owns [site+0x04].",
|
||||
],
|
||||
));
|
||||
SmpPeriodicCompanyServiceTraceEntry {
|
||||
|
|
@ -4803,16 +4810,16 @@ fn build_periodic_company_service_trace_report(
|
|||
"Periodic company service trace is intentionally an outer-owner probe: it reports save-owned branch inputs and blocker seams without serializing the full projected runtime reader state.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"Direct disassembly now narrows the acquisition-side sibling substantially: 0x004014b0 gates on the periodic outer owner, then iterates the live class-0 region collection at 0x62b26c, rejects regions with nonzero [region+0x276], filters the region-type lane through 0x0040d360, scores candidate regions against company linkage/age/proximity through 0x0040d540 and 0x0040cac0, and publishes the winning linked company id from [region+0x2a4] through the shared news lane 0x4554e0.".to_string(),
|
||||
"Direct disassembly now narrows the acquisition-side sibling substantially: 0x004014b0 gates on the periodic outer owner, then scans the live placed-structure collection at 0x0062b26c, rejects sites whose owner field [site+0x276] is already nonzero, filters candidates through the subtype-4 predicate 0x0040d360, scores surviving sites against company linkage/age/proximity through 0x0040d540 and 0x0040cac0, and then commits the winning site through 0x004269b0 before the shared news lane 0x004554e0 formats the headline.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"The shellless acquisition frontier is narrower now too: the peer-site selector/linked-peer seam is grounded enough to plan around, and the company/chairman side already sits on existing runtime-backed stat-family and save-native roster inputs. The remaining blocker is region-side restore or rebuild ownership for [region+0x276], [region+0x2a4], and the cached tri-lane [region+0x310/+0x338/+0x360], plus the stable class/type discriminator consumed through 0x0040d360.".to_string(),
|
||||
"The shellless acquisition frontier is narrower now too: the peer-site selector/linked-peer seam is grounded enough to plan around, and the company/chairman side already sits on existing runtime-backed stat-family and save-native roster inputs. The remaining blocker is placed-structure-side restore or rebuild ownership for [site+0x276], [site+0x2a4], and the cached tri-lane [site+0x310/+0x338/+0x360], plus the save-native projection of the subtype gate consumed through 0x0040d360.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"Direct disassembly now tightens the remaining region lanes too: 0x00422100 itself writes the pending amount lane [region+0x276], so that field is no longer an unknown producer, only an ordinary-save restore gap; 0x0040cac0 is only the raw tri-lane delta reader over [region+0x310/+0x338/+0x360]; 0x0040d360 is only the exact type test [owner_vtable+0x80+0x32] == 4; and the current binary write scan finds no direct region-class runtime writer for either [region+0x2a4] or [region+0x310/+0x338/+0x360], which now makes both lanes look payload/restore-owned rather than service-produced.".to_string(),
|
||||
"Direct disassembly now tightens the remaining placed-structure lanes too: 0x0040cac0 is only the raw tri-lane delta reader over [site+0x310/+0x338/+0x360]; 0x0040d360 is only the exact subtype test [candidate+0x32] == 4; and the current binary write scan finds no direct placed-structure runtime writer for either [site+0x2a4] or [site+0x310/+0x338/+0x360], which now makes both lanes look payload/restore-owned rather than service-produced.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"That branch also reuses the same peer-site helper strip already bounded under the city-connection family: 0x0041f6e0 resolves the current center world-grid cell and checks one packed token through 0x0042b2d0, 0x0047de00 follows the linked region behind the candidate site into the status byte returned by 0x0040c990, and 0x004801a0 checks whether one candidate site is reachable from the cached company route anchor through the pending-bonus companion path 0x00425b90 -> 0x00401860 -> 0x0048e3c0.".to_string(),
|
||||
"That branch also reuses the same peer-site helper strip already bounded under the city-connection family: 0x0041f6e0 resolves the current center world-grid cell and checks one packed token through 0x0042b2d0, 0x0047de00 follows the linked region behind the candidate site into the status byte returned by 0x0040c990, and 0x004801a0 checks whether one candidate site is reachable from the cached company route anchor through 0x00401860 -> 0x0048e3c0.".to_string(),
|
||||
);
|
||||
notes.push(
|
||||
"Direct disassembly now closes the collection identity too: 0x00420030 is the boolean peer gate and 0x00420280 is the first-match selector over the live placed-structure / peer-site collection 0x006cec20, combining 0x0042b2d0, the optional linked-company filter through 0x0047efe0, the station-or-transit gate 0x0047fd50, and the linked-region status branch 0x0047de00 -> 0x0040c990.".to_string(),
|
||||
|
|
@ -27817,10 +27824,10 @@ mod tests {
|
|||
assert_eq!(trace.peer_site_runtime_reconstruction_steps.len(), 4);
|
||||
assert_eq!(trace.near_city_acquisition_region_input_fields.len(), 5);
|
||||
assert_eq!(trace.near_city_acquisition_peer_input_fields.len(), 7);
|
||||
assert_eq!(trace.near_city_acquisition_company_input_fields.len(), 4);
|
||||
assert_eq!(trace.near_city_acquisition_company_input_fields.len(), 6);
|
||||
assert_eq!(
|
||||
trace.near_city_acquisition_shellless_readiness_status,
|
||||
"peer_and_company_inputs_grounded_region_restore_gap_remaining"
|
||||
"peer_inputs_grounded_company_route_anchor_and_site_restore_gaps_remaining"
|
||||
);
|
||||
assert_eq!(
|
||||
trace
|
||||
|
|
@ -27828,7 +27835,7 @@ mod tests {
|
|||
.len(),
|
||||
6
|
||||
);
|
||||
assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 4);
|
||||
assert_eq!(trace.near_city_acquisition_remaining_owner_gaps.len(), 5);
|
||||
assert_eq!(trace.near_city_acquisition_region_lane_statuses.len(), 4);
|
||||
assert!(trace.atlas_candidate_consumers.iter().any(|line| {
|
||||
line.contains("0x00420030 / 0x00420280")
|
||||
|
|
@ -27836,15 +27843,15 @@ mod tests {
|
|||
&& line.contains("peer-site boolean/selector pair")
|
||||
}));
|
||||
assert!(trace.next_owner_questions.iter().any(|line| {
|
||||
line.contains("remaining region-side 0x004014b0 inputs")
|
||||
line.contains("remaining placed-structure-side 0x004014b0 inputs")
|
||||
&& line.contains("0x004014b0")
|
||||
&& line.contains("[region+0x2a4]")
|
||||
&& line.contains("[site+0x2a4]")
|
||||
}));
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_region_input_fields
|
||||
.iter()
|
||||
.any(|line| line.contains("[region+0x276]"))
|
||||
.any(|line| line.contains("[site+0x276]"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
|
|
@ -27864,6 +27871,13 @@ mod tests {
|
|||
.iter()
|
||||
.any(|line| line.contains("0x2329/0x0d"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_company_input_fields
|
||||
.iter()
|
||||
.any(|line| line.contains("[company+0x0d35]")
|
||||
&& line.contains("0x00401860"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_runtime_backed_input_families
|
||||
|
|
@ -27883,14 +27897,21 @@ mod tests {
|
|||
trace
|
||||
.near_city_acquisition_remaining_owner_gaps
|
||||
.iter()
|
||||
.any(|line| line.contains("[region+0x276]"))
|
||||
.any(|line| line.contains("[company+0x0d35]")
|
||||
&& line.contains("[company+0x7664/+0x7668/+0x766c]"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_remaining_owner_gaps
|
||||
.iter()
|
||||
.any(|line| line.contains("[site+0x276]"))
|
||||
);
|
||||
assert!(
|
||||
trace
|
||||
.near_city_acquisition_region_lane_statuses
|
||||
.iter()
|
||||
.any(|line| line.contains("[region+0x2a4]")
|
||||
&& line.contains("no region-class runtime writer"))
|
||||
.any(|line| line.contains("[site+0x2a4]")
|
||||
&& line.contains("placed-structure runtime writer"))
|
||||
);
|
||||
assert!(
|
||||
trace.peer_site_runtime_reconstruction_steps.iter().any(|line| {
|
||||
|
|
|
|||
|
|
@ -25,20 +25,24 @@ Working rule:
|
|||
`0x004014b0`, not another generic infrastructure pass. The concrete questions are:
|
||||
- which minimum persisted peer-site fields on the already-grounded `0x006cec20` placed-structure
|
||||
collection feed near-city unowned-industry candidates
|
||||
- which city/region/company linkage survives save/load strongly enough to drive the proximity
|
||||
scan
|
||||
- which placed-structure, city-or-region, and company linkage survives save/load strongly enough
|
||||
to drive the proximity scan
|
||||
- whether the acquisition branch can be rehosted as a shellless sibling beside the already
|
||||
grounded annual-finance helper
|
||||
- Direct disassembly now narrows that acquisition strip further:
|
||||
- `0x004014b0` iterates the live class-0 region collection at `0x62b26c`
|
||||
- `0x004014b0` scans the live placed-structure collection at `0x0062b26c`
|
||||
- `0x0041f6e0 -> 0x0042b2d0` is the center-cell token gate over the current region
|
||||
- `0x0047de00 -> 0x0040c990` is the linked-region status branch reused from the city-connection
|
||||
helper strip
|
||||
- `0x004801a0` is the route-anchor reachability gate for one candidate site through
|
||||
`0x00425b90 -> 0x00401860 -> 0x0048e3c0`
|
||||
- `0x0040d360` filters the region-type lane behind the region vtable `+0x80` byte `0x32`
|
||||
- `0x0040d540` scores region/company proximity with pending-bonus context
|
||||
- `0x0040cac0` samples the cached region tri-lane at `[region+0x310/+0x338/+0x360]`
|
||||
`0x00401860 -> 0x0048e3c0`
|
||||
- the company-side half of that gate is now explicit too: `0x00401860` validates or rebuilds the
|
||||
cached linked-transit route-anchor entry id `[company+0x0d35]` from the live route-entry
|
||||
collection using fallback count lanes `[company+0x7664/+0x7668/+0x766c]`
|
||||
- `0x0040d360` is the subtype-`4` predicate over the current placed-structure subject's
|
||||
candidate byte `[candidate+0x32]`
|
||||
- `0x0040d540` scores site/company proximity with pending-bonus context
|
||||
- `0x0040cac0` samples the cached site tri-lane at `[site+0x310/+0x338/+0x360]`
|
||||
- `0x00405920` walks same-company linked site peers above the live placed-structure / peer-site
|
||||
collection seam
|
||||
- `0x00420030 / 0x00420280` is the boolean/selector peer-site pair over `0x006cec20`, combining
|
||||
|
|
@ -65,7 +69,13 @@ Working rule:
|
|||
`[this+0x206/+0x20a/+0x20e]` plus the subordinate payload callback strip, and the
|
||||
`0x4a9d/0x4a3a/0x4a3b` side-buffer owner only persists route-entry lists, three byte arrays,
|
||||
five proximity buckets, and the sampled-cell list
|
||||
- the winning linked company id comes from `[region+0x2a4]`
|
||||
- the winning site id is staged in `[site+0x2a4]` before `0x004269b0` commits the acquisition
|
||||
- That leaves the acquisition blocker set tighter than before:
|
||||
- peer-site and linked-site replay seams are grounded enough for planning
|
||||
- remaining non-hook gaps are the company cached route-anchor lane
|
||||
`[company+0x0d35]` plus fallback counts `[company+0x7664/+0x7668/+0x766c]`, and the
|
||||
placed-structure save/rebuild lanes `[site+0x276]`, `[site+0x2a4]`,
|
||||
`[site+0x310/+0x338/+0x360]`, and subtype byte `[candidate+0x32] == 4`
|
||||
- direct disassembly now shows the generic base constructor `0x0052edf0` clearing base state
|
||||
through `0x0052ecd0` and then writing `[this+0x04]` from caller arg `1`
|
||||
- `0x00455b70` is the concrete placed-structure specialization constructor feeding
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue