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

Experimental z-levels: chopping trees above a LMOE shelter damages the shelter #14117

Closed
terribleperson opened this issue Nov 21, 2015 · 8 comments · Fixed by #35052
Closed
Labels
<Bug> This needs to be fixed (P5 - Long-term) Long-term WIP, may stay on the list for a while. (S2 - Confirmed) Bug that's been confirmed to exist

Comments

@terribleperson
Copy link
Contributor

I am using version 0.C-7585-gefc0cca, or jenkins build 0.C-3934 on Windows 7.Chopping down certain trees on top of an LMOE shelter with experimental z-levels enabled destroys part of the interior of the shelter, mostly metal walls. For my particular situation, it happened with two trees on the front corners of the LMOE shelter. When they were chopped down, there were screeching metal sounds and other sounds not normally associated with tree chopping.

@drbig
Copy link
Contributor

drbig commented Nov 22, 2015

Another interesting issue :)

@drbig drbig added <Bug> This needs to be fixed (S1 - Need confirmation) Report waiting on confirmation of reproducibility labels Nov 22, 2015
@Rivet-the-Zombie
Copy link
Member

Amusing, but definitely not intentional.

@drbig drbig added the (P5 - Long-term) Long-term WIP, may stay on the list for a while. label Nov 22, 2015
@terribleperson
Copy link
Contributor Author

Reproduced. I downloaded 0.C-7693-gafbf095, aka Jenkins build 0.C-3948. I created a new world with default settings except Experimental z-levels being set to True. I created a new character with the scenario Sheltered and the profession Sheltered Survivor. I dumped all his points into strength (and one into dex), and started the game. I used the debug menu and gave myself a wood axe, wielded it, and saved. I then set about chopping down the trees around the shelter. It took a few tries, but I did eventually end up with damage to the underlying shelter. It MIGHT be necessary to smash the shrubbery around the trees before cutting them down.

@drbig drbig removed the (S1 - Need confirmation) Report waiting on confirmation of reproducibility label Nov 23, 2015
@sethsimon
Copy link
Contributor

Eliminating the underground bashing might reduce the underground noise enough to fix #19828.

@Night-Pryanik
Copy link
Contributor

I chopped down almost every tree around the shelter, let the trunks fall in various directions. Underground part of the shelter wasn't affected. 0.C-7145, Windows XP SP3 x86, tiles. Closing for now, if it is still reproducible, ping me.

@xd3ltax
Copy link

xd3ltax commented Dec 19, 2018

I have no idea if this is right but anyways. The issue with choosing trees damaging the lower levels of the lmoe shelter is still happening at least for me it is. I even get the sounds of a wall being destroyed when I'm away from the shelter.
0.C-3513-g59564c6 build 8309 just wanted to let some one know. I came up with my own explanation for it. But maybe it's a bug?

@Inglonias
Copy link
Contributor

Yeah, this is still happening. Workaround for now is to turn Z levels off when doing this, or to debug fix things.

@prutschman
Copy link
Contributor

prutschman commented Mar 22, 2019

I'm can reproduce this in 060ba58.

Felling a tree invokes map::destroy on the tile where the trunk segment will fall. If that tile has bash_below = true, like dirt does, the tile below will be 'bashed from above.' I looked through the code for other uses of destroy and (almost?) everything other than chop_tree_finish and om_cutdown_trees seems to restrict calls to destroy to particular terrain types, or after checking is_bashable.

So, I think what is happening is that the dirt propagates the bash downward. If the tile below is a metal wall, this destroys the metal wall. The dirt is then replaced by t_open_air. It is nearly immediately replaced by the roof tile type of the metal wall, which is a metal floor. Then, once destroy is complete, that metal floor is replaced by a tree trunk.

Perhaps the tree felling code should only destroy the destination tile if it is_bashable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Bug> This needs to be fixed (P5 - Long-term) Long-term WIP, may stay on the list for a while. (S2 - Confirmed) Bug that's been confirmed to exist
Projects
None yet
9 participants