#include <all312.h>
#include <jgmod.h>
#include <jpeg.h>
#include "game.h"
#include "invasion.h"

short tim;
char rand_draw_cube[48];

void timer()
{
  tim++;
}
END_OF_FUNCTION(timer);

void main_drawscreen(BITMAP *bmp)
{
  char i;
  short x,y;

  tim=0;
  i=0;
  while(i<48){
    if(tim>=1){
      tim=0;
      x=(rand_draw_cube[i]%8)*80;
      y=(rand_draw_cube[i]/8)*80;
      blit(bmp,screen,x,y,x,y,80,80);
      i++;
    }
  }
  blit(bmp,screen,0,0,0,0,640,480);
}

void main_delscreen(int color)
{
  char i;
  short x,y;

  tim=0;
  i=0;
  while(i<48){
    if(tim>=1){
      tim=0;
      x=(rand_draw_cube[i]%8)*80;
      y=(rand_draw_cube[i]/8)*80;
      rectfill(screen,x,y,x+80,y+80,color);
      i++;
    }
  }
}




void koniec(char text[60])
{
  allegro_exit();
  printf("%s\n",text);
  exit(0);
}

void new_game()
{
  char r=1,level=0;
  user.lives=5;
  user.points=0;

  play_mod(data[mus_game].dat,1);
  while(r==1){

    r=game(level);
    level++;
  }
  stop_mod();
  main_delscreen(0);
  play_mod(data[mus_menu].dat,1);

}







void init_rand_cube()
{
  char i,a,r1,r2;
  for(i=0;i<48;i++)
    rand_draw_cube[i]=i;
  for(i=0;i<64;i++){
    r1=random()%48;
    r2=random()%48;

    a=rand_draw_cube[r1];
    rand_draw_cube[r1]=rand_draw_cube[r2];
    rand_draw_cube[r2]=a;
  }

}

int main(void)
{
  char r=1,level=0;
  allegro_init();
  install_timer();
  install_keyboard();

  set_config_file("invasion.cfg");
  init_rand_cube();

  icfg.fx=get_config_int(0,"fx",1);
  icfg.back=get_config_int(0,"background",1);


  reserve_voices(16,-1);
  install_sound(-1,0,0);

  install_mod(14);

  packfile_password("IdeaZ");

  LOCK_FUNCTION(timer);
  install_int_ex(timer,BPS_TO_TIMER(60));

  set_color_depth(16);
  data=load_datafile("invasion.dat");
  if(data==0){
    koniec("Error reading INVASION.DAT!");
  }

  background=load_jpeg("invasion.dat#BACKGROUND",0);

  if(set_gfx_mode(0,640,480,0,0)!=0){
    koniec("Error switching to GFX mode 640x480 16bit!");
  }
  set_gfx_mode(0,640,480,0,0);

  actual=create_bitmap(640,480);
  bmp1=create_bitmap(640,480);

  play_mod(data[mus_menu].dat,1);

  main_drawscreen(load_jpeg("invasion.dat#jpg_ideaz",0));
  readkey();
  main_delscreen(0);


  new_game();


  koniec("Made by Samuel Kupka");
}
