mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
Record selected archive revert behavior and re-merge ownership
This commit is contained in:
1 parent
edce9c8e7d
commit
c131d82d5d
3 files changed
+95
-6
No files matched your search
@@ -1,5 +1,6 @@
|
||||
//! Host game physics ownership and schedule. Physical calculations stay in core.
|
||||
/// Shared stock physics_mode key for loaded settings and per-frame mode packets.
|
||||
#[cfg(test)]
|
||||
pub(crate) const PHYSICS_MODE: &str = "easy";
|
||||
|
||||
mod air_phase;
|
||||
@@ -270,8 +271,8 @@ impl GamePhysics {
|
||||
let settings = PhysicsSettings::load(&data)?;
|
||||
let animation_profile = animation_phase::AnimationProfile::load(&data, difficulty.key())?;
|
||||
eprintln!(
|
||||
"SKATE_PHYSICS_MODE {PHYSICS_MODE} index={}",
|
||||
animation_profile.physics_mode
|
||||
"SKATE_PHYSICS_MODE {} index={}",
|
||||
difficulty.key(), animation_profile.physics_mode
|
||||
);
|
||||
let mut spawn = RetailAffineTransform {
|
||||
translation: Vector3::new(
|
||||
|
||||
@@ -59,10 +59,8 @@ pub(super) fn set(
|
||||
skater: &mut SkaterRuntime,
|
||||
requested: PhysicalStateId,
|
||||
) -> Result<(), String> {
|
||||
// RevertGround is a transient selector owner in TU3. Its Enter/Exit
|
||||
// production methods are the empty adapter and it must not replace the
|
||||
// live ground solver. Keep the selected solver on PhysicsGround while
|
||||
// preserving the selector's next-frame flags.
|
||||
// Selected archive behavior: revert requests continue through the ordinary
|
||||
// ground solver. The user's previous dedicated revert owner is not entered.
|
||||
let requested = match requested {
|
||||
PhysicalStateId::RevertGround => PhysicalStateId::PhysicsGround,
|
||||
state => state,
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# Archive 5 re-merge
|
||||
|
||||
Baseline: the user's build at `ba92948`. Source archive: `crates (5).zip`,
|
||||
SHA256 `ca57392b5625f228a46d32cb10b3455f9946f6bfefefb08cfd649ac3706569d5`.
|
||||
The first attempt is retained on `lol/archive-crates-5-integration` for reference.
|
||||
The replacement is on `lol/archive-crates-5-selective`, rebuilt from the baseline.
|
||||
Previously reviewed adapter code was reused where it fits the agreed ownership;
|
||||
the archive was not applied as a replacement source tree.
|
||||
|
||||
## Agreed ownership
|
||||
|
||||
| Area | Decision |
|
||||
| --- | --- |
|
||||
| Off-board movement, board possession, mounting/landing | Archive systems |
|
||||
| Grinds, spline queries, material/family handling | Archive systems |
|
||||
| Powerslides | Archive runtime and settings |
|
||||
| Reverts | Archive fallback, explicitly selected by the user |
|
||||
| Manuals and FPS display | Add archive support |
|
||||
| Session markers and automatic bail recovery | Keep user's features |
|
||||
| Plants, boneless and handplants | Keep user's behavior; adapt query interfaces |
|
||||
| Scoring/HUD, crash reporting, outfits/custom models | Keep user's features |
|
||||
| Map management, multiplayer, menus, replay | Keep user's features |
|
||||
| Pose sampling, authored clip overrides, blend-space evaluator | Keep current implementation |
|
||||
|
||||
The archive redirects `RevertGround` requests to ordinary ground physics; it
|
||||
does not supply a dedicated revert solver. That fallback is intentional in this
|
||||
merge. The previous revert owner is not entered through normal state selection.
|
||||
Powerslide runtime, update and settings files match the archive.
|
||||
|
||||
## Integration details
|
||||
|
||||
The new off-board/grind owners use the current marker and respawn services.
|
||||
Manual marker returns retain the saved on/off-board state and clear pending
|
||||
physics work. Manual markers and automatic bail checkpoints remain separate.
|
||||
Plants query the new spline/trajectory interfaces. Multiplayer collision
|
||||
publication reads the new per-part board-volume state. Optional climbing resumes
|
||||
through the new off-board contact owners.
|
||||
|
||||
The preservation audit found 46 feature files unchanged from `ba92948`, and
|
||||
eight adapter files changed: boneless launch, climbing approach/test queries,
|
||||
footplant ground/edge queries, handplant queries, network collision publication,
|
||||
and automatic-respawn observations. Shared frame/state coordination also adapts
|
||||
these retained features to the archive owners; unchanged feature files alone do
|
||||
not prove runtime compatibility.
|
||||
|
||||
The user's interpolated animation/replay presentation function is unchanged.
|
||||
Only the archive's independent skater-culling fix was added around it. Existing
|
||||
native bump Begin dispatch/arithmetic, decoded-key sampling, authored clip
|
||||
replacements and weighted blend arithmetic remain. Unsupported stock predicates
|
||||
are not replaced with guesses, and optional unsupported branches retain explicit
|
||||
lazy diagnostics. The silent archive deck-angle no-op remains an explicit error
|
||||
if reached.
|
||||
|
||||
Collection lookup accepts both readable and numeric AttribSys names. This fixes
|
||||
the first build's `Missing stock collection anim_motion/manual` initialization
|
||||
failure without changing or regenerating assets. Two data-only regression tests
|
||||
passed in the investigation; a static audit resolved 157 literal lookups against
|
||||
the prepared 6,849-collection export, including payload sizes.
|
||||
|
||||
## Validation and private build
|
||||
|
||||
`cargo check --workspace --tests --release --no-default-features --offline`
|
||||
passed for the reconciled owners. Gameplay tests were compiled, not executed.
|
||||
The final Windows executable is linked directly to an ignored private filename
|
||||
with explicit `/OUT` and `/PDB`, using the shared target cache and static CRT.
|
||||
The launcher is updated only after successful linking and PE/PDB provenance
|
||||
inspection. The ignored build manifest records the exact source revision/hash.
|
||||
|
||||
The existing prepared customiser assets, ten maps, scoring HUD and marker overlay
|
||||
are reused. No ISO extraction, Blender, clean build, game launch, Steam session,
|
||||
push, merge into the main branch, or release is performed by this task.
|
||||
|
||||
## Manual checks
|
||||
|
||||
1. Start University and resume; check that initialization completes, the avatar
|
||||
remains visible and the HUD/FPS display appears.
|
||||
2. Push, steer, brake, ollie, flip and manual. Try powerslides in both directions
|
||||
and at low/high speeds; watch for sudden spins, loss of control or stuck poses.
|
||||
Try revert input too, remembering this build uses the archive's fallback.
|
||||
3. Dismount, run, jump, fall, throw/retrieve and remount. Watch for floating feet,
|
||||
immediate landing poses, board separation and unexpected bails.
|
||||
4. Enter/exit grinds from both sides; exercise plants, handplants and boneless.
|
||||
Check for missed contact, abrupt launches and states that fail to end.
|
||||
5. Set a marker with LB + D-pad Down and return with LB + hold D-pad Up, on and
|
||||
off the board. Bail separately; confirm the manual marker is not overwritten.
|
||||
6. Change maps, difficulty and outfits, then repeat recovery checks. Check replay
|
||||
interpolation and multiplayer appearances/contacts in a prepared session.
|
||||
|
||||
Report failures with the diagnostic report, map/difficulty and last controller
|
||||
action. Compile and source-preservation checks do not establish gameplay parity.
|
||||
Reference in new issue
Block a user