[CF-Devel] multistage map

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Sat Aug 9 01:19:21 CDT 2003


tchize wrote:
>
     
      -----BEGIN PGP SIGNED MESSAGE-----
     
     
>>
     
       But you're sure to get other issues, eg, in your example, the player on
     
     >>
     
     the roof wants to fire down on the player on the ground (bow, spell,
     
     >>
     
     whatever).
     
     >
     
     
     >
     
     
     >
     
      That's a problem indeed. For now, rules apply to maps in a separate way. I 
     
     >
     
      need to prepare a list of what world interaction should cross the stage 
     
     >
     
      boundaries (typically a burning hands is horizontal, no stages crossing, but 
     
     >
     
      a magic missile shoud be able to target a monster down stairs.
     
     
  As I think about this more, the more of a can of worms this seems to be.

  Arguably, most spells should be aimed down, just like you could aim arrows down.

  But suppose you have a case where you have a courtyard surround by walls, with 
players (and monsters) being able to stand on top of the walls.

  If I fire an arrow (or other object), am I aiming at a target on the far wall, 
or something in the courtyard?  And how does one control that?  Having objects 
on the lower layer automatically go up when they reach an obstacle would likely 
cause all sorts of problems.



>
     
     
     >
     
      Visually speaking, it's more clever than no object = transparent
     
     >
     
      When the code when to collect the 3 visible faces for the top map, it use, as 
     
     >
     
      starting point, the bottom, middle, top info from map below at same position 
     
     >
     
      (i forgot to tell in implementation, each stage map must be same size).
     
     >
     
      I there was a top but no middle (typically a floor and only one object), the 
     
     >
     
      top reach the middle level (a tree in top map must draw itself above a 
     
     >
     
      monster in bottom map). Then the classical code is used to calculate the 
     
     >
     
      faces, so only difference is we don't start faces calculation with NULL 
     
     >
     
      objects in top middle and bottom, but with info from below map.
     
     >
     
     
     >
     
      Still need to do some fixing, since a middle object found in upper map should 
     
     >
     
      also draw itself over the middle object of bottom map.
     
     
  How do you deal with floors?  If there is a floor on the top map, you _must_ 
ignore all the objects on the maps below it.  From the description above, it 
sounds like you could have a case where middle layer is floor, monster, and top 
layer is floor empty, and it'd take the monster from the middle layer (since 
there is currently no used middle layer on the top floor).  That is just plain 
wrong.

  Also, you probably need some form of reverse precedent, eg, lower map knows 
that there is a map above that depends on it.

  That is simply because the way map updates are done - If something changes on 
the lower map, you must also inform the upper map of that change in case it is 
using spaces from that lower map.

  Otherwise, you get the case where the upper map is basically holding bad data 
- the look of the upper map isn't updated, because apparantly nothing has 
changed on that space, but the data itself isn't accurate, because it may be 
saying that the 'middle' stack looks like X, based on information it had before 
from the loer map.



_______________________________________________
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