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:
Lee Salzman
2008-10-11 21:31:56 +00:00
parent b4cc5f62a1
commit 704cb64130
+6 -4
View File
@@ -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)
{