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".