[CF-Devel] map bug

the seer seer11 at hotmail.com
Wed Nov 1 07:17:53 CST 2000


MWedel wrote:

>
     
     This is actually true for many items.  I'll look into a more general >fix 
     
     >
     
     than the old double floor fix that you originally see (that fix >was that 
     
     >
     
     if there were two floors, you would see both of them to make >things look 
     
     >
     
     better).
     
     
>
     
       But the more general long term approach is to have a stacking value >that 
     
     >
     
     the client can set.  Way back when, crossfire only used bitmasks >with no 
     
     >
     
     masking, so it only made sense to draw one image per space.  >Then Xpm came 
     
     >
     
     around with masking, so it made sense to draw 2 items >per space.  But that 
     
     >
     
     got into the case you see - character standing >on a building that is on 
     
     >
     
     top of something else which doesn't look >very good, so double floor patch 
     
     >
     
     came about.
     
     
Why bother with a stacking value?  If you just tell the server or client to 
use a 4 layered system, all of the images that need to be placed on the 
screen can easily be handled.  Treat the floors as the bottom layer (0), 
building components next (1), then items (2), and finaly animated creatures 
(3), you should be able to solve the problem without any significant 
increase in processing.

>
     
       I briefly tried drawing all items on a space.  Aside from consuming >a 
     
     >
     
     lot of cpu time (but back then that was on a 20 mhz 68020 - >sun3/60, 3 
     
     >
     
     mips), at some point it just didn't look very good because >everything sort 
     
     >
     
     of got muddled together and it just looked like a >blob.
     
     
>
     
       the cpu performance should not be as much of an issue - especially >if we 
     
     >
     
     make some linked lists to more quickly identify the items to >draw.  But 
     
     >
     
     determining what items to draw may get difficult (for >example, if standing 
     
     >
     
     on the store, you want the store to be drawn and >the ground beneath the 
     
     >
     
     store, but you don't want the store to bubble >up on top of swords and 
     
     >
     
     other things dropped there (we'll ignore the >fact that this happens 
     
     >
     
     anyways right now when maps are saved due to
     
     >
     
     the way multi part objects are handled).
     
     
>
     
       but if you then need to look through a space each time an item is
     
     >
     
     inserted/deleted and update a stack of visibility for all those >spaces, 
     
     >
     
     that can get expensive cpu wise.  Think of the effects of a >large fireball 
     
     >
     
     case in a room full of monsters that have treasure or >other items beneath 
     
     >
     
     them (or that they drop as they die).
     
     
>
     
       Another thing on the long TODO list is to just update how the >server 
     
     >
     
     deals with map updates.  Right now, whenever anything is >inserted/removed 
     
     >
     
     from any space on any map, the server determines how >that space now looks. 
     
     >
     
       What I really want to do is only determine >what the spaces that the 
     
     >
     
     player sees looks like - who cares what >something 20 spaces off the map 
     
     >
     
     may look like.  This would entail >adding a bitmask to the map structures 
     
     >
     
     which shows which spaces are >up to date (as they are/were in the players 
     
     >
     
     view, got updated, and >haven't changed yet), and which are stale.  Before 
     
     >
     
     we send the map to >the player, we update all these stale spaces.
     
     
>
     
       When something is inserted/removed, we just mark the space stale >and 
     
     >
     
     leave it at that until it goes within view.
     
     >
     
     _______________________________________________
     
     >
     
     crossfire-devel mailing list
     
     >
     
     
      crossfire-devel at lists.real-time.com
      
      
     >
     
     
      https://mailman.real-time.com/mailman/listinfo/crossfire-devel
      
      
     
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at 
     
     http://www.hotmail.com.
     
     

Share information about yourself, create your own public profile at 
     
     http://profiles.msn.com.
     
     
    


More information about the crossfire mailing list