qzdoom-gpl/wadsrc/static/zscript/menu/menu.txt
Christoph Oelckers d85b9cdd71 - scriptified the input methods of DConversationMenu.
- fixed handling of DimAllowed.
2017-02-19 13:07:49 +01:00

139 lines
3 KiB
Text

struct KeyBindings native
{
native static String NameKeys(int k1, int k2);
native int, int GetKeysForCommand(String cmd);
native void SetBind(int key, String cmd);
native void UnbindACommand (String str);
}
struct OptionValues native
{
native static int GetCount(Name group);
native static String GetText(Name group, int index);
native static double GetValue(Name group, int index);
native static String GetTextValue(Name group, int index);
}
struct JoystickConfig native
{
enum EJoyAxis
{
JOYAXIS_None = -1,
JOYAXIS_Yaw,
JOYAXIS_Pitch,
JOYAXIS_Forward,
JOYAXIS_Side,
JOYAXIS_Up,
// JOYAXIS_Roll, // Ha ha. No roll for you.
NUM_JOYAXIS,
};
native float GetSensitivity();
native void SetSensitivity(float scale);
native float GetAxisScale(int axis);
native void SetAxisScale(int axis, float scale);
native float GetAxisDeadZone(int axis);
native void SetAxisDeadZone(int axis, float zone);
native int GetAxisMap(int axis);
native void SetAxisMap(int axis, int gameaxis);
native String GetName();
native int GetNumAxes();
native String GetAxisName(int axis);
}
class Menu : Object native
{
enum EMenuKey
{
MKEY_Up,
MKEY_Down,
MKEY_Left,
MKEY_Right,
MKEY_PageUp,
MKEY_PageDown,
MKEY_Enter,
MKEY_Back,
MKEY_Clear,
NUM_MKEYS,
// These are not buttons but events sent from other menus
MKEY_Input,
MKEY_Abort,
MKEY_MBYes,
MKEY_MBNo,
}
enum EMenuMouse
{
MOUSE_Click,
MOUSE_Move,
MOUSE_Release
};
enum EMenuState
{
Off, // Menu is closed
On, // Menu is opened
WaitKey, // Menu is opened and waiting for a key in the controls menu
OnNoPause, // Menu is opened but does not pause the game
};
native Menu mParentMenu;
native bool mMouseCapture;
native bool mBackbuttonSelected;
native bool DontDim;
void Init(Menu parent)
{
mParentMenu = parent;
}
native static int MenuTime();
native static void SetVideoMode();
native static Menu GetCurrentMenu();
native static void SetMenu(Name mnu, int param = 0);
native static void StartMessage(String msg, int mode = 0, Name command = 'none');
virtual bool TranslateKeyboardEvents() { return true; }
virtual void SetFocus(MenuItemBase fc) {}
virtual bool CheckFocus(MenuItemBase fc) { return false; }
virtual void ReleaseFocus() {}
virtual void ResetColor() {}
native virtual bool Responder(InputEventData ev);
native virtual bool MenuEvent (int mkey, bool fromcontroller);
native virtual bool MouseEvent(int type, int mx, int my);
native virtual void Ticker();
native virtual void Drawer();
native void Close();
native void ActivateMenu();
static void MenuSound(Sound snd)
{
S_Sound (snd, CHAN_VOICE | CHAN_UI, snd_menuvolume, ATTN_NONE);
}
static void DrawConText (int color, int x, int y, String str)
{
screen.DrawText (ConFont, color, x, y, str, DTA_CellX, 8 * CleanXfac_1, DTA_CellY, 8 * CleanYfac_1);
}
}
class MenuDescriptor : Object native
{
native Name mMenuName;
native String mNetgameMessage;
native Class<Menu> mClass;
native static MenuDescriptor GetDescriptor(Name n);
}