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

Fix Wall Spells on objects #7364

Merged
merged 3 commits into from
Sep 4, 2024

Conversation

kphoenix137
Copy link
Collaborator

@kphoenix137 kphoenix137 commented Aug 24, 2024

Fixes: #7323

@NiteKat enjoy

Completely removes the check for objects when attempting to find a valid position for Fire Wall/Lightning Wall. Seems rather absurd that objects force walls to move to another position, but the wall will happily grow over objects.

@NiteKat
Copy link
Contributor

NiteKat commented Aug 24, 2024

How does this behave with casting on closed doors/shrines/other solid objects that are not destructible? Does it feel weird the way it behaves in those cases?

@kphoenix137
Copy link
Collaborator Author

kphoenix137 commented Aug 24, 2024

How does this behave with casting on closed doors/shrines/other solid objects that are not destructible? Does it feel weird the way it behaves in those cases?

@NiteKat

Original logic:

Wall casting logic:

  • Is there a solid tile at this location? (If an arrow cannot occupy this tile, that's a good indication it's considered solid)
    • Bad location, find another nearby tile to cast
  • Is there an object in any state in this tile?
    • Bad location, find another nearby tile to cast

Wall growing logic:

  • Is there a solid tile at this location? (If an arrow cannot occupy this tile, that's a good indication it's considered solid)
    • Bad location, don't grow wall and stop growing it in this direction
  • Is there an object in any state in this tile?
    • Good to go!

Revised logic:

Wall casting logic:

  • Is there a solid tile at this location? (If an arrow cannot occupy this tile, that's a good indication it's considered solid)
    • Bad location, find another nearby tile to cast
  • Is there an object in any state in this tile?
    • Good to go!

Wall growing logic:

  • Is there a solid tile at this location? (If an arrow cannot occupy this tile, that's a good indication it's considered solid)
    • Bad location, don't grow wall and stop growing it in this direction
  • Is there an object in any state in this tile?
    • Good to go!

Expanding upon this explanation, a closed door counts as a solid tile, so a wall cannot grow or be casted on these no matter what. I'm sure in the original logic, an open doorway counts as a non-solid tile, however that tile is occupied by an object which would prevent casting a wall on its location, however with my fix you can.

Source/missiles.cpp Outdated Show resolved Hide resolved
@AJenbo AJenbo merged commit c138d29 into diasurgical:master Sep 4, 2024
22 checks passed
@kphoenix137 kphoenix137 deleted the fix-firewall-on-objects branch September 4, 2024 02:25
@AJenbo AJenbo added the vanilla Bugs found also in the original Diablo 1.09b release label Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vanilla Bugs found also in the original Diablo 1.09b release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Issue Report]: Firewall Casts on Wrong Tile with Broken Barrels
4 participants