Skip to content

feat: the loadout's panels and the power ball draw a mod's larger picture at its size - #1332

Merged
vdmkenny merged 1 commit into
mainfrom
feat/panels-and-ball-any-size
Oct 24, 2026
Merged

vdmkenny merged 1 commit into
mainfrom
feat/panels-and-ball-any-size

Conversation

@vdmkenny

Copy link
Copy Markdown
Collaborator

A mod's fpanels.png and powerball.png can now be a whole multiple of the original 256x256, up to 8192 pixels. Before this, either was skipped unless it was 256x256.

  • Power ball: its tables are worked out at the multiple, the ball's pixels and the texture's alike, with the scroll and the shake scaled to match. At 256x256 the tables and pixels are the same as before, and the colours are the same at any size.
  • Loadout panels: the title, name and info panels' textures are drawn at the multiple. Each of the original's pixels becomes a square, and the text is drawn from the outline fonts at the panels' size. An outline glyph takes the colour of the remap's fullest level, on an edge one original pixel wide in the colour of its faintest. That gives the figures' green on a dark edge and the titles' black letters edged in green. Newtown now stands in for handels.fnt too. Under --bitmap-fonts, the bitmap glyphs are magnified instead.
  • Other pictures: space.tga and starref12.tga are read as data and still need their original size.

Checked headless at 1920x1080 with the game's own pictures upscaled 4 times: the panels keep the original's layout and the ball its place, both sharper.

Closes #509

…ture at its size

OpenReliant draws fpanels.tga and powerball.tga pixel by pixel, so a mod's PNG for either was
skipped unless it was 256x256. Now either can be a whole multiple of that size. The ball's tables
and the panels' textures are worked out at the multiple, and the panels' text is drawn from the
outline fonts at the panels' size, with Newtown now standing in for handels.fnt too. At 256x256
both are drawn as the game draws them.

Closes #509
@vdmkenny
vdmkenny merged commit 84657d0 into main Oct 24, 2026
4 checks passed
@vdmkenny
vdmkenny deleted the feat/panels-and-ball-any-size branch October 24, 2026 11:35
vdmkenny added a commit that referenced this pull request Oct 24, 2026
This is a quality, deduplication and CONTRIBUTING pass over everything
merged since 0.20 (#1320 to #1332).

**Shared code**
- One reader for whole numbers in the mods' manifests: `Crew`, `Tier`,
and a game variable's `Start` and `Attempt`. Its log message names the
key and the range it takes, for example "gives Tier the value '5', which
isn't a whole number from 0 to 3".
- `GameType.playerFlies` says whether the player can fly a ship.
`main.playerShip` and the manifests' check both use it, where they used
to compare against two different constants.
- `layout.isPlaceholder` and `layout.tagName` are now the one home of
the rule that a name starting with an underscore is a placeholder. The
mission source vocabulary, its reference and definitions writers, the
game variables' and ship types' script names, and the scripts' values
each spelled it out before.
- `gameflow.setFromRecords` sets the game's variables for both a new
campaign and each attempt.

**Tidying**
- A family's two base lookups are one optional field, `Spec.bases`,
since a family has both or neither.
- The pause menu's frame, the restart screen's dimmed canvas and its
shapes are each worked out once per draw.
- Comments added since 0.20 are rewrapped to 100 columns, and a few
sentences in the code and the guides are plainer. A list in the
scripting guide no longer splits in two.

The generated references don't change. All tests pass locally.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The loadout's panels and the power ball from mods at any size

1 participant