Git Product home page Git Product logo

encrusted's People

Contributors

bofh69 avatar curiousdannii avatar demille avatar sphinxc0re avatar swolchok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

encrusted's Issues

Cannot build locally

Trying to build the project locally, and am running into some sort of conflict with wasm-glue. Has anyone run into this before?

Compiling wasm-glue v0.1.0
   Compiling syn v0.15.26
error[E0425]: cannot find function `set_print` in module `io`
    --> /Users/dan/.cargo/registry/src/github.com-1ecc6299db9ec823/wasm-glue-0.1.0/src/lib.rs:125:9
     |
125  |     io::set_print(Some(Box::new(printer)));
     |         ^^^^^^^^^ help: a function with a similar name exists: `_eprint`
 
error[E0425]: cannot find function `set_print` in module `io`
    --> /Users/dan/.cargo/registry/src/github.com-1ecc6299db9ec823/wasm-glue-0.1.0/src/lib.rs:131:9
     |
131  |     io::set_print(Some(Box::new(printer)));
     |         ^^^^^^^^^ help: a function with a similar name exists: `_eprint`

Infidel bricks

After removing/re-inserting some bricks in Infidel, the description of the panel gets screwy.
screenshot 2018-10-05 at 6 50 28 pm

Recognize "x" as "examine"

I'm not sure when this was introduced, but typing x as an abbreviation for examine is a feature in most Z-machines I've used, and its absence is tedious.

Make encrusted a library independent of the frontend

I have been working on an Android port of encrusted and I forked the project to make it behave more like a library crate(removing all UI implementations, JS...). I then created my own crate that depends on it and implements the UI in a way that I want. I think it's always best to keep the core emulation code in a separate crate to be more reusable (like for example https://github.com/mikebenfield/euphrates).

Are there any plans to make encrusted a more developer-friendly library? As I said, I have a fork that Im working on that removes some parts of, but there are more parts I would like to revisit like the UI trait (I dont like the fact that the trait needs to care about the specific implementations), maybe a more generic Read/Write-like traits would be more suitable. In upcoming weeks, when I feel its something worth a PR, I will push the repo and we can discuss this further.

I think Z-machine emulator is something worth having as a library, because its pretty hard to implement well. And because of the size of the code I would much rather tweak this, than rewrite it from scratch.

There isn't anything to !

Several times, after dying, then control-Z to undo, the next command I type always fails with "There isn't anything to !" (playing Infidel.z6.)
screenshot 2018-10-05 at 7 56 38 pm

Unstable state after game ends

I finished Infidel, it showed me final score and the game hangs (as it's supposed to.) I wanted to try something else for last move. Control-Z gave a bunch of z-machine errors, but then it put me back in the game, and I can do more control-Zs to back up, but RETURN doesn't do anything so I can't type commands.

Monospace font

Certain puzzles (museum puzzle in Zork III, hieroglyphics in Infidel) require a monospace font to render properly. There needs to be a preference to force that.

Also, it seems like encrusted removes multiple spaces, which also ruins the formatting of some puzzles.

screenshot 2018-11-06 at 7 41 42 am

Panic from zmachine

Pressed back a few times and then issued a command and got the following error:

Unexpected zmachine error:

Error: Panicked at 'already borrowed: BorrowMutError', /checkout/src/libcore/result.rs:916:4
    at env.trace.t (https://sterlingdemille.com/encrusted/worker.js:1:18917)
    at t (https://sterlingdemille.com/encrusted/worker.js:1:8345)
    at wasm-function[160]:622
    at wasm-function[231]:310
    at wasm-function[230]:117
    at wasm-function[229]:123
    at wasm-function[382]:147
    at wasm-function[40]:139
    at wasm-function[122]:3616
    at b.feed (https://sterlingdemille.com/encrusted/worker.js:1:9896)

Select and Copy text

In the web browser, it sure would be nice to be able to select text so I can copy it to the clipboard.

typo repeats command

Playing Zork III on the web interface, twice I have seen that a typo prints the correct error message, followed immediately by attempting to repeat the previous command.

screenshot 2018-11-05 at 8 46 59 pm

Error message on game end

After losing at Infidel, it asked Do You Want to Play Again? and not paying close attention I typed "restore" which crashed the z-machine. Then I couldn't use Encrusted anymore. Even if I open it in a new window, I get a z-machine error message and am stuck. Had to Delete Saves to get back to normal.
screenshot 2018-10-05 at 10 22 48 am

Use RegTest

Use RegTest for running tests. This is a proven system which makes it very easy to add new tests.

Also, in addition to Czech and Praxix, I'd recommend Minizork for authentic Infocom, Advent.z3 for the modern ZILF compiler, and Curses.z3 (first release) for Inform.

And if you come across anything which isn't caught by Praxix, I'd always be happy to accept pull requests for more tests. :)

"Opcode not yet implemented: set_text_style" for Lost Pig

I tried to run Lost Pig and got this stack trace & error:

Pig lost! Boss say that it Grunk fault. Say Grunk forget about closing gate. Maybe boss right. Grunk not remember forgetting, but maybe Grunk just forget. Boss say Grunk go find pig, bring it back. Him say, if Grunk not bring back pig, not bring back Grunk either. Grunk like working at pig farm, so now Grunk need find pig.

thread 'main' panicked at '

Opcode not yet implemented: set_text_style (VAR_241) @ 0x27c7d

', /home/rory/.cargo/registry/src/github.com-1ecc6299db9ec823/encrusted-1.1.0/src/rust/zmachine.rs:1344:18
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:70
             at src/libstd/sys_common/backtrace.rs:58
             at src/libstd/panicking.rs:200
   2: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:215
             at src/libstd/panicking.rs:478
   3: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:385
   4: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:340
   5: encrusted::zmachine::Zmachine::handle_instruction
   6: encrusted::main
   7: std::rt::lang_start::{{closure}}
   8: main
   9: __libc_start_main
  10: _start

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.