From 2de6dc00c6d375594eed64bc489aa43c44d0b05f Mon Sep 17 00:00:00 2001 From: Fife Date: Sat, 30 Apr 2016 13:31:37 +0200 Subject: [PATCH] First commit --- EScript.cpp | 149 ++++++++++++++++++ EScript.hpp | 14 ++ GScript.cpp | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++ GScript.hpp | 50 +++++++ GSprite.hpp | 58 +++++++ Geometry.cpp | 164 ++++++++++++++++++++ Menu.cpp | 341 ++++++++++++++++++++++++++++++++++++++++++ Menu.hpp | 15 ++ Save.cpp | 97 ++++++++++++ Save.hpp | 45 ++++++ 10 files changed, 1348 insertions(+) create mode 100644 EScript.cpp create mode 100644 EScript.hpp create mode 100644 GScript.cpp create mode 100644 GScript.hpp create mode 100644 GSprite.hpp create mode 100644 Geometry.cpp create mode 100644 Menu.cpp create mode 100644 Menu.hpp create mode 100644 Save.cpp create mode 100644 Save.hpp diff --git a/EScript.cpp b/EScript.cpp new file mode 100644 index 0000000..8ef05fc --- /dev/null +++ b/EScript.cpp @@ -0,0 +1,149 @@ +#include "..\C-Engine\CHeader.hpp" + +#include "EScript.hpp" + +void EngineControl::Update() +{ + + if((int)GetEngine()->GetListeObject()[0]->GetTransforms()->GetX() % 12 < 3) + { + UpdateScenary(); + } + +} + +void EngineControl::UpdateScenary() +{ + + int stop = GetEngine()->GetNbObject(); + + for(int i = 1; i < stop ; i++) + { + if(GetEngine()->GetListeObject()[i]->GetTransforms()->GetX() < (GetEngine()->GetListeObject()[0]->GetTransforms()->GetX() - 36)) + { + GetEngine()->DelObject(GetEngine()->GetListeObject()[i]); + i--; + stop --; + } + } + + SetDecor(((int)GetEngine()->GetListeObject()[0]->GetTransforms()->GetX() / 12) + 10); +} + + +void EngineControl::SetDecor(int i) +{ + int dify , difx, w , h , type; + + if(GetEngine()->GetMap() == NULL)return; + + for( int j = 0 ; j < GetEngine()->GetMap()->nbtiles_hauteur_monde; j++) + { + w = 0 ; h = 0; difx = 0; dify = 0; type = 0; + + //Type = 0 rien //Type = 1 pics //Type = 2 jump //Type = 3 doublejump //Type = 4 portail ->navette //Type = 5 portail ->cube + + switch(GetEngine()->GetMap()->map[j][i] - '0') + { + case 7: w = 10 ; h = 10; type = 1; difx = 1;break;//Triangle pics + case 8: w = 10 ; h = 10; type = 1;difx = 1;break;//Triangle pics + + case 5: w = 12 ; h = 4; type = 1;break; //Pics + case 6: w = 12 ; h = 4; type = 1;break; //Pics + case 9: w = 10 ; h = 6; type = 1;difx = 1;break; //Petit triangle droit + case 10: w = 10 ; h = 6; dify = 6; type = 1;difx = 1;break; //Petit triangle renverse + + case 11: w = 8 ; h = 4; type = 2; break; //jump + case 12: w = 12 ; h = 12; type = 3; break;//Doublejump + + case 16: w = 10 ; h = 22; dify = 1; type = 4; break;//Portail + case 18: w = 10 ; h = 22; dify = 1; type = 5; break; + + case 20: w = 10 ; h = 10; type = 1; difx = 2; dify = 1; break; + case 21: w = 10 ; h = 10; type = 1; difx = 2; dify = 1; break; + + default: w = 0 ; h = 0; type = 0; break; + } + + if(type == 1) + { + + Object * Buffer = new Object; + + Buffer->GetTransforms()->SetXY( i * 12 + difx, ((GetEngine()->GetMap()->nbtiles_hauteur_monde - 1)* 12) - (j * 12) + 2 + dify); + + Buffer->AddRigibody(); + + Buffer->GetRigibody()->UseFixeBody(w,h); + + Buffer->AffectTag("Pic"); + + GetEngine()->AddObject(Buffer); + + } + + if(type == 2) + { + + Object * Buffer = new Object; + + Buffer->GetTransforms()->SetXY( i * 12 + 2 , ((GetEngine()->GetMap()->nbtiles_hauteur_monde - 1)* 12) - (j * 12) + 2 + dify); + + Buffer->AddRigibody(); + + Buffer->GetRigibody()->UseFixeBody(w,h); + + Buffer->AffectTag("Jump"); + + GetEngine()->AddObject(Buffer); + } + + if(type == 3) + { + Object * Buffer = new Object; + + Buffer->GetTransforms()->SetXY( i * 12 , ((GetEngine()->GetMap()->nbtiles_hauteur_monde - 1)* 12) - (j * 12) + 2 + dify); + + Buffer->AddRigibody(); + + Buffer->GetRigibody()->UseFixeBody(w,h); + + Buffer->AffectTag("DJ"); + + GetEngine()->AddObject(Buffer); + } + + if(type == 4) + { + + Object * Buffer = new Object; + + Buffer->GetTransforms()->SetXY( i * 12 + 1, ((GetEngine()->GetMap()->nbtiles_hauteur_monde - 1)* 12) - (j * 12) + 2 + dify); + + Buffer->AddRigibody(); + + Buffer->GetRigibody()->UseFixeBody(w,h); + + Buffer->AffectTag("PN"); + + GetEngine()->AddObject(Buffer); + } + + if(type == 5) + { + + Object * Buffer = new Object; + + Buffer->GetTransforms()->SetXY( i * 12 + 1, ((GetEngine()->GetMap()->nbtiles_hauteur_monde - 1)* 12) - (j * 12) + 2 + dify); + + Buffer->AddRigibody(); + + Buffer->GetRigibody()->UseFixeBody(w,h); + + Buffer->AffectTag("PC"); + + GetEngine()->AddObject(Buffer); + } + + } +} diff --git a/EScript.hpp b/EScript.hpp new file mode 100644 index 0000000..70837fa --- /dev/null +++ b/EScript.hpp @@ -0,0 +1,14 @@ +#ifndef ESCRIPT +#define ESCRIPT + +class EngineControl: public Script +{ + public: + + void Update(); + void UpdateScenary(); + void SetDecor(int i); +}; + + +#endif diff --git a/GScript.cpp b/GScript.cpp new file mode 100644 index 0000000..0c4b0de --- /dev/null +++ b/GScript.cpp @@ -0,0 +1,415 @@ +#include "..\C-Engine\CHeader.hpp" + +#include "GScript.hpp" + +void Control::Start() +{ + etat = 0; + GetObject()->AddRigibody(); + GetObject()->GetRigibody()->SetMass(7.25); + SetXY( 0 , 12); + + xmax = GetEngine()->GetMap()->nbtiles_largeur_monde * GetEngine()->GetMap()->LARGEUR_TILE; + + practice = false; + ptime = 0; + spawnx = GetX(); + spawny = GetY(); + + particule = false; + usebar = false; + useautocheck = true; + useautoretry = false; + + waitingjump = false; + + time = 0; + jump = 0; + attemp = 0; +} + +void Control::End() +{ + GetEngine()->StopGame(); + UserSave->UserInfo->nbjump += jump; + UserSave->UserInfo->nbattemp += attemp + 1; + UserSave->UserInfo->nbtime += time; +} + +void Control::UpdateEverySecond() +{ + if(practice) ptime ++; + time ++; + +} + +void Control::Update() +{ + + static const unsigned char SP[]={0xff, 0xff,}; + static const unsigned char CP[]={0x27, 0x57, 0x8f, 0xaf, 0xaf, 0x8f, 0x57, 0x27, }; + + static Sprite S_Particule(SP, 2 , 2); + static Animation A_Particule(S_Particule); + + static Sprite S_CheckPoint(CP, 5 , 8); + static Animation A_CheckPoint(S_CheckPoint); + + bool isground = GetObject()->GetRigibody()->CollisionDecor(GetX() , GetY() - 1); + + if(!GetObject()->GetRigibody()->CollisionDecor(GetX() + 1 , GetY())) Move(3,0);//Déplacement + else Die(); + + if(isground)particule = false; + + if(practice) + { + if(ptime > 2 && ( isground && etat == 0|| etat == 1) && useautocheck) + { + spawnx = GetX(); + spawny = GetY(); + ptime = 0; + + spawnetat = etat; + + Object * Buffer = new Object; + Buffer->GetTransforms()->SetXY(GetX(),GetY() + 2); + Buffer->GetRender()->SetRender(A_CheckPoint); + GetEngine()->AddObject(Buffer); + } + } + + if(GetObject()->CollisionTag("Pic")) Die();//Mort + + if(GetObject()->CollisionTag("PC"))etat = 0; + if(GetObject()->CollisionTag("PN"))etat = 1; + + switch(etat) + { + case 0: + GetObject()->GetRigibody()->SetMass(7.25); + SetIt(0); + + if(!isground)GetObject()->GetRender()->SetDirection( GetObject()->GetRender()->GetDirection() - 10);//Rotation + else + { + if(GetObject()->GetRender()->GetDirection() < 45 || GetObject()->GetRender()->GetDirection() > 324)GetObject()->GetRender()->SetDirection(0); + if(GetObject()->GetRender()->GetDirection() > 44 && GetObject()->GetRender()->GetDirection() < 125)GetObject()->GetRender()->SetDirection(90); + if(GetObject()->GetRender()->GetDirection() > 124 && GetObject()->GetRender()->GetDirection() < 235)GetObject()->GetRender()->SetDirection(180); + if(GetObject()->GetRender()->GetDirection() > 234 && GetObject()->GetRender()->GetDirection() < 325)GetObject()->GetRender()->SetDirection(270); + } + + if(input_press(K_SHIFT) && isground){GetObject()->GetRigibody()->GetBody()->velocity.y = 68;jump++;waitingjump = false;} // Tout les saut. + if(GetObject()->CollisionTag("Jump")){GetObject()->GetRigibody()->GetBody()->velocity.y = 95;particule = true;jump++;} + + if(input_trigger(K_SHIFT) && !isground)waitingjump = true; + if(input_release(K_SHIFT))waitingjump = false; + + if(waitingjump && GetObject()->CollisionTag("DJ")){GetObject()->GetRigibody()->GetBody()->velocity.y = 68;particule = true;waitingjump = false;} + + GetEngine()->MiddleScreen(GetX() + 50 , GetY() +4); + break; + case 1: + GetObject()->GetRigibody()->SetMass(3); + SetIt(1); + + if(input_press(K_SHIFT)) + { + GetObject()->GetRigibody()->GetBody()->acceleration.y = 90; + if(GetObject()->GetRigibody()->GetBody()->velocity.y > 35)GetObject()->GetRigibody()->GetBody()->velocity.y = 35; + if(GetObject()->GetRigibody()->GetBody()->velocity.y < -20)GetObject()->GetRigibody()->GetBody()->velocity.y = -20; + } + else + { + if(GetObject()->GetRigibody()->GetBody()->velocity.y > 20)GetObject()->GetRigibody()->GetBody()->velocity.y = 20; + if(GetObject()->GetRigibody()->GetBody()->velocity.y < -35)GetObject()->GetRigibody()->GetBody()->velocity.y = -35; + } + + + + GetObject()->GetRender()->SetDirection( GetObject()->GetRigibody()->GetBody()->velocity.y); + + GetEngine()->MiddleScreen(GetX() + 51 , GetY() + 4); + + particule = true; + + break; + } + + if(particule) + { + Object * Buffer = new Object; + Buffer->GetTransforms()->SetXY(GetX()- 2 , GetY()+3); + Buffer->GetRender()->SetRender(A_Particule); + GetEngine()->AddObject(Buffer); + } + + if(usebar) + { + ML_rectangle(23,2,103,4,1,ML_BLACK,ML_WHITE); + ML_line(24,3,24 + GetX()*80/xmax,3,ML_BLACK ); + } + + if(GetX() < 100) + { + const unsigned char sattempt[]={0x78, 0x7f, 0x3f, 0x9f, 0xc2, 0x38, 0x3e, 0x3f, 0xff, 0x78, 0x7f, 0x3f, 0x9f, 0x82, 0x38, 0x3e, 0x3f, 0xff, 0xdc, 0x3c, 0x1e, 0x38, 0x7, 0x7c, 0x67, 0x1e, 0x7f, 0xcc, 0x3c, 0x1e, 0x38, 0x7, 0xde, 0x67, 0x1e, 0x7f, 0xcc, 0x1c, 0xe, 0x3e, 0xf, 0xce, 0x7f, 0xe, 0x7f, 0xcc, 0x1c, 0xe, 0x3f, 0xe, 0xce, 0x7e, 0xe, 0x7f, 0xfc, 0x1c, 0xe, 0x38, 0xe, 0xce, 0x78, 0xe, 0x7f, 0xfc, 0x18, 0xc, 0x38, 0xc, 0x4e, 0x60, 0xc, 0x7f, 0xcc, 0x18, 0xc, 0x3f, 0xc, 0x4c, 0x60, 0xc, 0x7f, 0xcc, 0x8, 0x4, 0x1f, 0x8c, 0x1c, 0x60, 0x4, 0x7f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x18, 0x20, 0x0, 0x7f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x18, 0x20, 0x0, 0x7f, 0x40, 0x0, 0x0, 0x0, 0x0, 0x10, 0x20, 0x0, 0x7f, }; + const unsigned char snombre[]={0x31, 0x79, 0xcd, 0xcd, 0x8d, 0x85, 0xc5, 0x45, 0x79, 0x39, 0x19, 0x79, 0xf9, 0xd9, 0x19, 0x19, 0x19, 0x39, 0x31, 0x21, 0x31, 0xf9, 0xd, 0xd, 0x1d, 0x7d, 0xe1, 0x81, 0xfd, 0x79, 0x79, 0xfd, 0xcd, 0xd, 0x5, 0x3d, 0x3d, 0xd, 0x3d, 0xf9, 0x41, 0xc1, 0xc1, 0xc9, 0xdd, 0xfd, 0x39, 0x19, 0x19, 0x31, 0x3d, 0x79, 0xc1, 0xc1, 0xe1, 0x39, 0xd, 0xd, 0x1d, 0xf9, 0x3d, 0x79, 0xc1, 0xc1, 0xe1, 0x99, 0x8d, 0xc5, 0xcd, 0x79, 0x39, 0xfd, 0xf, 0x7, 0x35, 0x7d, 0xd, 0xd, 0x31, 0x71, 0x79, 0xfd, 0xcd, 0xcd, 0x85, 0xfd, 0xcd, 0x8d, 0xfd, 0x79, 0x79, 0xcd, 0x8d, 0xc5, 0x65, 0x1d, 0xd, 0xd, 0x79, 0xf1, }; + + ML_bmp_or_cl(sattempt , 10 , 10 + GetEngine()->GetScreen()->min.y ,65 , 13); + + if(attemp / 100 > 0) + { + ML_bmp_or_cl(snombre + 10 * (attemp / 100), 85 , 10 + GetEngine()->GetScreen()->min.y ,7,10); + ML_bmp_or_cl(snombre + 10 * ((attemp % 100) / 10), 95 , 10 + GetEngine()->GetScreen()->min.y ,7,10); + ML_bmp_or_cl(snombre + 10 * (attemp % 10), 105 , 10 + GetEngine()->GetScreen()->min.y ,7,10); + } + else + { + ML_bmp_or_cl(snombre + 10 * ((attemp % 100) / 10), 85 , 10 + GetEngine()->GetScreen()->min.y ,7,10); + ML_bmp_or_cl(snombre + 10 * (attemp % 10) , 95, 10 + GetEngine()->GetScreen()->min.y ,7,10); + } + + } + if(input_trigger(K_EXIT))Pause(); +} + +void Control::Die() +{ + int avancement = GetX()*100/xmax; + + if(!practice) + { + if( avancement > UserSave->TabLevel[nlevel-1]->normalprogress)UserSave->TabLevel[nlevel-1]->normalprogress = avancement; + } + else + { + if( avancement > UserSave->TabLevel[nlevel-1]->practiseprogress)UserSave->TabLevel[nlevel-1]->practiseprogress = avancement; + } + + + int stop = GetEngine()->GetNbObject(); + ptime = 0; + + for(int i = 1; i < stop ; i++) + { + GetEngine()->DelObject(GetEngine()->GetListeObject()[i]); + i--; + stop --; + } + + bool cinematic = true; + + int x = GetEngine()->GetListeObject()[0]->GetTransforms()->GetRelativeX(); + int y = GetEngine()->GetListeObject()[0]->GetTransforms()->GetRelativeY(); + int dtime = 0; + int choix = 0; + + const unsigned char S1[]={0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x60, 0xf, 0x0, 0x60, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, }; + const unsigned char S2[]={0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0xf0, 0xf, 0x0, 0x90, 0xf, 0x0, 0x90, 0xf, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, }; + const unsigned char S3[]={0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x40, 0xf, 0x2, 0x4, 0xf, 0x0, 0xf0, 0xf, 0x1, 0x8, 0xf, 0x9, 0x8, 0xf, 0x1, 0x8, 0xf, 0x1, 0x8, 0xf, 0x0, 0xf0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, }; + const unsigned char S4[]={0x6, 0x0, 0xf, 0x6, 0x0, 0xf, 0x0, 0x60, 0xf, 0x18, 0x61, 0x8f, 0x18, 0x1, 0x8f, 0x3, 0xfc, 0xf, 0x4, 0x2, 0xf, 0x4, 0x2, 0xf, 0x4, 0x2, 0xf, 0x4, 0x62, 0xf, 0x4, 0x62, 0xf, 0x4, 0x2, 0xf, 0x4, 0x2, 0xf, 0x4, 0x2, 0xf, 0x3, 0xfc, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, }; + const unsigned char S5[]={0x3, 0x19, 0x8f, 0x3, 0x19, 0x8f, 0x30, 0x0, 0xf, 0x33, 0xfc, 0xf, 0xc, 0x3, 0xf, 0x8, 0x1, 0xf, 0x10, 0x0, 0x8f, 0x10, 0x0, 0x8f, 0x10, 0x60, 0x8f, 0x10, 0x90, 0x8f, 0x10, 0x90, 0x8f, 0x10, 0x60, 0x8f, 0x10, 0x0, 0x8f, 0x10, 0x0, 0x8f, 0x8, 0x1, 0xf, 0xc, 0x3, 0xf, 0x3, 0xfc, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0, 0xf, }; + + ML_clear_vram(); + + GetEngine()->GetMap()->AfficherMap(); + + ML_display_vram(); + + while(cinematic == true) + { + + dtime ++; + + if(dtime < 5)choix = 0; + else if(dtime < 10)choix = 1; + else if(dtime < 15)choix = 2; + else if(dtime < 20)choix = 3; + else if(dtime < 25)choix = 4; + + ML_clear_vram(); + + if(dtime > 25) cinematic = false; + + GetEngine()->GetMap()->AfficherMap(); + + switch(choix) + { + case 0: ML_bmp_or(S1,x-2,47 - y,20,20); break; + case 1: ML_bmp_or(S2,x-2,47 - y,20,20); break; + case 2: ML_bmp_or(S3,x-2,47 - y,20,20); break; + case 3: ML_bmp_or(S4,x-2,47 - y,20,20); break; + case 4: ML_bmp_or(S5,x-2,47 - y,20,20); break; + } + + + if(usebar) + { + ML_rectangle(23,2,103,4,1,ML_BLACK,ML_WHITE); + ML_line(24,3,24 + GetX()*80/xmax,3,ML_BLACK ); + } + + ML_display_vram(); + + Sleep(10); + } + + + if(!useautoretry)EndScreen(); + + attemp ++; + + if(practice) + { + etat = spawnetat; + SetXY( spawnx , spawny); + } + else + { + etat = 0; + SetXY( 0 , 12); + } + + + for(int i = 0; i < 10 ; i++) + { + EC->SetDecor(((int)GetEngine()->GetListeObject()[0]->GetTransforms()->GetX() / 12) + i); + } + + +} + +void Control::EndScreen() +{ + bool end = false; + int choix = 0; + + + const unsigned char srestart[]={0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x27, 0x77, 0x57, 0x70, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x52, 0x24, 0x75, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x72, 0x26, 0x57, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x52, 0x24, 0x54, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x52, 0x27, 0x54, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x3, 0xaa, 0xbb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2b, 0xaa, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2a, 0xbb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2a, 0xa0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x3, 0x3a, 0xa3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x3, 0xaa, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0xe, 0x88, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2a, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2a, 0x88, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x1, 0x2a, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x30, 0x60, 0x0, 0x0, 0x0, 0x0, 0xc, 0x18, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x40, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10, 0x4, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x80, 0x8, 0x0, 0x0, 0x0, 0x0, 0x20, 0x2, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x41, 0x10, 0x44, 0x0, 0x80, 0x2, 0x0, 0x42, 0xf1, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x41, 0x10, 0x44, 0x0, 0x80, 0x2, 0x0, 0x40, 0x1, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xc1, 0x10, 0x44, 0x0, 0x80, 0x2, 0x0, 0x42, 0xf1, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41, 0x10, 0xe4, 0x0, 0x80, 0x2, 0x0, 0x40, 0x1, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41, 0x10, 0x44, 0x0, 0x80, 0x2, 0x0, 0x42, 0xf1, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x90, 0xf, 0xff, 0x80, 0x3, 0xff, 0xe0, 0x3, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x8, 0x0, 0x80, 0x2, 0x0, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x10, 0x0, 0xff, 0xfe, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x60, 0x0, 0x0, 0x0, 0x0, 0xc, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, }; + + const unsigned char N5[]={0x7, 0xc1, 0x1f, 0xf1, 0x3f, 0xf9, 0x7f, 0xfd, 0x7f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfd, 0x7f, 0xfd, 0x3f, 0xf9, 0x1f, 0xf1, 0x7, 0xc1, }; + const unsigned char P10[]={0xf8, 0x3f, 0xe7, 0xcf, 0xdf, 0xf7, 0xbf, 0xfb, 0xbf, 0xfb, 0x7a, 0x1d, 0x7f, 0xfd, 0x7a, 0x1d, 0x7f, 0xfd, 0x7a, 0x1d, 0xbf, 0xfb, 0xbf, 0xfb, 0xdf, 0xf7, 0xe7, 0xcf, 0xf8, 0x3f, }; + const unsigned char P11[]={0xf8, 0x3f, 0xe7, 0xcf, 0xdf, 0xf7, 0xbf, 0xfb, 0x38, 0x39, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0x8d, 0x77, 0xdd, 0x37, 0xf9, 0xb8, 0x7b, 0xdf, 0xf7, 0xe7, 0xcf, 0xf8, 0x3f, }; + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + ML_bmp_or(srestart , 0 ,0 , 128 , 64); + + PrintV(75,18,attemp); + PrintV(65,31,jump); + PrintV(55,38,time/60); + PrintV(75,38,time%60); + + ML_line(26,26,26 + GetX()*75/xmax,26,ML_BLACK ); + + + if(input_any_key()) + { + if(input_trigger(K_RIGHT))choix ++; + if(input_trigger(K_LEFT))choix --; + + if(input_trigger(K_EXIT))return; + + if(choix < 0)choix = 1; + if(choix > 1)choix = 0; + + + if(input_trigger(K_EXE) || input_trigger(K_SHIFT)) + { + switch(choix) + { + case 0: end = true;break; + case 1: End(); end = true;break; + } + } + } + + switch(choix) + { + case 0: ML_bmp_or(N5 , 31,49 , 15 ,15); ML_bmp_and(P11 , 31,49 , 16 ,16); break; + case 1: ML_bmp_or(N5 , 81,49 , 15 ,15); ML_bmp_and(P10 , 81,49 , 16 ,16); break; + } + + ML_display_vram(); + } + +} + +void Control::Pause() +{ + const unsigned char P8[]={0xff, 0x1, 0xff, 0xfc, 0xfe, 0x7f, 0xfb, 0xff, 0xbf, 0xf7, 0xff, 0xdf, 0xef, 0xdf, 0xef, 0xdf, 0xaf, 0xf7, 0xbf, 0xb7, 0xfb, 0xbf, 0xbb, 0xfb, 0x7f, 0xbd, 0xfd, 0x7f, 0xbe, 0xfd, 0x7f, 0xbf, 0x7d, 0x7f, 0xbf, 0xbd, 0x7f, 0xbf, 0x7d, 0x7f, 0xbe, 0xfd, 0x7f, 0xbd, 0xfd, 0xbf, 0xbb, 0xfb, 0xbf, 0xb7, 0xfb, 0xdf, 0xaf, 0xf7, 0xef, 0xdf, 0xef, 0xf7, 0xff, 0xdf, 0xf9, 0xff, 0x3f, 0xfe, 0xfe, 0xff, 0xff, 0x1, 0xff, }; + const unsigned char P9[]={0xf8, 0x3f, 0xe7, 0xcf, 0xde, 0xf7, 0xbd, 0x7b, 0xbb, 0xbb, 0x7b, 0xbd, 0x7a, 0xbd, 0x7a, 0xbd, 0x7a, 0xbd, 0x7a, 0xbd, 0xbb, 0xbb, 0xbd, 0x7b, 0xde, 0xf7, 0xe7, 0xcf, 0xf8, 0x3f, }; + const unsigned char P10[]={0xf8, 0x3f, 0xe7, 0xcf, 0xdf, 0xf7, 0xbf, 0xfb, 0xbf, 0xfb, 0x7a, 0x1d, 0x7f, 0xfd, 0x7a, 0x1d, 0x7f, 0xfd, 0x7a, 0x1d, 0xbf, 0xfb, 0xbf, 0xfb, 0xdf, 0xf7, 0xe7, 0xcf, 0xf8, 0x3f, }; + + const unsigned char N4[]={0x0, 0xfe, 0x1, 0x3, 0xff, 0x81, 0x7, 0xff, 0xc1, 0xf, 0xff, 0xe1, 0x1f, 0xff, 0xf1, 0x3f, 0xff, 0xf9, 0x7f, 0xff, 0xfd, 0x7f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xfd, 0x7f, 0xff, 0xfd, 0x3f, 0xff, 0xf9, 0x1f, 0xff, 0xf1, 0xf, 0xff, 0xe1, 0x7, 0xff, 0xc1, 0x1, 0xff, 0x1, 0x0, 0xfe, 0x1, }; + const unsigned char N5[]={0x7, 0xc1, 0x1f, 0xf1, 0x3f, 0xf9, 0x7f, 0xfd, 0x7f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfd, 0x7f, 0xfd, 0x3f, 0xf9, 0x1f, 0xf1, 0x7, 0xc1, }; + + const unsigned char spause[]={0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x97, 0x74, 0x5d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x56, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x75, 0x5d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x95, 0x64, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x97, 0x54, 0x55, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x2, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x2, 0x80, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xbb, 0xbb, 0xae, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0xaa, 0xa1, 0x28, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xbb, 0xa1, 0x28, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x32, 0xa1, 0x28, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x2a, 0xb9, 0x2e, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0x2, 0x1, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x18, 0x30, 0x0, 0x2, 0x5, 0x0, 0x80, 0x0, 0x18, 0x30, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x21, 0x8, 0x0, 0x4, 0x4, 0x80, 0x40, 0x0, 0x20, 0x8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x42, 0x84, 0x0, 0x4, 0x4, 0x40, 0x40, 0x0, 0x40, 0x4, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x44, 0x44, 0x0, 0x8, 0x4, 0x20, 0x20, 0x0, 0x40, 0x4, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x84, 0x42, 0x0, 0x8, 0x4, 0x10, 0x20, 0x0, 0x85, 0xe2, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x85, 0x42, 0x0, 0x8, 0x4, 0x8, 0x20, 0x0, 0x80, 0x2, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x85, 0x42, 0x0, 0x8, 0x4, 0x4, 0x20, 0x0, 0x85, 0xe2, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x85, 0x42, 0x0, 0x8, 0x4, 0x8, 0x20, 0x0, 0x80, 0x2, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x85, 0x42, 0x0, 0x8, 0x4, 0x10, 0x20, 0x0, 0x85, 0xe2, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x44, 0x44, 0x0, 0x8, 0x4, 0x20, 0x20, 0x0, 0x40, 0x4, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x42, 0x84, 0x0, 0x4, 0x4, 0x40, 0x40, 0x0, 0x40, 0x4, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x21, 0x8, 0x0, 0x4, 0x4, 0x80, 0x40, 0x0, 0x20, 0x8, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x18, 0x30, 0x0, 0x2, 0x5, 0x0, 0x80, 0x0, 0x18, 0x30, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0x2, 0x1, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x3c, 0x6a, 0xe6, 0xa0, 0x3, 0xce, 0xee, 0xea, 0x0, 0x1e, 0x33, 0xb8, 0x0, 0x1, 0x80, 0x0, 0x24, 0x8a, 0x88, 0xa0, 0x2, 0x4a, 0x84, 0xaa, 0x0, 0x12, 0x2a, 0xa8, 0x0, 0x1, 0x80, 0x0, 0x24, 0x8e, 0xc8, 0xc0, 0x2, 0x4e, 0xc4, 0xe4, 0x0, 0x12, 0x3b, 0xb8, 0x0, 0x1, 0x80, 0x0, 0x3c, 0x8a, 0x88, 0xa0, 0x3, 0xcc, 0x84, 0xc4, 0x0, 0x1e, 0x2a, 0xb0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x6a, 0xe6, 0xa0, 0x0, 0xa, 0xe4, 0xa4, 0x0, 0x0, 0x32, 0xa8, 0x0, 0x2, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, }; + + bool end = false; + int choix = 1; + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + ML_bmp_or(spause , 0 ,0 , 128 , 64); + + ML_line(23,9,23 + (UserSave->TabLevel[nlevel-1]->normalprogress * 75 / 100 ) ,9,ML_BLACK); + + ML_line(23,19,23 + (UserSave->TabLevel[nlevel-1]->practiseprogress * 75 / 100 ) ,19,ML_BLACK); + + if(useautocheck)ML_rectangle(19,53,20,54,1,ML_BLACK,ML_BLACK); + if(useautoretry)ML_rectangle(55,53,56,54,1,ML_BLACK,ML_BLACK); + if(usebar)ML_rectangle(92,53,93,54,1,ML_BLACK,ML_BLACK); + + if(input_any_key()) + { + if(input_trigger(K_RIGHT))choix ++; + if(input_trigger(K_LEFT))choix --; + + if(input_trigger(K_UP))choix -= 3; + if(input_trigger(K_DOWN))choix += 3; + + if(input_trigger(K_EXIT))return; + + if(choix < 0)choix = 5; + if(choix > 5)choix = 0; + + + if(input_trigger(K_EXE) || input_trigger(K_SHIFT)) + { + switch(choix) + { + case 0: practice = true; end = true;break; + case 1: end = true;break; + case 2: End(); end = true; break; + case 3: if(useautocheck == false)useautocheck = true;else useautocheck = false;break; + case 4: if(useautoretry == false)useautoretry = true;else useautoretry = false;break; + case 5: if(usebar == false)usebar = true;else usebar =false; break; + } + } + } + + switch(choix) + { + case 0: ML_bmp_or(N5 , 24,26 , 15 ,15); ML_bmp_and(P9 , 24,26 , 16 ,16); break; + case 1: ML_bmp_or(N4 , 52,22 , 23 ,23); ML_bmp_and(P8 , 52,22 , 24 ,24); break; + case 2: ML_bmp_or(N5 , 88,26 , 15 ,15); ML_bmp_and(P10 , 88,26 , 16 ,16); break; + case 3: ML_line(24,58,42,58,ML_BLACK); break; + case 4: ML_line(60,58,78,58,ML_BLACK); break; + case 5: ML_line(98,58,108,58,ML_BLACK); break; + + } + + ML_display_vram(); + } + +} + diff --git a/GScript.hpp b/GScript.hpp new file mode 100644 index 0000000..e20e0f7 --- /dev/null +++ b/GScript.hpp @@ -0,0 +1,50 @@ +#ifndef RPGSCRIPT +#define RPGSCRIPT + +#include "EScript.hpp" +#include "Save.hpp" + +class Control: public Script +{ + public: + + void Start(); + void Update(); + void UpdateEverySecond(); + void Die(); + void End(); + void Pause(); + void EndScreen(); + + Save * UserSave; + int nlevel; + + EngineControl * EC; + + private: + + int etat; + int xmax; + + bool particule; + + bool practice; + int ptime; + int spawnx; + int spawny; + int spawnetat; + + bool usebar; + bool useautoretry; + bool useautocheck; + + int jump; + int time; + int attemp; + + bool waitingjump; + +}; + + +#endif diff --git a/GSprite.hpp b/GSprite.hpp new file mode 100644 index 0000000..7d2f34d --- /dev/null +++ b/GSprite.hpp @@ -0,0 +1,58 @@ + const unsigned char P1[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x9f, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x9f, 0x9f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P2[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0xbf, 0xdf, 0xa0, 0x5f, 0xef, 0x7f, 0x9, 0xf, 0xf9, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P3[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0xbf, 0xdf, 0xa0, 0x5f, 0xbf, 0xdf, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P4[]={0xff, 0xff, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0xb9, 0xdf, 0xef, 0x7f, 0x0, 0xf, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P5[]={0xff, 0xff, 0x80, 0x1f, 0x9f, 0x9f, 0x90, 0x9f, 0x9f, 0x9f, 0x80, 0x1f, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xa9, 0x5f, 0xa9, 0x5f, 0xef, 0x7f, }; + const unsigned char P6[]={0xff, 0xff, 0x80, 0x1f, 0x8f, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x8f, 0x1f, 0xe0, 0x7f, 0x20, 0x4f, 0x20, 0x4f, 0x3f, 0xcf, }; + const unsigned char P7[]={0xf9, 0xff, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x8f, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x8f, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0xf9, 0xff, }; + const unsigned char P8[]={0x7f, 0xef, 0xc0, 0x3f, 0x80, 0x1f, 0x83, 0xdf, 0xba, 0x5f, 0xaa, 0x5f, 0xbb, 0xdf, 0x80, 0x1f, 0xe0, 0x7f, 0x2f, 0x4f, 0x29, 0x4f, 0x39, 0xcf, }; + + const unsigned char PlayerN[]={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 Ship1[]={0xc, 0xf, 0xa, 0xf, 0x2a, 0xf, 0x3b, 0x8f, 0xe8, 0x6f, 0xaf, 0xdf, 0xa8, 0x5f, 0xe8, 0x5f, 0x3f, 0xef, 0x20, 0xf, }; + + Sprite S_Player1(P1 , PlayerN , 12 , 12 ); + Animation A_P1(S_Player1); + + Sprite S_Player2(P2 , PlayerN , 12 , 12 ); + Animation A_P2(S_Player2); + + Sprite S_Player3(P3 , PlayerN , 12 , 12 ); + Animation A_P3(S_Player3); + + Sprite S_Player4(P4 , PlayerN , 12 , 12 ); + Animation A_P4(S_Player4); + + Sprite S_Player5(P5 , PlayerN , 12 , 12 ); + Animation A_P5(S_Player5); + + Sprite S_Player6(P6 , PlayerN , 12 , 12 ); + Animation A_P6(S_Player6); + + Sprite S_Player7(P7 , PlayerN , 12 , 12 ); + Animation A_P7(S_Player7); + + Sprite S_Player8(P8 , PlayerN , 12 , 12 ); + Animation A_P8(S_Player8); + + Sprite S_Ship1(Ship1 , 12,10); + Animation A_Ship1(S_Ship1); + + Animation A_Player1[]={ A_P1 , A_Ship1}; + Animation A_Player2[]={ A_P2 , A_Ship1}; + Animation A_Player3[]={ A_P3 , A_Ship1}; + Animation A_Player4[]={ A_P4 , A_Ship1}; + Animation A_Player5[]={ A_P5 , A_Ship1}; + Animation A_Player6[]={ A_P6 , A_Ship1}; + Animation A_Player7[]={ A_P7 , A_Ship1}; + Animation A_Player8[]={ A_P8 , A_Ship1}; + + bool prop[]={0,1,1,1,0,0,0,0,0,0,0,0,0,0,1}; + + const unsigned char tileset[]={0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xbf, 0xdf, 0xaf, 0x5f, 0xbf, 0xdf, 0xbf, 0xdf, 0xbf, 0xdf, 0xbf, 0xdf, 0xaf, 0x5f, 0xbf, 0xdf, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0xff, 0xff, 0xa, 0xf, 0xa, 0xf, 0x6, 0xf, 0x4, 0xf, 0xe, 0xf, 0xa, 0xf, 0xa, 0xf, 0x6, 0xf, 0x4, 0xf, 0xe, 0xf, 0xa, 0xf, 0xa, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x1, 0xf, 0x42, 0x8f, 0xa2, 0x8f, 0xa2, 0x8f, 0xaa, 0x8f, 0xb6, 0xcf, 0xa6, 0xaf, 0xa6, 0xaf, 0xff, 0xff, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x4, 0xf, 0xa, 0x4f, 0xa, 0xaf, 0x4a, 0xaf, 0xaa, 0xaf, 0xff, 0xff, 0x6, 0xf, 0x6, 0xf, 0x9, 0xf, 0x9, 0xf, 0x10, 0x8f, 0x10, 0x8f, 0x20, 0x4f, 0x20, 0x4f, 0x40, 0x2f, 0x40, 0x2f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0x40, 0x2f, 0x40, 0x2f, 0x20, 0x4f, 0x20, 0x4f, 0x10, 0x8f, 0x10, 0x8f, 0x9, 0xf, 0x9, 0xf, 0x6, 0xf, 0x6, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x6, 0xf, 0x9, 0xf, 0x10, 0x8f, 0x20, 0x4f, 0x40, 0x2f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0x40, 0x2f, 0x20, 0x4f, 0x10, 0x8f, 0x9, 0xf, 0x6, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0xf, 0xf, 0x10, 0x8f, 0x20, 0x4f, 0x3f, 0xcf, 0x0, 0xf, 0xf, 0xf, 0x10, 0x8f, 0x20, 0x4f, 0x46, 0x2f, 0x49, 0x2f, 0x49, 0x2f, 0x46, 0x2f, 0x20, 0x4f, 0x10, 0x8f, 0xf, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x7, 0xf, 0x5, 0xf, 0x7, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x2, 0xf, 0x7, 0xf, 0x5, 0xf, 0x7, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x6, 0xf, 0x9, 0xf, 0x3f, 0xcf, 0x40, 0x2f, 0x44, 0x2f, 0x42, 0x2f, 0x44, 0x2f, 0x62, 0x2f, 0x54, 0x2f, 0x52, 0x6f, 0x54, 0xef, 0x52, 0xef, 0x54, 0x6f, 0x52, 0x2f, 0x64, 0x2f, 0x42, 0x2f, 0x44, 0x2f, 0x42, 0x2f, 0x40, 0x2f, 0x3f, 0xcf, 0x9, 0xf, 0x6, 0xf, 0x0, 0xf, 0x0, 0xf, 0x6, 0xf, 0x9, 0xf, 0x3f, 0xcf, 0x40, 0x2f, 0x42, 0x2f, 0x44, 0x2f, 0x42, 0x2f, 0x44, 0x6f, 0x42, 0xaf, 0x64, 0xaf, 0x72, 0xaf, 0x74, 0xaf, 0x62, 0xaf, 0x44, 0xaf, 0x42, 0x6f, 0x44, 0x2f, 0x42, 0x2f, 0x44, 0x2f, 0x40, 0x2f, 0x3f, 0xcf, 0x9, 0xf, 0x6, 0xf, 0x0, 0xf, 0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0xf, 0x0, 0x3f, 0x0, 0xdf, 0x3, 0x1f, 0xc, 0x1f, 0x30, 0x1f, 0xc0, 0x1f, 0xc0, 0x1f, 0x30, 0x1f, 0xc, 0x1f, 0x3, 0x1f, 0x0, 0xdf, 0x0, 0x3f, 0xc0, 0xf, 0xb0, 0xf, 0x8c, 0xf, 0x83, 0xf, 0x80, 0xcf, 0x80, 0x3f, 0x80, 0x3f, 0x80, 0xcf, 0x83, 0xf, 0x8c, 0xf, 0xb0, 0xf, 0xc0, 0xf, }; + + + + + + + diff --git a/Geometry.cpp b/Geometry.cpp new file mode 100644 index 0000000..185a467 --- /dev/null +++ b/Geometry.cpp @@ -0,0 +1,164 @@ + +#include "..\C-Engine\CHeader.hpp" +#include "Menu.hpp" + +#include "GScript.hpp" +#include "EScript.hpp" + +int Jeu(Save * UserSave , int nlevel , const unsigned char ** level ,int x , int y); + +int StereoMadness(Save * UserSave) +{ + const unsigned char * level1[]={ + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111000000000011111111111111111111111101111111111100001111111110000111111110000000000111111111", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000010000000000000010000000000100000000000001000000000010000000000000000000000101000000000100001000000010000100000010000000000100000001", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111100000000000000000010000000001888888888888100000000000000000000188880000000000000000000000000000000000000888888888818888888888811111111111000000000000000000000000888000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000010000000000000010000000000100000000000001000000000010000000000000000000000101000000000111111000000010000100000010000000000100000001", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007001111111111111100000000000000000010000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000010000000000011111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000010000000000000001000000001000000000000000100000000100000000000000000000000101000000000888888000000011111100000010000000000100000001", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CC00000CC0000000777700000000000000000000000000000000000000000000000000000000C0011111111111111000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000011111111110000000000000000000000000000000000000000000000000010001CCC000000CC000000000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000010000000000000000111111110000000000000000011111111000000000000000000000000101000000000000000000000088888800000011111111111100000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077770007777000000CCCC0000007000000000000000000000000000000000000000000000C000000001111111111110000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000011111111100000000000000000000000010000000000000000000001000100010000CCC00000CCC00000000000000000000000000000000000000000000000000000000000000044000000004400000000040000000040000000000000000000000000000000000000000000400400000000000000000000000000000000000010000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000000000000000000000000001", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100011111111111111111110000000001111100000000000000000000000000000000000000000C00000000000000000000000\?000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000000000000000000010001000000000000000001000100010001000000000000000000CC000000000000000000000000000000000000000000000000000000000011000000001100000000010000000010000000000000000000000000000000000000000000400400000000000000000000000000000000000000100090000000000000000000000000011000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000011100000000000101000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000111111111111111111111111111111117000000000070000000000000000000000000C000000000000000000000000000@000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B0000000000000000010001000000000000000001000100010001000100000000000000000000011100000000000000000000000000000000000000000000000000000088000000008800000000080000000080000000000000000000000000000000000000000000400400000000000000000000000000000000CCC0000010100000000000000000000000000880000000000000000000000000000000000000000000000000000000000000\?0000000000000000000000000000000000000000000000000000000000010100000000000111000000000000000000000000000000000000000000000000000001", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000001111111111111111111111111111111111CCCC00CCCC000000070000000000000C00000000000001111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000001000100000000000000000100010001000100010001000000000000000000000111000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001C000000000000000000040040000000000000000000000000000C0000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000@0000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000001000000000000000000000000000000000000000070000010000000000000000111111111111111111111111111111111100000000000CCCCCCC000000000C0000000000000000000001111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000111111111111111111100010001000000011111110001000100010001000100010000000000000000000001110001110C00000000000000000000000000000CC00000000000000000000000000000000000000000000000000000000000000001000100C000000000000000001111000000000000000000000000C00000000000001000000000700000CC0000000000000000000000000000000000000000000C000000000007000000700000CCC0000010000000000000000111111110000000000000000011111111000000000010100000000000000000000000000000000000077777700000011111111111100000001", + "000000000000000000000000000000000000001000100000000000000000000000000000070000011111110000000000000000000011111111111111111111111111111111110000000000000000000CCCCC0000000000000000000000000111111111111111000000000000000000000000000000000000000000000000001000000000000000000000000000000000100000100000000000000000000000000000000000111111111111111111110001000100010001111111000100010001000100010001000000000000000000000111000111000C000000000000000CC000000CC00000000000000000000000000000000000000000000000000000000000000001000100010000C000000000000000888800000000000000000000C0000000000000000000100000C0C0C000000C000000000000000000000000000000000001CC00000C0000000C0C0CCCC0C0C0000000CCC010000000000000001000000001000000000000000100000000100000000010100000000000000000000000777777000000011111100000010000000000100000001", + "00000000000070000000009700000000771665156510000000000077000011111115561111111661111111656556655666655556651111111111111111111111111111111111565656656666666666556565665666565656656666666666511111111111111100000000000000000000000000001777777777777100000000177770000000000000000000000001777717777710000000000000000000000000000000000011111111111111111111665165616661655111111166515561556156515561665165666565656655566565511166511156556C000000007716556611165665655611177000000000770000000077000000000700000000700000000771566156516651655656C000000770000000000007100000000CCCC666565665656656655656665616656656666566566CCC7700000770000000001CC656C656CC11665656566CCC6665656565566565565556565510000000000000010000000000100000000000001000000000010000000010100000000000000000000000111111000000010000100000010000000000100000001", + "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000000011111111110111111111111111111111111100001111111110000111111110000000000111111111", + }; + + + Jeu(UserSave , 1 , level1 , 815 , 13); + + return 1; +} + +int BackOnTrack(Save * UserSave) +{ + const unsigned char * level2[]={ + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040040000000000000000000000000001111111111111111111000000011111111111111111111111111111111111111111100000000000000111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040040000000000000000000000000000000000000000000000100000100000000000100000000000000010000000000000010000000000001000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040040000000000000000000000000000000000000000000000010001000000000000010000000000000100000000000000001000000000010000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040044000400000000000000000000000000000000000000000001010000000000000000000000000000000000000000000000100000000100000000000000000011111111111111111111111111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000004000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000040000000040000000040000000000000000000004040000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000CCCC40004700000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000100000010000000000000000000:::::::::000000000000000000>0011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000004000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000000000040000000040000000040000000000000000000004040000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400040004000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000888000000000000000000000000000000000000000000000000000000CC00000000000000000000000000000000000000000000000000000000000000000044000000000000000CCCCCC000000000000000000000\?0000000000000000000000000000000000000000100000001000000000011110000000010000100000000000000000000000000000000000000000000000000>0011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000040000004000000000000000000000000000000000004000000004000000000000000000000000000000440000000000004444000000000000040000000040000000040000000000000000000004040000000000000000000000", + "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111000000000000000000000000000000000000000000000000000000000000000000C000000000000000000700000000000000000000000000000000000;00000000000000000000000000000000000000000000000000000000070000000000CC00000C0000000000000000000000000000000C00000000;000000000000000000000004400000000;0000000000000000000C0000000000000@0000000000000000000000000000000000000000011111110000000000100001000000001111000000001111000000000000000000000000000000000000000000>0A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000010000001000000000000000000004004000000000004000700004000000000000000000000000000000440000000000004444000000000000010000000010000000010000000000000000000004040000000000700000000000", + "0000000000000000000000000000000000000000000000000000000000000000000000=00000000000000000000000000888888888888800000000000000000000000000000000000000000000000000000000000000C0000000000000000000000C0000000000000;0000000000000000000001000000000000000000000000000000000000000000000000=0001CCCC10000000000000000000C0000000000000000000000000C00000000C0001000000000000000000000001100000000100000000000000CC00000C0;00000000010000000000000000000000000000001000000000000000000000000001000000100000000000000000010000100000000000000000000000999999999900=00=00=0B0000000000000000000000000000000000000000000000000000070000000700000000000000000000000000010000001000000100000000000000000000400400000000000CCCCCCCCCC000000700000000000000000000000440000000000004444000000000000080000000080000000080000000000000000000001110000000010100000000000", + "000000000000000000000000000000000000000000000000000000000000000000=00010000000000000000007000000000000000000000000000000700000000000007000000000000000000070000000000000C0000000000000000000000C000000000000000001000000=00000000001000100000000000000010000000000000000000000000000=00010001000010CCC0;000000000000000CC000000000007000000C00000000000000001000000000000000000000008800000=00100000000000000000000000C000000C001000000000000000000000000000001010000000000000000000000001000000001000000000000000010000001000000011111111111111111111111111111111111100000000000000000000000C00000C000000000000000000000;0C0000000C0CC000000C000000000000000000000000000000000000000000000000000040040000000C000000000000000CCCCC00000000000000000000000110000000000001111000000000000000000000000000000000000000000100000010000000000100010000000000000", + "0000000000000000000000000000000000010000000000000C000000000000=0001000100000000000000000010000000000000000000000000000001000000=00000010000000000000001CCC100000700;00000000000000CCC000000C00000C000070000001000100000010000001000100010000000000010001000000000000000000000000=0001000100010000100000C000000000000000000001CCCCCCCCCC10000000000000000000010000000000000000000000000000001001000000000000000000000000000000000100000000000000000000000000001000100000000000000000000001000000000010000000000000010000000010000010000000000000000000000000000000000010000000000000000000C0000CC000000;000000000000000000C010000;0010000CC000000;00000000000000100000010000001000000070000000007004004000C0000000000000000000000000000000070000000000000088000000000000888800000000000001000000001000000001000000100010010001000000000010001000000;000000", + "0000000000;777700000770000000077156100000000;777777770000000771665156617770000007700070000000070000;000;000;0000000070000000077177700000;77771CCCC155615661561CCCCC1665656566656656656CC665656655661CC15616651565165665515616561655166516655651165516651561C177700007000077000771556165516561556616556555665555656566656656615656555665165565566556666565650177777700000000077000770000000016515665666665655556665555656566566561000000000000000000000000000100000100000000000000000000100000000000010000000000001000000000010001000000000000000000000000000000000000170000007700071C16656656656665651177770000000077156565156661561565565656661177770000000007100000710000071CCCCCCCCCC1566CCCC65CCCC000000000000000000000000000000CCCCCCC0000007000700000000007000700000000770000000071000000071000000071CC15661566155156616556665656166615665611770000", + "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000011111111111111111111000000000000001111111111110000000000001110000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", + }; + + Jeu(UserSave , 2 , level2 , 825 , 13); + + return 1; + +} + +int Polargeist(Save * UserSave) +{ + const unsigned char * level3[]={ + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000040004000400040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000040004000400010000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000010000000000000000000000000000000000000000000000000000000000000000000000000000040004000100010000004040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004040400000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000010000000000000000000000000001000000010000000000000000000000000000000004000000000000000000000000000000000000000000040001000100000000004040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040404000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000004000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000004000004000004000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000040000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000010000000100000010000000000000000000000000000000004040000000000000000000000000000000000000000010001000000000000001040404000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000008010404040000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000001111111111000000000000000000000000000000000000000000000000000000000000000000400000440000000000000000000004000004000004000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000004400044000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000040040400400000000000000000000000000000000000000000040000000000040400000000000000000000000000000000000000000000000000000000000000000001000000000000001000000000000000000001000000000000000000000000100000000000000000000000000001000000000000000000000000000000000010000010000000000000000000000000000000004040400000000000000000000000000000000000000010000000000000000008010404040000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000080104040400000040000000000000000000400000000000000000000000000000000000000000000000000000000000000000400400000400000000000000000008888888888000000000000000000000000000000000000000000000000000000000000000000400000440000000000000000000004000004000004000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000004400044000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000040040400400000000000000000000000000000000000000000D1000000000004040000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000111111000000000000000000000000000000000104040400000000000000000000000000000000000000000000000001000000008010404000000000000000000000000000000000070C00000000000=000000000000000000000000000000000000000000000000000000000000000000000100000801040400000040000000000000000000400000000000000000000000000000000000000000000000000000000000000000400400000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000400000440000000000000000000001000001000001000000000001", + "0000000000000000000000000000000000000000000000000000000000000000000000000000000000004400044000000400000000004000000000000000000000000000400000000000000000000000000000000000000000000000000000040040400400000000000000000000000000000000000000000D1000000000001040000000000000000000000000000000000000000000000000000000000000000000\?0000000000000000000000000000001000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000080104040000000000000000000000000000000000000000000001000100001000008010400000000000000000000000000000000C0C0000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000801040000004000000000000000000D100000000000000000000000000000000000000000000000000000000000000000400400000100000000000000000000000000000007000000000000000000000000000000040000000000000000000000000000000400000110000000000000000000008000008000008000000000001", + "000000000000000000000000000000000000000000000000000000000000000000400400000000000000110001100000040000000000400000000000000000000000000D100000000000000000000000000000000000000000000000000000011111111100000000000000000000000000000000000000000D1000000000008010000000000000000000000000000000000000000000000000000000000000000000@0000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000B0000000000000000000000000000000000080104000000000000000000000000000000000000000001000100010000101000008010000000000000000000000000070C000000000000000<00010110000000000000000000000000000000000000000000000000000000000000;000000001000008010000001000000000000000000D1000000000000000000000000000000000000000000000000000000000000000001111000008000000000000000=0001111111111111E00000000000000000000000000000040000000000000000000000000000000100000880000000000000000000000000000000000000000000001", + "000000000000000000000000000000000000000000000000000000000000000000400400000000000000880008800000040000000000400000000000000000000000000D1000000000004000004000=00000000000000000000000000000000888888888000000000<0000000=0=00000000<000=;00000<00000000000000008000000000000000C00000000000000000000000000000000000000000000000000010000000000000000000000010000000000000000000000000000000000000000100000000000000000000000100000000000001000000000000000000000011111100000000=000000000000000000<000C000008010000000000000000000000000=00000=0=0001000100010001000010101000008000000000000000000000000C0C00000000000011000000010110000=000000=000000000000000000000000000000000000000000000=00010000000000100000800000080000000000000000000000000000000000;00000000000000000000000000000000000000000000000000888800000000000000000=00010001111111111111E00000000000000000000000000000040000000000000000000000000000000800000000000000000000000000001000001000001000070000001", + "0000000000000000000000000000000000000000000000000000000000=000<00040040000000000000000000000000004000700000040000000070000=000<0000=000D100000000000404000400010000000000000000000000700000000000000000000070<00000000<001110000<000000011000000000000000000C0000000000000C0000000C00000=0=040004000=00000=00000=00000=0000000000<0010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000100000000100000000<0000=0=00000000C00000800000000000000000=000<000100000111000100010001000100001010101000000000000000000000070C0000000000000000001100000001011000010000001000000<0000=000000=000000=000000000000000000010001000000000000100000000000000700<000000011000000=70000000000100000000000000000000000000000000000000000000000=0000000000010000000=000100010001100100010001E00000000007000000000000000000D100000000000000000=000000000000000000010000000000000000000=00100=00100=001000010000001", + "000000000000000000000<000000000000<00000000000000<0000=00010000000CCCC0000=000000000000000000000011111111111100000000100001000000001000000000000=000C04000C00010C000000000000000000001000000000000000000000100000000000001010000000000001100004000004000<00000C000=000<00000CC000000CC00111040004000C00000C00000C00000C000000<0000001000000000100000000000000000000000000010000000000010000000000000000000000000000000000000000000000000000000000001000000000000100000010111100010000<000000001110000000000C00000000000000000<000109999901011001010001000100010001000010101010100000000000000=000C0C0000000000000000000011000000010110000101100010110000000010000001000000100000000000=000100010001000000000000001000000001111100000110001101111111000000100010000000000<000000000<000000000000000000010000001000001000001000=0001000100010001100100010001E000007000010000<000=00700=000D100000000000000000100;0000000000100000100<000<0000000000001001001001001001001010000001", + "000000000000000000007777000000000777700000000000777777155616656656665666561770000000770007700;65666565666666656561000000071656565661000000000077165666C66565661566CC777000007700077000000070=070000000000;016565666656656101666566566566115656CCCCCCC56556656655CCC6566566656666566566551016CCCCC55666CC6556CC6656CC5666CC66566566551000000000000000000010000000000000000000000010000000000000000010000000000010000000001000000000000001000000000000000000000001000000010100156616555656656656101656556656566C000070007000099999915CCCCC6161156101566165616651566156651010101010100000700007716656656665656665666000000000;0656651511565616116561611666666661611565161165616110000007716561655156616566566656565656100000010001565661165611610000015616561556199999000099999000099999900007000007116561661665100000156165165616561656165610001100100010001E61111170000009999991111111000000000770007711165616517777000007165156199999999990000000771651651561651561651610000001", + "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000011100111111111111111111101111111111111111111111111111111111111111111111110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110001111111111111110000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", + }; + + + + + + Jeu(UserSave , 3 , level3 , 800 , 14); + + return 1; +} + + +int Jeu(Save * UserSave , int nlevel , const unsigned char ** level ,int x , int y) +{ + #include "GSprite.hpp" + + //*****************Creation des objects****************** + + Object * Cube = new Object; + switch(UserSave->UserInfo->perso) + { + case 0: Cube->GetRender()->SetRender(A_Player1 , 2 ); break; + case 1: Cube->GetRender()->SetRender(A_Player2 , 2 ); break; + case 2: Cube->GetRender()->SetRender(A_Player3 , 2 ); break; + case 3: Cube->GetRender()->SetRender(A_Player4 , 2 ); break; + case 4: Cube->GetRender()->SetRender(A_Player5 , 2 ); break; + case 5: Cube->GetRender()->SetRender(A_Player6 , 2 ); break; + case 6: Cube->GetRender()->SetRender(A_Player7 , 2 ); break; + case 7: Cube->GetRender()->SetRender(A_Player8 , 2 ); break; + + default:Cube->GetRender()->SetRender(A_Player1 , 2 ); break; + } + + + Control * Joueur = new Control; + + Cube->AffectScript(Joueur); + Joueur->UserSave = UserSave; + Joueur->nlevel = nlevel; + + //***********Creation de la map*************** + + Map Niveau; + + Niveau.SetMap(tileset , level , prop , 12 , 12 , x ,y); + + + //**************Assignation des objects************ + + Engine Game; + + Game.AddObject( Cube); + + Game.AffectMap( & Niveau); + + EngineControl EScript; + Game.AffectScript(EScript); + + Joueur->EC = &EScript; + + Game.SetType(1); + Game.Game(); + + return 1; + +} + +extern "C" +{ +int AddIn_main(int isAppli, unsigned short OptionNum) +{ + Menu(); + 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 +} diff --git a/Menu.cpp b/Menu.cpp new file mode 100644 index 0000000..17c8528 --- /dev/null +++ b/Menu.cpp @@ -0,0 +1,341 @@ + +#include "..\C-Engine\CHeader.hpp" +#include "Menu.hpp" +#include "Save.hpp" + +int StereoMadness(Save * UserSave); +int BackOnTrack(Save * UserSave); +int Polargeist(Save * UserSave); + +void Menu() +{ + Save * UserSave = new Save(); + UserSave->LoadData(); + + bool end = false; + int choix = 0; + + const unsigned char S1[]={0xff, 0x80, 0x7f, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xe0, 0x3f, 0x0, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0x0, 0x27, 0x0, 0x1f, 0x7f, 0xeb, 0xff, 0xdf, 0x7f, 0xed, 0xff, 0xdf, 0x7f, 0xee, 0xff, 0xdf, 0x7f, 0xee, 0xff, 0xdf, 0x7f, 0xed, 0xff, 0xdf, 0x7f, 0xeb, 0xff, 0xdf, 0x0, 0x27, 0x0, 0x1f, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xef, 0xbf, 0x7e, 0xff, 0xe0, 0x3f, 0x0, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0x80, 0x7f, 0xff, }; + const unsigned char S2[]={0xfe, 0x7, 0xff, 0xfe, 0xf7, 0xff, 0xc0, 0xf0, 0x3f, 0xde, 0xf7, 0xbf, 0xd0, 0x0, 0xbf, 0xd7, 0xfe, 0xbf, 0xd4, 0x62, 0xbf, 0x5, 0x6a, 0xf, 0x74, 0x62, 0xef, 0x77, 0xfe, 0xef, 0x77, 0xfe, 0xef, 0x74, 0x2, 0xef, 0x5, 0xfa, 0xf, 0xd4, 0x2, 0xbf, 0xd7, 0xfe, 0xbf, 0xd0, 0x0, 0xbf, 0xde, 0xf7, 0xbf, 0xc0, 0xf0, 0x3f, 0xfe, 0xf7, 0xff, 0xfe, 0x7, 0xff, }; + const unsigned char S3[]={0xf0, 0x7f, 0xef, 0xbf, 0xdf, 0xdf, 0xbf, 0xef, 0x70, 0x77, 0x4f, 0x97, 0x2d, 0xa7, 0x55, 0x57, 0x6a, 0xb7, 0xbd, 0xef, 0xd8, 0xdf, 0xef, 0xbf, 0xf0, 0x7f, }; + const unsigned char S4[]={0xf0, 0x7f, 0xef, 0xbf, 0xdf, 0xdf, 0xbd, 0xef, 0x78, 0xf7, 0x77, 0x77, 0x67, 0x37, 0x77, 0x77, 0x78, 0xf7, 0xbd, 0xef, 0xdf, 0xdf, 0xef, 0xbf, 0xf0, 0x7f, }; + const unsigned char S5[]={0xf0, 0x7f, 0xef, 0xbf, 0xdf, 0xdf, 0xbf, 0xef, 0x67, 0x97, 0x64, 0x97, 0x64, 0x97, 0x64, 0x97, 0x64, 0x97, 0xa4, 0x8f, 0xdf, 0xdf, 0xef, 0xbf, 0xf0, 0x7f, }; + const unsigned char S6[]={0xf0, 0x7f, 0xef, 0xbf, 0xdf, 0xdf, 0xbf, 0x6f, 0x7c, 0x77, 0x7b, 0x77, 0x7b, 0x77, 0x7a, 0x77, 0x72, 0x77, 0xb3, 0xef, 0xdf, 0xdf, 0xef, 0xbf, 0xf0, 0x7f, }; + const unsigned char S7[]={0xfe, 0x7, 0xff, 0xfe, 0xf7, 0xff, 0xc0, 0xf0, 0x3f, 0xde, 0xf7, 0xbf, 0xd0, 0x0, 0xbf, 0xd7, 0xfe, 0xbf, 0xd6, 0x6, 0xbf, 0x4, 0x1e, 0xf, 0x74, 0x7e, 0xef, 0x74, 0xfe, 0xef, 0x74, 0xfe, 0xef, 0x74, 0x76, 0xef, 0x4, 0x26, 0xf, 0xd6, 0x6, 0xbf, 0xd7, 0xfe, 0xbf, 0xd0, 0x0, 0xbf, 0xde, 0xf7, 0xbf, 0xc0, 0xf0, 0x3f, 0xfe, 0xf7, 0xff, 0xfe, 0x7, 0xff, }; + + const unsigned char N1[]={0x0, 0x7f, 0x80, 0x1f, 0x0, 0x7f, 0x80, 0x1f, 0x0, 0x7f, 0x80, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 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, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0x1f, 0x0, 0x7f, 0x80, 0x1f, 0x0, 0x7f, 0x80, 0x1f, 0x0, 0x7f, 0x80, 0x1f, }; + const unsigned char N2[]={0x1, 0xf8, 0xf, 0x1, 0xf8, 0xf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0xcf, 0x1, 0xf8, 0xf, 0x1, 0xf8, 0xf, }; + const unsigned char N3[]={0xf, 0x87, 0x1f, 0xc7, 0x3f, 0xe7, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf7, 0x3f, 0xe7, 0x1f, 0xc7, 0xf, 0x87, }; + + const unsigned char smenu[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1, 0xe7, 0x88, 0xc7, 0xbe, 0x70, 0x80, 0x1f, 0x1c, 0x71, 0x20, 0x0, 0x0, 0x0, 0x0, 0x3, 0x33, 0xd, 0xdd, 0xec, 0x18, 0xd9, 0xd0, 0xd, 0xb6, 0xc1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x33, 0xcc, 0xdf, 0x6f, 0x18, 0xf9, 0xf0, 0xd, 0xb6, 0xc1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x33, 0xc, 0xdb, 0x6c, 0x18, 0xf0, 0xf0, 0xd, 0xbe, 0xf9, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xf3, 0x47, 0xd9, 0x6d, 0x18, 0xd8, 0x70, 0xd, 0xbe, 0x19, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd1, 0xc3, 0x90, 0x67, 0x8, 0xc9, 0xf0, 0xf, 0x36, 0x19, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x40, 0x0, 0x40, 0xe0, 0x6, 0x10, 0x30, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x1, 0xfc, 0xf, 0xf0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x0, 0x1, 0x4, 0x8, 0x10, 0x0, 0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x87, 0xe0, 0x1, 0x4, 0x8, 0x10, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x84, 0x20, 0x1, 0x4, 0x8, 0x10, 0x1, 0x8, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0xff, 0xa0, 0x1, 0x4, 0x8, 0x10, 0x1, 0x7f, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0xa0, 0x1, 0x4, 0x8, 0x10, 0x1, 0x40, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0xce, 0xa0, 0xf, 0xfd, 0x8f, 0xfe, 0x1, 0x4f, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x4a, 0xf8, 0x8, 0x1, 0x40, 0x2, 0x7, 0xdf, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0xce, 0x88, 0x8, 0x1, 0x20, 0x2, 0x4, 0x5c, 0x8, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x0, 0x88, 0x8, 0x1, 0x10, 0x2, 0x4, 0x58, 0x8, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x0, 0x88, 0x8, 0x1, 0x10, 0x2, 0x4, 0x58, 0x8, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0xfe, 0x88, 0x8, 0x1, 0x20, 0x2, 0x4, 0x5c, 0x48, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x2, 0xf8, 0x8, 0x1, 0x40, 0x2, 0x7, 0xde, 0xcf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0xfe, 0xa0, 0xf, 0xfd, 0x8f, 0xfe, 0x1, 0x4f, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0xa0, 0x1, 0x4, 0x8, 0x10, 0x1, 0x40, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0xff, 0xa0, 0x1, 0x4, 0x8, 0x10, 0x1, 0x7f, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x84, 0x20, 0x1, 0x4, 0x8, 0x10, 0x1, 0x8, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x87, 0xe0, 0x1, 0x4, 0x8, 0x10, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x0, 0x1, 0x4, 0x8, 0x10, 0x0, 0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x1, 0x4, 0x8, 0x10, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xfc, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x40, 0x0, 0x40, 0x40, 0x0, 0x40, 0x40, 0x0, 0x40, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x20, 0x0, 0x84, 0x20, 0x0, 0x80, 0x20, 0x0, 0x81, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1f, 0x10, 0x1, 0xe, 0x10, 0x1, 0x30, 0xd0, 0x1, 0x7, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x60, 0xd0, 0x1, 0x11, 0x10, 0x1, 0x36, 0xd0, 0x1, 0x9, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa4, 0xb0, 0x1, 0x31, 0x90, 0x1, 0x36, 0xd0, 0x1, 0x9, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x55, 0x50, 0x1, 0x11, 0x10, 0x1, 0x36, 0xd0, 0x1, 0xb, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2a, 0x90, 0x1, 0xe, 0x10, 0x1, 0x36, 0xd0, 0x1, 0x1b, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x20, 0x0, 0x84, 0x20, 0x0, 0xb6, 0xe0, 0x0, 0x98, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x40, 0x0, 0x40, 0x40, 0x0, 0x40, 0x40, 0x0, 0x40, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x20, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + + + Sleep(200); + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + ML_bmp_or(smenu , 0 ,0 , 128 , 64); + + if(input_any_key()) + { + if(input_trigger(K_RIGHT))choix ++; + if(input_trigger(K_LEFT))choix --; + + if(input_trigger(K_EXIT)) + { + UserSave->SaveData(); + delete UserSave; + return; + } + + if(choix < 0)choix = 6; + if(choix > 6)choix = 0; + + + if(input_trigger(K_EXE) || input_trigger(K_SHIFT)) + { + switch(choix) + { + case 0: SelectLevel(UserSave); break; + case 1: Credit(); break; + case 2: break; + case 3: break; + case 4: Info(UserSave); break; + case 5: Music();break; + case 6: SelectCube(UserSave); break; + } + } + } + + switch(choix) + { + case 0: ML_bmp_or(N1 , 52,17 , 27 ,27); ML_bmp_and(S1 , 52,17 , 27 ,27); break; + case 1: ML_bmp_or(N2 , 85,20 , 20 ,20); ML_bmp_and(S7 , 85,20 , 20 ,20); break; + case 2: ML_bmp_or(N3 , 23,50 , 13 ,13); ML_bmp_and(S3 , 23,50 , 13 ,13); break; + case 3: ML_bmp_or(N3 , 47,50 , 13 ,13); ML_bmp_and(S4 , 47,50 , 13 ,13); break; + case 4: ML_bmp_or(N3 , 71,50 , 13 ,13); ML_bmp_and(S5 , 71,50 , 13 ,13); break; + case 5: ML_bmp_or(N3 , 95,50 , 13 ,13); ML_bmp_and(S6 , 95,50 , 13 ,13); break; + case 6: ML_bmp_or(N2 , 25,20 , 20 ,20); ML_bmp_and(S2 , 25,20 , 20 ,20); break; + } + + ML_display_vram(); + } + +} + +void SelectLevel(Save * UserSave) +{ + bool end = false; + int choix = 0; + + const unsigned char sns[]={0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x20, 0x4, 0x0, 0x0, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x20, 0x4, 0x0, 0x0, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x20, 0x4, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0xc0, 0x2, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x3, 0x0, 0x1, 0x40, 0x2, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x80, 0x2, 0x40, 0x2, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x40, 0x4, 0x40, 0x2, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x20, 0x8, 0x40, 0x2, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x10, 0x10, 0x40, 0x2, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x8, 0x8, 0x40, 0x2, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x10, 0x4, 0x40, 0x2, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x20, 0x2, 0x40, 0x2, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x40, 0x1, 0x40, 0x2, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x2, 0x80, 0x0, 0xc0, 0x2, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x3, 0x0, 0x0, 0x0, 0x2, 0xc, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc, 0x30, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x92, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x92, 0x48, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc, 0x30, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x10, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x8, 0x10, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x8, 0x10, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x8, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc, 0x30, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0x8, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x92, 0x49, 0x20, 0x0, 0x0, 0x0, 0x0, 0xf, 0x10, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc, 0x30, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x10, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x10, }; + + const unsigned char Smiley1[]={0x7, 0xc1, 0x18, 0x31, 0x20, 0x9, 0x40, 0x5, 0x4c, 0xc5, 0x8c, 0xc3, 0x8c, 0xc3, 0x8c, 0xc3, 0x80, 0x3, 0x8f, 0xe3, 0x48, 0x25, 0x47, 0xc5, 0x20, 0x9, 0x18, 0x31, 0x7, 0xc1, }; + const unsigned char Smiley2[]={0x7, 0xc1, 0x18, 0x31, 0x20, 0x9, 0x40, 0x5, 0x4c, 0xc5, 0x8c, 0xc3, 0x8c, 0xc3, 0x8c, 0xc3, 0x80, 0x3, 0x80, 0x3, 0x48, 0x25, 0x47, 0xc5, 0x20, 0x9, 0x18, 0x31, 0x7, 0xc1, }; + const unsigned char Smiley3[]={0x7, 0xc1, 0x18, 0x31, 0x20, 0x9, 0x40, 0x5, 0x4c, 0xc5, 0x8c, 0xc3, 0x8c, 0xc3, 0x88, 0x83, 0x80, 0x3, 0x80, 0x3, 0x40, 0x5, 0x4f, 0xc5, 0x20, 0x9, 0x18, 0x31, 0x7, 0xc1, }; + const unsigned char Smiley4[]={0x7, 0xc1, 0x18, 0x31, 0x20, 0x9, 0x40, 0x5, 0x46, 0xc5, 0x86, 0xc3, 0x86, 0xc3, 0x82, 0x83, 0x80, 0x3, 0x80, 0x3, 0x43, 0x85, 0x44, 0x45, 0x20, 0x9, 0x18, 0x31, 0x7, 0xc1, }; + const unsigned char Smiley5[]={0x7, 0xc1, 0x18, 0x31, 0x20, 0x9, 0x46, 0xc5, 0x46, 0xc5, 0x86, 0xc3, 0x82, 0x83, 0x80, 0x3, 0x80, 0x3, 0x83, 0x83, 0x44, 0x45, 0x47, 0xc5, 0x20, 0x9, 0x18, 0x31, 0x7, 0xc1, }; + + + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + ML_bmp_or(sns , 0 ,0 , 128 , 64); + if(choix == 3)ML_rectangle(20,10,110,58,1,ML_WHITE , ML_WHITE); + + if(input_any_key()) + { + if(input_trigger(K_RIGHT))choix ++; + if(input_trigger(K_LEFT))choix --; + + if(input_trigger(K_EXIT))return; + + if(choix < 0)choix = 3; + if(choix > 3)choix = 0; + + + if(input_trigger(K_EXE)|| input_trigger(K_SHIFT)) + { + switch(choix) + { + case 0: StereoMadness(UserSave); break; + case 1: BackOnTrack(UserSave); break; + case 2: Polargeist(UserSave); break; + case 3: break; + } + + + } + } + + switch(choix) + { + case 0: + PrintMini(44,20,"Stereo Madness",0); + ML_bmp_or(Smiley1 , 25, 17, 15, 15); + ML_line(24,47,24 + UserSave->TabLevel[choix]->normalprogress * 76 / 100,47, ML_BLACK); + ML_line(24,57,24 + UserSave->TabLevel[choix]->practiseprogress * 76 / 100,57, ML_BLACK); + ML_line(54,61,56,61, ML_BLACK); PrintV(58,40,UserSave->TabLevel[choix]->normalprogress); + PrintV(58,50,UserSave->TabLevel[choix]->practiseprogress); + break; + case 1: + PrintMini(44,20,"Back On Track",0); + ML_bmp_or(Smiley3 , 25, 17, 15, 15); + ML_line(24,47,24 + UserSave->TabLevel[choix]->normalprogress * 76 / 100,47, ML_BLACK); + ML_line(24,57,24 + UserSave->TabLevel[choix]->practiseprogress * 76 / 100,57, ML_BLACK); + ML_line(60,61,62,61, ML_BLACK); PrintV(58,40,UserSave->TabLevel[choix]->normalprogress); + PrintV(58,50,UserSave->TabLevel[choix]->practiseprogress); + break; + case 2: + PrintMini(44,20,"Polargeist",0); + ML_bmp_or(Smiley5 , 25, 17, 15, 15); + /*ML_line(24,47,24 + UserSave->TabLevel[choix]->normalprogress * 76 / 100,47, ML_BLACK); + ML_line(24,57,24 + UserSave->TabLevel[choix]->practiseprogress * 76 / 100,57, ML_BLACK); + ML_line(66,61,68,61, ML_BLACK); PrintV(58,40,UserSave->TabLevel[choix]->normalprogress); + PrintV(58,50,UserSave->TabLevel[choix]->practiseprogress);*/ + break; + case 3: + PrintMini(44,20,"Coming Soon",0); + ML_line(72,61,74,61, ML_BLACK);break; + } + + ML_display_vram(); + } +} + +void SelectCube(Save * UserSave) +{ + bool end = false; + int choix = 0; + + const unsigned char ssc[]={0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x10, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x10, 0x8, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x10, 0xf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x8, 0x10, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x8, 0xf0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x20, 0xf, 0x21, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x22, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x7, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x7f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0xc0, 0x60, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x81, 0x40, 0x50, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x42, 0x40, 0x48, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x24, 0x40, 0x44, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x18, 0x40, 0x43, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x18, 0x40, 0x43, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x24, 0x40, 0x44, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x42, 0x40, 0x48, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x81, 0x40, 0x50, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0xc0, 0x60, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x7f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + + const unsigned char ss[]={0x40, 0x2, 0xc0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x3, 0x40, 0x2, }; + + const unsigned char P1[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x9f, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x90, 0x9f, 0x9f, 0x9f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P2[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0xbf, 0xdf, 0xa0, 0x5f, 0xef, 0x7f, 0x9, 0xf, 0xf9, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P3[]={0xff, 0xff, 0x80, 0x1f, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0xbf, 0xdf, 0xa0, 0x5f, 0xbf, 0xdf, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P4[]={0xff, 0xff, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xb9, 0xdf, 0x80, 0x1f, 0xb9, 0xdf, 0xef, 0x7f, 0x0, 0xf, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xff, }; + const unsigned char P5[]={0xff, 0xff, 0x80, 0x1f, 0x9f, 0x9f, 0x90, 0x9f, 0x9f, 0x9f, 0x80, 0x1f, 0x80, 0x1f, 0xb9, 0xdf, 0xa9, 0x5f, 0xa9, 0x5f, 0xa9, 0x5f, 0xef, 0x7f, }; + const unsigned char P6[]={0xff, 0xff, 0x80, 0x1f, 0x8f, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x8f, 0x1f, 0xe0, 0x7f, 0x20, 0x4f, 0x20, 0x4f, 0x3f, 0xcf, }; + const unsigned char P7[]={0xf9, 0xff, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x8f, 0x1f, 0x80, 0x1f, 0x80, 0x1f, 0x8f, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0x89, 0x1f, 0xf9, 0xff, }; + const unsigned char P8[]={0x7f, 0xef, 0xc0, 0x3f, 0x80, 0x1f, 0x83, 0xdf, 0xba, 0x5f, 0xaa, 0x5f, 0xbb, 0xdf, 0x80, 0x1f, 0xe0, 0x7f, 0x2f, 0x4f, 0x29, 0x4f, 0x39, 0xcf, }; + + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + ML_bmp_or(ssc , 0 ,0 , 128 , 64); + + ML_bmp_or(P1,21,27,12,12); + ML_bmp_or(P2,40,27,12,12); + ML_bmp_or(P3,59,27,12,12); + ML_bmp_or(P4,78,27,12,12); + ML_bmp_or(P5,97,27,12,12); + ML_bmp_or(P6,21,44,12,12); + ML_bmp_or(P7,40,44,12,12); + ML_bmp_or(P8,59,44,12,12); + + switch(UserSave->UserInfo->perso) + { + case 0: ML_bmp_or(P1,57,8,12,12); break; + case 1: ML_bmp_or(P2,57,8,12,12); break; + case 2: ML_bmp_or(P3,57,8,12,12); break; + case 3: ML_bmp_or(P4,57,8,12,12); break; + case 4: ML_bmp_or(P5,57,8,12,12); break; + case 5: ML_bmp_or(P6,57,8,12,12); break; + case 6: ML_bmp_or(P7,57,8,12,12); break; + case 7: ML_bmp_or(P8,57,8,12,12); break; + } + + if(input_any_key()) + { + if(input_trigger(K_RIGHT))choix ++; + if(input_trigger(K_LEFT))choix --; + if(input_trigger(K_UP))choix -= 5; + if(input_trigger(K_DOWN))choix += 5; + + if(input_trigger(K_EXIT))return; + + if(choix < 0)choix = 9; + if(choix > 9)choix = 0; + + + if(input_trigger(K_EXE)|| input_trigger(K_SHIFT)) + { + switch(choix) + { + case 0: UserSave->UserInfo->perso = 0; break; + case 1: UserSave->UserInfo->perso = 1; break; + case 2: UserSave->UserInfo->perso = 2; break; + case 3: UserSave->UserInfo->perso = 3; break; + case 4: UserSave->UserInfo->perso = 4; break; + case 5: UserSave->UserInfo->perso = 5; break; + case 6: UserSave->UserInfo->perso = 6; break; + case 7: UserSave->UserInfo->perso = 7; break; + case 8: break; + case 9: break; + } + } + } + + switch(choix) + { + case 0:ML_bmp_or(ss , 19 , 25 , 16 , 16); break; + case 1:ML_bmp_or(ss , 38 , 25 , 16 , 16); break; + case 2:ML_bmp_or(ss , 57 , 25 , 16 , 16); break; + case 3:ML_bmp_or(ss , 76 , 25 , 16 , 16); break; + case 4:ML_bmp_or(ss , 95 , 25 , 16 , 16); break; + case 5:ML_bmp_or(ss , 19 , 42 , 16 , 16); break; + case 6:ML_bmp_or(ss , 38 , 42 , 16 , 16); break; + case 7:ML_bmp_or(ss , 57 , 42 , 16 , 16); break; + case 8:ML_bmp_or(ss , 76 , 42 , 16 , 16); break; + case 9:ML_bmp_or(ss , 95 , 42 , 16 , 16); break; + } + + ML_display_vram(); + } +} + +void Info(Save * UserSave) +{ + const unsigned char sinfo[]={0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x1, 0xe7, 0xcf, 0x3e, 0x78, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x1, 0x1, 0x9, 0x8, 0x40, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x1, 0x1, 0x9, 0x8, 0x40, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x1, 0xe1, 0xf, 0x8, 0x78, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x21, 0x9, 0x8, 0x8, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x21, 0x9, 0x8, 0x8, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x1, 0xe1, 0x9, 0x8, 0x78, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x1c, 0x9d, 0xd0, 0x3a, 0xab, 0x80, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x12, 0xba, 0x90, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0xd0, 0x12, 0xab, 0x80, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x12, 0xaa, 0x10, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x8, 0x89, 0x5c, 0x33, 0xaa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x1c, 0x9d, 0xd0, 0x3b, 0xbb, 0xab, 0xbb, 0x80, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x29, 0x12, 0x3a, 0x92, 0x10, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0xd0, 0x39, 0x13, 0x2b, 0x93, 0x80, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x29, 0x12, 0x2a, 0x10, 0x90, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x8, 0x89, 0x5c, 0x29, 0x13, 0xaa, 0x13, 0x80, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x1c, 0x9d, 0xd0, 0x39, 0x2b, 0x80, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x10, 0x3a, 0x10, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0xd0, 0x11, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x49, 0x50, 0x11, 0x2a, 0x10, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x8, 0x89, 0x5c, 0x11, 0x2b, 0x80, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + + ML_clear_vram(); + + ML_bmp_or(sinfo,0,0,127,63); + + PrintV(71,26,UserSave->UserInfo->nbjump); + PrintV(86,35,UserSave->UserInfo->nbattemp); + PrintV(71,44,UserSave->UserInfo->nbtime); + + ML_display_vram(); + + while(!input_trigger(K_EXIT)) + { + input_update(); + } +} + +void Music() +{ + const unsigned char smusic[]={0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x10, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x3, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + + ML_clear_vram(); + ML_bmp_or(smusic,0,0,127,63); + PrintMini(48,10,"Youtube",0); + PrintMini(52,22,"Fife86",0); + PrintMini(32,40,"Pour + de videos",0); + + + ML_display_vram(); + + while(!input_trigger(K_EXIT)) + { + input_update(); + } +} + +void Credit() +{ + bool cinematic = true; + + int time = 0; + int texty = 50; + + while(cinematic == true) + { + input_update(); + + if(input_trigger(K_EXIT))return; + + time ++; + texty --; + if(time > 130) cinematic = false; + + ML_clear_vram(); + + PrintXY(40,texty, "Credits:",0); + PrintMini(20,texty + 25, "Cree par Fife86",0); + PrintMini(40,texty + 40, "Designs :",0); + PrintMini(20,texty + 50, "Fife86",0); + PrintMini(20,texty + 60, "Casio-Jawa",0); + PrintMini(20,texty + 70, "Lephenixnoir",0); + + ML_display_vram(); + + Sleep(75); + } + +} diff --git a/Menu.hpp b/Menu.hpp new file mode 100644 index 0000000..5fd8509 --- /dev/null +++ b/Menu.hpp @@ -0,0 +1,15 @@ +#ifndef MENU +#define MENU + +#include "..\C-Engine\CHeader.hpp" +#include "Save.hpp" + +void Menu(); + +void SelectLevel(Save * UserSave); +void Info(Save * UserSave); +void SelectCube(Save * UserSave); +void Credit(); +void Music(); + +#endif diff --git a/Save.cpp b/Save.cpp new file mode 100644 index 0000000..bf1611a --- /dev/null +++ b/Save.cpp @@ -0,0 +1,97 @@ +#include "..\C-Engine\CHeader.hpp" + +#include "Save.hpp" + +extern "C" +{ +#include "Memory/memory.h" +} + +Save::Save() +{ + nblevel = 3; + UserInfo = NULL; + TabLevel = NULL; + data = NULL; + lenght = 0; +} + +Save::~Save() +{ + delete data; + delete UserInfo; + for(int i = 0 ; i < nblevel ; i++) + { + delete TabLevel[i]; + } + delete TabLevel; +} + +void Save::LoadData() +{ + UserInfo = new Info; + TabLevel = new Level*[nblevel]; + + for(int i = 0 ; i < nblevel ; i++) + { + TabLevel[i] = new Level; + } + + if(memory_exists("\\\\fls0\\Dash.sav")) + { + data = (int*)memory_load("\\\\fls0\\Dash.sav"); + UserInfo->nbattemp = data[0]; + UserInfo->nbjump = data[1]; + UserInfo->nbtime = data[2]; + UserInfo->completlevel = data[3]; + UserInfo->perso = data[4]; + + for(int i = 0 ; i < nblevel ; i++) + { + TabLevel[i]->normalprogress = data[5 + i * 2]; + TabLevel[i]->practiseprogress = data[6 + i * 2]; + } + + free(data); + } + else + { + UserInfo->nbattemp = 0; + UserInfo->nbjump = 0; + UserInfo->nbtime = 0; + UserInfo->completlevel = 0; + UserInfo->perso = 0; + + for(int i = 0 ; i < nblevel ; i++) + { + TabLevel[i]->normalprogress = 0; + TabLevel[i]->practiseprogress = 0; + } + + } +} + +void Save::SaveData() +{ + //Encapssulation des données. + lenght = 5 + nblevel * 2; + + data = new int[lenght]; + data[0] = UserInfo->nbattemp; + data[1] = UserInfo->nbjump; + data[2] = UserInfo->nbtime; + data[3] = UserInfo->completlevel; + data[4] = UserInfo->perso; + + for(int i = 0 ; i < nblevel ; i++) + { + data[5 + i * 2] = TabLevel[i]->normalprogress; + data[6 + i * 2] = TabLevel[i]->practiseprogress; + } + + //fin de l'encapssulation. + + int error = memory_save("\\\\fls0\\Dash.sav",data,lenght * sizeof (int)); //Sauvegarde + + delete data; +} diff --git a/Save.hpp b/Save.hpp new file mode 100644 index 0000000..7c152c6 --- /dev/null +++ b/Save.hpp @@ -0,0 +1,45 @@ +#ifndef SAVE +#define SAVE + +struct Level; +struct Info; + +class Save +{ + public: + + Save(); + ~Save(); + void LoadData(); + void SaveData(); + + Level ** TabLevel; + Info * UserInfo; + + int * data; + int lenght; + + int nblevel; +}; + +class Level +{ + public: + + int normalprogress; + int practiseprogress; +}; + +class Info +{ + public: + + int nbattemp; + int nbjump; + int nbtime; + int completlevel; + int perso; +}; + + +#endif