1 /*
2  * DESCRIPCION DEL JUEGO
3  * Copyright (C) 2007  Javier P�rez Pacheco
4  *
5  * Este juego tienen licencia Creative Commons y se permite
6  * su modificacion y utilizacion libremente siempre y cuando se
7  * cite al autor original y se comparta con la misma licencia.
8  * No se permite su uso comercial.
9  *
10  * Para mas informacion visite la web:
11  * http://creativecommons.org/licenses/by-nc-sa/2.0/es/
12  *
13  * PROGRAMADOR
14  * Javier P�rez Pacheco
15  * Cadiz (Spain)
16  * javielinux@gmail.com
17  *
18  * GRAFISMO Y 3D
19  * Jesus Carrasco
20  * Cadiz (Spain)
21  * carrasco.carrasco@gmail.com
22  *
23  * MUSICA Y GRAFISMO
24  * Shano Lores
25  * Cadiz (Spain)
26  * shanakla@gmail.com
27  *
28  */
29 
30 #ifndef SCENEGAME_H_
31 #define SCENEGAME_H_
32 
33 #include "martian.h"
34 #include "scene.h"
35 #include "user.h"
36 #include "class_game.h"
37 #include "sceneanimation.h"
38 
39 #define SCENE_GAME_MAIN 0
40 #define SCENE_GAME_WINNING 1
41 #define SCENE_GAME_WIN 2
42 #define SCENE_GAME_LOST 3
43 #define SCENE_GAME_CAPTURED 4
44 #define SCENE_GAME_OPTIONS 5
45 #define SCENE_GAME_FINISH 6
46 #define SCENE_GAME_STARTTRAY 7
47 #define SCENE_GAME_TRAY 8
48 #define SCENE_GAME_HELP 9
49 #define SCENE_GAME_ENDANIMATION 10
50 #define SCENE_GAME_HELPFIRSTLEVEL 11
51 
52 using namespace std;
53 using namespace Martian;
54 
55 class SceneGame : public Scene {
56 
57 private:
58     Button *bQuit, *bReset, *bOption, *bNext, *bPrevious;
59 	Button *bAccept, *bCancel;
60 	Element *frameUp, *frameDown;
61 
62 	Button *bRetry, *bLeave, *bContinue, *bBack;
63 
64 	MarqueeElement *nameProvince, *nameTown;
65 
66 	Element *titleInfoTray, *textInfoTray, *drawFood;
67 
68     Element *windowLost, *windowWin, *windowFinish;
69 
70 	Element *textInWindows, *textInWindowsFinal;
71 
72 	Group *menu;
73 
74 	Element *bgMenu;
75 	AnimatedElement *eyeRight, *eyeLeft;
76 
77 	Element *bgInfo;
78 	Button *bAcceptInfo;
79 
80 	bool hasHelp;
81 	Element *imageHelp, *titleHelp, *textHelp;
82 
83 	bool active;
84 
85 	int indexMusicActive;
86 
87 	SceneAnimation *s_animend;
88 
89 public:
90 
91 	bool animationEnd;
92 
93 	bool hasEyeInformation;
94 
95 	void goToNextLevel();
96 
97 	void setAnimationEnd (string a);
98 
setTypeMusic(int t)99 	void setTypeMusic (int t) { indexMusicActive = t; }
getTypeMusic()100 	int getTypeMusic () { return indexMusicActive; }
101 
getActive()102 	bool getActive() { return active; }
103 
104 	void verifyEyeInformation();
105 
106 	void loadMusic (int t);
107 	void loadHelp (string name);
108 
109 	Slide *imageEyeRight, *imageEyeLeft;
110 
111 	Element *levelStatus;
112 	ChronometerElement *chronometer;
113 
114 	bool hasHelpFirstLevel;
115 	bool showedHelpFirstLevel;
116 	Slide *helpFirstLevel;
117 	Button *bLeftFirstLevel, *bRightFirstLevel;
118 
119 	Element *bgOptions;
120 	Element *titleVolumeMusics, *titleVolumeEffects, *titleTypeMusic;
121 	SelectButton *volumeMusics, *volumeEffects, *typeMusic;
122 	CheckButton *cbHelpActived;
123 
124 	SceneGame();
125 	~SceneGame();
126 	void setStatusScene(int s);
127 	void load();
128 
129 	void clear();
130 
131 	void createHelpFirstLevel();
132 
getMusicGame()133 	Sound* getMusicGame() { return Sounds::GetInstance()->getSound("musicgame"); }
134 
135 	/*********************
136 	* BUTTONS
137 	**********************/
138 	void verifyClickElements_Main();
139 	void verifyOverElements_Main();
140 
141 	void verifyClickElements_Options();
142 	void verifyOverElements_Options();
143 
144 	void verifyClickElements_Lost();
145 	void verifyOverElements_Lost();
146 
147 	void verifyClickElements_Win();
148 	void verifyOverElements_Win();
149 
150 	void verifyClickElements_Finish();
151 	void verifyOverElements_Finish();
152 
153 	void verifyClickElements_Tray();
154 	void verifyOverElements_Tray();
155 
156 	void verifyClickElements_Help();
157 	void verifyOverElements_Help();
158 
159 	void verifyClickElements_HelpFirstLevel();
160 	void verifyOverElements_HelpFirstLevel();
161 
162 	/*********************
163 	* ESCENES
164 	**********************/
165 	bool drawScene ();
166 
167 	void drawSceneMain ();
168 	void drawSceneMainByIndexZ(int z);
169 
170 	void drawSceneOptions ();
171 	void drawSceneOptionsByIndexZ(int z);
172 
173 	void drawSceneWin ();
174 	void drawSceneWinByIndexZ(int z);
175 
176 	void drawSceneLost ();
177 	void drawSceneLostByIndexZ(int z);
178 
179 	void drawSceneFinish ();
180 	void drawSceneFinishByIndexZ(int z);
181 
182 	void drawSceneTray ();
183 	void drawSceneTrayByIndexZ(int z);
184 
185 	void drawSceneHelp ();
186 	void drawSceneHelpByIndexZ(int z);
187 
188 	void drawSceneHelpFirstLevel ();
189 	void drawSceneHelpFirstLevelByIndexZ(int z);
190 
191 	/*********************
192 	* CONTROL
193 	**********************/
194 	void unLoad();
195 };
196 
197 
198 
199 #endif /* SCENEGAME_H_ */
200