fix(scenery): drop non-retail extra-road-vertex suppression
User report: trees that exist in retail are missing in ACdream. SceneryGenerator had an extra heuristic filter at lines 169-180 that rejected scenery whose cell-origin vertex was a road vertex, on top of the proper retail post-displacement road check (FUN_00530d30 port via IsOnRoad). The comment admitted it wasn't in the retail decomp -- it was added to widen road margins visually. Side effect: any cell whose SW corner happened to touch a road vertex had ALL of its scenery dropped, even when the displaced position was well clear of the road ribbon. Removing the extra guard. The retail FUN_00530d30 ribbon test already handles road exclusion correctly; the heuristic was strictly subtractive and silently dropped trees the retail client renders. Tests stay 1439 green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
559b79dc98
commit
46544ef3c1
1 changed files with 12 additions and 12 deletions
|
|
@ -166,18 +166,18 @@ public static class SceneryGenerator
|
|||
continue;
|
||||
}
|
||||
|
||||
// Also reject if the vertex CX,CY is a road vertex itself
|
||||
// — scenery whose cell-origin vertex is on a road should
|
||||
// not spawn, even if displacement moves it off the ribbon.
|
||||
// Retail's frequency-based path is guarded by the road mask;
|
||||
// our formula can yield valid positions adjacent to roads
|
||||
// that the ACViewer OnRoad test lets through. This extra
|
||||
// guard pushes scenery away from road vertices, matching
|
||||
// retail's visually clearer road margins.
|
||||
if (IsRoadVertex(block.Terrain[(int)cellX * VerticesPerSide + (int)cellY]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// L-fix2 (2026-04-28): the extra cell-origin road-vertex
|
||||
// guard previously here is REMOVED. It wasn't in the
|
||||
// retail decomp — it was a heuristic added to widen
|
||||
// road margins visually. The proper retail post-
|
||||
// displacement road check (FUN_00530d30 port via
|
||||
// IsOnRoad above) already handles road exclusion.
|
||||
// The extra guard was over-suppressing — every cell
|
||||
// whose SW corner happened to touch a road vertex
|
||||
// had ALL of its scenery dropped, even when the
|
||||
// displaced position was well clear of the ribbon.
|
||||
// User reported missing trees they could see in
|
||||
// retail; this is the most likely cause.
|
||||
|
||||
// Slope filter (ACME conformance fix 4e): compute terrain normal
|
||||
// Z-component at the displaced position and check against the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue