return 1;
}
-int dx_lattice_get_color(unsigned char *status,unsigned char *r,unsigned char *g,unsigned char *b)
+int dx_lattice_get_color(unsigned char *status,unsigned char *r,unsigned char *g,unsigned char *b,unsigned char mode)
{
- if((*status)&RED)
+ *g=0;
+ if(!mode)
{
- *r=0xff;
- *g=0;
- *b=0;
- } else
+ if((*status)&RED)
+ {
+ *r=0xff;
+ *b=0;
+ } else
+ {
+ *r=0;
+ *b=0xff;
+ }
+ } else if(mode==1)
+ {
+ *r=*status;
+ *g=*status;
+ *b=0xff;
+ } else if(mode==2)
{
- *r=0;
- *g=0;
+ *r=*status;
*b=0xff;
}
return 1;
}
-int d2_lattice_draw(d2_lattice *d2_l,int x,int y,int arg_c,char **arg_v)
+int d2_lattice_draw(d2_lattice *d2_l,int x,int y,int arg_c,char **arg_v,unsigned char mode,int max_extra)
{
int x_c,y_c;
int i;
unsigned char r,g,b,a;
+ unsigned char foobar;
a=0xff; /* no alpha blending */
{
for(y_c=0;y_c<d2_l->max_y;y_c++)
{
- dx_lattice_get_color((*d2_l).status+x_c+y_c*d2_l->max_x,&r,&g,&b);
+ if(!mode) dx_lattice_get_color((*d2_l).status+x_c+y_c*d2_l->max_x,&r,&g,&b,mode);
+ if(mode==1)
+ {
+ foobar=(unsigned char)(*(d2_l->extra+x_c+y_c*d2_l->max_x)*255/max_extra);
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
+ if(mode==2)
+ {
+ foobar=(*(unsigned char *)(d2_l->v_ptr+x_c+y_c*d2_l->max_x));
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
if(x_c==x && y_c==y)
{
r=0xff;
return 1;
}
-int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v)
+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)
{
int x_c,y_c,z_c;
int i;
+ unsigned char foobar;
unsigned char r,g,b,a;
a=0xff; /* no alpha blending */
{
for(z_c=0;z_c<d3_l->max_z;z_c++)
{
- 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);
+ if(!mode) 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==1)
+ {
+ foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra);
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
+ if(mode==2)
+ {
+ foobar=(*(unsigned char *)(d3_l->v_ptr+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y));
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
if(x_c==x && z_c==z)
{
r=0xff;
{
for(z_c=0;z_c<d3_l->max_z;z_c++)
{
- 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);
+ if(!mode) 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==1)
+ {
+ foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra);
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
+ if(mode==2)
+ {
+ foobar=(*(unsigned char *)(d3_l->v_ptr+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y));
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
if(y_c==y && z_c==z)
{
r=0xff;
{
for(y_c=0;y_c<d3_l->max_y;y_c++)
{
- 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);
+ if(!mode) 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==1)
+ {
+ foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra);
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
+ if(mode==2)
+ {
+ foobar=(*(unsigned char *)(d3_l->v_ptr+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y));
+ dx_lattice_get_color(&foobar,&r,&g,&b,mode);
+ }
if(x_c==x && y_c==y)
{
r=0xff;
return 1;
}
-int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc)
+int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc,int *switchmode)
{
DFBInputEvent ke;
if(ke.key_id==DIKI_PAGE_DOWN && *z!=d3_l->max_z-1) *z+=1;
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)%3;
}
return 1;