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.
Another interesting issue :)
Amusing, but definitely not intentional.
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.
Eliminating the underground bashing might reduce the underground noise enough to fix #19828.
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.
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?
Yeah, this is still happening. Workaround for now is to turn Z levels off when doing this, or to debug fix things.
I'm can reproduce this in 060ba58634ecf0ceed5ded1d5d2271d.
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.