From cc1c05c5084b1cc58fbe4ead48d9de4172886f9b Mon Sep 17 00:00:00 2001 From: Fife Date: Sat, 11 Jun 2016 14:54:44 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20pour=20le=20nouveau=20C-?= =?UTF-8?q?Engine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GUI.cpp | 22 ++++++ GUI.hpp | 20 ++++++ GoldQuest.cpp | 134 +++++++++++++++++++++++++++++++++++++ Perso.cpp | 178 +++++++++++++++++++++++++++++++++++++++++++++++++ Perso.hpp | 31 +++++++++ Sprites.hpp | 176 ++++++++++++++++++++++++++++++++++++++++++++++++ generateur.cpp | 175 ++++++++++++++++++++++++++++++++++++++++++++++++ generateur.hpp | 57 ++++++++++++++++ monstres.cpp | 31 +++++++++ monstres.hpp | 21 ++++++ 10 files changed, 845 insertions(+) create mode 100644 GUI.cpp create mode 100644 GUI.hpp create mode 100644 GoldQuest.cpp create mode 100644 Perso.cpp create mode 100644 Perso.hpp create mode 100644 Sprites.hpp create mode 100644 generateur.cpp create mode 100644 generateur.hpp create mode 100644 monstres.cpp create mode 100644 monstres.hpp diff --git a/GUI.cpp b/GUI.cpp new file mode 100644 index 0000000..8aaa05e --- /dev/null +++ b/GUI.cpp @@ -0,0 +1,22 @@ +#include "GUI.hpp" + +void GUI:: Start() +{ + po = 0; +} + +void GUI:: Update() +{ + PrintMini(5,5,"PO :",0); + PrintV(25,5,po); +} + +void GUI::AddOr(int v) +{ + if(v > 0)po += v; +} + +void GUI::DelOr(int v) +{ + if(v > 0)po -= v; +} diff --git a/GUI.hpp b/GUI.hpp new file mode 100644 index 0000000..5de1951 --- /dev/null +++ b/GUI.hpp @@ -0,0 +1,20 @@ +#ifndef GQGUI +#define GQGUI + +#include "..\C-Engine\CEngine.hpp" + +class GUI: public Script +{ + public: + + void Start(); + void Update(); + void AddOr(int v); + void DelOr(int v); + + private: + + int po; +}; + +#endif // GQGUI diff --git a/GoldQuest.cpp b/GoldQuest.cpp new file mode 100644 index 0000000..9415b83 --- /dev/null +++ b/GoldQuest.cpp @@ -0,0 +1,134 @@ +#include "..\C-Engine\CEngine.hpp" +#include "generateur.hpp" +#include "monstres.hpp" +#include "GUI.hpp" +#include "Perso.hpp" + +int Jeu() +{ + + //*************Sprites*************\\ + + #include "Sprites.hpp" + + //*************Object*************\\ + + Object * Perso = new Object; + Perso->GetTransform()->SetXY( 20, 20 ); + Perso->GetRender()->SetRender( A_Perso , 9); + Perso->AffectTag("Perso"); + Perso->AddRigidBody(); + + Control * ScriptPerso = new Control; + Perso->AffectScript(ScriptPerso); + + Object * epee = new Object; + epee->GetRender ()->SetRender (A_epee); + ScriptPerso->p_epee = epee; + + //***********Generateur************\\ + + MonsterPattern P_Slime("Slime",A_Slime,3,10,10,0); + MonsterPattern P_Tab[]={P_Slime}; + + Object * GenerateurSlime1 = new Object; + Generateur * ScriptGenerateur1 = new Generateur; + GenerateurSlime1->AffectScript(ScriptGenerateur1); + + Object * GenerateurSlime2 = new Object; + Generateur * ScriptGenerateur2 = new Generateur; + GenerateurSlime2->AffectScript(ScriptGenerateur2); + + Object * GenerateurSlime3 = new Object; + Generateur * ScriptGenerateur3 = new Generateur; + GenerateurSlime3->AffectScript(ScriptGenerateur3); + + ScriptGenerateur1->SetBox(0,156,210,419); + ScriptGenerateur1->ShowBox(); + ScriptGenerateur1->SetTab(1,P_Tab); + + ScriptGenerateur2->SetBox(322,419,308,419); + ScriptGenerateur2->SetTab(1,P_Tab); + + ScriptGenerateur3->SetBox(266,419,0,56); + ScriptGenerateur3->SetTab(1,P_Tab); + + //*************Map*************\\ + + Level * mapPrincipal = new Level; + mapPrincipal->SetMap(tileset , M_mapprincipal, tileprop , 14 , 14 ,30,30); + + Level * maison1 = new Level; + maison1->SetMap(tilesethouse, M_maison1 , tileprophouse , 14 , 14 , 15 , 6); + + Level * maison2 = new Level; + maison2->SetMap(tilesethouse, M_maison2 , tileprophouse , 14 , 14 , 9 , 6); + + Level * maison3 = new Level; + maison3->SetMap(tilesethouse, M_maison3 , tileprophouse , 14 , 14 , 11 , 6); + + Level * world[]={mapPrincipal,maison1,maison2,maison3}; + + Object * Trigger1 = new Object; Trigger1->GetTransform()->SetXY(170,97); Trigger1->AddRigidBody();Trigger1->GetRigidBody()->UseFixeBody(10,2);Trigger1->AffectTag("T1"); + Object * Trigger2 = new Object; Trigger2->GetTransform()->SetXY(30,1); Trigger2->AddRigidBody();Trigger2->GetRigidBody()->UseFixeBody(10,2);Trigger2->AffectTag("T2"); + Object * Trigger3 = new Object; Trigger3->GetTransform()->SetXY(198,97); Trigger3->AddRigidBody();Trigger3->GetRigidBody()->UseFixeBody(10,2);Trigger3->AffectTag("T3"); + Object * Trigger4 = new Object; Trigger4->GetTransform()->SetXY(170,1); Trigger4->AddRigidBody();Trigger4->GetRigidBody()->UseFixeBody(10,2);Trigger4->AffectTag("T4"); + Object * Trigger5 = new Object; Trigger5->GetTransform()->SetXY(58,83); Trigger5->AddRigidBody();Trigger5->GetRigidBody()->UseFixeBody(10,2);Trigger5->AffectTag("T5"); + Object * Trigger6 = new Object; Trigger6->GetTransform()->SetXY(58,1); Trigger6->AddRigidBody();Trigger6->GetRigidBody()->UseFixeBody(10,2);Trigger6->AffectTag("T6"); + Object * Trigger7 = new Object; Trigger7->GetTransform()->SetXY(72,125); Trigger7->AddRigidBody();Trigger7->GetRigidBody()->UseFixeBody(10,2);Trigger7->AffectTag("T7"); + Object * Trigger8 = new Object; Trigger8->GetTransform()->SetXY(114,1); Trigger8->AddRigidBody();Trigger8->GetRigidBody()->UseFixeBody(10,2);Trigger8->AffectTag("T8"); + + //*************Moteur*************\\ + + + Engine Game; + + Game.SetLevel(world,4); + + Game.AddObject(GenerateurSlime1,0); + Game.AddObject(GenerateurSlime2,0); + Game.AddObject(GenerateurSlime3,0); + + Game.AddObject(Perso , 0); + Game.AddObject(epee , 0); + + Game.AddObject(Trigger1,0); + Game.AddObject(Trigger2,1); + Game.AddObject(Trigger3,0); + Game.AddObject(Trigger4,1); + Game.AddObject(Trigger5,0); + Game.AddObject(Trigger6,2); + Game.AddObject(Trigger7,0); + Game.AddObject(Trigger8,3); + + Game.StartGame(); + + + return 1; +} + +extern "C" +{ +int AddIn_main(int isAppli, unsigned short OptionNum) +{ + Jeu(); + return 1; +} +#pragma section _BR_Size + + +unsigned long BR_Size; +#pragma section + + +#pragma section _TOP + +int InitializeSystem(int isAppli, unsigned short OptionNum) +{ + return INIT_ADDIN_APPLICATION(isAppli, OptionNum); +} + +#pragma section +} + + diff --git a/Perso.cpp b/Perso.cpp new file mode 100644 index 0000000..340c63d --- /dev/null +++ b/Perso.cpp @@ -0,0 +1,178 @@ + +#include "Perso.hpp" + +void Control ::Start() +{ + couldown = 0; + Vie=40; + BarreVie=0; + VieMax=40; + + + p_epee->Disable(); + p_epee->AffectTag("Epee"); +} + +void Control::Update() +{ + BarreVie=Vie*40/VieMax; + ML_line (126,40,126,40-BarreVie,ML_BLACK); + ML_line (125,1,125,41,ML_BLACK); + ML_line (127,1,127,42,ML_BLACK); + ML_line (125,1,127,1,ML_BLACK); + ML_line (125,41,127,41,ML_BLACK); + + +Object * Buffer = GetObject()->GetObjectCollisionTag("Slime"); +if(Buffer != NULL) +{ + Vie--; + int difx = GetObject()->GetTransform()->GetX() - Buffer->GetTransform()->GetX(); + int dify = GetObject()->GetTransform()->GetY() - Buffer->GetTransform()->GetY(); + + GetObject()->GetRigidBody()->Move(difx * 2 ,dify * 2); +} + if (input_trigger(K_SHIFT) || couldown > 0) + { + couldown --; + if(couldown < 0) couldown = 10; + + switch (Direction_p) + { + case 1: + GetObject()->GetRender()->SetIt(7); + p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() + 1,GetObject()->GetTransform()->GetY() + 12); + p_epee->GetRender()->SetDirection(0); + break; + case 2: + GetObject()->GetRender()->SetIt(8); + GetObject()->GetRender()->ReverseRender(true); + p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX()+14,GetObject()->GetTransform()->GetY()-2); + p_epee->GetRender()->SetDirection(270); + break; + case 3: + GetObject()->GetRender()->SetIt(6); + p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() + 6,GetObject()->GetTransform()->GetY() - 12); + p_epee->GetRender()->SetDirection(180); + break; + case 4: + GetObject()->GetRender()->SetIt(8); + GetObject()->GetRender()->ReverseRender(false); + p_epee->GetTransform()->SetXY(GetObject()->GetTransform()->GetX() - 8,GetObject()->GetTransform()->GetY() - 3); + p_epee->GetRender()->SetDirection(90); + break; + } + + p_epee->Enable(); + } + else + { + p_epee->Disable(); + + if(input_press(K_RIGHT)) + { + GetObject()->GetRigidBody()->Move(1,0); + GetObject()->GetRender()->SetIt(5); + GetObject()->GetRender()->ReverseRender(true); + Direction_p=2; + } + else if(input_press(K_LEFT)) + { + GetObject()->GetRigidBody()->Move(-1,0); + GetObject()->GetRender()->SetIt(5); + GetObject()->GetRender()->ReverseRender(false); + Direction_p=4; + } + else if(input_press(K_UP)) + { + GetObject()->GetRigidBody()->Move (0,1); + GetObject()->GetRender()->SetIt(3); + Direction_p=1; + } + else if(input_press(K_DOWN)) + { + GetObject()->GetRigidBody()->Move (0,-1); + GetObject()->GetRender()->SetIt(1); + Direction_p=3; + } + else + { + switch (Direction_p) + { + case 1:GetObject()->GetRender()->SetIt(2);break; + case 2:GetObject()->GetRender()->SetIt(4);break; + case 3:GetObject()->GetRender()->SetIt(0);break; + case 4:GetObject()->GetRender()->SetIt(4);break; + } + } + } + + if(GetObject()->GetCollisionTag("T1")) + { + GetEngine()->MoveObject(GetObject(),1); + GetEngine()->MoveObject(p_epee,1); + GetEngine()->SetCurrentLevel(1); + GetObject()->GetTransform()->SetXY(29,3); + } + + if(GetObject()->GetCollisionTag("T2")) + { + GetEngine()->MoveObject(GetObject(),0); + GetEngine()->MoveObject(p_epee,0); + GetEngine()->SetCurrentLevel(0); + GetObject()->GetTransform()->SetXY(169,86); + } + + if(GetObject()->GetCollisionTag("T3")) + { + GetEngine()->MoveObject(GetObject(),1); + GetEngine()->MoveObject(p_epee,1); + GetEngine()->SetCurrentLevel(1); + GetObject()->GetTransform()->SetXY(169,3); + } + + if(GetObject()->GetCollisionTag("T4")) + { + GetEngine()->MoveObject(GetObject(),0); + GetEngine()->MoveObject(p_epee,0); + GetEngine()->SetCurrentLevel(0); + GetObject()->GetTransform()->SetXY(197,86); + } + + if(GetObject()->GetCollisionTag("T5")) + { + GetEngine()->MoveObject(GetObject(),2); + GetEngine()->MoveObject(p_epee,2); + GetEngine()->SetCurrentLevel(2); + GetObject()->GetTransform()->SetXY(57,3); + } + + if(GetObject()->GetCollisionTag("T6")) + { + GetEngine()->MoveObject(GetObject(),0); + GetEngine()->MoveObject(p_epee,0); + GetEngine()->SetCurrentLevel(0); + GetObject()->GetTransform()->SetXY(57,69); + } + + if(GetObject()->GetCollisionTag("T7")) + { + GetEngine()->MoveObject(GetObject(),3); + GetEngine()->MoveObject(p_epee,3); + GetEngine()->SetCurrentLevel(3); + GetObject()->GetTransform()->SetXY(113,3); + } + + if(GetObject()->GetCollisionTag("T8")) + { + GetEngine()->MoveObject(GetObject(),0); + GetEngine()->MoveObject(p_epee,0); + GetEngine()->SetCurrentLevel(0); + GetObject()->GetTransform()->SetXY(71,113); + } + + if (input_press(K_EXIT))GetEngine()->StopGame(); + + GetEngine()->MiddleScreen(GetObject()->GetTransform()->GetX() + 6 , GetObject()->GetTransform()->GetY() + 6); +} + diff --git a/Perso.hpp b/Perso.hpp new file mode 100644 index 0000000..eb4b862 --- /dev/null +++ b/Perso.hpp @@ -0,0 +1,31 @@ + + +#ifndef GQPERSO +#define GQPERSO + +#include "..\C-Engine\CEngine.hpp" +#include "GUI.hpp" + +class Control: public Script +{ + public: + + void Start(); + void Update(); + + + GUI * S_GUI; + Object * p_epee; + + private: + + int couldown; + int Direction_p; + int Vie; + int VieMax; + int BarreVie; + +}; + +#endif // GQPERSO + diff --git a/Sprites.hpp b/Sprites.hpp new file mode 100644 index 0000000..7013fd7 --- /dev/null +++ b/Sprites.hpp @@ -0,0 +1,176 @@ + + const unsigned char avant_normale_n[]={0x3f, 0x83, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, }; + const unsigned char avant_marche_1_n[]={0x3f, 0x83, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xfc, 0x0, }; + const unsigned char avant_marche_2_n[]={0x3f, 0x8f, 0x7f, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xcf, 0xff, 0xef, 0xff, 0xef, 0x7, 0xef, }; + + const unsigned char arriere_normale_n[]={0x3f, 0x83, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xe0, }; + const unsigned char arriere_marche_1_n[]={0x3f, 0x83, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0xff, 0xef, 0xff, 0xef, 0x7, 0xef, }; + const unsigned char arriere_marche_2_n[]={0x3f, 0x8f, 0x7f, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xfc, 0xf, }; + + const unsigned char cote_normal_n[]={0x7f, 0x87, 0xff, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0x3f, 0xc3, 0x3f, 0x7, 0x3e, 0x7, }; + const unsigned char cote_marche_1_n[]={0x7f, 0x87, 0xff, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xc7, 0x3f, 0xc3, 0x7f, 0xe7, 0x79, 0xe7, }; + const unsigned char cote_marche_2_n[]={0x7f, 0x8f, 0xff, 0xcf, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0xff, 0xef, 0x7f, 0xcf, 0x3f, 0xcf, 0x7f, 0xef, 0x79, 0xef, }; + + const unsigned char avant_normale[]={0xff, 0xff, 0xe0, 0xfe, 0xc0, 0x7c, 0x9b, 0x39, 0xb5, 0xbb, 0xb5, 0xbb, 0x9f, 0x39, 0xce, 0x7c, 0xe0, 0xfe, 0xbb, 0xbb, 0x84, 0x38, 0xff, 0xff, }; + const unsigned char avant_marche_1[]={0xff, 0xff, 0xe0, 0xfe, 0xc0, 0x7c, 0x9b, 0x39, 0xb5, 0xbb, 0xb5, 0xbb, 0x9f, 0x39, 0xce, 0x7c, 0xe0, 0xfe, 0xbb, 0xbb, 0x87, 0xff, 0xff, 0xff, }; + const unsigned char avant_marche_2[]={0xff, 0xff, 0xe0, 0xff, 0xc0, 0x7f, 0x9b, 0x3f, 0xb5, 0xbf, 0xb5, 0xbf, 0x9f, 0x3f, 0xce, 0x7f, 0xe0, 0xff, 0xbb, 0xbf, 0xfc, 0x3f, 0xff, 0xff, }; + + const unsigned char arriere_normale[]={0xff, 0xff, 0xe0, 0xfe, 0xc0, 0x7c, 0x80, 0x38, 0x80, 0x38, 0x80, 0x38, 0x80, 0x38, 0xc0, 0x7c, 0xe0, 0xfe, 0xbb, 0xbb, 0x84, 0x3f, 0xff, 0xff, }; + const unsigned char arriere_marche_1[]={0xff, 0xff, 0xe0, 0xfe, 0xc0, 0x7c, 0x80, 0x38, 0x80, 0x38, 0x80, 0x38, 0x80, 0x38, 0xc0, 0x7c, 0xe0, 0xfe, 0xbb, 0xbb, 0xfc, 0x38, 0xff, 0xff, }; + const unsigned char arriere_marche_2[]={0xff, 0xff, 0xe0, 0xff, 0xc0, 0x7f, 0x80, 0x3f, 0x80, 0x3f, 0x80, 0x3f, 0x80, 0x3f, 0xc0, 0x7f, 0xe0, 0xff, 0xbb, 0xbf, 0x87, 0xff, 0xff, 0xff, }; + + const unsigned char cote_normal[]={0xff, 0xff, 0xf4, 0xff, 0xf4, 0x7f, 0xb4, 0x3b, 0xb4, 0x3b, 0xf4, 0x3f, 0xe8, 0x3e, 0xe8, 0x7e, 0xf0, 0xff, 0xfb, 0xff, 0xe5, 0xfc, 0xff, 0xff, }; + const unsigned char cote_marche_1[]={0xff, 0xff, 0xf4, 0xff, 0xf4, 0x7f, 0xb4, 0x3b, 0xb4, 0x3b, 0xf4, 0x3f, 0xe8, 0x3e, 0xe8, 0x7e, 0xf0, 0xff, 0xfb, 0xff, 0xc7, 0xff, 0xf9, 0xff, }; + const unsigned char cote_marche_2[]={0xff, 0xff, 0xf4, 0xff, 0xf4, 0x7f, 0xb4, 0x3f, 0xb4, 0x3f, 0xf4, 0x3f, 0xe8, 0x3f, 0xe8, 0x7f, 0xf0, 0xff, 0xfb, 0xff, 0xff, 0x3f, 0xf9, 0xff, }; + + const unsigned char epee_av[]={0xff, 0xff, 0xe0, 0xff, 0xc0, 0x7f, 0x9b, 0x3f, 0xb5, 0xbf, 0xb5, 0xbf, 0x9f, 0x3f, 0xce, 0x7f, 0xe0, 0xff, 0xbb, 0xff, 0x85, 0xff, 0xff, 0xff, }; + const unsigned char epee_av_n[]={0x3f, 0x9f, 0x7f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,}; + + const unsigned char epee_ar[]={0xff, 0xff, 0xe0, 0xff, 0xc0, 0x7f, 0x80, 0x3f, 0x80, 0x3f, 0x80, 0x3f, 0x80, 0x3f, 0xc0, 0x7f, 0xe0, 0xff, 0xbb, 0xbf, 0x84, 0x3f, 0xff, 0xff,}; + const unsigned char epee_ar_n[]={0x7f, 0x9f, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,}; + const unsigned char epee_c[]={0xff, 0xff, 0xf4, 0xff, 0xf4, 0x7f, 0xb4, 0x3f, 0xb4, 0x3f, 0xf4, 0x3f, 0xe8, 0x3f, 0xe8, 0x7f, 0xf0, 0xff, 0xfb, 0xff, 0xe5, 0xff, 0xff, 0xff, }; + const unsigned char epee_c_n[]={0x7f, 0x9f, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdf, 0x3f, 0x1f, 0x3e, 0x1f, }; + + const unsigned char epee_normale[]={0xff, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xff, 0x8f, 0xdf, 0xff}; + const unsigned char epee_normale_n[]={0x27, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0xff, 0xff, 0x77, 0x77, }; + + Sprite S_epee (epee_normale,epee_normale_n,5,12); + Animation A_epee (S_epee); + + Sprite S_e_av ( epee_av , epee_av_n,11,12); + Sprite S_e_ar ( epee_ar , epee_ar_n ,11,12); + Sprite S_e_c ( epee_c,epee_c_n ,11,12);S_e_c.CreateReverse(); + + Animation A_e_av (S_e_av); + Animation A_e_ar (S_e_ar); + Animation A_e_c (S_e_c); + + Sprite S_a_n (avant_normale, avant_normale_n,11,12); + Sprite S_a_m1(avant_marche_1,avant_marche_1_n,11,12); + Sprite S_a_m2(avant_marche_2,avant_marche_2_n,11,12); + Sprite S_ar_n(arriere_normale,arriere_normale_n,11,12); + Sprite S_ar_m1(arriere_marche_1,arriere_marche_1_n,11,12); + Sprite S_ar_m2( arriere_marche_2, arriere_marche_2_n,11,12); + Sprite S_c_n(cote_normal,cote_normal_n,11,12);S_c_n.CreateReverse(); + Sprite S_c_m1(cote_marche_1,cote_marche_1_n,11,12);S_c_m1.CreateReverse(); + Sprite S_c_m2(cote_marche_2,cote_marche_2_n,11,12);S_c_m2.CreateReverse(); + + Sprite S_marche_a[]={S_a_m1,S_a_n,S_a_m2,S_a_n}; + Sprite S_marche_ar[]={S_ar_m1,S_ar_n,S_ar_m2,S_ar_n}; + Sprite S_marche_c[]={S_c_m1,S_c_n,S_c_m2,S_c_n}; + + Animation A_a_n (S_a_n); + Animation A_a_m(S_marche_a,4,200); + Animation A_ar_n(S_ar_n); + Animation A_ar_m(S_marche_ar,4,200); + Animation A_c_n(S_c_n); + Animation A_c_m(S_marche_c,4,200); + + Animation A_Perso[]={ A_a_n , A_a_m , A_ar_n , A_ar_m , A_c_n , A_c_m , A_e_av , A_e_ar , A_e_c}; + + const unsigned char scoffre[]={0xff, 0xff, 0xa9, 0x5f, 0xa9, 0x5f, 0xa9, 0x5f, 0xbf, 0xdf, 0x80, 0x1f, 0xf9, 0xff, 0x89, 0x1f, 0xaf, 0x5f, 0xa0, 0x5f, 0xf0, 0xff, 0xff, 0xff, }; + + Sprite s_coffre(scoffre , 12 , 12); + Animation A_coffre(s_coffre); + + const unsigned char slime0[]={0xfe, 0xee, 0xc6, 0x83, 0xab, 0x83, 0xfe, }; + const unsigned char slime1[]={0x11, 0x39, 0x7d, 0xff, 0xff, 0xff, 0x7d, }; + const unsigned char slime2[]={0xfe, 0xfe, 0xee, 0xc6, 0xab, 0x83, 0xfe, }; + const unsigned char slime3[]={0x1, 0x11, 0x39, 0x7d, 0xff, 0xff, 0x7d, }; + const unsigned char slime4[]={0xfe, 0xee, 0xc6, 0x83, 0x83, 0x83, 0xfe, }; + const unsigned char slime5[]={0x11, 0x39, 0x7d, 0xff, 0xff, 0xff, 0x7d, }; + const unsigned char slime6[]={0xfe, 0xfe, 0xee, 0xc6, 0x83, 0x83, 0xfe, }; + const unsigned char slime7[]={0x1, 0x11, 0x39, 0x7d, 0xff, 0xff, 0x7d, }; + const unsigned char slime8[]={0xfe, 0xee, 0xc6, 0x83, 0xa3, 0x83, 0xfe, }; + const unsigned char slime9[]={0x19, 0x39, 0x7d, 0xff, 0xff, 0xff, 0x7d, }; + const unsigned char slime10[]={0xfe, 0xfe, 0xee, 0xc6, 0xa3, 0x83, 0xfe, }; + const unsigned char slime11[]={0x1, 0x19, 0x39, 0x7d, 0xff, 0xff, 0x7d, }; + + Sprite S_Slime1(slime0,slime1,7,7);S_Slime1.CreateReverse(); + Sprite S_Slime2(slime2,slime3,7,7);S_Slime2.CreateReverse(); + Sprite S_Slime3(slime4,slime5,7,7);S_Slime3.CreateReverse(); + Sprite S_Slime4(slime6,slime7,7,7);S_Slime4.CreateReverse(); + Sprite S_Slime5(slime8,slime9,7,7);S_Slime5.CreateReverse(); + Sprite S_Slime6(slime10,slime11,7,7);S_Slime6.CreateReverse(); + + + Sprite S_SlimeFace[]={S_Slime1,S_Slime2}; + Sprite S_SlimeDos[]={S_Slime3,S_Slime4}; + Sprite S_SlimeCote[]={S_Slime5,S_Slime6}; + + Animation A_SlimeFace(S_SlimeFace,2,200); + Animation A_SlimeDos(S_SlimeDos,2,200); + Animation A_SlimeCote(S_SlimeCote,2,200); + + + Animation A_Slime[]={A_SlimeFace,A_SlimeDos,A_SlimeCote}; + + const unsigned char tileset[]={0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0xc0, 0x3, 0xc0, 0x3, 0xcf, 0xe3, 0xc8, 0x23, 0xca, 0x23, 0xc9, 0x23, 0xc8, 0xa3, 0xc8, 0x23, 0xcf, 0xe3, 0xc0, 0x3, 0x40, 0x3, 0x60, 0x3, 0x3f, 0xff, 0xff, 0xff, 0x0, 0xf, 0x0, 0xf, 0x1f, 0xcf, 0x10, 0x4f, 0x14, 0x4f, 0x12, 0x4f, 0x11, 0x4f, 0x10, 0x4f, 0x1f, 0xcf, 0x0, 0xf, 0x0, 0xb, 0x0, 0x1b, 0xff, 0xf3, 0xff, 0xff, 0x0, 0x3, 0x3f, 0xf3, 0x20, 0x13, 0x3f, 0xf3, 0x18, 0x63, 0x10, 0x23, 0x10, 0x23, 0x11, 0xa3, 0x10, 0xa3, 0x10, 0x23, 0x10, 0x23, 0x10, 0x23, 0xff, 0xff, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x3, 0xff, 0x6, 0x3, 0xb, 0xff, 0x1d, 0x57, 0x2f, 0xff, 0x7a, 0xab, 0xaf, 0xff, 0xf5, 0x57, 0xbf, 0xff, 0xea, 0xab, 0xbf, 0xff, 0xd5, 0x57, 0xff, 0xff, 0xaa, 0xab, 0xff, 0x3, 0x1, 0x83, 0xff, 0x43, 0x55, 0xe3, 0xff, 0xd3, 0xaa, 0xfb, 0xff, 0xd7, 0x55, 0x7f, 0xff, 0xf7, 0xaa, 0xbf, 0xff, 0xf7, 0x55, 0x5f, 0xff, 0xff, 0xaa, 0xaf, 0xff, 0xff, 0x0, 0x3, 0xff, 0xff, 0x55, 0x57, 0xff, 0xff, 0xaa, 0xab, 0xff, 0xff, 0x55, 0x57, 0xff, 0xff, 0xaa, 0xab, 0xff, 0xff, 0x55, 0x57, 0xff, 0xff, 0xaa, 0xab, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x4, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xb, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x7, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xb, 0x43, 0x8, 0x7f, 0x8, 0x43, 0x8, 0x43, 0x8, 0x7f, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x7, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xb, 0x43, 0xf8, 0x43, 0x8, 0x43, 0x8, 0x43, 0xf8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x8, 0x43, 0x7, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xf, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0x4, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xf, 0xc3, 0xc, 0xff, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xff, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0x4, 0x83, 0x3, 0x3, 0xc, 0xc3, 0x8, 0x43, 0xc, 0xc3, 0xf, 0xc3, 0xfc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xfc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0xc, 0xc3, 0x4, 0xc3, 0x4, 0x83, 0x0, 0x3, 0x7f, 0xfb, 0x54, 0xab, 0x54, 0xab, 0x54, 0xab, 0x5f, 0xeb, 0x40, 0xb, 0x7c, 0xfb, 0x44, 0x8b, 0x57, 0xab, 0x50, 0x2b, 0x78, 0x7b, 0x7f, 0xfb, 0x0, 0x3, 0x0, 0x3, 0x7f, 0xf3, 0x40, 0x13, 0x7f, 0xf3, 0x20, 0x23, 0x2c, 0xa3, 0x20, 0x23, 0x7f, 0xf3, 0x40, 0x13, 0x7f, 0xf3, 0x5, 0x3, 0x5, 0x3, 0x7, 0x3, 0x0, 0x3, 0x83, 0x3, 0xc4, 0x8f, 0xa8, 0x57, 0x9b, 0x67, 0xac, 0xd7, 0x94, 0xa7, 0x4c, 0xcb, 0x3f, 0xf3, 0xcf, 0xcb, 0x95, 0xe7, 0x89, 0x47, 0x78, 0x7f, 0x8, 0x43, 0x7, 0x83, 0x80, 0x3, 0x78, 0x3, 0x64, 0x3, 0x54, 0x3, 0x4a, 0x3, 0x21, 0x3, 0x1f, 0x3, 0x0, 0x7f, 0x0, 0x9b, 0x0, 0xab, 0x1, 0x4b, 0x2, 0x13, 0x3, 0xe3, 0x0, 0x3, 0x0, 0x3, 0x8, 0x3, 0x14, 0x3, 0x8, 0x3, 0x0, 0x23, 0x0, 0x73, 0x4, 0x23, 0xa, 0x3, 0x4, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x2, 0x3, 0x0, 0x3, 0x20, 0x13, 0x0, 0x3, 0x0, 0x3, 0x2, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, }; + + bool tileprop[]={ 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0}; + + unsigned char M_mapprincipal[]={ + 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x14, + 0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x14,0x12,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x05,0x07,0x06,0x00,0x00,0x00,0x09,0x12,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x11,0x01,0x03,0x02,0x00,0x00,0x00,0x09,0x00,0x00,0x14,0x00,0x00,0x14,0x00, + 0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x12,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x15,0x15,0x00,0x00,0x00,0x00,0x09,0x00,0x12,0x00,0x00,0x00,0x00,0x00, + 0x14,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x0B,0x08,0x08,0x08,0x0C,0x00,0x15,0x00,0x0B,0x08,0x08,0x0C,0x00,0x00,0x00,0x14,0x00,0x12,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x14,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00, + 0x14,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x14,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x12,0x00,0x00,0x00, + 0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x0C,0x15,0x00,0x0B,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0F,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00, + 0x09,0x00,0x00,0x05,0x07,0x07,0x06,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x15,0x15,0x14,0x00,0x00,0x00,0x00, + 0x09,0x00,0x00,0x01,0x04,0x03,0x02,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00,0x00,0x15,0x15,0x00,0x15,0x15,0x00,0x05,0x07,0x07,0x07,0x06,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x12,0x00,0x00, + 0x09,0x00,0x00,0x05,0x07,0x06,0x00,0x00,0x15,0x00,0x00,0x01,0x03,0x04,0x03,0x02,0x11,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x09,0x00,0x00,0x01,0x03,0x02,0x11,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x0A,0x11,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x14,0x00,0x00, + 0x09,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x15,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00,0x15,0x15,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00, + 0x09,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x15,0x00,0x00,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00, + 0x09,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x10,0x15,0x15,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x12,0x00, + 0x09,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x15,0x15,0x15,0x00,0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x14,0x00,0x00, + 0x0B,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00,0x14,0x00,0x12,0x00,0x00,0x00,0x00,0x00, + }; + + const unsigned char tilesethouse[]={0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7, 0x80, 0x7, 0xff, 0xff, 0x80, 0x7, 0xbf, 0xf7, 0xa0, 0x17, 0xa0, 0x17, 0xbf, 0xf7, 0xa0, 0x17, 0xa0, 0x17, 0xbf, 0xf7, 0x80, 0x7, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0x3f, 0xf3, 0x40, 0xb, 0x5f, 0xeb, 0x5f, 0xeb, 0x5f, 0xeb, 0x40, 0xb, 0x40, 0xb, 0x5f, 0xeb, 0x50, 0x2b, 0x50, 0x2b, 0x70, 0x3b, 0x0, 0x3, 0x0, 0x3, 0x7, 0x83, 0x18, 0x63, 0x20, 0x13, 0x40, 0xb, 0x47, 0x8b, 0x68, 0x5b, 0x90, 0x27, 0x90, 0x27, 0x90, 0x27, 0x63, 0x1b, 0x18, 0x63, 0x7, 0x83, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x0, 0x3, 0x0, 0x3, 0x0, 0x3, 0xff, 0xff, 0x0, 0x3, 0xff, 0xff, 0x90, 0x27, 0xa0, 0x17, 0x90, 0x27, 0xa0, 0x17, 0x90, 0x27, 0xa0, 0x17, 0x90, 0x27, 0xa0, 0x17, 0x90, 0x27, 0xa0, 0x17, 0x90, 0x27, 0xa0, 0x17, 0xff, 0xff, }; + + bool tileprophouse[]={ 0,1,1,1,1,1,6,}; + + unsigned char M_maison1[]={ + 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x01, + 0x01,0x00,0x00,0x00,0x00,0x02,0x02,0x06,0x02,0x00,0x04,0x00,0x04,0x00,0x01, + 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x03,0x00,0x01, + 0x01,0x00,0x00,0x00,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01, + }; + + unsigned char M_maison2[]={ + 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, + 0x01,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x01, + 0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x00,0x02,0x00,0x00,0x03,0x03,0x00,0x01, + 0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01, + }; + + unsigned char M_maison3[]={ + 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, + 0x01,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x02,0x02,0x01, + 0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01, + }; + + diff --git a/generateur.cpp b/generateur.cpp new file mode 100644 index 0000000..21ff992 --- /dev/null +++ b/generateur.cpp @@ -0,0 +1,175 @@ + + +#include "..\C-Engine\CEngine.hpp" +#include "generateur.hpp" +#include "monstres.hpp" + +MonsterPattern::MonsterPattern(char * vtag , Animation * vanim, int vanimnb, int vfreq, int vmax, int vidscript) +{ + tag = vtag; + anim = vanim; + nbanim = vanimnb; + freq = vfreq; + max = vmax; + idscript = vidscript; +} + +Generateur::Generateur() +{ + M_nombre = 0; + M_Tag = NULL; + M_Anim = NULL; + M_Anim_nb = NULL; + M_Max = NULL; + M_Frequence = NULL; + + active = false; + show = false; +} + +void Generateur::ShowBox() +{ + show = true; +} + +void Generateur::SetBox(int x1 , int x2 , int y1 , int y2) +{ + if(x1 > x2) + { + int b = x1; + x1 = x2; + x2 = b; + } + + if(y1 > y2) + { + int c = y1; + y1 = y2; + y2 = c; + } + + GetObject()->GetTransform()->SetXY(x1,y1); + GetObject()->AddRigidBody(); + GetObject()->GetRigidBody()->UseFixeBody(x2-x1,y2-y1); +} + +void Generateur::SetTab( int nbmonstre , MonsterPattern * tabpattern) +{ + if(nbmonstre > 0 && tabpattern != NULL) + { + M_nombre = nbmonstre; + M_Tag = new char*[M_nombre]; + M_Anim = new Animation*[M_nombre]; + M_Anim_nb = new int[M_nombre]; + M_Max = new int[M_nombre]; + M_Frequence = new int[M_nombre]; + M_Couldown = new int[M_nombre]; + M_Id_Script = new int[M_nombre]; + + for(int i = 0; i < M_nombre ; i++ ) + { + M_Tag[i] = tabpattern[i].tag; + M_Anim[i] = tabpattern[i].anim; + M_Anim_nb[i] = tabpattern[i].nbanim; + M_Max[i] = tabpattern[i].max; + M_Frequence[i] = tabpattern[i].freq; + M_Couldown[i] = 0; + M_Id_Script[i] = tabpattern[i].idscript; + } + } +} + +void Generateur::Update() +{ + if(GetObject()->GetCollisionTag("Perso"))active = true; + else active = false; + + if(show) + { + GetEngine()->UpdateRelativePosition(); + ML_rectangle(GetObject()->GetTransform()->GetRelativeX(),63 - GetObject()->GetTransform()->GetRelativeY(),GetObject()->GetTransform()->GetRelativeX() + GetObject()->GetRigidBody()->GetWidht() , 63 - GetObject()->GetTransform()->GetRelativeY() - GetObject()->GetRigidBody()->GetHeight(),1, ML_BLACK , ML_WHITE); + } +} + +int Generateur::RandX() +{ + int min = GetObject()->GetTransform()->GetX(); + int max = GetObject()->GetTransform()->GetX() + GetObject()->GetRigidBody()->GetWidht(); + + return rand_int_ab( min , max ); +} + +int Generateur::RandY() +{ + int min = GetObject()->GetTransform()->GetY(); + int max = GetObject()->GetTransform()->GetY() + GetObject()->GetRigidBody()->GetHeight(); + + return rand_int_ab( min , max ); +} + +void Generateur::CreateMonster(int id) +{ + Object * Buffer = new Object; + Buffer->GetTransform()->SetXY( RandX() , RandY() ); + Buffer->AffectTag(M_Tag[id]); + Buffer->GetRender()->SetRender(M_Anim[id], M_Anim_nb[id]); + Buffer->AddRigidBody(); + + switch(M_Id_Script[id]) + { + case 0: + IaSlime * ScriptBuffer = new IaSlime; + Buffer->AffectScript(ScriptBuffer); + break; + case 1: + + break; + + default: break; + } + + GetEngine()->AddObject(Buffer); + + while(Buffer->GetRigidBody()->CollisionDecor(Buffer->GetTransform()->GetX(),Buffer->GetTransform()->GetY())) + { + Buffer->GetTransform()->SetXY( RandX() , RandY() ); + } +} + +void Generateur::UpdateTimer(int id) +{ + M_Couldown[id]++; + + if(M_Couldown[id] > 60 / M_Frequence[id]) + { + CreateMonster(id); + M_Couldown[id] = 0; + } +} + +void Generateur::UpdateEverySecond() +{ + if(active) + { + for(int i = 0; i < M_nombre; i++) + { + if(CheckNbMonster(i) < M_Max[i])UpdateTimer(i); + } + } +} + + int Generateur::CheckNbMonster( int id) + { + int nbmonster = 0; + + for(int i = 0; i < GetEngine()->GetNbObject();i++) + { + if(strcmp(GetEngine()->GetListeObject()[i]->GetTag() , M_Tag[id]) == 0 && GetEngine()->GetListeObject()[i]->GetEnable() == true) + { + if(GetObject()->Collision(i))nbmonster++; + } + } + + return nbmonster; + } + diff --git a/generateur.hpp b/generateur.hpp new file mode 100644 index 0000000..0b5765c --- /dev/null +++ b/generateur.hpp @@ -0,0 +1,57 @@ +#ifndef GENERATEUR +#define GENERATEUR + +#include "..\C-Engine\CEngine.hpp" + +class MonsterPattern +{ + public: + + MonsterPattern(char * vtag , Animation * vanim, int vanimnb, int vfreq, int vmax, int vidscript); + + char * tag; + Animation * anim; + int nbanim; + int freq; + int max; + int idscript; +}; + +class Generateur: public Script +{ + public: + + Generateur(); + + void SetBox(int x1 , int x2 , int y1 , int y2); + void SetTab( int nbmonstre , MonsterPattern * tabpattern); + + void Update(); + void UpdateEverySecond(); + + int CheckNbMonster( int id); + void UpdateTimer(int id); + void CreateMonster( int id); + + void ShowBox(); + + int RandX(); + int RandY(); + + private: + + int M_nombre; //Le nombre de monstres géré par le générateur. + char** M_Tag; // Un tableau qui contient le tag de tout les monstres. + Animation ** M_Anim; // Tableau des différents animations. + int * M_Anim_nb; //Tableau qui contient le nombre d'animation par pointeur d'animation + int * M_Max; //tableau du nombre max de monstre dans la zone. + int * M_Frequence; // frequence d'apparition des monstres par minute > 0 + int * M_Couldown; // tableau nécessaire pour stocker le temps. + int * M_Id_Script; //Tableau qui contient le numéro du script qui doit être executer. + + bool active; + bool show; +}; + +#endif // GQGUI + diff --git a/monstres.cpp b/monstres.cpp new file mode 100644 index 0000000..5f16217 --- /dev/null +++ b/monstres.cpp @@ -0,0 +1,31 @@ +#include "..\C-Engine\CEngine.hpp" + +#include "monstres.hpp" + +void IaSlime::Start() +{ + GetObject()->AddRigidBody(); + Direction = 0; +} + +void IaSlime::UpdateEverySecond() +{ + Direction = rand_int_ab(1, 5); + + switch(Direction) + { + case 1 : GetObject()->GetRigidBody()->Move(0,3);GetObject()->GetRender()->SetIt(1);break; + case 2 : GetObject()->GetRigidBody()->Move(3,0);GetObject()->GetRender()->SetIt(2);GetObject()->GetRender()->ReverseRender(true); break; + case 3 : GetObject()->GetRigidBody()->Move(0,-3);GetObject()->GetRender()->SetIt(0);break; + case 4 : GetObject()->GetRigidBody()->Move(-3,0);GetObject()->GetRender()->SetIt(2);GetObject()->GetRender()->ReverseRender(false); break; + } +} + +void IaSlime::Update() +{ + if(GetObject()->GetCollisionTag("Epee")) + { + GetEngine()->DelObject(GetObject()); + } + +} diff --git a/monstres.hpp b/monstres.hpp new file mode 100644 index 0000000..73f56db --- /dev/null +++ b/monstres.hpp @@ -0,0 +1,21 @@ +#ifndef SLIME +#define SLIME + +#include "..\C-Engine\CEngine.hpp" + +class IaSlime: public Script +{ + public: + + void Start(); + void UpdateEverySecond(); + void Update(); + + int Direction; + +}; + + + +#endif +