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 #include "scene_editgame.h"
31
32 class SceneEditGame;
33
typeBoard_SceneEditGame_OnClick(Scene * s,SelectButton * b)34 void typeBoard_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
35 SceneEditGame* se = (SceneEditGame*)s;
36 EditBoard::GetInstance()->setTypeSize(se->typeBoard->getIndex());
37 }
38
typeFloor_SceneEditGame_OnClick(Scene * s,SelectButton * b)39 void typeFloor_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
40 SceneEditGame* se = (SceneEditGame*)s;
41 EditBoard::GetInstance()->setTypeFloor(se->typeFloor->getIndex());
42 }
43
typePavement_SceneEditGame_OnClick(Scene * s,SelectButton * b)44 void typePavement_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
45 SceneEditGame* se = (SceneEditGame*)s;
46 EditBoard::GetInstance()->setTypePavement(se->typePavement->getIndex());
47 }
48
typeTiled_SceneEditGame_OnClick(Scene * s,SelectButton * b)49 void typeTiled_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
50 SceneEditGame* se = (SceneEditGame*)s;
51 EditBoard::GetInstance()->getScenary()->setTypeTiled(se->typeTiled->getIndex());
52 }
53
typeWall_SceneEditGame_OnClick(Scene * s,SelectButton * b)54 void typeWall_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
55 SceneEditGame* se = (SceneEditGame*)s;
56 EditBoard::GetInstance()->setTypeWall(se->typeWall->getIndex());
57 }
58
nTilesClosed_SceneEditGame_OnClick(Scene * s,SelectButton * b)59 void nTilesClosed_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
60 SceneEditGame* se = (SceneEditGame*)s;
61 EditBoard::GetInstance()->getScenary()->setNVerticalTiles(se->nTilesClosed->getIndex());
62 }
63
typeTerrain_SceneEditGame_OnClick(Scene * s,SelectButton * b)64 void typeTerrain_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
65 SceneEditGame* se = (SceneEditGame*)s;
66 EditBoard::GetInstance()->getScenary()->setTypeTerrain(se->typeTerrain->getIndex());
67 }
68
typeWallScenary_SceneEditGame_OnClick(Scene * s,SelectButton * b)69 void typeWallScenary_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
70 SceneEditGame* se = (SceneEditGame*)s;
71 EditBoard::GetInstance()->getScenary()->setTypeWall(se->typeWallScenary->getIndex());
72 }
73
colorWall_SceneEditGame_OnClick(Scene * s,SelectButton * b)74 void colorWall_SceneEditGame_OnClick (Scene *s, SelectButton *b) {
75 SceneEditGame* se = (SceneEditGame*)s;
76 int ind = se->colorWall->getIndex();
77 int red = se->vcolorsWall->getColor(ind)->r;
78 int green = se->vcolorsWall->getColor(ind)->g;
79 int blue = se->vcolorsWall->getColor(ind)->b;
80 EditBoard::GetInstance()->getScenary()->setColorInWalls(red, green, blue);
81 }
82
bRules_SceneEditGame_OnClick(Scene * s,Button * b)83 void bRules_SceneEditGame_OnClick (Scene *s, Button *b) {
84 EditBoard::GetInstance()->getScenary()->swapShowGuides();
85 }
86
bAddObject_SceneEditGame_OnClick(Scene * s,Button * b)87 void bAddObject_SceneEditGame_OnClick (Scene *s, Button *b) {
88 SceneEditGame* se = (SceneEditGame*)s;
89 se->setSaveImage(true);
90 se->setStatusScene(SCENE_EDITGAME_ADDOBJECT);
91 }
92
insertObjectsGame_SceneEditGame_OnClick(Scene * s,Button * b)93 void insertObjectsGame_SceneEditGame_OnClick (Scene *s, Button *b) {
94 SceneEditGame* se = (SceneEditGame*)s;
95 EditBoard::GetInstance()->getScenary()->addObject(TYPEOBJECT_3D, ORIGENOBJECT_GAME, b->getParameter("name"));
96 se->setStatusScene(SCENE_EDITGAME_MAIN);
97 }
98
insertObjectsPersonal_SceneEditGame_OnClick(Scene * s,Button * b)99 void insertObjectsPersonal_SceneEditGame_OnClick (Scene *s, Button *b) {
100 SceneEditGame* se = (SceneEditGame*)s;
101 int tObj = TYPEOBJECT_3D;
102 if (EditBoard::GetInstance()->getSceneEditGame()->rad2d->getActive()) {
103 tObj = TYPEOBJECT_2D;
104 }
105
106 EditBoard::GetInstance()->getScenary()->addObject(tObj, ORIGENOBJECT_PERSONAL, b->getParameter("name"));
107 se->setStatusScene(SCENE_EDITGAME_MAIN);
108 }
109
bInsertText_SceneGame_OnClick(Scene * s,Button * b)110 void bInsertText_SceneGame_OnClick (Scene *s, Button *b) {
111 SceneEditGame* se = (SceneEditGame*)s;
112 string font = "";
113 int align = ALIGN_LEFT;
114 char tmp[32];
115 sprintf(tmp, "font-wall%d", EditBoard::GetInstance()->getSceneEditGame()->typeTextsInWall->getIndex());
116 font = tmp;
117 if (EditBoard::GetInstance()->getSceneEditGame()->radAlignLeftText->getActive()) {
118 align = ALIGN_LEFT;
119 } else if (EditBoard::GetInstance()->getSceneEditGame()->radAlignCenterText->getActive()) {
120 align = ALIGN_CENTER;
121 } else if (EditBoard::GetInstance()->getSceneEditGame()->radAlignRightText->getActive()) {
122 align = ALIGN_RIGHT;
123 }
124 Color c;
125 int ind = se->colorTextsInWall->getIndex();
126 c.r = se->vcolorsTextInWall->getColor(ind)->r;
127 c.g = se->vcolorsTextInWall->getColor(ind)->g;
128 c.b = se->vcolorsTextInWall->getColor(ind)->b;
129 EditBoard::GetInstance()->getScenary()->addTextObject(EditBoard::GetInstance()->getSceneEditGame()->taText->getText(), font, align, c, 10, 10, 1.0, false, false);
130 se->setStatusScene(SCENE_EDITGAME_MAIN);
131 }
132
bObjectsGame_SceneEditGame_OnClick(Scene * s,Button * b)133 void bObjectsGame_SceneEditGame_OnClick (Scene *s, Button *b) {
134 SceneEditGame* se = (SceneEditGame*)s;
135 se->bObjectsGame->setIndexZ(2);
136 se->bObjectsGame->setRGB(255,255,255);
137 se->bObjectsPersonal->setIndexZ(0);
138 se->bObjectsPersonal->setRGB(160,160,160);
139 se->bObjectsTexts->setIndexZ(0);
140 se->bObjectsTexts->setRGB(160,160,160);
141 se->setPageAddObject(SCENE_EDITGAME_ADDOBJECT_GAME);
142 }
143
bObjectsPersonal_SceneEditGame_OnClick(Scene * s,Button * b)144 void bObjectsPersonal_SceneEditGame_OnClick (Scene *s, Button *b) {
145 SceneEditGame* se = (SceneEditGame*)s;
146 se->bObjectsPersonal->setIndexZ(2);
147 se->bObjectsPersonal->setRGB(255,255,255);
148 se->bObjectsGame->setIndexZ(0);
149 se->bObjectsGame->setRGB(160,160,160);
150 se->bObjectsTexts->setIndexZ(0);
151 se->bObjectsTexts->setRGB(160,160,160);
152 se->setPageAddObject(SCENE_EDITGAME_ADDOBJECT_PERSONAL);
153 }
154
bObjectsTexts_SceneEditGame_OnClick(Scene * s,Button * b)155 void bObjectsTexts_SceneEditGame_OnClick (Scene *s, Button *b) {
156 SceneEditGame* se = (SceneEditGame*)s;
157 se->bObjectsTexts->setIndexZ(2);
158 se->bObjectsTexts->setRGB(255,255,255);
159 se->bObjectsPersonal->setIndexZ(0);
160 se->bObjectsPersonal->setRGB(160,160,160);
161 se->bObjectsGame->setIndexZ(0);
162 se->bObjectsGame->setRGB(160,160,160);
163 se->setPageAddObject(SCENE_EDITGAME_ADDOBJECT_TEXT);
164 }
165
bInfoMain_SceneEditGame_OnClick(Scene * s,Button * b)166 void bInfoMain_SceneEditGame_OnClick (Scene *s, Button *b) {
167 SceneEditGame* se = (SceneEditGame*)s;
168 se->bInfoMain->setIndexZ(2);
169 se->bInfoMain->setRGB(255,255,255);
170 se->bInfoData->setIndexZ(0);
171 se->bInfoData->setRGB(160,160,160);
172 se->bInfoMusic->setIndexZ(0);
173 se->bInfoMusic->setRGB(160,160,160);
174 se->setPageEditInfo(SCENE_EDITGAME_EDITINFO_MAIN);
175 }
176
bInfoData_SceneEditGame_OnClick(Scene * s,Button * b)177 void bInfoData_SceneEditGame_OnClick (Scene *s, Button *b) {
178 SceneEditGame* se = (SceneEditGame*)s;
179 se->bInfoMain->setIndexZ(0);
180 se->bInfoMain->setRGB(160,160,160);
181 se->bInfoData->setIndexZ(2);
182 se->bInfoData->setRGB(255,255,255);
183 se->bInfoMusic->setIndexZ(0);
184 se->bInfoMusic->setRGB(160,160,160);
185 se->setPageEditInfo(SCENE_EDITGAME_EDITINFO_DATA);
186 }
187
bInfoMusic_SceneEditGame_OnClick(Scene * s,Button * b)188 void bInfoMusic_SceneEditGame_OnClick (Scene *s, Button *b) {
189 SceneEditGame* se = (SceneEditGame*)s;
190 se->bInfoMain->setIndexZ(0);
191 se->bInfoMain->setRGB(160,160,160);
192 se->bInfoData->setIndexZ(0);
193 se->bInfoData->setRGB(160,160,160);
194 se->bInfoMusic->setIndexZ(2);
195 se->bInfoMusic->setRGB(255,255,255);
196 se->setPageEditInfo(SCENE_EDITGAME_EDITINFO_MUSIC);
197 }
198
bSave_SceneEditGame_OnClick(Scene * s,Button * b)199 void bSave_SceneEditGame_OnClick (Scene *s, Button *b) {
200 SceneEditGame* se = (SceneEditGame*)s;
201
202 if (EditBoard::GetInstance()->save()) {
203 se->showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("savefilesuccessful"), SCENE_EDITGAME_MAIN);
204 }
205 }
206
bClean_SceneEditGame_OnClick(Scene * s,Button * b)207 void bClean_SceneEditGame_OnClick (Scene *s, Button *b) {
208 SceneEditGame* se = (SceneEditGame*)s;
209 se->setSaveImage(true);
210 se->setStatusScene(SCENE_EDITGAME_CLEAN);
211 }
212
bCleanBoard_SceneEditGame_OnClick(Scene * s,Button * b)213 void bCleanBoard_SceneEditGame_OnClick (Scene *s, Button *b) {
214 SceneEditGame* se = (SceneEditGame*)s;
215 EditBoard::GetInstance()->cleanWalls();
216 se->setStatusScene(SCENE_EDITGAME_MAIN);
217 }
218
bCleanScenary_SceneEditGame_OnClick(Scene * s,Button * b)219 void bCleanScenary_SceneEditGame_OnClick (Scene *s, Button *b) {
220 SceneEditGame* se = (SceneEditGame*)s;
221 EditBoard::GetInstance()->cleanScenary();
222 se->setStatusScene(SCENE_EDITGAME_MAIN);
223 }
224
bCleanReset_SceneEditGame_OnClick(Scene * s,Button * b)225 void bCleanReset_SceneEditGame_OnClick (Scene *s, Button *b) {
226 SceneEditGame* se = (SceneEditGame*)s;
227 EditBoard::GetInstance()->loadLevel();
228 se->setStatusScene(SCENE_EDITGAME_MAIN);
229 }
230
bHelp_SceneEditGame_OnClick(Scene * s,Button * b)231 void bHelp_SceneEditGame_OnClick (Scene *s, Button *b) {
232 SceneEditGame* se = (SceneEditGame*)s;
233 se->setSaveImage(true);
234 se->setStatusScene(SCENE_EDITGAME_HELP);
235 }
236
alert_bQuit_SceneEditGame_OnClick(Scene * s,Button * b,string data)237 void alert_bQuit_SceneEditGame_OnClick (Scene *s, Button *b, string data) {
238 SceneEditGame* se = (SceneEditGame*)s;
239 if (b->getParameter("type")=="accept") {
240 Sounds::GetInstance()->getSound("music_editor")->stop(2000);
241 se->goToScene("createmission", 2000, SCENE_TRANSITION_FADEOUT);
242 } else {
243 se->setStatusSceneWithReturnSceneFromMessage();
244 }
245 }
246
bQuit_SceneEditGame_OnClick(Scene * s,Button * b)247 void bQuit_SceneEditGame_OnClick (Scene *s, Button *b) {
248 SceneEditGame* se = (SceneEditGame*)s;
249 se->showAlert(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("areyousurequit"), alert_bQuit_SceneEditGame_OnClick, SCENE_EDITGAME_MAIN);
250 }
251
btHandTray_SceneEditGame_OnClick(Scene * s,Button * b)252 void btHandTray_SceneEditGame_OnClick (Scene *s, Button *b) {
253 SceneEditGame* se = (SceneEditGame*)s;
254 se->titleFood->setText(EditBoard::GetInstance()->infoTray[0].title);
255 se->textFood->setText(EditBoard::GetInstance()->infoTray[0].text);
256 if (WorkingData::GetInstance()->existFile(Missions::GetInstance()->currentLevel->getPath()+"/food.png")) {
257 SDL_Surface *sfc = WorkingSurfaces::GetInstance()->surfaceFromImage(Missions::GetInstance()->currentLevel->getPath()+"/food.png");
258 if ( (sfc->h>200) || (sfc->w>200) ) {
259 se->infoImageFood->setRGB(255, 0, 0);
260 se->infoImageFood->changeFrameLanguage(0, "font-texts", "nosizefood-png", ALIGN_CENTER);
261 } else {
262 se->infoImageFood->setRGB(255, 255, 255);
263 se->infoImageFood->changeFrameFile(0, Missions::GetInstance()->currentLevel->getPath()+"/food.png");
264 }
265 SDL_FreeSurface(sfc);
266 } else {
267 se->infoImageFood->setRGB(255, 0, 0);
268 string text = Language::GetInstance()->getText("nofood-png") + "|" + Missions::GetInstance()->currentLevel->getPath();
269 se->infoImageFood->changeFrameText(0, "font-texts", text, ALIGN_CENTER);
270 }
271 se->setSaveImage(true);
272 se->setStatusScene(SCENE_EDITGAME_EDITFOOD);
273 }
274
bAccept_SceneEditGame_OnClick(Scene * s,Button * b)275 void bAccept_SceneEditGame_OnClick (Scene *s, Button *b) {
276 SceneEditGame* se = (SceneEditGame*)s;
277 if (se->getStatusScene()==SCENE_EDITGAME_EDITFOOD) {
278 EditBoard::GetInstance()->infoTray[0].title = se->titleFood->getText();
279 EditBoard::GetInstance()->infoTray[0].text = se->textFood->getText();
280 se->setStatusScene(SCENE_EDITGAME_MAIN);
281 } else if (se->getStatusScene()==SCENE_EDITGAME_EDITINFO) {
282 Missions::GetInstance()->currentMission->setName(se->missionName->getText());
283 Missions::GetInstance()->currentMission->setNameAuthor(se->nameAuthor->getText());
284 Missions::GetInstance()->currentMission->save();
285 EditBoard::GetInstance()->town.name = se->levelName->getText();
286 EditBoard::GetInstance()->town.province = se->provinceName->getText();
287 if (se->radMusic0->getActive()) {
288 EditBoard::GetInstance()->setTypeMusic(0);
289 } else if (se->radMusic1->getActive()) {
290 EditBoard::GetInstance()->setTypeMusic(1);
291 } else if (se->radMusic2->getActive()) {
292 EditBoard::GetInstance()->setTypeMusic(2);
293 } else if (se->radMusic3->getActive()) {
294 EditBoard::GetInstance()->setTypeMusic(3);
295 }
296
297 se->setStatusScene(SCENE_EDITGAME_MAIN);
298 } else if (se->getStatusScene()==SCENE_EDITGAME_ADDINFOTOWN) {
299 if (se->indexEditInfoTown<0) {
300 InformationTown it;
301 it.title = se->eTitleInfoTown->getText();
302 it.text = se->taInfoTown->getText();
303 char tmp[4];
304 sprintf(tmp, "%d", se->typeButtonInfoTown->getIndex());
305 it.button = tmp;
306 EditBoard::GetInstance()->getSceneEditGame()->addInfoTown(it);
307 } else {
308 EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].title = se->eTitleInfoTown->getText();
309 EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].text = se->taInfoTown->getText();
310 char tmp[4];
311 sprintf(tmp, "%d", se->typeButtonInfoTown->getIndex());
312 EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].button = tmp;
313 ((InfoButton*)se->dataInfo->getData(se->indexEditInfoTown))->setTitle(se->eTitleInfoTown->getText());
314 }
315 se->setStatusScene(SCENE_EDITGAME_EDITINFO);
316 }
317 }
318
bCancel_SceneEditGame_OnClick(Scene * s,Button * b)319 void bCancel_SceneEditGame_OnClick (Scene *s, Button *b) {
320 SceneEditGame* se = (SceneEditGame*)s;
321 if (se->getStatusScene()==SCENE_EDITGAME_ADDINFOTOWN) {
322 se->setStatusScene(SCENE_EDITGAME_EDITINFO);
323 } else {
324 se->setStatusScene(SCENE_EDITGAME_MAIN);
325 }
326 }
327
bEditInfo_SceneEditGame_OnClick(Scene * s,Button * b)328 void bEditInfo_SceneEditGame_OnClick (Scene *s, Button *b) {
329 SceneEditGame* se = (SceneEditGame*)s;
330 se->setSaveImage(true);
331 se->missionName->setActive(true);
332 se->missionName->setText(Missions::GetInstance()->currentMission->getName());
333 se->nameAuthor->setText(Missions::GetInstance()->currentMission->getNameAuthor());
334 se->levelName->setText(EditBoard::GetInstance()->town.name);
335 se->provinceName->setText(EditBoard::GetInstance()->town.province);
336 se->setStatusScene(SCENE_EDITGAME_EDITINFO);
337 }
338
bAddInfo_SceneEditGame_OnClick(Scene * s,Button * b)339 void bAddInfo_SceneEditGame_OnClick (Scene *s, Button *b) {
340 SceneEditGame* se = (SceneEditGame*)s;
341 se->setSaveImage(true, 1);
342 if ((int)EditBoard::GetInstance()->infoTown.size()>=4) {
343 se->showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("nomoredata"), SCENE_EDITGAME_EDITINFO);
344 } else {
345 se->indexEditInfoTown = -1;
346 se->typeButtonInfoTown->setFrame(0);
347 se->eTitleInfoTown->setText("");
348 se->taInfoTown->setText("");
349 se->eTitleInfoTown->setActive(true);
350 se->setStatusScene(SCENE_EDITGAME_ADDINFOTOWN);
351 }
352 }
353
bEditInfoButton_SceneEditGame_OnClick(Scene * s,Button * b)354 void bEditInfoButton_SceneEditGame_OnClick (Scene *s, Button *b) {
355 SceneEditGame* se = (SceneEditGame*)s;
356 se->setSaveImage(true, 1);
357 se->indexEditInfoTown = atoi(b->getParameter("index").c_str());
358 se->typeButtonInfoTown->setFrame(atoi(EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].button.c_str()));
359 se->eTitleInfoTown->setText(EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].title);
360 se->taInfoTown->setText(EditBoard::GetInstance()->infoTown[se->indexEditInfoTown].text);
361 se->eTitleInfoTown->setActive(true);
362 se->setStatusScene(SCENE_EDITGAME_ADDINFOTOWN);
363 }
364
alert_bDeleteInfoButton_SceneEditGame_OnClick(Scene * s,Button * b,string data)365 void alert_bDeleteInfoButton_SceneEditGame_OnClick (Scene *s, Button *b, string data) {
366 SceneEditGame* se = (SceneEditGame*)s;
367 if (b->getParameter("type")=="accept") {
368 int i = atoi(b->getParameter("index").c_str());
369 EditBoard::GetInstance()->infoTown.erase(EditBoard::GetInstance()->infoTown.begin()+i);
370 se->createInfoButtons();
371 }
372 se->setStatusSceneWithReturnSceneFromMessage();
373 }
374
bDeleteInfoButton_SceneEditGame_OnClick(Scene * s,Button * b)375 void bDeleteInfoButton_SceneEditGame_OnClick (Scene *s, Button *b) {
376 SceneEditGame* se = (SceneEditGame*)s;
377 se->msg_bAccept->addParameter("index", b->getParameter("index"));
378 se->showAlert(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("areyousuredelete"), alert_bDeleteInfoButton_SceneEditGame_OnClick, SCENE_EDITGAME_EDITINFO);
379 }
380
bViewHelp_SceneEditGame_OnClick(Scene * s,Button * b)381 void bViewHelp_SceneEditGame_OnClick (Scene *s, Button *b) {
382 SceneEditGame* se = (SceneEditGame*)s;
383 se->setElmHelp(atoi(b->getParameter("index_help").c_str()));
384 }
385
bIndex_SceneEditGame_OnClick(Scene * s,Button * b)386 void bIndex_SceneEditGame_OnClick (Scene *s, Button *b) {
387 SceneEditGame* se = (SceneEditGame*)s;
388 se->setElmHelp(-1);
389 }
390
bPrevious_SceneEditGame_OnClick(Scene * s,Button * b)391 void bPrevious_SceneEditGame_OnClick (Scene *s, Button *b) {
392 SceneEditGame* se = (SceneEditGame*)s;
393 se->previousElmHelp();
394 }
395
bNext_SceneEditGame_OnClick(Scene * s,Button * b)396 void bNext_SceneEditGame_OnClick (Scene *s, Button *b) {
397 SceneEditGame* se = (SceneEditGame*)s;
398 se->nextElmHelp();
399 }
400
401 /*****************************
402 **
403 ** CLASE InfoButton
404 **
405 ******************************/
406
InfoButton()407 InfoButton::InfoButton() : Group () {
408
409 indexz = 0;
410
411 bg = new Element();
412 bg->setX(0);
413 bg->setY(0);
414 bg->addFrameFileFromData("/interface/boxuser_text.png");
415 this->addElement(bg);
416
417 title = new Element();
418 title->setX(15);
419 title->setY(22);
420 title->setVAlign(VALIGN_CENTER);
421 title->addFrameSurface(Primitives::GetInstance()->rectangle(1, 1, 0, 0, 0));
422 this->addElement(title);
423
424 bEdit = new Button();
425 bEdit->setScales(0.9, 0.95);
426 bEdit->setAlign(ALIGN_CENTER);
427 bEdit->setVAlign(VALIGN_CENTER);
428 bEdit->setX(350);
429 bEdit->setY(22);
430 bEdit->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/" + Language::GetInstance()->getFilename("edit", "png")));
431 bEdit->setAnimation("out");
432 bEdit->OnClick = bEditInfoButton_SceneEditGame_OnClick;
433 this->addElement(bEdit);
434
435 bDelete = new Button();
436 bDelete->setScales(1.0, 1.1);
437 bDelete->setAlign(ALIGN_CENTER);
438 bDelete->setVAlign(VALIGN_CENTER);
439 bDelete->setX(420);
440 bDelete->setY(22);
441 bDelete->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/delete.png"));
442 bDelete->setAnimation("out");
443 bDelete->OnClick = bDeleteInfoButton_SceneEditGame_OnClick;
444 this->addElement(bDelete);
445
446 }
447
~InfoButton()448 InfoButton::~InfoButton() {
449 unLoad();
450 }
451
setIndex(int i)452 void InfoButton::setIndex (int i) {
453 index = i;
454 char tmp[4];
455 sprintf(tmp, "%d", i);
456 bEdit->addParameter("index", tmp);
457 bDelete->addParameter("index", tmp);
458 }
459
setTitle(string t)460 void InfoButton::setTitle(string t) {
461
462 title->changeFrameText(0, "font-texts", t, ALIGN_CENTER);
463
464 }
465
draw()466 void InfoButton::draw() {
467 work();
468 bg->draw();
469 title->draw();
470 bEdit->draw();
471 bDelete->draw();
472 }
473
onOver()474 void InfoButton::onOver() {
475 bEdit->onOver();
476 bDelete->onOver();
477 }
478
verifyClick(SceneEditGame * sc)479 void InfoButton::verifyClick(SceneEditGame *sc) {
480 if (bEdit->isOnMouseOver()) {
481 bEdit->OnClick(sc, bEdit);
482 }
483 if (bDelete->isOnMouseOver()) {
484 bDelete->OnClick(sc, bDelete);
485 }
486 }
487
unLoad()488 void InfoButton::unLoad() {
489 bg->unLoad();
490 title->unLoad();
491 bEdit->unLoad();
492 bDelete->unLoad();
493 }
494
495
496
497 /*****************************
498 **
499 ** CLASE SceneEditGame
500 **
501 ******************************/
502
SceneEditGame()503 SceneEditGame::SceneEditGame() : Scene () {
504 statusScene = SCENE_EDITGAME_MAIN;
505 pageAddObject = SCENE_EDITGAME_ADDOBJECT_GAME;
506 pageEditInfo = SCENE_EDITGAME_EDITINFO_MAIN;
507 indexEditInfoTown = -1;
508 nElmHelp = -1;
509 }
510
~SceneEditGame()511 SceneEditGame::~SceneEditGame() {
512 unLoad();
513 }
514
addInfoTown(InformationTown it)515 void SceneEditGame::addInfoTown(InformationTown it) {
516 EditBoard::GetInstance()->infoTown.push_back(it);
517 if (!EditBoard::GetInstance()->multiLanguage) {
518 int index = (int)EditBoard::GetInstance()->infoTown.size()-1;
519 InfoButton *bInfoButton = new InfoButton();
520 bInfoButton->setIndex(index);
521
522 bInfoButton->setTitle(EditBoard::GetInstance()->infoTown[index].title);
523
524 getGroupScene()->addGroup((Group*)bInfoButton);
525
526 dataInfo->add(bInfoButton);
527 }
528 }
529
createInfoButtons()530 void SceneEditGame::createInfoButtons() {
531
532 if (!EditBoard::GetInstance()->multiLanguage) {
533 dataInfo->MoveFirst();
534 while (!dataInfo->isEOF()) {
535 delete (InfoButton*)dataInfo->getData();
536 dataInfo->MoveNext();
537 }
538 dataInfo->inicialize();
539
540
541 for (int i=0; i<(int)EditBoard::GetInstance()->infoTown.size(); i++) {
542 int index = (int)EditBoard::GetInstance()->infoTown.size()-1;
543 InfoButton *bInfoButton = new InfoButton();
544 bInfoButton->setIndex(index);
545
546 bInfoButton->setTitle(EditBoard::GetInstance()->infoTown[index].title);
547
548 getGroupScene()->addGroup((Group*)bInfoButton);
549
550 dataInfo->add(bInfoButton);
551 }
552 }
553 }
554
setTextDisplay(int i)555 void SceneEditGame::setTextDisplay(int i) {
556 if (i<0) {
557 menuTown->show();
558 menuText->hide();
559 } else {
560 menuText->setCurrentFrame(i);
561 menuTown->hide();
562 menuText->show();
563 }
564 }
565
setElmHelp(int i)566 void SceneEditGame::setElmHelp(int i) {
567 nElmHelp = i;
568 if (nElmHelp>=0) {
569 elmHelp->setCurrentFrame(i);
570 }
571
572 if (nElmHelp<=-1) {
573 bPrevious->setRGB(190, 190, 190);
574 bPrevious->setSensitive(false);
575 } else {
576 bPrevious->setRGB(0, 255, 0);
577 bPrevious->setSensitive(true);
578 }
579
580 if (nElmHelp>=elmHelp->getFrames()-1) {
581 bNext->setRGB(190, 190, 190);
582 bNext->setSensitive(false);
583 } else {
584 bNext->setRGB(0, 255, 0);
585 bNext->setSensitive(true);
586 }
587
588 }
589
setStatusScene(int s)590 void SceneEditGame::setStatusScene(int s) {
591 statusScene = s;
592 switch(statusScene) {
593 case SCENE_EDITGAME_EDITFOOD:
594 case SCENE_EDITGAME_EDITINFO:
595 bAccept->setY(487);
596 bCancel->setX(505);
597 bCancel->setY(487);
598 break;
599 case SCENE_EDITGAME_CLEAN:
600 bAccept->setY(430);
601 bCancel->setX(505);
602 bCancel->setY(430);
603 break;
604 case SCENE_EDITGAME_HELP:
605 bCancel->setX(691);
606 bCancel->setY(487);
607 break;
608 }
609 }
610
load()611 void SceneEditGame::load() {
612
613 initialize();
614
615 statusScene = SCENE_EDITGAME_MAIN;
616 pageAddObject = SCENE_EDITGAME_ADDOBJECT_GAME;
617 pageEditInfo = SCENE_EDITGAME_EDITINFO_MAIN;
618
619 vcolorsWall = new VectorColors();
620 vcolorsWall->addColor(255, 255, 255);
621 vcolorsWall->addColor(244, 244, 212);
622 vcolorsWall->addColor(244, 239, 181);
623 vcolorsWall->addColor(255, 222, 254);
624 vcolorsWall->addColor(141, 195, 146);
625 vcolorsWall->addColor(191, 166, 193);
626 vcolorsWall->addColor(214, 227, 224);
627 vcolorsWall->addColor(227, 214, 221);
628 vcolorsWall->addColor(217, 203, 184);
629 vcolorsWall->addColor(203, 217, 184);
630 vcolorsWall->addColor(79, 142, 84);
631 vcolorsWall->addColor(50, 166, 151);
632 vcolorsWall->addColor(131, 131, 150);
633 vcolorsWall->addColor(123, 113, 5);
634
635 vcolorsTextInWall = new VectorColors();
636 vcolorsTextInWall->addColor(255, 255, 255);
637 vcolorsTextInWall->addColor(255, 0, 0);
638 vcolorsTextInWall->addColor(129, 246, 77);
639 vcolorsTextInWall->addColor(0, 0, 255);
640 vcolorsTextInWall->addColor(251, 31, 176);
641 vcolorsTextInWall->addColor(246, 232, 77);
642 vcolorsTextInWall->addColor(246, 176, 77);
643 vcolorsTextInWall->addColor(200, 77, 246);
644 vcolorsTextInWall->addColor(114, 74, 52);
645 vcolorsTextInWall->addColor(180, 180, 180);
646 vcolorsTextInWall->addColor(120, 120, 120);
647 vcolorsTextInWall->addColor(60, 60, 60);
648 vcolorsTextInWall->addColor(0, 0, 0);
649
650 char tmp[128], tmp_on[128], tmp_off[128];
651
652 ProgressBar *pb = new ProgressBar(4, 200, 16, 255, 255, 255);
653 pb->setBg((string)DATA_DIR + "/title.png");
654 pb->setBgBar((string)DATA_DIR + "/bg_barprogress.png");
655 pb->setPositionBar(World::width/2, 300);
656
657 pb->setText("font-texts", Language::GetInstance()->getText("loading_buttons"));
658 pb->draw();
659
660 // sounds
661
662 Sounds::GetInstance()->addSoundFromData("music_editor", "music", "sound/music_editor.ogg");
663
664 /*************
665 RADIOS
666 *************/
667
668 multiLanguageNoSupport = new Element();
669 multiLanguageNoSupport->setCurrentScale(1.2);
670 multiLanguageNoSupport->setAlign(ALIGN_CENTER);
671 multiLanguageNoSupport->setVAlign(VALIGN_CENTER);
672 multiLanguageNoSupport->setIndexZ(2);
673 multiLanguageNoSupport->setXY(400, 200);
674 multiLanguageNoSupport->addFrameText("font-texts", Language::GetInstance()->getText("multilanguagenosupport"), ALIGN_CENTER);
675 getGroupScene()->addElement(multiLanguageNoSupport);
676
677 sprintf(tmp_on, "%s/editgame/b_on.png", DATA_DIR);
678 sprintf(tmp_off, "%s/editgame/b_off.png", DATA_DIR);
679
680
681 bNimuh = new RadioButton(NULL);
682 bNimuh->setX(10);
683 bNimuh->setY(370);
684 bNimuh->addParameter("object", "nimuh");
685
686 sprintf(tmp, "%s/editgame/b_nimuh.png", DATA_DIR);
687 bNimuh->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
688 bNimuh->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
689
690 getGroupScene()->addGroup(bNimuh);
691
692 bEnemy1 = new RadioButton(bNimuh);
693 bEnemy1->setX(10);
694 bEnemy1->setY(415);
695 bEnemy1->addParameter("object", "enemy1");
696
697 sprintf(tmp, "%s/editgame/b_enemy1.png", DATA_DIR);
698 bEnemy1->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
699 bEnemy1->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
700
701 getGroupScene()->addGroup(bEnemy1);
702
703 bEnemy2 = new RadioButton(bNimuh);
704 bEnemy2->setX(10);
705 bEnemy2->setY(460);
706 bEnemy2->addParameter("object", "enemy2");
707
708 sprintf(tmp, "%s/editgame/b_enemy2.png", DATA_DIR);
709 bEnemy2->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
710 bEnemy2->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
711
712 getGroupScene()->addGroup(bEnemy2);
713
714 bEnemy3 = new RadioButton(bNimuh);
715 bEnemy3->setX(10);
716 bEnemy3->setY(505);
717 bEnemy3->addParameter("object", "enemy3");
718
719 sprintf(tmp, "%s/editgame/b_enemy3.png", DATA_DIR);
720 bEnemy3->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
721 bEnemy3->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
722
723 getGroupScene()->addGroup(bEnemy3);
724
725 bDoor = new RadioButton(bNimuh);
726 bDoor->setX(10);
727 bDoor->setY(550);
728 bDoor->addParameter("object", "door");
729
730 sprintf(tmp, "%s/editgame/b_door.png", DATA_DIR);
731 bDoor->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
732 bDoor->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
733
734 getGroupScene()->addGroup(bDoor);
735
736 bWallRight = new RadioButton(bNimuh);
737 bWallRight->setX(60);
738 bWallRight->setY(415);
739 bWallRight->addParameter("object", "wallright");
740
741 sprintf(tmp, "%s/editgame/b_wall_right.png", DATA_DIR);
742 bWallRight->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
743 bWallRight->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
744
745 getGroupScene()->addGroup(bWallRight);
746
747 bWallBottom = new RadioButton(bNimuh);
748 bWallBottom->setX(60);
749 bWallBottom->setY(460);
750 bWallBottom->addParameter("object", "wallbottom");
751
752 sprintf(tmp, "%s/editgame/b_wall_bottom.png", DATA_DIR);
753 bWallBottom->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
754 bWallBottom->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
755
756 getGroupScene()->addGroup(bWallBottom);
757
758 bBlackHole1 = new RadioButton(bNimuh);
759 bBlackHole1->setX(60);
760 bBlackHole1->setY(505);
761 bBlackHole1->addParameter("object", "blackhole1");
762
763 sprintf(tmp, "%s/editgame/b_blackhole1.png", DATA_DIR);
764 bBlackHole1->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
765 bBlackHole1->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
766
767 getGroupScene()->addGroup(bBlackHole1);
768
769 bBlackHole2 = new RadioButton(bNimuh);
770 bBlackHole2->setX(60);
771 bBlackHole2->setY(550);
772 bBlackHole2->addParameter("object", "blackhole2");
773
774 sprintf(tmp, "%s/editgame/b_blackhole2.png", DATA_DIR);
775 bBlackHole2->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
776 bBlackHole2->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
777
778 getGroupScene()->addGroup(bBlackHole2);
779
780 bTrap = new RadioButton(bNimuh);
781 bTrap->setX(110);
782 bTrap->setY(460);
783 bTrap->addParameter("object", "trap");
784
785 sprintf(tmp, "%s/editgame/b_trap.png", DATA_DIR);
786 bTrap->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
787 bTrap->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
788
789 getGroupScene()->addGroup(bTrap);
790
791 bKey = new RadioButton(bNimuh);
792 bKey->setX(110);
793 bKey->setY(505);
794 bKey->addParameter("object", "key");
795
796 sprintf(tmp, "%s/editgame/b_key.png", DATA_DIR);
797 bKey->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
798 bKey->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
799
800 getGroupScene()->addGroup(bKey);
801
802 bDoorKey = new RadioButton(bNimuh);
803 bDoorKey->setX(110);
804 bDoorKey->setY(550);
805 bDoorKey->addParameter("object", "doorkey");
806
807 sprintf(tmp, "%s/editgame/b_grate.png", DATA_DIR);
808 bDoorKey->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
809 bDoorKey->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
810
811 getGroupScene()->addGroup(bDoorKey);
812
813 bEat = new RadioButton(bNimuh);
814 bEat->setX(160);
815 bEat->setY(505);
816 bEat->addParameter("object", "tray");
817
818 sprintf(tmp, "%s/editgame/b_tray.png", DATA_DIR);
819 bEat->imageInactive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_off), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
820 bEat->imageActive(WorkingSurfaces::GetInstance()->mixSurfaces( WorkingSurfaces::GetInstance()->surfaceFromImage(tmp_on), WorkingSurfaces::GetInstance()->surfaceFromImage(tmp), NULL ));
821
822 getGroupScene()->addGroup(bEat);
823
824 bNimuh->setActive(true);
825
826 pb->setText("font-texts", Language::GetInstance()->getText("loading_box"));
827 pb->draw();
828
829 /*************
830 SELECTS
831 *************/
832
833 typeBoard = new SelectButton();
834 typeBoard->setX(564);
835 typeBoard->setY(465);
836 typeBoard->OnClick = typeBoard_SceneEditGame_OnClick;
837 typeBoard->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/t_6x6.png"));
838 typeBoard->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/t_7x7.png"));
839 typeBoard->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/t_8x8.png"));
840 typeBoard->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/t_9x9.png"));
841 typeBoard->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/t_10x10.png"));
842
843 typeFloor = new SelectButton();
844 typeFloor->setX(564);
845 typeFloor->setY(500);
846 typeFloor->OnClick = typeFloor_SceneEditGame_OnClick;
847
848 int i;
849
850 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_FLOOR"); i++) {
851 sprintf(tmp, "%s/editgame/t_floor_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
852 typeFloor->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
853 }
854
855 typeWall = new SelectButton();
856 typeWall->setX(564);
857 typeWall->setY(535);
858 typeWall->OnClick = typeWall_SceneEditGame_OnClick;
859 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_WALL"); i++) {
860 sprintf(tmp, "%s/editgame/t_wall_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
861 typeWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
862 }
863
864 typePavement = new SelectButton();
865 typePavement->setMinSeparateButtons(43);
866 typePavement->setX(564);
867 typePavement->setY(570);
868 typePavement->OnClick = typePavement_SceneEditGame_OnClick;
869 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_PAVEMENT"); i++) {
870 sprintf(tmp, "%s/editgame/t_pavement_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
871 typePavement->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
872 }
873
874 typeTiled = new SelectButton();
875 typeTiled->setX(705);
876 typeTiled->OnClick = typeTiled_SceneEditGame_OnClick;
877
878 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_TILED"); i++) {
879 sprintf(tmp, "%s/editgame/t_tiled_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
880 typeTiled->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
881 }
882
883 nTilesClosed = new SelectButton();
884 nTilesClosed->setMinSeparateButtons(23);
885 nTilesClosed->setX(705);
886 nTilesClosed->OnClick = nTilesClosed_SceneEditGame_OnClick;
887 for (i=0; i<=7; i++) {
888 sprintf(tmp, "%d", i);
889 nTilesClosed->addObject(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, tmp));
890 }
891
892 nTilesClosed->setFrame(0);
893
894 colorWall = new SelectButton();
895 colorWall->setX(705);
896 colorWall->OnClick = colorWall_SceneEditGame_OnClick;
897
898 for (i=0; i<vcolorsWall->count(); i++) {
899 colorWall->addObject(Primitives::GetInstance()->rectangle(23, 23, vcolorsWall->getColor(i)->r, vcolorsWall->getColor(i)->g, vcolorsWall->getColor(i)->b));
900 }
901
902 typeTerrain = new SelectButton();
903 typeTerrain->setX(705);
904 typeTerrain->setY(520);
905 typeTerrain->OnClick = typeTerrain_SceneEditGame_OnClick;
906 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_TERRAIN"); i++) {
907 sprintf(tmp, "%s/editgame/t_terrain_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
908 typeTerrain->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
909 }
910
911 typeWallScenary = new SelectButton();
912 typeWallScenary->setX(705);
913 typeWallScenary->setY(525);
914 typeWallScenary->OnClick = typeWallScenary_SceneEditGame_OnClick;
915 for (i=0; i<BoardInfo::GetInstance()->getValueToInt("NTYPES_WALLSCENARY"); i++) {
916 sprintf(tmp, "%s/editgame/t_wallscenary_%s.png", DATA_DIR, Converter::GetInstance()->fillZeros(i).c_str());
917 typeWallScenary->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
918 }
919
920 typeBoard->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
921 typeFloor->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
922 typePavement->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
923 colorWall->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
924 typeWall->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
925 nTilesClosed->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
926 typeTiled->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
927 typeTerrain->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
928 typeWallScenary->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/editgame/arrow_right.png"));
929
930 bAddObject = new Button();
931 bAddObject->setX(707);
932 bAddObject->setY(545);
933 bAddObject->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("addobject", "png")));
934 bAddObject->setAnimation("out");
935 bAddObject->OnClick = bAddObject_SceneEditGame_OnClick;
936 getGroupScene()->addElement(bAddObject);
937
938
939 pb->setText("font-texts", Language::GetInstance()->getText("loading_menu"));
940 pb->draw();
941
942 frameUp = new Element();
943 frameUp->setAlign(ALIGN_CENTER);
944 frameUp->setVAlign(VALIGN_TOP);
945 frameUp->setXY(World::width/2, 0);
946 frameUp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/windows/frame_up.png"));
947
948 frameDown = new Element();
949 frameDown->setAlign(ALIGN_CENTER);
950 frameDown->setVAlign(VALIGN_BOTTOM);
951 frameDown->setXY(World::width/2, 600);
952 frameDown->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/windows/frame_down.png"));
953
954
955 bgBox = new Element();
956 bgBox->setIndexZ(1);
957 bgBox->setAlign(ALIGN_CENTER);
958 bgBox->setVAlign(VALIGN_CENTER);
959 bgBox->setXY(World::width/2, 300);
960 bgBox->addFrameFileFromData("/windows/bigbox.png");
961
962 getGroupScene()->addElement(bgBox);
963
964 middleBox = new Element();
965 middleBox->setAlign(ALIGN_CENTER);
966 middleBox->setVAlign(VALIGN_CENTER);
967 middleBox->setXY(World::width/2, 300);
968 middleBox->addFrameFileFromData("/windows/middlebox.png");
969
970 getGroupScene()->addElement(middleBox);
971
972 bgHelp = new Element();
973 bgHelp->setAlign(ALIGN_CENTER);
974 bgHelp->setVAlign(VALIGN_CENTER);
975 bgHelp->setXY(World::width/2, 300);
976 bgHelp->addFrameFileFromData("/help/help_bg.png");
977
978 getGroupScene()->addElement(bgHelp);
979
980 titleIndex = new Element();
981 titleIndex->setIndexZ(2);
982 titleIndex->setCurrentScale(0.6);
983 titleIndex->setXY(60, 103);
984 titleIndex->setRGB(234, 238, 53);
985 titleIndex->addFrameLanguage("font-computer", "index", ALIGN_LEFT);
986
987 getGroupScene()->addElement(titleIndex);
988
989 bIndex = new Button();
990 bIndex->setIndexZ(1);
991 bIndex->setScales(0.4, 0.45);
992 bIndex->setAlign(ALIGN_CENTER);
993 bIndex->setVAlign(VALIGN_CENTER);
994 bIndex->setX(115);
995 bIndex->setY(487);
996 bIndex->setRGB(0, 255, 0);
997
998 bIndex->OnClick = bIndex_SceneEditGame_OnClick;
999
1000 sprintf(tmp, Language::GetInstance()->getText("index").c_str());
1001 bIndex->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1002 bIndex->setAnimation("out");
1003
1004 getGroupScene()->addElement(bIndex);
1005
1006 bPrevious = new Button();
1007 bPrevious->setIndexZ(1);
1008 bPrevious->setScales(0.4, 0.45);
1009 bPrevious->setAlign(ALIGN_CENTER);
1010 bPrevious->setVAlign(VALIGN_CENTER);
1011 bPrevious->setX(337);
1012 bPrevious->setY(487);
1013 bPrevious->setRGB(0, 255, 0);
1014
1015 bPrevious->OnClick = bPrevious_SceneEditGame_OnClick;
1016
1017 sprintf(tmp, Language::GetInstance()->getText("previous").c_str());
1018 bPrevious->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1019 bPrevious->setAnimation("out");
1020
1021 getGroupScene()->addElement(bPrevious);
1022
1023 bNext = new Button();
1024 bNext->setIndexZ(1);
1025 bNext->setScales(0.4, 0.45);
1026 bNext->setAlign(ALIGN_CENTER);
1027 bNext->setVAlign(VALIGN_CENTER);
1028 bNext->setX(503);
1029 bNext->setY(487);
1030 bNext->setRGB(0, 255, 0);
1031
1032 bNext->OnClick = bNext_SceneEditGame_OnClick;
1033
1034 sprintf(tmp, Language::GetInstance()->getText("next").c_str());
1035 bNext->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1036 bNext->setAnimation("out");
1037
1038 getGroupScene()->addElement(bNext);
1039
1040 bHelp1 = new Button();
1041 bHelp1->addParameter("index_help", "0");
1042 bHelp1->setIndexZ(2);
1043 bHelp1->setScales(1.0, 1.05);
1044 bHelp1->setX(100);
1045 bHelp1->setY(150);
1046
1047 bHelp1->OnClick = bViewHelp_SceneEditGame_OnClick;
1048
1049 bHelp1->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_1")));
1050 bHelp1->setAnimation("out");
1051
1052 getGroupScene()->addElement(bHelp1);
1053
1054 bHelp2 = new Button();
1055 bHelp2->addParameter("index_help", "1");
1056 bHelp2->setIndexZ(2);
1057 bHelp2->setScales(1.0, 1.05);
1058 bHelp2->setX(100);
1059 bHelp2->setY(185);
1060
1061 bHelp2->OnClick = bViewHelp_SceneEditGame_OnClick;
1062
1063 bHelp2->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_2")));
1064 bHelp2->setAnimation("out");
1065
1066 getGroupScene()->addElement(bHelp2);
1067
1068 bHelp3 = new Button();
1069 bHelp3->addParameter("index_help", "2");
1070 bHelp3->setIndexZ(2);
1071 bHelp3->setScales(1.0, 1.05);
1072 bHelp3->setX(100);
1073 bHelp3->setY(220);
1074
1075 bHelp3->OnClick = bViewHelp_SceneEditGame_OnClick;
1076
1077 bHelp3->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_3")));
1078 bHelp3->setAnimation("out");
1079
1080 getGroupScene()->addElement(bHelp3);
1081
1082 bHelp4 = new Button();
1083 bHelp4->addParameter("index_help", "3");
1084 bHelp4->setIndexZ(2);
1085 bHelp4->setScales(1.0, 1.05);
1086 bHelp4->setX(100);
1087 bHelp4->setY(255);
1088
1089 bHelp4->OnClick = bViewHelp_SceneEditGame_OnClick;
1090
1091 bHelp4->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_4")));
1092 bHelp4->setAnimation("out");
1093
1094 getGroupScene()->addElement(bHelp4);
1095
1096 bHelp5 = new Button();
1097 bHelp5->addParameter("index_help", "4");
1098 bHelp5->setIndexZ(2);
1099 bHelp5->setScales(1.0, 1.05);
1100 bHelp5->setX(100);
1101 bHelp5->setY(290);
1102
1103 bHelp5->OnClick = bViewHelp_SceneEditGame_OnClick;
1104
1105 bHelp5->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_5")));
1106 bHelp5->setAnimation("out");
1107
1108 getGroupScene()->addElement(bHelp5);
1109
1110 bHelp6 = new Button();
1111 bHelp6->addParameter("index_help", "5");
1112 bHelp6->setIndexZ(2);
1113 bHelp6->setScales(1.0, 1.05);
1114 bHelp6->setX(100);
1115 bHelp6->setY(325);
1116
1117 bHelp6->OnClick = bViewHelp_SceneEditGame_OnClick;
1118
1119 bHelp6->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_6")));
1120 bHelp6->setAnimation("out");
1121
1122 getGroupScene()->addElement(bHelp6);
1123
1124 bHelp7 = new Button();
1125 bHelp7->addParameter("index_help", "6");
1126 bHelp7->setIndexZ(2);
1127 bHelp7->setScales(1.0, 1.05);
1128 bHelp7->setX(100);
1129 bHelp7->setY(360);
1130
1131 bHelp7->OnClick = bViewHelp_SceneEditGame_OnClick;
1132
1133 bHelp7->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_7")));
1134 bHelp7->setAnimation("out");
1135
1136 getGroupScene()->addElement(bHelp7);
1137
1138 bHelp8 = new Button();
1139 bHelp8->addParameter("index_help", "8");
1140 bHelp8->setIndexZ(2);
1141 bHelp8->setScales(1.0, 1.05);
1142 bHelp8->setX(100);
1143 bHelp8->setY(395);
1144
1145 bHelp8->OnClick = bViewHelp_SceneEditGame_OnClick;
1146
1147 bHelp8->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-texts", ALIGN_CENTER, Language::GetInstance()->getText("help_editlevel_8")));
1148 bHelp8->setAnimation("out");
1149
1150 getGroupScene()->addElement(bHelp8);
1151
1152
1153 elmHelp = new Element();
1154 elmHelp->setAlign(ALIGN_CENTER);
1155 elmHelp->setVAlign(VALIGN_CENTER);
1156 elmHelp->setXY(World::width/2, 300);
1157
1158 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_1", "png")));
1159 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_2", "png")));
1160 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_3", "png")));
1161 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_4", "png")));
1162 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_5", "png")));
1163 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_6_1", "png")));
1164 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_6_2", "png")));
1165 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_7", "png")));
1166 elmHelp->addFrameSurface(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/help/" + Language::GetInstance()->getFilename("editlevel_help_8", "png")));
1167
1168 getGroupScene()->addElement(elmHelp);
1169
1170 setElmHelp(-1);
1171
1172 titleFood = new Entry(NULL, 450, 25, 10, 10);
1173 titleFood->setIndexZ(2);
1174 titleFood->setNoSigns(true);
1175 titleFood->setMaxLetters(35);
1176 titleFood->setFontLabel("font-texts");
1177 titleFood->setFont("font-computer");
1178 titleFood->setLabel(Language::GetInstance()->getText("titlefood"));
1179 titleFood->setHorizontal(false);
1180 titleFood->setX(World::width/2);
1181 titleFood->setY(280);
1182 titleFood->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1183 titleFood->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1184 titleFood->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1185
1186 getGroupScene()->addElement((Element*)titleFood);
1187
1188 titleFood->setActive(true);
1189
1190 textFood = new Entry(titleFood, 450, 25, 10, 10);
1191 textFood->setMultiline(true);
1192 textFood->setTotalRows(3);
1193 textFood->setIndexZ(2);
1194 textFood->setFontLabel("font-texts");
1195 textFood->setFont("font-computer");
1196 textFood->setLabel(Language::GetInstance()->getText("textfood"));
1197 textFood->setHorizontal(false);
1198 textFood->setX(World::width/2);
1199 textFood->setY(350);
1200 textFood->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_small_textarea.png"));
1201 textFood->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_small_textarea_on.png"));
1202 textFood->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_small_textarea_active.png"));
1203
1204 getGroupScene()->addElement((Element*)textFood);
1205
1206 infoImageFood = new Element();
1207 infoImageFood->setIndexZ(2);
1208 infoImageFood->setAlign(ALIGN_CENTER);
1209 infoImageFood->setVAlign(VALIGN_CENTER);
1210 infoImageFood->setXY(World::width/2, 170);
1211 infoImageFood->addFrameSurface(Primitives::GetInstance()->rectangle(1,1,0,0,0));
1212
1213 getGroupScene()->addElement(infoImageFood);
1214
1215 bAccept = new Button();
1216 bAccept->setIndexZ(1);
1217 bAccept->setScales(0.4, 0.45);
1218 bAccept->setAlign(ALIGN_CENTER);
1219 bAccept->setVAlign(VALIGN_CENTER);
1220 bAccept->setX(285);
1221 bAccept->setY(487);
1222 bAccept->setRGB(0, 255, 0);
1223
1224 bAccept->OnClick = bAccept_SceneEditGame_OnClick;
1225
1226 sprintf(tmp, Language::GetInstance()->getText("accept").c_str());
1227 bAccept->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1228 bAccept->setAnimation("out");
1229
1230 getGroupScene()->addElement(bAccept);
1231
1232 bCancel = new Button();
1233 bCancel->setIndexZ(1);
1234 bCancel->setScales(0.4, 0.45);
1235 bCancel->setAlign(ALIGN_CENTER);
1236 bCancel->setVAlign(VALIGN_CENTER);
1237 bCancel->setX(505);
1238 bCancel->setY(487);
1239 bCancel->setRGB(255, 0, 0);
1240
1241 bCancel->OnClick = bCancel_SceneEditGame_OnClick;
1242
1243 sprintf(tmp, Language::GetInstance()->getText("cancel").c_str());
1244 bCancel->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1245 bCancel->setAnimation("out");
1246
1247 getGroupScene()->addElement(bCancel);
1248
1249 bCleanScenary = new Button();
1250 bCleanScenary->setScales(1.0, 1.1);
1251 bCleanScenary->setAlign(ALIGN_CENTER);
1252 bCleanScenary->setVAlign(VALIGN_CENTER);
1253 bCleanScenary->setX(400);
1254 bCleanScenary->setY(200);
1255
1256 bCleanScenary->OnClick = bCleanScenary_SceneEditGame_OnClick;
1257
1258 bCleanScenary->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_cleanscenary", "png")));
1259 bCleanScenary->setAnimation("out");
1260
1261 getGroupScene()->addElement(bCleanScenary);
1262
1263 bCleanBoard = new Button();
1264 bCleanBoard->setScales(1.0, 1.1);
1265 bCleanBoard->setAlign(ALIGN_CENTER);
1266 bCleanBoard->setVAlign(VALIGN_CENTER);
1267 bCleanBoard->setX(400);
1268 bCleanBoard->setY(280);
1269
1270 bCleanBoard->OnClick = bCleanBoard_SceneEditGame_OnClick;
1271
1272 bCleanBoard->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_cleanboard", "png")));
1273 bCleanBoard->setAnimation("out");
1274
1275 getGroupScene()->addElement(bCleanBoard);
1276
1277 bCleanReset = new Button();
1278 bCleanReset->setScales(1.0, 1.1);
1279 bCleanReset->setAlign(ALIGN_CENTER);
1280 bCleanReset->setVAlign(VALIGN_CENTER);
1281 bCleanReset->setX(400);
1282 bCleanReset->setY(360);
1283
1284 bCleanReset->OnClick = bCleanReset_SceneEditGame_OnClick;
1285
1286 bCleanReset->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_cleanreset", "png")));
1287 bCleanReset->setAnimation("out");
1288
1289 getGroupScene()->addElement(bCleanReset);
1290
1291 /*************
1292 INFO
1293 *************/
1294
1295 bInfoMain = new Button();
1296 bInfoMain->setIndexZ(2);
1297 bInfoMain->setScales(1.0, 1.03);
1298 bInfoMain->setAlign(ALIGN_CENTER);
1299 bInfoMain->setVAlign(VALIGN_CENTER);
1300 bInfoMain->setX(230);
1301 bInfoMain->setY(78);
1302 bInfoMain->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_info_main", "png") ));
1303 bInfoMain->setAnimation("out");
1304 bInfoMain->OnClick = bInfoMain_SceneEditGame_OnClick;
1305 getGroupScene()->addElement(bInfoMain);
1306
1307 bInfoData = new Button();
1308 bInfoData->setIndexZ(0);
1309 bInfoData->setRGB(160, 160, 160);
1310 bInfoData->setScales(1.0, 1.03);
1311 bInfoData->setAlign(ALIGN_CENTER);
1312 bInfoData->setVAlign(VALIGN_CENTER);
1313 bInfoData->setX(355);
1314 bInfoData->setY(78);
1315 bInfoData->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_info_data", "png") ));
1316 bInfoData->setAnimation("out");
1317 bInfoData->OnClick = bInfoData_SceneEditGame_OnClick;
1318 getGroupScene()->addElement(bInfoData);
1319
1320 bInfoMusic = new Button();
1321 bInfoMusic->setIndexZ(0);
1322 bInfoMusic->setRGB(160, 160, 160);
1323 bInfoMusic->setScales(1.0, 1.03);
1324 bInfoMusic->setAlign(ALIGN_CENTER);
1325 bInfoMusic->setVAlign(VALIGN_CENTER);
1326 bInfoMusic->setX(480);
1327 bInfoMusic->setY(78);
1328 bInfoMusic->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_info_music", "png") ));
1329 bInfoMusic->setAnimation("out");
1330 bInfoMusic->OnClick = bInfoMusic_SceneEditGame_OnClick;
1331 getGroupScene()->addElement(bInfoMusic);
1332
1333 missionName = new Entry(NULL, 450, 25, 10, 10);
1334 missionName->setNoSigns(true);
1335 missionName->setIndexZ(1);
1336 missionName->setMaxLetters(35);
1337 missionName->setFontLabel("font-texts");
1338 missionName->setFont("font-computer");
1339 missionName->setLabel(Language::GetInstance()->getText("namemission"));
1340 missionName->setHorizontal(false);
1341 missionName->setX(World::width/2);
1342 missionName->setY(150);
1343 missionName->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1344 missionName->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1345 missionName->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1346
1347 getGroupScene()->addElement((Element*)missionName);
1348
1349 nameAuthor = new Entry(missionName, 450, 25, 10, 10);
1350 nameAuthor->setNoSigns(true);
1351 nameAuthor->setIndexZ(1);
1352 nameAuthor->setMaxLetters(35);
1353 nameAuthor->setFontLabel("font-texts");
1354 nameAuthor->setFont("font-computer");
1355 nameAuthor->setLabel(Language::GetInstance()->getText("nameauthor"));
1356 nameAuthor->setHorizontal(false);
1357 nameAuthor->setX(World::width/2);
1358 nameAuthor->setY(225);
1359 nameAuthor->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1360 nameAuthor->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1361 nameAuthor->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1362
1363 getGroupScene()->addElement((Element*)nameAuthor);
1364
1365 levelName = new Entry(missionName, 450, 25, 10, 10);
1366 levelName->setNoSigns(true);
1367 levelName->setIndexZ(1);
1368 levelName->setMaxLetters(35);
1369 levelName->setFontLabel("font-texts");
1370 levelName->setFont("font-computer");
1371 levelName->setLabel(Language::GetInstance()->getText("namelevel"));
1372 levelName->setHorizontal(false);
1373 levelName->setX(World::width/2);
1374 levelName->setY(300);
1375 levelName->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1376 levelName->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1377 levelName->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1378
1379 getGroupScene()->addElement((Element*)levelName);
1380
1381 provinceName = new Entry(missionName, 450, 25, 10, 10);
1382 provinceName->setNoSigns(true);
1383 provinceName->setIndexZ(1);
1384 provinceName->setMaxLetters(35);
1385 provinceName->setFontLabel("font-texts");
1386 provinceName->setFont("font-computer");
1387 provinceName->setLabel(Language::GetInstance()->getText("nameprovince"));
1388 provinceName->setHorizontal(false);
1389 provinceName->setX(World::width/2);
1390 provinceName->setY(375);
1391 provinceName->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1392 provinceName->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1393 provinceName->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1394
1395 getGroupScene()->addElement((Element*)provinceName);
1396
1397 /*********************
1398 INFORMATION TOWN
1399 **********************/
1400
1401 noExistInfoTown = new Element();
1402 noExistInfoTown->setCurrentScale(1.2);
1403 noExistInfoTown->setAlign(ALIGN_CENTER);
1404 noExistInfoTown->setVAlign(VALIGN_CENTER);
1405 noExistInfoTown->setIndexZ(2);
1406 noExistInfoTown->setXY(400, 230);
1407 noExistInfoTown->addFrameText("font-texts", Language::GetInstance()->getText("noexistinfotown"), ALIGN_CENTER);
1408 getGroupScene()->addElement(noExistInfoTown);
1409
1410 dataInfo = new ListView();
1411 dataInfo->setIndexZ(2);
1412 dataInfo->setTodoMovement(false);
1413 dataInfo->setXY(160, 150);
1414 dataInfo->setItemsVisible(4);
1415 dataInfo->setSeparateGrid(60);
1416
1417 bAddInfo = new Button();
1418 bAddInfo->setIndexZ(1);
1419 bAddInfo->setScales(1.0, 1.03);
1420 bAddInfo->setAlign(ALIGN_CENTER);
1421 bAddInfo->setVAlign(VALIGN_CENTER);
1422 bAddInfo->setXY(400, 420);
1423 bAddInfo->setRGB(0, 255, 0);
1424 bAddInfo->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_addinfo", "png")));
1425 bAddInfo->OnClick = bAddInfo_SceneEditGame_OnClick;
1426
1427 typeButtonInfoTown = new SelectButton();
1428 typeButtonInfoTown->setIndexZ(1);
1429 typeButtonInfoTown->setX(320);
1430 typeButtonInfoTown->setY(130);
1431
1432 for (i=0; i<8; i++) {
1433 sprintf(tmp, "%s/town_info/button%d_off.png", DATA_DIR, i);
1434 typeButtonInfoTown->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
1435 }
1436
1437 typeButtonInfoTown->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_right.png"));
1438
1439 eTitleInfoTown = new Entry(NULL, 450, 25, 10, 10);
1440 eTitleInfoTown->setNoSigns(true);
1441 eTitleInfoTown->setMaxLetters(14);
1442 eTitleInfoTown->setIndexZ(1);
1443 eTitleInfoTown->setFontLabel("font-texts");
1444 eTitleInfoTown->setFont("font-texts");
1445 eTitleInfoTown->setLabel(Language::GetInstance()->getText("title"));
1446 eTitleInfoTown->setHorizontal(false);
1447 eTitleInfoTown->setX(World::width/2);
1448 eTitleInfoTown->setY(190);
1449 eTitleInfoTown->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox.png"));
1450 eTitleInfoTown->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_on.png"));
1451 eTitleInfoTown->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_textbox_active.png"));
1452
1453 getGroupScene()->addElement((Element*)eTitleInfoTown);
1454
1455 taInfoTown = new Entry(eTitleInfoTown, 440, 25, 10, 10);
1456 taInfoTown->setMultiline(true);
1457 taInfoTown->setTotalRows(6);
1458 taInfoTown->setIndexZ(1);
1459 taInfoTown->setFontLabel("font-texts");
1460 taInfoTown->setFont("font-texts");
1461 taInfoTown->setLabel(Language::GetInstance()->getText("text"));
1462 taInfoTown->setHorizontal(false);
1463 taInfoTown->setX(World::width/2);
1464 taInfoTown->setY(265);
1465 taInfoTown->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_middle_textarea.png"));
1466 taInfoTown->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_middle_textarea_on.png"));
1467 taInfoTown->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_middle_textarea_active.png"));
1468
1469 getGroupScene()->addElement((Element*)taInfoTown);
1470
1471 eTitleInfoTown->setActive(true);
1472
1473 /*************
1474 RAD MUSIC
1475 *************/
1476
1477 radMusic0 = new RadioButton(NULL, "font-texts", "Blah, blah, blah (Reggae)");
1478 radMusic0->setIndexZ(1);
1479 radMusic0->setX(200);
1480 radMusic0->setY(170);
1481
1482 radMusic0->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad_off.png") );
1483 radMusic0->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad2_on.png") );
1484
1485 getGroupScene()->addGroup(radMusic0);
1486
1487 radMusic1 = new RadioButton(radMusic0, "font-texts", "Babosa cantarina (Alegre)");
1488 radMusic1->setIndexZ(1);
1489 radMusic1->setX(200);
1490 radMusic1->setY(220);
1491
1492 radMusic1->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad_off.png") );
1493 radMusic1->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad2_on.png") );
1494
1495 getGroupScene()->addGroup(radMusic1);
1496
1497 radMusic2 = new RadioButton(radMusic0, "font-texts", "El tango de la pena (Tango)");
1498 radMusic2->setIndexZ(1);
1499 radMusic2->setX(200);
1500 radMusic2->setY(270);
1501
1502 radMusic2->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad_off.png") );
1503 radMusic2->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad2_on.png") );
1504
1505 getGroupScene()->addGroup(radMusic2);
1506
1507 radMusic3 = new RadioButton(radMusic0, "font-texts", "Rumbum (Rumba-Jazz)");
1508 radMusic3->setIndexZ(1);
1509 radMusic3->setX(200);
1510 radMusic3->setY(320);
1511
1512 radMusic3->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad_off.png") );
1513 radMusic3->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/rad2_on.png") );
1514
1515 getGroupScene()->addGroup(radMusic3);
1516
1517 radMusic0->setActive(true);
1518
1519 /*************
1520 HAND TRAY
1521 *************/
1522
1523 handTray = new Group();
1524 handTray->setX(0);
1525 handTray->setY(450);
1526
1527 bgHandTray = new Element();
1528 bgHandTray->addFrameFileFromData("/editgame/handtray.png");
1529
1530 handTray->addElement(bgHandTray);
1531
1532 getGroupScene()->addGroup(handTray);
1533
1534 btHandTray = new Button();
1535 btHandTray->setAlign(ALIGN_CENTER);
1536 btHandTray->setVAlign(VALIGN_CENTER);
1537 btHandTray->setXY(76, 55);
1538 btHandTray->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/edit_eat.png"));
1539 btHandTray->setSensitive(false);
1540 btHandTray->OnClick = btHandTray_SceneEditGame_OnClick;
1541
1542 handTray->addElement(btHandTray);
1543
1544 /*************
1545 MENU
1546 *************/
1547
1548 menuBg = new Element();
1549 menuBg->setVAlign(VALIGN_BOTTOM);
1550 menuBg->setX(0);
1551 menuBg->setY(World::height);
1552 menuBg->addFrameFileFromData("/editgame/menu_bg.png");
1553 getGroupScene()->addElement(menuBg);
1554
1555 menu = new Group();
1556 menu->setX(239);
1557 menu->setY(540);
1558
1559 menuTown = new MarqueeElement();
1560 menuTown->setCurrentScale(0.34);
1561 menuTown->setAlign(ALIGN_CENTER);
1562 menuTown->setVAlign(VALIGN_CENTER);
1563 menuTown->setX(168);
1564 menuTown->setY(45);
1565 menuTown->setRGB(234, 238, 53);
1566
1567 menu->addElement(menuTown);
1568 getGroupScene()->addElement(menuTown);
1569
1570 menuText = new Element();
1571 menuText->setAlign(ALIGN_CENTER);
1572 menuText->setVAlign(VALIGN_CENTER);
1573 menuText->setX(168);
1574 menuText->setY(45);
1575 menuText->setCurrentScale(0.34);
1576 menuText->hide();
1577
1578 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuedit"), ALIGN_CENTER);
1579 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menusave"), ALIGN_CENTER);
1580 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuguides"), ALIGN_CENTER);
1581 menuText->addFrameText("font-computer", Language::GetInstance()->getText("exit"), ALIGN_CENTER);
1582 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuaddobject"), ALIGN_CENTER);
1583 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menupersonage"), ALIGN_CENTER);
1584 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuobject"), ALIGN_CENTER);
1585 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menueat"), ALIGN_CENTER);
1586 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuclean"), ALIGN_CENTER);
1587 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuhelp"), ALIGN_CENTER);
1588 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypeboard"), ALIGN_CENTER);
1589 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypefloor"), ALIGN_CENTER);
1590 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypewall"), ALIGN_CENTER);
1591 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypepavement"), ALIGN_CENTER);
1592 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypetiled"), ALIGN_CENTER);
1593 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselectntilesclosed"), ALIGN_CENTER);
1594 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselectcolorwall"), ALIGN_CENTER);
1595 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypeterrain"), ALIGN_CENTER);
1596 menuText->addFrameText("font-computer", Language::GetInstance()->getText("menuselecttypewallscenary"), ALIGN_CENTER);
1597
1598 menu->addElement(menuText);
1599 getGroupScene()->addElement(menuText);
1600
1601 setTextDisplay(-1);
1602
1603 bEditInfo = new Button();
1604 bEditInfo->setSoundOn("click0");
1605 bEditInfo->setScales(1.0, 1.05);
1606 bEditInfo->setAlign(ALIGN_CENTER);
1607 bEditInfo->setVAlign(VALIGN_CENTER);
1608 bEditInfo->setX(80);
1609 bEditInfo->setY(10);
1610 bEditInfo->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_editinfo.png"));
1611 bEditInfo->setAnimation("out");
1612 bEditInfo->OnClick = bEditInfo_SceneEditGame_OnClick;
1613 menu->addElement(bEditInfo);
1614 getGroupScene()->addElement(bEditInfo);
1615
1616 bSave = new Button();
1617 bSave->setSoundOn("click0");
1618 bSave->setScales(1.0, 1.05);
1619 bSave->setAlign(ALIGN_CENTER);
1620 bSave->setVAlign(VALIGN_CENTER);
1621 bSave->setX(115);
1622 bSave->setY(10);
1623 bSave->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_save.png"));
1624 bSave->setAnimation("out");
1625 bSave->OnClick = bSave_SceneEditGame_OnClick;
1626 menu->addElement(bSave);
1627 getGroupScene()->addElement(bSave);
1628
1629 bRules = new Button();
1630 bRules->setSoundOn("click0");
1631 bRules->setScales(1.0, 1.05);
1632 bRules->setAlign(ALIGN_CENTER);
1633 bRules->setVAlign(VALIGN_CENTER);
1634 bRules->setX(150);
1635 bRules->setY(10);
1636 bRules->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_rules.png"));
1637 bRules->setAnimation("out");
1638 bRules->OnClick = bRules_SceneEditGame_OnClick;
1639 menu->addElement(bRules);
1640 getGroupScene()->addElement(bRules);
1641
1642 bClean = new Button();
1643 bClean->setSoundOn("click0");
1644 bClean->setScales(1.0, 1.05);
1645 bClean->setAlign(ALIGN_CENTER);
1646 bClean->setVAlign(VALIGN_CENTER);
1647 bClean->setX(185);
1648 bClean->setY(10);
1649 bClean->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_clean.png"));
1650 bClean->setAnimation("out");
1651 bClean->OnClick = bClean_SceneEditGame_OnClick;
1652 menu->addElement(bClean);
1653 getGroupScene()->addElement(bClean);
1654
1655 bHelp = new Button();
1656 bHelp->setSoundOn("click0");
1657 bHelp->setScales(1.0, 1.05);
1658 bHelp->setAlign(ALIGN_CENTER);
1659 bHelp->setVAlign(VALIGN_CENTER);
1660 bHelp->setX(220);
1661 bHelp->setY(10);
1662 bHelp->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_help.png"));
1663 bHelp->setAnimation("out");
1664 bHelp->OnClick = bHelp_SceneEditGame_OnClick;
1665 menu->addElement(bHelp);
1666 getGroupScene()->addElement(bHelp);
1667
1668 bQuit = new Button();
1669 bQuit->setSoundOn("click0");
1670 bQuit->setScales(1.0, 1.05);
1671 bQuit->setAlign(ALIGN_CENTER);
1672 bQuit->setVAlign(VALIGN_CENTER);
1673 bQuit->setX(255);
1674 bQuit->setY(10);
1675 bQuit->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/menuitem_quit.png"));
1676 bQuit->setAnimation("out");
1677 bQuit->OnClick = bQuit_SceneEditGame_OnClick;
1678 menu->addElement(bQuit);
1679 getGroupScene()->addElement(bQuit);
1680
1681 pb->setText("font-texts", Language::GetInstance()->getText("loading_level"));
1682 pb->draw();
1683
1684 EditBoard::GetInstance()->setSceneEditGame(this);
1685 EditBoard::GetInstance()->load();
1686 EditBoard::GetInstance()->loadLevel();
1687
1688 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
1689 typeTiled->setY(435);
1690 nTilesClosed->setY(465);
1691 colorWall->setY(495);
1692 } else {
1693 typeTiled->setY(440);
1694 nTilesClosed->setY(480);
1695 }
1696
1697 getGroupScene()->addGroup(EditBoard::GetInstance());
1698
1699 menuTown->setText("font-computer", WorkingData::GetInstance()->getToUpper(EditBoard::GetInstance()->town.name), 17);
1700
1701 // group of the objects in sceneaddobject
1702
1703 blueLine = new Element();
1704 blueLine->setIndexZ(1);
1705 blueLine->setXY(70, 70);
1706 blueLine->addFrameSurface(Primitives::GetInstance()->rectangle(660, 490, 62, 98, 140));
1707 getGroupScene()->addElement(blueLine);
1708
1709 infoObjectsPersonal = new Element();
1710 infoObjectsPersonal->setAlign(ALIGN_CENTER);
1711 infoObjectsPersonal->setVAlign(VALIGN_BOTTOM);
1712 infoObjectsPersonal->setIndexZ(2);
1713 infoObjectsPersonal->setRGB(190, 195, 53);
1714 infoObjectsPersonal->setCurrentScale(0.9);
1715 infoObjectsPersonal->setXY(400, 550);
1716 string text = Language::GetInstance()->getText("personalfile") + "|" + Missions::GetInstance()->currentLevel->getPath() + "/objects";
1717 infoObjectsPersonal->addFrameText("font-texts", text, ALIGN_CENTER);
1718 getGroupScene()->addElement(infoObjectsPersonal);
1719
1720 bgArrow = new Element();
1721 bgArrow->setIndexZ(0);
1722 bgArrow->setXY(700, 100);
1723 bgArrow->addFrameFileFromData("/editgame/bg_arrow.png");
1724 getGroupScene()->addElement(bgArrow);
1725
1726 bgButton = new Element();
1727 bgButton->setIndexZ(1);
1728 bgButton->setAlign(ALIGN_CENTER);
1729 bgButton->setVAlign(VALIGN_CENTER);
1730 bgButton->setXY(400, 577);
1731 bgButton->addFrameFileFromData("/editgame/bluebox.png");
1732 getGroupScene()->addElement(bgButton);
1733
1734 bCancelObjects = new Button();
1735 bCancelObjects->setIndexZ(2);
1736 bCancelObjects->setScales(0.4, 0.45);
1737 bCancelObjects->setAlign(ALIGN_CENTER);
1738 bCancelObjects->setVAlign(VALIGN_CENTER);
1739 bCancelObjects->setX(405);
1740 bCancelObjects->setY(574);
1741 bCancelObjects->setRGB(255, 0, 0);
1742
1743 bCancelObjects->OnClick = bCancel_SceneEditGame_OnClick;
1744
1745 sprintf(tmp, Language::GetInstance()->getText("cancel").c_str());
1746 bCancelObjects->imageOut(Fonts::GetInstance()->getSurface_TextBitMap("font-computer", ALIGN_CENTER, tmp));
1747 bCancelObjects->setAnimation("out");
1748
1749 getGroupScene()->addElement(bCancelObjects);
1750
1751 bObjectsGame = new Button();
1752 bObjectsGame->setIndexZ(2);
1753 bObjectsGame->setScales(1.0, 1.03);
1754 bObjectsGame->setAlign(ALIGN_CENTER);
1755 bObjectsGame->setVAlign(VALIGN_CENTER);
1756 bObjectsGame->setX(175);
1757 bObjectsGame->setY(53);
1758 bObjectsGame->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_objects_game", "png") ));
1759 bObjectsGame->setAnimation("out");
1760 bObjectsGame->OnClick = bObjectsGame_SceneEditGame_OnClick;
1761 getGroupScene()->addElement(bObjectsGame);
1762
1763 bObjectsPersonal = new Button();
1764 bObjectsPersonal->setIndexZ(0);
1765 bObjectsPersonal->setRGB(160, 160, 160);
1766 bObjectsPersonal->setScales(1.0, 1.03);
1767 bObjectsPersonal->setAlign(ALIGN_CENTER);
1768 bObjectsPersonal->setVAlign(VALIGN_CENTER);
1769 bObjectsPersonal->setX(360);
1770 bObjectsPersonal->setY(53);
1771 bObjectsPersonal->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_objects_personal", "png") ));
1772 bObjectsPersonal->setAnimation("out");
1773 bObjectsPersonal->OnClick = bObjectsPersonal_SceneEditGame_OnClick;
1774 getGroupScene()->addElement(bObjectsPersonal);
1775
1776 bObjectsTexts = new Button();
1777 bObjectsTexts->setIndexZ(0);
1778 bObjectsTexts->setRGB(160, 160, 160);
1779 bObjectsTexts->setScales(1.0, 1.03);
1780 bObjectsTexts->setAlign(ALIGN_CENTER);
1781 bObjectsTexts->setVAlign(VALIGN_CENTER);
1782 bObjectsTexts->setX(545);
1783 bObjectsTexts->setY(53);
1784 bObjectsTexts->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_objects_text", "png") ));
1785 bObjectsTexts->setAnimation("out");
1786 bObjectsTexts->OnClick = bObjectsTexts_SceneEditGame_OnClick;
1787 getGroupScene()->addElement(bObjectsTexts);
1788
1789 objectsGame = new ListImage(4, 6);
1790 objectsGame->setIndexZ(1);
1791 objectsGame->setSeparateGrid(110);
1792 objectsGame->setX(70);
1793 objectsGame->setY(120);
1794
1795 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
1796 objectsGame->addCategory("windows");
1797 objectsGame->addCategory("doors");
1798 objectsGame->addCategory("lights");
1799 objectsGame->addCategory("elements");
1800 objectsGame->addCategory("decorative");
1801 } else {
1802 objectsGame->addCategory("nature");
1803 objectsGame->addCategory("beach");
1804 objectsGame->addCategory("benchs");
1805 objectsGame->addCategory("construction");
1806 objectsGame->addCategory("elements");
1807 }
1808
1809 TypeObjectsScenary::GetInstance()->MoveFirst();
1810 for (i=0; !TypeObjectsScenary::GetInstance()->isEOF(); i++) {
1811 if (EditBoard::GetInstance()->getScenary()->getType()==TypeObjectsScenary::GetInstance()->getObject()->type) {
1812 Button *b = new Button();
1813 b->setScales(1.0, 1.05);
1814 sprintf(tmp, "%s/scenary/min_%s", DATA_DIR, TypeObjectsScenary::GetInstance()->getObject()->file.c_str());
1815 b->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
1816 b->setAnimation("out");
1817 b->addParameter("name", TypeObjectsScenary::GetInstance()->getObject()->name);
1818 b->addParameter("category", TypeObjectsScenary::GetInstance()->getObject()->category);
1819 b->OnClick = insertObjectsGame_SceneEditGame_OnClick;
1820 objectsGame->add(b);
1821 }
1822 TypeObjectsScenary::GetInstance()->MoveNext();
1823 }
1824
1825 Element *boxObjects = new Element();
1826 boxObjects->addFrameFileFromData("/editgame/box_object.png");
1827
1828 //gObjects->addElement(boxObjects);
1829
1830 Button* bUpObjects = new Button();
1831 bUpObjects->setSoundClick("beep1");
1832 bUpObjects->setScales(1.0, 1.05);
1833 bUpObjects->setAlign(ALIGN_CENTER);
1834 bUpObjects->setVAlign(VALIGN_CENTER);
1835
1836 bUpObjects->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up.png"));
1837
1838 bUpObjects->imageOff(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up_off.png"));
1839 bUpObjects->setAnimation("out");
1840
1841 getGroupScene()->addElement((Element*)bUpObjects);
1842
1843 bUpObjects->setSensitive(false);
1844
1845 Button* bDownObjects = new Button();
1846 bDownObjects->setSoundClick("beep1");
1847 bDownObjects->setScales(1.0, 1.05);
1848 bDownObjects->setFlop(true);
1849 bDownObjects->setAlign(ALIGN_CENTER);
1850 bDownObjects->setVAlign(VALIGN_CENTER);
1851
1852 bDownObjects->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up.png"));
1853
1854 bDownObjects->imageOff(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up_off.png"));
1855 bDownObjects->setAnimation("out");
1856
1857 getGroupScene()->addElement((Element*)bDownObjects);
1858
1859 bDownObjects->setSensitive(false);
1860
1861 objectsGame->setButtons(bUpObjects, bDownObjects, 678, 42);
1862 objectsGame->setBoxImage(boxObjects);
1863
1864 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
1865 objectsGame->setCategory("windows");
1866 } else {
1867 objectsGame->setCategory("nature");
1868 }
1869
1870 // personal objects
1871
1872 objectsPersonal = new ListImage(3, 6);
1873 objectsPersonal->setIndexZ(1);
1874 objectsPersonal->setSeparateGrid(110);
1875 objectsPersonal->setX(70);
1876 objectsPersonal->setY(160);
1877
1878 loadObjectsPersonal ();
1879
1880 Button* bUpObjectsPersonal = new Button();
1881 bUpObjectsPersonal->setSoundClick("beep1");
1882 bUpObjectsPersonal->setScales(1.0, 1.05);
1883 bUpObjectsPersonal->setAlign(ALIGN_CENTER);
1884 bUpObjectsPersonal->setVAlign(VALIGN_CENTER);
1885
1886 bUpObjectsPersonal->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up.png"));
1887
1888 bUpObjectsPersonal->imageOff(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up_off.png"));
1889 bUpObjectsPersonal->setAnimation("out");
1890
1891 getGroupScene()->addElement((Element*)bUpObjectsPersonal);
1892
1893 bUpObjectsPersonal->setSensitive(false);
1894
1895 Button* bDownObjectsPersonal = new Button();
1896 bDownObjectsPersonal->setSoundClick("beep1");
1897 bDownObjectsPersonal->setScales(1.0, 1.05);
1898 bDownObjectsPersonal->setFlop(true);
1899 bDownObjectsPersonal->setAlign(ALIGN_CENTER);
1900 bDownObjectsPersonal->setVAlign(VALIGN_CENTER);
1901
1902 bDownObjectsPersonal->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up.png"));
1903
1904 bDownObjectsPersonal->imageOff(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/arrow_up_off.png"));
1905 bDownObjectsPersonal->setAnimation("out");
1906
1907 getGroupScene()->addElement((Element*)bDownObjectsPersonal);
1908
1909 bDownObjectsPersonal->setSensitive(false);
1910
1911 objectsPersonal->setButtons(bUpObjectsPersonal, bDownObjectsPersonal, 678, 42);
1912
1913 Element *boxObjectsPersonal = new Element();
1914 boxObjectsPersonal->addFrameFileFromData("/editgame/box_object.png");
1915
1916 objectsPersonal->setBoxImage(boxObjectsPersonal);
1917
1918 objectsPersonal->verifyObjectsToShow();
1919
1920 // categories radios
1921
1922 rbTypeClosedWindows = new RadioButton(NULL, "font-texts", Language::GetInstance()->getText("windows"));
1923 rbTypeClosedWindows->setIndexZ(1);
1924 rbTypeClosedWindows->setX(80);
1925 rbTypeClosedWindows->setY(80);
1926
1927 rbTypeClosedWindows->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1928 rbTypeClosedWindows->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1929
1930 getGroupScene()->addGroup(rbTypeClosedWindows);
1931
1932 rbTypeClosedDoors = new RadioButton(rbTypeClosedWindows, "font-texts", Language::GetInstance()->getText("doors"));
1933 rbTypeClosedDoors->setIndexZ(1);
1934 rbTypeClosedDoors->setX(205);
1935 rbTypeClosedDoors->setY(80);
1936
1937 rbTypeClosedDoors->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1938 rbTypeClosedDoors->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1939
1940 getGroupScene()->addGroup(rbTypeClosedDoors);
1941
1942 rbTypeClosedLights = new RadioButton(rbTypeClosedWindows, "font-texts", Language::GetInstance()->getText("lights"));
1943 rbTypeClosedLights->setIndexZ(1);
1944 rbTypeClosedLights->setX(330);
1945 rbTypeClosedLights->setY(80);
1946
1947 rbTypeClosedLights->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1948 rbTypeClosedLights->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1949
1950 getGroupScene()->addGroup(rbTypeClosedLights);
1951
1952 rbTypeClosedElements = new RadioButton(rbTypeClosedWindows, "font-texts", Language::GetInstance()->getText("elements"));
1953 rbTypeClosedElements->setIndexZ(1);
1954 rbTypeClosedElements->setX(440);
1955 rbTypeClosedElements->setY(80);
1956
1957 rbTypeClosedElements->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1958 rbTypeClosedElements->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1959
1960 getGroupScene()->addGroup(rbTypeClosedElements);
1961
1962 rbTypeClosedDecorative = new RadioButton(rbTypeClosedWindows, "font-texts", Language::GetInstance()->getText("decorative"));
1963 rbTypeClosedDecorative->setIndexZ(1);
1964 rbTypeClosedDecorative->setX(580);
1965 rbTypeClosedDecorative->setY(80);
1966
1967 rbTypeClosedDecorative->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1968 rbTypeClosedDecorative->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1969
1970 getGroupScene()->addGroup(rbTypeClosedDecorative);
1971
1972 rbTypeClosedWindows->setActive(true);
1973
1974 rbTypeOpenedNature = new RadioButton(NULL, "font-texts", Language::GetInstance()->getText("nature"));
1975 rbTypeOpenedNature->setIndexZ(1);
1976 rbTypeOpenedNature->setX(80);
1977 rbTypeOpenedNature->setY(80);
1978
1979 rbTypeOpenedNature->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1980 rbTypeOpenedNature->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1981
1982 getGroupScene()->addGroup(rbTypeOpenedNature);
1983
1984 rbTypeOpenedBeach = new RadioButton(rbTypeOpenedNature, "font-texts", Language::GetInstance()->getText("beach"));
1985 rbTypeOpenedBeach->setIndexZ(1);
1986 rbTypeOpenedBeach->setX(215);
1987 rbTypeOpenedBeach->setY(80);
1988
1989 rbTypeOpenedBeach->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
1990 rbTypeOpenedBeach->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
1991
1992 getGroupScene()->addGroup(rbTypeOpenedBeach);
1993
1994 rbTypeOpenedBench = new RadioButton(rbTypeOpenedNature, "font-texts", Language::GetInstance()->getText("benchs"));
1995 rbTypeOpenedBench->setIndexZ(1);
1996 rbTypeOpenedBench->setX(320);
1997 rbTypeOpenedBench->setY(80);
1998
1999 rbTypeOpenedBench->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
2000 rbTypeOpenedBench->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
2001
2002 getGroupScene()->addGroup(rbTypeOpenedBench);
2003
2004 rbTypeOpenedConstruction = new RadioButton(rbTypeOpenedNature, "font-texts", Language::GetInstance()->getText("construction"));
2005 rbTypeOpenedConstruction->setIndexZ(1);
2006 rbTypeOpenedConstruction->setX(430);
2007 rbTypeOpenedConstruction->setY(80);
2008
2009 rbTypeOpenedConstruction->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
2010 rbTypeOpenedConstruction->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
2011
2012 getGroupScene()->addGroup(rbTypeOpenedConstruction);
2013
2014 rbTypeOpenedElements = new RadioButton(rbTypeOpenedNature, "font-texts", Language::GetInstance()->getText("elements"));
2015 rbTypeOpenedElements->setIndexZ(1);
2016 rbTypeOpenedElements->setX(580);
2017 rbTypeOpenedElements->setY(80);
2018
2019 rbTypeOpenedElements->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
2020 rbTypeOpenedElements->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
2021
2022 getGroupScene()->addGroup(rbTypeOpenedElements);
2023
2024 rbTypeOpenedNature->setActive(true);
2025
2026 // personal radios
2027
2028 rad2d = new RadioButton(NULL, "font-texts", Language::GetInstance()->getText("object2d"));
2029 rad2d->setIndexZ(1);
2030 rad2d->setX(140);
2031 rad2d->setY(80);
2032
2033 rad2d->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
2034 rad2d->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
2035
2036 getGroupScene()->addGroup(rad2d);
2037
2038 string txt_rad3d="";
2039 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2040 txt_rad3d = Language::GetInstance()->getText("object3d_closed");
2041 } else {
2042 txt_rad3d = Language::GetInstance()->getText("object3d_opened");
2043 }
2044
2045 rad3d = new RadioButton(rad2d, "font-texts", txt_rad3d);
2046 rad3d->setIndexZ(1);
2047 rad3d->setX(140);
2048 rad3d->setY(120);
2049
2050 rad3d->imageActive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_on.png"));
2051 rad3d->imageInactive(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/interface/radblue_off.png"));
2052
2053 getGroupScene()->addGroup(rad3d);
2054
2055 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2056 rad2d->setActive(true);
2057 } else {
2058 rad3d->setActive(true);
2059 }
2060
2061
2062 titleTypeTextsInWall = new Element();
2063 titleTypeTextsInWall->setIndexZ(1);
2064 titleTypeTextsInWall->setVAlign(VALIGN_CENTER);
2065 titleTypeTextsInWall->setAlign(ALIGN_CENTER);
2066 titleTypeTextsInWall->setX(400);
2067 titleTypeTextsInWall->setY(130);
2068
2069 titleTypeTextsInWall->addFrameLanguage("font-texts", "typefont", ALIGN_CENTER);
2070
2071 getGroupScene()->addElement(titleTypeTextsInWall);
2072
2073 typeTextsInWall = new SelectButton();
2074 typeTextsInWall->setIndexZ(1);
2075 typeTextsInWall->setX(305);
2076 typeTextsInWall->setY(170);
2077
2078 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall0.png"));
2079 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall1.png"));
2080 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall2.png"));
2081 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall3.png"));
2082 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall4.png"));
2083 typeTextsInWall->addObject(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/misc/font_wall5.png"));
2084
2085 typeTextsInWall->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_right.png"));
2086
2087 colorTextsInWall = new SelectButton();
2088 colorTextsInWall->setIndexZ(1);
2089 colorTextsInWall->setX(350);
2090 colorTextsInWall->setY(270);
2091
2092 for (i=0; i<vcolorsTextInWall->count(); i++) {
2093 colorTextsInWall->addObject(Primitives::GetInstance()->rectangle(40, 40, vcolorsTextInWall->getColor(i)->r, vcolorsTextInWall->getColor(i)->g, vcolorsTextInWall->getColor(i)->b));
2094 }
2095
2096 colorTextsInWall->setArrows(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_left.png"), WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR+"/windows/arrow_right.png"));
2097
2098 taText = new Entry(NULL, 440, 29, 10, 10);
2099 taText->setMultiline(true);
2100 taText->setTotalRows(3);
2101 taText->setIndexZ(1);
2102 taText->setFontLabel("font-texts");
2103 taText->setFont("font-texts");
2104 taText->setLabel(Language::GetInstance()->getText("inserttext"));
2105 taText->setHorizontal(false);
2106 taText->setX(World::width/2);
2107 taText->setY(330);
2108 taText->addFrameBoxNormal(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_bluesmall_textarea.png"));
2109 taText->addFrameBoxOnOver(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_bluesmall_textarea_on.png"));
2110 taText->addFrameBoxActived(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/createmissions/bg_bluesmall_textarea_active.png"));
2111
2112 getGroupScene()->addElement((Element*)taText);
2113
2114 taText->setActive(true);
2115
2116 bInsertText = new Button();
2117 bInsertText->setScales(1.0, 1.05);
2118 bInsertText->setIndexZ(1);
2119 bInsertText->setAlign(ALIGN_CENTER);
2120 bInsertText->setVAlign(VALIGN_CENTER);
2121 bInsertText->setX(400);
2122 bInsertText->setY(480);
2123
2124 bInsertText->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage((string)DATA_DIR + "/editgame/" + Language::GetInstance()->getFilename("b_inserttext", "png")));
2125 bInsertText->setAnimation("out");
2126
2127 bInsertText->OnClick = bInsertText_SceneGame_OnClick;
2128
2129 getGroupScene()->addElement(bInsertText);
2130
2131 radAlignLeftText = new RadioButton(NULL);
2132 radAlignLeftText->setIndexZ(1);
2133 radAlignLeftText->setX(340);
2134 radAlignLeftText->setY(205);
2135
2136 radAlignLeftText->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_alignleft_off.png") );
2137 radAlignLeftText->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_alignleft_on.png") );
2138
2139 getGroupScene()->addGroup(radAlignLeftText);
2140
2141 radAlignCenterText = new RadioButton(radAlignLeftText);
2142 radAlignCenterText->setIndexZ(1);
2143 radAlignCenterText->setX(390);
2144 radAlignCenterText->setY(205);
2145
2146 radAlignCenterText->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_aligncenter_off.png") );
2147 radAlignCenterText->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_aligncenter_on.png") );
2148
2149 getGroupScene()->addGroup(radAlignCenterText);
2150
2151 radAlignRightText = new RadioButton(radAlignLeftText);
2152 radAlignRightText->setIndexZ(1);
2153 radAlignRightText->setX(440);
2154 radAlignRightText->setY(205);
2155
2156 radAlignRightText->imageInactive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_alignright_off.png") );
2157 radAlignRightText->imageActive( WorkingSurfaces::GetInstance()->surfaceFromImage(string(DATA_DIR) + "/editgame/b_alignright_on.png") );
2158
2159 getGroupScene()->addGroup(radAlignRightText);
2160
2161 radAlignLeftText->setActive(true);
2162
2163 Sounds::GetInstance()->getSound("music_editor")->play(1, -1, 2000);
2164
2165
2166 delete pb;
2167
2168 }
2169
loadObjectsPersonal()2170 void SceneEditGame::loadObjectsPersonal () {
2171
2172 objectsPersonal->clear();
2173
2174 DIR *pdir;
2175 struct dirent *pent;
2176
2177 string path = Missions::GetInstance()->currentLevel->getPath() + "/objects";
2178
2179 pdir=opendir(path.c_str());
2180
2181 if (pdir) {
2182 while ((pent=readdir(pdir))) {
2183 string ext = WorkingData::GetInstance()->getExtension(pent->d_name);
2184 if ( ext == "JPG" || ext == "PNG" ) {
2185 Button *b = new Button();
2186 char tmp[128];
2187 sprintf(tmp, "%s/%s", path.c_str(), pent->d_name);
2188 b->imageOut(WorkingSurfaces::GetInstance()->surfaceFromImage(tmp));
2189
2190 Size size = WorkingSurfaces::GetInstance()->getSize(tmp);
2191 float scale = 1.0;
2192 if (size.h > size.w) {
2193 scale = 90.0/(float)size.h;
2194 } else {
2195 scale = 90.0/(float)size.w;
2196 }
2197 b->setScales(scale, scale+0.05);
2198
2199 b->setAnimation("out");
2200 b->addParameter("name", pent->d_name);
2201 b->OnClick = insertObjectsPersonal_SceneEditGame_OnClick;
2202 objectsPersonal->add(b);
2203 }
2204 }
2205 closedir(pdir);
2206 }
2207
2208 }
2209
2210 /**********************
2211 DRAWSCENE MAIN
2212 **********************/
2213
drawSceneMain()2214 void SceneEditGame::drawSceneMain () {
2215
2216 verifyOverElements_Main();
2217
2218 for (int i=0; i<MAX_INDEXZ; i++) {
2219 drawSceneMainByIndexZ(i);
2220 }
2221
2222 }
2223
drawSceneMainByIndexZ(int z)2224 void SceneEditGame::drawSceneMainByIndexZ(int z) {
2225 if (EditBoard::GetInstance()->getIndexZ() == z) {
2226 EditBoard::GetInstance()->draw();
2227 }
2228 if (bgHandTray->getIndexZ() == z) {
2229 handTray->work();
2230 bgHandTray->draw();
2231 btHandTray->draw();
2232 }
2233 if (menuBg->getIndexZ() == z) {
2234 menuBg->draw();
2235 }
2236 if (bNimuh->getIndexZ() == z) {
2237 bNimuh->draw();
2238 }
2239 if (bEnemy1->getIndexZ() == z) {
2240 bEnemy1->draw();
2241 }
2242 if (bEnemy2->getIndexZ() == z) {
2243 bEnemy2->draw();
2244 }
2245 if (bEnemy3->getIndexZ() == z) {
2246 bEnemy3->draw();
2247 }
2248 if (bBlackHole1->getIndexZ() == z) {
2249 bBlackHole1->draw();
2250 }
2251 if (bBlackHole2->getIndexZ() == z) {
2252 bBlackHole2->draw();
2253 }
2254 if (bTrap->getIndexZ() == z) {
2255 bTrap->draw();
2256 }
2257 if (bKey->getIndexZ() == z) {
2258 bKey->draw();
2259 }
2260 if (bDoorKey->getIndexZ() == z) {
2261 bDoorKey->draw();
2262 }
2263 if (bEat->getIndexZ() == z) {
2264 bEat->draw();
2265 }
2266 if (bWallRight->getIndexZ() == z) {
2267 bWallRight->draw();
2268 }
2269 if (bWallBottom->getIndexZ() == z) {
2270 bWallBottom->draw();
2271 }
2272 if (bDoor->getIndexZ() == z) {
2273 bDoor->draw();
2274 }
2275 if (typeBoard->getIndexZ() == z) {
2276 typeBoard->draw();
2277 }
2278 if (typeFloor->getIndexZ() == z) {
2279 typeFloor->draw();
2280 }
2281 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2282 if (colorWall->getIndexZ() == z) {
2283 colorWall->draw();
2284 }
2285 if (typeWallScenary->getIndexZ() == z) {
2286 typeWallScenary->draw();
2287 }
2288 } else {
2289 if (typeTerrain->getIndexZ() == z) {
2290 typeTerrain->draw();
2291 }
2292 }
2293 if (typeWall->getIndexZ() == z) {
2294 typeWall->draw();
2295 }
2296 if (nTilesClosed->getIndexZ() == z) {
2297 nTilesClosed->draw();
2298 }
2299 if (typeTiled->getIndexZ() == z) {
2300 typeTiled->draw();
2301 }
2302 if (typePavement->getIndexZ() == z) {
2303 typePavement->draw();
2304 }
2305 if (bEditInfo->getIndexZ() == z) {
2306 bEditInfo->draw();
2307 }
2308 if (bAddObject->getIndexZ() == z) {
2309 bAddObject->draw();
2310 }
2311 if (bSave->getIndexZ() == z) {
2312 bSave->draw();
2313 }
2314 if (bRules->getIndexZ() == z) {
2315 bRules->draw();
2316 }
2317 if (bClean->getIndexZ() == z) {
2318 bClean->draw();
2319 }
2320 if (bHelp->getIndexZ() == z) {
2321 bHelp->draw();
2322 }
2323 if (menuTown->getIndexZ() == z) {
2324 menuTown->draw();
2325 }
2326 if (menuText->getIndexZ() == z) {
2327 menuText->draw();
2328 }
2329 if (bQuit->getIndexZ() == z) {
2330 bQuit->draw();
2331 }
2332 }
2333
verifyClickElements_Main()2334 void SceneEditGame::verifyClickElements_Main() {
2335 if (bNimuh->isOnMouseOver()) {
2336 bNimuh->setActive(true);
2337 EditBoard::GetInstance()->changeGhost();
2338 }
2339 if (bEnemy1->isOnMouseOver()) {
2340 bEnemy1->setActive(true);
2341 EditBoard::GetInstance()->changeGhost();
2342 }
2343 if (bEnemy2->isOnMouseOver()) {
2344 bEnemy2->setActive(true);
2345 EditBoard::GetInstance()->changeGhost();
2346 }
2347 if (bEnemy3->isOnMouseOver()) {
2348 bEnemy3->setActive(true);
2349 EditBoard::GetInstance()->changeGhost();
2350 }
2351 if (bBlackHole1->isOnMouseOver()) {
2352 bBlackHole1->setActive(true);
2353 EditBoard::GetInstance()->changeGhost();
2354 }
2355 if (bBlackHole2->isOnMouseOver()) {
2356 bBlackHole2->setActive(true);
2357 EditBoard::GetInstance()->changeGhost();
2358 }
2359 if (bTrap->isOnMouseOver()) {
2360 bTrap->setActive(true);
2361 EditBoard::GetInstance()->changeGhost();
2362 }
2363 if (bKey->isOnMouseOver()) {
2364 bKey->setActive(true);
2365 EditBoard::GetInstance()->changeGhost();
2366 }
2367 if (bDoorKey->isOnMouseOver()) {
2368 bDoorKey->setActive(true);
2369 EditBoard::GetInstance()->changeGhost();
2370 }
2371 if (bEat->isOnMouseOver()) {
2372 bEat->setActive(true);
2373 EditBoard::GetInstance()->changeGhost();
2374 }
2375 if (bWallRight->isOnMouseOver()) {
2376 bWallRight->setActive(true);
2377 EditBoard::GetInstance()->changeGhost();
2378 }
2379 if (bWallBottom->isOnMouseOver()) {
2380 bWallBottom->setActive(true);
2381 EditBoard::GetInstance()->changeGhost();
2382 }
2383 if (bDoor->isOnMouseOver()) {
2384 bDoor->setActive(true);
2385 EditBoard::GetInstance()->changeGhost();
2386 }
2387 if (typeBoard->isOnMouseOver()) {
2388 if (typeBoard->getOverBottom()==LEFT) {
2389 typeBoard->previousFrame();
2390 }
2391 if (typeBoard->getOverBottom()==RIGHT) {
2392 typeBoard->nextFrame();
2393 }
2394 typeBoard->OnClick(this, typeBoard);
2395 }
2396 if (typeFloor->isOnMouseOver()) {
2397 if (typeFloor->getSensitive()) {
2398 if (typeFloor->getOverBottom()==LEFT) {
2399 typeFloor->previousFrame();
2400 }
2401 if (typeFloor->getOverBottom()==RIGHT) {
2402 typeFloor->nextFrame();
2403 }
2404 typeFloor->OnClick(this, typeFloor);
2405 } else {
2406 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2407 }
2408 }
2409 if (typePavement->isOnMouseOver()) {
2410 if (typePavement->getSensitive()) {
2411 if (typePavement->getOverBottom()==LEFT) {
2412 typePavement->previousFrame();
2413 }
2414 if (typePavement->getOverBottom()==RIGHT) {
2415 typePavement->nextFrame();
2416 }
2417 typePavement->OnClick(this, typePavement);
2418 } else {
2419 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2420 }
2421 }
2422 if (typeWall->isOnMouseOver()) {
2423 if (typeWall->getSensitive()) {
2424 if (typeWall->getOverBottom()==LEFT) {
2425 typeWall->previousFrame();
2426 }
2427 if (typeWall->getOverBottom()==RIGHT) {
2428 typeWall->nextFrame();
2429 }
2430 typeWall->OnClick(this, typeWall);
2431 } else {
2432 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2433 }
2434 }
2435 if (typeTiled->isOnMouseOver()) {
2436 if (typeTiled->getSensitive()) {
2437 if (typeTiled->getOverBottom()==LEFT) {
2438 typeTiled->previousFrame();
2439 }
2440 if (typeTiled->getOverBottom()==RIGHT) {
2441 typeTiled->nextFrame();
2442 }
2443 typeTiled->OnClick(this, typeTiled);
2444 } else {
2445 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2446 }
2447 }
2448 if (nTilesClosed->isOnMouseOver()) {
2449 if (nTilesClosed->getOverBottom()==LEFT) {
2450 nTilesClosed->previousFrame();
2451 }
2452 if (nTilesClosed->getOverBottom()==RIGHT) {
2453 nTilesClosed->nextFrame();
2454 }
2455 nTilesClosed->OnClick(this, nTilesClosed);
2456 }
2457 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2458 if (colorWall->isOnMouseOver()) {
2459 if (colorWall->getOverBottom()==LEFT) {
2460 colorWall->previousFrame();
2461 }
2462 if (colorWall->getOverBottom()==RIGHT) {
2463 colorWall->nextFrame();
2464 }
2465 colorWall->OnClick(this, colorWall);
2466 }
2467 if (typeWallScenary->isOnMouseOver()) {
2468 if (typeWallScenary->getSensitive()) {
2469 if (typeWallScenary->getOverBottom()==LEFT) {
2470 typeWallScenary->previousFrame();
2471 }
2472 if (typeWallScenary->getOverBottom()==RIGHT) {
2473 typeWallScenary->nextFrame();
2474 }
2475 typeWallScenary->OnClick(this, typeWallScenary);
2476 } else {
2477 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2478 }
2479 }
2480 } else {
2481 if (typeTerrain->isOnMouseOver()) {
2482 if (typeTerrain->getSensitive()) {
2483 if (typeTerrain->getOverBottom()==LEFT) {
2484 typeTerrain->previousFrame();
2485 }
2486 if (typeTerrain->getOverBottom()==RIGHT) {
2487 typeTerrain->nextFrame();
2488 }
2489 typeTerrain->OnClick(this, typeTerrain);
2490 } else {
2491 showMessageBox(Language::GetInstance()->getText("info"), Language::GetInstance()->getText("component_lock"), SCENE_EDITGAME_MAIN);
2492 }
2493 }
2494 }
2495 if (btHandTray->isOnMouseOver()) {
2496 btHandTray->OnClick(this, btHandTray);
2497 }
2498 if (bEditInfo->isOnMouseOver()) {
2499 bEditInfo->OnClick(this, bEditInfo);
2500 }
2501 if (bSave->isOnMouseOver()) {
2502 bSave->OnClick(this, bSave);
2503 }
2504 if (bAddObject->isOnMouseOver()) {
2505 bAddObject->OnClick(this, bAddObject);
2506 }
2507 if (bRules->isOnMouseOver()) {
2508 bRules->OnClick(this, bRules);
2509 }
2510 if (bClean->isOnMouseOver()) {
2511 bClean->OnClick(this, bClean);
2512 }
2513 if (bHelp->isOnMouseOver()) {
2514 bHelp->OnClick(this, bHelp);
2515 }
2516 if (bQuit->isOnMouseOver()) {
2517 bQuit->OnClick(this, bQuit);
2518 }
2519 EditBoard::GetInstance()->verifyClickOnBoard();
2520 }
2521
verifyOverElements_Main()2522 void SceneEditGame::verifyOverElements_Main() {
2523
2524 bool canHideText = true;
2525
2526 if (bEditInfo->onOver()) {
2527 if (bEditInfo->isRollOver) {
2528 setTextDisplay(0);
2529 canHideText = false;
2530 } else {
2531 if (canHideText) {
2532 setTextDisplay(-1);
2533 }
2534 }
2535 }
2536
2537 if (bSave->onOver()) {
2538 if (bSave->isRollOver) {
2539 setTextDisplay(1);
2540 canHideText = false;
2541 } else {
2542 if (canHideText) {
2543 setTextDisplay(-1);
2544 }
2545 }
2546 }
2547
2548 if (bRules->onOver()) {
2549 if (bRules->isRollOver) {
2550 setTextDisplay(2);
2551 canHideText = false;
2552 } else {
2553 if (canHideText) {
2554 setTextDisplay(-1);
2555 }
2556 }
2557 }
2558
2559 if (bClean->onOver()) {
2560 if (bClean->isRollOver) {
2561 setTextDisplay(8);
2562 canHideText = false;
2563 } else {
2564 if (canHideText) {
2565 setTextDisplay(-1);
2566 }
2567 }
2568 }
2569
2570 if (bHelp->onOver()) {
2571 if (bHelp->isRollOver) {
2572 setTextDisplay(9);
2573 canHideText = false;
2574 } else {
2575 if (canHideText) {
2576 setTextDisplay(-1);
2577 }
2578 }
2579 }
2580
2581 if (bQuit->onOver()) {
2582 if (bQuit->isRollOver) {
2583 setTextDisplay(3);
2584 canHideText = false;
2585 } else {
2586 if (canHideText) {
2587 setTextDisplay(-1);
2588 }
2589 }
2590 }
2591
2592 if (bAddObject->onOver()) {
2593 if (bAddObject->isRollOver) {
2594 setTextDisplay(4);
2595 canHideText = false;
2596 } else {
2597 if (canHideText) {
2598 setTextDisplay(-1);
2599 }
2600 }
2601 }
2602
2603 if (bNimuh->onOver()) {
2604 if (bNimuh->isRollOver) {
2605 setTextDisplay(5);
2606 canHideText = false;
2607 } else {
2608 if (canHideText) {
2609 setTextDisplay(-1);
2610 }
2611 }
2612 }
2613
2614 if (bEnemy1->onOver()) {
2615 if (bEnemy1->isRollOver) {
2616 setTextDisplay(5);
2617 canHideText = false;
2618 } else {
2619 if (canHideText) {
2620 setTextDisplay(-1);
2621 }
2622 }
2623 }
2624
2625 if (bEnemy2->onOver()) {
2626 if (bEnemy2->isRollOver) {
2627 setTextDisplay(5);
2628 canHideText = false;
2629 } else {
2630 if (canHideText) {
2631 setTextDisplay(-1);
2632 }
2633 }
2634 }
2635
2636 if (bEnemy3->onOver()) {
2637 if (bEnemy3->isRollOver) {
2638 setTextDisplay(5);
2639 canHideText = false;
2640 } else {
2641 if (canHideText) {
2642 setTextDisplay(-1);
2643 }
2644 }
2645 }
2646
2647 if (bWallRight->onOver()) {
2648 if (bWallRight->isRollOver) {
2649 setTextDisplay(6);
2650 canHideText = false;
2651 } else {
2652 if (canHideText) {
2653 setTextDisplay(-1);
2654 }
2655 }
2656 }
2657
2658 if (bWallBottom->onOver()) {
2659 if (bWallBottom->isRollOver) {
2660 setTextDisplay(6);
2661 canHideText = false;
2662 } else {
2663 if (canHideText) {
2664 setTextDisplay(-1);
2665 }
2666 }
2667 }
2668
2669 if (bDoor->onOver()) {
2670 if (bDoor->isRollOver) {
2671 setTextDisplay(6);
2672 canHideText = false;
2673 } else {
2674 if (canHideText) {
2675 setTextDisplay(-1);
2676 }
2677 }
2678 }
2679
2680 if (bBlackHole1->onOver()) {
2681 if (bBlackHole1->isRollOver) {
2682 setTextDisplay(6);
2683 canHideText = false;
2684 } else {
2685 if (canHideText) {
2686 setTextDisplay(-1);
2687 }
2688 }
2689 }
2690
2691 if (bBlackHole2->onOver()) {
2692 if (bBlackHole2->isRollOver) {
2693 setTextDisplay(6);
2694 canHideText = false;
2695 } else {
2696 if (canHideText) {
2697 setTextDisplay(-1);
2698 }
2699 }
2700 }
2701
2702 if (bTrap->onOver()) {
2703 if (bTrap->isRollOver) {
2704 setTextDisplay(6);
2705 canHideText = false;
2706 } else {
2707 if (canHideText) {
2708 setTextDisplay(-1);
2709 }
2710 }
2711 }
2712
2713 if (bKey->onOver()) {
2714 if (bKey->isRollOver) {
2715 setTextDisplay(6);
2716 canHideText = false;
2717 } else {
2718 if (canHideText) {
2719 setTextDisplay(-1);
2720 }
2721 }
2722 }
2723
2724 if (bDoorKey->onOver()) {
2725 if (bDoorKey->isRollOver) {
2726 setTextDisplay(6);
2727 canHideText = false;
2728 } else {
2729 if (canHideText) {
2730 setTextDisplay(-1);
2731 }
2732 }
2733 }
2734
2735 if (bEat->onOver()) {
2736 if (bEat->isRollOver) {
2737 setTextDisplay(6);
2738 canHideText = false;
2739 } else {
2740 if (canHideText) {
2741 setTextDisplay(-1);
2742 }
2743 }
2744 }
2745
2746 if (btHandTray->onOver()) {
2747 if (btHandTray->isRollOver) {
2748 setTextDisplay(7);
2749 canHideText = false;
2750 } else {
2751 if (canHideText) {
2752 setTextDisplay(-1);
2753 }
2754 }
2755 }
2756
2757 if (typeBoard->onOver()) {
2758 if (typeBoard->isRollOver) {
2759 setTextDisplay(10);
2760 canHideText = false;
2761 } else {
2762 if (canHideText) {
2763 setTextDisplay(-1);
2764 }
2765 }
2766 }
2767
2768 if (typeFloor->onOver()) {
2769 if (typeFloor->isRollOver) {
2770 setTextDisplay(11);
2771 canHideText = false;
2772 } else {
2773 if (canHideText) {
2774 setTextDisplay(-1);
2775 }
2776 }
2777 }
2778
2779 if (typeWall->onOver()) {
2780 if (typeWall->isRollOver) {
2781 setTextDisplay(12);
2782 canHideText = false;
2783 } else {
2784 if (canHideText) {
2785 setTextDisplay(-1);
2786 }
2787 }
2788 }
2789
2790 if (typePavement->onOver()) {
2791 if (typePavement->isRollOver) {
2792 setTextDisplay(13);
2793 canHideText = false;
2794 } else {
2795 if (canHideText) {
2796 setTextDisplay(-1);
2797 }
2798 }
2799 }
2800
2801 if (typeTiled->onOver()) {
2802 if (typeTiled->isRollOver) {
2803 setTextDisplay(14);
2804 canHideText = false;
2805 } else {
2806 if (canHideText) {
2807 setTextDisplay(-1);
2808 }
2809 }
2810 }
2811
2812 if (nTilesClosed->onOver()) {
2813 if (nTilesClosed->isRollOver) {
2814 setTextDisplay(15);
2815 canHideText = false;
2816 } else {
2817 if (canHideText) {
2818 setTextDisplay(-1);
2819 }
2820 }
2821 }
2822
2823 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2824 if (typeWallScenary->onOver()) {
2825 if (typeWallScenary->isRollOver) {
2826 setTextDisplay(18);
2827 canHideText = false;
2828 } else {
2829 if (canHideText) {
2830 setTextDisplay(-1);
2831 }
2832 }
2833 }
2834 if (colorWall->onOver()) {
2835 if (colorWall->isRollOver) {
2836 setTextDisplay(16);
2837 canHideText = false;
2838 } else {
2839 if (canHideText) {
2840 setTextDisplay(-1);
2841 }
2842 }
2843 }
2844 } else {
2845 if (typeTerrain->onOver()) {
2846 if (typeTerrain->isRollOver) {
2847 setTextDisplay(17);
2848 canHideText = false;
2849 } else {
2850 if (canHideText) {
2851 setTextDisplay(-1);
2852 }
2853 }
2854 }
2855 }
2856
2857 EditBoard::GetInstance()->verifyMouseOnBoard();
2858 }
2859
2860 /**********************
2861 DRAWSCENE ADDOBJECT
2862 **********************/
2863
drawSceneAddObject()2864 void SceneEditGame::drawSceneAddObject () {
2865
2866 verifyOverElements_AddObject();
2867 elmImgSave[0]->draw();
2868
2869 for (int i=0; i<MAX_INDEXZ; i++) {
2870 drawSceneAddObjectByIndexZ(i);
2871 }
2872
2873 }
2874
drawSceneAddObjectByIndexZ(int z)2875 void SceneEditGame::drawSceneAddObjectByIndexZ(int z) {
2876
2877 if (blueLine->getIndexZ() == z) {
2878 blueLine->draw();
2879 }
2880
2881 if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_GAME) {
2882 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
2883 if (rbTypeClosedWindows->getIndexZ() == z) {
2884 rbTypeClosedWindows->draw();
2885 }
2886 if (rbTypeClosedDoors->getIndexZ() == z) {
2887 rbTypeClosedDoors->draw();
2888 }
2889 if (rbTypeClosedLights->getIndexZ() == z) {
2890 rbTypeClosedLights->draw();
2891 }
2892 if (rbTypeClosedElements->getIndexZ() == z) {
2893 rbTypeClosedElements->draw();
2894 }
2895 if (rbTypeClosedDecorative->getIndexZ() == z) {
2896 rbTypeClosedDecorative->draw();
2897 }
2898 } else {
2899 if (rbTypeOpenedNature->getIndexZ() == z) {
2900 rbTypeOpenedNature->draw();
2901 }
2902 if (rbTypeOpenedBeach->getIndexZ() == z) {
2903 rbTypeOpenedBeach->draw();
2904 }
2905 if (rbTypeOpenedBench->getIndexZ() == z) {
2906 rbTypeOpenedBench->draw();
2907 }
2908 if (rbTypeOpenedConstruction->getIndexZ() == z) {
2909 rbTypeOpenedConstruction->draw();
2910 }
2911 if (rbTypeOpenedElements->getIndexZ() == z) {
2912 rbTypeOpenedElements->draw();
2913 }
2914 }
2915 if (objectsGame->getIndexZ() == z) {
2916 objectsGame->draw();
2917 }
2918 if (bgArrow->getIndexZ() == z) {
2919 bgArrow->setXY(727, 140);
2920 bgArrow->draw();
2921 bgArrow->setXY(727, 497);
2922 bgArrow->draw();
2923 }
2924 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_PERSONAL) {
2925 if (objectsPersonal->getIndexZ() == z) {
2926 objectsPersonal->draw();
2927 }
2928
2929 if (rad2d->getIndexZ() == z) {
2930 rad2d->draw();
2931 }
2932
2933 if (rad3d->getIndexZ() == z) {
2934 rad3d->draw();
2935 }
2936
2937 if (infoObjectsPersonal->getIndexZ() == z) {
2938 infoObjectsPersonal->draw();
2939 }
2940
2941
2942 if (bgArrow->getIndexZ() == z) {
2943 bgArrow->setXY(727, 180);
2944 bgArrow->draw();
2945 bgArrow->setXY(727, 426);
2946 bgArrow->draw();
2947 }
2948
2949 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_TEXT) {
2950 if (titleTypeTextsInWall->getIndexZ() == z) {
2951 titleTypeTextsInWall->draw();
2952 }
2953 if (typeTextsInWall->getIndexZ() == z) {
2954 typeTextsInWall->draw();
2955 }
2956 if (colorTextsInWall->getIndexZ() == z) {
2957 colorTextsInWall->draw();
2958 }
2959 if (taText->getIndexZ() == z) {
2960 taText->draw();
2961 }
2962 if (radAlignLeftText->getIndexZ() == z) {
2963 radAlignLeftText->draw();
2964 }
2965 if (radAlignCenterText->getIndexZ() == z) {
2966 radAlignCenterText->draw();
2967 }
2968 if (radAlignRightText->getIndexZ() == z) {
2969 radAlignRightText->draw();
2970 }
2971 if (bInsertText->getIndexZ() == z) {
2972 bInsertText->draw();
2973 }
2974 }
2975
2976 if (bgButton->getIndexZ() == z) {
2977 bgButton->draw();
2978 }
2979
2980 if (bObjectsPersonal->getIndexZ() == z) {
2981 bObjectsPersonal->draw();
2982 }
2983
2984 if (bObjectsGame->getIndexZ() == z) {
2985 bObjectsGame->draw();
2986 }
2987
2988 if (bObjectsTexts->getIndexZ() == z) {
2989 bObjectsTexts->draw();
2990 }
2991
2992 if (bCancelObjects->getIndexZ() == z) {
2993 bCancelObjects->draw();
2994 }
2995
2996 }
2997
verifyClickElements_AddObject()2998 void SceneEditGame::verifyClickElements_AddObject() {
2999
3000 if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_GAME) {
3001
3002 if (EditBoard::GetInstance()->getScenary()->getType()==SCENARY_CLOSED) {
3003 if (rbTypeClosedWindows->isOnMouseOver()) {
3004 rbTypeClosedWindows->setActive(true);
3005 objectsGame->setCategory("windows");
3006 }
3007 if (rbTypeClosedDoors->isOnMouseOver()) {
3008 rbTypeClosedDoors->setActive(true);
3009 objectsGame->setCategory("doors");
3010 }
3011 if (rbTypeClosedLights->isOnMouseOver()) {
3012 rbTypeClosedLights->setActive(true);
3013 objectsGame->setCategory("lights");
3014 }
3015 if (rbTypeClosedElements->isOnMouseOver()) {
3016 rbTypeClosedElements->setActive(true);
3017 objectsGame->setCategory("elements");
3018 }
3019 if (rbTypeClosedDecorative->isOnMouseOver()) {
3020 rbTypeClosedDecorative->setActive(true);
3021 objectsGame->setCategory("decorative");
3022 }
3023 } else {
3024 if (rbTypeOpenedNature->isOnMouseOver()) {
3025 rbTypeOpenedNature->setActive(true);
3026 objectsGame->setCategory("nature");
3027 }
3028 if (rbTypeOpenedBeach->isOnMouseOver()) {
3029 rbTypeOpenedBeach->setActive(true);
3030 objectsGame->setCategory("beach");
3031 }
3032 if (rbTypeOpenedBench->isOnMouseOver()) {
3033 rbTypeOpenedBench->setActive(true);
3034 objectsGame->setCategory("benchs");
3035 }
3036 if (rbTypeOpenedConstruction->isOnMouseOver()) {
3037 rbTypeOpenedConstruction->setActive(true);
3038 objectsGame->setCategory("construction");
3039 }
3040 if (rbTypeOpenedElements->isOnMouseOver()) {
3041 rbTypeOpenedElements->setActive(true);
3042 objectsGame->setCategory("elements");
3043 }
3044 }
3045
3046 objectsGame->MoveFirst();
3047
3048 while (!objectsGame->isEOF()) {
3049 if ( (objectsGame->getData()->isOnMouseOver())
3050 && (objectsGame->getData()->isVisible()) ) {
3051 objectsGame->getData()->OnClick(this, objectsGame->getData());
3052 }
3053 objectsGame->MoveNext();
3054 }
3055
3056 objectsGame->verifyClickButtons();
3057 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_PERSONAL) {
3058
3059 if (rad2d->isOnMouseOver()) {
3060 rad2d->setActive(true);
3061 }
3062
3063 if (rad3d->isOnMouseOver()) {
3064 rad3d->setActive(true);
3065 }
3066
3067 objectsPersonal->MoveFirst();
3068
3069 while (!objectsPersonal->isEOF()) {
3070 if ( (objectsPersonal->getData()->isOnMouseOver())
3071 && (objectsPersonal->getData()->isVisible()) ) {
3072 objectsPersonal->getData()->OnClick(this, objectsPersonal->getData());
3073 }
3074 objectsPersonal->MoveNext();
3075 }
3076
3077 objectsPersonal->verifyClickButtons();
3078 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_TEXT) {
3079 if (typeTextsInWall->isOnMouseOver()) {
3080 if (typeTextsInWall->getOverBottom()==LEFT) {
3081 typeTextsInWall->previousFrame();
3082 }
3083 if (typeTextsInWall->getOverBottom()==RIGHT) {
3084 typeTextsInWall->nextFrame();
3085 }
3086 }
3087 if (colorTextsInWall->isOnMouseOver()) {
3088 if (colorTextsInWall->getOverBottom()==LEFT) {
3089 colorTextsInWall->previousFrame();
3090 }
3091 if (colorTextsInWall->getOverBottom()==RIGHT) {
3092 colorTextsInWall->nextFrame();
3093 }
3094 }
3095 if (bInsertText->isOnMouseOver()) {
3096 bInsertText->OnClick(this, bInsertText);
3097 }
3098 if (radAlignLeftText->isOnMouseOver()) {
3099 radAlignLeftText->setActive(true);
3100 }
3101 if (radAlignCenterText->isOnMouseOver()) {
3102 radAlignCenterText->setActive(true);
3103 }
3104 if (radAlignRightText->isOnMouseOver()) {
3105 radAlignRightText->setActive(true);
3106 }
3107 }
3108
3109 if (bObjectsPersonal->isOnMouseOver()) {
3110 bObjectsPersonal->OnClick(this, bObjectsPersonal);
3111 }
3112
3113 if (bObjectsGame->isOnMouseOver()) {
3114 bObjectsGame->OnClick(this, bObjectsGame);
3115 }
3116
3117 if (bObjectsTexts->isOnMouseOver()) {
3118 bObjectsTexts->OnClick(this, bObjectsTexts);
3119 }
3120
3121 if (bCancelObjects->isOnMouseOver()) {
3122 bCancelObjects->OnClick(this, bCancelObjects);
3123 }
3124 }
3125
3126
verifyOverElements_AddObject()3127 void SceneEditGame::verifyOverElements_AddObject() {
3128 if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_GAME) {
3129 objectsGame->onOver();
3130 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_PERSONAL) {
3131 objectsPersonal->onOver();
3132 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_TEXT) {
3133 bInsertText->onOver();
3134 }
3135 bObjectsGame->onOver();
3136 bObjectsPersonal->onOver();
3137 bCancelObjects->onOver();
3138 }
3139
3140 /**********************
3141 DRAWSCENE EDITFOOD
3142 **********************/
3143
drawSceneEditFood()3144 void SceneEditGame::drawSceneEditFood () {
3145
3146 verifyOverElements_EditFood();
3147 elmImgSave[0]->draw();
3148
3149 for (int i=0; i<MAX_INDEXZ; i++) {
3150 drawSceneEditFoodByIndexZ(i);
3151 }
3152
3153 }
3154
drawSceneEditFoodByIndexZ(int z)3155 void SceneEditGame::drawSceneEditFoodByIndexZ(int z) {
3156 if (frameUp->getIndexZ() == z) {
3157 frameUp->draw();
3158 }
3159 if (frameDown->getIndexZ() == z) {
3160 frameDown->draw();
3161 }
3162 if (bgBox->getIndexZ() == z) {
3163 bgBox->draw();
3164 }
3165
3166 if (EditBoard::GetInstance()->multiLanguage) {
3167 if (multiLanguageNoSupport->getIndexZ() == z) {
3168 multiLanguageNoSupport->draw();
3169 }
3170 } else {
3171 if (infoImageFood->getIndexZ() == z) {
3172 infoImageFood->draw();
3173 }
3174 if (titleFood->getIndexZ() == z) {
3175 titleFood->draw();
3176 }
3177 if (textFood->getIndexZ() == z) {
3178 textFood->draw();
3179 }
3180 }
3181 if (bAccept->getIndexZ() == z) {
3182 bAccept->draw();
3183 }
3184 if (bCancel->getIndexZ() == z) {
3185 bCancel->draw();
3186 }
3187 }
3188
verifyClickElements_EditFood()3189 void SceneEditGame::verifyClickElements_EditFood() {
3190 if (bAccept->isOnMouseOver()) {
3191 bAccept->OnClick(this, bAccept);
3192 }
3193 if (bCancel->isOnMouseOver()) {
3194 bCancel->OnClick(this, bCancel);
3195 }
3196 if (titleFood->isOnMouseOver()) {
3197 titleFood->setActive(true);
3198 }
3199 if (textFood->isOnMouseOver()) {
3200 textFood->setActive(true);
3201 }
3202 }
3203
3204
verifyOverElements_EditFood()3205 void SceneEditGame::verifyOverElements_EditFood() {
3206 bAccept->onOver();
3207 bCancel->onOver();
3208 titleFood->onOver();
3209 textFood->onOver();
3210 }
3211
3212 /**********************
3213 DRAWSCENE EDITINFO
3214 **********************/
3215
drawSceneEditInfo()3216 void SceneEditGame::drawSceneEditInfo () {
3217
3218 verifyOverElements_EditInfo();
3219 elmImgSave[0]->draw();
3220
3221 for (int i=0; i<MAX_INDEXZ; i++) {
3222 drawSceneEditInfoByIndexZ(i);
3223 }
3224
3225 }
3226
drawSceneEditInfoByIndexZ(int z)3227 void SceneEditGame::drawSceneEditInfoByIndexZ(int z) {
3228 if (frameUp->getIndexZ() == z) {
3229 frameUp->draw();
3230 }
3231 if (frameDown->getIndexZ() == z) {
3232 frameDown->draw();
3233 }
3234 if (bgBox->getIndexZ() == z) {
3235 bgBox->draw();
3236 }
3237
3238 if (bInfoMain->getIndexZ() == z) {
3239 bInfoMain->draw();
3240 }
3241 if (bInfoData->getIndexZ() == z) {
3242 bInfoData->draw();
3243 }
3244 if (bInfoMusic->getIndexZ() == z) {
3245 bInfoMusic->draw();
3246 }
3247
3248 switch (pageEditInfo) {
3249 case SCENE_EDITGAME_EDITINFO_MAIN:
3250 if (levelName->getIndexZ() == z) {
3251 levelName->draw();
3252 }
3253 if (provinceName->getIndexZ() == z) {
3254 provinceName->draw();
3255 }
3256 if (missionName->getIndexZ() == z) {
3257 missionName->draw();
3258 }
3259 if (nameAuthor->getIndexZ() == z) {
3260 nameAuthor->draw();
3261 }
3262 break;
3263 case SCENE_EDITGAME_EDITINFO_DATA:
3264 if (EditBoard::GetInstance()->multiLanguage) {
3265 if (multiLanguageNoSupport->getIndexZ() == z) {
3266 multiLanguageNoSupport->draw();
3267 }
3268 } else {
3269 if (dataInfo->getNItems()<=0) {
3270 if (noExistInfoTown->getIndexZ() == z) {
3271 noExistInfoTown->draw();
3272 }
3273 } else {
3274 if (dataInfo->getIndexZ() == z) {
3275 dataInfo->draw();
3276 }
3277 }
3278 if (bAddInfo->getIndexZ() == z) {
3279 bAddInfo->draw();
3280 }
3281
3282 }
3283 break;
3284 case SCENE_EDITGAME_EDITINFO_MUSIC:
3285 if (radMusic0->getIndexZ() == z) {
3286 radMusic0->draw();
3287 }
3288 if (radMusic1->getIndexZ() == z) {
3289 radMusic1->draw();
3290 }
3291 if (radMusic2->getIndexZ() == z) {
3292 radMusic2->draw();
3293 }
3294 if (radMusic3->getIndexZ() == z) {
3295 radMusic3->draw();
3296 }
3297 break;
3298 }
3299
3300 if (bAccept->getIndexZ() == z) {
3301 bAccept->draw();
3302 }
3303 if (bCancel->getIndexZ() == z) {
3304 bCancel->draw();
3305 }
3306 }
3307
verifyClickElements_EditInfo()3308 void SceneEditGame::verifyClickElements_EditInfo() {
3309 if (bAccept->isOnMouseOver()) {
3310 bAccept->OnClick(this, bAccept);
3311 }
3312 if (bCancel->isOnMouseOver()) {
3313 bCancel->OnClick(this, bCancel);
3314 }
3315 if (bInfoMain->isOnMouseOver()) {
3316 bInfoMain->OnClick(this, bInfoMain);
3317 }
3318 if (bInfoData->isOnMouseOver()) {
3319 bInfoData->OnClick(this, bInfoData);
3320 }
3321 if (bInfoMusic->isOnMouseOver()) {
3322 bInfoMusic->OnClick(this, bInfoMusic);
3323 }
3324 switch (pageEditInfo) {
3325 case SCENE_EDITGAME_EDITINFO_MAIN:
3326 if (missionName->isOnMouseOver()) {
3327 missionName->setActive(true);
3328 }
3329 if (nameAuthor->isOnMouseOver()) {
3330 nameAuthor->setActive(true);
3331 }
3332 if (levelName->isOnMouseOver()) {
3333 levelName->setActive(true);
3334 }
3335 if (provinceName->isOnMouseOver()) {
3336 provinceName->setActive(true);
3337 }
3338 break;
3339 case SCENE_EDITGAME_EDITINFO_DATA:
3340 if (!EditBoard::GetInstance()->multiLanguage) {
3341 if (dataInfo->getNItems()>0) {
3342 dataInfo->MoveFirst();
3343 while (!dataInfo->isEOF()) {
3344 if (dataInfo->isVisible()) {
3345 InfoButton *bu = (InfoButton*)dataInfo->getData();
3346 bu->verifyClick(this);
3347 }
3348 dataInfo->MoveNext();
3349 }
3350 }
3351 if (bAddInfo->isOnMouseOver()) {
3352 bAddInfo->OnClick(this, bAddInfo);
3353 }
3354 }
3355 break;
3356 case SCENE_EDITGAME_EDITINFO_MUSIC:
3357 if (radMusic0->isOnMouseOver()) {
3358 radMusic0->setActive(true);
3359 }
3360 if (radMusic1->isOnMouseOver()) {
3361 radMusic1->setActive(true);
3362 }
3363 if (radMusic2->isOnMouseOver()) {
3364 radMusic2->setActive(true);
3365 }
3366 if (radMusic3->isOnMouseOver()) {
3367 radMusic3->setActive(true);
3368 }
3369 break;
3370 }
3371 }
3372
3373
verifyOverElements_EditInfo()3374 void SceneEditGame::verifyOverElements_EditInfo() {
3375
3376 bAccept->onOver();
3377 bCancel->onOver();
3378 bInfoMain->onOver();
3379 bInfoData->onOver();
3380 bInfoMusic->onOver();
3381 switch (pageEditInfo) {
3382 case SCENE_EDITGAME_EDITINFO_MAIN:
3383 levelName->onOver();
3384 provinceName->onOver();
3385 missionName->onOver();
3386 nameAuthor->onOver();
3387 break;
3388 case SCENE_EDITGAME_EDITINFO_DATA:
3389 if ( (!EditBoard::GetInstance()->multiLanguage) && (dataInfo->getNItems()>0) ) {
3390 dataInfo->MoveFirst();
3391 while (!dataInfo->isEOF()) {
3392 if (dataInfo->isVisible()) {
3393 InfoButton *bu = (InfoButton*)dataInfo->getData();
3394 bu->onOver();
3395 }
3396 dataInfo->MoveNext();
3397 }
3398 }
3399 bAddInfo->onOver();
3400 break;
3401 }
3402 }
3403
3404 /**********************
3405 DRAWSCENE CLEAN
3406 **********************/
3407
drawSceneClean()3408 void SceneEditGame::drawSceneClean () {
3409
3410 verifyOverElements_Clean();
3411 elmImgSave[0]->draw();
3412
3413 for (int i=0; i<MAX_INDEXZ; i++) {
3414 drawSceneCleanByIndexZ(i);
3415 }
3416
3417 }
3418
drawSceneCleanByIndexZ(int z)3419 void SceneEditGame::drawSceneCleanByIndexZ(int z) {
3420 if (frameUp->getIndexZ() == z) {
3421 frameUp->draw();
3422 }
3423 if (frameDown->getIndexZ() == z) {
3424 frameDown->draw();
3425 }
3426 if (middleBox->getIndexZ() == z) {
3427 middleBox->draw();
3428 }
3429 if (bCleanScenary->getIndexZ() == z) {
3430 bCleanScenary->draw();
3431 }
3432 if (bCleanBoard->getIndexZ() == z) {
3433 bCleanBoard->draw();
3434 }
3435 if (bCleanReset->getIndexZ() == z) {
3436 bCleanReset->draw();
3437 }
3438 if (bAccept->getIndexZ() == z) {
3439 bAccept->draw();
3440 }
3441 if (bCancel->getIndexZ() == z) {
3442 bCancel->draw();
3443 }
3444 }
3445
verifyClickElements_Clean()3446 void SceneEditGame::verifyClickElements_Clean() {
3447 if (bAccept->isOnMouseOver()) {
3448 bAccept->OnClick(this, bAccept);
3449 }
3450 if (bCancel->isOnMouseOver()) {
3451 bCancel->OnClick(this, bCancel);
3452 }
3453 if (bCleanScenary->isOnMouseOver()) {
3454 bCleanScenary->OnClick(this, bCleanScenary);
3455 }
3456 if (bCleanBoard->isOnMouseOver()) {
3457 bCleanBoard->OnClick(this, bCleanBoard);
3458 }
3459 if (bCleanReset->isOnMouseOver()) {
3460 bCleanReset->OnClick(this, bCleanReset);
3461 }
3462 }
3463
3464
verifyOverElements_Clean()3465 void SceneEditGame::verifyOverElements_Clean() {
3466 bAccept->onOver();
3467 bCancel->onOver();
3468 bCleanScenary->onOver();
3469 bCleanBoard->onOver();
3470 bCleanReset->onOver();
3471 }
3472
3473 /**********************
3474 DRAWSCENE ADDINFOTOWN
3475 **********************/
3476
drawSceneAddInfoTown()3477 void SceneEditGame::drawSceneAddInfoTown () {
3478
3479 verifyOverElements_Help();
3480 elmImgSave[1]->draw();
3481
3482 for (int i=0; i<MAX_INDEXZ; i++) {
3483 drawSceneAddInfoTownByIndexZ(i);
3484 }
3485
3486 }
3487
drawSceneAddInfoTownByIndexZ(int z)3488 void SceneEditGame::drawSceneAddInfoTownByIndexZ(int z) {
3489 if (frameUp->getIndexZ() == z) {
3490 frameUp->draw();
3491 }
3492 if (frameDown->getIndexZ() == z) {
3493 frameDown->draw();
3494 }
3495 if (bgBox->getIndexZ() == z) {
3496 bgBox->draw();
3497 }
3498 if (typeButtonInfoTown->getIndexZ() == z) {
3499 typeButtonInfoTown->draw();
3500 }
3501 if (eTitleInfoTown->getIndexZ() == z) {
3502 eTitleInfoTown->draw();
3503 }
3504 if (taInfoTown->getIndexZ() == z) {
3505 taInfoTown->draw();
3506 }
3507 if (bAccept->getIndexZ() == z) {
3508 bAccept->draw();
3509 }
3510 if (bCancel->getIndexZ() == z) {
3511 bCancel->draw();
3512 }
3513 }
3514
verifyClickElements_AddInfoTown()3515 void SceneEditGame::verifyClickElements_AddInfoTown() {
3516 if (bAccept->isOnMouseOver()) {
3517 bAccept->OnClick(this, bAccept);
3518 }
3519 if (bCancel->isOnMouseOver()) {
3520 bCancel->OnClick(this, bCancel);
3521 }
3522 if (eTitleInfoTown->isOnMouseOver()) {
3523 eTitleInfoTown->setActive(true);
3524 }
3525 if (taInfoTown->isOnMouseOver()) {
3526 taInfoTown->setActive(true);
3527 }
3528 if (typeButtonInfoTown->isOnMouseOver()) {
3529 if (typeButtonInfoTown->getOverBottom()==LEFT) {
3530 typeButtonInfoTown->previousFrame();
3531 }
3532 if (typeButtonInfoTown->getOverBottom()==RIGHT) {
3533 typeButtonInfoTown->nextFrame();
3534 }
3535 }
3536 }
3537
3538
verifyOverElements_AddInfoTown()3539 void SceneEditGame::verifyOverElements_AddInfoTown() {
3540 bAccept->onOver();
3541 bCancel->onOver();
3542 }
3543
3544 /**********************
3545 DRAWSCENE HELP
3546 **********************/
3547
drawSceneHelp()3548 void SceneEditGame::drawSceneHelp () {
3549
3550 verifyOverElements_Help();
3551 elmImgSave[0]->draw();
3552
3553 for (int i=0; i<MAX_INDEXZ; i++) {
3554 drawSceneHelpByIndexZ(i);
3555 }
3556
3557 }
3558
drawSceneHelpByIndexZ(int z)3559 void SceneEditGame::drawSceneHelpByIndexZ(int z) {
3560 if (frameUp->getIndexZ() == z) {
3561 frameUp->draw();
3562 }
3563 if (frameDown->getIndexZ() == z) {
3564 frameDown->draw();
3565 }
3566 if (bgHelp->getIndexZ() == z) {
3567 bgHelp->draw();
3568 }
3569
3570 if (nElmHelp==-1) {
3571 if (titleIndex->getIndexZ() == z) {
3572 titleIndex->draw();
3573 }
3574 if (bHelp1->getIndexZ() == z) {
3575 bHelp1->draw();
3576 }
3577 if (bHelp2->getIndexZ() == z) {
3578 bHelp2->draw();
3579 }
3580 if (bHelp3->getIndexZ() == z) {
3581 bHelp3->draw();
3582 }
3583 if (bHelp4->getIndexZ() == z) {
3584 bHelp4->draw();
3585 }
3586 if (bHelp5->getIndexZ() == z) {
3587 bHelp5->draw();
3588 }
3589 if (bHelp6->getIndexZ() == z) {
3590 bHelp6->draw();
3591 }
3592 if (bHelp7->getIndexZ() == z) {
3593 bHelp7->draw();
3594 }
3595 if (bHelp8->getIndexZ() == z) {
3596 bHelp8->draw();
3597 }
3598 } else {
3599 if (elmHelp->getIndexZ() == z) {
3600 elmHelp->draw();
3601 }
3602 }
3603
3604 if (bIndex->getIndexZ() == z) {
3605 bIndex->draw();
3606 }
3607 if (bPrevious->getIndexZ() == z) {
3608 bPrevious->draw();
3609 }
3610 if (bNext->getIndexZ() == z) {
3611 bNext->draw();
3612 }
3613 if (bCancel->getIndexZ() == z) {
3614 bCancel->draw();
3615 }
3616 }
3617
verifyClickElements_Help()3618 void SceneEditGame::verifyClickElements_Help() {
3619 if (bIndex->isOnMouseOver()) {
3620 bIndex->OnClick(this, bIndex);
3621 }
3622 if (bPrevious->isOnMouseOver()) {
3623 bPrevious->OnClick(this, bPrevious);
3624 }
3625 if (bNext->isOnMouseOver()) {
3626 bNext->OnClick(this, bNext);
3627 }
3628 if (bCancel->isOnMouseOver()) {
3629 bCancel->OnClick(this, bCancel);
3630 }
3631
3632 if (nElmHelp==-1) {
3633 if (bHelp1->isOnMouseOver()) {
3634 bHelp1->OnClick(this, bHelp1);
3635 }
3636 if (bHelp2->isOnMouseOver()) {
3637 bHelp2->OnClick(this, bHelp2);
3638 }
3639 if (bHelp3->isOnMouseOver()) {
3640 bHelp3->OnClick(this, bHelp3);
3641 }
3642 if (bHelp4->isOnMouseOver()) {
3643 bHelp4->OnClick(this, bHelp4);
3644 }
3645 if (bHelp5->isOnMouseOver()) {
3646 bHelp5->OnClick(this, bHelp5);
3647 }
3648 if (bHelp6->isOnMouseOver()) {
3649 bHelp6->OnClick(this, bHelp6);
3650 }
3651 if (bHelp7->isOnMouseOver()) {
3652 bHelp7->OnClick(this, bHelp7);
3653 }
3654 if (bHelp8->isOnMouseOver()) {
3655 bHelp8->OnClick(this, bHelp8);
3656 }
3657 }
3658 }
3659
3660
verifyOverElements_Help()3661 void SceneEditGame::verifyOverElements_Help() {
3662 if (nElmHelp==-1) {
3663 bHelp1->onOver();
3664 bHelp2->onOver();
3665 bHelp3->onOver();
3666 bHelp4->onOver();
3667 bHelp5->onOver();
3668 bHelp6->onOver();
3669 bHelp7->onOver();
3670 bHelp8->onOver();
3671 }
3672 bIndex->onOver();
3673 bPrevious->onOver();
3674 bNext->onOver();
3675 bCancel->onOver();
3676 }
3677
drawScene()3678 bool SceneEditGame::drawScene() {
3679
3680 glClear(GL_COLOR_BUFFER_BIT); // | GL_DEPTH_BUFFER_BIT);
3681 glLoadIdentity();
3682
3683 glEnable(GL_BLEND);
3684 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
3685
3686 drawCommonsScene ();
3687
3688 switch(statusScene) {
3689
3690 case SCENE_EDITGAME_MAIN:
3691
3692 drawSceneMain();
3693
3694 // Comprobando teclas para opciones
3695 { SDL_Event event;
3696 while ( SDL_PollEvent(&event) ) {
3697 if ( event.type == SDL_QUIT ) {
3698 goToScene("quit");
3699 }
3700
3701 if ( event.key.keysym.sym == SDLK_s ) {
3702 saveScreenShot();
3703 }
3704
3705 if ( event.type == SDL_KEYDOWN ) {
3706 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3707 goToScene("menu");
3708 }
3709 }
3710
3711 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3712 if ( event.button.button == SDL_BUTTON_LEFT ) {
3713 verifyClickElements_Main();
3714 }
3715 }
3716
3717 if ( event.type == SDL_MOUSEBUTTONUP ) {
3718 if ( event.button.button == SDL_BUTTON_LEFT ) {
3719 EditBoard::GetInstance()->verifyUnClickOnBoard();
3720 }
3721 if ( event.button.button == SDL_BUTTON_RIGHT ) {
3722 EditBoard::GetInstance()->getScenary()->verifyShowIcons();
3723 }
3724 }
3725
3726 }
3727 }
3728
3729 break;
3730
3731 case SCENE_EDITGAME_ADDOBJECT:
3732
3733 drawSceneAddObject();
3734
3735 // Comprobando teclas para opciones
3736 { SDL_Event event;
3737 while ( SDL_PollEvent(&event) ) {
3738 if ( event.type == SDL_QUIT ) {
3739 goToScene("quit");
3740 }
3741
3742 if ( event.type == SDL_KEYDOWN ) {
3743 switch (pageAddObject) {
3744 case SCENE_EDITGAME_ADDOBJECT_TEXT:
3745 taText->insertTextUnicode(event.key.keysym.sym, event.key.keysym.unicode);
3746 break;
3747 }
3748 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3749 setStatusScene(SCENE_EDITGAME_MAIN);
3750 }
3751 }
3752
3753 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3754 if ( event.button.button == SDL_BUTTON_LEFT ) {
3755 verifyClickElements_AddObject();
3756 }
3757 if ( ( event.button.button == 4 ) ) {
3758 if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_GAME) {
3759 objectsGame->upItems();
3760 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_PERSONAL) {
3761 objectsPersonal->upItems();
3762 }
3763 }
3764 if ( ( event.button.button == 5 ) ) {
3765 if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_GAME) {
3766 objectsGame->downItems();
3767 } else if (pageAddObject == SCENE_EDITGAME_ADDOBJECT_PERSONAL) {
3768 objectsPersonal->downItems();
3769 }
3770 }
3771 }
3772
3773
3774 }
3775 }
3776
3777 break;
3778
3779 case SCENE_EDITGAME_EDITFOOD:
3780
3781 drawSceneEditFood();
3782
3783 // Comprobando teclas para opciones
3784 { SDL_Event event;
3785 while ( SDL_PollEvent(&event) ) {
3786 if ( event.type == SDL_QUIT ) {
3787 goToScene("quit");
3788 }
3789
3790 if ( event.type == SDL_KEYDOWN ) {
3791 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3792 setStatusScene(SCENE_EDITGAME_MAIN);
3793 }
3794 titleFood->insertTextUnicode(event.key.keysym.sym, event.key.keysym.unicode);
3795 }
3796
3797 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3798 if ( event.button.button == SDL_BUTTON_LEFT ) {
3799 verifyClickElements_EditFood();
3800 }
3801 }
3802
3803
3804 }
3805 }
3806
3807 break;
3808
3809 case SCENE_EDITGAME_EDITINFO:
3810
3811 drawSceneEditInfo();
3812
3813 // Comprobando teclas para opciones
3814 { SDL_Event event;
3815 while ( SDL_PollEvent(&event) ) {
3816 if ( event.type == SDL_QUIT ) {
3817 goToScene("quit");
3818 }
3819
3820 if ( event.type == SDL_KEYDOWN ) {
3821 switch (pageEditInfo) {
3822 case SCENE_EDITGAME_EDITINFO_MAIN:
3823 missionName->insertTextUnicode(event.key.keysym.sym, event.key.keysym.unicode);
3824 break;
3825 case SCENE_EDITGAME_EDITINFO_DATA:
3826 taInfoTown->insertTextUnicode(event.key.keysym.sym, event.key.keysym.unicode);
3827 break;
3828 }
3829 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3830 setStatusScene(SCENE_EDITGAME_MAIN);
3831 }
3832 }
3833
3834 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3835 if ( event.button.button == SDL_BUTTON_LEFT ) {
3836 verifyClickElements_EditInfo();
3837 }
3838 }
3839
3840
3841 }
3842 }
3843
3844 break;
3845
3846 case SCENE_EDITGAME_CLEAN:
3847
3848 drawSceneClean();
3849
3850 // Comprobando teclas para opciones
3851 { SDL_Event event;
3852 while ( SDL_PollEvent(&event) ) {
3853 if ( event.type == SDL_QUIT ) {
3854 goToScene("quit");
3855 }
3856
3857 if ( event.type == SDL_KEYDOWN ) {
3858 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3859 setStatusScene(SCENE_EDITGAME_MAIN);
3860 }
3861 }
3862
3863 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3864 if ( event.button.button == SDL_BUTTON_LEFT ) {
3865 verifyClickElements_Clean();
3866 }
3867 }
3868
3869
3870 }
3871 }
3872
3873 break;
3874
3875 case SCENE_EDITGAME_HELP:
3876
3877 drawSceneHelp();
3878
3879 // Comprobando teclas para opciones
3880 { SDL_Event event;
3881 while ( SDL_PollEvent(&event) ) {
3882 if ( event.type == SDL_QUIT ) {
3883 goToScene("quit");
3884 }
3885
3886 if ( event.type == SDL_KEYDOWN ) {
3887 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3888 setStatusScene(SCENE_EDITGAME_MAIN);
3889 }
3890 }
3891
3892 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3893 if ( event.button.button == SDL_BUTTON_LEFT ) {
3894 verifyClickElements_Help();
3895 }
3896 }
3897
3898
3899 }
3900 }
3901
3902 break;
3903
3904 case SCENE_EDITGAME_ADDINFOTOWN:
3905
3906 drawSceneAddInfoTown();
3907
3908 // Comprobando teclas para opciones
3909 { SDL_Event event;
3910 while ( SDL_PollEvent(&event) ) {
3911 if ( event.type == SDL_QUIT ) {
3912 goToScene("quit");
3913 }
3914
3915 if ( event.type == SDL_KEYDOWN ) {
3916 eTitleInfoTown->insertTextUnicode(event.key.keysym.sym, event.key.keysym.unicode);
3917 if ( event.key.keysym.sym == SDLK_ESCAPE ) {
3918 setStatusScene(SCENE_EDITGAME_MAIN);
3919 }
3920 }
3921
3922 if ( event.type == SDL_MOUSEBUTTONDOWN ) {
3923 if ( event.button.button == SDL_BUTTON_LEFT ) {
3924 verifyClickElements_AddInfoTown();
3925 }
3926 }
3927
3928
3929 }
3930 }
3931
3932 break;
3933
3934 }
3935
3936 verifySaveImage();
3937 drawLastElements();
3938
3939 glDisable(GL_BLEND);
3940
3941 SDL_GL_SwapBuffers();
3942
3943 return getQuit();
3944
3945 }
unLoad()3946 void SceneEditGame::unLoad() {
3947
3948 unLoadCommons();
3949
3950 statusScene = SCENE_EDITGAME_MAIN;
3951
3952 EditBoard::GetInstance()->unLoad();
3953
3954 delete multiLanguageNoSupport;
3955
3956 delete vcolorsWall;
3957 delete vcolorsTextInWall;
3958
3959 delete bDoor;
3960 delete bNimuh;
3961 delete bEnemy1;
3962 delete bEnemy2;
3963 delete bEnemy3;
3964 delete bBlackHole1;
3965 delete bBlackHole2;
3966 delete bTrap;
3967 delete bKey;
3968 delete bEat;
3969 delete bDoorKey;
3970 delete bWallRight;
3971 delete bWallBottom;
3972 delete typeWall;
3973 delete typeFloor;
3974 delete typeBoard;
3975 delete typeTiled;
3976 delete typePavement;
3977 delete colorWall;
3978 delete nTilesClosed;
3979 delete typeTerrain;
3980 delete typeWallScenary;
3981 delete bEditInfo;
3982 delete bSave;
3983 delete bAddObject;
3984 delete bRules;
3985 delete bClean;
3986 delete bHelp;
3987 delete bQuit;
3988
3989 delete frameUp;
3990 delete frameDown;
3991
3992 delete rad2d;
3993 delete rad3d;
3994
3995 delete rbTypeClosedWindows;
3996 delete rbTypeClosedDoors;
3997 delete rbTypeClosedLights;
3998 delete rbTypeClosedElements;
3999 delete rbTypeClosedDecorative;
4000 delete rbTypeOpenedNature;
4001 delete rbTypeOpenedBeach;
4002 delete rbTypeOpenedBench;
4003 delete rbTypeOpenedConstruction;
4004 delete rbTypeOpenedElements;
4005
4006 delete typeTextsInWall;
4007 delete colorTextsInWall;
4008 delete taText;
4009 delete titleTypeTextsInWall;
4010 delete bInsertText;
4011 delete radAlignLeftText;
4012 delete radAlignCenterText;
4013 delete radAlignRightText;
4014
4015 delete menuTown;
4016
4017 delete bgHandTray;
4018 delete btHandTray;
4019 delete bgBox;
4020 delete middleBox;
4021
4022 delete bgHelp;
4023 delete elmHelp;
4024 delete titleIndex;
4025
4026 delete bHelp1;
4027 delete bHelp2;
4028 delete bHelp3;
4029 delete bHelp4;
4030 delete bHelp5;
4031 delete bHelp6;
4032 delete bHelp7;
4033 delete bHelp8;
4034
4035 delete typeButtonInfoTown;
4036 delete eTitleInfoTown;
4037 delete taInfoTown;
4038 delete dataInfo;
4039 delete noExistInfoTown;
4040 delete bAddInfo;
4041
4042 delete bCleanBoard;
4043 delete bCleanScenary;
4044 delete bCleanReset;
4045
4046 delete levelName;
4047 delete provinceName;
4048 delete missionName;
4049 delete nameAuthor;
4050
4051 delete bInfoMain;
4052 delete bInfoData;
4053 delete bInfoMusic;
4054
4055 delete radMusic0;
4056 delete radMusic1;
4057 delete radMusic2;
4058 delete radMusic3;
4059
4060 delete menuText;
4061 delete menuBg;
4062
4063 delete bAccept;
4064 delete bCancel;
4065 delete bNext;
4066 delete bPrevious;
4067 delete bIndex;
4068
4069 delete titleFood;
4070 delete textFood;
4071 delete infoImageFood;
4072
4073 delete objectsGame;
4074 delete objectsPersonal;
4075 delete bObjectsGame;
4076 delete bObjectsPersonal;
4077 delete bObjectsTexts;
4078 delete blueLine;
4079 delete infoObjectsPersonal;
4080
4081 delete bgButton;
4082 delete bgArrow;
4083
4084 Sounds::GetInstance()->unLoad();
4085
4086 isLoad = false;
4087
4088 }
4089