## Summary
- Mark landing position corrections as presentation discontinuities.
- Render and frame fighters from the current position for the snap frame.
- Keep previous translation history unchanged for gameplay collision and attack logic.
Reviewed-on: #67
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- add a rollback-tracked `FighterSurfaceState` as the single source of truth for stage contact
- move active stage line ownership out of individual grounded fighter states
- update landing, airborne motion, ledge departure, hit reactions, and debug save states to maintain surface contact
- add tests for contact lifecycle, connected-segment traversal, and ledge departure
Reviewed-on: #60
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- signal GameCube poll thread shutdown unconditionally when the snapshot is dropped
- retain and join the poll thread during resource cleanup
- add bounded, shutdown-aware backoff for recoverable parse and short-read errors
- add unit coverage for backoff capping and shutdown-aware waits
Fixes#25
Reviewed-on: #55
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
Fixes#20.
- Reuse fighter animation scratch and output buffers across rollback frames.
- Select air-collision hits in one pass without candidate allocations or sorting.
- Index contiguous replay input frames directly and binary-search checksums.
- Add regression tests for buffer reuse and replay lookup/validation.
Reviewed-on: #53
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- install the nightly Windows MSVC target and cargo-xwin in CI
- build the production Windows executable alongside Linux
- package both executables and only imported_assets in one Steam depot
Reviewed-on: #50
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- register Bevy's image loader explicitly in the headless asset processor
- use no GPU-compressed image formats because the processor has no render device
- allow PNG processing tasks to complete so `ProcessorState` reaches `Finished`
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- share custom RON asset loaders between the game and asset processor
- register image, font, and glTF loaders in the headless processor
- prevent `game_settings.ron` and `game.stylesheet.ron` from receiving ignored processed metadata
Reviewed-on: #48
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- package the production Linux binary and Bevy assets under `build/linux`
- generate Steam TOTP credentials in CI
- deploy app 3409670 to the Steam `master` branch using the latest commit hash as the build description
- restrict packaging and deployment to pushes on `master`, excluding pull requests and manual runs
Reviewed-on: #47
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- split development dynamic linking from production builds
- add headless processed-asset generation
- add a separate production CI cache and static Bevy/Rust linkage verification
- keep custom debug features enabled for production builds behind a feature gate
Reviewed-on: #46
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
Fixes#19
Splits the baked animation implementation into focused fixed-transform, runtime, visual-binding, and asset-baking modules behind the existing public facade. Preserves public APIs, serialized field order, TypePath, plugin registration, schedules, and runtime behavior.
Reviewed-on: #38
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
## Summary
- update rust-cache to v2.9.2, which preserves dynamic-linking target artifacts during cleanup
- rotate the cache prefix to invalidate the broken v1 cache
Reviewed-on: #37
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
Fixes#22
Extracts shared grounded collision/friction and airborne movement/landing policies while preserving state-specific behavior. Running fighters now pass `can_walk_off = true` so they can run off platform edges. Includes grounded and airborne hitstun call sites.
Reviewed-on: #36
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>