File: MAIN.C | Size: 2,417 bytes | Download file | Back to directory listing | BWPOW's homepage
#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");
}