Usually this would be pretty easy however the way I've structured my game I'm finding it really impossible to figure out how this would work. My hope is that somebody here has a method I haven't tried yet and I can use that in conjunction with what I have
The problem is that I'm using two different sets of variables stored on two different Z axis of an array object (which then these values are xferred to a 7x7 grid of active objects to display the picture of the bottom level ground / floor, and etc). Z = 0 axis is for the ground or floor and Z = 1 axis is for the roof. There are 49 total active objects designated for each of these 2 actives and importantly they do not overlap each other and exist on separate layers. I bold this last part because otherwise I'd be able to do something like "If the bottom tile is a floor, and the roof active is overlapping it, AND you yourself are also outside on a regular ground tile then set the value of the roof array / picture to display a roof tile" else it'd assume you were inside the building and the roof tile would not be displayed because you're supposed to see what's inside when you're in the building!
The tricky part is because I have multiple Z axis layers of the array, I can't just change a roof tile to a floor tile because there might be other items that exist on the floor tile like tables / chairs / etc.
GUY OUTSIDE A BUILDING
Here the roof is denoted by the red tiles, and you can't see what's inside.
GUY WALKS IN THE DOOR OF SAID BUILDING
Now the guy moves 1 space up through the doory, and the roof tiles all disappear and you can see everything inside (floor are the brown tiles here).
But yeah.. AHHHHH!!! Tried for like 2 hours last night to do this and it just doesn't work at all. While this isn't the worst thing in the world I really do think it'd significantly improve this particular area of my game if I could figure it out.
So basically any ideas would be greatly appreciated!