clamp dynlight area to map
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2964 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
@@ -200,10 +200,12 @@ void preparedynlight(dlight &d)
|
||||
{
|
||||
block area = { (int)d.o.x-d.reach, (int)d.o.y-d.reach, d.reach*2+1, d.reach*2+1 };
|
||||
|
||||
if(area.x<1) area.x = 1;
|
||||
if(area.y<1) area.y = 1;
|
||||
if(area.xs+area.x>ssize-2) area.xs = ssize-2-area.x;
|
||||
if(area.ys+area.y>ssize-2) area.ys = ssize-2-area.y;
|
||||
if(area.x<1) { area.xs = max(area.xs - (1 - area.x), 0); area.x = 1; }
|
||||
else if(area.x>ssize-2) { area.x = ssize-2; area.xs = 0; }
|
||||
if(area.y<1) { area.ys = max(area.ys - (1 - area.y), 0); area.y = 1; }
|
||||
else if(area.y>ssize-2) { area.y = ssize-2; area.ys = 0; }
|
||||
if(area.x+area.xs>ssize-2) area.xs = ssize-2-area.x;
|
||||
if(area.y+area.ys>ssize-2) area.ys = ssize-2-area.y;
|
||||
|
||||
if(d.area)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user