From ae1ba147576f1f92c136afe020e8e9a1952e44f3 Mon Sep 17 00:00:00 2001 From: Fife Date: Tue, 12 Jul 2016 18:10:22 +0100 Subject: [PATCH] Ajout de plein de monstres XD --- GUI.cpp | 41 +++++- GUI.hpp | 3 + IA_Bomber.cpp | 114 ++++++++++++++++ IA_Bomber.hpp | 38 ++++++ IA_Monstre.cpp | 118 +++++++++++------ IA_Monstre.hpp | 53 ++++---- IA_Whispy.cpp | 185 ++++++++++++++++++++++++++ IA_Whispy.hpp | 53 ++++++++ Kirby.cpp | 39 +++++- Script_Control.cpp | 318 ++++++++++++++++++++++++++++++++++----------- Script_Control.hpp | 12 ++ Sprite.hpp | 96 ++++++++++++-- 12 files changed, 914 insertions(+), 156 deletions(-) create mode 100644 IA_Bomber.cpp create mode 100644 IA_Bomber.hpp create mode 100644 IA_Whispy.cpp create mode 100644 IA_Whispy.hpp diff --git a/GUI.cpp b/GUI.cpp index a247432..be512f4 100644 --- a/GUI.cpp +++ b/GUI.cpp @@ -12,6 +12,7 @@ void Script_GUI::Start() vie = 6; restart = 4; score = 0; + timer = 500; } @@ -50,6 +51,14 @@ void Script_GUI::Update() 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_rectangle(114,-1,129,7,1,ML_BLACK, ML_WHITE); + ML_pixel(114,7,ML_WHITE); + if(timer / 100) + PrintV(116,1,timer); + else if(timer / 10) + PrintV(120,1,timer); + else + PrintV(124,1,timer); ML_bmp_or(Keby , 102 , 57 , 16 , 7); @@ -59,6 +68,18 @@ void Script_GUI::Update() if(input_press(K_ALPHA))GetEngine()->ShowFps(); } +void Script_GUI::UpdateEverySecond() +{ + timer --; + + if(timer < 0) + { + vie = 0; + restart = 0; + Lose(); + } +} + void Script_GUI::DelVie(int v) { @@ -71,6 +92,11 @@ void Script_GUI::DelVie(int v) } } +int Script_GUI::GetVie() +{ + return vie; +} + void Script_GUI::AddScore(int v) { if(v > 0)score += v; @@ -137,7 +163,18 @@ void Script_GUI::Lose() TryAgain(); } - Kirby->GetTransform()->SetXY(8, 32); + switch(Kirby->GetEngine()->GetIdCurrentLevel()) + { + default: Kirby->GetTransform()->SetXY(8, 32); break; + case 0: Kirby->GetTransform()->SetXY(8, 32); break; + case 1: Kirby->GetTransform()->SetXY(8 , 16 ); break; + case 2: Kirby->GetTransform()->SetXY(96 , 32); break; + case 3: Kirby->GetTransform()->SetXY(16 , 336 ); break; + case 4: Kirby->GetTransform()->SetXY(112 , 48); break; + + } + + } void Script_GUI::TryAgain() @@ -210,6 +247,8 @@ void Script_GUI::TryAgain() if(choix == 0) { this->restart = 4; + vie = 6; + timer = 500; score = score / 2 ; } diff --git a/GUI.hpp b/GUI.hpp index 1e33995..61da6bd 100644 --- a/GUI.hpp +++ b/GUI.hpp @@ -9,8 +9,10 @@ class Script_GUI: public Script void Start(); void Update(); + void UpdateEverySecond(); void DelVie(int v); + int GetVie(); void AddScore(int v); void Lose(); @@ -21,6 +23,7 @@ class Script_GUI: public Script int score;//Sc: 0 int vie;//Nb de vie int restart;//Restart * 4 + int timer; }; diff --git a/IA_Bomber.cpp b/IA_Bomber.cpp new file mode 100644 index 0000000..cf94518 --- /dev/null +++ b/IA_Bomber.cpp @@ -0,0 +1,114 @@ + +#include "IA_Bomber.hpp" + +Mob_Bomber::Mob_Bomber() +{ + direction = false; + needtoback = false; + choix = 0; + life = 3; +} + +void Mob_Bomber::Update() +{ + isground = CollisionDecor( GetX() , GetY() - 1 ); + + switch(choix) + { + case 0: + + break; + + case 1: + + if(needtoback)Move(3,0); + else Move(-3,0); + + if(isground && needtoback) + { + choix = 0; + needtoback = false; + return; + } + + if(isground && !needtoback) + { + needtoback = true; + GetBody()->velocity.y = 40; + } + + break; + + case 2: + + if(isground) + { + choix = 0; + + Object * Buffer = new Object; + + Ia_Bomb * Buffer_Script = new Ia_Bomb; + Buffer->AffectScript(Buffer_Script); + + Buffer->GetTransform()->SetXY( GetX() - 16 , GetY() + 1); + + Buffer->GetRender()->SetRender(A_Bomb); + + Buffer->AddRigidBody(); + + Buffer->AffectTag("Ennemis"); + GetEngine()->AddObject(Buffer); + } + + break; + + default: break; + } + + SetIt(choix); + + Object * Star = GetObject()->GetObjectCollisionTag("Star"); + + GetEngine()->UpdateRelativePosition(); + + int x = GetObject()->GetTransform()->GetRelativeX() + 5; + int y = 64 - GetObject()->GetTransform()->GetRelativeY() - 30; + + for(int i = 0 ; i < life ; i++) + { + ML_rectangle( x + i * 4 , y , x + 2 + i * 4, y - 3 , 1 , ML_BLACK , ML_BLACK); + } + + if(Star) + { + GetEngine()->DelObject(Star); + life --; + + if(life < 1)GetEngine()->DelObject(GetObject()); + + } +} + +void Mob_Bomber::UpdateEverySecond() +{ + if(!choix) + { + choix = rand_int(6); + + if(choix > 2)choix = 0; + + if(choix) + { + GetBody()->velocity.y = 39; + Move(0,1); + } + } +} + +void Ia_Bomb::Update() +{ + Move(-4,0); + + if(CollisionDecor( GetX() - 1 , GetY() ) )GetEngine()->DelObject(GetObject()); + +} diff --git a/IA_Bomber.hpp b/IA_Bomber.hpp new file mode 100644 index 0000000..cb1cff3 --- /dev/null +++ b/IA_Bomber.hpp @@ -0,0 +1,38 @@ +#ifndef IABOMBER +#define IABOMBER + +#include "..\C-Engine\CEngine.hpp" +#include "IA_Monstre.hpp" + +// Mob script + +class Mob_Bomber: public Mob +{ + public: + + Mob_Bomber(); + + void Update(); + void UpdateEverySecond(); + + Animation A_Bomb; + + private: + + int choix; + bool needtoback; + + bool isground; + int life; + + +}; + +class Ia_Bomb: public Script +{ + public: + + void Update(); +}; + +#endif diff --git a/IA_Monstre.cpp b/IA_Monstre.cpp index f2299c4..328953f 100644 --- a/IA_Monstre.cpp +++ b/IA_Monstre.cpp @@ -1,72 +1,104 @@ #include "IA_Monstre.hpp" - -void IaOurs::Start() +Mob::Mob() { 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() +void Mob::SetDirection( bool d) { - if( GetObject()->ORigibody->CollisionDecor( GetX() , (GetY() - 1 )) == 1) + direction = d; +} + +void Mob::SetCouldown( int c) +{ + couldown = c; +} + +void Mob_InLine::Update() +{ + if(direction) + { + Move( - 1 , 0 ); + if(CollisionDecor( GetX() - 1 , GetY() )) direction = false; + } + else + { + Move( 1 , 0 ); + if(CollisionDecor( GetX() + 1 , GetY() )) direction = true; + } + + ReverseRender(direction); +} + +void Mob_InLine_Jump::UpdateEverySecond() +{ + if(couldown < 0) + { + GetBody()->velocity.y = 25 ; + couldown = 80 ; + } + + couldown --; +} + +void Mob_InLine_Fly::Update() +{ + if(direction) + { + Move( - 2 , 0 ); + if(CollisionDecor( GetX() - 1 , GetY() )) direction = false; + } + else + { + Move( 2 , 0 ); + if(CollisionDecor( GetX() + 1 , GetY() )) direction = true; + } + + GetBody()->velocity.y = 9; + + ReverseRender(direction); +} + +void Mob_Piaf::Update() +{ + if( CollisionDecor( GetX() , (GetY() - 1 ))) SetIt(0); else SetIt(1); + + ReverseRender(direction); } -void IaPiaf::UpdateEverySecond() +void Mob_Piaf::UpdateEverySecond() { - if( GetObject()->ORigibody->CollisionDecor( GetX() , (GetY() - 1 )) == 1 && couldown == 0) - { - GetObject()->ORigibody->R_body.velocity.y = 25; - } + if( CollisionDecor( GetX() , (GetY() - 1 )) && !couldown ) + GetBody()->velocity.y = 25; - couldown ++; + couldown --; - if(couldown > 3)couldown = 0; + if(couldown < 0)couldown = 4; } -void IaChamp::Start() -{ - time = 0; -} -void IaChamp::Update() +void Mob_Champ::Update() { - time ++; + couldown --; - if(time > 50) + if(couldown < 0) { - if(direction == true) direction = false; - else direction = true; + if(direction) + direction = false; + else + direction = true; - GetObject()->ORigibody->R_body.velocity.y = 20; + GetBody()->velocity.y = 20; - time = 0; + couldown = 50; } - GetObject()->ORender->ReverseRender(direction); + ReverseRender(direction); } diff --git a/IA_Monstre.hpp b/IA_Monstre.hpp index 0cec29b..ffcd22a 100644 --- a/IA_Monstre.hpp +++ b/IA_Monstre.hpp @@ -1,48 +1,57 @@ #ifndef IAMONSTRE #define IAMONSTRE -#include "..\C-Engine\CHeader.hpp" +#include "..\C-Engine\CEngine.hpp" // Mob script -class IaOurs: public Script +class Mob: public Script { - public: + public : - void Start(); - void Update(); - void UpdateEverySecond(); + Mob(); - private: + void SetDirection( bool d); + void SetCouldown( int c); - bool direction; + bool direction; + int couldown; }; - -class IaPiaf: public Script +class Mob_InLine: public Mob { public: - void Start(); void Update(); - void UpdateEverySecond(); - - private: - - int couldown; }; - -class IaChamp: public Script +class Mob_InLine_Jump: public Mob_InLine { public: - void Start(); + + void UpdateEverySecond(); +}; + +class Mob_InLine_Fly: public Mob_InLine +{ + public: + void Update(); +}; - private: +class Mob_Piaf: public Mob +{ + public: - int time; - bool direction; + void Update(); + void UpdateEverySecond(); +}; + +class Mob_Champ: public Mob +{ + public: + + void Update(); }; #endif diff --git a/IA_Whispy.cpp b/IA_Whispy.cpp new file mode 100644 index 0000000..967e49a --- /dev/null +++ b/IA_Whispy.cpp @@ -0,0 +1,185 @@ + +#include "IA_Whispy.hpp" + +Mob_Whispy::Mob_Whispy() +{ + direction = false; + choix = 0; + life = 6; + couldown = 0; +} + +void Mob_Whispy::Update() +{ + + switch(choix) + { + case 0: + + SetIt(0); + + break; + + case 1: + + SetIt(0); + + if(!rand_int(80)) + { + Object * Buffer = new Object; + + Ia_Apple * Buffer_Script = new Ia_Apple; + Buffer->AffectScript(Buffer_Script); + + Buffer->GetTransform()->SetXY( rand_int_ab(16,80) , 140); + + Buffer->AddRigidBody(); + Buffer->GetRigidBody()->SetMass(1); + + Buffer->GetRender()->SetRender(A_Apple); + + Buffer->AffectTag("Ennemis"); + + GetEngine()->AddObject(Buffer); + + couldown --; + } + + if(!couldown)choix = 0; + + break; + + case 2: + + SetIt(1); + + if(!rand_int(50)) + { + Object * Buffer = new Object; + + Ia_Souffle * Buffer_Script = new Ia_Souffle; + Buffer->AffectScript(Buffer_Script); + + Buffer->GetTransform()->SetXY( GetX() - 16 , GetY() + 2); + + Buffer->AddRigidBody(); + + Buffer->GetRender()->SetRender(A_Souffle); + Buffer->GetRender()->ReverseRender(true); + + Buffer->AffectTag("Boss"); + + GetEngine()->AddObject(Buffer); + + + couldown --; + } + + if(!couldown)choix = 0; + + break; + + case 3: + + SetIt(2); + couldown--; + if(!couldown)choix = 0; + + break; + + default: break; + } + + + + GetEngine()->UpdateRelativePosition(); + + int x = GetObject()->GetTransform()->GetRelativeX() + 16; + int y = 64 - GetObject()->GetTransform()->GetRelativeY() + 6; + + for(int i = 0 ; i < life ; i++) + { + ML_rectangle( x + i * 4 , y , x + 2 + i * 4, y - 3 , 1 , ML_BLACK , ML_BLACK); + } + + Object * Star = GetObject()->GetObjectCollisionTag("Star"); + + if(Star) + { + GetEngine()->DelObject(Star); + life --; + choix = 3; + couldown = 35; + + if(life < 1) + { + choix = -1; + SetIt(2); + + GetObject()->AffectTag(" "); + } + + } + +} + +void Mob_Whispy::UpdateEverySecond() +{ + Object * Kirby; + + for(int i = 0 ; i < GetEngine()->GetCurrentLevel()->GetNbObject() ; i++ ) + { + if(!strcmp(GetEngine()->GetCurrentLevel()->GetListeObject()[i]->GetTag(), "Kirby"))Kirby = GetEngine()->GetCurrentLevel()->GetListeObject()[i]; + } + + int y = Kirby->GetTransform()->GetY(); + + if(!choix && y < 200) + { + choix = rand_int(6); + + if(choix > 2)choix = 0; + + couldown = 3; + } +} + +Ia_Apple::Ia_Apple() +{ + rebond = 1; +} + +void Ia_Apple::Update() +{ + const unsigned char Arrow[]={0xff, 0xff, 0x6f, }; + + if(!GetObject()->IsOnScreen() && GetY() > 32) + { + ML_bmp_or_cl(Arrow,GetObject()->GetTransform()->GetRelativeX() + 6 , 1 , 4 , 3); + } + + GetObject()->GetRender()->SetDirection(GetObject()->GetRender()->GetDirection() + 20); + + if(CollisionDecor( GetX() , GetY() - 1 ) ) + { + if(rebond) + { + GetBody()->velocity.y = 12; + GetBody()->velocity.x = 12; + + rebond --; + } + else + { + GetEngine()->DelObject(GetObject()); + } + + } +} + +void Ia_Souffle::Update() +{ + Move( - 3 , rand_int_ab(-1,1)); + + if(CollisionDecor( GetX() - 1, GetY() ) )GetEngine()->DelObject(GetObject()); +} diff --git a/IA_Whispy.hpp b/IA_Whispy.hpp new file mode 100644 index 0000000..c8c620c --- /dev/null +++ b/IA_Whispy.hpp @@ -0,0 +1,53 @@ +#ifndef IAWHISPY +#define IAWHISPY + +#include "..\C-Engine\CEngine.hpp" +#include "IA_Monstre.hpp" + +// Mob script + +class Mob_Whispy: public Mob +{ + public: + + Mob_Whispy(); + + void Update(); + void UpdateEverySecond(); + + Animation A_Souffle; + Animation A_Apple; + + private: + + int choix; + int life; + int couldown; + + +}; + +class Ia_Apple: public Script +{ + public: + + Ia_Apple(); + + void Update(); + + private : + + int rebond; +}; + +class Ia_Souffle: public Script +{ + public: + + + void Update(); + +}; + + +#endif diff --git a/Kirby.cpp b/Kirby.cpp index 3429f1c..6e91b69 100644 --- a/Kirby.cpp +++ b/Kirby.cpp @@ -3,6 +3,8 @@ #include "Script_Control.hpp" #include "GUI.hpp" +#include "IA_Bomber.hpp" +#include "IA_Whispy.hpp" int Niveau1() { @@ -28,6 +30,34 @@ int Niveau1() Script_GUI * Game_GUI = new Script_GUI; Kirby_Script->Initialisation( A_Star , A_Soufle , Aspiration , Game_GUI ); + Kirby_Script->AOurs = A_Ours; + Kirby_Script->APiaf = A_Piaf; + Kirby_Script->AChamp = A_Champ; + Kirby_Script->ABaby = A_Baby; + Kirby_Script->AGhost = A_Ghost; + Kirby_Script->AOupa = A_Oupa; + + Object * Bomber = new Object; + Bomber->GetTransform()->SetXY(120, 16); + Bomber->GetRender()->SetRender(A_Bomber , 3); + Bomber->AddRigidBody(); + Bomber->GetRigidBody()->SetMass(2); + Bomber->AffectTag("Boss"); + + Mob_Bomber * Bomber_Script = new Mob_Bomber; + Bomber->AffectScript(Bomber_Script); + Bomber_Script->A_Bomb = A_Bomb; + + Object * Whispy = new Object; + Whispy->GetTransform()->SetXY(104,32); + Whispy->GetRender()->SetRender(A_Wood , 3); + Whispy->AffectTag("Boss"); + + Mob_Whispy * Whispy_Script = new Mob_Whispy; + Whispy->AffectScript(Whispy_Script); + Whispy_Script->A_Apple = A_Apple; + Whispy_Script->A_Souffle = A_Soufle; + //***********Creation de la map*************** @@ -68,7 +98,11 @@ int Niveau1() Game.SetCurrentLevel(0); - Game.AddObject(Kirby,0); + Game.AddObject(Kirby,3); + Game.AddObject(Bomber,1); + Game.AddObject(Whispy,3); + + Game.SetCurrentLevel(3); Game.AffectGui(Game_GUI); @@ -78,6 +112,7 @@ int Niveau1() } + 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, }; @@ -124,7 +159,7 @@ int Menu() ML_clear_vram(); input_update(); - //*******************// + //*******************/// ML_bmp_or_cl(Menu , x , 0, 127 , 63); diff --git a/Script_Control.cpp b/Script_Control.cpp index bee194a..9fb4535 100644 --- a/Script_Control.cpp +++ b/Script_Control.cpp @@ -1,6 +1,8 @@ #include "Script_Control.hpp" +#include "IA_Monstre.hpp" + //Kirby script void Control::Start() @@ -11,6 +13,8 @@ void Control::Start() isfull = 0; ishurt = 0; + compteur = 0; + direction = 0; GetEngine()->AddObject(OAspi); @@ -21,8 +25,10 @@ void Control::Start() GetObject()->AffectTag("Kirby"); - oldx = GetObject()->GetTransform()->GetX(); - oldy = GetObject()->GetTransform()->GetY(); + oldx = GetX(); + oldy = GetY(); + + boss = false; } void Control::Teleport( int x , int y , int level ) @@ -42,7 +48,7 @@ void Control::Teleport( int x , int y , int level ) GetEngine()->MoveObject(GetObject(),level); GetEngine()->MoveObject(OAspi,level); GetEngine()->SetCurrentLevel(level); - GetObject()->GetTransform()->SetXY(x,y); + SetXY(x,y); input_update(); } @@ -50,28 +56,36 @@ void Control::Teleport( int x , int y , int level ) void Control::Update() { - if(GetEngine()->GetIdCurrentLevel() < 3)GenerateMonster(); + boss = false; + + for(int i = 0 ; i < GetEngine()->GetCurrentLevel()->GetNbObject() ; i++ ) + { + if(!strcmp(GetEngine()->GetCurrentLevel()->GetListeObject()[i]->GetTag(), "Boss")) boss = true; + } + + + if(GetEngine()->GetIdCurrentLevel() < 3 && !boss)GenerateMonster(); //Check si on touche le sol ou une plateforme - isground = GetObject()->GetRigidBody()->CollisionDecor( GetObject()->GetTransform()->GetX() , GetObject()->GetTransform()->GetY() - 1 ); + isground = CollisionDecor( GetX() , GetY() - 1 ); - if(!mod(GetObject()->GetTransform()->GetY() , 16) && GetObject()->GetRigidBody()->GetBody()->velocity.y < 11 ) + if(!mod(GetY() , 16) && GetBody()->velocity.y < 11 ) { - int cas1 = GetEngine()->GetCurrentLevel()->GetIdMap( GetObject()->GetTransform()->GetX() , GetObject()->GetTransform()->GetY() - 1 , true ); - int cas2 = GetEngine()->GetCurrentLevel()->GetIdMap( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY() - 1 , true ); + int cas1 = GetEngine()->GetCurrentLevel()->GetIdMap( GetX() , GetY() - 1 , true ); + int cas2 = GetEngine()->GetCurrentLevel()->GetIdMap( GetX() + 16 , GetY() - 1 , true ); if(cas1 == 58)cas1 = 56; if(cas2 == 58)cas2 = 56; - if(cas1 == 56 || ( mod(GetObject()->GetTransform()->GetX() , 16) && cas2 == 56) ) + if(cas1 == 56 || ( mod(GetX() , 16) && cas2 == 56) ) { - GetObject()->GetRigidBody()->GetBody()->velocity.y = 10; + GetBody()->velocity.y = 10; isground = true; if(input_press(K_DOWN)) { - GetObject()->GetRigidBody()->GetBody()->velocity.y = - 11; + GetBody()->velocity.y = - 11; isground = false; } } @@ -89,25 +103,26 @@ void Control::Update() if(ishurt > 15) { - GetObject()->GetRigidBody()->GetBody()->velocity.x = 40 * ((direction) - (!direction)); - GetObject()->GetRigidBody()->GetBody()->velocity.y = 45; + GetBody()->velocity.x = 40 * ((direction) - (!direction)); + GetBody()->velocity.y = 45; } else { - GetObject()->GetRigidBody()->GetBody()->velocity.x = 0; - GetObject()->GetRigidBody()->GetBody()->velocity.y = 0; + GetBody()->velocity.x = 0; + GetBody()->velocity.y = 0; } ishurt --; } else //Sinon le joueur peut le controller { Object * Ennemi = GetObject()->GetObjectCollisionTag("Ennemis"); + Object * Boss = GetObject()->GetObjectCollisionTag("Boss"); //Test de sui on touche un ennemi if(Ennemi) { - GetEngine()->DelObject(Ennemi); + GetEngine()->DelObject(Ennemi,true); if(!isaspi) { @@ -116,6 +131,8 @@ void Control::Update() Interface->AddScore(400); Interface->DelVie(1); + + if(Interface->GetVie() == 6 )ishurt = 0; } else { @@ -125,6 +142,16 @@ void Control::Update() } + if(Boss) + { + isfull = 0; + ishurt = 20; + + Interface->DelVie(1); + + if(Interface->GetVie() == 6 )ishurt = 0; + } + //Test de si kirby aspire if(input_press(K_OPTN) && !isfull)isaspi = true; @@ -136,16 +163,16 @@ void Control::Update() if(direction) { - OAspi->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 40 , GetObject()->GetTransform()->GetY()); + OAspi->GetTransform()->SetXY( GetX() - 40 , GetY()); OAspi->GetRender()->ReverseRender(true); } else { - OAspi->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY()); + OAspi->GetTransform()->SetXY( GetX() + 16 , GetY()); OAspi->GetRender()->ReverseRender(false); } - GetObject()->GetRender()->SetIt(3); + SetIt(3); isdo = true; } @@ -155,7 +182,7 @@ void Control::Update() if(input_trigger(K_OPTN)) { - GetObject()->GetRender()->SetIt(8); + SetIt(8); Object * Buffer = new Object; @@ -180,6 +207,7 @@ void Control::Update() Buffer->GetRender()->SetRender(RenderEtoile); Buffer->AffectScript(ScriptStar); Buffer->AddRigidBody(); + Buffer->AffectTag("Star"); if(!direction)ScriptStar->direction = false; else ScriptStar->direction = true; @@ -192,46 +220,50 @@ void Control::Update() if(!direction) { - Buffer->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 16 , GetObject()->GetTransform()->GetY() + 8 ); + Buffer->GetTransform()->SetXY( GetX() + 16 , GetY() + 8 ); Buffer->GetRender()->ReverseRender(false); } else { - Buffer->GetTransform()->SetXY( GetObject()->GetTransform()->GetX(), GetObject()->GetTransform()->GetY() + 8 ); + Buffer->GetTransform()->SetXY( GetX(), GetY() + 8 ); Buffer->GetRender()->ReverseRender(true); } isfull = 0; isdo = true; + + Buffer = NULL; + ScriptSouffle = NULL; + ScriptStar = NULL; } //Test des directions if(input_press(K_RIGHT)) { - GetObject()->GetRigidBody()->Move( 2 , 0 ); + Move( 1 + (isfull != 1) , 0 ); direction = false; if(isfull) { - if(isground)GetObject()->GetRender()->SetIt(5); + if(isground)SetIt(5); } else - GetObject()->GetRender()->SetIt(1); + SetIt(1); isdo = true; } else if(input_press(K_LEFT)) { - GetObject()->GetRigidBody()->Move( -2 , 0 ); + Move( - 1 - (isfull != 1) , 0 ); direction = true; if(isfull) { - if(isground)GetObject()->GetRender()->SetIt(5); + if(isground)SetIt(5); } else - GetObject()->GetRender()->SetIt(1); + SetIt(1); isdo = true; } @@ -240,12 +272,12 @@ void Control::Update() if(input_trigger(K_SHIFT) && isground) { - GetObject()->GetRigidBody()->GetBody()->velocity.y = 42; + GetBody()->velocity.y = 42; if(isfull) - GetObject()->GetRender()->SetIt(6); + SetIt(6); else - GetObject()->GetRender()->SetIt(2); + SetIt(2); isdo = true; } @@ -254,23 +286,27 @@ void Control::Update() if(input_press(K_DOWN) && !isdo && !isfull) { - GetObject()->GetRender()->SetIt(10); - + SetIt(10); + GetObject()->GetRigidBody()->UseFixeBody(16,8); isdo = true; } + else + { + GetObject()->GetRigidBody()->UseFixeBody(16,16); + } if(isfull) { if(!isground) { - if(GetObject()->GetRender()->GetIt() != 6 )GetObject()->GetRender()->SetIt(7); + if(GetObject()->GetRender()->GetIt() != 6 )SetIt(7); } - else if(!isdo)GetObject()->GetRender()->SetIt(4); + else if(!isdo)SetIt(4); } else { - if(!isground)GetObject()->GetRender()->SetIt(2); - else if(!isdo)GetObject()->GetRender()->SetIt(0); + if(!isground)SetIt(2); + else if(!isdo)SetIt(0); } if(input_trigger(K_UP)) @@ -278,14 +314,14 @@ void Control::Update() if(isfull == 1) { - GetObject()->GetRigidBody()->GetBody()->velocity.y = 35; - GetObject()->GetRender()->SetIt(7); + GetBody()->velocity.y = 35; + SetIt(7); } if(!isfull) { isfull = 1; - GetObject()->GetRender()->SetIt(9); + SetIt(9); } isdo = true; } @@ -296,14 +332,20 @@ void Control::Update() GetObject()->GetRender()->ReverseRender(direction); - if( GetObject()->GetTransform()->GetY() < 3) + if( GetY() < 3) { isfull = 0; Interface->DelVie(6); direction = false; } - GetEngine()->MiddleScreen( GetObject()->GetTransform()->GetX() + 12, (GetObject()->GetTransform()->GetY() + 16)); + if(boss && GetX() > 160) + { + SetX(160); + } + + GetEngine()->MiddleScreen( GetX() + 8 , GetY() + 10 ); + } void Control::Initialisation(Animation E, Animation S , Object * A , Script_GUI * G) @@ -318,26 +360,153 @@ void Control::Initialisation(Animation E, Animation S , Object * A , Script_GUI void Control::GenerateMonster() { - if(abs(oldx - GetObject()->GetTransform()->GetX()) > 15 || abs(oldy - GetObject()->GetTransform()->GetY()) > 15) - { - if(!rand_int(8)) + if(abs(oldx - GetX()) > 15 || abs(oldy - GetY()) > 15) + { + int sgnx = sgn(oldx - GetX());// Si 1 alors le perso se déplace vers la gauche Si -1 alors le perso se déplace vers la droite + int sgny = sgn(oldy - GetY());// Si 1 alors le perso se déplace vers le bas Si -1 alors le perso se déplace vers le ha + + if(abs(oldx - GetX()) < 15)sgnx = 0; + + if(abs(oldx - GetY()) < 15)sgny = 0; + + int needground = true; + + oldx = GetX(); + oldy = GetY(); + + if(!rand_int(4))// On détermine si il faut ou non faire poper un monstre. Le nombre diminue en fonction de la difficulté. { Object * Buffer = new Object; - Buffer->GetTransform()->SetXY(16,32); Buffer->AddRigidBody(); - Buffer->GetRender()->CopieRender(RenderEtoile); + Buffer->GetRigidBody()->SetMass(1); + + Mob_InLine * Buffer_Script1 = new Mob_InLine; + Mob_Piaf * Buffer_Script2 = new Mob_Piaf; + Mob_Champ * Buffer_Script3 = new Mob_Champ; + Mob_InLine_Fly * Buffer_Script4 = new Mob_InLine_Fly; + Mob_InLine * Buffer_Script5 = new Mob_InLine; + Mob_InLine_Jump * Buffer_Script6 = new Mob_InLine_Jump; + + switch(rand_int(6)) + { + case 0: + + Buffer->GetRender()->CopieRender(AOurs); + if(sgnx == -1) + Buffer_Script1->SetDirection(true); + else + Buffer_Script1->SetDirection(false); + + Buffer->AffectScript(Buffer_Script1); + + break; + case 1: + + Buffer->GetRender()->SetRender(APiaf,2); + needground = false; + + if(sgnx == -1) + Buffer_Script2->SetDirection(true); + else + Buffer_Script2->SetDirection(false); + + Buffer->AffectScript(Buffer_Script2); + + break; + case 2: + + Buffer->GetRender()->SetRender(AChamp,2); + Buffer->AffectScript(Buffer_Script3); + + break; + case 3: + + Buffer->GetRender()->CopieRender(AOupa); + needground = false; + + if(sgnx == -1) + Buffer_Script4->SetDirection(true); + else + Buffer_Script4->SetDirection(false); + + Buffer->AffectScript(Buffer_Script4); + + break; + case 4: + + Buffer->GetRender()->CopieRender(ABaby); + + + + if(sgnx == -1) + Buffer_Script5->SetDirection(true); + else + Buffer_Script5->SetDirection(false); + + Buffer->AffectScript(Buffer_Script5); + + break; + case 5: + + Buffer->GetRender()->CopieRender(AGhost); + + if(sgnx == -1) + Buffer_Script6->SetDirection(true); + else + Buffer_Script6->SetDirection(false); + + Buffer->AffectScript(Buffer_Script6); + + break; + default: + break; + } + + if( Buffer_Script1 != Buffer->GetScript())delete Buffer_Script1; + if( Buffer_Script2 != Buffer->GetScript())delete Buffer_Script2; + if( Buffer_Script3 != Buffer->GetScript())delete Buffer_Script3; + if( Buffer_Script4 != Buffer->GetScript())delete Buffer_Script4; + if( Buffer_Script5 != Buffer->GetScript())delete Buffer_Script5; + if( Buffer_Script6 != Buffer->GetScript())delete Buffer_Script6; + + + GetEngine()->AddObject(Buffer); + + int end = 0; + + do + { + do + { + + do + { + + Buffer->GetTransform()->SetXY( ((oldx - mod(oldx , 16))/16 + rand_int_ab( 8 , 12) * - sgnx ) * 16 , ((oldy - mod(oldy , 16))/16 + rand_int_ab( -2 , 6 ) * - sgny ) * 16 ); + end ++; + + if(end > 50) + { + GetEngine()->DelObject(Buffer); + return; + } + } + while( Buffer->IsOnScreen()); + + } + while( needground && ! Buffer->GetRigidBody()->CollisionDecor( Buffer->GetTransform()->GetX() , Buffer->GetTransform()->GetY() - 1) ); + + }while( Buffer->GetRigidBody()->CollisionDecor( Buffer->GetTransform()->GetX() , Buffer->GetTransform()->GetY()) ); + Buffer->AffectTag("Ennemis"); - GetEngine()->AddObject(Buffer); - } + Buffer = NULL; - oldx = GetObject()->GetTransform()->GetX(); - oldy = GetObject()->GetTransform()->GetY(); + } } } - void SAspi::Update() { Object * Buffer = NULL; @@ -361,8 +530,8 @@ void SSoufle::Update() { if(time > 0) { - if(direction == true)GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY() ); - else GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY() ); + if(direction)SetXY( GetX() - 3 , GetY() ); + else SetXY( GetX() + 3 , GetY() ); } time--; @@ -371,8 +540,8 @@ void SSoufle::Update() if(Buffer != NULL) { - GetEngine()->DelObject(Buffer); - GetEngine()->DelObject(GetObject()); + GetEngine()->DelObject(Buffer,true); + time = -11; Interface->AddScore(200); return; @@ -387,37 +556,36 @@ void SSoufle::Update() void SStar::Update() { + Object * Buffer = GetObject()->GetObjectCollisionTag("Ennemis"); - if(direction == true) + if(Buffer != NULL) { - GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY() ); - if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() - 3 , GetObject()->GetTransform()->GetY())) + GetEngine()->DelObject(Buffer); + SetXY(-50,-50); + + Interface->AddScore(400); + + return; + } + + if(direction) + { + SetXY( GetX() - 3 , GetY() ); + if(CollisionDecor(GetX() - 3 , GetY())) { GetEngine()->DelObject(GetObject());return; } } else { - GetObject()->GetTransform()->SetXY( GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY() ); - if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY())) - if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY())) - if(GetObject()->GetRigidBody()->CollisionDecor(GetObject()->GetTransform()->GetX() + 3 , GetObject()->GetTransform()->GetY())) + SetXY( GetX() + 3 , GetY() ); + if(CollisionDecor(GetX() + 3 , GetY())) + if(CollisionDecor(GetX() + 3 , GetY())) + if(CollisionDecor(GetX() + 3 , GetY())) { GetEngine()->DelObject(GetObject());return; } } - - Object * Buffer = GetObject()->GetObjectCollisionTag("Ennemis"); - - if(Buffer != NULL) - { - GetEngine()->DelObject(Buffer); - GetEngine()->DelObject(GetObject()); - - Interface->AddScore(400); - - return; - } } diff --git a/Script_Control.hpp b/Script_Control.hpp index 1c02b4a..cf38165 100644 --- a/Script_Control.hpp +++ b/Script_Control.hpp @@ -46,6 +46,14 @@ class Control: public Script void Teleport( int x , int y , int level ); void GenerateMonster(); + Animation AOurs; + Animation ABaby; + Animation AGhost; + Animation AOupa; + Animation * APiaf; + Animation * AChamp; + + private: bool isground; // Si Touche le sol True @@ -66,6 +74,10 @@ class Control: public Script Script_GUI * Interface; + int compteur; + + bool boss; + }; #endif // SCRIPTCONTROL diff --git a/Sprite.hpp b/Sprite.hpp index e76314b..43a04cf 100644 --- a/Sprite.hpp +++ b/Sprite.hpp @@ -198,7 +198,7 @@ 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_2(Bb2 , Bb2N , 16 ,16);S_Baby_2.CreateReverse(); Sprite S_Baby[]={ S_Baby_1 , S_Baby_2}; @@ -256,6 +256,87 @@ Animation A_Oupa(S_Oupa , 2 , 200); +//Bomber + + const unsigned char Bomber1[]={0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xcf, 0xff, 0x80, 0x77, 0xff, 0x80, 0x3f, 0xff, 0xbf, 0x9f, 0xff, 0xc0, 0x4f, 0xff, 0xac, 0x29, 0xff, 0xa8, 0x19, 0xff, 0xac, 0x9, 0xff, 0x80, 0x9, 0xff, 0xbf, 0x8f, 0xff, 0xbf, 0x8f, 0xff, 0xdf, 0xb, 0xff, 0xce, 0x1c, 0x7f, 0xe0, 0x38, 0x7f, 0xff, 0xf8, 0xff, 0xfc, 0xf9, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xbf, 0xff, 0xfc, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber1N[]={0x7, 0xe0, 0x3f, 0x1f, 0xf8, 0x3f, 0x7f, 0xfc, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0x7f, 0xfe, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0x7f, 0xff, 0xbf, 0x7f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x1f, 0xff, 0xbf, 0xf, 0xff, 0x3f, 0xf, 0xfe, 0x3f, 0x7, 0xf8, 0x3f, 0x7, 0xe0, 0x3f, 0x7, 0xc0, 0x3f, 0x7, 0xc0, 0x3f, 0x7, 0x80, 0x3f, 0x7, 0x80, 0x3f, 0x3, 0x0, 0x3f, }; + const unsigned char Bomber2[]={0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xcf, 0xff, 0x80, 0x77, 0xff, 0x80, 0x3f, 0xff, 0xbf, 0x9f, 0xff, 0xc0, 0x4f, 0xff, 0xac, 0x29, 0xff, 0xa8, 0x19, 0xff, 0xac, 0x9, 0xff, 0x80, 0x9, 0xff, 0xbf, 0x8f, 0xff, 0xdf, 0xf, 0xff, 0xce, 0x38, 0xff, 0xe0, 0x70, 0xff, 0xff, 0xf1, 0xff, 0xfc, 0xf3, 0xff, 0xfe, 0xff, 0xff, 0xf3, 0x7f, 0xff, 0xe1, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber2N[]={0x7, 0xe0, 0x7f, 0x1f, 0xf8, 0x7f, 0x7f, 0xfc, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0x7f, 0xfe, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xfe, 0x7f, 0x7f, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x7f, 0x1f, 0xfe, 0x7f, 0x1f, 0xfc, 0x7f, 0x1f, 0xf0, 0x7f, 0x3f, 0xc0, 0x7f, 0x7f, 0x0, 0x7f, 0x7e, 0x0, 0x7f, 0x7c, 0x0, 0x7f, }; + const unsigned char Bomber3[]={0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x3, 0xbf, 0xfc, 0x1, 0xff, 0xfd, 0xfc, 0xff, 0xfe, 0x2, 0x7f, 0xfd, 0x61, 0x4f, 0xfd, 0x40, 0xcf, 0xfd, 0x60, 0x4f, 0xfc, 0x0, 0x4f, 0xfd, 0xfc, 0x7f, 0xfe, 0xf8, 0x7f, 0x8e, 0x70, 0xff, 0x87, 0x1, 0xff, 0xc7, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x67, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber3N[]={0x0, 0x3f, 0x7, 0x0, 0xff, 0xc7, 0x3, 0xff, 0xe7, 0x7, 0xff, 0xf7, 0x7, 0xff, 0xf7, 0x7, 0xff, 0xf7, 0x3, 0xff, 0xf7, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xf7, 0x73, 0xff, 0xc7, 0xff, 0xff, 0x87, 0xff, 0xff, 0x7, 0x7f, 0xfe, 0x7, 0x3f, 0xfc, 0x7, 0x1f, 0xfc, 0x7, 0x7, 0xfc, 0x7, 0x1, 0xfe, 0x7, 0x0, 0x7f, 0x7, 0x0, 0x3f, 0x7, 0x0, 0x1f, 0x7, }; + const unsigned char Bomber4[]={0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0x3, 0xbf, 0xfc, 0x1, 0xff, 0xfd, 0xfc, 0xff, 0xfe, 0x2, 0x7f, 0xfd, 0x61, 0x4f, 0xfd, 0x40, 0xcf, 0xfd, 0x60, 0x4f, 0xfc, 0x0, 0x4f, 0xfd, 0xfc, 0x7f, 0xfe, 0xf8, 0x7f, 0x8e, 0x70, 0xff, 0x87, 0x1, 0xff, 0xc7, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber4N[]={0x0, 0x3f, 0x7, 0x0, 0xff, 0xc7, 0x3, 0xff, 0xe7, 0x7, 0xff, 0xf7, 0x7, 0xff, 0xf7, 0x7, 0xff, 0xf7, 0x3, 0xff, 0xf7, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xf7, 0x73, 0xff, 0xc7, 0xff, 0xff, 0x87, 0xff, 0xff, 0x7, 0x7f, 0xfe, 0x7, 0x3f, 0xfc, 0x7, 0x1f, 0xfc, 0x7, 0x7, 0xf8, 0x7, 0x1, 0xf8, 0x7, 0x0, 0xf8, 0x7, 0x0, 0xf8, 0x7, 0x0, 0x78, 0x7, 0x0, 0x78, 0x7, 0x0, 0x30, 0x7, }; + + const unsigned char Bomber5[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xfe, 0x1, 0xdf, 0xff, 0xfe, 0x0, 0xff, 0xff, 0xfe, 0xfe, 0x7f, 0xff, 0xff, 0x1, 0x3f, 0xff, 0xfe, 0xb0, 0xa7, 0xff, 0xfe, 0xa0, 0x67, 0xff, 0xfe, 0xa0, 0x67, 0xff, 0xfe, 0xb0, 0x27, 0xff, 0xfe, 0x0, 0x27, 0xff, 0xfe, 0xfe, 0x3f, 0xff, 0xff, 0x7c, 0x2f, 0xff, 0xff, 0x38, 0x71, 0xff, 0xff, 0x80, 0xe1, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xb3, 0xe7, 0xff, 0xfc, 0x79, 0xff, 0xff, 0xd8, 0x7e, 0xff, 0xe7, 0xcc, 0x73, 0xff, 0xc3, 0xe6, 0x71, 0xff, 0xc3, 0xf3, 0xf1, 0xff, 0xe7, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber5N[]={0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x7f, 0xe0, 0x0, 0x1, 0xff, 0xf0, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x1, 0xff, 0xf8, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xfc, 0x0, 0x3, 0xff, 0xf8, 0x0, 0x1, 0xff, 0xfe, 0x0, 0x1, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xfc, 0x7, 0x37, 0xff, 0xf8, 0x1f, 0xff, 0xdf, 0xe0, 0x3f, 0xff, 0xdf, 0x80, 0x7f, 0xff, 0xdf, 0x0, 0x7f, 0xff, 0x9f, 0x0, 0xff, 0xfc, 0x1e, 0x0, 0xff, 0xfe, 0x1e, 0x0, 0xff, 0xfe, 0xc, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, }; + const unsigned char Bomber6[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xe0, 0x7d, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xef, 0xf, 0xff, 0xff, 0xff, 0xf0, 0xc7, 0xff, 0xff, 0xff, 0xec, 0x27, 0xff, 0xff, 0xdf, 0xe8, 0x17, 0xff, 0xe7, 0xcf, 0xec, 0x14, 0x7f, 0xc3, 0xe7, 0xe0, 0xc, 0x7f, 0xc3, 0xf3, 0xff, 0x4, 0x7f, 0xe7, 0xfd, 0xde, 0x7, 0xff, 0xff, 0xfe, 0x34, 0xf, 0x1f, 0xff, 0xfe, 0x38, 0x1e, 0x1f, 0xff, 0xfe, 0x3f, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0x3e, 0x7f, 0xff, 0xf7, 0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xef, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber6N[]={0x0, 0x0, 0x3, 0xf0, 0xf, 0x0, 0x0, 0x7, 0xfc, 0xf, 0x0, 0x0, 0x1f, 0xfe, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xf, 0x0, 0x0, 0x3f, 0xff, 0xf, 0x0, 0x0, 0x3f, 0xff, 0x8f, 0x0, 0x3, 0x1f, 0xff, 0x8f, 0x7, 0x34, 0x3f, 0xff, 0xf, 0x1f, 0xf8, 0x3f, 0xff, 0x8f, 0x3f, 0xfc, 0x3f, 0xff, 0xcf, 0x7f, 0xfe, 0x3f, 0xff, 0xcf, 0x7f, 0xfe, 0x3f, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xef, 0x7f, 0xff, 0xe3, 0xff, 0xcf, 0x7f, 0xff, 0xc3, 0xff, 0x8f, 0x3f, 0xf8, 0x1, 0xfe, 0xf, 0x1f, 0xf0, 0x1, 0xf8, 0xf, 0x7, 0xc0, 0x1, 0xf0, 0xf, 0x0, 0x0, 0x1, 0xf0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0xf, 0x0, 0x0, 0x1, 0xe0, 0xf, 0x0, 0x0, 0x0, 0xc0, 0xf, }; + const unsigned char Bomber7[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xff, 0xc3, 0xcf, 0xff, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xef, 0x81, 0xf7, 0xff, 0xff, 0x9f, 0x80, 0x7f, 0xff, 0xff, 0x7f, 0xbc, 0x3f, 0xff, 0xff, 0xff, 0x43, 0x1f, 0xff, 0xff, 0xff, 0xb0, 0x9f, 0xff, 0xff, 0xff, 0xa0, 0x5f, 0xff, 0xff, 0xff, 0xb0, 0x51, 0xff, 0xff, 0xff, 0x80, 0x31, 0xff, 0xff, 0xff, 0xfc, 0x11, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xd0, 0x38, 0xff, 0xff, 0xff, 0xe0, 0x70, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x7f, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber7N[]={0x0, 0x6, 0x0, 0x0, 0x7f, 0x7, 0x68, 0x0, 0x0, 0x7f, 0x1f, 0xf0, 0x0, 0x0, 0x7f, 0x3f, 0xf8, 0x0, 0x0, 0x7f, 0x7f, 0xfc, 0x0, 0x0, 0x7f, 0x7f, 0xfc, 0x0, 0x0, 0x7f, 0xff, 0xf8, 0x0, 0x0, 0x7f, 0xff, 0xfc, 0x0, 0x0, 0x7f, 0xff, 0xfc, 0xf, 0xc0, 0x7f, 0xff, 0xfc, 0x1f, 0xf0, 0x7f, 0x7f, 0xfe, 0x7f, 0xf8, 0x7f, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0x3f, 0xff, 0xff, 0xfc, 0x7f, 0x1f, 0xff, 0xff, 0xfe, 0x7f, 0x7, 0xbf, 0xff, 0xfe, 0x7f, 0x0, 0x1e, 0xff, 0xfc, 0x7f, 0x0, 0x0, 0xff, 0xfe, 0x7f, 0x0, 0x0, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0xff, 0xff, 0x0, 0x0, 0x3f, 0xff, 0xff, 0x0, 0x0, 0x3f, 0xff, 0x7f, 0x0, 0x0, 0x1f, 0xfe, 0x7f, 0x0, 0x0, 0x1f, 0xfc, 0x7f, 0x0, 0x0, 0x1f, 0xf0, 0x7f, 0x0, 0x0, 0x3f, 0xc0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x7f, 0x0, 0x0, 0x7e, 0x0, 0x7f, 0x0, 0x0, 0x7c, 0x0, 0x7f, }; + const unsigned char Bomber8[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xe7, 0x9f, 0xff, 0xc3, 0xcf, 0xff, 0xc3, 0xe7, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xfe, 0x7f, 0xfc, 0xf, 0xbf, 0xfc, 0x3, 0xff, 0xfd, 0xe1, 0xff, 0xfe, 0x18, 0xff, 0xfd, 0x84, 0xff, 0xfd, 0x2, 0xff, 0xfd, 0x82, 0x8f, 0xfc, 0x1, 0x8f, 0xff, 0xe0, 0x8f, 0xff, 0xc0, 0xff, 0x8e, 0x81, 0xff, 0x87, 0x3, 0xff, 0xc7, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x67, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber8N[]={0x0, 0x6, 0x7, 0x7, 0x68, 0x7, 0x1f, 0xf0, 0x7, 0x3f, 0xf8, 0x7, 0x7f, 0xfc, 0x7, 0x7f, 0xfc, 0x7, 0xff, 0xf8, 0x7, 0xff, 0xfc, 0x7, 0xff, 0xfc, 0x7, 0xff, 0xfc, 0x7, 0x7f, 0xf8, 0x7, 0x7f, 0xf8, 0x7, 0x3f, 0xf0, 0x7, 0x1f, 0xe0, 0x7, 0x7, 0x80, 0x7, 0x7, 0xc0, 0x7, 0x7, 0xe0, 0x7, 0x7, 0xe0, 0x7, 0x7, 0xe0, 0x7, 0x7, 0xe0, 0x7, 0x3, 0xc0, 0x7, 0x0, 0x7e, 0x7, 0x0, 0xff, 0x87, 0x3, 0xff, 0xc7, 0x7, 0xff, 0xe7, 0x7, 0xff, 0xe7, 0x7, 0xff, 0xf7, 0x3, 0xff, 0xf7, 0x7, 0xff, 0xe7, 0x7, 0xff, 0xf7, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x7, 0xff, 0xff, 0x73, 0xff, 0xf7, 0xff, 0xff, 0x7, 0xff, 0xfe, 0x7, 0x7f, 0xfe, 0x7, 0x3f, 0xfc, 0x7, 0x1f, 0xfc, 0x7, 0x7, 0xfc, 0x7, 0x1, 0xfe, 0x7, 0x0, 0x7f, 0x7, 0x0, 0x3f, 0x7, 0x0, 0x1f, 0x7, }; + const unsigned char Bomber9[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xf3, 0xcf, 0xff, 0xff, 0xe1, 0xe7, 0xff, 0xff, 0xe1, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xbf, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xe1, 0xc3, 0xff, 0xff, 0xfe, 0x43, 0xff, 0xfc, 0xf, 0xbf, 0xff, 0xfc, 0x3, 0xff, 0xff, 0xfd, 0xe1, 0xff, 0xff, 0xfe, 0x18, 0xff, 0xff, 0xfd, 0x84, 0xff, 0xff, 0xfd, 0x2, 0xff, 0xff, 0xfd, 0x82, 0x8f, 0xff, 0xfc, 0x1, 0x8f, 0xff, 0xff, 0xe0, 0x8f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0x8e, 0x81, 0xff, 0xff, 0x87, 0x3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber9N[]={0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x3, 0xb4, 0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0, 0x7f, 0xf0, 0x0, 0x7e, 0x7f, 0xc0, 0x0, 0xff, 0xfe, 0x0, 0x3, 0xff, 0xfe, 0x0, 0x7, 0xff, 0xfc, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x7, 0xff, 0xf8, 0x0, 0x73, 0xff, 0xf0, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xfe, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, }; + const unsigned char Bomber10[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x3, 0xef, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xf9, 0x78, 0x7f, 0xff, 0xff, 0xb0, 0x86, 0x3f, 0xff, 0xe7, 0x99, 0x61, 0x3f, 0xff, 0xc3, 0xcf, 0x40, 0xbf, 0xff, 0xc3, 0xe7, 0x60, 0xa3, 0xff, 0xe7, 0xff, 0x0, 0x63, 0xff, 0xff, 0xff, 0xf8, 0x23, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0x87, 0xa0, 0x78, 0xff, 0xff, 0x87, 0xc0, 0xf0, 0xff, 0xff, 0x87, 0xff, 0xf1, 0xff, 0xff, 0x87, 0xf9, 0xf3, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char Bomber10N[]={0x0, 0x0, 0x1f, 0x80, 0x7f, 0x0, 0x0, 0x3f, 0xe0, 0x7f, 0x0, 0x0, 0xff, 0xf0, 0x7f, 0x0, 0x1, 0xff, 0xf8, 0x7f, 0x0, 0x7, 0xff, 0xf8, 0x7f, 0x7, 0x6f, 0xff, 0xfc, 0x7f, 0x1f, 0xff, 0xff, 0xfc, 0x7f, 0x3f, 0xff, 0xff, 0xf8, 0x7f, 0x7f, 0xff, 0xff, 0xfc, 0x7f, 0x7f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xf9, 0xff, 0xfe, 0x7f, 0xff, 0xfd, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0x7f, 0xff, 0xff, 0x7f, 0xfc, 0x3f, 0xff, 0x7f, 0x3f, 0xfc, 0x1f, 0xfe, 0x7f, 0x1f, 0xf8, 0x1f, 0xfc, 0x7f, 0x7, 0x80, 0xf, 0xf0, 0x7f, 0x0, 0x0, 0xf, 0xc0, 0x7f, 0x0, 0x0, 0xf, 0x80, 0x7f, 0x0, 0x0, 0xf, 0x80, 0x7f, 0x0, 0x0, 0xf, 0x0, 0x7f, 0x0, 0x0, 0xf, 0x0, 0x7f, 0x0, 0x0, 0x6, 0x0, 0x7f, }; + + Sprite S_Bomber_Normal_1( Bomber1 , Bomber1N , 18 , 26); + Sprite S_Bomber_Normal_2( Bomber2 , Bomber2N , 17 , 23); + Sprite S_Bomber_Normal_3( Bomber3 , Bomber3N , 21 , 23); + Sprite S_Bomber_Normal_4( Bomber4 , Bomber4N , 21 , 25); + + Sprite S_Bomber_Normal[]={ S_Bomber_Normal_1 , S_Bomber_Normal_2 , S_Bomber_Normal_3 , S_Bomber_Normal_4 , S_Bomber_Normal_3 , S_Bomber_Normal_2}; + + Animation A_Bomber_Normal(S_Bomber_Normal, 6 , 200); + Animation A_Bomber_Saut(S_Bomber_Normal, 6 , 600); + + Sprite S_Bomber_Bomb_1( Bomber5 , Bomber5N , 32 , 32 , - 19 , - 5); + Sprite S_Bomber_Bomb_2( Bomber6 , Bomber6N , 36 , 26 , -22 , 0); + Sprite S_Bomber_Bomb_3( Bomber7 , Bomber7N , 33 , 31 , -17 , 0); + Sprite S_Bomber_Bomb_4( Bomber8 , Bomber8N , 21 , 44); + Sprite S_Bomber_Bomb_5( Bomber9 , Bomber9N , 32 , 39); + Sprite S_Bomber_Bomb_6( Bomber10 , Bomber10N , 33 , 25 , -20 , 0); + + Sprite S_Bomber_Bomb[]={ S_Bomber_Bomb_6 , S_Bomber_Bomb_5 , S_Bomber_Bomb_4 , S_Bomber_Bomb_3 , S_Bomber_Bomb_2 , S_Bomber_Bomb_1 }; + Animation A_Bomber_Bomb(S_Bomber_Bomb,6,180,true); + + Animation A_Bomber[]={ A_Bomber_Normal , A_Bomber_Saut , A_Bomber_Bomb}; + + + const unsigned char Bomb[]={0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xe7, 0xcf, 0xc3, 0xe7, 0xc3, 0xf3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xcf, 0xff, 0x3f, 0xff, 0xff, }; + const unsigned char BombN[]={0x0, 0x3, 0x7, 0x34, 0x1f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0x7f, 0xfe, 0xff, 0xfc, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7f, 0xfc, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, 0x7, 0xc0, }; + + Sprite S_Bomb(Bomb,BombN , 16 , 15); + Animation A_Bomb(S_Bomb); + +//Wispy Wood + + const unsigned char Wood1[]={0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x81, 0x0, 0x9f, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc7, 0xc3, 0xff, 0xff, 0xe7, 0xc3, 0xff, 0xff, 0xa7, 0xc3, 0xff, 0xff, 0xa7, 0xc3, 0xff, 0xff, 0x87, 0xc3, 0xff, 0xff, 0x87, 0xc3, 0xff, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc1, 0x0, 0x9f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xff, 0xfc, 0x1f, 0xa0, 0x0, 0x2, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xff, 0xc0, 0x1, 0x1f, 0xff, 0xff, 0x82, 0x1f, 0xff, 0x81, 0xfc, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x60, 0x1f, 0xff, 0x80, 0xf0, 0x1f, 0xff, 0xc0, 0xf0, 0x1f, 0xff, 0xc1, 0xf8, 0x1f, 0xff, 0xc1, 0xf8, 0x1f, 0xff, 0xe0, 0xf0, 0x1f, 0xff, 0xa0, 0xf0, 0x1f, 0xff, 0xa0, 0x60, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, }; + const unsigned char Wood1N[]={0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, }; + + const unsigned char Wood2[]={0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x81, 0x0, 0x1f, 0xff, 0xc3, 0x80, 0x1f, 0xff, 0xc3, 0x80, 0x1f, 0xff, 0xc7, 0xc0, 0x1f, 0xff, 0xe7, 0xc0, 0x1f, 0xff, 0xa7, 0xc0, 0x1f, 0xff, 0xa7, 0xc4, 0x1f, 0xff, 0x87, 0xc7, 0x1f, 0xff, 0x87, 0xc7, 0xdf, 0xff, 0xc3, 0x87, 0xff, 0xff, 0xc3, 0x80, 0x7f, 0xff, 0xc1, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xff, 0xfc, 0x1f, 0xa0, 0x0, 0x2, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xff, 0xc0, 0x1, 0x1f, 0xff, 0xff, 0x82, 0x1f, 0xff, 0x81, 0xfc, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x10, 0x1f, 0xff, 0xe0, 0x7c, 0x1f, 0xff, 0xa1, 0xff, 0x1f, 0xff, 0xa3, 0xff, 0x9f, 0xff, 0x83, 0x1, 0x9f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, }; + + const unsigned char Wood3[]={0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x81, 0x0, 0x9f, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc7, 0xc3, 0xff, 0xff, 0xe7, 0xc3, 0xff, 0xff, 0xa7, 0xc3, 0xff, 0xff, 0xa7, 0xc3, 0xff, 0xff, 0x87, 0xc3, 0xff, 0xff, 0x87, 0xc3, 0xff, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc3, 0x81, 0xdf, 0xff, 0xc1, 0x0, 0x9f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0xa0, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x1f, 0xff, 0xff, 0xfc, 0x1f, 0xa0, 0x0, 0x2, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xa0, 0x0, 0x1, 0x1f, 0xff, 0xc0, 0x1, 0x1f, 0xff, 0xff, 0x82, 0x1f, 0xff, 0x81, 0xfc, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x1f, 0xff, 0xe0, 0x0, 0x1f, 0xff, 0xa0, 0x60, 0x1f, 0xff, 0xa0, 0x80, 0x1f, 0xff, 0x81, 0x0, 0x1f, 0xff, 0xc2, 0x0, 0x1f, 0xfe, 0x2, 0x0, 0x1f, 0xfc, 0x4, 0x0, 0x1f, 0xfc, 0x4, 0x0, 0x1f, 0xfe, 0x4, 0x0, 0x1f, 0xff, 0x4, 0x0, 0x1f, 0xff, 0x4, 0x0, 0x1f, 0xff, 0x4, 0x0, 0x1f, 0xfc, 0x2, 0x0, 0x1f, 0xff, 0x2, 0x0, 0x1f, 0xff, 0xc1, 0x0, 0x1f, 0xff, 0xc0, 0x80, 0x1f, 0xff, 0xe0, 0x60, 0x1f, }; + const unsigned char Wood3N[]={0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x7, 0xff, 0xff, 0xff, 0x7, 0xff, 0xff, 0xff, 0x7, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x7, 0xff, 0xff, 0xff, 0x3, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, }; + + Sprite S_Wood_Normal(Wood1,Wood1N,27,47); + Sprite S_Wood_Hurt(Wood2,Wood1N,27,47); + Sprite S_Wood_Attack1(Wood3,Wood3N,27,47); + + Sprite S_Wood_Attack[]={S_Wood_Attack1,S_Wood_Normal}; + + Animation A_Wood_Normal(S_Wood_Normal); + Animation A_Wood_Attack(S_Wood_Attack,2,250); + Animation A_Wood_Hurt(S_Wood_Hurt); + + Animation A_Wood[]={A_Wood_Normal,A_Wood_Attack,A_Wood_Hurt}; + + const unsigned char Apple[]={0xff, 0xff, 0xff, 0xf8, 0xf, 0xff, 0xe0, 0x3, 0xff, 0xc0, 0x1, 0xff, 0xc0, 0x1, 0xff, 0x80, 0x0, 0xff, 0x80, 0x0, 0xff, 0x80, 0x0, 0xff, 0x80, 0x0, 0xff, 0xa0, 0x0, 0xff, 0xd8, 0x0, 0xff, 0xcc, 0x1, 0xff, 0xf4, 0x1, 0xff, 0xf2, 0x3, 0xff, 0xfc, 0xf, 0xff, 0xff, 0xff, 0xff, }; + const unsigned char AppleN[]={0x7, 0xf0, 0x7f, 0x1f, 0xfc, 0x7f, 0x3f, 0xfe, 0x7f, 0x7f, 0xff, 0x7f, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x3f, 0xff, 0x7f, 0x3f, 0xfe, 0x7f, 0x4f, 0xfc, 0x7f, 0x47, 0xf0, 0x7f, }; + + Sprite S_Apple(Apple,AppleN,17,16); + Animation A_Apple(S_Apple); + //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, }; @@ -349,7 +430,7 @@ 0x2D,0x01,0x01,0x01,0x2D,0x01,0x01,0x28,0x26,0x2D, 0x27,0x01,0x27,0x01,0x27,0x28,0x26,0x23,0x01,0x31, 0x01,0x30,0x01,0x30,0x01,0x01,0x01,0x23,0x01,0x25, - 0x01,0x01,0x01,0x01,0x01,0x01,0x3D,0x3C,0x01,0x25, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x25, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x25, 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x23,0x01,0x24, 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, @@ -367,14 +448,3 @@ }; - - - - - - - - - - -