[crossfire] server map code redo.
Mark Wedel
mwedel at sonic.net
Sun Aug 28 22:47:58 CDT 2005
This is a heads up that I plan to start work on a pretty significant map code
redo. Below are the main areas I plan to tackle. I may do these in smaller
pieces, but the are somewhat related in that I'll be changing the map structure
itself to some extent to make this all happen.
I'll send out more detailed proposals on these points, but this is a brief
outline:
1) Refine move/block types. Right now, we have 2 move types (walking & flying).
There is only 1 block type, that blocks both flying and moving. Extend code
to allow for more move types, as well as refined blocking (blocks walking, not
flying, etc).
2) Change/improve lighting code. Max light radius of 4 made sense when the map
max size was 11x11, doesn't make a lot of sense when it is now 25x25. Look at
other line of sight improvements
3) Add more layers to display logic, also have it handle head information better
so that the client/socket side doesn't have to do this.
4) Store more object attributes in the mapcell so we don't have to look through
the list objects to see if any have that set. Also store number of objects
(likely pickable and flying as different values) so can implement spill over
logic, make sure number of spell objects is at some reasonable level and bail
out if it gets too high.
Future/down the road:
5) To convey some of these changes to the client, a new protocol command is
needed. But no reason to write that until we have data to actually send to it.
6) As per other discussion about threading - moving the maps objects to a per
map list makes threading much easier. However, above changes are really related
to mapcell and related functions, so redoing pointers doesn't really fit in here
(doing it as part of the above just makes that more complicated).
More information about the crossfire
mailing list