Rev 7840 | Rev 8160 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7840 | Rev 7847 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | double dd; |
42 | double dd; |
43 | int i; |
43 | int i; |
44 | 44 | ||
45 | eval_setval(ld->xevpos,lc_scalex(ld,x)); |
45 | eval_setval(ld->xevpos,lc_scalex(ld,x)); |
46 | eval_setval(ld->yevpos,lc_scaley(ld,y)); |
46 | eval_setval(ld->yevpos,lc_scaley(ld,y)); |
47 |
|
47 | dd=checked_eval(ld->fn); |
48 | for(i=0;i<ld->levelcnt && dd>ld->levels[i];i++); |
48 | for(i=0;i<ld->levelcnt && dd>ld->levels[i];i++); |
49 | return i; |
49 | return i; |
50 | } |
50 | } |
51 | 51 | ||
52 | static void lc_replacexy(leveldata *ld) |
52 | static void lc_replacexy(leveldata *ld) |
Line 97... | Line 97... | ||
97 | for(yi=yy=0;yi<ysteps;yy+=ld->grain,yi++) l2[yi]=_getlevel(ld,xx,yy); |
97 | for(yi=yy=0;yi<ysteps;yy+=ld->grain,yi++) l2[yi]=_getlevel(ld,xx,yy); |
98 | l2[ysteps]=l2[ysteps-1]; |
98 | l2[ysteps]=l2[ysteps-1]; |
99 | for(yi=0;yi<ysteps && ld->datacnt<LEVELPOINT_LIM;yi++) |
99 | for(yi=0;yi<ysteps && ld->datacnt<LEVELPOINT_LIM;yi++) |
100 | if(l1[yi]!=l1[yi+1] || l1[yi]!=l2[yi] || l1[yi]!=l2[yi+1]) { |
100 | if(l1[yi]!=l1[yi+1] || l1[yi]!=l2[yi] || l1[yi]!=l2[yi+1]) { |
101 | for(x=0,xt=(xi-1)*ld->grain;x<=ld->grain;x++,xt++) |
101 | for(x=0,xt=(xi-1)*ld->grain;x<=ld->grain;x++,xt++) |
102 | for(y=0,yt=yi*ld->grain;y<=ld->grain;y++,yt++) { |
102 | for(y=0,yt=yi*ld->grain;y<=ld->grain;y++,yt++) { |
103 | if(x==0 && y==0) {l3[x][y]=l1[yi]; continue;} |
103 | if(x==0 && y==0) {l3[x][y]=l1[yi]; continue;} |
104 | if(x==0 && y==ld->grain) {l3[x][y]=l1[yi+1]; continue;} |
104 | if(x==0 && y==ld->grain) {l3[x][y]=l1[yi+1]; continue;} |
105 | if(x==ld->grain && y==0) {l3[x][y]=l2[yi]; continue;} |
105 | if(x==ld->grain && y==0) {l3[x][y]=l2[yi]; continue;} |
106 | if(x==ld->grain && y==ld->grain) {l3[x][y]=l2[yi+1]; continue;} |
106 | if(x==ld->grain && y==ld->grain) {l3[x][y]=l2[yi+1]; continue;} |
107 | l3[x][y]=_getlevel(ld,xt,yt); |
107 | l3[x][y]=_getlevel(ld,xt,yt); |
108 | } |
108 | } |
109 | for(x=0,xt=(xi-1)*ld->grain;x<ld->grain;x++,xt++) |
109 | for(x=0,xt=(xi-1)*ld->grain;x<ld->grain;x++,xt++) |
110 | for(y=0,yt=yi*ld->grain;y<ld->grain;y++,yt++) { |
110 | for(y=0,yt=yi*ld->grain;y<ld->grain;y++,yt++) { |
111 | i=l3[x][y]; |
111 | i=l3[x][y]; |
112 | if((i!=l3[x][y+1] || i!=l3[x+1][y]) && |
112 | if((i!=l3[x][y+1] || i!=l3[x+1][y]) && |
113 | ld->datacnt<LEVELPOINT_LIM && |
113 | ld->datacnt<LEVELPOINT_LIM && |
114 | (i!=l3[x][y+1] || ld->datacnt==0 || |
114 | (i!=l3[x][y+1] || ld->datacnt==0 || |
115 | l3[x+1][y+1]==l3[x+1][y] || |
115 | l3[x+1][y+1]==l3[x+1][y] || |
116 | ld->xdata[ld->datacnt-1]!=xt || |
116 | ld->xdata[ld->datacnt-1]!=xt || |
117 | ld->ydata[ld->datacnt-1]!=yt-1)) { |
117 | ld->ydata[ld->datacnt-1]!=yt-1)) { |
118 | ld->xdata[ld->datacnt]=xt; |
118 | ld->xdata[ld->datacnt]=xt; |
119 | ld->ydata[ld->datacnt++]=yt; |
119 | ld->ydata[ld->datacnt++]=yt; |
120 | } |
120 | } |
121 | } |
121 | } |
122 | } |
122 | } |
123 | } |
123 | } |
124 | return 0; |
124 | return 0; |
125 | } |
125 | } |
126 | 126 |