fixed nlsop for packaging ..
[physik/nlsop.git] / dfbapi.c
index 58510fc..b922cc4 100644 (file)
--- a/dfbapi.c
+++ b/dfbapi.c
@@ -188,7 +188,7 @@ int d2_lattice_draw(d2_lattice *d2_l,int x,int y,int arg_c,char **arg_v,unsigned
 int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,unsigned char mode,int max_extra,u32 *p1,u32 max1,u32 *p2,u32 max2)
 {
  int x_c,y_c,z_c;
- int i;
+ int i,sum;
  unsigned char foobar;
  unsigned char r,g,b,a;
 
@@ -199,7 +199,14 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,un
  {
   for(z_c=0;z_c<d3_l->max_z;z_c++)
   {
-   if((!mode)||mode==3) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode);
+   if((!mode)||mode==3)
+   {
+    sum=0;
+    for(i=-2;i<=2;i++)
+     if(*(d3_l->status+x_c+((y_c+i+d3_l->max_y)%d3_l->max_y)*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)&RED) sum+=0xff;
+    g=0; b=0;
+    r=(unsigned char)(sum/5);
+   }
    if(mode==3)
    {
     if(d3_l->max_x*p1[z_c]/max1==x_c)
@@ -357,6 +364,8 @@ int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc,int *switch
   if(ke.key_id==DIKI_DOWN && *y!=d3_l->max_y-1) *y+=1;
   if(ke.key_id==DIKI_PAGE_UP && *z!=0) *z-=1;
   if(ke.key_id==DIKI_PAGE_DOWN && *z!=d3_l->max_z-1) *z+=1;
+  if(ke.key_id==DIKI_END && *z<=d3_l->max_z-10) *z+=10;
+  if(ke.key_id==DIKI_HOME && *z>=10) *z-=10;
   if(ke.key_id==DIKI_Q) *q=1;
   if(ke.key_id==DIKI_ESCAPE) *esc=1;
   if(ke.key_id==DIKI_M) *switchmode=(*switchmode+1)%4;