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; }