6b9a2747bed67e2c48db5b2fae91f19ee418d2c2
[ld42_outofspace] / src / screen.cc
1 #include "screen.h"
2
3 ScreenBase *active_screen;
4 MenuScreen *scr_menu;
5 GameScreen *scr_game;
6
7 bool init_screens()
8 {
9         scr_menu = new MenuScreen;
10         if(!scr_menu->init()) {
11                 return false;
12         }
13
14         scr_game = new GameScreen;
15         if(!scr_game->init()) {
16                 return false;
17         }
18
19         push_screen(scr_menu);
20         return true;
21 }
22
23 void cleanup_screens()
24 {
25         scr_game->destroy();
26         delete scr_game;
27
28         scr_menu->destroy();
29         delete scr_menu;
30 }
31
32 void push_screen(ScreenBase *scr)
33 {
34         scr->next = active_screen;
35         active_screen = scr;
36
37         scr->start();
38 }
39
40 void pop_screen()
41 {
42         ScreenBase *scr = active_screen;
43         active_screen = scr->next;
44
45         scr->stop();
46 }
47
48
49 ScreenBase::ScreenBase()
50 {
51         next = 0;
52 }
53
54 ScreenBase::~ScreenBase()
55 {
56 }
57
58 bool ScreenBase::init()
59 {
60         return true;
61 }
62
63 void ScreenBase::destroy()
64 {
65 }
66
67 void ScreenBase::start()
68 {
69 }
70
71 void ScreenBase::stop()
72 {
73 }
74
75
76 void ScreenBase::reshape(int x, int y)
77 {
78 }
79
80
81 void ScreenBase::keyboard(int key, bool pressed)
82 {
83 }
84
85 void ScreenBase::mbutton(int bn, bool pressed, int x, int y)
86 {
87 }
88
89 void ScreenBase::mmotion(int x, int y)
90 {
91 }
92
93 void ScreenBase::mwheel(int dir, int x, int y)
94 {
95 }