ZaneDubya/UltimaXNA

Missing body sprites should render as a no-draw tile?

ZaneDubya opened this issue · 7 comments

When a client is requested to draw a body sprite that does not exist within the client's AnimX.mul files, it should display the body as a no-draw tile, instead of simply not drawing anything.

Is there any difference between drawing no-draw tile and not drawing anything at all?

Yeah! Drawing the no-draw tile will indicate that there's something invisible there :) I mean that we'll draw the actual no-draw graphic. Maybe we can add an overhead with the name as well.

Is that wanted/expected behaviour? I cant recall how is CC handling this, if it is crashing or just drawing nothing, but I remember running around with completely invisible character (BodyID 0?) while making screenshots instead of being hidden and having ugly grey chars on pictures.

Maybe we could draw no-draw tile only while debug (or other option) is enabled?

I think what your proposing is reasonable. But let me explain the reason for my proposal:

UXNA is hopefully going to be compatible with any data set, connecting to any server, as long as the server doesn't have a version check and the server doesn't send the client to a map that isn't described in the client's data set. However, let's propose, just for funsies, that a client with a T2A-era data set connects to a ML-era server. The server will have all sorts of monsters with bodies that the T2A-era client will not be able to display, on account of not having the graphics for those bodies. I'd like to at least indicate to the client that something is there.

But I see your point. Maybe we could indicate that at least one body is completely invisible - Body 0, if that's the case - or we could add a setting that would not display bodies that are not contained in the client's data set to the settings.cfg file (this would be a mirror image of your proposal).

Why were you taking screenshots? Tell me on gitter if you were doing something awesome? I'd love to hear about it!

Ah, now I understand. I was never playing with anything else then UOML so I did not realized this. Sounds reasonable.

I am not sure, if body 0 is actually and empty slot or there is just an empty animation loaded or it is setup in some other way. Never looked into that, I would just like it to stay this way.

As a GM, sometimes you may want to capture screenshots of an event without having hidden yourself in the middle and other hidden GMs around. Then invisible body comes handy. :-)

I've added this in the "five-fixes-for-friday" branch, but it needs QA.

I'll QA any remaining problems with my fix in another issue if and when I see them (For example, the missing snake animation which I'm keeping, for the moment, in #450).