The commands return every single controller except "interior", which is quite illogical:
SoundControllers
Description
Details
- Severity
- None
- Resolution
- Open
- Reproducibility
- N/A
- Operating System
- Windows 10 x64
- Category
- General
Event Timeline
would have been very handy and cheap way to detect i you are in a building :|
this sound controller is for Man only so it cannot even be added to vehicle sound controllers. It has to be a separate command
_inside = insideBuilding player;
returns "0" if player is on Eden-placed object
↑ related tickets:
https://feedback.bistudio.com/T153970
https://feedback.bistudio.com/T167078
@kju-PvPscene
In video? No, it's terrain house
But this will happens and with Eden placed houses too
This has actually been plaguing the game since the soundupdate years ago that added these features, you can test this with the same pallet example:
- place pallet inside a building like TRAGER did
- preview, go in the building (terrain object), fire a shot -> gun interior sounds play
- go over the pallet and fire -> no interior sounds
The same applies even if you're inside a building and just go one floor above the ground floor, for example building cargo_hq_v1_f.p3d -> interior sounds work on ground floor, go to the next floor inside and interior sounds don't play.
So good change to fix this bug hopefully, clearly the interior detection in-engine is a wee bit too simple. 🤔
Current sound selection is done via checking the surface sound name, if it starts with int_ then it is internal, if not then it is external, simple and cheap. the pallet inside is detected as outside because of that
I will close it as won't fix since there is no sinple solution that wont impact on performance. If you want a placeable object that would be detected as insideBuilding, mod it and change the surface from "wood" for example to "int_wood"
I was about to suggest setObjectSurface command, but that works too :P
(not that setObjectSurface wouldn't have it's uses for someone I suppose)
The surface is type and type is every object of the same type plus it persists through the exe lifetime