Esempio n. 1
0
MenuData* create_gameover_menu(void) {
	MenuData *m = alloc_menu();

	m->draw = draw_ingame_menu;
	m->logic = update_ingame_menu;
	m->flags = MF_Transient | MF_AlwaysProcessInput;
	m->transition = TransEmpty;

	if(global.stage->type == STAGE_SPELL) {
		m->context = "Spell Failed";

		add_menu_entry(m, "Retry", restart_game, NULL)->transition = TransFadeBlack;
		add_menu_entry(m, "Give up", give_up, NULL)->transition = TransFadeBlack;
	} else {
		m->context = "Game Over";

		char s[64];
		int c = MAX_CONTINUES - global.plr.continues_used;
		snprintf(s, sizeof(s), "Continue (%i)", c);
		add_menu_entry(m, s, c? continue_game : NULL, NULL);
		add_menu_entry(m, "Restart the Game", restart_game, NULL)->transition = TransFadeBlack;
		add_menu_entry(m, c? "Give up" : "Return to Title", give_up, NULL)->transition = TransFadeBlack;

		if(!c)
			m->cursor = 1;
	}

	set_transition(TransEmpty, 0, m->transition_out_time);
	return m;
}
		TITANIUM_PROPERTY_SETTER(Animation, transition)
		{
			TITANIUM_ASSERT(argument.IsNumber());
			set_transition(static_cast<uint32_t>(argument));
			return true;
		}