mirror of
https://github.com/vladtrc/iw4L
synced 2026-10-26 18:25:39 -04:00
acc57a5c9d
- Underbarrel attachments work across IW4, IW5, T5 and T6, including per-family impact FX, T5 flamethrower streams and T6 launcher fuses. - Viewmodel notetrack sounds play in third person. - Transport operations and queues are bounded; Quinn congestion control returns to its default. - Match publication, presentation context and prepared content semantics are qualified and validated; cosmetic and entity occurrence lifecycles are preserved. - GPU skinning batches within supported device budgets. - Immutable UI projections and correlated class replies are reconciled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
51 lines
3.5 KiB
Markdown
51 lines
3.5 KiB
Markdown
# Presentation publications
|
|
`render_fx::PresentedFireFx` owns receipts for one world and replay timeline.
|
|
A receipt identifies a fire cause and product, with pellet/segment identity for
|
|
tracer, impact, glass and marks. Positions, normals, surface and target are
|
|
result data. Authority replaces that data; conflicting authority is refused.
|
|
| product | prediction | authority |
|
|
|---|---|---|
|
|
| muzzle/brass | create when available | retain success or retry refusal |
|
|
| tracer/transient impact | create when available | retain success or retry using authoritative result |
|
|
| marks | defer | schedule mark emission once |
|
|
| glass | defer | evaluate authoritative segment once, including zero hits |
|
|
`execute` admits scope/verdict/budget before invoking creation. It records
|
|
success after creation returns. Dependency and allocation refusals remain
|
|
retryable; intentional tracer interval skips are terminal. Marks report
|
|
Scheduled, separately from Created: a scheduled effect can later encounter a
|
|
receiver/material refusal in the mark subsystem.
|
|
Impact effects carry Transient or Marks emission policy through runners,
|
|
emitted children, impacts, deaths and trails. Transient effects cannot emit
|
|
decals; Marks effects simulate child motion without drawing particles,
|
|
models/lights/trails or playing sounds.
|
|
Expiration runs once per presentation frame, including idle frames. Receipts and
|
|
tracer shot decisions retain a 5000 ms horizon; the receipt bound is 8192
|
|
products. Saturation refuses admission rather than evicting recent successes.
|
|
World/timeline replacement or clock rewind resets the scope; i32 wrap remains
|
|
legal. Late delivery after expiry may create a fresh product. `fx_dump` reports
|
|
scope/time, product budget refusals, receipt size/capacity and sweep costs.
|
|
`asset_material::UiImagePublication` owns material mappings, preview policy,
|
|
zone payloads and archive indices. Shell/match installation selects privately
|
|
prepared products. A late shell completion cannot replace an installed match.
|
|
HUD caches and class/loading previews adopt publication identity. Shell previews
|
|
use this publication; gameplay archive image plans begin with the first match
|
|
and remain shared. Menu overlays replace maps and caches when menus change.
|
|
Installation revisions cover relevant file metadata, following game symlinks.
|
|
Unix revisions also include inode/change time. A new load checks the revision;
|
|
there is no automatic file watcher. Archive indices retain opened readers, so
|
|
atomic file replacement preserves old readers for referenced publications.
|
|
In-place corruption is refused through archive length/CRC validation.
|
|
|
|
`EditorWeaponCatalog` exposes map-independent selection and class admission;
|
|
it cannot be installed as `PreparedWeapons`. Match admission additionally
|
|
checks prepared FPV assemblies and map-selected hands. Appearance selection
|
|
keeps NativeReady, BaseByPolicy and DeclaredUnavailable separately for view and
|
|
world models. Render consumers retain refusal reasons and do not replace a
|
|
declared unavailable model with the base weapon.
|
|
|
|
Accepted pellet impacts publish independently of FX, keyed by installation, timeline and shot/pellet/segment.
|
|
Replay reuses retained snapshot metadata; a retention gap restores the cosmetic checkpoint before applying retained occurrences.
|
|
Corpse identity includes an authority spawn sequence, and corpse equipment/team appearance is captured at death.
|
|
Cosmetic physics keeps its canonical hull and mask during recovery; incomplete collision refuses activation.
|
|
FX pieces freeze analytic spin only after supported low motion; angular torque is not simulated.
|