1 /* 2 * DESCRIPCION DEL JUEGO 3 * Copyright (C) 2007 Javier P�rez Pacheco 4 * 5 * Este juego tienen licencia Creative Commons y se permite 6 * su modificacion y utilizacion libremente siempre y cuando se 7 * cite al autor original y se comparta con la misma licencia. 8 * No se permite su uso comercial. 9 * 10 * Para mas informacion visite la web: 11 * http://creativecommons.org/licenses/by-nc-sa/2.0/es/ 12 * 13 * PROGRAMADOR 14 * Javier P�rez Pacheco 15 * Cadiz (Spain) 16 * javielinux@gmail.com 17 * 18 * GRAFISMO Y 3D 19 * Jesus Carrasco 20 * Cadiz (Spain) 21 * carrasco.carrasco@gmail.com 22 * 23 * MUSICA Y GRAFISMO 24 * Shano Lores 25 * Cadiz (Spain) 26 * shanakla@gmail.com 27 * 28 */ 29 30 #ifndef SCENEEDITGAME_H_ 31 #define SCENEEDITGAME_H_ 32 33 #include "martian.h" 34 #include "scene.h" 35 #include "class_editgame.h" 36 #include "class_game.h" 37 38 39 #include <dirent.h> 40 41 #define SCENE_EDITGAME_MAIN 0 42 #define SCENE_EDITGAME_ADDOBJECT 1 43 #define SCENE_EDITGAME_EDITFOOD 2 44 #define SCENE_EDITGAME_EDITINFO 3 45 #define SCENE_EDITGAME_CLEAN 4 46 #define SCENE_EDITGAME_HELP 5 47 #define SCENE_EDITGAME_ADDINFOTOWN 6 48 49 #define SCENE_EDITGAME_ADDOBJECT_GAME 0 50 #define SCENE_EDITGAME_ADDOBJECT_PERSONAL 1 51 #define SCENE_EDITGAME_ADDOBJECT_TEXT 2 52 53 #define SCENE_EDITGAME_EDITINFO_MAIN 0 54 #define SCENE_EDITGAME_EDITINFO_DATA 1 55 #define SCENE_EDITGAME_EDITINFO_MUSIC 2 56 57 using namespace std; 58 using namespace Martian; 59 60 class SceneEditGame; 61 62 class InfoButton : public Group { 63 64 private: 65 Element *bg; 66 Element *title; 67 Button *bEdit, *bDelete; 68 int indexz; 69 int index; 70 71 public: 72 InfoButton (); 73 ~InfoButton(); 74 75 void setTitle(string t); 76 77 void setIndex (int i); getIndex()78 int getIndex () { return index; } 79 setIndexZ(int z)80 void setIndexZ (int z) { indexz = z; } getIndexZ()81 int getIndexZ () { return indexz; } 82 83 void draw(); 84 85 void onOver(); 86 87 void unLoad(); 88 89 void verifyClick(SceneEditGame *sc); 90 91 }; 92 93 class SceneEditGame : public Scene { 94 95 private: 96 int nElmHelp; 97 98 public: 99 100 Element *multiLanguageNoSupport; 101 102 VectorColors *vcolorsWall, *vcolorsTextInWall; 103 104 Entry *missionName; 105 Entry *nameAuthor; 106 107 Entry *levelName; 108 Entry *provinceName; 109 110 Button *bInfoMain, *bInfoData, *bInfoMusic; 111 112 SelectButton *typeButtonInfoTown; 113 Entry *eTitleInfoTown; 114 Entry *taInfoTown; 115 116 ListView *dataInfo; 117 Element *noExistInfoTown; 118 int indexEditInfoTown; 119 Button *bAddInfo; 120 121 RadioButton *radMusic0, *radMusic1, *radMusic2, *radMusic3; 122 123 int pageEditInfo; 124 125 RadioButton *bNimuh, *bEnemy1, *bEnemy2, *bEnemy3, *bWallRight, *bWallBottom, *bDoor; 126 RadioButton *bBlackHole1, *bBlackHole2, *bTrap, *bKey, *bDoorKey, *bEat; 127 128 Element *menuText; 129 MarqueeElement *menuTown; 130 131 SelectButton *typeBoard, *typeFloor, *typeWall, *typeTiled, *typeTerrain, *colorWall, *nTilesClosed, *typePavement, *typeWallScenary; 132 133 Group *menu; 134 Element *menuBg; 135 136 Element *frameUp, *frameDown; 137 138 Element *blueLine; 139 140 Group *handTray; 141 Element *bgHandTray; 142 Button *btHandTray; 143 144 Button *bQuit, *bEditInfo, *bAddObject, *bSave, *bRules, *bClean, *bHelp; 145 146 Element *bgBox; 147 Element *bgHelp; 148 Element *middleBox; 149 Entry *titleFood; 150 Entry *textFood; 151 152 Element *elmHelp; 153 154 Element *titleIndex; 155 156 Button *bIndex, *bPrevious, *bNext; 157 158 Button *bHelp1, *bHelp2, *bHelp3, *bHelp4, *bHelp5, *bHelp6, *bHelp7, *bHelp8; 159 160 Element *infoImageFood; 161 162 Button *bAccept, *bCancel; 163 164 Button *bCleanScenary, *bCleanBoard, *bCleanReset; 165 166 Button *bObjectsGame, *bObjectsPersonal, *bObjectsTexts; 167 168 Element *infoObjectsPersonal; 169 170 Element *bgArrow; 171 Element *bgButton; 172 173 RadioButton *rbTypeClosedWindows, *rbTypeClosedDoors, *rbTypeClosedLights, *rbTypeClosedElements, *rbTypeClosedDecorative; 174 RadioButton *rbTypeOpenedNature, *rbTypeOpenedBeach, *rbTypeOpenedBench, *rbTypeOpenedConstruction, *rbTypeOpenedElements; 175 176 ListImage *objectsGame; 177 ListImage *objectsPersonal; 178 179 RadioButton *rad2d, *rad3d; 180 181 Entry *taText; 182 Element *titleTypeTextsInWall; 183 SelectButton *typeTextsInWall; 184 SelectButton *colorTextsInWall; 185 186 RadioButton *radAlignLeftText, *radAlignCenterText, *radAlignRightText; 187 188 Button *bInsertText; 189 190 Button *bCancelObjects; 191 192 int pageAddObject; 193 194 void setTextDisplay(int i); 195 setPageAddObject(int p)196 void setPageAddObject(int p) { pageAddObject = p; } getPageAddObject()197 int getPageAddObject() { return pageAddObject; } 198 setPageEditInfo(int p)199 void setPageEditInfo(int p) { pageEditInfo = p; } getPageEditInfo()200 int getPageEditInfo() { return pageEditInfo; } 201 202 SceneEditGame(); 203 ~SceneEditGame(); 204 void load(); 205 206 void loadObjectsPersonal (); 207 208 void setStatusScene(int s); 209 210 void addInfoTown(InformationTown it); 211 212 void createInfoButtons(); 213 previousElmHelp()214 void previousElmHelp() { if (nElmHelp>=0) { setElmHelp(nElmHelp-1); } } nextElmHelp()215 void nextElmHelp() { if (nElmHelp<elmHelp->getFrames()-1) { setElmHelp(nElmHelp+1); } } 216 void setElmHelp(int i); 217 218 219 /********************* 220 * BUTTONS 221 **********************/ 222 void verifyClickElements_Main(); 223 void verifyOverElements_Main(); 224 void verifyClickElements_AddObject(); 225 void verifyOverElements_AddObject(); 226 void verifyClickElements_EditFood(); 227 void verifyOverElements_EditFood(); 228 void verifyClickElements_EditInfo(); 229 void verifyOverElements_EditInfo(); 230 void verifyClickElements_AddInfoTown(); 231 void verifyOverElements_AddInfoTown(); 232 void verifyClickElements_Clean(); 233 void verifyOverElements_Clean(); 234 void verifyClickElements_Help(); 235 void verifyOverElements_Help(); 236 /********************* 237 * ESCENES 238 **********************/ 239 bool drawScene (); 240 241 void drawSceneMain (); 242 void drawSceneMainByIndexZ(int z); 243 244 void drawSceneAddObject (); 245 void drawSceneAddObjectByIndexZ(int z); 246 247 void drawSceneEditFood (); 248 void drawSceneEditFoodByIndexZ(int z); 249 250 void drawSceneEditInfo (); 251 void drawSceneEditInfoByIndexZ(int z); 252 253 void drawSceneAddInfoTown (); 254 void drawSceneAddInfoTownByIndexZ(int z); 255 256 void drawSceneClean (); 257 void drawSceneCleanByIndexZ(int z); 258 259 void drawSceneHelp (); 260 void drawSceneHelpByIndexZ(int z); 261 262 /********************* 263 * CONTROL 264 **********************/ 265 void unLoad(); 266 }; 267 268 269 270 #endif /* SCENEEDITGAME_H_ */ 271