static int title_enter(void) { int id, jd, kd; /* Build the title GUI. */ if ((id = gui_vstack(0))) { gui_label(id, "Neverputt", GUI_LRG, GUI_ALL, 0, 0); gui_space(id); if ((jd = gui_harray(id))) { gui_filler(jd); if ((kd = gui_varray(jd))) { gui_start(kd, sgettext("menu^Play"), GUI_MED, TITLE_PLAY, 1); gui_state(kd, sgettext("menu^Options"), GUI_MED, TITLE_CONF, 0); gui_state(kd, sgettext("menu^Exit"), GUI_MED, TITLE_EXIT, 0); } gui_filler(jd); } gui_layout(id, 0, 0); } course_init(); course_rand(); return id; }
static int gui_demo_thumbs(int id) { int w = video.device_w; int h = video.device_h; int jd, kd, ld; int i, j; int row = w < h ? DEMO_LINEP : DEMO_LINEL; int iw = (w - 160) / row; int ih = iw * 3 / 4; struct thumb *thumb; if ((jd = gui_varray(id))) for (i = first; i < first + DEMO_STEP; i += row) if ((kd = gui_harray(jd))) { for (j = i + row - 1; j >= i; j--) { thumb = &thumbs[j % DEMO_STEP]; thumb->item = j; if (j < total) { if ((ld = gui_vstack(kd))) { gui_space(ld); thumb->shot = gui_image(ld, " ", iw, ih); thumb->name = gui_label(ld, " ", GUI_SML, gui_wht, gui_wht); gui_set_trunc(thumb->name, TRUNC_TAIL); gui_set_state(ld, DEMO_SELECT, j); } } else { gui_space(kd); thumb->shot = 0; thumb->name = 0; } } } return jd; }
static int set_enter(void) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int id, jd, kd; int i; if (do_init) { total = set_init(); first = MIN(first, (total - 1) - ((total - 1) % SET_STEP)); audio_music_fade_to(0.5f, "bgm/inter.ogg"); audio_play(AUD_START, 1.f); } else do_init = 1; if ((id = gui_vstack(0))) { if ((jd = gui_hstack(id))) { gui_label(jd, _("Level Set"), GUI_SML, GUI_ALL, gui_yel, gui_red); gui_filler(jd); gui_navig(jd, first > 0, first + SET_STEP < total); } gui_space(id); if ((jd = gui_harray(id))) { shot_id = gui_image(jd, set_shot(first), 7 * w / 16, 7 * h / 16); if ((kd = gui_varray(jd))) { for (i = first; i < first + SET_STEP; i++) gui_set(kd, i); } } gui_space(id); desc_id = gui_multi(id, " \\ \\ \\ \\ \\", GUI_SML, GUI_ALL, gui_yel, gui_wht); gui_layout(id, 0, 0); } return id; }
static int gui_demo_thumbs(int id) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int jd, kd, ld; int i, j; struct thumb *thumb; if ((jd = gui_varray(id))) for (i = first; i < first + DEMO_STEP; i += DEMO_LINE) if ((kd = gui_harray(jd))) { for (j = i + DEMO_LINE - 1; j >= i; j--) { thumb = &thumbs[j % DEMO_STEP]; thumb->item = j; if (j < total) { if ((ld = gui_vstack(kd))) { gui_space(ld); thumb->shot = gui_image(ld, " ", w / 6, h / 6); thumb->name = gui_state(ld, " ", GUI_SML, j, 0); gui_set_trunc(thumb->name, TRUNC_TAIL); gui_active(ld, j, 0); } } else { gui_space(kd); thumb->shot = 0; thumb->name = 0; } } } return jd; }
static int title_enter(struct state *st, struct state *prev) { int id, jd, kd; /* Build the title GUI. */ if ((id = gui_vstack(0))) { #ifdef GCWZERO jd = gui_label(id, "Neverputt", GUI_LRG, 0, 0); if (jd) { gui_set_fill(jd); gui_set_rect(jd, GUI_TOP); } int credit_label; if ((credit_label = gui_label(id, "GCW Zero port by Senquack", GUI_SML, gui_wht, gui_wht))) { gui_set_rect(credit_label, GUI_BOT); } #else gui_label(id, "Neverputt", GUI_LRG, 0, 0); #endif //GCWZERO gui_space(id); if ((jd = gui_harray(id))) { gui_filler(jd); if ((kd = gui_varray(jd))) { gui_start(kd, gt_prefix("menu^Play"), GUI_MED, TITLE_PLAY, 1); gui_state(kd, gt_prefix("menu^Options"), GUI_MED, TITLE_CONF, 0); gui_state(kd, gt_prefix("menu^Exit"), GUI_MED, TITLE_EXIT, 0); } gui_filler(jd); } gui_layout(id, 0, 0); } course_init(); course_rand(); return id; }
static int title_enter(void) { int id, jd, kd; /* Build the title GUI. */ if ((id = gui_vstack(0))) { gui_label(id, "Neverball", GUI_LRG, GUI_ALL, 0, 0); gui_space(id); if ((jd = gui_harray(id))) { gui_filler(jd); if ((kd = gui_varray(jd))) { gui_start(kd, "Play", GUI_MED, TITLE_PLAY, 1); gui_state(kd, "Replay", GUI_MED, TITLE_DEMO, 0); gui_state(kd, "Help", GUI_MED, TITLE_HELP, 0); gui_state(kd, "Options", GUI_MED, TITLE_CONF, 0); gui_state(kd, "Exit", GUI_MED, TITLE_EXIT, 0); } gui_filler(jd); } gui_layout(id, 0, 0); } /* Start the title screen music. */ audio_music_fade_to(0.5f, "bgm/tittle.mod"); /* Initialize the first level of the first set for display. */ game_init("map-rlk/title.sol", "map-back/jupiter.sol", "png/space.png", 0, 1); real_time = 0.0f; demo_time = 0.0f; mode = 0; return id; }
static int title_gui(void) { int id, jd, kd; /* Build the title GUI. */ if ((id = gui_vstack(0))) { if ((jd = gui_label(id, " Neverball ", GUI_LRG, 0, 0))) gui_set_fill(jd); gui_space(id); if ((jd = gui_hstack(id))) { gui_filler(jd); if ((kd = gui_varray(jd))) { if (config_cheat()) play_id = gui_start(kd, sgettext("menu^Cheat"), GUI_MED, TITLE_PLAY, 0); else play_id = gui_start(kd, sgettext("menu^Play"), GUI_MED, TITLE_PLAY, 0); gui_state(kd, sgettext("menu^Replay"), GUI_MED, TITLE_DEMO, 0); gui_state(kd, sgettext("menu^Help"), GUI_MED, TITLE_HELP, 0); gui_state(kd, sgettext("menu^Options"), GUI_MED, TITLE_CONF, 0); gui_state(kd, sgettext("menu^Exit"), GUI_MED, GUI_BACK, 0); /* Hilight the start button. */ gui_set_hilite(play_id, 1); } gui_filler(jd); } gui_layout(id, 0, 0); } return id; }
static int score_card(const char *title, const float *c0, const float *c1) { int id, jd, kd, ld; int p1 = (curr_party() >= 1) ? 1 : 0, l1 = (curr_party() == 1) ? 1 : 0; int p2 = (curr_party() >= 2) ? 1 : 0, l2 = (curr_party() == 2) ? 1 : 0; int p3 = (curr_party() >= 3) ? 1 : 0, l3 = (curr_party() == 3) ? 1 : 0; int p4 = (curr_party() >= 4) ? 1 : 0, l4 = (curr_party() == 4) ? 1 : 0; int i; int n = curr_count() - 1; int m = curr_count() / 2; if ((id = gui_vstack(0))) { gui_label(id, title, GUI_MED, GUI_ALL, c0, c1); gui_space(id); if ((jd = gui_hstack(id))) { if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("O"), 0, GUI_NE, 0, 0); if (p1) gui_label(kd, hole_out(0), 0, 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_out(1), 0, GUI_SE * l1, gui_red, gui_wht); if (p2) gui_label(kd, hole_out(2), 0, GUI_SE * l2, gui_grn, gui_wht); if (p3) gui_label(kd, hole_out(3), 0, GUI_SE * l3, gui_blu, gui_wht); if (p4) gui_label(kd, hole_out(4), 0, GUI_SE * l4, gui_yel, gui_wht); } if ((kd = gui_harray(jd))) for (i = m; i > 0; i--) if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, number(i), 0, (i == 1) ? GUI_NW : 0, 0, 0); if (p1) gui_label(ld, hole_score(i, 0), 0, 0, gui_wht, gui_wht); if (p1) gui_label(ld, hole_score(i, 1), 0, 0, gui_red, gui_wht); if (p2) gui_label(ld, hole_score(i, 2), 0, 0, gui_grn, gui_wht); if (p3) gui_label(ld, hole_score(i, 3), 0, 0, gui_blu, gui_wht); if (p4) gui_label(ld, hole_score(i, 4), 0, 0, gui_yel, gui_wht); } if ((kd = gui_varray(jd))) { gui_filler(kd); if (p1) gui_label(kd, _("Par"), 0, GUI_NW, gui_wht, gui_wht); if (p1) gui_label(kd, _("P1"), 0, GUI_SW * l1, gui_red, gui_wht); if (p2) gui_label(kd, _("P2"), 0, GUI_SW * l2, gui_grn, gui_wht); if (p3) gui_label(kd, _("P3"), 0, GUI_SW * l3, gui_blu, gui_wht); if (p4) gui_label(kd, _("P4"), 0, GUI_SW * l4, gui_yel, gui_wht); } } gui_space(id); if ((jd = gui_hstack(id))) { if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("Tot"), 0, GUI_TOP, 0, 0); if (p1) gui_label(kd, hole_tot(0), 0, 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_tot(1), 0, GUI_BOT * l1, gui_red, gui_wht); if (p2) gui_label(kd, hole_tot(2), 0, GUI_BOT * l2, gui_grn, gui_wht); if (p3) gui_label(kd, hole_tot(3), 0, GUI_BOT * l3, gui_blu, gui_wht); if (p4) gui_label(kd, hole_tot(4), 0, GUI_BOT * l4, gui_yel, gui_wht); } if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("I"), 0, GUI_NE, 0, 0); if (p1) gui_label(kd, hole_in(0), 0, 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_in(1), 0, GUI_SE * l1, gui_red, gui_wht); if (p2) gui_label(kd, hole_in(2), 0, GUI_SE * l2, gui_grn, gui_wht); if (p3) gui_label(kd, hole_in(3), 0, GUI_SE * l3, gui_blu, gui_wht); if (p4) gui_label(kd, hole_in(4), 0, GUI_SE * l4, gui_yel, gui_wht); } if ((kd = gui_harray(jd))) for (i = n; i > m; i--) if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, number(i), 0, (i == m+1) ? GUI_NW : 0, 0, 0); if (p1) gui_label(ld, hole_score(i, 0), 0, 0, gui_wht, gui_wht); if (p1) gui_label(ld, hole_score(i, 1), 0, 0, gui_red, gui_wht); if (p2) gui_label(ld, hole_score(i, 2), 0, 0, gui_grn, gui_wht); if (p3) gui_label(ld, hole_score(i, 3), 0, 0, gui_blu, gui_wht); if (p4) gui_label(ld, hole_score(i, 4), 0, 0, gui_yel, gui_wht); } if ((kd = gui_varray(jd))) { gui_filler(kd); if (p1) gui_label(kd, _("Par"), 0, GUI_NW, gui_wht, gui_wht); if (p1) gui_label(kd, _("P1"), 0, GUI_SW * l1, gui_red, gui_wht); if (p2) gui_label(kd, _("P2"), 0, GUI_SW * l2, gui_grn, gui_wht); if (p3) gui_label(kd, _("P3"), 0, GUI_SW * l3, gui_blu, gui_wht); if (p4) gui_label(kd, _("P4"), 0, GUI_SW * l4, gui_yel, gui_wht); } } gui_layout(id, 0, 0); } return id; }
static int course_enter(void) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int id, jd, kd, ld, md, i = 0, j, n = course_count(); int m = (int)(sqrt(n/2.0)*2); if ((id = gui_vstack(0))) { gui_label(id, _("Select Course"), GUI_MED, GUI_ALL, 0, 0); gui_space(id); if ((jd = gui_hstack(id))) { shot_id = gui_image(jd, course_shot(0), w / 3, h / 3); gui_filler(jd); if ((kd = gui_varray(jd))) { for(i = 0; i < n; i += m) { if ((ld = gui_harray(kd))) { for (j = (m - 1); j >= 0; j--) { if (i + j < n) { md = gui_image(ld, course_shot(i + j), w / 3 / m, h / 3 / m); gui_active(md, i + j, 0); if (i + j == 0) gui_focus(md); } else gui_space(ld); } } } } } gui_space(id); desc_id = gui_multi(id, _(course_desc(0)), GUI_SML, GUI_ALL, gui_yel, gui_wht); gui_space(id); if ((jd = gui_hstack(id))) { gui_filler(jd); gui_state(jd, _("Back"), GUI_SML, COURSE_BACK, 0); } gui_layout(id, 0, 0); } audio_music_fade_to(0.5f, "bgm/inter.ogg"); return id; }
static int score_card(const char *title, const GLubyte *c0, const GLubyte *c1) { int id, jd, kd, ld; int p1 = (curr_party() >= 1) ? 1 : 0; int p2 = (curr_party() >= 2) ? 1 : 0; int p3 = (curr_party() >= 3) ? 1 : 0; int p4 = (curr_party() >= 4) ? 1 : 0; int i; int n = curr_count() - 1; int m = curr_count() / 2; if ((id = gui_vstack(0))) { gui_label(id, title, GUI_MED, c0, c1); gui_space(id); if ((jd = gui_hstack(id))) { if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("O"), 0, 0, 0); if (p1) gui_label(kd, hole_out(0), 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_out(1), 0, gui_red, gui_wht); if (p2) gui_label(kd, hole_out(2), 0, gui_grn, gui_wht); if (p3) gui_label(kd, hole_out(3), 0, gui_blu, gui_wht); if (p4) gui_label(kd, hole_out(4), 0, gui_yel, gui_wht); gui_set_rect(kd, GUI_RGT); } if ((kd = gui_harray(jd))) { for (i = m; i > 0; i--) if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, number(i), 0, 0, 0); if (p1) gui_label(ld, hole_score(i, 0), 0, gui_wht, gui_wht); if (p1) gui_label(ld, hole_score(i, 1), 0, gui_red, gui_wht); if (p2) gui_label(ld, hole_score(i, 2), 0, gui_grn, gui_wht); if (p3) gui_label(ld, hole_score(i, 3), 0, gui_blu, gui_wht); if (p4) gui_label(ld, hole_score(i, 4), 0, gui_yel, gui_wht); } gui_set_rect(kd, GUI_LFT); } if ((kd = gui_vstack(jd))) { gui_space(kd); if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, _("Par"), 0, gui_wht, gui_wht); if (p1) gui_label(ld, _("P1"), 0, gui_red, gui_wht); if (p2) gui_label(ld, _("P2"), 0, gui_grn, gui_wht); if (p3) gui_label(ld, _("P3"), 0, gui_blu, gui_wht); if (p4) gui_label(ld, _("P4"), 0, gui_yel, gui_wht); gui_set_rect(ld, GUI_ALL); } } } gui_space(id); if ((jd = gui_hstack(id))) { if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("Tot"), 0, 0, 0); if (p1) gui_label(kd, hole_tot(0), 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_tot(1), 0, gui_red, gui_wht); if (p2) gui_label(kd, hole_tot(2), 0, gui_grn, gui_wht); if (p3) gui_label(kd, hole_tot(3), 0, gui_blu, gui_wht); if (p4) gui_label(kd, hole_tot(4), 0, gui_yel, gui_wht); gui_set_rect(kd, GUI_ALL); } if ((kd = gui_varray(jd))) { if (p1) gui_label(kd, _("I"), 0, 0, 0); if (p1) gui_label(kd, hole_in(0), 0, gui_wht, gui_wht); if (p1) gui_label(kd, hole_in(1), 0, gui_red, gui_wht); if (p2) gui_label(kd, hole_in(2), 0, gui_grn, gui_wht); if (p3) gui_label(kd, hole_in(3), 0, gui_blu, gui_wht); if (p4) gui_label(kd, hole_in(4), 0, gui_yel, gui_wht); gui_set_rect(kd, GUI_RGT); } if ((kd = gui_harray(jd))) { for (i = n; i > m; i--) if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, number(i), 0, 0, 0); if (p1) gui_label(ld, hole_score(i, 0), 0, gui_wht, gui_wht); if (p1) gui_label(ld, hole_score(i, 1), 0, gui_red, gui_wht); if (p2) gui_label(ld, hole_score(i, 2), 0, gui_grn, gui_wht); if (p3) gui_label(ld, hole_score(i, 3), 0, gui_blu, gui_wht); if (p4) gui_label(ld, hole_score(i, 4), 0, gui_yel, gui_wht); } gui_set_rect(kd, GUI_LFT); } if ((kd = gui_vstack(jd))) { gui_space(kd); if ((ld = gui_varray(kd))) { if (p1) gui_label(ld, _("Par"), 0, gui_wht, gui_wht); if (p1) gui_label(ld, _("P1"), 0, gui_red, gui_wht); if (p2) gui_label(ld, _("P2"), 0, gui_grn, gui_wht); if (p3) gui_label(ld, _("P3"), 0, gui_blu, gui_wht); if (p4) gui_label(ld, _("P4"), 0, gui_yel, gui_wht); gui_set_rect(ld, GUI_ALL); } } } gui_layout(id, 0, 0); } return id; }
static int course_enter(struct state *st, struct state *prev) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int id, jd, kd, ld, md; int i, j, r, c, n; n = course_count(); r = comp_rows(n); c = comp_cols(n); if ((id = gui_vstack(0))) { gui_label(id, _("Select Course"), GUI_MED, 0, 0); gui_space(id); if ((jd = gui_hstack(id))) { shot_id = gui_image(jd, course_shot(0), w / 3, h / 3); gui_filler(jd); if ((kd = gui_varray(jd))) { for(i = 0; i < r; i++) { if ((ld = gui_harray(kd))) { for (j = c - 1; j >= 0; j--) { int k = i * c + j; if (k < n) { md = gui_image(ld, course_shot(k), w / 3 / c, h / 3 / r); gui_set_state(md, k, 0); if (k == 0) gui_focus(md); } else gui_space(ld); } } } } } gui_space(id); desc_id = gui_multi(id, _(course_desc(0)), GUI_SML, gui_yel, gui_wht); gui_space(id); if ((jd = gui_hstack(id))) { gui_filler(jd); gui_state(jd, _("Back"), GUI_SML, COURSE_BACK, 0); } gui_layout(id, 0, 0); } audio_music_fade_to(0.5f, "bgm/inter.ogg"); return id; }
static int start_enter(void) { int w = config_get_d(CONFIG_WIDTH); int h = config_get_d(CONFIG_HEIGHT); int id, jd, kd, ld; if ((id = gui_vstack(0))) { if ((jd = gui_harray(id))) { gui_label(jd, "Level", GUI_SML, GUI_ALL, gui_yel, gui_red); gui_filler(jd); gui_filler(jd); gui_start(jd, "Back", GUI_SML, START_BACK, 0); } if ((jd = gui_harray(id))) { shot_id = gui_image(jd, "shot-rlk/easy.png", 7 * w / 16, 7 * h / 16); if ((kd = gui_varray(jd))) { if ((ld = gui_harray(kd))) { gui_level(ld, "05", 5); gui_level(ld, "04", 4); gui_level(ld, "03", 3); gui_level(ld, "02", 2); gui_level(ld, "01", 1); } if ((ld = gui_harray(kd))) { gui_level(ld, "10", 10); gui_level(ld, "09", 9); gui_level(ld, "08", 8); gui_level(ld, "07", 7); gui_level(ld, "06", 6); } if ((ld = gui_harray(kd))) { gui_level(ld, "15", 15); gui_level(ld, "14", 14); gui_level(ld, "13", 13); gui_level(ld, "12", 12); gui_level(ld, "11", 11); } if ((ld = gui_harray(kd))) { gui_level(ld, "20", 20); gui_level(ld, "19", 19); gui_level(ld, "18", 18); gui_level(ld, "17", 17); gui_level(ld, "16", 16); } if ((ld = gui_harray(kd))) { gui_level(ld, "25", 25); gui_level(ld, "24", 24); gui_level(ld, "23", 23); gui_level(ld, "22", 22); gui_level(ld, "21", 21); } } } gui_space(id); if ((jd = gui_harray(id))) { gui_most_coins(jd, 3, 4); gui_best_times(jd, 3, 4); } gui_layout(id, 0, 0); set_most_coins(0, 3); set_best_times(0, 3); } start_point(id,80,396,0,0); return id; }
static int start_gui(void) { int w = video.device_w; int h = video.device_h; int i, j; int id, jd, kd, ld; if ((id = gui_vstack(0))) { if ((jd = gui_hstack(id))) { gui_label(jd, set_name(curr_set()), GUI_SML, gui_yel, gui_red); gui_filler(jd); gui_start(jd, _("Back"), GUI_SML, GUI_BACK, 0); } gui_space(id); if ((jd = gui_harray(id))) { if (config_cheat()) { if ((kd = gui_vstack(jd))) { shot_id = gui_image(kd, set_shot(curr_set()), 6 * w / 16, 6 * h / 16); file_id = gui_label(kd, " ", GUI_SML, gui_yel, gui_red); } } else { shot_id = gui_image(jd, set_shot(curr_set()), 7 * w / 16, 7 * h / 16); } if ((kd = gui_varray(jd))) { for (i = 0; i < 5; i++) if ((ld = gui_harray(kd))) for (j = 4; j >= 0; j--) gui_level(ld, i * 5 + j); challenge_id = gui_state(kd, _("Challenge"), GUI_SML, START_CHALLENGE, 0); gui_set_hilite(challenge_id, curr_mode() == MODE_CHALLENGE); } } gui_space(id); gui_score_board(id, (GUI_SCORE_COIN | GUI_SCORE_TIME | GUI_SCORE_GOAL), 0, 0); gui_space(id); if ((jd = gui_hstack(id))) { gui_filler(jd); if ((kd = gui_harray(jd))) { int btn0, btn1; btn0 = gui_state(kd, _("Unlocked"), GUI_SML, START_LOCK_GOALS, 0); btn1 = gui_state(kd, _("Locked"), GUI_SML, START_LOCK_GOALS, 1); if (config_get_d(CONFIG_LOCK_GOALS)) gui_set_hilite(btn1, 1); else gui_set_hilite(btn0, 1); } gui_space(jd); gui_label(jd, _("Goal State in Completed Levels"), GUI_SML, 0, 0); gui_filler(jd); } gui_layout(id, 0, 0); if (file_id) gui_set_trunc(file_id, TRUNC_HEAD); set_score_board(NULL, -1, NULL, -1, NULL, -1); } return id; }