ID:134827
 
I don't know how do-able this may be, but, if possible, I think I, and many others, could get a lot more use out of the invisible and see_invisible vars if they were treated like a bitmask instead of 101 levels of invisibilty. This would make things a lot easier when things need to be hidden for different reasons (sneaking, invisibility, fog of war in strategy games). I suppose theres other ways around it, but if it's simple enough to do from your side, it'd be great. Again, just a suggestion, thanks for making such an awesome program and keep up the incredible work!
What's a bitmask? Like an overlay that's actually a mask that can be removed? If you place mask over an object, it keeps it the same, when in theory it should turn it into mask. Oh, I just looked it up, it has to do with binary. Well, I guess that would make it simplier.
I like this suggestion but I don't know if it can be implemented. It would basically break existing games and code, and even adding new vars for this would be a challenge because it would require a change to the server/client message structure.

Lummox JR
In response to Lummox JR
Here's an idea: Handle it completely server-side. From what I've gleaned of the networking code, adding a new var would require adding a new packet type, which would be annoying (though doable, assuming you can navigate the BYOND internals successfully).

But what the networking code also does is transmits only those objects that are in view (plus a border of a tile or so). When new objects come into view, new packets are sent to inform the client about them.

So here's the solution: Don't transmit the invisibility bitmask to the client at all. Simply check it on the server end. If the bitmask says to hide an object from the client, don't send the object at all. The object is effectively and totally invisible!

The client doesn't even need to know the object exists. The server handles all density/collisions and such, so that's not a problem; collisions will still work. You wouldn't expect to be able to use verbs on the hidden object, so that's not a problem either.

(Edit: This also has the advantage that the client can't be hacked to reveal invisible objects - one less thing for a cheater to potentially exploit. =))

Sound doable?