示例#1
0
//
// 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);
}
示例#2
0
//
// 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;
}
示例#3
0
//
// 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);
}
示例#4
0
//
// 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;
}
示例#5
0
//
// G_EditBinding
//
// Main Function
//
void G_EditBinding(const char *action)
{
   MN_PushWidget(&binding_widget);
   binding_action = action;
}