diff --git a/src/game/wilderness.ts b/src/game/wilderness.ts index a14c757..2736e1f 100644 --- a/src/game/wilderness.ts +++ b/src/game/wilderness.ts @@ -1467,7 +1467,6 @@ function isRoadCell(floor: Ds1Floor | undefined): boolean { if (!floor || floor.hidden || floor.prop1 === 0) return false return ( floor.prop1 === 194 || - floor.style === 5 || (floor.style === 0 && floor.sequence >= 1 && floor.sequence <= 46) || (floor.style === 1 && floor.prop1 === 194) ) @@ -4746,8 +4745,8 @@ export function stampAct1DirtRoads( { roadFloor: (r) => ({ prop1: 194, - sequence: r.int(0, 6) === 0 ? 25 : 0, - style: 5, + sequence: r.int(0, 5) === 0 ? 1 : 0, + style: 0, unknown1: 0, unknown2: 0, hidden: false, @@ -4777,7 +4776,7 @@ export function stampAct1InteriorStoneWalls( stampThemedDividers(canvas, gridWidth, gridHeight, inX, outY, placedRects, rng, { wallStyle: 2, wallProp1: 129, - roadStyles: [5], + roadStyles: [0], }, stats) } diff --git a/tests/wilderness-features.test.ts b/tests/wilderness-features.test.ts index e1b9581..0767eb2 100644 --- a/tests/wilderness-features.test.ts +++ b/tests/wilderness-features.test.ts @@ -188,7 +188,7 @@ describe("Wilderness Features & Border Rules", () => { if (cell.walls.some(w => w.style === 2 && w.prop1 === 129)) { stoneWallCount += 1 } - if (cell.floors.some(f => f.style === 5 && f.prop1 === 194)) { + if (cell.floors.some(f => (f.style === 0 || f.style === 5) && f.prop1 === 194)) { dirtRoadCount += 1 } } @@ -356,13 +356,13 @@ describe("Wilderness Features & Border Rules", () => { }) // 1. Verify 3-tile wide main highway at central crossroads (44, 44) - expect(result.level.cells[44]![44]!.floors[0]!.style).toBe(5) - expect(result.level.cells[44]![43]!.floors[0]!.style).toBe(5) - expect(result.level.cells[44]![45]!.floors[0]!.style).toBe(5) + expect(result.level.cells[44]![44]!.floors[0]!.style).toBe(0) + expect(result.level.cells[44]![43]!.floors[0]!.style).toBe(0) + expect(result.level.cells[44]![45]!.floors[0]!.style).toBe(0) // 2. Verify South border gate road connection at (44, 75) and East border gate connection at (75, 44) - expect(result.level.cells[75]![44]!.floors[0]!.style).toBe(5) - expect(result.level.cells[44]![75]!.floors[0]!.style).toBe(5) + expect(result.level.cells[75]![44]!.floors[0]!.style).toBe(0) + expect(result.level.cells[44]![75]!.floors[0]!.style).toBe(0) // 3. Verify no artificial interior stone wall segments (style=2, prop1=129) are stamped (Issue #65) let foundContinuousEW = false diff --git a/tests/wilderness-roads-multi-act.test.ts b/tests/wilderness-roads-multi-act.test.ts index 120dac8..96a36a9 100644 --- a/tests/wilderness-roads-multi-act.test.ts +++ b/tests/wilderness-roads-multi-act.test.ts @@ -221,7 +221,7 @@ describe('Multi-Act Outdoor Roads & Boundary Divider Networks', () => { stampOutdoorRoads(canvas, 1, 3, gridW, gridH, inX, outY, [], rng) stampOutdoorDividers(canvas, 1, 3, gridW, gridH, inX, outY, [], rng) - expect(countFloorTiles(canvas, 5, 194)).toBeGreaterThan(40) + expect(countFloorTiles(canvas, 0, 194)).toBeGreaterThan(40) expect(countWallTiles(canvas, 2, 129)).toBe(0) }) @@ -259,6 +259,7 @@ describe('Multi-Act Outdoor Roads & Boundary Divider Networks', () => { stampOutdoorRoads(canvas, 1, 39, gridW, gridH, inX, outY, [], rng, 'Act 1 - Wilderness') stampOutdoorDividers(canvas, 1, 39, gridW, gridH, inX, outY, [], rng, 'Act 1 - Wilderness') + expect(countFloorTiles(canvas, 0, 194)).toBe(0) expect(countFloorTiles(canvas, 1, 194)).toBe(0) expect(countFloorTiles(canvas, 5, 194)).toBe(0) expect(countWallTiles(canvas, 1, 129)).toBe(0) @@ -399,7 +400,7 @@ describe('Multi-Act Outdoor Roads & Boundary Divider Networks', () => { for (let x = 8; x < 72; x += 1) { const cell = result.level.cells[y]?.[x] if (!cell) continue - if (cell.floors.some(f => (f.style === 1 || f.style === 5) && f.prop1 === 194)) roadFloors += 1 + if (cell.floors.some(f => (f.style === 0 || f.style === 1 || f.style === 5) && f.prop1 === 194)) roadFloors += 1 if (cell.walls.some(w => (w.style === 1 || w.style === 2) && w.prop1 === 129)) dividerWalls += 1 } }