InvasionSeanchans/EngineGUI.cpp

116 lines
5.1 KiB
C++

#include "..\C-Engine\CHeader.hpp"
#include"BoatControl.hpp"
#include"EngineGUI.hpp"
extern "C"
{
#include <math.h>
}
void EngineGUI::UpdateEverySecond()
{
VentActuelle->direction = VentActuelle->direction + cos(rand()) * 30;
VentActuelle->force = VentActuelle->force + cos(rand());
if(VentActuelle->direction < 0)VentActuelle->direction += 360;
if(VentActuelle->direction > 360) VentActuelle->direction -= 360;
if(VentActuelle->force > 5) VentActuelle->force = 5;
if(VentActuelle->force < 1) VentActuelle->force = 1;
}
void EngineGUI::Update()
{
float buffer;
const unsigned char Bordure[]={0x40,0x0,0x10,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x8,0x80,0x0,0x18,0x7f,0xff,0xe8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x8,0x0,0x0,0x10};
ML_bmp_or(Bordure , 84 , 0, 21 , 64);
ML_rectangle(105 , 0 , 127 , 63 , 1 , ML_WHITE , ML_WHITE);
//************Vent****************//
PrintMini(108 , 1 , "Vent" , 0);
PrintV( 120 , 7 ,VentActuelle->force);
buffer = VentActuelle->direction;
const unsigned char FlecheE[]={0x20,0x10,0xf8,0x10,0x20};
const unsigned char FlecheN[]={0x20,0x70,0xa8,0x20,0x20};
const unsigned char FlecheNE[]={0x78,0x18,0x28,0x48,0x80};
const unsigned char FlecheNO[]={0xf0,0xc0,0xa0,0x90,0x8};
const unsigned char FlecheO[]={0x20,0x40,0xf8,0x40,0x20};
const unsigned char FlecheS[]={0x20,0x20,0xa8,0x70,0x20};
const unsigned char FlecheSE[]={0x80,0x48,0x28,0x18,0x78};
const unsigned char FlecheSO[]={0x8,0x90,0xa0,0xc0,0xf0};
if((buffer >= 0 && buffer < 22)|| (buffer >= 337 && buffer < 360))ML_bmp_or(FlecheE ,109 , 7, 5 , 5);
else if(buffer >= 22 && buffer < 67)ML_bmp_or(FlecheNE ,109 , 7, 5 , 5);
else if(buffer >= 67 && buffer < 112)ML_bmp_or(FlecheN ,109 , 7, 5 , 5);
else if(buffer >= 112 && buffer < 157)ML_bmp_or(FlecheNO ,109 , 7, 5 , 5);
else if(buffer >= 157 && buffer < 202)ML_bmp_or(FlecheO ,109 , 7, 5 , 5);
else if(buffer >= 202 && buffer < 247)ML_bmp_or(FlecheSO ,109 , 7, 5 , 5);
else if(buffer >= 247 && buffer < 292)ML_bmp_or(FlecheS ,109 , 7, 5 , 5);
else if(buffer >= 292 && buffer < 337)ML_bmp_or(FlecheSE ,109 , 7, 5 , 5);
//**********************Voile*************//
const unsigned char Voile0[]={0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18};
const unsigned char Voile25[]={0x18,0xff,0x81,0xff,0x18,0x18,0x18,0x18};
const unsigned char Voile50[]={0x18,0xff,0x81,0x81,0xff,0x18,0x18,0x18};
const unsigned char Voile75[]={0x18,0xff,0x81,0x81,0x81,0xff,0x18,0x18};
const unsigned char Voile100[]={0x18,0xff,0x81,0x81,0x81,0x81,0xff,0x18};
const unsigned char* SpriteVoile[] = {Voile0,Voile25,Voile50,Voile75,Voile100};
PrintMini(108 , 15 , "Voiles" , 0);
int buffer2 = BateauActuelle->VoilesLateralle.Pourcentage;
int buffer2b = BateauActuelle->VoilesLongitudinal.Pourcentage;
if( buffer2 < 12 )ML_bmp_8_or(SpriteVoile[0] ,108 , 21);
else if(buffer2 >= 12 && buffer2 < 37 )ML_bmp_8_or(SpriteVoile[1] ,108 , 21);
else if(buffer2 >= 37 && buffer2 < 62 )ML_bmp_8_or(SpriteVoile[2] ,108 , 21);
else if(buffer2 >= 62 && buffer2 < 87 )ML_bmp_8_or(SpriteVoile[3] ,108 , 21);
else if(buffer2 >= 87)ML_bmp_8_or(SpriteVoile[4] ,108 , 21);
if( buffer2b < 12 )ML_bmp_8_or(SpriteVoile[0] ,118 , 21);
else if(buffer2b >= 12 && buffer2b < 37 )ML_bmp_8_or(SpriteVoile[1] ,118 , 21);
else if(buffer2b >= 37 && buffer2b < 62 )ML_bmp_8_or(SpriteVoile[2] ,118 , 21);
else if(buffer2b >= 62 && buffer2b < 87 )ML_bmp_8_or(SpriteVoile[3] ,118 , 21);
else if(buffer2b >= 87)ML_bmp_8_or(SpriteVoile[4] ,118 , 21);
//*****************Canons************//
int buffer3, buffer4;
PrintMini(106 , 31 , "Canon" , 0);
buffer3 = 17 - BateauActuelle->CanonDroit.couldown * 17 / 100;
buffer4 = 17 - BateauActuelle->CanonGauche.couldown * 17 / 100;
int affichage = BateauActuelle->vie * 17 / BateauActuelle->viemax;
ML_rectangle(108 , 38 , 125 , 40 , 1 , ML_BLACK , ML_WHITE);
ML_line( 108 , 39 , 108 + buffer3 , 39 , ML_BLACK);
ML_rectangle(108 , 43 , 125 , 45 , 1 , ML_BLACK , ML_WHITE);
ML_line( 108 , 44 , 108 + buffer4 , 44 , ML_BLACK);
//*******************Vie******************//
PrintMini(108 , 50 , "Vie" , 0);
ML_rectangle(108 , 57 , 125 , 59 , 1 , ML_BLACK , ML_WHITE);
ML_line( 108 , 58 , 108 + affichage , 58 , ML_BLACK);
}
void EngineGUI::Initialisation( Vent * v , Boat * b )
{
this->VentActuelle = v;
this->BateauActuelle = b;
}