-
[physik/morpheus.git] / display.c
index 16f379a..bb2eccb 100644 (file)
--- a/display.c
+++ b/display.c
@@ -8,7 +8,7 @@
 
 #include "defines.h"
 
 
 #include "defines.h"
 
-int display_init(u32 x,u32 y,u32 z,display *display,void *cell,int *argc,char **argv)
+int display_init(u32 x,u32 y,u32 z,display *display,cell *cell,int *argc,char **argv)
 {
 #ifdef USE_DFB_API
  DFBSurfaceDescription surface_dsc;
 {
 #ifdef USE_DFB_API
  DFBSurfaceDescription surface_dsc;
@@ -47,9 +47,9 @@ int display_release(display *display)
 }
 
 #ifdef USE_DFB_API
 }
 
 #ifdef USE_DFB_API
-int dfb_choose_color(u32 *cell_p,unsigned char *r,unsigned char *g,unsigned char *b)
+int dfb_choose_color(cell *cell_p,unsigned char *r,unsigned char *g,unsigned char *b)
 {
 {
- if((*cell_p&AMORPH)==AMORPH)
+ if(cell_p->status&AMORPH)
  {
   *r=0xff;
   *g=0x00;
  {
   *r=0xff;
   *g=0x00;
@@ -91,7 +91,7 @@ int display_draw(display *display,u32 x,u32 y,u32 z)
  {
   for(z_c=0;z_c<display->max_z;z_c++)
   {
  {
   for(z_c=0;z_c<display->max_z;z_c++)
   {
-   dfb_choose_color((u32 *)(display->cell_p+x_c+y_c*(display->max_x-1)+z_c*(display->max_x-1)*(display->max_y-1)),&r,&g,&b);
+   dfb_choose_color(display->cell_p+x_c+y_c*display->max_x+z_c*display->max_x*display->max_y,&r,&g,&b);
    if(x_c==x && z_c==z)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
    if(x_c==x && z_c==z)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
@@ -105,7 +105,7 @@ int display_draw(display *display,u32 x,u32 y,u32 z)
  {
   for(z_c=0;z_c<display->max_z;z_c++)
   {
  {
   for(z_c=0;z_c<display->max_z;z_c++)
   {
-   dfb_choose_color((u32 *)(display->cell_p+x_c+y_c*(display->max_x-1)+z_c*(display->max_x-1)*(display->max_y-1)),&r,&g,&b);
+   dfb_choose_color(display->cell_p+x_c+y_c*display->max_x+z_c*display->max_x*display->max_y,&r,&g,&b);
    if(y_c==y && z_c==z)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
    if(y_c==y && z_c==z)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
@@ -119,7 +119,7 @@ int display_draw(display *display,u32 x,u32 y,u32 z)
  {
   for(y_c=0;y_c<display->max_y;y_c++)
   {
  {
   for(y_c=0;y_c<display->max_y;y_c++)
   {
-   dfb_choose_color((u32 *)(display->cell_p+x_c+y_c*(display->max_x-1)+z_c*(display->max_x-1)*(display->max_y-1)),&r,&g,&b);
+   dfb_choose_color(display->cell_p+x_c+y_c*display->max_x+z_c*display->max_x*display->max_y,&r,&g,&b);
    if(x_c==x && y_c==y)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
    if(x_c==x && y_c==y)
     display->primary_surface->SetColor(display->primary_surface,0xff,0xff,0,0);
    else
@@ -151,9 +151,9 @@ int display_draw(display *display,u32 x,u32 y,u32 z)
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*2+menu_h/10*2,DSTF_LEFT);
  sprintf(text,"z: %u",z);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*3+menu_h/10*3,DSTF_LEFT);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*2+menu_h/10*2,DSTF_LEFT);
  sprintf(text,"z: %u",z);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*3+menu_h/10*3,DSTF_LEFT);
- sprintf(text,"status: %c",*(u32 *)(display->cell_p+x+y*(display->max_x-1)+z*(display->max_x-1)*(display->max_y-1))&AMORPH?'a':'c');
+ sprintf(text,"status: %c",((display->cell_p+x+y*display->max_x+z*display->max_x*display->max_y))->status&AMORPH?'a':'c');
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*5+menu_h/10*5,DSTF_LEFT);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*5+menu_h/10*5,DSTF_LEFT);
- sprintf(text,"C conc.: %u",(*(u32 *)(display->cell_p+x+y*(display->max_x-1)+z*(display->max_x-1)*(display->max_y-1))&C_CONC_MASK)>>1);
+ sprintf(text,"c conc.: %f",(display->cell_p+x+y*display->max_x+z*display->max_x*display->max_y)->conc);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*6+menu_h/10*6,DSTF_LEFT);
  /* flip all to surface */
  display->primary_surface->Flip(display->primary_surface,NULL,0);
  display->primary_surface->DrawString(display->primary_surface,text,-1,menu_x+display_faktor_x,menu_y+display_faktor_y*6+menu_h/10*6,DSTF_LEFT);
  /* flip all to surface */
  display->primary_surface->Flip(display->primary_surface,NULL,0);