static int conf_action(int i) { int s = config_get_d(CONFIG_SOUND_VOLUME); int m = config_get_d(CONFIG_MUSIC_VOLUME); int r = 1; audio_play(AUD_MENU, 1.0f); switch (i) { case CONF_BACK: goto_state(&st_title); break; case CONF_VIDEO: goto_state(&st_video); break; case CONF_LANG: goto_state(&st_lang); break; default: if (100 <= i && i <= 110) { int n = i - 100; config_set_d(CONFIG_SOUND_VOLUME, n); audio_volume(n, m); audio_play(AUD_BUMP, 1.f); gui_toggle(sound_id[n]); gui_toggle(sound_id[s]); } if (200 <= i && i <= 210) { int n = i - 200; config_set_d(CONFIG_MUSIC_VOLUME, n); audio_volume(s, n); audio_play(AUD_BUMP, 1.f); gui_toggle(music_id[n]); gui_toggle(music_id[m]); } } return r; }
static int conf_action(int tok, int val) { int sound = config_get_d(CONFIG_SOUND_VOLUME); int music = config_get_d(CONFIG_MUSIC_VOLUME); int mouse = MOUSE_RANGE_MAP(config_get_d(CONFIG_MOUSE_SENSE)); int r = 1; audio_play(AUD_MENU, 1.0f); switch (tok) { case GUI_BACK: goto_state(&st_title); break; case CONF_VIDEO: goto_state(&st_conf_video); break; case CONF_PLAYER: goto_name(&st_conf, &st_conf, 1); break; case CONF_BALL: goto_state(&st_ball); break; case CONF_MOUSE_SENSE: config_set_d(CONFIG_MOUSE_SENSE, MOUSE_RANGE_UNMAP(val)); gui_toggle(mouse_id[val]); gui_toggle(mouse_id[mouse]); break; case CONF_SOUND_VOLUME: config_set_d(CONFIG_SOUND_VOLUME, val); audio_volume(val, music); audio_play(AUD_BUMPM, 1.f); gui_toggle(sound_id[val]); gui_toggle(sound_id[sound]); break; case CONF_MUSIC_VOLUME: config_set_d(CONFIG_MUSIC_VOLUME, val); audio_volume(sound, val); audio_play(AUD_BUMPM, 1.f); gui_toggle(music_id[val]); gui_toggle(music_id[music]); break; } return r; }
static int demo_end_enter(void) { int id, jd, kd; if ((id = gui_vstack(0))) { if (demo_paused) kd = gui_label(id, _("Replay Paused"), GUI_LRG, GUI_ALL, gui_gry, gui_red); else kd = gui_label(id, _("Replay Ends"), GUI_LRG, GUI_ALL, gui_gry, gui_red); if ((jd = gui_harray(id))) { int start_id = 0; if (standalone) { start_id = gui_start(jd, _("Quit"), GUI_SML, DEMO_QUIT, 1); } else { start_id = gui_start(jd, _("Keep"), GUI_SML, DEMO_KEEP, 1); gui_state(jd, _("Delete"), GUI_SML, DEMO_DEL, 0); } if (demo_paused) { gui_start(jd, _("Continue"), GUI_SML, DEMO_CONTINUE, 1); gui_toggle(start_id); } else gui_state(jd, _("Repeat"), GUI_SML, DEMO_REPLAY, 0); } gui_pulse(kd, 1.2f); gui_layout(id, 0, 0); } audio_music_fade_out(demo_paused ? 0.2f : 2.0f); return id; }
static int camera_action(int tok, int val) { int r = 1; int rot_speed = ROT_SPEED_RANGE_MAP(config_get_d(CONFIG_ROTATE_FAST)); int normal_rot_accel = config_get_d(CONFIG_ROTATE_ACCEL_NORMAL); int finesse_rot_accel = config_get_d(CONFIG_ROTATE_ACCEL_FINESSE); audio_play(AUD_MENU, 1.0f); switch (tok) { case GUI_BACK: goto_state(camera_back); camera_back = NULL; break; case CAMERA_ROT_SPEED: config_set_d(CONFIG_ROTATE_FAST, ROT_SPEED_RANGE_UNMAP(val)); gui_toggle(rot_speed_id[val]); gui_toggle(rot_speed_id[rot_speed]); break; case CAMERA_NORMAL_ROT_ACCEL: config_set_d(CONFIG_ROTATE_ACCEL_NORMAL, val); gui_toggle(normal_rot_accel_id[val]); gui_toggle(normal_rot_accel_id[normal_rot_accel]); break; case CAMERA_FINESSE_ROT_ACCEL: config_set_d(CONFIG_ROTATE_ACCEL_FINESSE, val); gui_toggle(finesse_rot_accel_id[val]); gui_toggle(finesse_rot_accel_id[finesse_rot_accel]); break; case CAMERA_SCREEN_TILT_ENABLED: goto_state(&st_null); config_set_d(CONFIG_SCREEN_TILT_ENABLED, val); goto_state(&st_camera); break; case CAMERA_REVERSED_CAMERA_ROTATION: goto_state(&st_null); config_set_d(CONFIG_REVERSED_CAMERA_ROTATION, val); goto_state(&st_camera); break; default: break; } return r; }
static int start_action(int tok, int val) { audio_play(AUD_MENU, 1.0f); switch (tok) { case GUI_BACK: return goto_state(&st_set); case START_CHALLENGE: if (config_cheat()) { progress_init(curr_mode() == MODE_CHALLENGE ? MODE_NORMAL : MODE_CHALLENGE); gui_toggle(challenge_id); return 1; } else { progress_init(MODE_CHALLENGE); return start_action(START_LEVEL, 0); } break; case GUI_SCORE: gui_score_set(val); start_over(gui_active(), 0); return 1; case START_LOCK_GOALS: config_set_d(CONFIG_LOCK_GOALS, val); return goto_state(&st_start); case START_LEVEL: if (progress_play(get_level(val))) return goto_state(&st_level); break; } return 1; }
static int conf_action(int i) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int s = config_get_d(CONFIG_SOUND_VOLUME); int m = config_get_d(CONFIG_MUSIC_VOLUME); int r = 1; audio_play(AUD_MENU, 1.0f); switch (i) { case CONF_FULL: goto_state(&st_null); r = video_mode(1, w, h); goto_state(&st_conf); break; case CONF_WIN: goto_state(&st_null); r = video_mode(0, w, h); goto_state(&st_conf); break; case CONF_TEXHI: goto_state(&st_null); config_set_d(CONFIG_TEXTURES, 1); goto_state(&st_conf); break; case CONF_TEXLO: goto_state(&st_null); config_set_d(CONFIG_TEXTURES, 2); goto_state(&st_conf); break; case CONF_SHDON: goto_state(&st_null); config_set_d(CONFIG_SHADOW, 1); goto_state(&st_conf); break; case CONF_SHDOF: goto_state(&st_null); config_set_d(CONFIG_SHADOW, 0); goto_state(&st_conf); break; case CONF_BACK: goto_state(&st_title); break; case CONF_RESOL: goto_state(&st_resol); break; default: if (100 <= i && i <= 110) { int n = i - 100; config_set_d(CONFIG_SOUND_VOLUME, n); audio_volume(n, m); audio_play(AUD_BUMP, 1.f); gui_toggle(sound_id[n]); gui_toggle(sound_id[s]); } if (200 <= i && i <= 210) { int n = i - 200; config_set_d(CONFIG_MUSIC_VOLUME, n); audio_volume(s, n); audio_play(AUD_BUMP, 1.f); gui_toggle(music_id[n]); gui_toggle(music_id[m]); } } return r; }