static void title_timer(int id, float dt) { float g[3] = { 0.f, 0.f, 0.f }; game_step(g, dt); game_set_fly(fcosf(time_state() / 10.f)); gui_timer(id, dt); }
static int flyby_click(int b, int d) { if (d && b == SDL_BUTTON_LEFT) { game_set_fly(0.f); return goto_state(&st_stroke); } return 1; }
static void flyby_timer(int id, float dt) { float t = time_state(); if (dt > 0.f && t > 1.f) goto_state(&st_stroke); else game_set_fly(1.f - t); gui_timer(id, dt); }
static int flyby_buttn(int b, int d) { if (d) { if (config_tst_d(CONFIG_JOYSTICK_BUTTON_A, b)) { game_set_fly(0.f); return goto_state(&st_stroke); } if (config_tst_d(CONFIG_JOYSTICK_BUTTON_EXIT, b)) return goto_pause(&st_over, 1); } return 1; }
static int next_enter(struct state *st, struct state *prev) { int id, jd; char str[MAXSTR]; sprintf(str, _("Hole %02d"), curr_hole()); if ((id = gui_vstack(0))) { gui_label(id, str, GUI_MED, 0, 0); gui_space(id); if ((jd = gui_vstack(id))) { gui_label(jd, _("Player"), GUI_SML, 0, 0); switch (curr_player()) { case 1: gui_label(jd, "1", GUI_LRG, gui_red, gui_wht); if (curr_party() > 1) audio_play(AUD_PLAYER1, 1.f); break; case 2: gui_label(jd, "2", GUI_LRG, gui_grn, gui_wht); if (curr_party() > 1) audio_play(AUD_PLAYER2, 1.f); break; case 3: gui_label(jd, "3", GUI_LRG, gui_blu, gui_wht); if (curr_party() > 1) audio_play(AUD_PLAYER3, 1.f); break; case 4: gui_label(jd, "4", GUI_LRG, gui_yel, gui_wht); if (curr_party() > 1) audio_play(AUD_PLAYER4, 1.f); break; } gui_set_rect(jd, GUI_ALL); } gui_layout(id, 0, 0); } hud_init(); game_set_fly(1.f); if (paused) paused = 0; return id; }
static int flyby_buttn(int b, int d) { if (d) { if (config_tst_d(CONFIG_JOYSTICK_BUTTON_A, b)) { game_set_fly(0.f); return goto_state(&st_stroke); } //senquack - On GCW Zero, Button B should do nothing, it's annoying and confusing otherwise #ifdef GCWZERO if (config_tst_d(CONFIG_JOYSTICK_BUTTON_START, b)) return goto_pause(&st_over); #else if (config_tst_d(CONFIG_JOYSTICK_BUTTON_B, b) || config_tst_d(CONFIG_JOYSTICK_BUTTON_START, b)) return goto_pause(&st_over); #endif //GCWZERO } return 1; }
static int demo_play_enter(void) { int id; if (demo_paused) { demo_paused = 0; audio_music_fade_in(0.5f); return 0; } /* * Post-1.5.1 replays include view data in the first update, these * two lines are currently left in for compatibility with older * replays. */ game_set_fly(0.f, game_client_file()); game_client_step(NULL); if (check_compat && !game_compat_map) { goto_state(&st_demo_compat); return 0; } if ((id = gui_vstack(0))) { gui_label(id, _("Replay"), GUI_LRG, GUI_ALL, gui_blu, gui_grn); gui_layout(id, 0, 0); gui_pulse(id, 1.2f); } show_hud = 1; hud_update(0); return id; }
static int poser_enter(void) { game_set_fly(-1.f); return 0; }
static int poser_enter(struct state *st, struct state *prev) { game_set_fly(-1.f); return 0; }
static void title_timer(int id, float dt) { static const char *demo = NULL; float t; real_time += dt; switch (mode) { case 0: /* Mode 0: Pan across title level. */ if (real_time <= 20.0f) game_set_fly(fcosf(V_PI * real_time / 20.0f)); else { game_fade(+1.0f); real_time = 0.0f; mode = 1; } break; case 1: /* Mode 1: Fade out. Load demo level. */ if (real_time > 1.0f) { if ((demo = demo_pick())) { demo_replay_init(demo, NULL, NULL, NULL, NULL); demo_time = 0.0f; real_time = 0.0f; mode = 2; } else { game_fade(-1.0f); real_time = 0.0f; mode = 0; } } break; case 2: /* Mode 2: Run demo. */ while (demo_time < real_time) if (demo_replay_step(&t)) demo_time += t; else { demo_replay_stop(0); game_fade(+1.0f); real_time = 0.0f; mode = 3; } break; case 3: /* Mode 3: Fade out. Load title level. */ if (real_time > 1.0f) { game_init("map-rlk/title.sol", "map-back/jupiter.sol", "png/space.png", 0, 1); real_time = 0.0f; mode = 0; } break; } gui_timer(id, dt); audio_timer(dt); game_step_fade(dt); }