Zannick / logic-graph

Tools for video game logic representation and analysis, particularly routing and beatability checks for speedruns and randomizers.
MIT License
3 stars 0 forks source link

recreate_store panics trying to evaluate a Local movement #120

Closed Zannick closed 8 months ago

Zannick commented 8 months ago

The history it's attempting to recreate looks like this:

[C(Antarctica__West__Shed_Entry),
 E(Antarctica__West__Shed_Entry__ex__Shed__Interior_1),
 G(Ice_Axe, Antarctica__Shed__Interior__Shelf),
 W(EarthSave, Antarctica__West__Helipad),
 L(Antarctica__West__Boxes),
 E(Antarctica__West__Boxes__ex__Building_1W__West_Entry_1),
 C(Antarctica__Building_1W__Connector),
 E(Antarctica__Building_1W__Connector__ex__Building_1E__Connector_1),
 C(Antarctica__Building_1E__East_Entry),
 ...]

and it cannot perform L(Antarctica__West__Boxes) which is a local movement. The route file does not specify any movement at all, so this is being inferred, instead of a Condensed edge. Granted, in this case it would be identical. But maybe we should allow history to recreate with a local movement anyway.

Stack:

   0: rust_begin_unwind
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:67:14
   2: analyzer::algo::Search<W,T>::recreate_store
             at /home/bswolf/logic-graph/analyzer/src/algo.rs:519:21
   3: analyzer::algo::Search<W,T>::new
             at /home/bswolf/logic-graph/analyzer/src/algo.rs:346:9
   4: analyzer::cli::run
             at /home/bswolf/logic-graph/analyzer/src/cli.rs:73:26
   5: axiom_verge2::main
             at ./bin/main.rs:23:5
Zannick commented 8 months ago

Oh, this is because I thought move_to was test-only and so changed it to use expand_with_local. Hm, I thought that it would only pick local movements if there weren't any condensed edges...

Zannick commented 8 months ago

I'm misremembering; my original intent was to have it choose local movements if there are no condensed edges per #115. But that's not implemented yet.