// // MN_InitSkinViewer // // Called by the skinviewer console command, this function resets // all the skview internal state variables to their defaults, and // activates the skinviewer menu widget. // void MN_InitSkinViewer() { playerclass_t *pclass = players[consoleplayer].pclass; // haleyjd 09/29/07 // reset all state variables skview_action = SKV_WALKING; skview_rot = 0; skview_halfspeed = false; skview_typenum = pclass->type; skview_light = 0; skview_gibbed = false; // haleyjd 09/29/07: save alternate attack state number skview_atkstate2 = pclass->altattack; // haleyjd 03/29/08: determine if player skin has wimpy death sound skview_haswdth = (strcasecmp(players[consoleplayer].skin->sounds[sk_plwdth], "none") != 0); MN_SkinSetState(states[mobjinfo[skview_typenum]->seestate]); MN_initMetaDeaths(); // set the widget MN_PushWidget(&skinviewer); }
// // MN_QuestionFunc // // haleyjd: I restored the ability for questions to simply execute // native functions because calling C_RunTextCmd from inside the program // to execute code otherwise immediately accessible is actually kinda // stupid when you stop to think about it. // void MN_QuestionFunc(const char *message, void (*handler)(void)) { popupMenuActive = menuactive; MN_ActivateMenu(); // hook in widget so message will be displayed MN_PushWidget(&popup_widget); // If a widget we popped up over is fullscreen, so are we, since // we'll call down to its drawer. Otherwise, not. popup_widget.fullscreen = (popup_widget.prev && popup_widget.prev->fullscreen); strncpy(popup_message, message, 1024); popup_message_type = popup_question; popup_callback = handler; }
// // MN_Alert // // alert message // -- just press enter // void MN_Alert(const char *message, ...) { va_list args; // haleyjd 02/24/02: bug fix for menuactive state popupMenuActive = menuactive; MN_ActivateMenu(); // hook in widget so message will be displayed MN_PushWidget(&popup_widget); popup_message_type = popup_alert; va_start(args, message); pvsnprintf(popup_message, sizeof(popup_message), message, args); va_end(args); }
// // MN_Question // // question message // console command will be run if user responds with 'y' // void MN_Question(const char *message, const char *command) { // haleyjd 02/24/02: bug fix for menuactive state popupMenuActive = menuactive; MN_ActivateMenu(); // hook in widget so message will be displayed MN_PushWidget(&popup_widget); // If a widget we popped up over is fullscreen, so are we, since // we'll call down to its drawer. Otherwise, not. popup_widget.fullscreen = (popup_widget.prev && popup_widget.prev->fullscreen); strncpy(popup_message, message, 1024); popup_message_type = popup_question; popup_message_command = command; }
// // G_EditBinding // // Main Function // void G_EditBinding(const char *action) { MN_PushWidget(&binding_widget); binding_action = action; }