[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