Lighting changes, was Re: [crossfire] Circular lighting & negetive glow_radiuses

Mark Wedel mwedel at sonic.net
Mon Apr 18 02:14:47 CDT 2005


Alex Schultz wrote:
>
     
      Alex Schultz wrote:
     
     
  Applied to CVS.

>
     
     
     >>
     
      I noticed a small mistake to due with the recent 'conversion' to make 
     
     >>
     
      the name glow_radius accurate again. In the changes I made to deal 
     
     >>
     
      with the "conversion" from glow_radius, I accidentally made it so 
     
     >>
     
      negative glow radiuses aren't working again. The circular lighting is 
     
     >>
     
      working, it's just that negative glow radiuses won't be working. I've 
     
     >>
     
      attached a small diff to fix that. (negetivefix.diff)
     
     >>
     
     
     >
     
      Aurg... I must have been asleep or something when I made those 
     
     >
     
      'conversion' changes. Here's another fix to my stupidity when doing that.
     
     >
     
     
     >
     
      Server Admins: If you update to the very latest cvs without this fix, 
     
     >
     
      then your player will find that monsters will almost always detect them 
     
     >
     
      even in complete darkness when the monster doesn't have night vision. I 
     
     >
     
      highly suggest you either wait till this fix is in CVS (should be some 
     
     >
     
      time within 24 hours), or apply this patch yourself.
     
     >
     
     
     >
     
         --Alex Schultz (aka Rednaxela)
     
     >
     
     
     >
     
     
     >
     
      ------------------------------------------------------------------------
     
     >
     
     
     >
     
      Index: crossfire/server/monster.c
     
     >
     
      ===================================================================
     
     >
     
      RCS file: /cvsroot/crossfire/crossfire/server/monster.c,v
     
     >
     
      retrieving revision 1.75
     
     >
     
      diff -c -5 -r1.75 monster.c
     
     >
     
      *** crossfire/server/monster.c	17 Apr 2005 04:25:55 -0000	1.75
     
     >
     
      --- crossfire/server/monster.c	17 Apr 2005 21:11:51 -0000
     
     >
     
      ***************
     
     >
     
      *** 1889,1909 ****
     
     >
     
     
     >
     
     
     >
     
        	/* Check the spaces with the max light radius to see if any of them
     
     >
     
        	 * have lights, and if any of them light the player enough, then return 1.
     
     >
     
        	 */
     
     >
     
      ! 	for (x = op->x - (2*MAX_LIGHT_RADII); x< op->x + (2*MAX_LIGHT_RADII); x++) {
     
     >
     
      ! 	    for (y = op->y - (2*MAX_LIGHT_RADII); y< op->y + (2*MAX_LIGHT_RADII); y++) {
     
     >
     
        		m = op->map;
     
     >
     
        		nx = x;
     
     >
     
        		ny = y;
     
     >
     
     
     >
     
        		if (get_map_flags(m, &m, nx, ny, &nx, &ny) & P_OUT_OF_MAP) continue;
     
     >
     
     
     >
     
        		x1 = abs(x - op->x)*abs(x - op->x);
     
     >
     
        		y1 = abs(y - op->y)*abs(y - op->y);
     
     >
     
      ! 		if (isqrt(x1 + y1) > 0) return 1; 
     
     >
     
        	    }
     
     >
     
        	}
     
     >
     
            }
     
     >
     
            return 0;
     
     >
     
        }
     
     >
     
      --- 1889,1909 ----
     
     >
     
     
     >
     
     
     >
     
        	/* Check the spaces with the max light radius to see if any of them
     
     >
     
        	 * have lights, and if any of them light the player enough, then return 1.
     
     >
     
        	 */
     
     >
     
      ! 	for (x = op->x - (MAX_LIGHT_RADII); x< op->x + (MAX_LIGHT_RADII); x++) {
     
     >
     
      ! 	    for (y = op->y - (MAX_LIGHT_RADII); y< op->y + (MAX_LIGHT_RADII); y++) {
     
     >
     
        		m = op->map;
     
     >
     
        		nx = x;
     
     >
     
        		ny = y;
     
     >
     
     
     >
     
        		if (get_map_flags(m, &m, nx, ny, &nx, &ny) & P_OUT_OF_MAP) continue;
     
     >
     
     
     >
     
        		x1 = abs(x - op->x)*abs(x - op->x);
     
     >
     
        		y1 = abs(y - op->y)*abs(y - op->y);
     
     >
     
      ! 		if (isqrt(x1 + y1) < GET_MAP_LIGHT(m, nx, ny)) return 1; 
     
     >
     
        	    }
     
     >
     
        	}
     
     >
     
            }
     
     >
     
            return 0;
     
     >
     
        }
     
     >
     
     
     >
     
     
     >
     
      ------------------------------------------------------------------------
     
     >
     
     
     >
     
      _______________________________________________
     
     >
     
      crossfire mailing list
     
     >
     
     
      crossfire at metalforge.org
      
      
     >
     
     
      http://mailman.metalforge.org/mailman/listinfo/crossfire
      
      
     
    


More information about the crossfire mailing list