diff --git a/GUI.cpp b/GUI.cpp index be512f4..4bf6ace 100644 --- a/GUI.cpp +++ b/GUI.cpp @@ -65,7 +65,6 @@ void Script_GUI::Update() PrintV(122 , 58 , restart); if(input_press(K_EXIT))GetEngine()->StopGame(); - if(input_press(K_ALPHA))GetEngine()->ShowFps(); } void Script_GUI::UpdateEverySecond() @@ -258,3 +257,91 @@ void Script_GUI::TryAgain() } } + +void Script_GUI::EndStage() +{ + int nscore = 0; + + const unsigned char stageEnd[]={0x0, 0x0, 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, 0x3, 0xfc, 0x3f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xcf, 0xf3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x73, 0xce, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x40, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x40, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x40, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x42, 0x42, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4e, 0x72, 0x10, 0x0, 0xc, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4e, 0x72, 0x10, 0x0, 0x12, 0x90, 0x0, 0x9, 0x8c, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8, 0x44, 0x22, 0x1f, 0x0, 0x1a, 0xd2, 0x80, 0x1a, 0x52, 0x90, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x40, 0x2, 0x20, 0x0, 0x16, 0xb2, 0x85, 0xb, 0x5a, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xfc, 0x40, 0x2, 0x3f, 0x0, 0x12, 0x92, 0x82, 0xa, 0xd6, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x2, 0x40, 0x2, 0x40, 0x0, 0xc, 0x61, 0x5, 0xa, 0x52, 0x90, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0x40, 0x2, 0x80, 0x0, 0x0, 0x0, 0x0, 0x9, 0x8c, 0x60, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0x0, 0x0, 0x80, 0x0, 0xc, 0x63, 0x0, 0x1, 0x86, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0x0, 0x0, 0x80, 0x4, 0x12, 0x94, 0x90, 0x2, 0x49, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0xff, 0xff, 0x80, 0x4, 0x1a, 0xd6, 0x98, 0x2, 0x4d, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0x16, 0xb5, 0x90, 0xa0, 0x8b, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0x12, 0x94, 0x90, 0x41, 0x9, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0xc, 0x63, 0x10, 0xa3, 0xc6, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0xc, 0x63, 0x18, 0xc6, 0x30, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0x12, 0x94, 0xa5, 0x29, 0x48, 0x8, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0x1a, 0xd6, 0xb5, 0xad, 0x68, 0xc, 0x3c, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x1f, 0x16, 0xb5, 0xad, 0x6b, 0x58, 0xe8, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0x12, 0x94, 0xa5, 0x29, 0x48, 0xa8, 0x3c, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x4, 0xc, 0x63, 0x18, 0xc6, 0x30, 0xe8, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1e, 0x24, 0x78, 0x9c, 0x1c, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc, 0xe7, 0x30, 0x7c, 0x3c, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc, 0xff, 0x30, 0x76, 0x36, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x1c, 0xbd, 0x38, 0xb7, 0x77, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf6, 0xe7, 0x6f, 0xa3, 0xe3, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xdf, 0x0, 0xfb, 0xa3, 0xe3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xdc, 0x3c, 0x3b, 0xa1, 0xc1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xcf, 0xff, 0xf3, 0xa1, 0xc1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xcc, 0x7e, 0x33, 0xa1, 0xc1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x8f, 0x3c, 0xf1, 0xa1, 0xc1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x1b, 0xc3, 0xd8, 0x20, 0x0, 0x0, 0x1c, 0xee, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1d, 0x7e, 0xb8, 0x40, 0x0, 0x0, 0x12, 0x88, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x34, 0x81, 0x2c, 0x40, 0x0, 0x0, 0x1c, 0xce, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x34, 0x81, 0x2c, 0x80, 0x0, 0x0, 0x12, 0x82, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xcc, 0x81, 0x33, 0xb0, 0x0, 0x0, 0x1c, 0xee, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x9, 0x81, 0x90, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x11, 0x0, 0x88, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xef, 0x0, 0xf7, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1d, 0x81, 0xb8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe8, 0xc3, 0x17, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x7e, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x42, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x81, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x70, 0x0, 0x0, 0x0, }; + const unsigned char nombers[]={0x6f, 0x9f, 0xdf, 0xbf, 0x9f, 0x6f, 0x1f, 0x3f, 0x1f, 0x1f, 0x1f, 0x1f, 0x6f, 0x9f, 0x9f, 0x2f, 0x4f, 0xff, 0x6f, 0x9f, 0x2f, 0x1f, 0x9f, 0x6f, 0x8f, 0x8f, 0xaf, 0x7f, 0x2f, 0x2f, 0x7f, 0x8f, 0xef, 0x1f, 0x1f, 0xef, 0x8f, 0x8f, 0xef, 0x9f, 0x9f, 0x6f, 0xff, 0x1f, 0x2f, 0x2f, 0x4f, 0x4f, 0x6f, 0x9f, 0x6f, 0x9f, 0x9f, 0x6f, 0x6f, 0x9f, 0x9f, 0x7f, 0x1f, 0xef, }; + + ML_clear_vram(); + + ML_bmp_or(stageEnd,0,0,128,64); + + + for(int i = 0 ; i < 2; i++) + { + + for(int j = 0; j <= mod(restart , pow( 10, 2 - i )) / pow( 10, 1 - i ); j++ ) + { + ML_rectangle(11 + i * 5 ,9, 14 + i * 5 ,15,1,ML_WHITE,ML_WHITE); + ML_bmp_or(nombers + j * 6 , 11 + i * 5 , 9 , 4 , 6 ); + ML_display_vram(); + Sleep(70); + } + + } + + for(int i = 0 ; i < 3; i++) + { + + for(int j = 0; j <= mod(timer , pow( 10, 3 - i )) / pow( 10, 2 - i ); j++ ) + { + ML_rectangle(11 + i * 5 ,17, 14 + i * 5 ,22,1,ML_WHITE,ML_WHITE); + ML_bmp_or(nombers + j * 6 , 11 + i * 5 , 17 , 4 , 6 ); + ML_display_vram(); + Sleep(50); + } + + } + + for(int i = 0 ; i < 7; i++) + { + + for(int j = 0; j <= mod(score , pow( 10, 7 - i )) / pow( 10, 6 - i ); j++ ) + { + ML_rectangle(11 + i * 5 ,26, 14 + i * 5 ,31,1,ML_WHITE,ML_WHITE); + ML_bmp_or(nombers + j * 6 , 11 + i * 5 , 26 , 4 , 6 ); + ML_display_vram(); + Sleep(30); + } + + } + + nscore = 1000 * restart + 20 * timer + score; + + for(int i = 0 ; i < 7; i++) + { + + for(int j = 0; j <= mod(nscore , pow( 10, 7 - i )) / pow( 10, 6 - i ); j++ ) + { + ML_rectangle(77 + i * 5 ,26, 80 + i * 5 ,32,1,ML_WHITE,ML_WHITE); + ML_bmp_or(nombers + j * 6 , 77 + i * 5 , 26 , 4 , 6 ); + ML_display_vram(); + Sleep(30); + } + + } + + + PrintV(24,50,nscore); + + ML_display_vram(); + + bool end = false; + + while(end == false) + { + input_update(); + + if(input_trigger(K_EXE))end = true; + + Sleep(200); + } + + GetEngine()->StopGame(); + ML_clear_vram(); + + +} diff --git a/GUI.hpp b/GUI.hpp index 61da6bd..ab88d87 100644 --- a/GUI.hpp +++ b/GUI.hpp @@ -14,6 +14,7 @@ class Script_GUI: public Script void DelVie(int v); int GetVie(); void AddScore(int v); + void EndStage(); void Lose(); void TryAgain(); diff --git a/IA_Whispy.cpp b/IA_Whispy.cpp index 967e49a..a0f879c 100644 --- a/IA_Whispy.cpp +++ b/IA_Whispy.cpp @@ -60,7 +60,7 @@ void Mob_Whispy::Update() Ia_Souffle * Buffer_Script = new Ia_Souffle; Buffer->AffectScript(Buffer_Script); - Buffer->GetTransform()->SetXY( GetX() - 16 , GetY() + 2); + Buffer->GetTransform()->SetXY( GetX() - 4 , GetY() + 2); Buffer->AddRigidBody(); @@ -116,6 +116,18 @@ void Mob_Whispy::Update() choix = -1; SetIt(2); + Object * Buffer = new Object; + + Ia_FS * Buffer_Script = new Ia_FS; + Buffer->AffectScript(Buffer_Script); + + Buffer->GetTransform()->SetXY( 50, 50 ); + Buffer->GetRender()->SetRender(A_FS); + + Buffer->AffectTag("FS"); + + GetEngine()->AddObject(Buffer); + GetObject()->AffectTag(" "); } @@ -183,3 +195,17 @@ void Ia_Souffle::Update() if(CollisionDecor( GetX() - 1, GetY() ) )GetEngine()->DelObject(GetObject()); } + +Ia_FS::Ia_FS() +{ + time = 0; +} + +void Ia_FS::Update() +{ + if(!time)GetObject()->GetRender()->SetDirection(GetObject()->GetRender()->GetDirection() + 45); + + time ++; + + if(time > 5)time = 0; +} diff --git a/IA_Whispy.hpp b/IA_Whispy.hpp index c8c620c..4db3af0 100644 --- a/IA_Whispy.hpp +++ b/IA_Whispy.hpp @@ -17,6 +17,7 @@ class Mob_Whispy: public Mob Animation A_Souffle; Animation A_Apple; + Animation A_FS; private: @@ -44,10 +45,17 @@ class Ia_Souffle: public Script { public: - void Update(); - }; +class Ia_FS: public Script +{ + public: + + Ia_FS(); + + void Update(); + int time; +}; #endif diff --git a/Kirby.cpp b/Kirby.cpp index 6e91b69..ff73412 100644 --- a/Kirby.cpp +++ b/Kirby.cpp @@ -16,7 +16,7 @@ int Niveau1() Object * Kirby = new Object; Kirby->GetTransform()->SetXY(8, 32); - Kirby->GetRender()->SetRender(A_Kirby , 12); + Kirby->GetRender()->SetRender(A_Kirby , 13); Control * Kirby_Script = new Control; Kirby->AffectScript(Kirby_Script); @@ -57,6 +57,22 @@ int Niveau1() Whispy->AffectScript(Whispy_Script); Whispy_Script->A_Apple = A_Apple; Whispy_Script->A_Souffle = A_Soufle; + Whispy_Script->A_FS = A_FinalStar; + + Object * Pill1 = new Object; + Pill1->GetTransform()->SetXY(0,0); + Pill1->GetRender()->SetRender(A_Pill); + Pill1->AffectTag("Pill"); + + Object * Pill2 = new Object; + Pill2->GetTransform()->SetXY(0,0); + Pill2->GetRender()->SetRender(A_Pill); + Pill2->AffectTag("Pill"); + + Object * MHealth1 = new Object; + MHealth1->GetTransform()->SetXY(0,0); + MHealth1->GetRender()->SetRender(A_MHealth); + MHealth1->AffectTag("MHealth"); //***********Creation de la map*************** @@ -98,11 +114,11 @@ int Niveau1() Game.SetCurrentLevel(0); - Game.AddObject(Kirby,3); + Game.AddObject(Kirby,0); Game.AddObject(Bomber,1); Game.AddObject(Whispy,3); - Game.SetCurrentLevel(3); + Game.SetCurrentLevel(0); Game.AffectGui(Game_GUI); @@ -112,6 +128,64 @@ int Niveau1() } +int SelectLevel() +{ + const unsigned char S_level[]={0x30, 0xf, 0xf0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x30, 0xf, 0xf0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x48, 0x70, 0xe, 0x12, 0x0, 0x0, 0x0, 0x0, 0x48, 0x70, 0xe, 0x12, 0x0, 0x0, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x86, 0xf, 0xf0, 0x61, 0x0, 0x0, 0x0, 0x0, 0x86, 0xf, 0xf0, 0x61, 0x0, 0x0, 0x0, 0x0, 0x84, 0x60, 0x6, 0x21, 0x0, 0x0, 0x0, 0x0, 0x84, 0x60, 0x6, 0x21, 0x0, 0xff, 0xff, 0x80, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x1, 0x0, 0x0, 0x40, 0xce, 0x1, 0x0, 0x73, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x73, 0x2, 0x0, 0x0, 0x20, 0xbc, 0x1, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x1d, 0x2, 0x62, 0x33, 0x20, 0x9c, 0x9, 0x20, 0x33, 0x0, 0x0, 0x0, 0x0, 0x98, 0x1f, 0xf0, 0x13, 0x2, 0x55, 0x44, 0x20, 0x9e, 0x9, 0xf1, 0x73, 0x0, 0x0, 0x0, 0x0, 0x98, 0x60, 0xc, 0x93, 0x2, 0x65, 0x77, 0x20, 0x8f, 0x16, 0x9e, 0x51, 0x0, 0x0, 0x0, 0x0, 0x88, 0x80, 0x3, 0x51, 0x2, 0x55, 0x11, 0x20, 0x89, 0xa0, 0x7, 0x91, 0x0, 0x0, 0x0, 0x0, 0x89, 0x0, 0x1, 0x51, 0x2, 0x62, 0x66, 0x20, 0x98, 0xe0, 0x7, 0x13, 0x0, 0x3, 0x6, 0xc, 0x99, 0x0, 0x0, 0xd3, 0x2, 0x0, 0x0, 0x20, 0x98, 0x23, 0x24, 0x13, 0x0, 0x7, 0x8f, 0x1e, 0x9a, 0x0, 0x0, 0xd3, 0x1, 0x0, 0x0, 0x40, 0x88, 0x23, 0x24, 0x11, 0x0, 0x7, 0x8f, 0x1e, 0x8a, 0x0, 0x6, 0x91, 0x0, 0xff, 0xff, 0x80, 0x88, 0x23, 0x24, 0x11, 0x0, 0x3, 0x6, 0xc, 0x8a, 0x60, 0x9, 0xd1, 0x0, 0x1, 0x80, 0x0, 0x98, 0x23, 0x24, 0x13, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x6c, 0x2, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x98, 0x21, 0x4, 0x13, 0x0, 0x0, 0x0, 0x0, 0x9a, 0x60, 0x2, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x88, 0x20, 0x1e, 0x11, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x0, 0x9, 0x91, 0x0, 0x0, 0x0, 0x0, 0x88, 0x20, 0x21, 0x11, 0x0, 0x3, 0x0, 0x0, 0x8a, 0x0, 0x7, 0xd1, 0x0, 0x1, 0x80, 0x0, 0x98, 0x20, 0x1e, 0x13, 0x0, 0x7, 0x80, 0x0, 0x99, 0x0, 0x0, 0xd3, 0x0, 0x3, 0xc0, 0x0, 0x98, 0x20, 0x4, 0x13, 0x0, 0x7, 0x80, 0x0, 0x99, 0x0, 0x1, 0x53, 0x0, 0x3, 0xc0, 0x0, 0x88, 0x20, 0xc4, 0x11, 0x0, 0x3, 0x0, 0x0, 0x88, 0x80, 0x1, 0x51, 0x0, 0x1, 0x80, 0x0, 0x88, 0x20, 0xc4, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x40, 0x2, 0x91, 0x0, 0x0, 0x0, 0x0, 0x98, 0x20, 0xc4, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x30, 0x1c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x20, 0x4, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0xe, 0xf8, 0x13, 0x0, 0x0, 0x0, 0x0, 0x88, 0x20, 0x4, 0x11, 0x0, 0x3, 0x0, 0x0, 0x88, 0x11, 0x5c, 0x11, 0x0, 0x1, 0x80, 0x0, 0x88, 0x20, 0x4, 0x11, 0x0, 0x7, 0x80, 0x0, 0x88, 0x11, 0xbc, 0x11, 0x0, 0x3, 0xc0, 0x0, 0x98, 0x40, 0x2, 0x13, 0x0, 0x7, 0x80, 0x0, 0x98, 0x11, 0xb8, 0x13, 0x0, 0x3, 0xc0, 0x0, 0x98, 0x80, 0x1, 0x13, 0x0, 0x3, 0x0, 0x0, 0x98, 0x11, 0xb8, 0x13, 0x0, 0x1, 0x80, 0x0, 0x88, 0x91, 0x89, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0xb, 0x60, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x6e, 0x76, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x6, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0xf, 0xf0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x30, 0xf, 0xf0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x48, 0x70, 0xe, 0x12, 0x0, 0x0, 0x0, 0x0, 0x48, 0x70, 0xe, 0x12, 0x0, 0x0, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x3, 0x0, 0x0, 0x86, 0xf, 0xf0, 0x61, 0x0, 0x0, 0x0, 0x0, 0x86, 0xf, 0xf0, 0x61, 0x0, 0x7, 0x80, 0x0, 0x84, 0x60, 0x6, 0x21, 0x0, 0x6, 0x0, 0x0, 0x84, 0x60, 0x6, 0x21, 0x0, 0x7, 0x80, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0xf, 0x0, 0x0, 0x85, 0x80, 0x1, 0xa1, 0x0, 0x3, 0x0, 0x0, 0xce, 0x0, 0x0, 0x73, 0x0, 0xf, 0x0, 0x0, 0xce, 0x0, 0x0, 0x73, 0x0, 0x0, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x1d, 0x0, 0x6, 0x0, 0x0, 0xbc, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x98, 0x60, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x9f, 0x30, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0, 0x13, 0x0, 0x3, 0x0, 0x0, 0x89, 0xa1, 0xc8, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x10, 0x0, 0x11, 0x0, 0x7, 0x80, 0x0, 0x8a, 0x40, 0x28, 0x11, 0x0, 0x6, 0x0, 0x0, 0x88, 0xf, 0x20, 0x11, 0x0, 0x7, 0x80, 0x0, 0x9a, 0x80, 0x28, 0x13, 0x0, 0xf, 0x0, 0x0, 0x98, 0x11, 0xc0, 0x13, 0x0, 0x3, 0x0, 0x0, 0x99, 0x0, 0x10, 0x13, 0x0, 0xf, 0x0, 0x0, 0x98, 0xe0, 0x3c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x1b, 0x7c, 0xd1, 0x0, 0x6, 0x0, 0x0, 0x89, 0xa0, 0x16, 0x11, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x1b, 0x83, 0x31, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x0, 0x2, 0x11, 0x0, 0x0, 0x0, 0x0, 0x9a, 0x80, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x9a, 0xf, 0x1, 0x13, 0x0, 0x3, 0x6, 0xc, 0x9b, 0x2, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x9a, 0x10, 0x81, 0x13, 0x0, 0x7, 0x8f, 0x1e, 0x88, 0x86, 0x0, 0x71, 0x0, 0x6, 0xc, 0x18, 0x8a, 0x3e, 0x41, 0x31, 0x0, 0x7, 0x8f, 0x1e, 0x8b, 0x88, 0x6c, 0x51, 0x0, 0xf, 0x1e, 0x3c, 0x89, 0x27, 0x41, 0x71, 0x0, 0x3, 0x6, 0xc, 0x9c, 0x68, 0x6c, 0x53, 0x0, 0xf, 0x1e, 0x3c, 0x9a, 0x27, 0x40, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x9c, 0x5a, 0x0, 0x53, 0x0, 0x6, 0xc, 0x18, 0x9a, 0x3d, 0x40, 0x53, 0x0, 0x0, 0x0, 0x0, 0x8b, 0x8c, 0x0, 0x51, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x19, 0x80, 0x51, 0x0, 0x0, 0x0, 0x0, 0x88, 0x2, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0, 0x8a, 0xf, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0, 0x98, 0xe, 0x0, 0x93, 0x0, 0x0, 0x0, 0x0, 0x99, 0x0, 0x3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x11, 0x83, 0x13, 0x0, 0x0, 0x0, 0x0, 0x99, 0x40, 0x16, 0x13, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x7d, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0xe0, 0x38, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0xe, 0x8, 0x91, 0x0, 0x0, 0x0, 0x0, 0x88, 0x11, 0x60, 0x11, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x4, 0x93, 0x0, 0x0, 0x0, 0x0, 0x98, 0xf, 0xc0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x98, 0x8, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x11, }; + + + bool end = false; + int display = 15; + + int choix = 1; + + while(end == false) + { + input_update(); + + if(input_trigger(K_EXE))end = true; + + ML_clear_vram(); + + ML_bmp_or_cl(S_level,0,0,128,64); + + if(display < 0) + { + switch(choix) + { + case 1: ML_rectangle(0,0,31,31,1,ML_WHITE,ML_WHITE); break; + case 2: ML_rectangle(32,32,63,63,1,ML_WHITE,ML_WHITE); break; + case 3: ML_rectangle(64,0,95,31,1,ML_WHITE,ML_WHITE); break; + case 4: ML_rectangle(96,32,128,64,1,ML_WHITE,ML_WHITE); break; + default:break; + } + + if(display < -15)display = 15; + } + + display --; + + ML_rectangle(0,32,31,64,1,ML_WHITE,ML_WHITE); + ML_rectangle(32,0,63,31,1,ML_WHITE,ML_WHITE); + ML_rectangle(64,32,95,64,1,ML_WHITE,ML_WHITE); + ML_rectangle(109,15,115,30,1,ML_WHITE,ML_WHITE); + + ML_display_vram(); + + Sleep(25); + } + + for(int i = 0 ; i < 190 ; i ++) + { + ML_line(-1,i,i,-1,ML_BLACK); + ML_display_vram(); + Sleep(3); + } + + ML_clear_vram(); + + return choix; + +} int Menu() { @@ -151,7 +225,7 @@ int Menu() Sleep(1500); - int fin = 0; + int end = 0; while(1) { @@ -167,28 +241,38 @@ int Menu() A_Tableau.DrawAnim(36,0 , 0); - if(fin == 0) + if(end == 0) { x--; if(x < 0 ) x = 127; Kirby.DrawAnim(16 , 38 , 0); - if(input_press(K_EXE))fin = 1; + if(input_press(K_EXE))end = 1; } else { - fin = fin + 2; + end = end + 2; - Kirby.DrawAnim(16 + fin , 38 ,0); + Kirby.DrawAnim(16 + end , 38 ,0); - if(fin > 111) + if(end > 111) { - Niveau1(); - Sleep(500); + + switch(SelectLevel()) + { + case 1: + Niveau1(); + break; + default: + + break; + } + + Sleep(200); input_update(); - fin = 0; + end = 0; } } diff --git a/Script_Control.cpp b/Script_Control.cpp index 9fb4535..7a0fd23 100644 --- a/Script_Control.cpp +++ b/Script_Control.cpp @@ -13,7 +13,7 @@ void Control::Start() isfull = 0; ishurt = 0; - compteur = 0; + couldown = 0; direction = 0; @@ -39,7 +39,7 @@ void Control::Teleport( int x , int y , int level ) for(int i = 0 ; i < 190 ; i ++) { - ML_line(0,i,i,0,ML_BLACK); + ML_line(-1,i,i,-1,ML_BLACK); ML_display_vram(); Sleep(3); } @@ -56,6 +56,8 @@ void Control::Teleport( int x , int y , int level ) void Control::Update() { + if(couldown)couldown--; + boss = false; for(int i = 0 ; i < GetEngine()->GetCurrentLevel()->GetNbObject() ; i++ ) @@ -111,7 +113,17 @@ void Control::Update() GetBody()->velocity.x = 0; GetBody()->velocity.y = 0; } + + if(!mod(isnhit,3)) + { + if(GetObject()->GetRender()->GetActivate()) + GetObject()->GetRender()->DeActivateRender(); + else + GetObject()->GetRender()->ActivateRender(); + } + ishurt --; + isnhit --; } else //Sinon le joueur peut le controller { @@ -120,32 +132,56 @@ void Control::Update() //Test de sui on touche un ennemi + if(isnhit > 0) + { + isnhit --; + + if(!mod(isnhit,3)) + { + if(GetObject()->GetRender()->GetActivate()) + GetObject()->GetRender()->DeActivateRender(); + else + GetObject()->GetRender()->ActivateRender(); + } + + if(!isnhit)GetObject()->GetRender()->ActivateRender(); + } + if(Ennemi) { GetEngine()->DelObject(Ennemi,true); - if(!isaspi) + if(!isaspi && !isnhit) { - isfull = 0; - ishurt = 20; - Interface->AddScore(400); - Interface->DelVie(1); - if(Interface->GetVie() == 6 )ishurt = 0; + if(GetIt() != 12) + { + isfull = 0; + ishurt = 20; + isnhit = 80; + + Interface->DelVie(1); + + if(Interface->GetVie() == 6 )ishurt = 0; + } } else { - isfull = 2; - Interface->AddScore(200); + if(isaspi) + { + isfull = 2; + Interface->AddScore(200); + } } } - if(Boss) + if(Boss && !isnhit) { isfull = 0; ishurt = 20; + isnhit = 80; Interface->DelVie(1); @@ -189,33 +225,6 @@ void Control::Update() SSoufle * ScriptSouffle = new SSoufle; SStar * ScriptStar = new SStar; - switch(isfull) - { - case 1: - delete ScriptStar; - ScriptSouffle->time = 12; - ScriptSouffle->Interface = Interface; - Buffer->GetRender()->SetRender(RenderSouffle); - Buffer->AffectScript(ScriptSouffle); - - if(!direction)ScriptSouffle->direction = false; - else ScriptSouffle->direction = true; - break; - case 2: - delete ScriptSouffle; - ScriptStar->Interface = Interface; - Buffer->GetRender()->SetRender(RenderEtoile); - Buffer->AffectScript(ScriptStar); - Buffer->AddRigidBody(); - Buffer->AffectTag("Star"); - - if(!direction)ScriptStar->direction = false; - else ScriptStar->direction = true; - break; - default: - break; - } - GetEngine()->AddObject(Buffer); if(!direction) @@ -229,6 +238,48 @@ void Control::Update() Buffer->GetRender()->ReverseRender(true); } + switch(isfull) + { + case 1: + delete ScriptStar; + + if(!couldown) + { + ScriptSouffle->time = 12; + ScriptSouffle->Interface = Interface; + Buffer->GetRender()->SetRender(RenderSouffle); + Buffer->AffectScript(ScriptSouffle); + + ScriptSouffle->direction = direction; + + couldown = 25; + } + else + { + delete ScriptSouffle; + GetEngine()->DelObject(Buffer); + } + + break; + case 2: + delete ScriptSouffle; + ScriptStar->Interface = Interface; + Buffer->GetRender()->SetRender(RenderEtoile); + Buffer->AffectScript(ScriptStar); + Buffer->AddRigidBody(); + Buffer->AffectTag("Star"); + + ScriptStar->direction = direction; + break; + default: + + delete ScriptStar; + delete ScriptSouffle; + GetEngine()->DelObject(Buffer); + break; + } + + isfull = 0; isdo = true; @@ -344,6 +395,14 @@ void Control::Update() SetX(160); } + if(GetObject()->GetCollisionTag("FS")) + { + Interface->AddScore(1000); + Interface->EndStage(); + } + + if(!isfull && GetBody()->velocity.y < -40)SetIt(12); + GetEngine()->MiddleScreen( GetX() + 8 , GetY() + 10 ); } diff --git a/Script_Control.hpp b/Script_Control.hpp index cf38165..3132ce8 100644 --- a/Script_Control.hpp +++ b/Script_Control.hpp @@ -61,6 +61,7 @@ class Control: public Script bool isaspi; int isfull; int ishurt; + int isnhit; bool direction; // Direction du personnage True = Gauche @@ -74,7 +75,7 @@ class Control: public Script Script_GUI * Interface; - int compteur; + int couldown; bool boss; diff --git a/Sprite.hpp b/Sprite.hpp index 43a04cf..c2de364 100644 --- a/Sprite.hpp +++ b/Sprite.hpp @@ -65,6 +65,9 @@ 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, }; + const unsigned char Kirby_Fall[]={0xff, 0xff, 0xfe, 0x7f, 0x9e, 0x7f, 0x8f, 0xff, 0x98, 0x3f, 0xa0, 0xf, 0xc0, 0xf, 0xc0, 0x7, 0x80, 0x7, 0x80, 0x5, 0x80, 0x5, 0x84, 0x5, 0xc2, 0x5, 0xc2, 0x7, 0xe2, 0x1f, 0xff, 0xff, }; + const unsigned char Kirby_FallN[]={0x1, 0x80, 0x63, 0xc0, 0xf3, 0xc0, 0xff, 0xc0, 0xff, 0xf0, 0xff, 0xf8, 0x7f, 0xf8, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xf8, 0x1f, 0xe0, }; + Sprite S_Kirby_Normal( KN , KNN , 16 , 16 ); S_Kirby_Normal.CreateReverse(); // Normal Animation A_Kirby_Normal(S_Kirby_Normal); @@ -128,8 +131,11 @@ Sprite S_Aspiration(Aspiration1 , 40 , 24);S_Aspiration.CreateReverse(); Animation A_Aspiration(S_Aspiration); + Sprite S_Kirby_Fall(Kirby_Fall,Kirby_FallN,16,16);S_Kirby_Fall.CreateReverse(); + Animation A_Kirby_Fall(S_Kirby_Fall); - 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 }; + + 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, A_Kirby_Fall }; //Etoile @@ -337,6 +343,27 @@ Sprite S_Apple(Apple,AppleN,17,16); Animation A_Apple(S_Apple); + const unsigned char FinalStar[]={0xff, 0xff, 0xff, 0xc7, 0xe3, 0xff, 0xc1, 0x83, 0xff, 0xe0, 0x7, 0xf7, 0xe0, 0x7, 0x87, 0xf0, 0xf, 0xc3, 0xf0, 0xf, 0xc1, 0xe0, 0x7, 0x87, 0xc0, 0x3, 0xe7, 0x80, 0x1, 0xff, 0x80, 0x1, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char FinalStarN[]={0x78, 0x1e, 0x0, 0x7e, 0x7e, 0x0, 0x7f, 0xfe, 0xc, 0x3f, 0xfc, 0xfc, 0x3f, 0xfc, 0xfc, 0x1f, 0xf8, 0x7e, 0x1f, 0xf8, 0x7f, 0x3f, 0xfc, 0xfe, 0x7f, 0xfe, 0xfc, 0xff, 0xff, 0x1c, 0xff, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xe0, 0x0, 0x3, 0xc0, 0x0, 0x3, 0xc0, 0x0, 0x1, 0x80, 0x0, }; + + Sprite S_FinalStar(FinalStar,FinalStarN,24,16); + Animation A_FinalStar(S_FinalStar); + +//object + + const unsigned char MHealth[]={0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xef, 0xdf, 0xc3, 0xf, 0x80, 0x7, 0x9c, 0xe7, 0x9b, 0x67, 0x9b, 0x67, 0x98, 0x67, 0xd8, 0x6f, 0xc0, 0xf, 0xe0, 0x1f, 0xfc, 0xff, 0xff, 0xff, }; + const unsigned char MHealthN[]={0x17, 0xa3, 0xf, 0xc3, 0x7f, 0xfb, 0x3f, 0xf3, 0x7f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfb, 0x7f, 0xfb, 0x3f, 0xf3, 0x1f, 0xe3, 0x3, 0x3, }; + + const unsigned char Pill[]={0xff, 0xc3, 0xff, 0xe7, 0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x81, 0x81, 0xc3, 0x81, 0x81, 0xff, }; + const unsigned char PillN[]={0x7e, 0x7e, 0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0xff, 0xff, }; + + Sprite S_MHealth(MHealth,MHealthN,14,15); + Animation A_MHealth(S_MHealth); + + Sprite S_Pill(Pill,PillN,8,16); + Animation A_Pill(S_Pill); + + //Map const unsigned char GreenGreenTileset[]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 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, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x4c, 0x44, 0x8, 0x8, 0x90, 0xa8, 0x20, 0x91, 0x3d, 0x52, 0x42, 0x92, 0xb3, 0xf4, 0x46, 0x8c, 0x8e, 0x44, 0xf3, 0x2, 0x93, 0xa, 0x95, 0x86, 0x24, 0x7c, 0x3f, 0xfc, 0x48, 0x92, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x44, 0x12, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x10, 0x0, 0x10, 0x0, 0x20, 0x0, 0x20, 0x0, 0x20, 0x0, 0x40, 0x0, 0x40, 0x0, 0x40, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0xc, 0x0, 0x10, 0x0, 0x20, 0x0, 0x40, 0x0, 0x80, 0x1, 0x0, 0x2, 0x0, 0x4, 0x0, 0x4, 0x0, 0x8, 0x0, 0x0, 0x1f, 0x1, 0xe0, 0xe, 0x0, 0x70, 0x0, 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, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x8, 0x0, 0x8, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x40, 0x0, 0x30, 0x0, 0x8, 0x0, 0x4, 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x80, 0x0, 0x40, 0x0, 0x20, 0x0, 0x20, 0x0, 0x10, 0xf8, 0x0, 0x7, 0x80, 0x0, 0x70, 0x0, 0xe, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x21, 0xc4, 0x21, 0xc1, 0x5, 0xe1, 0x5, 0xa0, 0x87, 0xa0, 0x83, 0x84, 0x23, 0x84, 0x23, 0xc4, 0x21, 0xc4, 0x21, 0xc1, 0x5, 0xe1, 0x5, 0xa0, 0x87, 0xa0, 0x83, 0x84, 0x23, 0x84, 0x23, 0x0, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x0, 0x87, 0x0, 0x83, 0x0, 0x23, 0x0, 0x23, 0x0, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x0, 0x87, 0x0, 0x83, 0x0, 0x23, 0x0, 0x23, 0x84, 0x0, 0x84, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xe1, 0x0, 0xc1, 0x0, 0xc4, 0x0, 0xc4, 0x0, 0x84, 0x0, 0x84, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xe1, 0x0, 0xc1, 0x0, 0xc4, 0x0, 0xc4, 0x0, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x44, 0x87, 0x8, 0x83, 0xa8, 0x23, 0x91, 0x23, 0x52, 0x21, 0x92, 0x21, 0xf4, 0x5, 0x8c, 0x5, 0x44, 0x87, 0x2, 0x83, 0xa, 0x23, 0x86, 0x23, 0x7c, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x0, 0x87, 0x0, 0x83, 0x0, 0x23, 0x0, 0x23, 0x0, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x0, 0x87, 0x0, 0x83, 0x0, 0x23, 0x0, 0x23, 0x0, 0x80, 0x0, 0x80, 0x0, 0x40, 0x0, 0x40, 0x0, 0x20, 0x0, 0x10, 0x0, 0xc, 0x0, 0x3, 0x0, 0x0, 0x80, 0x0, 0x80, 0x0, 0x40, 0x0, 0x40, 0x0, 0x20, 0x0, 0x10, 0x0, 0xc, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x80, 0xd, 0x80, 0xa, 0x40, 0x1a, 0x40, 0x74, 0x20, 0xc8, 0x10, 0x30, 0xc, 0xc0, 0x3, 0x0, 0x5, 0x0, 0xd, 0x0, 0xa, 0x0, 0x1a, 0x0, 0x74, 0x0, 0xc8, 0x0, 0x30, 0x0, 0xc0, 0x5, 0x0, 0xd, 0x0, 0xa, 0x0, 0x1a, 0x0, 0x74, 0x0, 0xc8, 0x0, 0x30, 0x0, 0xc0, 0x0, 0x0, 0x3, 0x0, 0xc, 0x0, 0x10, 0x0, 0x20, 0x0, 0x40, 0x0, 0x40, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x40, 0x0, 0x40, 0x0, 0x20, 0x0, 0x10, 0x0, 0xc, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x42, 0x0, 0x81, 0x0, 0x81, 0x0, 0x81, 0x0, 0x81, 0x0, 0x42, 0x0, 0x3c, 0x0, 0xc0, 0x0, 0x30, 0x0, 0x8, 0x0, 0x4, 0x0, 0x2, 0x0, 0x2, 0x0, 0x1, 0x0, 0x1, 0x0, 0x5, 0x0, 0xd, 0x0, 0xa, 0x0, 0x1a, 0x0, 0x74, 0x0, 0xc8, 0x0, 0x30, 0x0, 0xc0, 0x0, 0x0, 0x3, 0x0, 0xc, 0x0, 0x10, 0x0, 0x20, 0x0, 0x40, 0x0, 0x40, 0x0, 0x80, 0x0, 0x80, 0x3, 0x0, 0xc, 0x0, 0x10, 0x0, 0x20, 0x0, 0x40, 0x0, 0x40, 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x70, 0x0, 0x88, 0x0, 0x88, 0x0, 0x88, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x3c, 0x88, 0x42, 0x88, 0x81, 0x88, 0x81, 0x70, 0x81, 0x0, 0x81, 0x0, 0x42, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xc, 0x30, 0x10, 0x8, 0x20, 0x4, 0x40, 0x2, 0x40, 0x2, 0x80, 0x1, 0x80, 0x1, 0xc0, 0x0, 0x30, 0x0, 0x8, 0x0, 0x4, 0x0, 0x2, 0x0, 0x2, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0xc0, 0x0, 0x30, 0x0, 0x8, 0x0, 0x4, 0x0, 0x2, 0x0, 0x2, 0x0, 0x1, 0x0, 0x1, 0x80, 0x5, 0x80, 0xd, 0x80, 0xa, 0x40, 0x1a, 0x20, 0x74, 0x10, 0xc8, 0xc, 0x30, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x5, 0x80, 0xd, 0x80, 0xa, 0x40, 0x1a, 0x20, 0x74, 0x10, 0xc8, 0xc, 0x30, 0x3, 0xc0, 0x21, 0x0, 0x21, 0x0, 0x5, 0x0, 0x5, 0x0, 0x87, 0x0, 0x83, 0x0, 0x23, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x81, 0x0, 0x81, 0x0, 0xe7, 0x0, 0x24, 0x0, 0x25, 0xef, 0x25, 0x19, 0x25, 0x9, 0x25, 0x1, 0xe7, 0x1, 0x81, 0x21, 0x81, 0x31, 0xff, 0xef, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x3f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 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, 0x88, 0x0, 0x87, 0xff, 0x84, 0x0, 0x84, 0x8f, 0x89, 0xf1, 0x88, 0x1e, 0x85, 0x87, 0x85, 0x87, 0x88, 0x1e, 0x89, 0xf1, 0x84, 0x8f, 0x84, 0x0, 0x87, 0xff, 0x88, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x8, 0x20, 0xcf, 0x3c, 0x71, 0xc7, 0x9e, 0x78, 0x9e, 0x78, 0x71, 0xc7, 0xcf, 0x3c, 0x8, 0x20, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0x11, 0xff, 0xe1, 0x0, 0x21, 0x8, 0x21, 0xcf, 0x31, 0x71, 0xd1, 0x9e, 0x61, 0x9e, 0x61, 0x71, 0xd1, 0xcf, 0x31, 0x8, 0x21, 0x0, 0x21, 0xff, 0xe1, 0x0, 0x11, 0xff, 0xff, 0x24, 0x8, 0x44, 0x8, 0x42, 0x78, 0x82, 0x84, 0x83, 0x4, 0x81, 0x7, 0x81, 0x4, 0x81, 0x84, 0x81, 0xf8, 0x81, 0x90, 0x81, 0x10, 0x81, 0x8, 0x81, 0xb, 0x42, 0xc, 0x22, 0x8, 0x3c, 0x8, 0x7f, 0xfe, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x7f, 0xfe, 0x3f, 0xfc, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x98, 0x19, 0x90, 0x9, 0xb0, 0xd, 0xa3, 0xc5, 0xa7, 0xe5, 0xef, 0xf7, 0xcc, 0x33, 0xd8, 0x1b, 0x98, 0x19, 0x90, 0x9, 0xb0, 0xd, 0xa3, 0xc5, 0xa7, 0xe5, 0xef, 0xf7, 0xcc, 0x33, 0xd8, 0x1b, 0x7f, 0xfe, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x80, 0x1, 0x7f, 0xfe, 0xdf, 0xfb, 0xdb, 0xdb, 0x98, 0x19, 0x90, 0x9, 0xb0, 0xd, 0xa3, 0xc5, 0xa7, 0xe5, 0xef, 0xf7, 0xcc, 0x33, 0xd8, 0x1b, 0x84, 0x0, 0x84, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0x80, 0x0, 0xff, 0x80, 0x0, 0x40, 0x0, 0x20, 0x0, 0x20, 0x0, 0x20, 0x0, 0x20, 0xf8, 0x40, 0x9f, 0x80, 0xc1, 0x0, 0xc4, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x2, 0xfc, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84, 0x23, 0x84, 0x23, 0xa0, 0x83, 0xa0, 0x87, 0xe1, 0x5, 0xc1, 0x5, 0xc4, 0x21, 0xc4, 0x21, 0x84, 0x23, 0x84, 0x23, 0xa0, 0x83, 0xa0, 0x87, 0xe1, 0x5, 0xc1, 0x5, 0xc4, 0x21, 0xc4, 0x21, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, 0xa0, 0x5, };