Exemple #1
0
static void draw_options_menu(MenuData *menu) {
	OptionsMenuContext *ctx = menu->context;

	draw_options_menu_bg(menu);
	draw_menu_title(menu, ctx->title);

	r_mat_push();
	r_mat_translate(100, 100, 0);

	draw_menu_selector(menu->drawdata[0], menu->drawdata[2], menu->drawdata[1], 34, menu->frames);

	int i, caption_drawn = 2;

	for(i = 0; i < menu->ecount; i++) {
		MenuEntry *e = menu->entries + i;
		OptionBinding *bind = bind_get(menu, i);
		Color clr;

		if(!e->name) {
			continue;
		}

		float a = e->drawdata * 0.1;
		float alpha = (!bind || bind_isactive(bind))? 1 : 0.5;

		if(e->action == NULL) {
			clr = *RGBA_MUL_ALPHA(0.5, 0.5, 0.5, 0.7 * alpha);
		} else {
			float ia = 1-a;
			clr = *RGBA_MUL_ALPHA(0.9 + ia * 0.1, 0.6 + ia * 0.4, 0.2 + ia * 0.8, (0.7 + 0.3 * a) * alpha);
		}

		r_shader("text_default");

		text_draw(e->name, &(TextParams) {
			.pos = { (1 + (bind ? bind->pad : 0)) * 20 - e->drawdata, 20*i },
			.color = &clr,
		});
Exemple #2
0
void draw_difficulty_menu(MenuData *menu) {
	draw_main_menu_bg(menu, 0, 0, 0.05, "menu/mainmenubg", "stage1/cirnobg");
	draw_menu_title(menu, "Select Difficulty");

	Color c = diff_color;
	r_color(color_mul(&c, RGBA(0.07, 0.07, 0.07, 0.7)));

	r_mat_push();
	r_mat_translate(SCREEN_W/2, SCREEN_H/2,0);
	r_mat_rotate_deg(4*menu->drawdata[0]-4,0,0,1);
	r_mat_push();
	r_mat_scale(SCREEN_W*1.5,120,1);
	r_shader_standard_notex();
	r_draw_quad();
	r_mat_pop();
	r_color3(1,1,1);

	r_shader("text_default");

	float amp = menu->cursor/2.;
	float shake = 0.3*amp*menu->frames;
	text_draw(menu->entries[menu->cursor].name, &(TextParams) {
		.pos = { 120+15*menu->drawdata[0]+amp*sin(shake), -12+amp*cos(1.57*shake) },
	});
Exemple #3
0
void draw_stage_menu(MenuData *m) {
	draw_options_menu_bg(m);
	draw_menu_title(m, "Select Stage");
	animate_menu_list(m);
	draw_menu_list(m, 100, 100, NULL);
}
Exemple #4
0
void draw_spell_menu(MenuData *m) {
	draw_options_menu_bg(m);
	draw_menu_title(m, "Spell Practice");
	animate_menu_list(m);
	draw_menu_list(m, 100, 100, NULL);
}