[crossfire] Circular lighting & negetive glow_radiuses

Alex Schultz alex_sch at telus.net
Tue Mar 29 09:16:04 CST 2005


>
     
      General: Never use // comment style.
     
     
I know, I just used some for temporary tests, I thought I took them all 
out but I guess I might have missed a few. I'll grep for that and fix that.

>
     
     
     >
     
      common/living.c: Making the glow radius additive is probably a bad 
     
     >
     
      thing.  A player shouldn't be able to light a few torches and get an 
     
     >
     
      effect to see everything about them (plus in real life, given the 
     
     >
     
      (pi)r³ of real lighting, doesn't much up very well.).  Same note 
     
     >
     
      applies for map.c and server/spell_attack.c
     
     
As I understand the additive lighting does accurately act like in real 
life due to to the formulas I used in los.c which is essentially a 
condensation of the pythagorean theorem and the inverse square law 
(except with different constants to make up for the different units). 
Like the old comment said,  2 lights doesn't go twice as far as one, but 
the new formulas in los.c do actually account for that and each 
successive light is less and less important to the range. However, due 
to gameplay balance issues, it may be best to take additive lighting 
out. Perhaps additive lighting should happen everywhere except in the 
player's inventory, that way the player couldn't just get a ton of 
lanterns and use them all at once for such. Also spell effects with 
negative glow_radiuses that could be made in the future would work much 
better with additive lighting on the ground anyways.

>
     
      common/object.c: op->glow_radius !=0 would be clearer checks that >0 
     
     >
     
      and <0
     
     
I would have done that in many places, except the old check in many 
places was just "if (op->glow_radius)" which would return false upon 
glow_radius being null, which as I understand glow_radius != 0 would 
return true upon null, which wouldn't be good.

>
     
      server/monster.c: while seeing how well lighted the creatuer is may 
     
     >
     
      make sense, until we do something with that, I'd much rather just 
     
     >
     
      return once we know if the creatuer is illuminated or not for 
     
     >
     
      performance reason - checking for all the spaces for all the monsters 
     
     >
     
      could prove to be a pretty big cpu hog.
     
     
My tests showed that it had very very little effect even with all the 
monsters in the goblin TC, but yeah, I'll take that out of this patch as 
it's cpu usage that doesn't need to be used at this point, but keep a 
copy of that code in case we do want to do something with this in the 
future.

I'll make these fixes to my patch at post here when I update it on the 
SF tracker.

       --Alex Schultz (aka Rednaxela)

    
    


More information about the crossfire mailing list