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