[CF-Devel] speculations about the floor (elevation)
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Sat Jun 28 14:38:09 CDT 2003
Ok. I think I have a decent understanding of all this - we need elevation for
every space. However, tracking that then becomes very difficult, because
elevation is lost if you edit a space.
And I can now see that dealing with this properly is difficult.
Certainly the approach is use the elevation for which spaces it exists, and
interpolate the elevation for the missing spaces works. It wouldn't be hard to
make elevation much easier to get (just like mapflags (blocked, alive, etc) are
stored in the MapSpace structure, one could copy the elevation into that, so one
doesn't need to search the objects for the elevation (although, probably not a
really big gain on that, since there aren't many objects per space anyways - its
just a lot easier to code something like GET_MAP_ELEVATION(map, x+1, y))
However, one thing I have learned through my years with crossfire is computing
values should be seen as a last resort - it almost never gives as good as a
result as desired.
As an aside, it would be cool for elevation to actually play a role in line of
sight. Thus, instead of mountains just blocking view, they have elevation - if
you are of lower elevation, you can't see through them, but if you are on the
highest mountain, you'd get quite a nice view. Doing this probably wouldn't be
that hard, but probably really need to store the elevation in the map cell to
make this at all efficient). Could also make fly much more interesting (fly up
to see more).
Anyways, to me, the ideal solution would seem to be to keep in the object
itself. We apparantly have scripts that will backfill elevation data -
presumably, these scripts can be/are smart enough to only fill in spaces where
elevation has been removed, and not to write over elevation for spaces player
explicity sets.
What's the problem of using these? It seems much simpler than writing a new
system to deal with this, especially because the tool is already in place.
Presumably, it wouldn't be hard to also make these have a little bit of logic
(eg, the area on this map in spaces x,y -> x1, y1 shouldn't be backfilled, but
instead of an elevation of 1200 ± 200 ft, to mimic variation in landscape.
_______________________________________________
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