#include "fxlib.h"
#include "MonochromeLib.h"
#include <math.h>
int AddIn_main(int isAppli, unsigned short OptionNum) {
    int key;
    int y = 30;
    int x = 5;
	double r = 180;
	double ax;
	double ay;
	int level = 1;
	int savex =x;
	int savey =y;
	double r2;
	double balleax;
	double balleay;
	int balle1x;
	int balle1y;
	double baller2;
	int T;
	int firer;
	int re1;
const unsigned char tank[]={
	0x7, 0xff, 
	0x1, 0xe7, 
	0xff, 0xe7, 
	0x1, 0xe7, 
	0x7, 0xff, 
};
const unsigned char balle1[]={
	0xff,
};
const unsigned char mur8[]={
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
};
const unsigned char mur30[]={
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
};
const unsigned char enn1[]={
	0x11, 
	0x11, 
	0x11, 
	0x11, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
	0xff, 
};


while (1) {
	//touches
		ML_display_vram();
		if (IsKeyDown(KEY_CTRL_LEFT)) {
		r++;
			}
		if (IsKeyDown(KEY_CTRL_RIGHT)) {
		r--;
		}
		if (IsKeyDown(KEY_CTRL_ALPHA)) {
		T=1;
		firer=r;
		balle1x=x;
		balle1y=y;
		baller2=r;
		baller2=baller2*(-1);
		baller2=baller2*0.01745329;
		}

//gestion de l'avancé en diagonale
if (IsKeyDown(KEY_CTRL_SHIFT)) {
			r2=r;
			r2=r2-180;
			r2=r2*-1;
			r2=r2*0.01745329;
			ax=ax+(cos(r2));
			ay=ay+(sin(r2));
			Sleep(30);
			if(ax>1){
				x++;
				ax--;
			}
			if(ax<-1){
				x--;
				ax++;
			}
			if(ay>1){
				y++;
				ay--;
			}
			if(ay<-1){
				y--;
				ay++;
			}
		}
		
if(T=1){
			balleax=balleax+(cos(baller2));
			balleay=balleay+(sin(baller2));
			if(balleax>1){
				balle1x--;
				balleax--;
			}
			if(balleax<-1){
				balle1x++;
				balleax++;
			}
			if(balleay>1){
				balle1y--;
				balleay--;
			}
			if(balleay<-1){
				balle1y++;
				balleay++;
			}
}

//affichage
Sleep(10);
		if (IsKeyDown){
			ML_clear_vram();
		}
		if (level = 1) {
			ML_bmp_or(mur8, 35, 17, 8, 8);
			ML_bmp_or(mur8, 35, 39, 8, 8);
			ML_bmp_or(mur30, 70, 17, 8, 30);
			ML_bmp_or_rotate(enn1, 115, 32, 7, 10, re1);
			}
			re1++;
		ML_point(5, y, 5, ML_BLACK);
		ML_point(x, 5, 5, ML_BLACK);
		ML_bmp_or_rotate(tank, x, y, 13, 5, r);
		ML_bmp_or_rotate(balle1, balle1x, balle1y, 2, 2, firer);

		
		if(r<0){
			r=360;
		}else if(r>360){
			r=0;
		}
}

    return 1;
}


#pragma section _BR_Size
unsigned long BR_Size;
#pragma section


#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
    return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}

#pragma section

