[CF-Devel] cfclient issues
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Sun May 18 20:09:58 CDT 2003
Andreas Vogl wrote:
>
On some machines (like SUNs at my university), I'm still bound to
>
use cfclient.
>
I've noticed that cfclient has a few problems:
>
>
- Darkness doesn't work. The tiles are either fully visible or pitch black.
>
I suspect this might be due to the transparent darkness code not working
>
or something?
>
>
- Fog of war doesn't work either. Probably related, but I'm not sure
>
how it is supposed to work. As it stands, I can't tell which squares are
>
really visible and which are fog of war. That's quite confusing.
>
The worst thing about it is that the fog of war tiles stay like "frozen"
>
after moving out of sight. That means there are sometimes images
>
of myself/spell animations/bolts etc which stay "frozen" on those tiles.
I fixed those up - they both use stippling logic (given the opaque nature of
Xpixmaps, we can't easily do clever things like adjust the color in the images
themselves). I don't know what that feature was removed, but I'm the one that
probably did it :)
>
>
- When large parts of the map view change (like when applying an
>
exit, or casting dimesion door) there are display errors for a short
>
moment. Some tiles go black/white for a split second, then return
>
to normal. That's not terrible, but it didn't happen in older versions.
I actually see it on the gtk client at times.
I looked into it, but can't remember the details now. I seem to recall the
problem was really that the server was sending to map commands, and thus the
client re-draws the map two times. I don't remember the details on why the
server sent two commands, but I recall there was a decent recent for it. I
think in the case of exits, it sends the idea to scroll the map to the client
(since the player moved in some direction), but the exit then transports the
player to another map, so everything has to get re-drawn at that point.
This is indirectly caused by the fact that the client draws the map whenever
it gets new map information from the server. A smoother approach would be for
the client to draw the map when what is has displayed is out of date with
respect to information it has from the server, and when there is no pending data
to be read from the socket from the server. This has the advantage that the
display is pretty much the must cpu intensive portion of the client - thus, if
you were playing on a slow machine, the map update may skip a few frames, but at
least not be lagged (I'd rather see current state of things than a complete
record of things that may be out of date).
>
>
>
Is cfclient kinda "out of support"? Well, I can understand if it is, but
>
it would be really great if the issues could be improved with some
>
minimal effort:
>
1. If it was possible to disable fog of war for example, that would do fine
>
for cfclient. Fog of war is nice but really not neccessary, so instead of
>
having a "broken" fog of war, I'd much rather disable it.
>
2. It would also be great if the old darkness code could be reused for
>
cfclient, where patterns of black and transparent pixels used to
>
"simulate" darkness. That was not perfect maybe, but good enough,
>
and a lot better than the current state (not working). ;-)
Your wish have been met - I'll check in my changes sometime this evening. I
don't remember why I didn't fully implement the display logic in the client -
perhaps I forgot or lack of time. But it was ignoring things like darkness and
fogofwar on the space. Now it should properly honor the -fogofwar and
-nofogofwar as well as -darkness and -nodarkness flags.
the support for the x11 client is so-so. The fact that it compiles and runs
and use the same basic logic as the gtk client means that it is not that hard to
support. However, bug fixes for it are not high on my priority list, and highly
unlikely that there will be much in the way of new features added to it.
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list