2 * Copyright (C) 2003 Robert Kooima
4 * NEVERBALL is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published
6 * by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
22 #include "st_shared.h"
24 #include "game_server.h"
25 #include "game_client.h"
32 /*---------------------------------------------------------------------------*/
34 static int level_enter(void)
38 if ((id = gui_vstack(0)))
40 if ((jd = gui_hstack(id)))
44 if ((kd = gui_vstack(jd)))
46 const char *ln = level_name (curr_level());
47 int b = level_bonus(curr_level());
49 char setattr[MAXSTR], lvlattr[MAXSTR];
52 sprintf(lvlattr, _("Bonus Level %s"), ln);
54 sprintf(lvlattr, _("Level %s"), ln);
56 if (curr_mode() == MODE_CHALLENGE)
57 sprintf(setattr, "%s: %s", set_name(curr_set()),
58 mode_to_str(MODE_CHALLENGE, 1));
60 sprintf(setattr, "%s", set_name(curr_set()));
62 gui_label(kd, lvlattr, b ? GUI_MED : GUI_LRG, GUI_TOP,
63 b ? gui_wht : 0, b ? gui_grn : 0);
64 gui_label(kd, setattr, GUI_SML, GUI_BOT,
71 gui_multi(id, level_msg(curr_level()),
78 game_set_fly(1.f, NULL);
79 game_client_step(NULL);
84 static void level_timer(int id, float dt)
89 static int level_click(int b, int d)
91 return (b == SDL_BUTTON_LEFT && d == 1) ? goto_state(&st_play_ready) : 1;
94 static int level_keybd(int c, int d)
96 if (d && c == SDLK_F12)
97 return goto_state(&st_poser);
101 static int level_buttn(int b, int d)
105 if (config_tst_d(CONFIG_JOYSTICK_BUTTON_A, b))
107 return goto_state(&st_play_ready);
109 if (config_tst_d(CONFIG_JOYSTICK_BUTTON_EXIT, b))
112 return goto_state(&st_over);
118 /*---------------------------------------------------------------------------*/
120 static void poser_paint(int id, float t)
125 static int poser_buttn(int c, int d)
127 if (d && config_tst_d(CONFIG_JOYSTICK_BUTTON_EXIT, c))
128 return goto_state(&st_level);
133 /*---------------------------------------------------------------------------*/
135 struct state st_level = {
149 struct state st_poser = {