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