6 /* defined in their respective screen source files */
7 struct game_screen main_menu_screen;
8 struct game_screen game_screen;
10 static struct game_screen *screens[16];
11 static int num_screens;
13 int init_screens(void)
17 /* populate the screens */
18 screens[i++] = &main_menu_screen;
19 screens[i++] = &game_screen;
25 for(i=0; i<num_screens; i++) {
26 if(screens[i]->init() == -1) {
29 if(opt.start_scr && strcmp(screens[i]->name, opt.start_scr) == 0) {
38 void cleanup_screens(void)
42 for(i=0; i<num_screens; i++) {
43 screens[i]->cleanup();
47 void reshape_screens(int x, int y)
49 struct game_screen *s = screen;
56 int push_screen(struct game_screen *s)
58 struct game_screen *it = screen;
59 while(it && it != s) {
63 error_log("attempting to push screen %s more than once!\n", s->name);
75 struct game_screen *s;
77 if(!screen->next) return -1;
79 screen = screen->next;