Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Editing one-way walls very buggy, especially Undo and Mark/Clone #32

Open
rversteegen opened this issue Aug 25, 2019 · 1 comment
Open
Labels
bad data Bugs involving uninitialised or corrupt data bug Yeah... that's broken map editor rel: dwimmercrafty Present in dwimmercrafty 2017-08-31 / D+1 2017-09-22 rel: New in ... Introduced in the tagged "rel:" release/nightlies

Comments

@rversteegen
Copy link
Contributor

One-way walls are implemented using zones instead of passmap bits, which it turns out was a big mistake. A lot of complexity and many bugs and missing features in the map editor have resulted. They're all interrelated, so I'll document them all here:

  • When placed by pressing W, they aren't tracked by undo/redo!

  • If Clone Tile Merging is Off, then the Clone preview cursor converts tiles with one-way wall bits set into all wall bits set (255). This happens when the Clone preview is moved over that tile. Note that the preview is implemented using an undo/redo buffer.

  • If Clone Tile Merging is On, one-way walls aren't destroyed, but they aren't copied as they should be. If you play around with Mark/Clone in the Zonemap mode you see the same thing.

  • Foxley reported all wall bits can also be set when trying to undo/redo placing a one-way wall: https://cdn.discordapp.com/attachments/275093196852166667/387127463572144129/action370001.gif "I actually never set any of those bits, was just messing around with Ctrl+arrow keys and W for one way walls"

  • Pressing W while using the clone tool results in all wall bits (255) being written to the tile under the cursor, although you can't see it because the clone preview hides it

  • There are lots of ways in which one-way walls don't work properly when using the other tools, for example if you use the Box tool and press Space is fills the box with walls, if you press W it doesn't.

  • They aren't reported/handled by the wallmap script commands, you have to use zone commands instead

@rversteegen rversteegen added bug Yeah... that's broken rel: dwimmercrafty Present in dwimmercrafty 2017-08-31 / D+1 2017-09-22 bad data Bugs involving uninitialised or corrupt data map editor labels Aug 25, 2019
@rversteegen
Copy link
Contributor Author

I've fixed the problems related to undo, mark and clone (r11316) but not the non-standard behaviour of other tools, which will be easiest to fix by turning one-way walls into wall bits, even if they aren't actually stored on disk that way, a write/readblock wrapper could treat it as if it was a wall bit.

@rversteegen rversteegen added the rel: New in ... Introduced in the tagged "rel:" release/nightlies label Jan 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bad data Bugs involving uninitialised or corrupt data bug Yeah... that's broken map editor rel: dwimmercrafty Present in dwimmercrafty 2017-08-31 / D+1 2017-09-22 rel: New in ... Introduced in the tagged "rel:" release/nightlies
Projects
None yet
Development

No branches or pull requests

1 participant