Subversion Repositories battle

[/] [trunk/] [Battle/] [Gameplay.h] - Blame information for rev 137

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 77 bert
#ifndef _GAMEPLAY_H
2 bert
#define _GAMEPLAY_H
3 bert
 
4 bert
#include <vector>
5 bert
 
6 bert
#include "Level.h"
7 bert
#include "Player.h"
8 136 bert
#include "NPC.h"
9 82 bert
#include "PauseMenu.h"
10 77 bert
#include "GameplayObject.h"
11 bert
 
12 bert
class Gameplay {
13 bert
public:
14 bert
        Gameplay();
15 bert
        ~Gameplay();
16 bert
 
17 bert
        static int frame;
18 bert
 
19 78 bert
        static Gameplay * instance;
20 bert
 
21 79 bert
        Level * level;
22 bert
 
23 bert
        std::vector<Player*> * players;
24 136 bert
        std::vector<NPC*> * npcs;
25 79 bert
 
26 bert
        std::vector<GameplayObject*> * objects;
27 bert
 
28 77 bert
        void run();
29 bert
 
30 bert
        void set_level(Level * level);
31 bert
        void add_player(Player * player);
32 136 bert
        void add_npc(NPC * npc);
33 78 bert
 
34 bert
        void add_object(GameplayObject * obj);
35 104 bert
        void bounce_up_players_and_npcs(SDL_Rect * rect, SDL_Rect * source);
36 79 bert
 
37 bert
        static bool is_intersecting(SDL_Rect * one, SDL_Rect * two);
38 77 bert
protected:
39 bert
        virtual void initialize();
40 bert
        virtual void deinitialize();
41 bert
 
42 bert
        void reset_game();
43 80 bert
 
44 82 bert
        virtual void pause(Player * p);
45 80 bert
 
46 bert
        void process_countdown();
47 77 bert
 
48 78 bert
        virtual void draw_pause_screen();
49 bert
        virtual void draw_score();
50 bert
        virtual void draw_game_ended();
51 bert
        virtual void draw_countdown();
52 77 bert
 
53 78 bert
        virtual void on_game_reset() = 0;
54 77 bert
 
55 78 bert
        virtual void on_pre_processing() = 0;
56 bert
        virtual void on_post_processing() = 0;
57 bert
 
58 bert
        void process_player_collission();
59 bert
        void process_npc_collission();
60 137 bert
        void process_player_npc_collission();
61 78 bert
 
62 77 bert
        void handle_pause_input(SDL_Event * event);
63 bert
 
64 bert
        bool game_running;
65 bert
 
66 82 bert
        PauseMenu * pause_menu;
67 78 bert
 
68 77 bert
        bool countdown;
69 78 bert
        int countdown_sec_left;
70 82 bert
        int countdown_start;
71 104 bert
        char countdown_pre_text[20];
72 78 bert
 
73 77 bert
        bool ended;
74 82 bert
        int end_start;
75 77 bert
 
76 124 bert
        bool music_playing;
77 bert
 
78 77 bert
        SDL_Surface * screen;
79 bert
 
80 78 bert
        // Do players collide with each other?
81 bert
        bool players_collide;
82 bert
        // Do NPC's collide with each other?
83 bert
        bool npcs_collide;
84 bert
        // Do players collide with NPC's?
85 bert
        bool players_npcs_collide;
86 77 bert
};
87 bert
 
88 bert
#endif