maniator / maniator/verticopolis

[P1] Re-author the refMap service sprites at the 10x45 scale (they are resampled, not redrawn)

Open
#812 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.