[crossfire] Re: Map Protocol Question
Andreas Kirschbaum
kirschbaum at myrealbox.com
Mon Aug 22 02:23:37 CDT 2005
Alex Schultz wrote:
>
Quoting Andreas Kirschbaum <
kirschbaum at myrealbox.com
>:
>
> - client receives "map_scroll +1/0"
>
> client basically ignores it because it has a cleared map state
>
>
This ignoring as I see it is the main issue with the current
>
semantics. For one thing the python bot that I started on a while ago
>
wouldn't ignore the map_scroll in this case, and therefore there isn't
>
such a display error in that respect (though it's probably not a good
>
thing to model a proper implimention based on because it has even more
>
display errors).
Maybe I did use the wrong words here, but the client does not just
ignore the map_scroll command: I tried to say that the client currently
has an empty map. Now he receives the map_scroll command and properly
scrolls the map view. But since an empty map scrolled by one tile is
still an empty map I said it "basically ignores" the map_scroll command.
>
> - client receives "map1a <difference of Scorn to gatehouse>"
>
> Note: this information is not correct because it is a difference
>
> from Scorn, not a difference from an empty map. This is why
>
> some tiles show up as blank for a short time: all tiles that
>
> did not change are displayed blank (client already has
>
> cleared his map view).
>
>
I'm not exactly sure this is an issue *if* the client doesn't ignore
>
the map_scroll.
This is not the problem I tried to explain: the client does *not* ignore
the map_scroll command (see above), but the problem is that the server
sends:
1. newmap
2. difference S->G
3. difference E->G
(with S=Scorn, G=gatehouse, E=empty)
Therefore the client updates his map view as follows:
1. newmap: client clears his map view; it is now E.
2. diff S->G: client "patches" his map view (currently E) with a
difference S->G. This is not correct because that difference should
be applied to the map view S, but not to E.
3. diff E->G: client "patches" his map view (currently "E patched by
S->G", which is often "G with a few blank holes in it"). Again, this
is not correct because this difference should be applied to the map
view E but not to "G with holes".
More information about the crossfire
mailing list