1 /**
2  * @file supervisor_guards_level.h
3  * @brief Guardians level supervisor
4  * @created 2003-01-11
5  * @date 2007-10-17
6  * @copyright 1991-2014 TLK Games
7  * @author Bruno Ethvignot
8  * @version $Revision: 24 $
9  */
10 /*
11  * copyright (c) 1991-2014 TLK Games all rights reserved
12  * $Id: supervisor_guards_level.h 24 2014-09-28 15:30:04Z bruno.ethvignot@gmail.com $
13  *
14  * TecnoballZ is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 3 of the License, or
17  * (at your option) any later version.
18  *
19  * TecnoballZ is distributed in the hope that it will be useful, but
20  * WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software
26  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
27  * MA  02110-1301, USA.
28  */
29 #ifndef __SUPERVISOR_GUARDS_LEVEL__
30 #define __SUPERVISOR_GUARDS_LEVEL__
31 class supervisor_guards_level;
32 #include "../include/tilesmap_scrolling.h"
33 #include "../include/sprite_bullet.h"
34 #include "../include/handler_display.h"
35 #include "../include/handler_keyboard.h"
36 #include "../include/supervisor.h"
37 #include "../include/controller_guardians.h"
38 #include "../include/controller_bullets.h"
39 #include "../include/controller_paddles.h"
40 #include "../include/controller_balls.h"
41 #include "../include/controller_moneys.h"
42 #include "../include/controller_capsules.h"
43 #include "../include/controller_indicators.h"
44 #include "../include/controller_gigablitz.h"
45 #include "../include/controller_explosions.h"
46 #include "../include/controller_viewfinders.h"
47 #include "../include/controller_game_over.h"
48 #include "../include/controller_spheres.h"
49 #include "../include/handler_popup_menu.h"
50 #include "../include/controller_font_game.h"
51 
52 
53 class supervisor_guards_level:public virtual supervisor
54 {
55   friend class controller_font_game;
56 
57 private:
58   controller_gigablitz * gigablitz;
59   tilesmap_scrolling *tiles_map;
60   controller_guardians *guards;
61   controller_bullets *bullets;
62   controller_paddles *paddles;
63   controller_balls *balls;
64   controller_viewfinders *viewfinders_paddles;
65   controller_moneys *money_capsules;
66   controller_capsules *power_up_capsules;
67   controller_indicators *player_indicators;
68   controller_explosions *explosions;
69   /** Sprite of the money capsule to the left of amount money */
70   sprite_object *money_indicator;
71   sprite_object *sprite_playername;
72   sprite_capsule *ptBobLifes;
73   handler_popup_menu *popup_menu;
74   /** Area number from 1 to 5 */
75   Uint32 area_number;
76   /** Current level number 6, 12 or 13 */
77   Uint32 level_number;
78   const guardians_level_desc *level_desc;
79   /** Delay time before the scrolling starts */
80   Uint32 scroll_start_delay;
81   /** Behavior type of scrolling  */
82   Uint32 scroll_type;
83   /** Speed of the scrolling */
84   Sint32 scroll_speed;
85   controller_game_over *game_over;
86   /** Mettalic spheres used in congratulisation */
87   controller_spheres *metallic_spheres;
88   Uint32 gameover_counter;
89   /** Delay counter before next phase */
90   Sint32 count_next;
91   /** If true game is finished, play game over with congratulations */
92   bool is_victory;
93   /** If true congratulations was already initialized  */
94   bool is_victory_initialized;
95   controller_font_game *font_game;
96 
97 private:
98   void init_level ();
99   void run_scroll ();
100   void cheat_keys ();
101 
102 public:
103     supervisor_guards_level ();
104    ~supervisor_guards_level ();
105   void first_init ();
106   Uint32 main_loop ();
107 };
108 #endif
109