static void conf_shared_init(int (*action_fn)(int, int)) { conf_shared_action = action_fn; game_client_free(NULL); back_init("back/gui.png"); audio_music_fade_to(0.5f, "bgm/inter.ogg"); }
static int name_enter(struct state *st, struct state *prev) { if (draw_back) { game_client_free(NULL); back_init("back/gui.png"); } text_input_start(on_text_input); text_input_str(config_get_s(CONFIG_PLAYER), 0); return name_gui(); }
static int name_enter(struct state *st, struct state *prev) { if (draw_back) { game_client_free(NULL); back_init("back/gui.png"); } /* FIXME SDL_EnableUNICODE(1); */ return name_gui(); }
int game_init(const char *file_name, const char *back_name, const char *grad_name, int t, int e) { my_clock = (float) t / 100.f; if (game_state) game_free(); game_ix = 0.f; game_iz = 0.f; game_rx = 0.f; game_rz = 0.f; /* Initialize jump and goal states. */ jump_e = 1; jump_b = 0; goal_e = e ? 1 : 0; goal_k = e ? 1.0f : 0.0f; /* Reset the hud. */ hud_ball_pulse(0.f); hud_time_pulse(0.f); hud_coin_pulse(0.f); /* Initialise the level, background, particles, fade, and view. */ fade_k = 1.0f; fade_d = -2.0f; part_reset(GOAL_HEIGHT); view_init(); back_init(grad_name, config_get_d(CONFIG_GEOMETRY)); if (sol_load(&back, config_data(back_name), config_get_d(CONFIG_TEXTURES), 0) && sol_load(&file, config_data(file_name), config_get_d(CONFIG_TEXTURES), config_get_d(CONFIG_SHADOW))) return (game_state = 1); else return (game_state = 0); }
static int resol_enter(struct state *st, struct state *prev) { if (!st_back) { /* Note the parent screen if not done yet. */ st_back = prev; } back_init("back/gui.png"); modes = SDL_ListModes(NULL, SDL_OPENGL | SDL_FULLSCREEN); if (modes == (SDL_Rect **) -1) modes = NULL; audio_music_fade_to(0.5f, "bgm/inter.ogg"); return resol_gui(); }
static int conf_enter(struct state *st, struct state *prev) { int id, jd, kd; int btn0, btn1; int i; back_init("back/gui.png"); /* Initialize the configuration GUI. */ if ((id = gui_vstack(0))) { int f = config_get_d(CONFIG_FULLSCREEN); int t = config_get_d(CONFIG_TEXTURES); int h = config_get_d(CONFIG_SHADOW); int s = config_get_d(CONFIG_SOUND_VOLUME); int m = config_get_d(CONFIG_MUSIC_VOLUME); char resolution[20]; sprintf(resolution, "%d x %d", config_get_d(CONFIG_WIDTH), config_get_d(CONFIG_HEIGHT)); if ((jd = gui_harray(id))) { gui_label(jd, _("Options"), GUI_SML, GUI_ALL, 0, 0); gui_space(jd); gui_start(jd, _("Back"), GUI_SML, CONF_BACK, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { btn0 = gui_state(kd, _("No"), GUI_SML, CONF_WIN, 0); btn1 = gui_state(kd, _("Yes"), GUI_SML, CONF_FULL, 0); if (f) gui_set_hilite(btn1, 1); else gui_set_hilite(btn0, 1); gui_label(jd, _("Fullscreen"), GUI_SML, GUI_ALL, 0, 0); } if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { gui_state(kd, resolution, GUI_SML, CONF_RESOL, 0); gui_label(jd, _("Resolution"), GUI_SML, GUI_ALL, 0, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { btn0 = gui_state(kd, _("Low"), GUI_SML, CONF_TEXLO, 0); btn1 = gui_state(kd, _("High"), GUI_SML, CONF_TEXHI, 0); gui_set_hilite(btn0, (t == 2)); gui_set_hilite(btn1, (t == 1)); gui_label(jd, _("Textures"), GUI_SML, GUI_ALL, 0, 0); } if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { btn0 = gui_state(kd, _("Off"), GUI_SML, CONF_SHDOF, (h == 0)); btn1 = gui_state(kd, _("On"), GUI_SML, CONF_SHDON, (h == 1)); if (h) gui_set_hilite(btn1, 1); else gui_set_hilite(btn0, 1); gui_label(jd, _("Shadow"), GUI_SML, GUI_ALL, 0, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { /* A series of empty buttons forms the sound volume control. */ for (i = 10; i >= 0; i--) { sound_id[i] = gui_state(kd, NULL, GUI_SML, 100 + i, 0); gui_set_hilite(sound_id[i], (s == i)); } gui_label(jd, _("Sound Volume"), GUI_SML, GUI_ALL, 0, 0); } if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { /* A series of empty buttons forms the music volume control. */ for (i = 10; i >= 0; i--) { music_id[i] = gui_state(kd, NULL, GUI_SML, 200 + i, 0); gui_set_hilite(music_id[i], (m == i)); } gui_label(jd, _("Music Volume"), GUI_SML, GUI_ALL, 0, 0); } gui_layout(id, 0, 0); } audio_music_fade_to(0.5f, "bgm/inter.ogg"); return id; }
int game_client_init(const char *file_name) { char *back_name = "", *grad_name = ""; int i; coins = 0; status = GAME_NONE; game_client_free(file_name); /* Load SOL data. */ if (!game_base_load(file_name)) return (gd.state = 0); if (!sol_load_vary(&gd.vary, &game_base)) { game_base_free(NULL); return (gd.state = 0); } if (!sol_load_draw(&gd.draw, &gd.vary, config_get_d(CONFIG_SHADOW))) { sol_free_vary(&gd.vary); game_base_free(NULL); return (gd.state = 0); } gd.state = 1; /* Initialize game state. */ game_tilt_init(&gd.tilt); game_view_init(&gd.view); gd.jump_e = 1; gd.jump_b = 0; gd.jump_dt = 0.0f; gd.goal_e = 0; gd.goal_k = 0.0f; /* Initialize interpolation. */ game_lerp_init(&gl, &gd); /* Initialize fade. */ gd.fade_k = 1.0f; gd.fade_d = -2.0f; /* Load level info. */ version.x = 0; version.y = 0; for (i = 0; i < gd.vary.base->dc; i++) { char *k = gd.vary.base->av + gd.vary.base->dv[i].ai; char *v = gd.vary.base->av + gd.vary.base->dv[i].aj; if (strcmp(k, "back") == 0) back_name = v; if (strcmp(k, "grad") == 0) grad_name = v; if (strcmp(k, "version") == 0) sscanf(v, "%d.%d", &version.x, &version.y); } /* * If the version of the loaded map is 1, assume we have a version * match with the server. In this way 1.5.0 replays don't trigger * bogus map compatibility warnings. Post-1.5.0 replays will have * CMD_MAP override this. */ game_compat_map = version.x == 1; /* Initialize particles. */ part_reset(); /* Initialize command state. */ cmd_state_init(&cs); /* Initialize background. */ back_init(grad_name); sol_load_full(&gd.back, back_name, 0); /* Initialize lighting. */ light_reset(); return gd.state; }
static int conf_enter(struct state *st, struct state *prev) { int id, jd, kd; int i; back_init("back/gui.png"); /* Initialize the configuration GUI. */ if ((id = gui_vstack(0))) { if ((jd = gui_harray(id))) { gui_label(jd, _("Options"), GUI_SML, 0, 0); gui_space(jd); gui_start(jd, _("Back"), GUI_SML, CONF_BACK, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { gui_state(kd, _("Configure"), GUI_SML, CONF_VIDEO, 0); gui_label(jd, _("Graphics"), GUI_SML, 0, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { /* A series of empty buttons forms the sound volume control. */ int s = config_get_d(CONFIG_SOUND_VOLUME); for (i = 10; i >= 0; i--) { sound_id[i] = gui_state(kd, NULL, GUI_SML, 100 + i, 0); gui_set_hilite(sound_id[i], (s == i)); } gui_label(jd, _("Sound Volume"), GUI_SML, 0, 0); } if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { /* A series of empty buttons forms the music volume control. */ int m = config_get_d(CONFIG_MUSIC_VOLUME); for (i = 10; i >= 0; i--) { music_id[i] = gui_state(kd, NULL, GUI_SML, 200 + i, 0); gui_set_hilite(music_id[i], (m == i)); } gui_label(jd, _("Music Volume"), GUI_SML, 0, 0); } gui_space(id); if ((jd = gui_harray(id)) && (kd = gui_harray(jd))) { gui_state(kd, _("Select"), GUI_SML, CONF_LANG, 0); gui_label(jd, _("Language"), GUI_SML, 0, 0); } gui_layout(id, 0, 0); } audio_music_fade_to(0.5f, "bgm/inter.ogg"); return id; }