Unify Iron Coast mission names and cinematic mission previews
This commit is contained in:
1 parent
668b3ff86d
commit
2d95e145a5
406 files changed
+134963
-245
No files matched your search
+7
-3
@@ -4,7 +4,7 @@ This is an experimental API for the Rust engine. It provides local content packa
|
||||
|
||||
## Try the example
|
||||
|
||||
`mods/aurora/` adds two projectiles, a pulse cannon, a repair cell, two enemies, a mission and a campaign. The weapon adds angled shots in Rhai; enemy movement, item rewards and mission objectives also use scripts. Its artwork references asset IDs in the locally extracted original catalog. The example contains no original or generated game artwork.
|
||||
`mods/aurora/` adds two projectiles, a pulse cannon, a repair cell, two enemies, a mission and a campaign. The weapon adds angled shots in Rhai; enemy movement, item rewards and mission objectives also use scripts. Its gameplay sprites reference original catalog asset IDs. The package also includes authored SD/HD mission-briefing artwork for the menu; these illustrations do not replace its gameplay sprites.
|
||||
|
||||
Validate the package against your original game data:
|
||||
|
||||
@@ -122,7 +122,11 @@ An `art` object requires exactly one of `asset` (an original numeric catalog ID)
|
||||
}
|
||||
```
|
||||
|
||||
PNG animations are horizontal strips of equally sized frames. For example, four 64×64 frames use a 256×64 PNG and may declare logical dimensions of 16×16. The strip width must divide evenly by `frames`; supply consistent canvases and alignment across frames. Alpha below 128 is transparent. Opaque colors are mapped to ordinary entries 0–239 of the selected game palette. Plain PNGs carry no palette-animation labels, so their highlights cannot acquire reserved water, fire or blinking indices 240–255. Artwork already detailed enough for the selected rendering scale bypasses automatic sprite enlargement. Original asset animations use consecutive catalog IDs and retain their native palette labels. Terrain artwork and destroyed terrain replacements follow the same format.
|
||||
PNG animations are horizontal strips of equally sized frames. For example, four 64×64 frames use a 256×64 PNG and may declare logical dimensions of 16×16. The strip width must divide evenly by `frames`; supply consistent canvases and alignment across frames. Gameplay rendering treats alpha below 128 as transparent and maps opaque PNG colors to ordinary entries 0–239 of the selected game palette. Plain gameplay PNGs carry no palette-animation labels, so their highlights cannot acquire reserved water, fire or blinking indices 240–255. Artwork already detailed enough for the selected rendering scale bypasses automatic sprite enlargement. Original asset animations use consecutive catalog IDs and retain their native palette labels. Terrain artwork and destroyed terrain replacements follow the same format.
|
||||
|
||||
Mission briefing PNGs keep their full RGB colors in mission menus. They follow the same checked artwork paths, logical dimensions, horizontal frame strips and SD/HD selection rules as other artwork. The menu displays frame 0 in a shared 132×70 logical-pixel landscape viewport, scaling without distortion and cropping centrally to fill it. Keep the aircraft and destination readable near the center; titles, mission numbers and controls belong in menu text. Original missions use `data/briefings/sector_<sector>_wave_<wave>_{sd,hd}.png`. These new menu illustrations do not increase Original sprite or terrain remaster coverage.
|
||||
|
||||
Both `--verify-assets` and mod activation use the shared referenced-PNG artwork validator for base and mod owners. It checks weapon, item, enemy, mission, campaign, terrain and destroyed-terrain references, including bundled Original mission briefings. PNG file errors identify the content ID, owner and artwork path. Native catalog sprites keep their existing catalog validation path. A candidate mod selection is applied only after its artwork and other content checks succeed.
|
||||
|
||||
Artwork dimensions and decoding allocation are bounded. PNGs may be up to 4096 pixels in either direction, with at most 4,194,304 pixels and a 64 MiB decoding allocation limit. Logical dimensions are separately validated and stay independent of physical PNG resolution. The packaged original catalog, approved runtime remasters and authored mod artwork/sounds are included in Git; working remaster proofs and source references remain external.
|
||||
|
||||
@@ -222,7 +226,7 @@ Rhai uses an explicit package allowlist for arithmetic, strings, collections, it
|
||||
|
||||
Rust pilots use separate, versioned JSON files under `$XDG_DATA_HOME/RaptorReplica`, and settings use TOML under `$XDG_CONFIG_HOME/RaptorReplica`. Atomic writes replace completed saves after file and directory synchronization. Legacy saves are read and imported; their original bytes are not modified.
|
||||
|
||||
Each pilot records the ordered mod IDs, package versions, full content hashes, script states and script RNG positions. The load screen reports missing packages, changed versions or hashes, changed required load order, and unavailable equipment or missions. Changing a package without changing its version still changes its hash and therefore requires confirmation. Cancel leaves the current pilot and original save untouched; choosing to load accepts the differences for that pilot session.
|
||||
Each pilot records the ordered mod IDs, package versions, full content hashes, script states and script RNG positions. The load screen reports missing packages, changed versions or hashes, changed required load order, and unavailable equipment or missions. Changing a package without changing its version still changes its hash and therefore requires confirmation. This includes cosmetic changes to display names, artwork filenames inside the package or artwork bytes. Keep stable content IDs when updating presentation: the usual changed-mod confirmation applies, while equipment and progression retain their existing ID references. Cancel leaves the current pilot and original save untouched; choosing to load accepts the differences for that pilot session.
|
||||
|
||||
Unavailable equipment stays in the pilot's inventory with its saved quantity and occupies its original inventory slots, but cannot be fired, selected or traded until its definition is available. Unavailable completed missions remain recorded. If the saved current mission is missing, choose an available mission in the hangar before flying. Runtime saves retain inactive package pins, script state and script RNG alongside the active packages, so restoring a disabled package can recover its data. Current active versions and hashes are recorded after an accepted load is successfully saved; the original save is backed up before its first replacement. Structural corruption, unsupported save versions and invalid IDs still cannot be loaded. This API does not yet provide scripted mod save migrations, so a changed script must handle its earlier serializable state.
|
||||
|
||||
|
||||
Reference in new issue
Block a user