maniator / maniator/verticopolis
[P1] Re-author the refMap service sprites at the 10x45 scale (they are resampled, not redrawn)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Found by the adversarial review on PR #811 (world scale moved to TILE 10 / FLOOR 45).
refMap in src/render/sprites/facilities/serviceKit.ts:15-39 documents its contract as: "At the canonical bake size (w === RW, h === RH) the map is the identity, so the port is pixel-exact."
Every caller authored its reference at the retired TILE 11 / FLOOR 44, so no caller can hit identity any more:
| caller | reference RW x RH | actual now |
|---|---|---|
garage.ts:17 drawParking |
44 x 44 | 40 x 45 |
garage.ts:59 drawParkingRamp |
176 x 44 | 160 x 45 |
service.ts:24 drawSecurity |
88 x 44 | 80 x 45 |
service.ts:61 drawMedical |
176 x 44 | 160 x 45 |
service.ts:127 drawHousekeeping |
88 x 44 | 80 x 45 |
service.ts:167 drawRecycling |
220 x 88 | 200 x 90 |
Every rect now ports through Math.round(rx * 10/11) horizontally and x 45/44 vertically. Concrete damage: the security monitor wall (service.ts:32-41, five monitors at reference pitch 10, width 8) lands at columns 5, 15, 24, 33, 42, a pitch of 10/9/9/9 with widths 8/7/7/7/7, so a regular 2x5 grid renders visibly irregular. wallp's 12px seam pitch becomes 11/11/10, box()'s 1px lit-left and shaded-right edges collapse into one column on roughly one position in eleven, and 45/44 inserts one duplicated pixel row into all six sprites.
Nothing tests this, which is why it was invisible.
Fix: re-author the six reference maps at the shipped scale, or make the reference size derive from TILE/FLOOR so identity holds by construction. Art work, so it goes through the room-design approval gate in the visual-parity GDD.
Also fix serviceKit.ts:6, which states "the canonical footprint (TILE 11 by FLOOR 44)" as fact.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/render/sprites/facilities/serviceKit.ts:6 and :15-39, then inspect the six callers listed in garage.ts and service.ts. Read the visual-parity GDD and room-design approval requirements before choosing whether to re-author the reference maps or derive their sizes from TILE/FLOOR. Done means the six sprites preserve identity at the shipped scale, the canonical-footprint wording is corrected, and visual approval is obtained.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100