From 20fcc83f04e4363add6e159f1712e186f6417798 Mon Sep 17 00:00:00 2001 From: Fife Date: Sat, 30 Apr 2016 13:46:05 +0200 Subject: [PATCH] First commit --- GUI.cpp | 213 ++++++++++++++++++++++++ GUI.hpp | 28 ++++ IA_Monstre.cpp | 72 ++++++++ IA_Monstre.hpp | 48 ++++++ Kirby.cpp | 216 ++++++++++++++++++++++++ Script_Control.cpp | 397 +++++++++++++++++++++++++++++++++++++++++++++ Script_Control.hpp | 66 ++++++++ Sprite.hpp | 273 +++++++++++++++++++++++++++++++ 8 files changed, 1313 insertions(+) create mode 100644 GUI.cpp create mode 100644 GUI.hpp create mode 100644 IA_Monstre.cpp create mode 100644 IA_Monstre.hpp create mode 100644 Kirby.cpp create mode 100644 Script_Control.cpp create mode 100644 Script_Control.hpp create mode 100644 Sprite.hpp diff --git a/GUI.cpp b/GUI.cpp new file mode 100644 index 0000000..8c655df --- /dev/null +++ b/GUI.cpp @@ -0,0 +1,213 @@ + +#include "GUI.hpp" + +extern "C" +{ +#include +} + +void Script_GUI::Start() +{ + + vie = 6; + restart = 4; + score = 0; + +} + +void Script_GUI::Update() +{ + ML_rectangle(0,57,127,63,1,ML_WHITE,ML_WHITE); + + const unsigned char SVie[]={0x77, 0x8f, 0x8f, 0x77, }; + const unsigned char Keby[]={0x3e, 0x0, 0x41, 0x11, 0x80, 0x8a, 0xa4, 0x84, 0xa4, 0x8a, 0x41, 0x51, 0xff, 0xc0, }; + + int position; + + if(score >99999) position = 12; + else if(score >9999) position = 16; + else if(score >999) position = 20; + else if(score >99) position = 24; + else if(score >9) position = 28; + else position = 32; + + PrintMini(1,58,"Sc:",0); + PrintV(position,58,score); + + PrintMini(39,58,"Kirby",0); + + if(vie > 0)ML_bmp_or(SVie , 62 , 59 , 5 , 4); + if(vie > 1)ML_bmp_or(SVie , 68 , 59 , 5 , 4); + if(vie > 2)ML_bmp_or(SVie , 74 , 59 , 5 , 4); + if(vie > 3)ML_bmp_or(SVie , 80 , 59 , 5 , 4); + if(vie > 4)ML_bmp_or(SVie , 86 , 59 , 5 , 4); + if(vie > 5)ML_bmp_or(SVie , 92 , 59 , 5 , 4); + + if(vie < 1)ML_rectangle(63,60,65,61, 1 , ML_BLACK , ML_BLACK); + if(vie < 2)ML_rectangle(69,60,71,61, 1 , ML_BLACK , ML_BLACK); + if(vie < 3)ML_rectangle(75,60,77,61, 1 , ML_BLACK , ML_BLACK); + if(vie < 4)ML_rectangle(81,60,83,61, 1 , ML_BLACK , ML_BLACK); + if(vie < 5)ML_rectangle(87,60,89,61, 1 , ML_BLACK , ML_BLACK); + if(vie < 6)ML_rectangle(93,60,95,61, 1 , ML_BLACK , ML_BLACK); + + + ML_bmp_or(Keby , 102 , 57 , 16 , 7); + + PrintV(122 , 58 , restart); + + if(input_press(K_EXIT))GetEngine()->StopGame(); + if(input_press(K_ALPHA))GetEngine()->ShowFps(); +} + + +void Script_GUI::DelVie(int v) +{ + vie -= v; + + if(vie <= 0) + { + Lose(); + vie = 6; + } +} + +void Script_GUI::AddScore(int v) +{ + if(v > 0)score += v; +} + +void Script_GUI::Lose() +{ + bool cinematic = true; + + int y = GetEngine()->ListeObject[0]->OTransforms->GetY(); + + float force = 4.5; + + GetEngine()->ListeObject[0]->ORender->SetIt(11); + + ML_clear_vram(); + + GetEngine()->gamemap->AfficherMap(); + GetEngine()->ListeObject[0]->OTransforms->SetY(y); + GetEngine()->UpdateRelativePosition(); + GetEngine()->ListeObject[0]->ORender->DrawObject(); + this->Update(); + + ML_display_vram(); + + Sleep(400); + + while(cinematic == true) + { + + y += force; + force -= 0.25; + + ML_clear_vram(); + + if(y < -16) cinematic = false; + + GetEngine()->gamemap->AfficherMap(); + + GetEngine()->ListeObject[0]->OTransforms->SetY(y); + + GetEngine()->UpdateRelativePosition(); + + GetEngine()->ListeObject[0]->ORender->DrawObject(); + this->Update(); + + ML_display_vram(); + + Sleep(25); + } + + restart --; + + if(restart <= 0) + { + TryAgain(); + } + + GetEngine()->ListeObject[0]->OTransforms->SetXY(0, 17); +} + +void Script_GUI::TryAgain() +{ + bool end = false; + int choix = 0; + + float b; + + const unsigned char Pointeur[]={0x3, 0x80, 0x1f, 0x4, 0x40, 0x1f, 0x4, 0x40, 0x1f, 0x8, 0x80, 0x1f, 0x30, 0xff, 0xdf, 0x40, 0x0, 0x3f, 0x81, 0xf0, 0x3f, 0x82, 0xf, 0xdf, 0x82, 0x8, 0x1f, 0x82, 0x8, 0x1f, 0x41, 0xf0, 0x1f, 0x42, 0x8, 0x1f, 0x3a, 0x8, 0x1f, 0x1, 0xf0, 0x1f, }; + + const unsigned char Bulle[]={0x30, 0x3f, 0x48, 0x3f, 0x84, 0x3f, 0x84, 0x3f, 0x48, 0x3f, 0x30, 0x3f, 0x0, 0x3f, 0x1, 0xbf, 0x2, 0x7f, 0x2, 0x7f, 0x1, 0xbf, }; + const unsigned char KS1[]={0x3, 0xe0, 0x7f, 0xc, 0x18, 0x7f, 0x10, 0x4, 0x7f, 0x20, 0x2, 0x7f, 0x20, 0x2, 0x7f, 0x40, 0x1, 0x7f, 0x44, 0x61, 0x7f, 0x42, 0x81, 0x7f, 0xc0, 0x3, 0x7f, 0xa1, 0x4, 0xff, 0x91, 0x8, 0xff, 0x88, 0x10, 0xff, 0x85, 0x31, 0x7f, 0x7a, 0xde, 0x7f, }; + const unsigned char KS2[]={0x0, 0x0, 0x7f, 0x3, 0xe0, 0x7f, 0xc, 0x18, 0x7f, 0x10, 0x4, 0x7f, 0x20, 0x2, 0x7f, 0x20, 0x2, 0x7f, 0x40, 0x1, 0x7f, 0x44, 0x61, 0x7f, 0x42, 0x83, 0x7f, 0xa0, 0x4, 0xff, 0x91, 0x8, 0xff, 0x88, 0x10, 0xff, 0x8c, 0x31, 0x7f, 0x77, 0xde, 0x7f, }; + + Sprite S_Kirby_Sleep1(KS1, 17 , 14 ); + Sprite S_Kirby_Sleep2(KS2, 17 , 14 ); + + Sprite S_Kirby_Sleep[]={ S_Kirby_Sleep1 , S_Kirby_Sleep2}; + + Animation A_Sleep(S_Kirby_Sleep , 2 , 750); + + ML_clear_vram(); + PrintXY(35,25,"GAME OVER",0); + ML_display_vram(); + + Sleep(1500); + + b = -15; + + while(end == false) + { + ML_clear_vram(); + + input_update(); + + PrintXY( 20 , 5 , "Kirby's DreamLand" , 0); + PrintXY( 35 , 25 , "Continue" , 0); + PrintXY( 35 , 35 , "End" , 0); + + A_Sleep.DrawAnim( 95 , 45 , 0); + if( b > 0) ML_bmp_or( Bulle , 90 - b , 44 - b , 10 ,11 ); + + b += 0.1; if( b > 10) b = -15; + + + if(input_any_key()) + { + if(input_trigger(K_DOWN))choix ++; + if(input_trigger(K_UP))choix --; + + if(choix < 0)choix = 0; + if(choix > 1)choix = 1; + + if(input_trigger(K_EXE))end = true; + } + + switch(choix) + { + case 0: ML_bmp_or(Pointeur , 8 , 22 , 19 , 14); break; + case 1: ML_bmp_or(Pointeur , 8 , 32 , 19 , 14); break; + } + + + ML_display_vram(); + + Sleep(10); + } + + if(choix == 0) + { + this->restart = 4; + score = score / 2 ; + } + + if(choix == 1) + { + GetEngine()->StopGame(); + } + +} diff --git a/GUI.hpp b/GUI.hpp new file mode 100644 index 0000000..598ff0e --- /dev/null +++ b/GUI.hpp @@ -0,0 +1,28 @@ +#ifndef GUI +#define GUI + +#include "..\C-Engine\CHeader.hpp" + +class Script_GUI: public Script +{ + public: + + void Start(); + void Update(); + + void DelVie(int v); + void AddScore(int v); + + void Lose(); + void TryAgain(); + + private: + + int score;//Sc: 0 + int vie;//Nb de vie + int restart;//Restart * 4 + +}; + + +#endif diff --git a/IA_Monstre.cpp b/IA_Monstre.cpp new file mode 100644 index 0000000..f2299c4 --- /dev/null +++ b/IA_Monstre.cpp @@ -0,0 +1,72 @@ + +#include "IA_Monstre.hpp" + + +void IaOurs::Start() +{ + direction = true; +} + +void IaOurs::UpdateEverySecond() +{ + if(direction == true) direction = false; + else direction = true; +} + +void IaOurs::Update() +{ + GetObject()->ORender->ReverseRender( direction); + if(direction == true)Move( -1 , 0 ); + else Move( 1 , 0 ); +} + + +void IaPiaf::Start() +{ + GetObject()->ORender->ReverseRender(true); + + couldown = 0; +} + +void IaPiaf::Update() +{ + if( GetObject()->ORigibody->CollisionDecor( GetX() , (GetY() - 1 )) == 1) + SetIt(0); + else + SetIt(1); +} + +void IaPiaf::UpdateEverySecond() +{ + if( GetObject()->ORigibody->CollisionDecor( GetX() , (GetY() - 1 )) == 1 && couldown == 0) + { + GetObject()->ORigibody->R_body.velocity.y = 25; + } + + couldown ++; + + if(couldown > 3)couldown = 0; +} + +void IaChamp::Start() +{ + time = 0; +} + +void IaChamp::Update() +{ + time ++; + + if(time > 50) + { + if(direction == true) direction = false; + else direction = true; + + GetObject()->ORigibody->R_body.velocity.y = 20; + + time = 0; + } + + GetObject()->ORender->ReverseRender(direction); +} + diff --git a/IA_Monstre.hpp b/IA_Monstre.hpp new file mode 100644 index 0000000..0cec29b --- /dev/null +++ b/IA_Monstre.hpp @@ -0,0 +1,48 @@ +#ifndef IAMONSTRE +#define IAMONSTRE + +#include "..\C-Engine\CHeader.hpp" + +// Mob script + +class IaOurs: public Script +{ + public: + + void Start(); + void Update(); + void UpdateEverySecond(); + + private: + + bool direction; +}; + + +class IaPiaf: public Script +{ + public: + + void Start(); + void Update(); + void UpdateEverySecond(); + + private: + + int couldown; +}; + + +class IaChamp: public Script +{ + public: + void Start(); + void Update(); + + private: + + int time; + bool direction; +}; + +#endif diff --git a/Kirby.cpp b/Kirby.cpp new file mode 100644 index 0000000..77947e7 --- /dev/null +++ b/Kirby.cpp @@ -0,0 +1,216 @@ + +#include "..\C-Engine\CHeader.hpp" + +#include "Sources\Script_Control.hpp" +#include "Sources\IA_Monstre.hpp" +#include "Sources\GUI.hpp" + +int Niveau1() +{ + + #include "Sources\Sprite.hpp" // Inclusion des sprites. + + + //*****************Creation des objects****************** + + Object Kirby; + Kirby.OTransforms->SetXY(8, 30); + Kirby.ORender->SetRender(A_Kirby , 12); + Kirby.ORigibody = new Rigibody(&Kirby); + Kirby.ORigibody->SetMass(1); + Kirby.ORigibody->AddForce(0 , -15); + Kirby.AffectTag("Kirby"); + + Object Ours; + Ours.OTransforms->SetXY(200 , 18); + Ours.ORender->SetRender(A_Ours); + Ours.ORigibody = new Rigibody(&Ours); + Ours.ORigibody->SetMass(5); + Ours.AffectTag("Ennemis"); + + Object Piaf; + Piaf.OTransforms->SetXY(300 , 34); + Piaf.ORender->SetRender(A_Piaf , 2); + Piaf.ORigibody = new Rigibody(&Piaf); + Piaf.ORigibody->SetMass(1); + Piaf.AffectTag("Ennemis"); + + Object Champignon; + Champignon.OTransforms->SetXY( 500 , 18); + Champignon.ORender->SetRender( A_Champ , 2); + Champignon.ORigibody = new Rigibody(&Champignon); + Champignon.ORigibody->SetMass(1); + Champignon.AffectTag("Ennemis"); + + Object Etoile; + Etoile.OTransforms->SetXY(1250 , 52); + Etoile.ORender->SetRender(A_Etoile); + Etoile.AffectTag("Etoile"); + + Object Aspiration; + Aspiration.ORender->SetRender(A_Aspiration); + Aspiration.AffectTag("Aspiration"); + + Control * Kirby_Script = new Control; + IaOurs * Ours_Script = new IaOurs; + IaPiaf * Piaf_Script = new IaPiaf; + IaChamp * Champignon_Script = new IaChamp; + SAspi * Aspiration_Script = new SAspi; + + Kirby.AffectScript(Kirby_Script); + Ours.AffectScript(Ours_Script); + Piaf.AffectScript(Piaf_Script); + Champignon.AffectScript(Champignon_Script); + Aspiration.AffectScript(Aspiration_Script); + + //***********Creation de la map*************** + + Map Niveau1; + Niveau1.SetMap(Tileset1 , map1 , TileProp , 16 , 16 , 81 ,7); + + + //**************Assignation des objects************ + + Engine Game; + + Game.AddObject( & Kirby); + Game.AddObject( & Champignon); + Game.AddObject( & Piaf); + Game.AddObject( & Ours); + Game.AddObject( & Etoile); + + Game.AffectMap( &Niveau1); + + Niveau1.AffectEngine( &Game); + + Script_GUI Game_GUI; + + Game.AffectScript(Game_GUI); + + Kirby_Script->Initialisation( A_Etoile , A_Soufle , &Aspiration , &Game_GUI ); + + Game.SetFpsWish(4); + Game.SetType(1); + + Game.Game(); + + return 1; + +} + +int Menu() +{ + const unsigned char Menu[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x7f, 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x4, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x4, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x38, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xc0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xc0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x20, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x18, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x8, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x4, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xc2, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x31, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0xff, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x40, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0xfc, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x3, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x1, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x28, 0x0, 0x88, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x90, 0x8, 0x80, 0x1, 0x0, 0x0, 0x40, 0x48, 0x10, 0x10, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x91, 0x1, 0x0, 0x1, 0x0, 0x0, 0x85, 0x48, 0x21, 0x50, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x92, 0x15, 0x0, 0x1, 0x0, 0x1, 0x4, 0x88, 0x41, 0x22, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x94, 0x12, 0x20, 0x1, 0x0, 0x1, 0xea, 0x88, 0x7a, 0xa4, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x97, 0xaa, 0x40, 0x1, 0x0, 0xa, 0x14, 0xa8, 0x85, 0x24, 0x0, 0x0, 0x0, 0x90, 0x9, 0x0, 0x98, 0x52, 0x40, 0x1, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 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, 0x95, 0x55, 0x52, 0xaa, 0xaa, 0xaa, 0xac, 0xaa, 0xaa, 0x95, 0x55, 0x53, 0x2a, 0xaa, 0xa5, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x4, 0x10, 0x80, 0xa0, 0x8, 0x8, 0x20, 0x20, 0x84, 0x4, 0x40, 0x8, 0x8, 0x21, 0x1, 0x81, 0x1, 0x0, 0x20, 0x8, 0x2, 0x4, 0x8, 0x8, 0x1, 0x1, 0x11, 0x2, 0x2, 0x0, 0x41, }; + + const unsigned char KM1[]={0xff, 0xff, 0xf8, 0x3f, 0xe0, 0xf, 0xe0, 0xf, 0xc0, 0x17, 0xc0, 0x17, 0xc2, 0x17, 0xc1, 0x7, 0xc1, 0x7, 0xe2, 0x17, 0xfc, 0x7, 0x90, 0xf, 0x88, 0x1f, 0x8f, 0xe3, 0xff, 0xc3, 0xff, 0xff, }; + const unsigned char KM1N[]={0x7, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x3f, 0xf8, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfc, 0xff, 0xf8, 0xff, 0xfc, 0xff, 0xfe, 0x70, 0x7e, 0x0, 0x3c, }; + const unsigned char KM2[]={0xff, 0xff, 0xf8, 0x1f, 0xe0, 0xf, 0xc0, 0xf, 0xc0, 0x57, 0x80, 0x57, 0x80, 0x55, 0x80, 0x5, 0x88, 0x5, 0xc8, 0x25, 0xf8, 0x7, 0xfc, 0xf, 0xf3, 0xff, 0xf8, 0x5f, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char KM2N[]={0x7, 0xe0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xf8, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xfe, 0x1f, 0xf8, 0x1f, 0xf0, 0xf, 0xf0, 0x7, 0xe0, 0x0, 0x0, }; + const unsigned char KM3[]={0xff, 0xff, 0xf8, 0x3f, 0xe0, 0xf, 0xf0, 0xf, 0x80, 0xa5, 0x80, 0xa5, 0x80, 0xa5, 0x80, 0x5, 0xe0, 0x7, 0xe0, 0x47, 0xe0, 0xb, 0xd0, 0xb, 0xcc, 0x33, 0xe3, 0xc7, 0xf1, 0xff, 0xff, 0xff, }; + const unsigned char KM3N[]={0x7, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0x38, 0xe, 0x0, }; + + const unsigned char Tableau[]={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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0x80, 0x77, 0x57, 0x70, 0x75, 0x70, 0x7, 0x80, 0x25, 0x54, 0x52, 0x45, 0x40, 0x7, 0x80, 0x25, 0x56, 0x50, 0x62, 0x60, 0x7, 0x80, 0x25, 0x54, 0x62, 0x45, 0x40, 0x7, 0x80, 0x67, 0x77, 0x50, 0x75, 0x70, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7f, 0xf8, 0x0, 0xe, 0xab, 0x80, 0x0, 0x7f, 0xf8, 0x0, 0x48, 0xa9, 0x10, 0x0, 0x7f, 0xf8, 0x0, 0xc, 0x49, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x48, 0xa9, 0x10, 0x0, 0x7f, 0xf8, 0x0, 0xe, 0xa9, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char TableauN[]={0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 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, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, }; + + const unsigned char Titre[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x4c, 0x40, 0xc, 0x0, 0x63, 0x8e, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x17, 0x4c, 0x0, 0xc, 0x0, 0x66, 0xcd, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x17, 0x59, 0xc2, 0x4f, 0x12, 0x66, 0xd, 0x92, 0x38, 0xe3, 0xec, 0xe, 0x78, 0xf7, 0x58, 0x42, 0xcd, 0x92, 0x2, 0xd, 0x96, 0x6c, 0x12, 0xac, 0x3, 0x6c, 0x97, 0x58, 0x42, 0xd, 0x92, 0x1, 0x8d, 0x90, 0x7c, 0xf2, 0xac, 0xf, 0x6c, 0x97, 0x58, 0x42, 0xd, 0x92, 0x0, 0xcd, 0x90, 0x61, 0x92, 0xac, 0x13, 0x6c, 0x97, 0x4c, 0x42, 0xd, 0x92, 0x6, 0xcd, 0x10, 0x61, 0x92, 0xac, 0x13, 0x6c, 0x97, 0x4d, 0xf2, 0xf, 0x1e, 0x3, 0x8e, 0x10, 0x38, 0xf2, 0x2f, 0x8f, 0x6c, 0xf7, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, }; + + Sprite S_Kirby_Cour_1(KM1 , KM1N ,16 ,16); + Sprite S_Kirby_Cour_2(KM2 , KM2N ,16 ,16); + Sprite S_Kirby_Cour_3(KM3 , KM3N ,16 ,16); + Sprite S_Kirby_Cour[]={ S_Kirby_Cour_1 , S_Kirby_Cour_2 , S_Kirby_Cour_3}; + Animation Kirby(S_Kirby_Cour , 3 ); + + Sprite S_Tableau(Tableau , TableauN , 54 , 32 ); + Animation A_Tableau(S_Tableau); + + int x = 127; + + + ML_clear_vram(); + + ML_bmp_or(Titre , 13 , 25 , 101 , 13 ); + + PrintMini(90,50,"By Fife86" , 0); + + ML_display_vram(); + + Sleep(1500); + + int fin = 0; + + while(1) + { + + + ML_clear_vram(); + input_update(); + //*******************// + + + ML_bmp_or_cl(Menu , x , 0, 127 , 63); + ML_bmp_or_cl(Menu , x - 127 , 0, 127 , 63); + + A_Tableau.DrawAnim(36,0 , 0); + + if(fin == 0) + { + x--; + if(x < 0 ) x = 127; + + Kirby.DrawAnim(16 , 38 , 0); + + if(input_press(K_EXE))fin = 1; + + } + else + { + fin = fin + 2; + + Kirby.DrawAnim(16 + fin , 38 ,0); + + if(fin > 111) + { + Niveau1(); + Sleep(500); + input_update(); + fin = 0; + } + } + + if(input_press(K_EXIT))return 1; + + + + + Sleep(30); + + //*******************// + ML_display_vram(); + } +} + + +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/Script_Control.cpp b/Script_Control.cpp new file mode 100644 index 0000000..fa9d5af --- /dev/null +++ b/Script_Control.cpp @@ -0,0 +1,397 @@ + +#include "Script_Control.hpp" + +//Kirby script + +void Control::Start() +{ + direction = false; + couldown = 0; + isaspi = false; + ishurt = 0; + + Ventre = Vide; + + GetEngine()->AddObject(OAspi); + + GetObject()->ORigibody->UseFixeBody(16,16); +} + +void Control::Update() +{ + + if( GetObject()->ORigibody->CollisionDecor( GetX() , ( GetY() - 1 )) == 1) isground = true; + else isground = false; + + isdo = false; + + if(ishurt == 0) + { + + if( Ventre == Vide) + { + if(input_release(K_OPTN) && isaspi == true) + { + OAspi->OTransforms->SetXY(-1000 , - 1000); + isaspi = false; + } + + + if(input_press(K_OPTN)) + { + + isaspi = true; + + if(direction == false) + { + OAspi->OTransforms->SetXY( GetX() + 16 , GetY()); + OAspi->ORender->ReverseRender(false); + } + else + { + OAspi->OTransforms->SetXY( GetX() - 40 , GetY()); + OAspi->ORender->ReverseRender(true); + } + + SetIt(3); + isdo = true; + } + + + //***************************// + if(input_press(K_DOWN)) + { + SetIt(10); + isdo = true; + } + else + { + //***************************// + if(input_trigger(K_SHIFT)) + { + if(isground == true) + { + GetObject()->ORigibody->R_body.velocity.y = 25; + + SetIt(2); + isdo = true; + } + } + else + { + if(input_trigger(K_UP)) + { + Ventre = Air; + + SetIt(9); + isdo = true; + } + } + + //***************************// + + if(input_press(K_RIGHT) && (isground == true && GetObject()->ORender->GetIt() == 3) == false) + { + Move( 2 , 0 ); + direction = false; + + if(GetObject()->ORender->GetIt() != 3)SetIt(1); + isdo = true; + } + else + { + if(input_press(K_LEFT) && (isground == true && GetObject()->ORender->GetIt() == 3) == false) + { + Move( -2 , 0 ); + direction = true; + + if(GetObject()->ORender->GetIt() != 3)SetIt(1); + isdo = true; + } + } + } + //***************************// + + if(isground == false && GetObject()->ORender->GetIt() != 3)SetIt(2); + else if(isdo == false)SetIt(0); + + } + else + { + + if(input_press(K_RIGHT)) + { + Move( 2 , 0 ); + direction = false; + + if(isground == true)SetIt(5); + isdo = true; + } + else + { + if(input_press(K_LEFT)) + { + Move( -2 , 0 ); + direction = true; + + if(isground == true)SetIt(5); + isdo = true; + } + } + + //***************************// + + if(input_trigger(K_UP)) + { + if(Ventre == Air) + { + GetObject()->ORigibody->R_body.velocity.y = 25; + SetIt(7); + isdo = true; + } + } + else + { + if(input_trigger(K_SHIFT)) + { + if(isground == true) + { + GetObject()->ORigibody->R_body.velocity.y = 25; + + SetIt(6); + isdo = true; + } + } + } + + //***************************// + + if(input_trigger(K_OPTN)) + { + if(Ventre == Air) + { + Object * Buffer = new Object; + SSoufle * ScriptSouffle = new SSoufle; + + ScriptSouffle->time = 12; + ScriptSouffle->Interface = Interface; + + Buffer->AffectTag("Souffle"); + + Buffer->ORender->SetRender(RenderSouffle); + Buffer->AffectScript(ScriptSouffle); + + GetEngine()->AddObject(Buffer); + + if(direction == false) + { + Buffer->OTransforms->SetXY( GetX() + 16 , GetY() + 8 ); + Buffer->ORender->ReverseRender(false); + ScriptSouffle->direction = false; + } + else + { + Buffer->OTransforms->SetXY( GetX(), GetY() + 8 ); + Buffer->ORender->ReverseRender(true); + ScriptSouffle->direction = true; + } + } + + if(Ventre == Plein) + { + Object * Buffer = new Object; + SStar * ScriptStar = new SStar; + + ScriptStar->Interface = Interface; + + Buffer->ORender->SetRender(RenderEtoile); + Buffer->AffectScript(ScriptStar); + Buffer->ORigibody = new Rigibody(Buffer); + + GetEngine()->AddObject(Buffer); + + if(direction == false) + { + Buffer->OTransforms->SetXY( GetX() + 16 , GetY() + 8 ); + Buffer->ORender->ReverseRender(false); + ScriptStar->direction = false; + } + else + { + Buffer->OTransforms->SetXY( GetX(), GetY() + 8 ); + Buffer->ORender->ReverseRender(true); + ScriptStar->direction = true; + } + } + + Ventre = Vide; + + SetIt(8); + isdo = true; + } + //***************************// + + if(isground == false) + { + if(GetObject()->ORender->GetIt() != 6 && GetObject()->ORender->GetIt() != 7)SetIt(7); + } + else if(isdo == false )SetIt(4); + + } + + + GetObject()->ORender->ReverseRender(direction); + + Object * Ennemi = GetObject()->CollisionTagO("Ennemis"); + + if(Ennemi != NULL ) + { + + if(isaspi == false) + { + Ventre = Vide; + + GetEngine()->DelObject(Ennemi); + + Interface->AddScore(400); + Interface->DelVie(1); + + ishurt = 20; + } + else + { + Ventre = Plein; + GetEngine()->DelObject(Ennemi); + + Interface->AddScore(200); + } + + } + + } + else + { + GetObject()->ORigibody->R_body.velocity.x = -20; + GetObject()->ORigibody->R_body.velocity.y = 10; + ishurt --; + } + + + if( GetY() < 2) + { + Ventre = Vide; + Interface->DelVie(6); + + direction = false; + } + + if(GetObject()->CollisionTag("Etoile")) + { + ML_clear_vram(); + + PrintMini(10,30,"Bravo vous venez de sauvez" , 0); + PrintMini(40,38,"la Terre XD" , 0); + + ML_display_vram(); + + Sleep(2500); + + GetEngine()->StopGame(); + } + + + GetEngine()->MiddleScreen( GetX() , (GetY() + 2)); +} + +void Control::Initialisation(Animation E, Animation S , Object * A , Script_GUI * G) +{ + RenderEtoile = E; + RenderSouffle = S; + + OAspi = A; + + Interface = G; +} + + +void SAspi::Update() +{ + Object * Buffer = NULL; + + Buffer = GetObject()->CollisionTagO("Ennemis"); + + if( Buffer != NULL) + { + if(GetObject()->ORender->GetReverse()== false) + { + Buffer->ORigibody->Move(-2,0); + } + else + { + Buffer->ORigibody->Move(2,0); + } + } +} + +void SSoufle::Update() +{ + if(time > 0) + { + if(direction == true)SetXY( GetX() - 3 , GetY() ); + else SetXY( GetX() + 3 , GetY() ); + } + + time--; + + Object * Buffer = GetObject()->CollisionTagO("Ennemis"); + + if(Buffer != NULL) + { + GetEngine()->DelObject(Buffer); + GetEngine()->DelObject(GetObject()); + + Interface->AddScore(200); + return; + } + + if(time < -10) + { + GetEngine()->DelObject(GetObject());return; + } + +} + +void SStar::Update() +{ + + if(direction == true) + { + SetXY( GetX() - 3 , GetY() ); + if(GetObject()->ORigibody->CollisionDecor(GetX() - 3 , GetY())) + { + GetEngine()->DelObject(GetObject());return; + } + } + else + { + SetXY( GetX() + 3 , GetY() ); + if(GetObject()->ORigibody->CollisionDecor(GetX() + 3 , GetY())) + { + GetEngine()->DelObject(GetObject());return; + } + } + + Object * Buffer = GetObject()->CollisionTagO("Ennemis"); + + if(Buffer != NULL) + { + GetEngine()->DelObject(Buffer); + GetEngine()->DelObject(GetObject()); + + Interface->AddScore(400); + + return; + } +} + + diff --git a/Script_Control.hpp b/Script_Control.hpp new file mode 100644 index 0000000..97ec81a --- /dev/null +++ b/Script_Control.hpp @@ -0,0 +1,66 @@ +#ifndef SCRIPTCONTROL +#define SCRIPTCONTROL + +#include "..\C-Engine\CHeader.hpp" +#include "GUI.hpp" + +//Kirby script + +enum Contenu +{ Vide , Air , Plein}; + +class SSoufle: public Script +{ + public: + void Update(); + + bool direction; + int time; + + Script_GUI * Interface; + +}; + +class SAspi: public Script +{ + public: + void Update(); +}; + +class SStar: public Script +{ + public: + void Update(); + + bool direction; + Script_GUI * Interface; +}; + +class Control: public Script +{ + public: + + void Start(); + void Update(); + void Initialisation(Animation E, Animation S , Object * A , Script_GUI * G); + + private: + + bool isground; // Si Touche le sol True + bool isdo; // Si réalise une action True + bool direction; // Direction du personnage True = Gauche + bool isaspi; + int ishurt; + int couldown; + Contenu Ventre; + + Animation RenderSouffle; + Animation RenderEtoile; + + Object * OAspi; + + Script_GUI * Interface; + +}; + +#endif // SCRIPTCONTROL diff --git a/Sprite.hpp b/Sprite.hpp new file mode 100644 index 0000000..780ec94 --- /dev/null +++ b/Sprite.hpp @@ -0,0 +1,273 @@ + +// Kirby + + const unsigned char KA1[]={0xff, 0xff, 0xf8, 0x1f, 0xe0, 0x7, 0xf0, 0x13, 0x80, 0x9, 0x80, 0x9, 0x80, 0x3, 0x80, 0x3, 0xe0, 0x7, 0xe0, 0x7, 0xe0, 0x7, 0xd0, 0x3, 0xcc, 0xf, 0xe3, 0xff, 0xf1, 0xf, 0xfe, 0xff, }; + const unsigned char KA1N[]={0x7, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xf0, 0x1f, 0xf8, 0xe, 0xf8, }; + const unsigned char KA2[]={0xff, 0xff, 0xfe, 0x1f, 0xf8, 0x7, 0xc4, 0x13, 0x80, 0xb, 0x80, 0x9, 0x80, 0x1, 0x80, 0x1, 0x80, 0x13, 0xc0, 0xf, 0x80, 0x7, 0x80, 0x7, 0x80, 0x7, 0x80, 0x7, 0x80, 0x7, 0xc0, 0x7, 0xc0, 0x9, 0xe0, 0x1, 0xf8, 0x3, 0xe7, 0xff, 0xf0, 0x1f, 0xff, 0xff, }; + const unsigned char KA2N[]={0x1, 0xe0, 0x7, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0xff, 0xfc, 0x7f, 0xfe, 0x7f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xfc, 0x1f, 0xf0, 0xf, 0xe0, }; + + const unsigned char KM1[]={0xff, 0xff, 0xf8, 0x3f, 0xe0, 0xf, 0xe0, 0xf, 0xc0, 0x17, 0xc0, 0x17, 0xc2, 0x17, 0xc1, 0x7, 0xc1, 0x7, 0xe2, 0x17, 0xfc, 0x7, 0x90, 0xf, 0x88, 0x1f, 0x8f, 0xe3, 0xff, 0xc3, 0xff, 0xff, }; + const unsigned char KM1N[]={0x7, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x3f, 0xf8, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfc, 0xff, 0xf8, 0xff, 0xfc, 0xff, 0xfe, 0x70, 0x7e, 0x0, 0x3c, }; + const unsigned char KM2[]={0xff, 0xff, 0xf8, 0x1f, 0xe0, 0xf, 0xc0, 0xf, 0xc0, 0x57, 0x80, 0x57, 0x80, 0x55, 0x80, 0x5, 0x88, 0x5, 0xc8, 0x25, 0xf8, 0x7, 0xfc, 0xf, 0xf3, 0xff, 0xf8, 0x5f, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char KM2N[]={0x7, 0xe0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xf8, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xfe, 0x1f, 0xf8, 0x1f, 0xf0, 0xf, 0xf0, 0x7, 0xe0, 0x0, 0x0, }; + const unsigned char KM3[]={0xff, 0xff, 0xf8, 0x3f, 0xe0, 0xf, 0xf0, 0xf, 0x80, 0xa5, 0x80, 0xa5, 0x80, 0xa5, 0x80, 0x5, 0xe0, 0x7, 0xe0, 0x47, 0xe0, 0xb, 0xd0, 0xb, 0xcc, 0x33, 0xe3, 0xc7, 0xf1, 0xff, 0xff, 0xff, }; + const unsigned char KM3N[]={0x7, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0x38, 0xe, 0x0, }; + + const unsigned char KN[]={0xff, 0xff, 0xfc, 0x1f, 0xf0, 0x7, 0xe0, 0x7, 0xe0, 0x3, 0xc0, 0x53, 0x80, 0x51, 0x80, 0x51, 0x80, 0x1, 0x80, 0x1, 0xc8, 0x25, 0xf8, 0x7, 0xfc, 0xf, 0xe3, 0xf3, 0xc1, 0xe1, 0xff, 0xff, }; + const unsigned char KNN[]={0x3, 0xe0, 0xf, 0xf8, 0x1f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xfe, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f, 0xff, 0x3e, 0x3e, }; + + const unsigned char KS[]={0xff, 0xff, 0xfe, 0x1f, 0xc8, 0x5, 0x80, 0x5, 0x80, 0x1, 0x80, 0x3, 0xc0, 0x53, 0xe0, 0x53, 0xe0, 0x53, 0xe6, 0x3, 0xe9, 0x5, 0xf1, 0x29, 0xf0, 0x91, 0xf0, 0xa3, 0xf9, 0xe7, 0xff, 0xff, }; + const unsigned char KSN[]={0x1, 0xe0, 0x37, 0xfa, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xff, 0x3f, 0xff, 0x1f, 0xff, 0x1f, 0xff, 0x1f, 0xfe, 0xf, 0xfc, 0x7, 0x38, }; + + const unsigned char KMF1[]={0xff, 0xff, 0xff, 0xff, 0x81, 0xe3, 0xfe, 0x0, 0x63, 0xf8, 0x0, 0x13, 0xf0, 0x0, 0xb, 0xf0, 0x0, 0xb, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x57, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x3, 0xc1, 0x0, 0x83, 0xc1, 0x0, 0x43, 0xc2, 0x0, 0x7b, 0xe4, 0x0, 0x43, 0xf8, 0x0, 0x87, 0xe0, 0x0, 0x7, 0x90, 0x0, 0xf, 0x90, 0x0, 0xf, 0xc8, 0x0, 0x1f, 0xe6, 0x0, 0x63, 0xf1, 0x81, 0x81, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, }; + const unsigned char KMF1N[]={0x0, 0x7e, 0x1c, 0x1, 0xff, 0xbe, 0x7, 0xff, 0xfe, 0xf, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xf, 0x7e, 0xff, 0x0, 0x0, 0x7e, }; + const unsigned char KMF2[]={0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xfe, 0x0, 0x7f, 0xf8, 0x0, 0x1f, 0xf0, 0x0, 0xf, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x57, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x3, 0xc1, 0x0, 0x83, 0xc1, 0x0, 0x43, 0xc2, 0x0, 0x7b, 0xe4, 0x0, 0x43, 0xf8, 0x0, 0x87, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xf0, 0x0, 0xf, 0xf8, 0x0, 0x1f, 0xc6, 0x0, 0x63, 0x81, 0x81, 0x81, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, }; + const unsigned char KMF2N[]={0x0, 0x7e, 0x0, 0x1, 0xff, 0x80, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0x7e, 0x0, 0x7e, }; + const unsigned char KMF3[]={0xff, 0xff, 0xff, 0xe1, 0x81, 0xff, 0xc0, 0x0, 0x7f, 0xc0, 0x0, 0x1f, 0xc0, 0x0, 0xf, 0xc0, 0x0, 0xf, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x57, 0xf0, 0x0, 0x53, 0xf0, 0x0, 0x53, 0xe0, 0x0, 0x3, 0xe0, 0x0, 0x83, 0xe0, 0x0, 0x43, 0xe0, 0x0, 0x7b, 0xe0, 0x0, 0x43, 0xe0, 0x0, 0x87, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x9, 0xf0, 0x0, 0x9, 0xf8, 0x0, 0x13, 0xc6, 0x0, 0x67, 0x81, 0x81, 0x8f, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char KMF3N[]={0x1e, 0x7e, 0x0, 0x3f, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0xf8, 0xff, 0x7e, 0xf0, 0x7e, 0x0, 0x0, }; + + const unsigned char KF[]={0xff, 0xff, 0xff, 0xff, 0x81, 0xff, 0xfe, 0x0, 0x7f, 0xf8, 0x0, 0x1f, 0xf0, 0x0, 0xf, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x57, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x53, 0xc0, 0x0, 0x3, 0xc1, 0x0, 0x83, 0xc1, 0x0, 0x43, 0xc2, 0x0, 0x7b, 0xe4, 0x0, 0x43, 0xf8, 0x0, 0x87, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xf0, 0x0, 0xf, 0xf8, 0x0, 0x1f, 0xc6, 0x0, 0x63, 0x81, 0x81, 0x81, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, }; + const unsigned char KFN[]={0x0, 0x7e, 0x0, 0x1, 0xff, 0x80, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0x7e, 0x0, 0x7e, }; + + const unsigned char Kirby_Plein_Saut[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x81, 0xe3, 0xc0, 0x0, 0x63, 0xc0, 0x0, 0x13, 0xc0, 0x0, 0xb, 0xc0, 0x0, 0xb, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x57, 0xf0, 0x0, 0x53, 0xf0, 0x0, 0x53, 0xe0, 0x0, 0x3, 0xe0, 0x0, 0x83, 0xe0, 0x0, 0x43, 0xe0, 0x0, 0x7b, 0xe0, 0x0, 0x43, 0xe0, 0x0, 0x87, 0xe0, 0x0, 0x7, 0x90, 0x0, 0x9, 0x90, 0x0, 0x9, 0xc8, 0x0, 0x13, 0xe6, 0x0, 0x67, 0xf1, 0x81, 0x8f, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Plein_SautN[]={0x0, 0x0, 0x0, 0x1e, 0x7e, 0x1c, 0x3f, 0xff, 0xbe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0xf, 0x7e, 0xf0, }; + + const unsigned char Kirby_Plein_Vole_1[]={0xff, 0xff, 0xff, 0xf0, 0xc0, 0xf1, 0xe0, 0x0, 0x31, 0xe0, 0x0, 0x9, 0xe0, 0x0, 0x5, 0xe0, 0x0, 0x5, 0xf0, 0x0, 0x3, 0xf0, 0x0, 0x2b, 0xf8, 0x0, 0x29, 0xf8, 0x0, 0x29, 0xf0, 0x0, 0x1, 0xf0, 0x0, 0x41, 0xf0, 0x0, 0x21, 0xf0, 0x0, 0x3d, 0xf0, 0x0, 0x21, 0xf0, 0x0, 0x43, 0xf0, 0x0, 0x3, 0xe8, 0x0, 0x7, 0xe8, 0x0, 0x7, 0xc4, 0x0, 0xf, 0xc7, 0x0, 0x3f, 0xc8, 0xc0, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Plein_Vole_1N[]={0xf, 0x3f, 0xe, 0x1f, 0xff, 0xdf, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0xf, 0xff, 0xff, 0xf, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x7f, 0x3f, 0x0, 0x36, 0x0, 0x0, }; + const unsigned char Kirby_Plein_Vole_2[]={0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0x0, 0x3f, 0xfc, 0x0, 0xf, 0xf8, 0x0, 0x7, 0xf8, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xf0, 0x0, 0x2b, 0xe0, 0x0, 0x29, 0xe0, 0x0, 0x29, 0xe0, 0x0, 0x1, 0xe0, 0x80, 0x41, 0xe0, 0x80, 0x21, 0xe1, 0x0, 0x3d, 0xf2, 0x0, 0x21, 0xfc, 0x0, 0x43, 0xf0, 0x0, 0x3, 0xe8, 0x0, 0x7, 0xe8, 0x0, 0x7, 0xc4, 0x0, 0xf, 0xc7, 0x0, 0x3f, 0xc8, 0xc0, 0xff, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Plein_Vole_2N[]={0x0, 0x3f, 0x0, 0x0, 0xff, 0xc0, 0x3, 0xff, 0xf0, 0x7, 0xff, 0xf8, 0xf, 0xff, 0xfc, 0xf, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xc0, 0x7f, 0x3f, 0x0, 0x36, 0x0, 0x0, }; + + const unsigned char Kirby_Inspire_1[]={0xff, 0xff, 0xf8, 0x1f, 0xe0, 0x7, 0xf0, 0x13, 0x80, 0x9, 0x80, 0x9, 0x80, 0x3, 0x80, 0x3, 0xe0, 0x7, 0xe0, 0x7, 0xe0, 0x7, 0xd0, 0x3, 0xcc, 0xf, 0xe3, 0xff, 0xf1, 0xf, 0xff, 0xff, }; + const unsigned char Kirby_Inspire_1N[]={0x7, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xf0, 0x1f, 0xf8, 0xe, 0xf8, }; + const unsigned char Kirby_Inspire_2[]={0xff, 0xff, 0xff, 0xe1, 0x81, 0xff, 0xc0, 0x0, 0x3f, 0xc0, 0x0, 0x4f, 0xc0, 0x0, 0x27, 0xc0, 0x0, 0x23, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x4f, 0xf0, 0x0, 0x2f, 0xf0, 0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x1f, 0xe0, 0x0, 0x27, 0xe0, 0x0, 0x43, 0xe0, 0x0, 0x7, 0xd0, 0x0, 0xf, 0xd0, 0x0, 0xf, 0x88, 0x0, 0x1f, 0x8e, 0x0, 0x7f, 0x91, 0x81, 0xff, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Inspire_2N[]={0x1e, 0x7e, 0x0, 0x3f, 0xff, 0xc0, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xe0, 0xff, 0xff, 0x80, 0xfe, 0x7e, 0x0, 0x6c, 0x0, 0x0, }; + + const unsigned char Kirby_Recrache_1[]={0xff, 0xff, 0xff, 0xe1, 0x81, 0xff, 0xc0, 0x0, 0x3f, 0xc0, 0x0, 0x8f, 0xc0, 0x0, 0x47, 0xc0, 0x0, 0x43, 0xe0, 0x0, 0xf, 0xe0, 0x0, 0x51, 0xf0, 0x0, 0x21, 0xf0, 0x0, 0x11, 0xe0, 0x0, 0x11, 0xe0, 0x0, 0x11, 0xe0, 0x0, 0x1, 0xe0, 0x0, 0x1, 0xe0, 0x0, 0x3, 0xe0, 0x0, 0x3, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xf0, 0x0, 0xf, 0xf8, 0x0, 0x1f, 0xc6, 0x0, 0x63, 0x81, 0x81, 0x81, 0x81, 0xff, 0x81, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Recrache_1N[]={0x1e, 0x7e, 0x0, 0x3f, 0xff, 0xc0, 0x7f, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x1f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0x7e, 0x0, 0x7e, }; + const unsigned char Kirby_Recrache_2[]={0xff, 0xff, 0xf8, 0x1f, 0xe0, 0x7, 0xf0, 0x13, 0x80, 0x9, 0x80, 0x9, 0x80, 0x3, 0x80, 0x15, 0xe0, 0x9, 0xe0, 0x9, 0xe0, 0x3, 0xd0, 0x3, 0xcc, 0xf, 0xe3, 0xff, 0xf1, 0xf, 0xff, 0xff, }; + const unsigned char Kirby_Recrache_2N[]={0x7, 0xe0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xff, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xf0, 0x1f, 0xf8, 0xe, 0xf8, }; + + const unsigned char Soufle[]={0xff, 0xff, 0xff, 0xcf, 0xff, 0x3, 0xfc, 0x83, 0xf8, 0x1, 0xf8, 0x1, 0xf0, 0x1, 0xf0, 0x1, 0xf0, 0x1, 0xc8, 0x1, 0x80, 0x1, 0xe0, 0x3, 0xfc, 0x3, 0xff, 0x7, 0xff, 0xff, }; + const unsigned char SoufleN[]={0x0, 0x70, 0x0, 0xfc, 0x3, 0xfe, 0x7, 0xfe, 0xf, 0xff, 0xf, 0xff, 0x1f, 0xff, 0x1f, 0xff, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x1f, 0xfe, 0x3, 0xfc, 0x0, 0xf8, }; + + const unsigned char Aspiration1[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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 Kirby_Accroupi[]={0xff, 0xff, 0xf8, 0xf, 0xe0, 0x3, 0x80, 0x3, 0x80, 0x53, 0xc0, 0x53, 0xf8, 0x7, 0xcc, 0x29, 0xff, 0xff, }; + const unsigned char Kirby_AccroupiN[]={0x7, 0xf0, 0x1f, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xfe, 0x7f, 0xff, 0x3f, 0xfe, }; + + const unsigned char Kirby_Mort_1[]={0xff, 0xff, 0xff, 0xcf, 0xf8, 0x27, 0xe0, 0x7, 0xe2, 0x3, 0xc1, 0x3, 0xc8, 0x25, 0xc4, 0x49, 0xc0, 0x89, 0xc1, 0x9, 0xa2, 0x9, 0x80, 0x7, 0xc1, 0xef, 0xf2, 0x1f, 0xfc, 0x1f, 0xff, 0xff, }; + + const unsigned char Kirby_Mort_1N[]={0x0, 0xf0, 0x7, 0xf8, 0x1f, 0xfc, 0x3f, 0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xf8, 0x3f, 0xf0, 0xf, 0xf0, 0x3, 0xe0, }; + const unsigned char Kirby_Mort_2[]={0xff, 0xff, 0xf3, 0xff, 0xe4, 0x1f, 0xe0, 0x7, 0xc0, 0x47, 0xc0, 0x83, 0xa4, 0x13, 0x92, 0x23, 0x91, 0x3, 0x90, 0x83, 0x90, 0x45, 0xe0, 0x1, 0xf7, 0x83, 0xf8, 0x4f, 0xf8, 0x3f, 0xff, 0xff, }; + const unsigned char Kirby_Mort_2N[]={0xf, 0x0, 0x1f, 0xe0, 0x3f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfc, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x1f, 0xfe, 0xf, 0xfc, 0xf, 0xf0, 0x7, 0xc0, }; + const unsigned char Kirby_Mort_3[]={0xff, 0xff, 0xf8, 0x3f, 0xf8, 0x4f, 0xf7, 0x83, 0xe0, 0x1, 0x90, 0x45, 0x90, 0x83, 0x91, 0x3, 0x92, 0x23, 0xa4, 0x13, 0xc0, 0x83, 0xc0, 0x47, 0xe0, 0x7, 0xe4, 0x1f, 0xf3, 0xff, 0xff, 0xff, }; + const unsigned char Kirby_Mort_3N[]={0x7, 0xc0, 0xf, 0xf0, 0xf, 0xfc, 0x1f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xfc, 0x3f, 0xf8, 0x1f, 0xe0, 0xf, 0x0, }; + const unsigned char Kirby_Mort_4[]={0xff, 0xff, 0xfc, 0x1f, 0xf2, 0x1f, 0xc1, 0xef, 0x80, 0x7, 0xa2, 0x9, 0xc1, 0x9, 0xc0, 0x89, 0xc4, 0x49, 0xc8, 0x25, 0xc1, 0x3, 0xe2, 0x3, 0xe0, 0x7, 0xf8, 0x27, 0xff, 0xcf, 0xff, 0xff, }; + const unsigned char Kirby_Mort_4N[]={0x3, 0xe0, 0xf, 0xf0, 0x3f, 0xf0, 0x7f, 0xf8, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f, 0xfc, 0x1f, 0xfc, 0x7, 0xf8, 0x0, 0xf0, }; + + + Sprite S_Kirby_Normal( KN , KNN , 16 , 16 ); S_Kirby_Normal.CreateReverse(); // Normal + Animation A_Kirby_Normal(S_Kirby_Normal); + + Sprite S_Kirby_Accroupi( Kirby_Accroupi , Kirby_AccroupiN , 16 , 9 ); S_Kirby_Accroupi.CreateReverse(); // Normal + Animation A_Kirby_Accroupi(S_Kirby_Accroupi); + + Sprite S_Kirby_Cour_1(KM1 , KM1N ,16 ,16); S_Kirby_Cour_1.CreateReverse(); // Cours + Sprite S_Kirby_Cour_2(KM2 , KM2N ,16 ,16); S_Kirby_Cour_2.CreateReverse(); + Sprite S_Kirby_Cour_3(KM3 , KM3N ,16 ,16); S_Kirby_Cour_3.CreateReverse(); + Sprite S_Kirby_Cour[]={ S_Kirby_Cour_1 , S_Kirby_Cour_2 , S_Kirby_Cour_3}; + Animation A_Kirby_Cour(S_Kirby_Cour , 3 , 200); + + Sprite S_Kirby_Saut(KS , KSN ,16 , 16); S_Kirby_Saut.CreateReverse(); // Saut + Animation A_Kirby_Saut(S_Kirby_Saut); + + Sprite S_Kirby_Gobe1(KA1 , KA1N , 16 , 16);S_Kirby_Gobe1.CreateReverse(); // Aspire + Sprite S_Kirby_Gobe2(KA2 , KA2N ,16 , 22);S_Kirby_Gobe2.CreateReverse(); + Sprite S_Kirby_Gobe[]={S_Kirby_Gobe1 , S_Kirby_Gobe2}; + Animation A_Kirby_Aspire(S_Kirby_Gobe , 2 , 200 , true); + + Sprite S_Kirby_Normal_Full( KF , KFN , 24 , 24);S_Kirby_Normal_Full.CreateReverse(); // Mormal Full + Animation A_Kirby_Normal_Full(S_Kirby_Normal_Full); + + Sprite S_Kirby_Cour_Full_1(KMF1 , KMF1N ,24 ,24); S_Kirby_Cour_Full_1.CreateReverse(); // Cours Full + Sprite S_Kirby_Cour_Full_2(KMF2 , KMF2N ,24 ,24); S_Kirby_Cour_Full_2.CreateReverse(); + Sprite S_Kirby_Cour_Full_3(KMF3 , KMF3N ,24 ,24); S_Kirby_Cour_Full_3.CreateReverse(); + Sprite S_Kirby_Cour_Full[]={ S_Kirby_Cour_Full_1 , S_Kirby_Cour_Full_2 , S_Kirby_Cour_Full_3}; + Animation A_Kirby_Cour_Full(S_Kirby_Cour_Full , 3 , 200); + + Sprite S_Kirby_Saut_Full(Kirby_Plein_Saut , Kirby_Plein_SautN ,24 ,24); S_Kirby_Saut_Full.CreateReverse();// Saut Full + Animation A_Kirby_Saut_Full(S_Kirby_Saut_Full); + + Sprite S_Kirby_Volle_1(Kirby_Plein_Vole_1 , Kirby_Plein_Vole_1N ,24 ,24); S_Kirby_Volle_1.CreateReverse();//Volle Full + Sprite S_Kirby_Volle_2(Kirby_Plein_Vole_2 , Kirby_Plein_Vole_2N ,24 ,24); S_Kirby_Volle_2.CreateReverse(); + Sprite S_Kirby_Volle[]={ S_Kirby_Volle_1 , S_Kirby_Volle_2}; + Animation A_Kirby_Volle(S_Kirby_Volle , 2 , 200); + + Sprite S_Kirby_Inspire_1(Kirby_Inspire_1 , Kirby_Inspire_1N ,16 ,16); S_Kirby_Inspire_1.CreateReverse();//Inspire Full + Sprite S_Kirby_Inspire_2(Kirby_Inspire_2 , Kirby_Inspire_2N ,24 ,24); S_Kirby_Inspire_2.CreateReverse(); + Sprite S_Kirby_Inspire[]={ S_Kirby_Inspire_1 , S_Kirby_Inspire_2}; + Animation A_Kirby_Inspire(S_Kirby_Inspire , 2 , 100 , false , true); + + Sprite S_Kirby_Recrache_1(Kirby_Recrache_1 , Kirby_Recrache_1N ,24 ,24); S_Kirby_Recrache_1.CreateReverse();//Recrache Full + Sprite S_Kirby_Recrache_2(Kirby_Recrache_2 , Kirby_Recrache_2N ,16 ,16); S_Kirby_Recrache_2.CreateReverse(); + Sprite S_Kirby_Recrache[]={ S_Kirby_Recrache_1 , S_Kirby_Recrache_2}; + Animation A_Kirby_Recrache(S_Kirby_Recrache , 2 , 100 , false , true); + + Sprite S_Kirby_Mort_1(Kirby_Mort_1 , Kirby_Mort_1N , 16 , 16); + Sprite S_Kirby_Mort_2(Kirby_Mort_2 , Kirby_Mort_2N , 16 , 16); + Sprite S_Kirby_Mort_3(Kirby_Mort_3 , Kirby_Mort_3N , 16 , 16); + Sprite S_Kirby_Mort_4(Kirby_Mort_4 , Kirby_Mort_4N , 16 , 16); + + Sprite S_Kirby_Mort[]={ S_Kirby_Mort_1, S_Kirby_Mort_2 , S_Kirby_Mort_3 ,S_Kirby_Mort_4}; + + Animation A_Mort(S_Kirby_Mort , 4 , 100); + + Sprite S_Soufle( Soufle , SoufleN , 16 ,15);S_Soufle.CreateReverse(); + Animation A_Soufle(S_Soufle); + + Sprite S_Aspiration(Aspiration1 , 40 , 24);S_Aspiration.CreateReverse(); + Animation A_Aspiration(S_Aspiration); + + + Animation A_Kirby[]={ A_Kirby_Normal , A_Kirby_Cour , A_Kirby_Saut , A_Kirby_Aspire , A_Kirby_Normal_Full , A_Kirby_Cour_Full , A_Kirby_Saut_Full , A_Kirby_Volle , A_Kirby_Recrache , A_Kirby_Inspire, A_Kirby_Accroupi, A_Mort }; + +//Etoile + + const unsigned char Etoile1[]={0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x3f, 0xfc, 0x3f, 0x80, 0x1, 0x80, 0x1, 0xc0, 0x3, 0xe0, 0x7, 0xf0, 0xf, 0xf0, 0xf, 0xe0, 0x7, 0xe0, 0x7, 0xc1, 0x83, 0xc7, 0xe3, 0xff, 0xff, }; + const unsigned char Etoile1N[]={0x1, 0x80, 0x3, 0xc0, 0x3, 0xc0, 0x7, 0xe0, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, 0x7f, 0xfe, 0x7e, 0x7e, 0x78, 0x1e, } ; + const unsigned char Etoile2[]={0xff, 0xff, 0xff, 0x3f, 0xfe, 0x3f, 0x9c, 0x3f, 0x80, 0x3f, 0xc0, 0x1f, 0xc0, 0xf, 0xe0, 0x3, 0xe0, 0x7, 0xc0, 0x1f, 0xc0, 0x3f, 0x80, 0x3f, 0x98, 0x3f, 0xfe, 0x7f, 0xff, 0x7f, 0xff, 0xff, }; + const unsigned char Etoile2N[]={0x0, 0xe1, 0x1, 0xe1, 0xe3, 0xe1, 0xff, 0xe1, 0xff, 0xe1, 0x7f, 0xf1, 0x7f, 0xfd, 0x3f, 0xff, 0x3f, 0xff, 0x7f, 0xf9, 0x7f, 0xe1, 0xff, 0xe1, 0xff, 0xe1, 0xe7, 0xc1, 0x1, 0xc1, 0x0, 0xc1, }; + const unsigned char Etoile3[]={0xff, 0xff, 0xc7, 0xe3, 0xc1, 0x83, 0xe0, 0x7, 0xe0, 0x7, 0xf0, 0xf, 0xf0, 0xf, 0xe0, 0x7, 0xc0, 0x3, 0x80, 0x1, 0x80, 0x1, 0xfc, 0x3f, 0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0xff, }; + const unsigned char Etoile3N[]={0x78, 0x1e, 0x7e, 0x7e, 0x7f, 0xfe, 0x3f, 0xfc, 0x3f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x7, 0xe0, 0x3, 0xc0, 0x3, 0xc0, 0x1, 0x80, }; + const unsigned char Etoile4[]={0xff, 0xff, 0xfd, 0xff, 0xfc, 0xff, 0xf8, 0x33, 0xf8, 0x3, 0xf8, 0x7, 0xf0, 0x7, 0xc0, 0xf, 0x80, 0xf, 0xe0, 0x7, 0xf0, 0x7, 0xf8, 0x3, 0xf8, 0x73, 0xf8, 0xff, 0xf9, 0xff, 0xff, 0xff, }; + const unsigned char Etoile4N[]={0x6, 0x1, 0x7, 0x1, 0x7, 0xcf, 0xf, 0xff, 0xf, 0xff, 0xf, 0xfd, 0x3f, 0xfd, 0xff, 0xf9, 0xff, 0xf9, 0x7f, 0xfd, 0x1f, 0xfd, 0xf, 0xff, 0xf, 0xff, 0xf, 0x8f, 0xf, 0x1, 0xe, 0x1, }; + + Sprite S_Etoile1(Etoile1 , Etoile1N , 16 , 16 );S_Etoile1.CreateReverse(); + Sprite S_Etoile2(Etoile2 , Etoile2N , 15 , 16 );S_Etoile2.CreateReverse(); + Sprite S_Etoile3(Etoile3 , Etoile3N , 16 , 16 );S_Etoile3.CreateReverse(); + Sprite S_Etoile4(Etoile4 , Etoile4N , 15 , 16 );S_Etoile4.CreateReverse(); + + Sprite S_Etoile[]={ S_Etoile1 , S_Etoile2 , S_Etoile3 , S_Etoile4}; + + Animation A_Etoile(S_Etoile , 4 , 300); + +// Ours + + const unsigned char O1[]={0xff, 0xff, 0xff, 0xff, 0xe3, 0xe3, 0xff, 0xcf, 0xcb, 0xff, 0xcc, 0x2f, 0xfc, 0x60, 0x7, 0xf0, 0xc7, 0xaf, 0xe0, 0xdc, 0x3, 0xe0, 0xff, 0xd7, 0xc0, 0x80, 0x1, 0xc0, 0x80, 0x91, 0x80, 0x80, 0x91, 0x80, 0x40, 0x91, 0x80, 0x40, 0x1, 0x80, 0x20, 0x33, 0xc0, 0x18, 0x7, 0xc0, 0x7, 0xff, 0xc0, 0x0, 0x3, 0x80, 0x0, 0x41, 0x80, 0x0, 0x23, 0x88, 0x0, 0x67, 0x8c, 0x8, 0xef, 0xc7, 0xf9, 0xcf, 0xc7, 0xfd, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char O1N[]={0x0, 0x1c, 0x1c, 0x0, 0x3e, 0x3e, 0x0, 0x7f, 0xfe, 0x3, 0xff, 0xfe, 0xf, 0xff, 0xfc, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x7f, 0x87, 0xb8, 0x3b, 0x7, 0x0, }; + + const unsigned char O2[]={0xff, 0xff, 0xff, 0xff, 0xe3, 0xe3, 0xff, 0xcf, 0xcb, 0xff, 0xcc, 0x2f, 0xfc, 0x60, 0x7, 0xf0, 0xc7, 0xaf, 0xe0, 0xdc, 0x3, 0xe0, 0xff, 0xd7, 0xc0, 0x80, 0x1, 0xc0, 0x80, 0x91, 0x80, 0x80, 0x91, 0x80, 0x40, 0x91, 0x80, 0x40, 0x1, 0x80, 0x20, 0x33, 0xc0, 0x18, 0x7, 0xc0, 0x7, 0xff, 0xe0, 0x0, 0x7, 0xe0, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xf1, 0x0, 0x8f, 0xf8, 0xa0, 0x1f, 0xf8, 0xe1, 0x1f, 0xfc, 0xf3, 0x3f, 0xff, 0xff, 0xff, }; + const unsigned char O2N[]={0x0, 0x1c, 0x1c, 0x0, 0x3e, 0x3e, 0x0, 0x7f, 0xfe, 0x3, 0xff, 0xfe, 0xf, 0xff, 0xfc, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0x1f, 0xff, 0xf8, 0xf, 0xff, 0xf0, 0xf, 0xff, 0xf0, 0x7, 0xff, 0xe0, 0x3, 0xdd, 0xc0, }; + + + Sprite S_Ours_1(O1 , O1N , 24 , 24 );S_Ours_1.CreateReverse(); + Sprite S_Ours_2(O2 , O2N , 24 , 24 );S_Ours_2.CreateReverse(); + + Sprite S_Ours[]={ S_Ours_1 , S_Ours_2}; + + Animation A_Ours(S_Ours , 2 , 250); + + +//Piaf + const unsigned char Piaf1[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xf8, 0x7, 0xf8, 0x17, 0xf8, 0x17, 0xf8, 0x11, 0xf0, 0x7, 0xe0, 0x7, 0xc0, 0x8f, 0xc0, 0x7f, 0xc0, 0x1f, 0xe0, 0x3f, 0xff, 0xff, }; + const unsigned char Piaf1N[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x7, 0xf8, 0xf, 0xfc, 0xf, 0xfc, 0xf, 0xfe, 0xf, 0xff, 0x1f, 0xfe, 0x3f, 0xfc, 0x7f, 0xf8, 0x7f, 0xf0, 0x7f, 0xf0, 0x3f, 0xe0, 0x1f, 0xc0, }; + + const unsigned char Piaf2[]={0xff, 0xff, 0xfe, 0x1f, 0xf8, 0x7, 0xf8, 0x17, 0xf8, 0x17, 0x88, 0x11, 0x80, 0x7, 0x80, 0x7, 0xd0, 0xf, 0xe1, 0x7f, 0xe1, 0x1f, 0xf0, 0xbf, 0xf0, 0xdf, 0xf0, 0x9f, 0xf8, 0x9f, 0xff, 0xff, }; + const unsigned char Piaf2N[]={0x1, 0xe0, 0x7, 0xf8, 0xf, 0xfc, 0xf, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0xf8, 0x7f, 0xf0, 0x3f, 0xf0, 0x1f, 0xe0, 0x1f, 0xf0, 0x1f, 0xf0, 0xf, 0xf0, 0x7, 0x60, }; + + const unsigned char Piaf3[]={0xff, 0xff, 0xc9, 0xff, 0x89, 0xff, 0x87, 0xff, 0x84, 0x1f, 0x84, 0x7, 0x84, 0x17, 0xc0, 0x17, 0xa0, 0x11, 0x90, 0x7, 0x80, 0x7, 0xc0, 0x8f, 0xc0, 0x7f, 0xe0, 0x1f, 0xf0, 0x3f, 0xff, 0xff, }; + const unsigned char Piaf3N[]={0x76, 0x0, 0x7f, 0x0, 0xff, 0x0, 0xff, 0xe0, 0xff, 0xf8, 0xff, 0xfc, 0xff, 0xfc, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0xf8, 0x7f, 0xf0, 0x3f, 0xf0, 0x1f, 0xe0, 0xf, 0xc0, }; + + Sprite S_Piaf_Repos(Piaf1 , Piaf1N , 16,16);S_Piaf_Repos.CreateReverse(); + + Sprite S_Piaf_Vole1(Piaf2 , Piaf2N , 16 ,16);S_Piaf_Vole1.CreateReverse(); + Sprite S_Piaf_Vole2(Piaf3 , Piaf3N , 16 ,16);S_Piaf_Vole2.CreateReverse(); + + Sprite S_Piaf_Vole[]={ S_Piaf_Vole1 , S_Piaf_Vole2}; + + Animation A_Piaf_Repos( S_Piaf_Repos ); + Animation A_Piaf_Vole( S_Piaf_Vole , 2 , 200 ); + + Animation A_Piaf[]={ A_Piaf_Repos , A_Piaf_Vole}; + +// Baby + const unsigned char Bb1[]={0xff, 0xff, 0xfe, 0xf, 0xfc, 0xf3, 0xfa, 0xb, 0xcc, 0x57, 0xc8, 0x53, 0xf8, 0x3, 0xf9, 0xfb, 0xfc, 0x77, 0xfe, 0xf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf8, 0x3f, 0xf8, 0x1f, 0xff, 0xff, }; + const unsigned char Bb1N[]={0x3, 0xf0, 0xf, 0xfc, 0x1f, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x3f, 0xfe, 0xf, 0xfe, 0xf, 0xfc, 0x1f, 0xfc, 0x1f, 0xfc, 0x1f, 0xf8, 0xf, 0xf0, 0xf, 0xe0, 0xf, 0xf0, 0x7, 0xf0, }; + + const unsigned char Bb2[]={0xff, 0xff, 0x9f, 0xff, 0x9e, 0x7, 0xf8, 0xfb, 0xfa, 0x7, 0xfc, 0x2b, 0xf8, 0x2b, 0xf8, 0x3, 0xf8, 0xfb, 0xfc, 0x37, 0xfe, 0xf, 0xff, 0xfd, 0xdf, 0xc9, 0x8f, 0xf3, 0x9f, 0xff, 0xff, 0xff, }; + const unsigned char Bb2N[]={0x63, 0xc0, 0xff, 0xf8, 0xff, 0xfc, 0x7f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0xf, 0xfe, 0xf, 0xfe, 0xf, 0xfe, 0xf, 0xfc, 0x1f, 0xfe, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xfe, 0xf8, 0x1c, 0xe0, 0x0, }; + + Sprite S_Baby_1(Bb1 , Bb1N , 16 ,16);S_Baby_1.CreateReverse(); + Sprite S_Baby_2(Bb2 , Bb2N , 16 ,16);S_Baby_1.CreateReverse(); + + Sprite S_Baby[]={ S_Baby_1 , S_Baby_2}; + + Animation A_Baby(S_Baby , 2 , 200); + +// Fantome + + const unsigned char Bou1[]={0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xc0, 0xff, 0xc1, 0x7, 0x81, 0x2f, 0x82, 0x2b, 0xc2, 0x2b, 0xc2, 0x3, 0xe5, 0x3, 0x99, 0x87, 0xc0, 0xff, 0xef, 0xf, 0xe8, 0x9f, 0xf0, 0x7f, 0xff, 0xff, }; + const unsigned char Bou1N[]={0x0, 0x0, 0xf, 0xc0, 0x3f, 0xf0, 0x7f, 0xf8, 0x7f, 0xfc, 0xff, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfc, 0x7f, 0xf8, 0x7f, 0xf8, 0x3f, 0xf0, 0x1f, 0xe0, 0xf, 0xc0, }; + + const unsigned char Bou2[]={0xff, 0xff, 0xfc, 0x1f, 0xf0, 0x3f, 0xf0, 0x43, 0x88, 0x8b, 0x84, 0x8b, 0x80, 0x89, 0x80, 0x81, 0xc0, 0x81, 0xf0, 0x41, 0xc0, 0x3f, 0xf0, 0x7, 0x88, 0x9, 0x84, 0x11, 0x8f, 0xe3, 0xff, 0xff, }; + const unsigned char Bou2N[]={0x3, 0xe0, 0xf, 0xf8, 0x1f, 0xfc, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x70, 0x1c, }; + + Sprite S_Ghost_1(Bou1 , Bou1N , 16 ,16);S_Ghost_1.CreateReverse(); + Sprite S_Ghost_2(Bou2 , Bou2N , 16 ,16);S_Ghost_2.CreateReverse(); + + Sprite S_Ghost[]={S_Ghost_1 , S_Ghost_2}; + + Animation A_Ghost(S_Ghost , 2 , 200); + +// Champi + + const unsigned char Champ1[]={0xff, 0xff, 0xfc, 0x3f, 0xf0, 0xf, 0xe0, 0x7, 0xc0, 0x3, 0x80, 0x3, 0x80, 0x1, 0x80, 0x1, 0x84, 0x1, 0xca, 0x13, 0xf9, 0xef, 0xf0, 0xf, 0xf0, 0xf, 0xf8, 0xbf, 0xe0, 0x1f, 0xff, 0xff, }; + const unsigned char Champ1N[]={0x3, 0xc0, 0xf, 0xf0, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf8, 0x3f, 0xf0, 0x3f, 0xf0, 0x1f, 0xe0, }; + + const unsigned char Champ2[]={0xff, 0xff, 0xf0, 0x7f, 0xf0, 0x1f, 0xe1, 0x5f, 0x93, 0x6f, 0x89, 0x2f, 0x80, 0xf, 0xc0, 0x7, 0xf0, 0x43, 0xf8, 0x41, 0xf8, 0x9, 0xf8, 0x9, 0xf0, 0xf, 0xfa, 0x3f, 0xe0, 0x1f, 0xff, 0xff, }; + const unsigned char Champ2N[]={0xf, 0x80, 0x1f, 0xe0, 0x1f, 0xf0, 0x7f, 0xf0, 0xff, 0xf8, 0xff, 0xf8, 0xff, 0xf8, 0x7f, 0xfc, 0x3f, 0xfe, 0xf, 0xff, 0xf, 0xff, 0xf, 0xff, 0x1f, 0xfe, 0x3f, 0xf8, 0x3f, 0xf0, 0x1f, 0xe0, }; + + const unsigned char Champ3[]={0xff, 0xff, 0xfe, 0xf, 0xf8, 0x7, 0xf8, 0x7, 0xf0, 0xd7, 0xf1, 0x95, 0xe1, 0xa9, 0xc0, 0x1, 0x88, 0x8b, 0x88, 0x8f, 0x90, 0xf, 0xf0, 0xf, 0xf0, 0x7, 0xfe, 0x8f, 0xfc, 0x3, 0xff, 0xff, }; + const unsigned char Champ3N[]={0x1, 0xf0, 0x7, 0xf8, 0xf, 0xfc, 0xf, 0xfc, 0x1f, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xfe, 0xff, 0xfc, 0xff, 0xf8, 0x7f, 0xf8, 0x1f, 0xfc, 0xf, 0xfe, 0x7, 0xfe, 0x3, 0xfc, }; + + Sprite S_Champ_Normal(Champ1 , Champ1N , 16 ,16);S_Champ_Normal.CreateReverse(); + Sprite S_Champ_HeadLess_1(Champ2 , Champ2N , 16 ,16);S_Champ_HeadLess_1.CreateReverse(); + Sprite S_Champ_HeadLess_2(Champ3 , Champ3N , 16 ,16);S_Champ_HeadLess_2.CreateReverse(); + + Sprite S_Champ_HeadLess[]={S_Champ_HeadLess_1 , S_Champ_HeadLess_2}; + + Animation A_Champ_Normal(S_Champ_Normal); + Animation A_Champ_HeadLess(S_Champ_HeadLess , 2 , 200); + + Animation A_Champ[]={A_Champ_Normal , A_Champ_HeadLess }; + +//Oupa + + const unsigned char Oupa1[]={0xff, 0xff, 0x8f, 0xf9, 0x84, 0x19, 0x84, 0x5, 0x82, 0x3, 0xc2, 0xc7, 0xe2, 0x29, 0x9c, 0x29, 0x88, 0x1, 0xf0, 0x1, 0xe0, 0x13, 0xd0, 0x3, 0xc8, 0xf, 0xc7, 0xff, 0xe3, 0x1f, 0xff, 0xff, }; + const unsigned char Oupa1N[]={0x70, 0x6, 0xfb, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x7f, 0xf8, 0x3f, 0xf0, 0x1c, 0xe0, }; + + const unsigned char Oupa2[]={0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xf0, 0x7, 0xf8, 0x3, 0xc4, 0xc7, 0xc2, 0x29, 0x82, 0x29, 0x84, 0x1, 0x8c, 0x1, 0x94, 0x13, 0xe8, 0x3, 0xf8, 0xf, 0xc7, 0xff, 0xe2, 0x3f, 0xff, 0xff, }; + const unsigned char Oupa2N[]={0x0, 0x0, 0x3, 0xe0, 0xf, 0xf8, 0x1f, 0xfc, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x7f, 0xf8, 0x3f, 0xe0, 0x1d, 0xc0, }; + + Sprite S_Oupa_1(Oupa1 , Oupa1N , 16 ,16);S_Oupa_1.CreateReverse(); + Sprite S_Oupa_2(Oupa2 , Oupa2N , 16 ,16);S_Oupa_2.CreateReverse(); + + Sprite S_Oupa[]={S_Oupa_1 , S_Oupa_2}; + + Animation A_Oupa(S_Oupa , 2 , 200); + +//Map + + const unsigned char Tileset1[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x10, 0x39, 0x39, 0xff, 0xff, 0xff, 0xff, 0x52, 0x52, 0x9e, 0x9e, 0x93, 0x93, 0x12, 0x12, 0x1c, 0x1c, 0x95, 0x95, 0x92, 0x92, 0x62, 0x62, 0x7f, 0xff, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x90, 0x10, 0xf9, 0x39, 0xff, 0xff, 0x6e, 0xef, 0x0, 0xc2, 0x0, 0x82, 0x0, 0xc1, 0x0, 0x82, 0x0, 0xc0, 0x0, 0x81, 0x0, 0xc2, 0x0, 0x82, 0xff, 0xfe, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x8, 0x9, 0x9c, 0x9f, 0xff, 0xff, 0xf7, 0x76, 0x43, 0x0, 0x41, 0x0, 0x83, 0x0, 0x41, 0x0, 0x3, 0x0, 0x81, 0x0, 0x43, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x18, 0x0, 0x20, 0x0, 0x40, 0x0, 0x40, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x30, 0xc, 0x40, 0x2, 0x80, 0x1, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0xc, 0x0, 0x2, 0x0, 0x2, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1e, 0x0, 0x60, 0x0, 0x80, 0x0, 0x60, 0x0, 0x18, 0x0, 0x4, 0x0, 0x3, 0x0, 0x0, 0x80, 0x0, 0x40, 0x0, 0x30, 0x0, 0x1f, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x3, 0x60, 0xe, 0x3f, 0xfc, 0xf, 0xf0, 0x1, 0x0, 0x7, 0x0, 0x1, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x1, 0x0, 0x1, 0x0, 0x3, 0x0, 0xe, 0x0, 0x3c, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0xcf, 0xff, 0xaf, 0xff, 0xd5, 0x55, 0xc0, 0x0, 0xc0, 0x0, 0xd0, 0x10, 0xc4, 0x4, 0xc0, 0x40, 0xc1, 0x1, 0xc0, 0x20, 0xc8, 0x8, 0xc0, 0x80, 0xc2, 0x2, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x0, 0x0, 0x0, 0x0, 0x10, 0x10, 0x4, 0x4, 0x40, 0x40, 0x1, 0x1, 0x20, 0x20, 0x8, 0x8, 0x80, 0x80, 0x2, 0x2, 0xff, 0xfe, 0xff, 0xff, 0x0, 0x3, 0xff, 0xf3, 0xff, 0xf5, 0x55, 0x57, 0x0, 0x3, 0x0, 0x3, 0x10, 0x13, 0x4, 0x3, 0x40, 0x43, 0x1, 0x3, 0x20, 0x23, 0x8, 0xb, 0x80, 0x83, 0x2, 0x3, 0xd0, 0x10, 0xc4, 0x4, 0xc0, 0x40, 0xc1, 0x1, 0xc0, 0x20, 0xc8, 0x8, 0xc0, 0x80, 0xc2, 0x2, 0xd0, 0x10, 0xc4, 0x4, 0xc0, 0x40, 0xc1, 0x1, 0xc0, 0x20, 0xc8, 0x8, 0xc0, 0x80, 0xc2, 0x2, 0x10, 0x10, 0x4, 0x4, 0x40, 0x40, 0x1, 0x1, 0x20, 0x20, 0x8, 0x8, 0x80, 0x80, 0x2, 0x2, 0x10, 0x10, 0x4, 0x4, 0x40, 0x40, 0x1, 0x1, 0x20, 0x20, 0x8, 0x8, 0x80, 0x80, 0x2, 0x2, 0x10, 0x13, 0x4, 0x3, 0x40, 0x43, 0x1, 0x3, 0x20, 0x23, 0x8, 0xb, 0x80, 0x83, 0x2, 0x3, 0x10, 0x13, 0x4, 0x3, 0x40, 0x43, 0x1, 0x3, 0x20, 0x23, 0x8, 0xb, 0x80, 0x83, 0x2, 0x3, 0x13, 0x10, 0x7, 0x4, 0x4b, 0x40, 0x12, 0x21, 0x22, 0x60, 0x22, 0xae, 0x43, 0x34, 0x46, 0x26, 0x3c, 0x26, 0x42, 0x4d, 0x81, 0x92, 0x81, 0x94, 0x81, 0x34, 0x81, 0x48, 0x42, 0xf9, 0x3c, 0x5, 0x10, 0x10, 0x4, 0x4, 0x40, 0x40, 0x1, 0x1, 0x20, 0x20, 0x8, 0x8, 0x80, 0x80, 0x2, 0x2, 0x13, 0x10, 0x7, 0x4, 0x4b, 0x40, 0x12, 0x21, 0x22, 0x60, 0x22, 0xae, 0x43, 0x34, 0x46, 0x26, 0x3c, 0x26, 0x42, 0x4d, 0x81, 0x92, 0x81, 0x94, 0x81, 0x34, 0x81, 0x48, 0x42, 0xf9, 0x3c, 0x5, 0x8d, 0xc2, 0xf2, 0x32, 0x92, 0x9, 0x91, 0x5, 0x21, 0x85, 0x21, 0x43, 0x42, 0x7e, 0x42, 0x62, 0x0, 0xf, 0x0, 0x10, 0x0, 0x20, 0x0, 0x43, 0x0, 0x8c, 0x0, 0x88, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0xf0, 0x0, 0x8, 0x0, 0x4, 0x0, 0xc2, 0x0, 0x31, 0x0, 0x11, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x9, 0x0, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0x0, 0x90, 0xf, 0xf0, 0x10, 0x8, 0x20, 0x4, 0x43, 0xc2, 0x8c, 0x31, 0x88, 0x11, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x90, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x8, 0x8, 0x10, 0xa8, 0x20, 0x91, 0x3d, 0x52, 0x42, 0x92, }; + + bool TileProp[]= { false , true , true , true , false , false , false , false , false , false , true , true , true , true , true , true , true , true , true , false ,false , false , false , false , false }; + + const unsigned char * map1[]={ + "000000000000000000000000000000000000456000000000000000000000000000000000000000000", + "000000000000000045600000000000000000789000000045600000004560000000000000000000000", + "0000456000000000789000CD000000000000000000000078900000007890000000000000456000000", + "56CD78900CD00000000000EF000000456000:<0000000000000000000000000000000000789000000", + "89EF00000EF0000000000HFGHHH000789000=?000CD0000F000:<00:;<00000000F00F000000:;;;<", + "0HFGH00HHFGHH0HHHH:;;;;;;:<0HH00000H=?0HHFF0000GDH:>?00=>><0HH00H0GFHGFHH0:;>>>>?", + ";;;;;;;:;;;;;;;;;;>@>@@@>=>;;;;;;;;;@A;;;;;;;;;;;;>>?00=>>>;;;;;;;;;;;;;;;>>>>>>?", + };