mirror of
https://github.com/UberGames/RPG-X2.git
synced 2024-11-15 01:11:46 +00:00
4216 lines
135 KiB
C
4216 lines
135 KiB
C
// Copyright (C) 1999-2000 Id Software, Inc.
|
|
//
|
|
/*
|
|
=======================================================================
|
|
|
|
CONTROLS MENU
|
|
|
|
=======================================================================
|
|
*/
|
|
#include "ui_local.h"
|
|
|
|
static void SetupMenu_SideButtons(menuframework_s *menu,int menuType);
|
|
static void Controls_UpdateNew( void );
|
|
static void Controls_MenuEvent (void* ptr, int event);
|
|
static void UI_ControlsMoveMenu( void );
|
|
static void UI_ControlsAttackLookMenu( void );
|
|
static void UI_ControlsMouseJoyStickMenu( void );
|
|
static void UI_ControlsDefaultMenu( void );
|
|
static void UI_ControlsOtherMenu( void );
|
|
static void UI_ControlsCommandMenu( void );
|
|
static void Controls_MenuEventVideo (void* ptr, int event);
|
|
static void UI_ControlsModelViewMenu( void ); //TiM
|
|
|
|
void UI_SetupWeaponsMenu( void );
|
|
static qhandle_t swooshTop;
|
|
static qhandle_t swooshBottom;
|
|
//static qboolean g_waitingforkey;
|
|
static qboolean g_changesmade;
|
|
static qboolean g_prompttosave;
|
|
static menucommon_s *chosenitem;
|
|
|
|
|
|
#define PIC_MONBAR2 "menu/common/monbar_2.tga"
|
|
#define PIC_MOUSE1 "menu/common/mouse1.tga"
|
|
#define PIC_MOUSE2 "menu/common/mouse2.tga"
|
|
|
|
void *holdControlPtr;
|
|
int holdControlEvent;
|
|
static menuaction_s *vid_apply_action;
|
|
|
|
float setup_menubuttons[8][2] =
|
|
{
|
|
{125,62},
|
|
{125,86},
|
|
{125,109},
|
|
{300,62},
|
|
{300,86},
|
|
{300,109},
|
|
{482,62},
|
|
{482,86},
|
|
};
|
|
|
|
int s_OffOnNone_Names[] =
|
|
{
|
|
MNT_OFF,
|
|
MNT_ON,
|
|
MNT_NONE
|
|
};
|
|
|
|
int s_Autoswitch_Names[] =
|
|
{
|
|
MNT_OFF,
|
|
MNT_SAFE,
|
|
MNT_BEST,
|
|
MNT_NONE
|
|
};
|
|
|
|
static menuframework_s s_controlsdefault_menu;
|
|
static menubitmap_s s_controls_default_yes;
|
|
static menubitmap_s s_controls_default_no;
|
|
|
|
static menubitmap_s s_controls_mainmenu;
|
|
static menubitmap_s s_controls_controls;
|
|
static menubitmap_s s_controls_video;
|
|
static menubitmap_s s_controls_sound;
|
|
static menubitmap_s s_controls_game;
|
|
static menubitmap_s s_controls_cdkey;
|
|
static menubitmap_s s_controls_player;
|
|
static menubitmap_s s_controls_fonts;
|
|
static menubitmap_s s_controls_network;
|
|
|
|
static menuframework_s s_controlsother_menu;
|
|
static menulist_s s_lookspring_box;
|
|
static menuslider_s s_keyturnspeed_slider;
|
|
|
|
static struct
|
|
{
|
|
qhandle_t mon_bar;
|
|
} s_controlsother;
|
|
|
|
static struct
|
|
{
|
|
qhandle_t mouse1;
|
|
qhandle_t mouse2;
|
|
} s_joystick_mouse;
|
|
|
|
#define ID_MAINMENU 100
|
|
#define ID_CONTROLS 110
|
|
#define ID_VIDEO 102
|
|
#define ID_SOUND 103
|
|
#define ID_GAMEOPTIONS 104
|
|
#define ID_CDKEY 105
|
|
#define ID_PLAYER 106
|
|
#define ID_FONTS 107
|
|
#define ID_NETWORK 108
|
|
#define ID_INGAMEMENU 109
|
|
|
|
#define ID_KEYTURNPEED 45
|
|
#define ID_LOOKSPRING 44
|
|
#define ID_AUTOSWITCHWEAPONS 48
|
|
|
|
typedef enum
|
|
{
|
|
AMG_MIDLEFT,
|
|
AMG_UPPERLEFT,
|
|
AMG_LOWERLEFT,
|
|
AMG_UPPERCORNER,
|
|
AMG_LOWERCORNER,
|
|
AMG_UPPERTOP1ST,
|
|
AMG_LOWERTOP1ST,
|
|
AMG_UPPERTOP2ND,
|
|
AMG_LOWERTOP2ND,
|
|
AMG_UPPERSWOOP,
|
|
AMG_LOWERSWOOP,
|
|
AMG_TOPRIGHT,
|
|
AMG_BOTTOMRIGHT,
|
|
AMG_PLAYERBKGRND,
|
|
AMG_MAX
|
|
} attackmenu_graphics_t;
|
|
|
|
menugraphics_s attackmenu_graphics[AMG_MAX] =
|
|
{
|
|
// type timer x y width height file/text graphic, min max target inc style color
|
|
MG_GRAPHIC, 0.0, 158, 280, 4, 32, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_MIDLEFT
|
|
MG_GRAPHIC, 0.0, 158, 180, 8, 97, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_UPPERLEFT
|
|
MG_GRAPHIC, 0.0, 158, 315, 8, 100, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_LOWERLEFT
|
|
MG_GRAPHIC, 0.0, 158, 164, 16, 16, "menu/common/corner_lu.tga",0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_UPPERCORNER
|
|
MG_GRAPHIC, 0.0, 158, 406, 32, 32, "menu/common/newswoosh.tga",0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_LOWERCORNER
|
|
|
|
MG_GRAPHIC, 0.0, 177, 164, 280, 8, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_UPPERTOP1ST
|
|
MG_GRAPHIC, 0.0, 175, 410, 282, 18, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_LOWERTOP1ST
|
|
|
|
MG_GRAPHIC, 0.0, 457, 164, 34, 8, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_UPPERTOP2ND
|
|
MG_GRAPHIC, 0.0, 457, 410, 34, 18, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_LOWERTOP2ND
|
|
|
|
MG_GRAPHIC, 0.0, 494, 164, 128, 128, "menu/common/swoosh_top.tga",0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_UPPERSWOOP
|
|
MG_GRAPHIC, 0.0, 483, 403, 128, 32, "menu/common/newswoosh_long.tga",0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_LOWERSWOOP
|
|
|
|
MG_GRAPHIC, 0.0, 501, 189, 110, 17, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_TOPRIGHT
|
|
MG_GRAPHIC, 0.0, 501, 383, 110, 17, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_BOTTOMRIGHT
|
|
|
|
MG_GRAPHIC, 0.0, 501, 206, 110, 177, "menu/common/square.tga", 0, 0, 0, 0, 0, 0, 0, CT_VDKPURPLE1, NULL, // AMG_PLAYERBKGRND
|
|
};
|
|
static int g_section;
|
|
|
|
static menuframework_s s_weapons_menu;
|
|
static menubitmap_s s_controls_playermdl;
|
|
static menubitmap_s s_controls_weapon;
|
|
static menuaction_s s_attack_weapon0_action;
|
|
static menuaction_s s_attack_weapon1_action;
|
|
static menuaction_s s_attack_weapon2_action;
|
|
static menuaction_s s_attack_weapon3_action;
|
|
static menuaction_s s_attack_weapon4_action;
|
|
static menuaction_s s_attack_weapon5_action;
|
|
static menuaction_s s_attack_weapon6_action;
|
|
static menuaction_s s_attack_weapon7_action;
|
|
static menuaction_s s_attack_weapon8_action;
|
|
static menuaction_s s_attack_weapon9_action;
|
|
static menuaction_s s_attack_weapon_next_action;
|
|
static menuaction_s s_attack_weapon_prev_action;
|
|
static menuaction_s s_attack_waiting_action;
|
|
|
|
static menubitmap_s s_controls_default;
|
|
|
|
static menubitmap_s s_controls_look;
|
|
|
|
static menuframework_s s_controlscommand_menu;
|
|
static menuframework_s s_controlslook_menu;
|
|
static menuaction_s s_attack_attack_action;
|
|
static menuaction_s s_attack_alt_attack_action;
|
|
static menuaction_s s_attack_objectives;
|
|
static menuaction_s s_attack_use_action;
|
|
static menuaction_s s_attack_use_inv_action;
|
|
static menuaction_s s_look_lookup_action;
|
|
static menuaction_s s_look_lookdown_action;
|
|
static menuaction_s s_look_mouselook_action;
|
|
static menuaction_s s_look_centerview_action;
|
|
static menuaction_s s_zoomview_action;
|
|
|
|
static menuaction_s s_equip_action;
|
|
static menuaction_s s_drop_action; // RPG-X | Marcin | 04/12/2008
|
|
|
|
static menuframework_s s_controlsmove_menu;
|
|
static menuframework_s s_controlscommand_menu;
|
|
|
|
static menuframework_s s_controlsmouse_menu;
|
|
//atic menulist_s s_joyenable_box;
|
|
//static menuslider_s s_joythreshold_slider;
|
|
static menulist_s s_forcefeedback_box;
|
|
static menulist_s s_joyxbutton_box;
|
|
static menulist_s s_joyybutton_box;
|
|
|
|
static menubitmap_s s_controls_movement;
|
|
static menuaction_s s_move_walkforward_action;
|
|
static menuaction_s s_move_backpedal_action;
|
|
static menuaction_s s_move_turnleft_action;
|
|
static menuaction_s s_move_turnright_action;
|
|
static menuaction_s s_move_run_action;
|
|
static menuaction_s s_move_stepleft_action;
|
|
static menuaction_s s_move_stepright_action;
|
|
static menuaction_s s_move_sidestep_action;
|
|
static menuaction_s s_move_moveup_action;
|
|
static menuaction_s s_move_movedown_action;
|
|
|
|
//RPG-X - Modelview Menu
|
|
static menuframework_s s_controlsmodelview_menu; //Modelview menu
|
|
static menubitmap_s s_controls_modelview; //Main model view button
|
|
static menubitmap_s s_thirdperson_action;
|
|
static menubitmap_s s_thirdpersoncommit_action;
|
|
static menubitmap_s s_thirdpersonrevert_action;
|
|
static menubitmap_s s_thirdpersonreset_action;
|
|
static menuaction_s s_zoomforward_action;
|
|
static menuaction_s s_zoombackward_action;
|
|
static menuaction_s s_panleft_action;
|
|
static menuaction_s s_panright_action;
|
|
static menuaction_s s_panup_action;
|
|
static menuaction_s s_pandown_action;
|
|
static menuaction_s s_rotateleft_action;
|
|
static menuaction_s s_rotateright_action;
|
|
static menuaction_s s_pitchup_action;
|
|
static menuaction_s s_pitchdown_action;
|
|
|
|
static menubitmap_s s_controls_command;
|
|
static menubitmap_s s_controls_mouse;
|
|
static menubitmap_s s_controls_other;
|
|
|
|
#define ID_CONTROLSCOMMAND 200
|
|
#define ID_CONTROLSLOOK 201
|
|
#define ID_CONTROLSMOVE 202
|
|
#define ID_CONTROLSMOUSE 203
|
|
#define ID_CONTROLSOTHER 204
|
|
#define ID_CONTROLSDEFAULT 205
|
|
//RPG-X : TiM
|
|
#define ID_CONTROLSMODELVIEW 206
|
|
|
|
#define ID_DEFAULT_YES 300
|
|
#define ID_DEFAULT_NO 301
|
|
|
|
#define C_WEAPONS 0
|
|
#define C_COMMAND 1
|
|
#define C_LOOK 2
|
|
#define C_MOVE 3
|
|
#define C_MODELVIEW 4
|
|
#define C_MOUSE 5
|
|
#define C_OTHER 6
|
|
#define C_MAX 7 //6 - TiM
|
|
|
|
// control sections
|
|
#define C_MOVEMENT 0
|
|
#define C_LOOKING 1
|
|
//#define C_WEAPONS 2
|
|
#define C_MISC 3
|
|
//#define C_MAX 4
|
|
|
|
typedef struct {
|
|
char *command;
|
|
int label;
|
|
int id;
|
|
int anim;
|
|
int defaultbind1;
|
|
// int defaultbind2;
|
|
int bind1;
|
|
int bind2;
|
|
int bind3;
|
|
int desc;
|
|
} bind_t;
|
|
|
|
typedef struct
|
|
{
|
|
char* name;
|
|
float defaultvalue;
|
|
float value;
|
|
} configcvar_t;
|
|
|
|
#define SAVE_NOOP 0
|
|
#define SAVE_YES 1
|
|
#define SAVE_NO 2
|
|
#define SAVE_CANCEL 3
|
|
|
|
#define ID_MOVEMENT 100
|
|
#define ID_LOOKING 101
|
|
#define ID_WEAPONS 102
|
|
//#define ID_MISC 103
|
|
//#define ID_DEFAULTS 104
|
|
//#define ID_BACK 105
|
|
#define ID_SAVEANDEXIT 106
|
|
#define ID_EXIT 107
|
|
|
|
// bindable actions
|
|
#define ID_SHOWSCORES 0
|
|
#define ID_USEITEM 1
|
|
#define ID_SPEED 2
|
|
#define ID_FORWARD 3
|
|
#define ID_BACKPEDAL 4
|
|
#define ID_MOVELEFT 5
|
|
#define ID_MOVERIGHT 6
|
|
#define ID_MOVEUP 7
|
|
#define ID_MOVEDOWN 8
|
|
#define ID_LEFT 9
|
|
#define ID_RIGHT 10
|
|
#define ID_STRAFE 11
|
|
#define ID_LOOKUP 12
|
|
#define ID_LOOKDOWN 13
|
|
#define ID_MOUSELOOK 14
|
|
#define ID_CENTERVIEW 15
|
|
#define ID_ZOOMVIEW 16
|
|
#define ID_WEAPON1 17
|
|
#define ID_WEAPON2 18
|
|
#define ID_WEAPON3 19
|
|
#define ID_WEAPON4 20
|
|
#define ID_WEAPON5 21
|
|
#define ID_WEAPON0 22
|
|
//#define ID_WEAPON6 22
|
|
//#define ID_WEAPON7 23
|
|
//#define ID_WEAPON8 24
|
|
//#define ID_WEAPON9 25
|
|
#define ID_ATTACK 23
|
|
#define ID_ALT_ATTACK 24
|
|
#define ID_WEAPPREV 25
|
|
#define ID_WEAPNEXT 26
|
|
#define ID_GESTURE 27
|
|
#define ID_EQUIP 28
|
|
#define ID_DROP 29 // RPG-X | Marcin | 04/12/2008
|
|
#define ID_CHAT 30
|
|
#define ID_CHAT2 31
|
|
#define ID_CHAT3 32
|
|
#define ID_CHAT4 33
|
|
//#define ID_CHAT5 34
|
|
|
|
|
|
// START MOD
|
|
//#define ID_CHAT5 900
|
|
// END MOD
|
|
#define ID_USEINVENTORY 34
|
|
#define ID_OBJECTIVES 35
|
|
|
|
#define ID_TOGGLE3DP 36
|
|
#define ID_COMMITANGLES 37
|
|
#define ID_REVERTANGLES 38
|
|
#define ID_RESETANGLES 39
|
|
|
|
#define ID_ZOOMFORWARD 40
|
|
#define ID_ZOOMBACKWARD 41
|
|
#define ID_PANLEFT 42
|
|
#define ID_PANRIGHT 43
|
|
#define ID_PANUP 44
|
|
#define ID_PANDOWN 45
|
|
#define ID_ROTATELEFT 46
|
|
#define ID_ROTATERIGHT 47
|
|
#define ID_PITCHUP 48
|
|
#define ID_PITCHDOWN 49
|
|
|
|
#define ID_USE 1
|
|
|
|
// all others
|
|
#define ID_FREELOOK 50
|
|
#define ID_INVERTMOUSE 51
|
|
#define ID_ALWAYSRUN 52
|
|
#define ID_AUTOSWITCH 53
|
|
#define ID_MOUSESPEED 54
|
|
#define ID_JOYENABLE 55
|
|
#define ID_JOYTHRESHOLD 56
|
|
#define ID_SMOOTHMOUSE 57
|
|
|
|
#define ANIM_IDLE 0
|
|
#define ANIM_RUN 1
|
|
#define ANIM_WALK 2
|
|
#define ANIM_BACK 3
|
|
#define ANIM_JUMP 4
|
|
#define ANIM_CROUCH 5
|
|
#define ANIM_STEPLEFT 6
|
|
#define ANIM_STEPRIGHT 7
|
|
#define ANIM_TURNLEFT 8
|
|
#define ANIM_TURNRIGHT 9
|
|
#define ANIM_LOOKUP 10
|
|
#define ANIM_LOOKDOWN 11
|
|
#define ANIM_WEAPON1 12
|
|
#define ANIM_WEAPON2 13
|
|
#define ANIM_WEAPON3 14
|
|
#define ANIM_WEAPON4 15
|
|
#define ANIM_WEAPON5 16
|
|
/*#define ANIM_WEAPON6 17
|
|
#define ANIM_WEAPON7 18
|
|
#define ANIM_WEAPON8 19
|
|
#define ANIM_WEAPON9 20
|
|
#define ANIM_WEAPON10 21*/
|
|
#define ANIM_ATTACK 22
|
|
#define ANIM_GESTURE 23
|
|
#define ANIM_DIE 24
|
|
#define ANIM_CHAT 25
|
|
|
|
typedef struct
|
|
{
|
|
menuframework_s menu;
|
|
|
|
menutext_s banner;
|
|
menubitmap_s framel;
|
|
menubitmap_s framer;
|
|
menubitmap_s player;
|
|
|
|
menutext_s movement;
|
|
menutext_s looking;
|
|
menutext_s weapons;
|
|
menutext_s misc;
|
|
|
|
menuaction_s walkforward;
|
|
menuaction_s backpedal;
|
|
menuaction_s stepleft;
|
|
menuaction_s stepright;
|
|
menuaction_s moveup;
|
|
menuaction_s movedown;
|
|
menuaction_s turnleft;
|
|
menuaction_s turnright;
|
|
menuaction_s sidestep;
|
|
menuaction_s run;
|
|
menuaction_s machinegun;
|
|
menuaction_s attack;
|
|
menuaction_s prevweapon;
|
|
menuaction_s nextweapon;
|
|
menuaction_s lookup;
|
|
menuaction_s lookdown;
|
|
menuaction_s mouselook;
|
|
menulist_s freelook;
|
|
menuaction_s centerview;
|
|
menuaction_s zoomview;
|
|
menuaction_s gesture;
|
|
menulist_s invertmouse;
|
|
menuslider_s sensitivity;
|
|
menulist_s smoothmouse;
|
|
menulist_s alwaysrun;
|
|
menuaction_s showscores;
|
|
menulist_s autoswitch;
|
|
menuaction_s useitem;
|
|
playerInfo_t playerinfo;
|
|
qboolean changesmade;
|
|
menuaction_s chat;
|
|
menuaction_s chat2;
|
|
menuaction_s chat3;
|
|
menuaction_s chat4;
|
|
menuaction_s chat5;
|
|
menulist_s joyenable;
|
|
menuslider_s joythreshold;
|
|
int section;
|
|
qboolean waitingforkey;
|
|
char playerModel[64];
|
|
vec3_t playerViewangles;
|
|
vec3_t playerMoveangles;
|
|
int playerLegs;
|
|
int playerTorso;
|
|
int playerWeapon;
|
|
qboolean playerChat;
|
|
|
|
menubitmap_s back;
|
|
menutext_s name;
|
|
} controls_t;
|
|
|
|
static controls_t s_controls;
|
|
|
|
static vec4_t controls_binding_color = {1.00, 0.43, 0.00, 1.00};
|
|
|
|
static bind_t g_bindings[] =
|
|
{
|
|
{"+info", MNT_SHORTCUT_SCORES, ID_SHOWSCORES, ANIM_IDLE, K_TAB, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+use", MNT_SHORTCUT_USEOBJECT, ID_USEITEM, ANIM_IDLE, K_ENTER, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+speed", MNT_SHORTCUT_RUNWALK, ID_SPEED, ANIM_RUN, K_SHIFT, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+forward", MNT_SHORTCUT_WALKFORWARD, ID_FORWARD, ANIM_WALK, K_UPARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+back", MNT_SHORTCUT_BACKPEDAL, ID_BACKPEDAL, ANIM_BACK, K_DOWNARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+moveleft", MNT_SHORTCUT_STEPLEFT, ID_MOVELEFT, ANIM_STEPLEFT, ',', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+moveright", MNT_SHORTCUT_STEPRIGHT, ID_MOVERIGHT, ANIM_STEPRIGHT, '.', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+moveup", MNT_SHORTCUT_UPJUMP, ID_MOVEUP, ANIM_JUMP, 'd', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+movedown", MNT_SHORTCUT_DOWNCROUCH, ID_MOVEDOWN, ANIM_CROUCH, 'c', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+left", MNT_SHORTCUT_TURNLEFT, ID_LEFT, ANIM_TURNLEFT, K_LEFTARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+right", MNT_SHORTCUT_TURNRIGHT, ID_RIGHT, ANIM_TURNRIGHT, K_RIGHTARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+strafe", MNT_SHORTCUT_SIDESTEPTURN, ID_STRAFE, ANIM_IDLE, K_ALT, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+lookup", MNT_SHORTCUT_LOOKUP, ID_LOOKUP, ANIM_LOOKUP, K_PGDN, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+lookdown", MNT_SHORTCUT_LOOKDOWN, ID_LOOKDOWN, ANIM_LOOKDOWN, K_DEL, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"laser", MNT_SHORTCUT_MOUSELOOK, ID_MOUSELOOK, ANIM_IDLE, 'r', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
// {"+mlook", MNT_SHORTCUT_MOUSELOOK, ID_MOUSELOOK, ANIM_IDLE, '/', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"centerview", MNT_SHORTCUT_CENTERVIEW, ID_CENTERVIEW, ANIM_IDLE, K_END, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+zoom", MNT_SHORTCUT_ZOOMVIEW, ID_ZOOMVIEW, ANIM_IDLE, -1, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 1", MNT_SHORTCUT_WEAPON1, ID_WEAPON1, ANIM_WEAPON1, '1', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 2", MNT_SHORTCUT_WEAPON2, ID_WEAPON2, ANIM_WEAPON2, '2', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 3", MNT_SHORTCUT_WEAPON3, ID_WEAPON3, ANIM_WEAPON3, '3', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 4", MNT_SHORTCUT_WEAPON4, ID_WEAPON4, ANIM_WEAPON4, '4', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 5", MNT_SHORTCUT_WEAPON5, ID_WEAPON5, ANIM_WEAPON5, '5', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 0", MNT_SHORTCUT_WEAPON0, ID_WEAPON0, ANIM_WEAPON10, '0', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
/*{"weapon 6", MNT_SHORTCUT_WEAPON6, ID_WEAPON6, ANIM_WEAPON6, '6', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 7", MNT_SHORTCUT_WEAPON7, ID_WEAPON7, ANIM_WEAPON7, '7', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 8", MNT_SHORTCUT_WEAPON8, ID_WEAPON8, ANIM_WEAPON8, '8', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapon 9", MNT_SHORTCUT_WEAPON9, ID_WEAPON9, ANIM_WEAPON9, '9', -1, -1, -1,MNT_SHORTCUT_KEY},*/
|
|
{"+attack", MNT_SHORTCUT_ATTACK, ID_ATTACK, ANIM_ATTACK, K_CTRL, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+altattack", MNT_SHORTCUT_ALTATTCK, ID_ALT_ATTACK, ANIM_ATTACK, K_MOUSE2, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapprev", MNT_SHORTCUT_PREVWEAPON, ID_WEAPPREV, ANIM_IDLE, '[', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"weapnext", MNT_SHORTCUT_NEXTWEAPON, ID_WEAPNEXT, ANIM_IDLE, ']', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+button3", MNT_SHORTCUT_GESTURE, ID_GESTURE, ANIM_GESTURE, K_MOUSE3, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"equip", MNT_SHORTCUT_EQUIP, ID_EQUIP, ANIM_IDLE, 'p', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
// RPG-X | Marcin | 04/12/2008
|
|
{"drop", MNT_SHORTCUT_DROP, ID_DROP, ANIM_IDLE, 'g', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"messagemode", MNT_SHORTCUT_CHAT, ID_CHAT, ANIM_CHAT, 'y', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"messagemode2", MNT_SHORTCUT_CHATTEAM, ID_CHAT2, ANIM_CHAT, 't', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"messagemode3", MNT_SHORTCUT_CHATTARGET, ID_CHAT3, ANIM_CHAT, -1, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"messagemode4", MNT_SHORTCUT_CHATATTACKER, ID_CHAT4, ANIM_CHAT, -1, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
// {"messagemode5", MNT_SHORTCUT_CHATCLASS, ID_CHAT5, ANIM_CHAT, -1, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+button2", MNT_SHORTCUT_USEINVENTORY, ID_USEINVENTORY,ANIM_IDLE, K_SPACE, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"flashlight", MNT_SHORTCUT_OBJECTIVES, ID_OBJECTIVES, ANIM_IDLE, 'q', -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"thirdPerson", MNT_SHORTCUT_TOGGLE3RDPERSON, ID_TOGGLE3DP, ANIM_IDLE, K_KP_5, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"thirdPersonCommit", MNT_SHORTCUT_COMMITANGLES, ID_COMMITANGLES,ANIM_IDLE, K_KP_ENTER, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"thirdPersonRevert", MNT_SHORTCUT_REVERTANGLES, ID_REVERTANGLES,ANIM_IDLE, K_KP_INS, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"thirdPersonReset", MNT_SHORTCUT_RESETANGLES, ID_RESETANGLES, ANIM_IDLE, K_KP_DEL, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonForward", MNT_SHORTCUT_MODELVIEW_FORWARD, ID_ZOOMFORWARD, ANIM_IDLE, K_KP_UPARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonBackward", MNT_SHORTCUT_MODELVIEW_BACKWARD,ID_ZOOMBACKWARD,ANIM_IDLE, K_KP_DOWNARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonLeft", MNT_SHORTCUT_MODELVIEW_LEFT, ID_PANLEFT, ANIM_IDLE, K_KP_STAR, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonRight", MNT_SHORTCUT_MODELVIEW_RIGHT, ID_PANRIGHT, ANIM_IDLE, K_KP_MINUS, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonUp", MNT_SHORTCUT_MODELVIEW_UP, ID_PANUP, ANIM_IDLE, K_KP_PGUP, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonDown", MNT_SHORTCUT_MODELVIEW_DOWN, ID_PANDOWN, ANIM_IDLE, K_KP_DEL, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonAngleLeft", MNT_SHORTCUT_MODELVIEW_ROTLEFT, ID_ROTATELEFT, ANIM_IDLE, K_KP_LEFTARROW, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonAngleRight", MNT_SHORTCUT_MODELVIEW_ROTRIGHT,ID_ROTATERIGHT, ANIM_IDLE, K_KP_RIGHTARROW,-1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonPitchUp", MNT_SHORTCUT_MODELVIEW_PITCHUP, ID_PITCHUP, ANIM_IDLE, K_KP_HOME, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{"+thirdPersonPitchDown", MNT_SHORTCUT_MODELVIEW_PITCHDOWN,ID_PITCHDOWN, ANIM_IDLE, K_KP_END, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
// {"+analysis", MNT_SHORTCUT_OBJECTIVES, ID_OBJECTIVES, ANIM_IDLE, -1, -1, -1, -1,MNT_SHORTCUT_KEY},
|
|
{(char*)NULL, 0, 0, 0, -1, -1, -1, -1,0},
|
|
};
|
|
|
|
static configcvar_t g_configcvars[] =
|
|
{
|
|
{"cl_run", 0, 0},
|
|
{"m_pitch", 0, 0},
|
|
{"cg_autoswitch", 0, 0},
|
|
{"sensitivity", 0, 0},
|
|
{"in_joystick", 0, 0},
|
|
{"joy_threshold", 0, 0},
|
|
{"m_filter", 0, 0},
|
|
{"cl_freelook", 0, 0},
|
|
{"cl_anglespeedkey",0, 0},
|
|
{"joy_xbutton", 0, 0},
|
|
{"joy_ybutton", 0, 0},
|
|
{NULL, 0, 0}
|
|
};
|
|
|
|
static void* g_attack_controls[] =
|
|
{
|
|
&s_attack_weapon1_action,
|
|
&s_attack_weapon2_action,
|
|
&s_attack_weapon3_action,
|
|
&s_attack_weapon4_action,
|
|
&s_attack_weapon5_action,
|
|
&s_attack_weapon0_action,
|
|
/*&s_attack_weapon6_action,
|
|
&s_attack_weapon7_action,
|
|
&s_attack_weapon8_action,
|
|
&s_attack_weapon9_action,*/
|
|
&s_attack_weapon_next_action,
|
|
&s_attack_weapon_prev_action,
|
|
NULL,
|
|
};
|
|
|
|
|
|
static void* g_move_controls[] =
|
|
{
|
|
&s_move_walkforward_action,
|
|
&s_move_backpedal_action,
|
|
&s_move_turnleft_action,
|
|
&s_move_turnright_action,
|
|
&s_move_run_action,
|
|
&s_move_stepleft_action,
|
|
&s_move_stepright_action,
|
|
&s_move_sidestep_action,
|
|
&s_move_moveup_action,
|
|
&s_move_movedown_action,
|
|
// &s_alwaysrun_box,
|
|
NULL
|
|
};
|
|
|
|
|
|
static void* g_command_controls[] =
|
|
{
|
|
&s_controls.chat2,
|
|
&s_controls.chat,
|
|
&s_controls.chat3,
|
|
//&s_controls.chat4,
|
|
//&s_controls.chat5,
|
|
&s_controls.gesture,
|
|
&s_equip_action,
|
|
&s_drop_action, // RPG-X | Marcin | 04/12/2008
|
|
&s_thirdperson_action,
|
|
&s_thirdpersonrevert_action,
|
|
&s_thirdpersoncommit_action,
|
|
&s_thirdpersonreset_action,
|
|
NULL,
|
|
};
|
|
|
|
|
|
static void* g_attacklook_controls[] =
|
|
{
|
|
&s_attack_attack_action,
|
|
&s_attack_alt_attack_action,
|
|
&s_attack_use_action,
|
|
&s_attack_use_inv_action,
|
|
&s_attack_objectives,
|
|
&s_look_mouselook_action,
|
|
&s_look_lookup_action,
|
|
&s_look_lookdown_action,
|
|
//
|
|
&s_look_centerview_action,
|
|
&s_zoomview_action,
|
|
&s_controls.showscores,
|
|
NULL,
|
|
};
|
|
|
|
static void* g_mouse_controls[] =
|
|
{
|
|
&s_controls.freelook,
|
|
&s_controls.sensitivity,
|
|
&s_controls.invertmouse,
|
|
&s_controls.smoothmouse,
|
|
NULL,
|
|
};
|
|
|
|
static void* g_modelview_controls[] =
|
|
{
|
|
&s_zoomforward_action,
|
|
&s_zoombackward_action,
|
|
&s_panleft_action,
|
|
&s_panright_action,
|
|
&s_panup_action,
|
|
&s_pandown_action,
|
|
&s_rotateleft_action,
|
|
&s_rotateright_action,
|
|
&s_pitchup_action,
|
|
&s_pitchdown_action,
|
|
NULL,
|
|
};
|
|
|
|
static void** g_controls[] =
|
|
{
|
|
g_attack_controls,
|
|
g_command_controls,
|
|
g_attacklook_controls,
|
|
g_move_controls,
|
|
g_modelview_controls,
|
|
g_mouse_controls,
|
|
g_command_controls
|
|
};
|
|
|
|
static menucommon_s *g_movement_controls[] =
|
|
{
|
|
(menucommon_s *)&s_controls.alwaysrun,
|
|
(menucommon_s *)&s_controls.run,
|
|
(menucommon_s *)&s_controls.walkforward,
|
|
(menucommon_s *)&s_controls.backpedal,
|
|
(menucommon_s *)&s_controls.stepleft,
|
|
(menucommon_s *)&s_controls.stepright,
|
|
(menucommon_s *)&s_controls.moveup,
|
|
(menucommon_s *)&s_controls.movedown,
|
|
(menucommon_s *)&s_controls.turnleft,
|
|
(menucommon_s *)&s_controls.turnright,
|
|
(menucommon_s *)&s_controls.sidestep,
|
|
NULL
|
|
};
|
|
|
|
|
|
static menucommon_s *g_looking_controls[] =
|
|
{
|
|
(menucommon_s *)&s_controls.sensitivity,
|
|
(menucommon_s *)&s_controls.smoothmouse,
|
|
(menucommon_s *)&s_controls.invertmouse,
|
|
(menucommon_s *)&s_controls.lookup,
|
|
(menucommon_s *)&s_controls.lookdown,
|
|
(menucommon_s *)&s_controls.mouselook,
|
|
(menucommon_s *)&s_controls.freelook,
|
|
(menucommon_s *)&s_controls.centerview,
|
|
(menucommon_s *)&s_controls.zoomview,
|
|
(menucommon_s *)&s_controls.joyenable,
|
|
(menucommon_s *)&s_controls.joythreshold,
|
|
NULL,
|
|
};
|
|
|
|
static menucommon_s *g_misc_controls[] =
|
|
{
|
|
(menucommon_s *)&s_controls.showscores,
|
|
(menucommon_s *)&s_controls.useitem,
|
|
(menucommon_s *)&s_controls.gesture,
|
|
(menucommon_s *)&s_controls.chat,
|
|
(menucommon_s *)&s_controls.chat2,
|
|
(menucommon_s *)&s_controls.chat3,
|
|
(menucommon_s *)&s_controls.chat4,
|
|
(menucommon_s *)&s_controls.chat5,
|
|
(menucommon_s *)&s_controls.gesture,
|
|
(menucommon_s *)&s_controls.showscores,
|
|
NULL,
|
|
};
|
|
|
|
/*
|
|
=================
|
|
Setup_ResetDefaults_Action
|
|
=================
|
|
*/
|
|
void Setup_ResetDefaults_Action( qboolean result ) {
|
|
if( !result ) {
|
|
return;
|
|
}
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, "exec default.cfg\n");
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, "cvar_restart\n");
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart\n" );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_InitCvars
|
|
=================
|
|
*/
|
|
static void Controls_InitCvars( void )
|
|
{
|
|
int i;
|
|
configcvar_t* cvarptr;
|
|
|
|
cvarptr = g_configcvars;
|
|
for (i=0; ;i++,cvarptr++)
|
|
{
|
|
if (!cvarptr->name)
|
|
break;
|
|
|
|
// get current value
|
|
cvarptr->value = trap_Cvar_VariableValue( cvarptr->name );
|
|
|
|
// get default value
|
|
trap_Cvar_Reset( cvarptr->name );
|
|
cvarptr->defaultvalue = trap_Cvar_VariableValue( cvarptr->name );
|
|
|
|
// restore current value
|
|
trap_Cvar_SetValue( cvarptr->name, cvarptr->value );
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_GetCvarDefault
|
|
=================
|
|
*/
|
|
/*
|
|
static float Controls_GetCvarDefault( char* name )
|
|
{
|
|
configcvar_t* cvarptr;
|
|
int i;
|
|
|
|
cvarptr = g_configcvars;
|
|
for (i=0; ;i++,cvarptr++)
|
|
{
|
|
if (!cvarptr->name)
|
|
return (0);
|
|
|
|
if (!strcmp(cvarptr->name,name))
|
|
break;
|
|
}
|
|
|
|
return (cvarptr->defaultvalue);
|
|
}
|
|
*/
|
|
/*
|
|
=================
|
|
Controls_GetCvarValue
|
|
=================
|
|
*/
|
|
static float Controls_GetCvarValue( char* name )
|
|
{
|
|
configcvar_t* cvarptr;
|
|
int i;
|
|
|
|
cvarptr = g_configcvars;
|
|
for (i=0; ;i++,cvarptr++)
|
|
{
|
|
if (!cvarptr->name)
|
|
return (0);
|
|
|
|
if (!strcmp(cvarptr->name,name))
|
|
break;
|
|
}
|
|
|
|
return (cvarptr->value);
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
Controls_UpdateModel
|
|
=================
|
|
*/
|
|
|
|
static void Controls_UpdateModel( int anim )
|
|
{
|
|
VectorClear( s_controls.playerViewangles );
|
|
VectorClear( s_controls.playerMoveangles );
|
|
s_controls.playerViewangles[YAW] = uis.lastYaw; //180 + 10
|
|
s_controls.playerMoveangles[YAW] = s_controls.playerViewangles[YAW];
|
|
s_controls.playerLegs = BOTH_STAND1; //LEGS_IDLE
|
|
s_controls.playerWeapon = -1;
|
|
s_controls.playerChat = qfalse;
|
|
s_controls.playerTorso = BOTH_STAND1;
|
|
|
|
switch( anim )
|
|
{
|
|
//TiM : the anim selection code from PMove was adapted to this so it'll play the same animations
|
|
//per weapon from ingame :)
|
|
case ANIM_RUN:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_RUN, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_RUN, s_controls.playerWeapon, qfalse ); //LEGS_RUN
|
|
break;
|
|
|
|
case ANIM_WALK:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qfalse );//LEGS_WALK
|
|
break;
|
|
|
|
case ANIM_BACK:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_BACK, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_BACK, s_controls.playerWeapon, qfalse ); //LEGS_BACK
|
|
break;
|
|
|
|
case ANIM_JUMP:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_JUMP, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_JUMP, s_controls.playerWeapon, qfalse ); //LEGS_JUMP
|
|
break;
|
|
|
|
case ANIM_CROUCH:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_CROUCH, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_CROUCH, s_controls.playerWeapon, qfalse ); //LEGS_IDLECR
|
|
break;
|
|
|
|
case ANIM_TURNLEFT:
|
|
s_controls.playerViewangles[YAW] += 90;
|
|
break;
|
|
|
|
case ANIM_TURNRIGHT:
|
|
s_controls.playerViewangles[YAW] -= 90;
|
|
break;
|
|
|
|
case ANIM_STEPLEFT:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qfalse ); //LEGS_WALK
|
|
s_controls.playerMoveangles[YAW] = s_controls.playerViewangles[YAW] + 90;
|
|
break;
|
|
|
|
case ANIM_STEPRIGHT:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qtrue );
|
|
s_controls.playerLegs = UI_GetAnim( ANIM_WALK, s_controls.playerWeapon, qfalse );
|
|
s_controls.playerMoveangles[YAW] = s_controls.playerViewangles[YAW] - 90;
|
|
break;
|
|
|
|
case ANIM_LOOKUP:
|
|
s_controls.playerViewangles[PITCH] = -45;
|
|
break;
|
|
|
|
case ANIM_LOOKDOWN:
|
|
s_controls.playerViewangles[PITCH] = 45;
|
|
break;
|
|
|
|
case ANIM_WEAPON1:
|
|
s_controls.playerWeapon = WP_TRICORDER;
|
|
break;
|
|
|
|
case ANIM_WEAPON2:
|
|
s_controls.playerWeapon = WP_PHASER;
|
|
break;
|
|
|
|
case ANIM_WEAPON3:
|
|
s_controls.playerWeapon = WP_GRENADE_LAUNCHER;
|
|
break;
|
|
|
|
case ANIM_WEAPON4:
|
|
s_controls.playerWeapon = WP_VOYAGER_HYPO;
|
|
break;
|
|
|
|
case ANIM_WEAPON5:
|
|
s_controls.playerWeapon = WP_HYPERSPANNER;
|
|
break;
|
|
|
|
/*case ANIM_WEAPON6:
|
|
s_controls.playerWeapon = WP_GRENADE_LAUNCHER;
|
|
break;
|
|
|
|
case ANIM_WEAPON7:
|
|
s_controls.playerWeapon = WP_TR116;
|
|
break;
|
|
|
|
case ANIM_WEAPON8:
|
|
s_controls.playerWeapon = WP_VOYAGER_HYPO;
|
|
break;
|
|
|
|
case ANIM_WEAPON9:
|
|
s_controls.playerWeapon = WP_DERMAL_REGEN;
|
|
break;*/
|
|
|
|
case ANIM_WEAPON10:
|
|
s_controls.playerWeapon = WP_NULL_HAND;
|
|
break;
|
|
|
|
case ANIM_ATTACK:
|
|
s_controls.playerTorso = UI_GetAnim( ANIM_ATTACK, s_controls.playerWeapon, qtrue );
|
|
break;
|
|
|
|
case ANIM_GESTURE:
|
|
//s_controls.playerTorso = TORSO_GESTURE;
|
|
//FIXME: qboolean talking?
|
|
break;
|
|
|
|
case ANIM_DIE:
|
|
s_controls.playerLegs = BOTH_DEATH1;
|
|
s_controls.playerTorso = BOTH_DEATH1;
|
|
s_controls.playerWeapon = WP_NONE;
|
|
break;
|
|
|
|
case ANIM_CHAT:
|
|
s_controls.playerChat = qtrue;
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
UI_PlayerInfo_SetInfo( &s_controls.playerinfo, s_controls.playerLegs, s_controls.playerTorso, s_controls.playerViewangles, s_controls.playerMoveangles, s_controls.playerWeapon, trap_Cvar_VariableValue( "height" ), trap_Cvar_VariableValue( "weight" ), s_controls.playerChat );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
Controls_DrawKeyBinding
|
|
=================
|
|
*/
|
|
static void Controls_DrawKeyBinding( void *self )
|
|
{
|
|
menuaction_s* a;
|
|
int x,bindingX;
|
|
int y;
|
|
int b1;
|
|
int b2;
|
|
qboolean c;
|
|
char name[32];
|
|
char name2[32];
|
|
int color,bindingtextcolor, buttontextcolor;
|
|
int width;
|
|
|
|
a = (menuaction_s*) self;
|
|
|
|
if (a->generic.flags & QMF_HIDDEN) // It's bloody invisible
|
|
{
|
|
return;
|
|
}
|
|
|
|
x = a->generic.x;
|
|
y = a->generic.y;
|
|
|
|
c = (Menu_ItemAtCursor( a->generic.parent ) == a);
|
|
|
|
// Set up bindings
|
|
b1 = g_bindings[a->generic.id].bind1;
|
|
if (b1 == -1)
|
|
strcpy(name,"???");
|
|
else
|
|
{
|
|
trap_Key_KeynumToStringBuf( b1, name, 32 );
|
|
Q_strupr(name);
|
|
|
|
b2 = g_bindings[a->generic.id].bind2;
|
|
if (b2 != -1)
|
|
{
|
|
trap_Key_KeynumToStringBuf( b2, name2, 32 );
|
|
Q_strupr(name2);
|
|
strcat( name, va(" %s ",menu_normal_text[MNT_OR]));
|
|
strcat( name, name2 );
|
|
if (g_bindings[a->generic.id].bind3>=0)
|
|
{
|
|
strcat( name, " ...");
|
|
}
|
|
}
|
|
}
|
|
|
|
// Waiting for key input, and this isn't the chosen key so gray it out
|
|
if ((s_controls.waitingforkey) && (a != (menuaction_s*) chosenitem))
|
|
{
|
|
color = CT_MDGREY;
|
|
bindingtextcolor = CT_MDGREY;
|
|
buttontextcolor = CT_BLACK;
|
|
a->generic.flags |= QMF_INACTIVE;
|
|
}
|
|
else // Normal key colors
|
|
{
|
|
a->generic.flags &= ~QMF_INACTIVE;
|
|
bindingtextcolor = CT_WHITE;
|
|
|
|
// Keep the chosenitem lit up even when mouse isn't over it
|
|
// or if mouse is over it
|
|
if (((s_controls.waitingforkey) && (a == (menuaction_s*) chosenitem)) || (c))
|
|
{
|
|
buttontextcolor = CT_WHITE;
|
|
color = CT_LTORANGE;
|
|
}
|
|
else
|
|
{
|
|
buttontextcolor = CT_BLACK;
|
|
color = CT_DKORANGE;
|
|
}
|
|
}
|
|
|
|
if ((c) && (g_bindings[a->generic.id].desc))
|
|
{
|
|
if (menu_normal_text[g_bindings[a->generic.id].desc])
|
|
{
|
|
UI_DrawProportionalString( a->generic.parent->descX, a->generic.parent->descY, menu_normal_text[g_bindings[a->generic.id].desc], UI_LEFT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
}
|
|
}
|
|
|
|
|
|
width = a->width;
|
|
|
|
if (!width)
|
|
{
|
|
// Print button
|
|
trap_R_SetColor( colorTable[color]);
|
|
UI_DrawHandlePic( x , y, 19, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
|
|
UI_DrawHandlePic( x + (SMALLCHAR_WIDTH * 11), y, -19, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd); //right
|
|
UI_DrawHandlePic( x + 8, y, (SMALLCHAR_WIDTH * 11), MENU_BUTTON_MED_HEIGHT, uis.whiteShader);
|
|
trap_R_SetColor( NULL );
|
|
bindingX =x + (SMALLCHAR_WIDTH * 12);
|
|
}
|
|
else
|
|
{
|
|
width -= 8 + 8;
|
|
|
|
// Print button
|
|
trap_R_SetColor( colorTable[color]);
|
|
// Left end
|
|
UI_DrawHandlePic( x , y, 16, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd);
|
|
// Right end
|
|
UI_DrawHandlePic( x + width, y, -16, MENU_BUTTON_MED_HEIGHT, uis.graphicButtonLeftEnd); //right
|
|
// Middle
|
|
UI_DrawHandlePic( x + 8, y, width, MENU_BUTTON_MED_HEIGHT, uis.whiteShader);
|
|
|
|
bindingX = x + 8 + width + 8 + 6;
|
|
|
|
trap_R_SetColor( NULL );
|
|
}
|
|
|
|
// Button text
|
|
if (g_bindings[a->generic.id].label)
|
|
{
|
|
UI_DrawProportionalString( x + a->textX, y + a->textY, menu_normal_text[g_bindings[a->generic.id].label], UI_LEFT|UI_SMALLFONT, colorTable[buttontextcolor] );
|
|
}
|
|
|
|
// Binding text
|
|
UI_DrawProportionalString( bindingX, y, name, UI_SMALLFONT, colorTable[bindingtextcolor] );
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_DrawPlayer
|
|
=================
|
|
*/
|
|
//BOOKMARK
|
|
static void Controls_DrawPlayer( void *self )
|
|
{
|
|
menubitmap_s *b;
|
|
char buf[MAX_QPATH];
|
|
vec3_t origin={ -22, 2, -3 };
|
|
|
|
trap_Cvar_VariableStringBuffer( "model", buf, sizeof( buf ) );
|
|
if ( strcmp( buf, s_controls.playerModel ) != 0 ) {
|
|
|
|
UI_PlayerInfo_SetModel( &s_controls.playerinfo, buf );
|
|
strcpy( s_controls.playerModel, buf );
|
|
Controls_UpdateModel( ANIM_IDLE );
|
|
}
|
|
|
|
b = (menubitmap_s*) self;
|
|
UI_DrawPlayer( b->generic.x, b->generic.y, b->width, b->height, origin, &s_controls.playerinfo, uis.realtime/2 );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
Controls_GetKeyAssignment
|
|
=================
|
|
*/
|
|
static void Controls_GetKeyAssignment (char *command, int *twokeys)
|
|
{
|
|
int count;
|
|
int j;
|
|
char b[256];
|
|
|
|
twokeys[0] = twokeys[1] = twokeys[2] = -1;
|
|
count = 0;
|
|
|
|
for ( j = 0; j < 256; j++ )
|
|
{
|
|
trap_Key_GetBindingBuf( j, b, 256 );
|
|
if ( *b == 0 ) {
|
|
continue;
|
|
}
|
|
if ( !Q_stricmp( b, command ) ) {
|
|
twokeys[count] = j;
|
|
count++;
|
|
if (count == 3)
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_ClearKeyAssignment
|
|
=================
|
|
*/
|
|
static void Controls_ClearKeyAssignment (char *command)
|
|
{
|
|
int i;
|
|
char b[256];
|
|
|
|
for ( i = 0; i < 256; i++ )
|
|
{
|
|
trap_Key_GetBindingBuf( i, b, 256 );
|
|
if ( *b == 0 )
|
|
{
|
|
continue;
|
|
}
|
|
if ( !Q_stricmp( b, command ) )
|
|
{
|
|
trap_Key_SetBinding( i, "" );
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_GetConfig
|
|
=================
|
|
*/
|
|
static void Controls_GetConfig( void )
|
|
{
|
|
int i;
|
|
int twokeys[3];
|
|
bind_t* bindptr;
|
|
|
|
// put the bindings into a local store
|
|
bindptr = g_bindings;
|
|
|
|
// iterate each command, get its numeric binding
|
|
for (i=0; ;i++,bindptr++)
|
|
{
|
|
if (!bindptr->label)
|
|
break;
|
|
|
|
Controls_GetKeyAssignment(bindptr->command, twokeys);
|
|
|
|
bindptr->bind1 = twokeys[0];
|
|
bindptr->bind2 = twokeys[1];
|
|
bindptr->bind3 = twokeys[2];
|
|
}
|
|
|
|
s_controls.invertmouse.curvalue = Controls_GetCvarValue( "m_pitch" ) < 0;
|
|
s_controls.smoothmouse.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "m_filter" ) );
|
|
s_controls.alwaysrun.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "cl_run" ) );
|
|
s_controls.autoswitch.curvalue = UI_ClampCvar( 0, 2, Controls_GetCvarValue( "cg_autoswitch" ) );
|
|
s_controls.sensitivity.curvalue = UI_ClampCvar( 2, 30, Controls_GetCvarValue( "sensitivity" ) );
|
|
s_controls.joyenable.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "in_joystick" ) );
|
|
s_controls.joythreshold.curvalue = UI_ClampCvar( 0.05, 0.75, Controls_GetCvarValue( "joy_threshold" ) );
|
|
s_controls.freelook.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "cl_freelook" ) );
|
|
s_keyturnspeed_slider.curvalue = UI_ClampCvar( 1, 5, Controls_GetCvarValue( "cl_anglespeedkey" ) );
|
|
s_joyxbutton_box.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "joy_xbutton" ) );
|
|
s_joyybutton_box.curvalue = UI_ClampCvar( 0, 1, Controls_GetCvarValue( "joy_ybutton" ) );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_SetJoystick
|
|
=================
|
|
*/
|
|
static void Controls_SetJoystick( void )
|
|
{
|
|
|
|
trap_Cvar_SetValue( "in_joystick", s_controls.joyenable.curvalue );
|
|
trap_Cmd_ExecuteText( EXEC_APPEND, "in_restart\n" );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_SetConfig
|
|
=================
|
|
*/
|
|
static void Controls_SetConfig( void )
|
|
{
|
|
int i;
|
|
bind_t* bindptr;
|
|
|
|
// unbind the command from all keys
|
|
// for (i=0; i<256; i++)
|
|
// {
|
|
// trap_Key_SetBinding( i, "" );
|
|
// }
|
|
|
|
// set the bindings from the local store
|
|
bindptr = g_bindings;
|
|
|
|
// iterate each command, get its numeric binding
|
|
for (i=0; ;i++,bindptr++)
|
|
{
|
|
if (!bindptr->label)
|
|
break;
|
|
|
|
if (bindptr->bind1 != -1)
|
|
{
|
|
trap_Key_SetBinding( bindptr->bind1, bindptr->command );
|
|
|
|
if (bindptr->bind2 != -1)
|
|
trap_Key_SetBinding( bindptr->bind2, bindptr->command );
|
|
}
|
|
}
|
|
|
|
|
|
if ( s_controls.invertmouse.curvalue )
|
|
trap_Cvar_SetValue( "m_pitch", -fabs( trap_Cvar_VariableValue( "m_pitch" ) ) );
|
|
else
|
|
trap_Cvar_SetValue( "m_pitch", fabs( trap_Cvar_VariableValue( "m_pitch" ) ) );
|
|
|
|
trap_Cvar_SetValue( "m_filter", s_controls.smoothmouse.curvalue );
|
|
trap_Cvar_SetValue( "cl_run", s_controls.alwaysrun.curvalue );
|
|
trap_Cvar_SetValue( "cg_autoswitch", s_controls.autoswitch.curvalue );
|
|
trap_Cvar_SetValue( "sensitivity", s_controls.sensitivity.curvalue );
|
|
trap_Cvar_SetValue( "joy_threshold", s_controls.joythreshold.curvalue );
|
|
trap_Cvar_SetValue( "cl_freelook", s_controls.freelook.curvalue );
|
|
trap_Cvar_SetValue( "cl_anglespeedkey", s_keyturnspeed_slider.curvalue );
|
|
trap_Cvar_SetValue( "joy_xbutton", s_joyxbutton_box.curvalue );
|
|
trap_Cvar_SetValue( "joy_ybutton", s_joyybutton_box.curvalue );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_SetDefaults
|
|
=================
|
|
*/
|
|
/*
|
|
static void Controls_SetDefaults( void )
|
|
{
|
|
int i;
|
|
bind_t* bindptr;
|
|
|
|
// set the bindings from the local store
|
|
bindptr = g_bindings;
|
|
|
|
// iterate each command, set its default binding
|
|
for (i=0; ;i++,bindptr++)
|
|
{
|
|
if (!bindptr->label)
|
|
break;
|
|
|
|
bindptr->bind1 = bindptr->defaultbind1;
|
|
bindptr->bind2 = bindptr->defaultbind2;
|
|
}
|
|
|
|
s_controls.invertmouse.curvalue = Controls_GetCvarDefault( "m_pitch" ) < 0;
|
|
s_controls.smoothmouse.curvalue = Controls_GetCvarDefault( "m_filter" );
|
|
s_controls.alwaysrun.curvalue = Controls_GetCvarDefault( "cl_run" );
|
|
s_controls.autoswitch.curvalue = Controls_GetCvarDefault( "cg_autoswitch" );
|
|
s_controls.sensitivity.curvalue = Controls_GetCvarDefault( "sensitivity" );
|
|
s_controls.joyenable.curvalue = Controls_GetCvarDefault( "in_joystick" );
|
|
s_controls.joythreshold.curvalue = Controls_GetCvarDefault( "joy_threshold" );
|
|
s_controls.freelook.curvalue = Controls_GetCvarDefault( "cl_freelook" );
|
|
}
|
|
*/
|
|
/*
|
|
=================
|
|
Controls_MenuKey
|
|
=================
|
|
*/
|
|
static sfxHandle_t Controls_MenuKey( int key )
|
|
{
|
|
int id;
|
|
int i;
|
|
qboolean found;
|
|
bind_t* bindptr;
|
|
menuframework_s* current_menu;
|
|
|
|
found = qfalse;
|
|
|
|
switch (g_section)
|
|
{
|
|
default:
|
|
case C_WEAPONS:
|
|
current_menu = &s_weapons_menu;
|
|
break;
|
|
case C_COMMAND:
|
|
current_menu = &s_controlscommand_menu;
|
|
break;
|
|
case C_LOOK:
|
|
current_menu = &s_controlslook_menu;
|
|
break;
|
|
case C_MOVE:
|
|
current_menu = &s_controlsmove_menu;
|
|
break;
|
|
case C_MOUSE:
|
|
current_menu = &s_controlsmouse_menu;
|
|
break;
|
|
case C_MODELVIEW:
|
|
current_menu = &s_controlsmodelview_menu;
|
|
break;
|
|
}
|
|
|
|
if (!s_controls.waitingforkey)
|
|
{
|
|
switch (key)
|
|
{
|
|
case K_BACKSPACE:
|
|
case K_DEL:
|
|
case K_KP_DEL:
|
|
key = -1;
|
|
break;
|
|
|
|
case K_MOUSE2:
|
|
case K_ESCAPE:
|
|
if (s_controls.changesmade)
|
|
Controls_SetConfig();
|
|
goto ignorekey;
|
|
|
|
default:
|
|
goto ignorekey;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (key & K_CHAR_FLAG)
|
|
goto ignorekey;
|
|
|
|
if ((key<1) || (key>256)) // Ignore high ascii keys
|
|
{
|
|
return (menu_null_sound);
|
|
}
|
|
|
|
switch (key)
|
|
{
|
|
case K_ESCAPE:
|
|
s_controls.waitingforkey = qfalse;
|
|
// Turn off the waiting for key message
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
Controls_UpdateNew();
|
|
return (menu_out_sound);
|
|
|
|
case '`':
|
|
goto ignorekey;
|
|
}
|
|
}
|
|
|
|
s_controls.changesmade = qtrue;
|
|
|
|
if (key != -1)
|
|
{
|
|
// remove from any other bind
|
|
bindptr = g_bindings;
|
|
for (i=0; ;i++,bindptr++)
|
|
{
|
|
if (!bindptr->label)
|
|
break;
|
|
|
|
if (bindptr->bind3 == key)
|
|
{
|
|
bindptr->bind3 = -1;
|
|
}
|
|
else if (bindptr->bind2 == key)
|
|
{
|
|
bindptr->bind2 = bindptr->bind3;
|
|
bindptr->bind3 = -1;
|
|
}
|
|
else if (bindptr->bind1 == key)
|
|
{
|
|
bindptr->bind1 = bindptr->bind2;
|
|
bindptr->bind2 = bindptr->bind3;
|
|
bindptr->bind3 = -1;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// Turn off the waiting for key message
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
|
|
// assign key to local store
|
|
// id = ((menucommon_s*)(s_controls.menu.items[s_controls.menu.cursor]))->id;
|
|
id = ((menucommon_s*)(current_menu->items[current_menu->cursor]))->id;
|
|
bindptr = g_bindings;
|
|
for (i=0; ;i++,bindptr++)
|
|
{
|
|
if (!bindptr->label)
|
|
break;
|
|
|
|
if (bindptr->id == id)
|
|
{
|
|
found = qtrue;
|
|
if (key == -1)
|
|
{
|
|
|
|
Controls_ClearKeyAssignment (bindptr->command);
|
|
bindptr->bind1 = -1;
|
|
bindptr->bind2 = -1;
|
|
bindptr->bind3 = -1;
|
|
/*
|
|
if( bindptr->bind1 != -1 )
|
|
{
|
|
trap_Key_SetBinding( bindptr->bind1, "" );
|
|
bindptr->bind1 = -1;
|
|
}
|
|
if( bindptr->bind2 != -1 )
|
|
{
|
|
trap_Key_SetBinding( bindptr->bind2, "" );
|
|
bindptr->bind2 = -1;
|
|
}*/
|
|
}
|
|
else if (bindptr->bind1 == -1)
|
|
{
|
|
bindptr->bind1 = key;
|
|
}
|
|
else if (bindptr->bind1 != key && bindptr->bind2 == -1)
|
|
{
|
|
bindptr->bind2 = key;
|
|
}
|
|
else
|
|
{
|
|
bindptr->bind3 = bindptr->bind2;
|
|
bindptr->bind2 = bindptr->bind1;
|
|
bindptr->bind1 = key;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
s_controls.waitingforkey = qfalse;
|
|
s_controls.changesmade = qfalse;
|
|
|
|
if (found)
|
|
{
|
|
Controls_SetConfig();
|
|
Controls_UpdateNew();
|
|
return (menu_out_sound);
|
|
}
|
|
|
|
ignorekey:
|
|
return Menu_DefaultKey( current_menu, key );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_ResetDefaults_Action
|
|
=================
|
|
*/
|
|
/*
|
|
static void Controls_ResetDefaults_Action( qboolean result )
|
|
{
|
|
if( !result ) {
|
|
return;
|
|
}
|
|
|
|
s_controls.changesmade = qtrue;
|
|
Controls_SetDefaults();
|
|
Controls_UpdateNew();
|
|
}
|
|
*/
|
|
/*
|
|
=================
|
|
Controls_ActionEvent
|
|
=================
|
|
*/
|
|
static void Controls_ActionEvent( void* ptr, int event )
|
|
{
|
|
menuframework_s* menu;
|
|
|
|
if (event == QM_LOSTFOCUS)
|
|
{
|
|
Controls_UpdateModel( ANIM_IDLE );
|
|
}
|
|
else if (event == QM_GOTFOCUS)
|
|
{
|
|
Controls_UpdateModel( g_bindings[((menucommon_s*)ptr)->id].anim );
|
|
}
|
|
else if ((event == QM_ACTIVATED) && !s_controls.waitingforkey)
|
|
{
|
|
s_controls.waitingforkey = 1;
|
|
// Show your waiting for data
|
|
s_attack_waiting_action.generic.flags &= ~QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.flags |= QMF_BLINK;
|
|
// Turn off 'apply action' so it won't flash
|
|
// s_attack_apply_action.generic.flags = QMF_GRAYED;
|
|
|
|
// Show this it the chosen item
|
|
menu = ((menucommon_s*)ptr)->parent;
|
|
chosenitem = (menucommon_s *) Menu_ItemAtCursor(((menuframework_s*)menu));
|
|
|
|
Controls_UpdateNew();
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_InitModel
|
|
=================
|
|
*/
|
|
static void Controls_InitModel( void )
|
|
{
|
|
memset( &s_controls.playerinfo, 0, sizeof(playerInfo_t) );
|
|
|
|
UI_PlayerInfo_SetModel( &s_controls.playerinfo, UI_Cvar_VariableString( "model" ) );
|
|
|
|
Controls_UpdateModel( ANIM_IDLE );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SetupMenu_TopButtons
|
|
=================
|
|
*/
|
|
void SetupMenu_TopButtons(menuframework_s *menu,int menuType,menuaction_s *s_video_apply_action)
|
|
{
|
|
vid_apply_action = s_video_apply_action;
|
|
|
|
s_controls_mainmenu.generic.type = MTYPE_BITMAP;
|
|
s_controls_mainmenu.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_mainmenu.generic.x = 482;
|
|
s_controls_mainmenu.generic.y = 136;
|
|
s_controls_mainmenu.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_mainmenu.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_mainmenu.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_mainmenu.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_mainmenu.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_mainmenu.color = CT_DKPURPLE1;
|
|
s_controls_mainmenu.color2 = CT_LTPURPLE1;
|
|
s_controls_mainmenu.textX = 5;
|
|
s_controls_mainmenu.textY = 2;
|
|
if (!ingameFlag)
|
|
{
|
|
s_controls_mainmenu.textEnum = MBT_MAINMENU;
|
|
s_controls_mainmenu.generic.id = ID_MAINMENU;
|
|
}
|
|
else // In game menu
|
|
{
|
|
s_controls_mainmenu.textEnum = MBT_INGAMEMENU;
|
|
s_controls_mainmenu.generic.id = ID_INGAMEMENU;
|
|
}
|
|
s_controls_mainmenu.textcolor = CT_BLACK;
|
|
s_controls_mainmenu.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_controls.generic.type = MTYPE_BITMAP;
|
|
s_controls_controls.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_controls.generic.x = setup_menubuttons[0][0];
|
|
s_controls_controls.generic.y = setup_menubuttons[0][1];
|
|
s_controls_controls.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_controls.generic.id = ID_CONTROLS;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_controls.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_controls.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_controls.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_controls.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_controls.color = CT_DKPURPLE1;
|
|
s_controls_controls.color2 = CT_LTPURPLE1;
|
|
s_controls_controls.textX = 5;
|
|
s_controls_controls.textY = 2;
|
|
s_controls_controls.textEnum = MBT_CONTROLS;
|
|
s_controls_controls.textcolor = CT_BLACK;
|
|
s_controls_controls.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_video.generic.type = MTYPE_BITMAP;
|
|
s_controls_video.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_video.generic.x = setup_menubuttons[1][0];
|
|
s_controls_video.generic.y = setup_menubuttons[1][1];
|
|
s_controls_video.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_video.generic.id = ID_VIDEO;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_video.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_video.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_video.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_video.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_video.color = CT_DKPURPLE1;
|
|
s_controls_video.color2 = CT_LTPURPLE1;
|
|
s_controls_video.textX = 5;
|
|
s_controls_video.textY = 2;
|
|
s_controls_video.textEnum = MBT_VIDEOSETTINGS;
|
|
s_controls_video.textcolor = CT_BLACK;
|
|
s_controls_video.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_sound.generic.type = MTYPE_BITMAP;
|
|
s_controls_sound.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_sound.generic.x = setup_menubuttons[2][0];
|
|
s_controls_sound.generic.y = setup_menubuttons[2][1];
|
|
s_controls_sound.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_sound.generic.id = ID_SOUND;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_sound.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_sound.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_sound.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_sound.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_sound.color = CT_DKPURPLE1;
|
|
s_controls_sound.color2 = CT_LTPURPLE1;
|
|
s_controls_sound.textX = 5;
|
|
s_controls_sound.textY = 2;
|
|
s_controls_sound.textEnum = MBT_SOUNDSETTINGS;
|
|
s_controls_sound.textcolor = CT_BLACK;
|
|
s_controls_sound.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_game.generic.type = MTYPE_BITMAP;
|
|
s_controls_game.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_game.generic.x = setup_menubuttons[3][0];
|
|
s_controls_game.generic.y = setup_menubuttons[3][1];
|
|
s_controls_game.generic.name =BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_game.generic.id = ID_GAMEOPTIONS;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_game.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_game.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_game.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_game.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_game.color = CT_DKPURPLE1;
|
|
s_controls_game.color2 = CT_LTPURPLE1;
|
|
s_controls_game.textX = 5;
|
|
s_controls_game.textY = 2;
|
|
s_controls_game.textEnum = MBT_GAMEOPTIONS;
|
|
s_controls_game.textcolor = CT_BLACK;
|
|
s_controls_game.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_player.generic.type = MTYPE_BITMAP;
|
|
s_controls_player.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_player.generic.x = setup_menubuttons[4][0];
|
|
s_controls_player.generic.y = setup_menubuttons[4][1];
|
|
s_controls_player.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_player.generic.id = ID_PLAYER;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_player.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_player.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_player.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_player.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_player.color = CT_DKPURPLE1;
|
|
s_controls_player.color2 = CT_LTPURPLE1;
|
|
s_controls_player.textX = 5;
|
|
s_controls_player.textY = 2;
|
|
s_controls_player.textEnum = MBT_PLAYER;
|
|
s_controls_player.textcolor = CT_BLACK;
|
|
s_controls_player.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_default.generic.type = MTYPE_BITMAP;
|
|
s_controls_default.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_default.generic.x = setup_menubuttons[5][0];
|
|
s_controls_default.generic.y = setup_menubuttons[5][1];
|
|
s_controls_default.generic.name = "menu/common/bar1.tga";
|
|
s_controls_default.generic.id = ID_CONTROLSDEFAULT;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_default.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_default.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_default.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_default.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_default.color = CT_DKPURPLE1;
|
|
s_controls_default.color2 = CT_LTPURPLE1;
|
|
s_controls_default.textX = 5;
|
|
s_controls_default.textY = 2;
|
|
s_controls_default.textEnum = MBT_SETDEFAULT;
|
|
s_controls_default.textcolor = CT_BLACK;
|
|
s_controls_default.textcolor2 = CT_WHITE;
|
|
|
|
s_controls_cdkey.generic.type = MTYPE_BITMAP;
|
|
s_controls_cdkey.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_cdkey.generic.x = setup_menubuttons[6][0];
|
|
s_controls_cdkey.generic.y = setup_menubuttons[6][1];
|
|
s_controls_cdkey.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_cdkey.generic.id = ID_CDKEY;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_cdkey.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_cdkey.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_cdkey.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_cdkey.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_cdkey.color = CT_DKPURPLE1;
|
|
s_controls_cdkey.color2 = CT_LTPURPLE1;
|
|
s_controls_cdkey.textX = 5;
|
|
s_controls_cdkey.textY = 2;
|
|
s_controls_cdkey.textEnum = MBT_CDKEY;
|
|
s_controls_cdkey.textcolor = CT_BLACK;
|
|
s_controls_cdkey.textcolor2 = CT_WHITE;
|
|
|
|
if (uis.demoversion)
|
|
{
|
|
s_controls_cdkey.generic.flags |= QMF_GRAYED;
|
|
}
|
|
/*
|
|
s_controls_network.generic.type = MTYPE_BITMAP;
|
|
s_controls_network.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_network.generic.x = setup_menubuttons[6][0];
|
|
s_controls_network.generic.y = setup_menubuttons[6][1];
|
|
s_controls_network.generic.name = "menu/common/bar1.tga";
|
|
s_controls_network.generic.id = ID_NETWORK;
|
|
s_controls_network.generic.callback = Controls_MenuEvent;
|
|
s_controls_network.width = MENU_BUTTON_MED_WIDTH;
|
|
s_controls_network.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_network.color = CT_DKPURPLE1;
|
|
s_controls_network.color2 = CT_LTPURPLE1;
|
|
s_controls_network.textX = 5;
|
|
s_controls_network.textY = 2;
|
|
s_controls_network.textEnum = MBT_NETWORK;
|
|
s_controls_network.textcolor = CT_BLACK;
|
|
s_controls_network.textcolor2 = CT_WHITE;
|
|
*/
|
|
s_controls_fonts.generic.type = MTYPE_BITMAP;
|
|
s_controls_fonts.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_fonts.generic.x = setup_menubuttons[7][0];
|
|
s_controls_fonts.generic.y = setup_menubuttons[7][1];
|
|
s_controls_fonts.generic.name = BUTTON_GRAPHIC_LONGRIGHT;
|
|
s_controls_fonts.generic.id = ID_FONTS;
|
|
if (menuType != MENU_VIDEODATA)
|
|
{
|
|
s_controls_fonts.generic.callback = Controls_MenuEvent;
|
|
}
|
|
else // How do you spell HACK?
|
|
{
|
|
s_controls_fonts.generic.callback = Controls_MenuEventVideo;
|
|
}
|
|
s_controls_fonts.width = 100;
|
|
s_controls_fonts.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_fonts.color = CT_DKPURPLE1;
|
|
s_controls_fonts.color2 = CT_LTPURPLE1;
|
|
s_controls_fonts.textX = 5;
|
|
s_controls_fonts.textY = 2;
|
|
s_controls_fonts.textEnum = MBT_FONTS;
|
|
s_controls_fonts.textcolor = CT_BLACK;
|
|
s_controls_fonts.textcolor2 = CT_WHITE;
|
|
|
|
if (menuType!=MENU_PLAYER)
|
|
{
|
|
Menu_AddItem( menu, ( void * )&s_controls_mainmenu);
|
|
}
|
|
Menu_AddItem( menu, ( void * )&s_controls_controls);
|
|
Menu_AddItem( menu, ( void * )&s_controls_video);
|
|
Menu_AddItem( menu, ( void * )&s_controls_sound);
|
|
Menu_AddItem( menu, ( void * )&s_controls_game);
|
|
Menu_AddItem( menu, ( void * )&s_controls_player);
|
|
Menu_AddItem( menu, ( void * )&s_controls_default);
|
|
Menu_AddItem( menu, ( void * )&s_controls_cdkey);
|
|
|
|
switch (menuType)
|
|
{
|
|
case MENU_CONTROLS :
|
|
s_controls_controls.textcolor = CT_LTGOLD1;
|
|
s_controls_controls.textcolor2 = CT_LTGOLD1;
|
|
s_controls_controls.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_VIDEO :
|
|
case MENU_VIDEODATA :
|
|
s_controls_video.textcolor = CT_LTGOLD1;
|
|
s_controls_video.textcolor2 = CT_LTGOLD1;
|
|
s_controls_video.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_SOUND :
|
|
s_controls_sound.textcolor = CT_LTGOLD1;
|
|
s_controls_sound.textcolor2 = CT_LTGOLD1;
|
|
s_controls_sound.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_GAME :
|
|
s_controls_game.textcolor = CT_LTGOLD1;
|
|
s_controls_game.textcolor2 = CT_LTGOLD1;
|
|
s_controls_game.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_DEFAULT :
|
|
s_controls_default.textcolor = CT_LTGOLD1;
|
|
s_controls_default.textcolor2 = CT_LTGOLD1;
|
|
s_controls_default.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CDKEY :
|
|
s_controls_cdkey.textcolor = CT_LTGOLD1;
|
|
s_controls_cdkey.textcolor2 = CT_LTGOLD1;
|
|
s_controls_cdkey.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_PLAYER :
|
|
s_controls_player.textcolor = CT_LTGOLD1;
|
|
s_controls_player.textcolor2 = CT_LTGOLD1;
|
|
s_controls_player.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_NETWORK :
|
|
s_controls_network.textcolor = CT_LTGOLD1;
|
|
s_controls_network.textcolor2 = CT_LTGOLD1;
|
|
s_controls_network.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_FONTS :
|
|
s_controls_fonts.textcolor = CT_LTGOLD1;
|
|
s_controls_fonts.textcolor2 = CT_LTGOLD1;
|
|
s_controls_fonts.generic.flags = QMF_GRAYED;
|
|
break;
|
|
}
|
|
|
|
if (trap_Cvar_VariableValue("developer"))
|
|
Menu_AddItem( menu, ( void * )&s_controls_fonts);
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
M_WeaponsMenu_Blinkies
|
|
=================
|
|
*/
|
|
void M_WeaponsMenu_Blinkies (void)
|
|
{
|
|
int i;
|
|
|
|
for (i=0;i<AMG_MAX;++i)
|
|
{
|
|
attackmenu_graphics[i].color = CT_VDKPURPLE1;
|
|
}
|
|
|
|
// Don't flash frame unless waiting for input
|
|
if (!s_controls.waitingforkey)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (attackmenu_graphics[AMG_MIDLEFT].timer < uis.realtime)
|
|
{
|
|
attackmenu_graphics[AMG_MIDLEFT].timer = uis.realtime + 500;
|
|
++attackmenu_graphics[AMG_MIDLEFT].target;
|
|
if (attackmenu_graphics[AMG_MIDLEFT].target > 7)
|
|
{
|
|
attackmenu_graphics[AMG_MIDLEFT].target = 0;
|
|
}
|
|
}
|
|
|
|
switch (attackmenu_graphics[AMG_MIDLEFT].target)
|
|
{
|
|
case 0:
|
|
attackmenu_graphics[AMG_MIDLEFT].color = CT_LTPURPLE1;
|
|
break;
|
|
case 1:
|
|
attackmenu_graphics[AMG_UPPERLEFT].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_LOWERLEFT].color = CT_LTPURPLE1;
|
|
break;
|
|
case 2:
|
|
attackmenu_graphics[AMG_UPPERCORNER].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_LOWERCORNER].color = CT_LTPURPLE1;
|
|
break;
|
|
case 3:
|
|
attackmenu_graphics[AMG_UPPERTOP1ST].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_LOWERTOP1ST].color = CT_LTPURPLE1;
|
|
break;
|
|
case 4:
|
|
attackmenu_graphics[AMG_UPPERTOP2ND].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_LOWERTOP2ND].color = CT_LTPURPLE1;
|
|
break;
|
|
case 5:
|
|
attackmenu_graphics[AMG_UPPERSWOOP].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_LOWERSWOOP].color = CT_LTPURPLE1;
|
|
break;
|
|
case 6:
|
|
attackmenu_graphics[AMG_TOPRIGHT].color = CT_LTPURPLE1;
|
|
attackmenu_graphics[AMG_BOTTOMRIGHT].color = CT_LTPURPLE1;
|
|
break;
|
|
case 7:
|
|
attackmenu_graphics[AMG_PLAYERBKGRND].color = CT_LTPURPLE1;
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
M_WeaponsMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_WeaponsMenu_Graphics (void)
|
|
{
|
|
|
|
UI_MenuFrame(&s_weapons_menu);
|
|
|
|
UI_DrawProportionalString( 74, 66, "56-129",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "33",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "9893",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "12799",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
M_WeaponsMenu_Blinkies();
|
|
|
|
UI_PrintMenuGraphics(attackmenu_graphics,AMG_MAX);
|
|
|
|
UI_DrawProportionalString( 607, 174, "981235",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 607, 406, "5672141",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
if (s_attack_waiting_action.generic.flags & QMF_HIDDEN)
|
|
{
|
|
UI_DrawProportionalString( 207, 411, menu_normal_text[MNT_BACKSPACE],UI_SMALLFONT, colorTable[CT_WHITE]);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Weapons_MenuDraw
|
|
=================
|
|
*/
|
|
static void Weapons_MenuDraw (void)
|
|
{
|
|
M_WeaponsMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_weapons_menu );
|
|
}
|
|
/*
|
|
=================
|
|
WeaponsMenu_Precache
|
|
=================
|
|
*/
|
|
static void WeaponsMenu_Precache( void )
|
|
{
|
|
int i;
|
|
|
|
swooshTop = trap_R_RegisterShaderNoMip("menu/common/swoosh_top.tga");
|
|
swooshBottom= trap_R_RegisterShaderNoMip("menu/common/swoosh_bottom.tga");
|
|
|
|
// Precache all menu graphics in array
|
|
for (i=0;i<AMG_MAX;++i)
|
|
{
|
|
if (attackmenu_graphics[i].type == MG_GRAPHIC)
|
|
{
|
|
attackmenu_graphics[i].graphic = trap_R_RegisterShaderNoMip(attackmenu_graphics[i].file);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Controls_ModelEvent
|
|
=================
|
|
*/
|
|
|
|
static void Controls_ModelEvent( void* ptr, int event )
|
|
{
|
|
/*menucommon_s* menu = (menucommon_s*)ptr;
|
|
if (event == QM_LOSTFOCUS)
|
|
{
|
|
g_playerinfo.looking = qfalse;
|
|
}
|
|
else if (event == QM_GOTFOCUS)
|
|
{
|
|
g_playerinfo.looking = menu->x;
|
|
}
|
|
else*/ if ((event == QM_ACTIVATED) )
|
|
{
|
|
uis.spinView = qtrue;
|
|
uis.cursorpx = uis.cursorx;
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Playermodel_MenuInit
|
|
=================
|
|
*/
|
|
static void Playermodel_MenuInit( void )
|
|
{
|
|
s_controls_playermdl.generic.type = MTYPE_BITMAP;
|
|
s_controls_playermdl.generic.flags = QMF_SILENT; //INACTIVE
|
|
s_controls_playermdl.generic.callback = Controls_ModelEvent;
|
|
s_controls_playermdl.generic.ownerdraw = Controls_DrawPlayer;
|
|
s_controls_playermdl.generic.x = 501; //455
|
|
s_controls_playermdl.generic.y = 189; //145
|
|
s_controls_playermdl.width = 110;//32*5.6
|
|
s_controls_playermdl.height = 211;//56*5.6
|
|
|
|
//Model spin data
|
|
uis.spinView = qfalse;
|
|
uis.lastYaw = 180 - 20;
|
|
}
|
|
|
|
/*
|
|
=================
|
|
SetupActionButtons_Init
|
|
=================
|
|
*/
|
|
static void SetupActionButtons_Init(int section)
|
|
{
|
|
int i,y;
|
|
void** controlptr;
|
|
menuframework_s *current_menu;
|
|
|
|
|
|
controlptr = g_controls[g_section];
|
|
|
|
switch (g_section)
|
|
{
|
|
default:
|
|
case C_WEAPONS:
|
|
current_menu = &s_weapons_menu;
|
|
break;
|
|
case C_COMMAND:
|
|
current_menu = &s_controlscommand_menu;
|
|
break;
|
|
case C_LOOK:
|
|
current_menu = &s_controlslook_menu;
|
|
break;
|
|
case C_MOVE:
|
|
current_menu = &s_controlsmove_menu;
|
|
break;
|
|
case C_MOUSE:
|
|
current_menu = &s_controlsmouse_menu;
|
|
break;
|
|
case C_MODELVIEW:
|
|
current_menu = &s_controlsmodelview_menu;
|
|
break;
|
|
}
|
|
|
|
|
|
y = current_menu->listY;
|
|
|
|
for (i=0; i<99; i++) // The 99 is to avoid runaway loops
|
|
{
|
|
if (!controlptr[i])
|
|
{
|
|
break;
|
|
}
|
|
|
|
((menuaction_s*)controlptr[i])->generic.x = current_menu->listX;
|
|
((menuaction_s*)controlptr[i])->generic.y = y;
|
|
((menuaction_s*)controlptr[i])->textX = 5;
|
|
((menuaction_s*)controlptr[i])->textY = 1;
|
|
((menuaction_s*)controlptr[i])->height = 18;
|
|
((menuaction_s*)controlptr[i])->width = 150;
|
|
|
|
//if ( ((menuaction_s*)controlptr[i])->generic.id == ID_EQUIP || ((menuaction_s*)controlptr[i])->generic.id == ID_WEAPON0 )
|
|
// y += 40;
|
|
//else
|
|
y += 20;
|
|
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
Weapons_MenuInit
|
|
=================
|
|
*/
|
|
static void Weapons_MenuInit( void )
|
|
{
|
|
WeaponsMenu_Precache();
|
|
|
|
attackmenu_graphics[AMG_MIDLEFT].timer = uis.realtime + 500;
|
|
|
|
s_weapons_menu.nitems = 0;
|
|
s_weapons_menu.wrapAround = qtrue;
|
|
// s_weapons_menu.opening = NULL;
|
|
// s_weapons_menu.closing = NULL;
|
|
s_weapons_menu.draw = Weapons_MenuDraw;
|
|
s_weapons_menu.key = Controls_MenuKey;
|
|
s_weapons_menu.fullscreen = qtrue;
|
|
s_weapons_menu.descX = MENU_DESC_X;
|
|
s_weapons_menu.descY = MENU_DESC_Y;
|
|
s_weapons_menu.listX = 170;
|
|
s_weapons_menu.listY = 184;
|
|
s_weapons_menu.titleX = MENU_TITLE_X;
|
|
s_weapons_menu.titleY = MENU_TITLE_Y;
|
|
s_weapons_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_weapons_menu.footNoteEnum = MNT_WEAPONKEY_SETUP;
|
|
|
|
Playermodel_MenuInit();
|
|
|
|
SetupMenu_TopButtons(&s_weapons_menu,MENU_CONTROLS,NULL);
|
|
|
|
SetupMenu_SideButtons(&s_weapons_menu,MENU_CONTROLS_WEAPON);
|
|
|
|
s_controls_weapon.textcolor = CT_LTGOLD1;
|
|
s_controls_weapon.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_attack_weapon0_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon0_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon0_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon0_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon0_action.generic.id = ID_WEAPON0;
|
|
|
|
s_attack_weapon1_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon1_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon1_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon1_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon1_action.generic.id = ID_WEAPON1;
|
|
|
|
s_attack_weapon2_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon2_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon2_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon2_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon2_action.generic.id = ID_WEAPON2;
|
|
|
|
s_attack_weapon3_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon3_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon3_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon3_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon3_action.generic.id = ID_WEAPON3;
|
|
|
|
s_attack_weapon3_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon3_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon3_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon3_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon3_action.generic.id = ID_WEAPON3;
|
|
|
|
s_attack_weapon4_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon4_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon4_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon4_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon4_action.generic.id = ID_WEAPON4;
|
|
|
|
s_attack_weapon5_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon5_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon5_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon5_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon5_action.generic.id = ID_WEAPON5;
|
|
|
|
/*s_attack_weapon6_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon6_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon6_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon6_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon6_action.generic.id = ID_WEAPON6;
|
|
|
|
s_attack_weapon6_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon6_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon6_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon6_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon6_action.generic.id = ID_WEAPON6;
|
|
|
|
s_attack_weapon7_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon7_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon7_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon7_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon7_action.generic.id = ID_WEAPON7;
|
|
|
|
s_attack_weapon8_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon8_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon8_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon8_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon8_action.generic.id = ID_WEAPON8;
|
|
|
|
s_attack_weapon9_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon9_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon9_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon9_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon9_action.generic.id = ID_WEAPON9;*/
|
|
|
|
s_attack_weapon_next_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon_next_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon_next_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon_next_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon_next_action.generic.id = ID_WEAPNEXT;
|
|
|
|
s_attack_weapon_prev_action.generic.type = MTYPE_ACTION;
|
|
s_attack_weapon_prev_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_weapon_prev_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_weapon_prev_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_weapon_prev_action.generic.id = ID_WEAPPREV;
|
|
|
|
s_attack_waiting_action.generic.type = MTYPE_ACTION;
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.x = 202;
|
|
s_attack_waiting_action.generic.y = 410;
|
|
s_attack_waiting_action.textEnum = MBT_WAITFORKEY;
|
|
s_attack_waiting_action.textcolor = CT_BLACK;
|
|
s_attack_waiting_action.textcolor2 = CT_WHITE;
|
|
s_attack_waiting_action.textcolor3 = CT_LTGREY;
|
|
s_attack_waiting_action.color = CT_VDKPURPLE1;//CT_DKPURPLE1;
|
|
s_attack_waiting_action.color2 = CT_VDKPURPLE1;//CT_LTPURPLE1;
|
|
s_attack_waiting_action.color3 = CT_DKGREY;
|
|
s_attack_waiting_action.textX = 5;
|
|
s_attack_waiting_action.textY = 1;
|
|
s_attack_waiting_action.width = 255;
|
|
s_attack_waiting_action.height = 18;
|
|
|
|
g_section = C_WEAPONS;
|
|
|
|
SetupActionButtons_Init(g_section); // Set up standard values
|
|
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_controls_playermdl);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon0_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon1_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon2_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon3_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon4_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon5_action);
|
|
/*Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon6_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon7_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon8_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon9_action);*/
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon_next_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_weapon_prev_action);
|
|
Menu_AddItem( &s_weapons_menu, ( void * )&s_attack_waiting_action);
|
|
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
g_changesmade = qfalse;
|
|
g_prompttosave = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
UI_SetupWeaponsMenu
|
|
=================
|
|
*/
|
|
void UI_SetupWeaponsMenu( void )
|
|
{
|
|
// if (!s_weapons_menu.initialized)
|
|
// {
|
|
Weapons_MenuInit();
|
|
// }
|
|
|
|
UI_PushMenu( &s_weapons_menu );
|
|
}
|
|
/*
|
|
===============
|
|
SetupMenu_SideButtons
|
|
===============
|
|
*/
|
|
static void SetupMenu_SideButtons(menuframework_s *menu,int menuType)
|
|
{
|
|
int x,y,inc;
|
|
|
|
y = 204;
|
|
inc = 6;
|
|
x = 30;
|
|
|
|
s_controls_weapon.generic.type = MTYPE_BITMAP;
|
|
s_controls_weapon.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_weapon.generic.x = x;
|
|
s_controls_weapon.generic.y = y;
|
|
s_controls_weapon.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_weapon.generic.id = ID_ATTACK;
|
|
s_controls_weapon.generic.callback = Controls_MenuEvent;
|
|
s_controls_weapon.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_weapon.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_weapon.color = CT_DKPURPLE1;
|
|
s_controls_weapon.color2 = CT_LTPURPLE1;
|
|
s_controls_weapon.textX = 5;
|
|
s_controls_weapon.textY = 1;
|
|
s_controls_weapon.textEnum = MBT_WEAPONKEYS;
|
|
s_controls_weapon.textcolor = CT_BLACK;
|
|
s_controls_weapon.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_look.generic.type = MTYPE_BITMAP;
|
|
s_controls_look.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_look.generic.x = x;
|
|
s_controls_look.generic.y = y;
|
|
s_controls_look.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_look.generic.id = ID_CONTROLSLOOK;
|
|
s_controls_look.generic.callback = Controls_MenuEvent;
|
|
s_controls_look.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_look.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_look.color = CT_DKPURPLE1;
|
|
s_controls_look.color2 = CT_LTPURPLE1;
|
|
s_controls_look.textX = 5;
|
|
s_controls_look.textY = 1;
|
|
s_controls_look.textEnum = MBT_LOOKKEYS;
|
|
s_controls_look.textcolor = CT_BLACK;
|
|
s_controls_look.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_movement.generic.type = MTYPE_BITMAP;
|
|
s_controls_movement.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_movement.generic.x = x;
|
|
s_controls_movement.generic.y = y;
|
|
s_controls_movement.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_movement.generic.id = ID_CONTROLSMOVE;
|
|
s_controls_movement.generic.callback = Controls_MenuEvent;
|
|
s_controls_movement.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_movement.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_movement.color = CT_DKPURPLE1;
|
|
s_controls_movement.color2 = CT_LTPURPLE1;
|
|
s_controls_movement.textX = 5;
|
|
s_controls_movement.textY = 1;
|
|
s_controls_movement.textEnum = MBT_MOVEMENTKEYS;
|
|
s_controls_movement.textcolor = CT_BLACK;
|
|
s_controls_movement.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_command.generic.type = MTYPE_BITMAP;
|
|
s_controls_command.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_command.generic.x = x;
|
|
s_controls_command.generic.y = y;
|
|
s_controls_command.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_command.generic.id = ID_CONTROLSCOMMAND;
|
|
s_controls_command.generic.callback = Controls_MenuEvent;
|
|
s_controls_command.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_command.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_command.color = CT_DKPURPLE1;
|
|
s_controls_command.color2 = CT_LTPURPLE1;
|
|
s_controls_command.textX = 5;
|
|
s_controls_command.textY = 1;
|
|
s_controls_command.textEnum = MBT_COMMANDKEYS;
|
|
s_controls_command.textcolor = CT_BLACK;
|
|
s_controls_command.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_modelview.generic.type = MTYPE_BITMAP;
|
|
s_controls_modelview.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_modelview.generic.x = x;
|
|
s_controls_modelview.generic.y = y;
|
|
s_controls_modelview.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_modelview.generic.id = ID_CONTROLSMODELVIEW;
|
|
s_controls_modelview.generic.callback = Controls_MenuEvent;
|
|
s_controls_modelview.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_modelview.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_modelview.color = CT_DKPURPLE1;
|
|
s_controls_modelview.color2 = CT_LTPURPLE1;
|
|
s_controls_modelview.textX = 5;
|
|
s_controls_modelview.textY = 1;
|
|
s_controls_modelview.textEnum = MBT_MODELVIEWKEYS;
|
|
s_controls_modelview.textcolor = CT_BLACK;
|
|
s_controls_modelview.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
y += inc+MENU_BUTTON_MED_HEIGHT-3;
|
|
s_controls_mouse.generic.type = MTYPE_BITMAP;
|
|
s_controls_mouse.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_mouse.generic.x = x;
|
|
s_controls_mouse.generic.y = y;
|
|
s_controls_mouse.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_mouse.generic.id = ID_CONTROLSMOUSE;
|
|
s_controls_mouse.generic.callback = Controls_MenuEvent;
|
|
s_controls_mouse.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_mouse.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_mouse.color = CT_DKPURPLE1;
|
|
s_controls_mouse.color2 = CT_LTPURPLE1;
|
|
s_controls_mouse.textX = 5;
|
|
s_controls_mouse.textY = 1;
|
|
s_controls_mouse.textEnum = MBT_MOUSECONFIG;
|
|
s_controls_mouse.textcolor = CT_BLACK;
|
|
s_controls_mouse.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_other.generic.type = MTYPE_BITMAP;
|
|
s_controls_other.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_other.generic.x = x;
|
|
s_controls_other.generic.y = y;
|
|
s_controls_other.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_other.generic.id = ID_CONTROLSOTHER;
|
|
s_controls_other.generic.callback = Controls_MenuEvent;
|
|
s_controls_other.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_other.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_other.color = CT_DKPURPLE1;
|
|
s_controls_other.color2 = CT_LTPURPLE1;
|
|
s_controls_other.textX = 5;
|
|
s_controls_other.textY = 1;
|
|
s_controls_other.textEnum = MBT_OTHEROPTIONS;
|
|
s_controls_other.textcolor = CT_BLACK;
|
|
s_controls_other.textcolor2 = CT_WHITE;
|
|
|
|
/* y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_loadconfig.generic.type = MTYPE_BITMAP;
|
|
s_controls_loadconfig.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_loadconfig.generic.x = x;
|
|
s_controls_loadconfig.generic.y = y;
|
|
s_controls_loadconfig.generic.name = "menu/common/square.tga";
|
|
s_controls_loadconfig.generic.id = ID_MAINMENU;
|
|
s_controls_loadconfig.generic.callback = Controls_MenuEvent;
|
|
s_controls_loadconfig.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_loadconfig.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_loadconfig.color = CT_DKPURPLE1;
|
|
s_controls_loadconfig.color2 = CT_LTPURPLE1;
|
|
s_controls_loadconfig.textX = 5;
|
|
s_controls_loadconfig.textY = 2;
|
|
s_controls_loadconfig.textEnum = MBT_LOADCONFIG;
|
|
s_controls_loadconfig.textcolor = CT_BLACK;
|
|
s_controls_loadconfig.textcolor2 = CT_WHITE;
|
|
|
|
y += inc+MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_saveconfig.generic.type = MTYPE_BITMAP;
|
|
s_controls_saveconfig.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_saveconfig.generic.x = x;
|
|
s_controls_saveconfig.generic.y = y;
|
|
s_controls_saveconfig.generic.name = "menu/common/square.tga";
|
|
s_controls_saveconfig.generic.id = ID_MAINMENU;
|
|
s_controls_saveconfig.generic.callback = Controls_MenuEvent;
|
|
s_controls_saveconfig.width = MENU_BUTTON_MED_WIDTH - 10;
|
|
s_controls_saveconfig.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_saveconfig.color = CT_DKPURPLE1;
|
|
s_controls_saveconfig.color2 = CT_LTPURPLE1;
|
|
s_controls_saveconfig.textX = 5;
|
|
s_controls_saveconfig.textY = 2;
|
|
s_controls_saveconfig.textEnum = MBT_SAVECONFIG;
|
|
s_controls_saveconfig.textcolor = CT_BLACK;
|
|
s_controls_saveconfig.textcolor2 = CT_WHITE;
|
|
|
|
*/
|
|
switch (menuType)
|
|
{
|
|
case MENU_CONTROLS_WEAPON :
|
|
s_controls_weapon.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_LOOK :
|
|
s_controls_look.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_MOVEMENT :
|
|
s_controls_movement.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_COMMAND :
|
|
s_controls_command.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_MODELVIEW:
|
|
s_controls_modelview.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_MOUSE :
|
|
s_controls_mouse.generic.flags = QMF_GRAYED;
|
|
break;
|
|
case MENU_CONTROLS_OTHER :
|
|
s_controls_other.generic.flags = QMF_GRAYED;
|
|
break;
|
|
}
|
|
|
|
Menu_AddItem( menu, ( void * )&s_controls_weapon);
|
|
Menu_AddItem( menu, ( void * )&s_controls_look);
|
|
Menu_AddItem( menu, ( void * )&s_controls_movement);
|
|
Menu_AddItem( menu, ( void * )&s_controls_command);
|
|
Menu_AddItem( menu, ( void * )&s_controls_modelview);
|
|
|
|
Menu_AddItem( menu, ( void * )&s_controls_mouse);
|
|
Menu_AddItem( menu, ( void * )&s_controls_other);
|
|
// Menu_AddItem( menu, ( void * )&s_controls_loadconfig);
|
|
// Menu_AddItem( menu, ( void * )&s_controls_saveconfig);
|
|
|
|
}
|
|
/*
|
|
=================
|
|
Controls_Update
|
|
=================
|
|
*/
|
|
static void Controls_UpdateNew( void )
|
|
{
|
|
int i;
|
|
int j;
|
|
void** controlptr;
|
|
menuframework_s *current_menu;
|
|
|
|
|
|
switch (g_section)
|
|
{
|
|
default:
|
|
case C_WEAPONS:
|
|
current_menu = &s_weapons_menu;
|
|
break;
|
|
case C_COMMAND:
|
|
current_menu = &s_controlscommand_menu;
|
|
break;
|
|
case C_LOOK:
|
|
current_menu = &s_controlslook_menu;
|
|
break;
|
|
case C_MOVE:
|
|
current_menu = &s_controlsmove_menu;
|
|
break;
|
|
case C_MOUSE:
|
|
current_menu = &s_controlsmouse_menu;
|
|
break;
|
|
case C_MODELVIEW:
|
|
current_menu = &s_controlsmodelview_menu;
|
|
break;
|
|
}
|
|
|
|
|
|
// enable specified controls
|
|
controlptr = g_controls[g_section];
|
|
for (i=0,j=0; ;i++,j++,controlptr++)
|
|
{
|
|
if (!controlptr[0])
|
|
{
|
|
// end of list
|
|
break;
|
|
}
|
|
|
|
((menucommon_s*)controlptr[0])->flags &= ~(QMF_GRAYED);
|
|
}
|
|
|
|
|
|
if (s_controls.waitingforkey)
|
|
{
|
|
((menucommon_s*)(current_menu->items[current_menu->cursor]))->flags &= ~QMF_HIGHLIGHT;
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
void ControlsVideoDataAction( qboolean result )
|
|
{
|
|
if ( result ) // Yes - do it
|
|
{
|
|
Controls_MenuEvent (holdControlPtr, holdControlEvent);
|
|
}
|
|
}
|
|
/*
|
|
=================
|
|
Controls_MenuEventVideo
|
|
=================
|
|
*/
|
|
static void Controls_MenuEventVideo (void* ptr, int event)
|
|
{
|
|
|
|
if (event != QM_ACTIVATED)
|
|
return;
|
|
|
|
holdControlPtr = ptr;
|
|
holdControlEvent = event;
|
|
|
|
if (vid_apply_action->generic.flags & QMF_BLINK) // Video apply changes button is flashing
|
|
{
|
|
UI_ConfirmMenu(menu_normal_text[MNT_LOOSEVIDSETTINGS], 0, ControlsVideoDataAction);
|
|
}
|
|
else // Go ahead, act normal
|
|
{
|
|
Controls_MenuEvent (holdControlPtr, holdControlEvent);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
Controls_MenuEvent
|
|
=================
|
|
*/
|
|
static void Controls_MenuEvent (void* ptr, int event)
|
|
{
|
|
menuframework_s* m;
|
|
|
|
if (event != QM_ACTIVATED)
|
|
return;
|
|
|
|
|
|
m = ((menucommon_s*)ptr)->parent;
|
|
|
|
switch (((menucommon_s*)ptr)->id)
|
|
{
|
|
case ID_CONTROLS:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_SetupWeaponsMenu(); // Move to the Controls Menu
|
|
break;
|
|
|
|
case ID_ATTACK:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_SetupWeaponsMenu(); // Move to the Command Menu
|
|
break;
|
|
|
|
case ID_VIDEO:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_VideoDataMenu(); // Move to the Video Menu
|
|
break;
|
|
|
|
case ID_SOUND:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_SoundMenu(); // Move to the Sound Menu
|
|
break;
|
|
|
|
case ID_GAMEOPTIONS:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_GameOptionsMenu(); // Move to the Game Options Menu
|
|
break;
|
|
|
|
case ID_CDKEY:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_CDKeyMenu(); // Move to the CD Key Menu
|
|
break;
|
|
|
|
case ID_NETWORK:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_NetworkOptionsMenu(); // Move to the CD Key Menu
|
|
break;
|
|
|
|
case ID_PLAYER:
|
|
// UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_PlayerSettingsMenu(PS_MENU_CONTROLS); // Move to the Player Settings Menu
|
|
break;
|
|
|
|
case ID_MAINMENU:
|
|
UI_PopMenu();
|
|
break;
|
|
|
|
case ID_INGAMEMENU:
|
|
UI_PopMenu();
|
|
break;
|
|
|
|
case ID_CONTROLSCOMMAND:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsCommandMenu(); // Move to the Command Menu
|
|
break;
|
|
|
|
case ID_CONTROLSMODELVIEW: //TiM - Modelview menu
|
|
UI_PopMenu(); //Uh... what the others said lol
|
|
UI_ControlsModelViewMenu(); //Yeah... Move to the Modelview menu
|
|
break; //Crazy copy and paste crazy Raven coder rofl...
|
|
|
|
case ID_CONTROLSLOOK:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsAttackLookMenu(); // Move to the Look Menu
|
|
break;
|
|
|
|
case ID_CONTROLSMOVE:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsMoveMenu(); // Move to the Move Menu
|
|
break;
|
|
|
|
case ID_CONTROLSMOUSE:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsMouseJoyStickMenu(); // Move to the Mouse Menu
|
|
break;
|
|
|
|
case ID_CONTROLSOTHER:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsOtherMenu(); // Move to the Other Menu
|
|
break;
|
|
|
|
case ID_CONTROLSDEFAULT:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_ControlsDefaultMenu(); // Move to the Default Menu
|
|
break;
|
|
|
|
case ID_FONTS:
|
|
UI_PopMenu(); // Get rid of whatever is ontop
|
|
UI_FontsMenu(); // Move to the Font Menu
|
|
break;
|
|
|
|
|
|
case ID_JOYENABLE:
|
|
Controls_SetJoystick();
|
|
break;
|
|
|
|
case ID_FREELOOK:
|
|
case ID_MOUSESPEED:
|
|
case ID_INVERTMOUSE:
|
|
case ID_SMOOTHMOUSE:
|
|
case ID_ALWAYSRUN:
|
|
case ID_AUTOSWITCH:
|
|
case ID_JOYTHRESHOLD:
|
|
case ID_KEYTURNPEED:
|
|
case ID_LOOKSPRING:
|
|
case ID_AUTOSWITCHWEAPONS:
|
|
|
|
Controls_SetConfig();
|
|
// if (event == QM_ACTIVATED)
|
|
// {
|
|
// s_controls.changesmade = qtrue;
|
|
// }
|
|
break;
|
|
}
|
|
}
|
|
/*
|
|
=================
|
|
M_ControlsMoveMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsMoveMenu_Graphics (void)
|
|
{
|
|
UI_MenuFrame(&s_controlsmove_menu);
|
|
|
|
UI_DrawProportionalString( 74, 66, "7-2345",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "803",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "32811",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "560-99",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
M_WeaponsMenu_Blinkies();
|
|
|
|
UI_PrintMenuGraphics(attackmenu_graphics,AMG_MAX);
|
|
|
|
UI_DrawProportionalString( 607, 174, "634579",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 607, 406, "2815689",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
if (s_attack_waiting_action.generic.flags & QMF_HIDDEN)
|
|
{
|
|
UI_DrawProportionalString( 207, 411, menu_normal_text[MNT_BACKSPACE],UI_SMALLFONT, colorTable[CT_WHITE]);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMove_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsMove_MenuDraw (void)
|
|
{
|
|
M_ControlsMoveMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlsmove_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMove_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsMove_MenuInit( void )
|
|
{
|
|
s_controlsmove_menu.nitems = 0;
|
|
s_controlsmove_menu.wrapAround = qtrue;
|
|
s_controlsmove_menu.draw = ControlsMove_MenuDraw;
|
|
s_controlsmove_menu.key = Controls_MenuKey;
|
|
s_controlsmove_menu.fullscreen = qtrue;
|
|
s_controlsmove_menu.descX = MENU_DESC_X;
|
|
s_controlsmove_menu.descY = MENU_DESC_Y;
|
|
s_controlsmove_menu.listX = 170;
|
|
s_controlsmove_menu.listY = 188;
|
|
s_controlsmove_menu.titleX = MENU_TITLE_X;
|
|
s_controlsmove_menu.titleY = MENU_TITLE_Y;
|
|
s_controlsmove_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlsmove_menu.footNoteEnum = MNT_MOVEMENTKEYS_SETUP;
|
|
|
|
Playermodel_MenuInit();
|
|
|
|
SetupMenu_TopButtons(&s_controlsmove_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlsmove_menu,MENU_CONTROLS_MOVEMENT);
|
|
|
|
s_controls_movement.textcolor = CT_LTGOLD1;
|
|
s_controls_movement.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_move_walkforward_action.generic.type = MTYPE_ACTION;
|
|
s_move_walkforward_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_walkforward_action.generic.callback = Controls_ActionEvent;
|
|
s_move_walkforward_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_walkforward_action.generic.id = ID_FORWARD;
|
|
|
|
s_move_backpedal_action.generic.type = MTYPE_ACTION;
|
|
s_move_backpedal_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_backpedal_action.generic.callback = Controls_ActionEvent;
|
|
s_move_backpedal_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_backpedal_action.generic.id = ID_BACKPEDAL;
|
|
|
|
s_move_turnleft_action.generic.type = MTYPE_ACTION;
|
|
s_move_turnleft_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_turnleft_action.generic.callback = Controls_ActionEvent;
|
|
s_move_turnleft_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_turnleft_action.generic.id = ID_LEFT;
|
|
|
|
s_move_turnright_action.generic.type = MTYPE_ACTION;
|
|
s_move_turnright_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_turnright_action.generic.callback = Controls_ActionEvent;
|
|
s_move_turnright_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_turnright_action.generic.id = ID_RIGHT;
|
|
|
|
s_move_run_action.generic.type = MTYPE_ACTION;
|
|
s_move_run_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_run_action.generic.callback = Controls_ActionEvent;
|
|
s_move_run_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_run_action.generic.id = ID_SPEED;
|
|
|
|
s_move_stepleft_action.generic.type = MTYPE_ACTION;
|
|
s_move_stepleft_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_stepleft_action.generic.callback = Controls_ActionEvent;
|
|
s_move_stepleft_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_stepleft_action.generic.id = ID_MOVELEFT;
|
|
|
|
s_move_stepright_action.generic.type = MTYPE_ACTION;
|
|
s_move_stepright_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_stepright_action.generic.callback = Controls_ActionEvent;
|
|
s_move_stepright_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_stepright_action.generic.id = ID_MOVERIGHT;
|
|
|
|
s_move_sidestep_action.generic.type = MTYPE_ACTION;
|
|
s_move_sidestep_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_sidestep_action.generic.callback = Controls_ActionEvent;
|
|
s_move_sidestep_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_sidestep_action.generic.id = ID_STRAFE;
|
|
|
|
s_move_moveup_action.generic.type = MTYPE_ACTION;
|
|
s_move_moveup_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_moveup_action.generic.callback = Controls_ActionEvent;
|
|
s_move_moveup_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_moveup_action.generic.id = ID_MOVEUP;
|
|
|
|
s_move_movedown_action.generic.type = MTYPE_ACTION;
|
|
s_move_movedown_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_move_movedown_action.generic.callback = Controls_ActionEvent;
|
|
s_move_movedown_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_move_movedown_action.generic.id = ID_MOVEDOWN;
|
|
|
|
s_attack_waiting_action.generic.type = MTYPE_ACTION;
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.x = 202;
|
|
s_attack_waiting_action.generic.y = 410;
|
|
s_attack_waiting_action.textEnum = MBT_WAITFORKEY;
|
|
s_attack_waiting_action.textcolor = CT_BLACK;
|
|
s_attack_waiting_action.textcolor2 = CT_WHITE;
|
|
s_attack_waiting_action.textcolor3 = CT_LTGREY;
|
|
s_attack_waiting_action.color = CT_VDKPURPLE1;//CT_DKPURPLE1;
|
|
s_attack_waiting_action.color2 = CT_VDKPURPLE1;//CT_LTPURPLE1;
|
|
s_attack_waiting_action.color3 = CT_DKGREY;
|
|
s_attack_waiting_action.textX = 5;
|
|
s_attack_waiting_action.textY = 1;
|
|
s_attack_waiting_action.width = 255;
|
|
s_attack_waiting_action.height = 18;
|
|
|
|
g_section = C_MOVE;
|
|
SetupActionButtons_Init(g_section); // Set up standard values
|
|
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_controls_playermdl);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_walkforward_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_backpedal_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_turnleft_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_turnright_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_run_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_stepleft_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_stepright_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_sidestep_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_moveup_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_move_movedown_action);
|
|
Menu_AddItem( &s_controlsmove_menu, ( void * )&s_attack_waiting_action);
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// intialize the model
|
|
// Controls_InitModel();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
g_changesmade = qfalse;
|
|
// g_prompttosave = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsMoveMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsMoveMenu( void )
|
|
{
|
|
ControlsMove_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlsmove_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
M_ControlsLookMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsLookMenu_Graphics (void)
|
|
{
|
|
UI_MenuFrame(&s_controlslook_menu);
|
|
|
|
UI_DrawProportionalString( 74, 66, "3567",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "9003",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "1425",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "6780-1",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
M_WeaponsMenu_Blinkies();
|
|
|
|
UI_PrintMenuGraphics(attackmenu_graphics,AMG_MAX);
|
|
|
|
UI_DrawProportionalString( 607, 174, "556541",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 607, 406, "909090",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
if (s_attack_waiting_action.generic.flags & QMF_HIDDEN)
|
|
{
|
|
UI_DrawProportionalString( 207, 411, menu_normal_text[MNT_BACKSPACE],UI_SMALLFONT, colorTable[CT_WHITE]);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsAttackLook_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsAttackLook_MenuDraw (void)
|
|
{
|
|
M_ControlsLookMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlslook_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsAttackLook_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsAttackLook_MenuInit( void )
|
|
{
|
|
s_controlslook_menu.nitems = 0;
|
|
s_controlslook_menu.wrapAround = qtrue;
|
|
s_controlslook_menu.draw = ControlsAttackLook_MenuDraw;
|
|
s_controlslook_menu.key = Controls_MenuKey;
|
|
s_controlslook_menu.fullscreen = qtrue;
|
|
s_controlslook_menu.descX = MENU_DESC_X;
|
|
s_controlslook_menu.descY = MENU_DESC_Y;
|
|
s_controlslook_menu.listX = 170;
|
|
s_controlslook_menu.listY = 188;
|
|
s_controlslook_menu.titleX = MENU_TITLE_X;
|
|
s_controlslook_menu.titleY = MENU_TITLE_Y;
|
|
s_controlslook_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlslook_menu.footNoteEnum = MNT_ATTACKLOOKKEY_SETUP;
|
|
|
|
Playermodel_MenuInit();
|
|
|
|
SetupMenu_TopButtons(&s_controlslook_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlslook_menu,MENU_CONTROLS_LOOK);
|
|
|
|
s_controls_look.textcolor = CT_LTGOLD1;
|
|
s_controls_look.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_attack_attack_action.generic.type = MTYPE_ACTION;
|
|
s_attack_attack_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_attack_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_attack_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_attack_action.generic.id = ID_ATTACK;
|
|
|
|
s_attack_alt_attack_action.generic.type = MTYPE_ACTION;
|
|
s_attack_alt_attack_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_alt_attack_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_alt_attack_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_alt_attack_action.generic.id = ID_ALT_ATTACK;
|
|
|
|
s_attack_use_action.generic.type = MTYPE_ACTION;
|
|
s_attack_use_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_use_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_use_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_use_action.generic.id = ID_USEITEM;
|
|
|
|
s_attack_use_inv_action.generic.type = MTYPE_ACTION;
|
|
s_attack_use_inv_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_use_inv_action.generic.callback = Controls_ActionEvent;
|
|
s_attack_use_inv_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_use_inv_action.generic.id = ID_USEINVENTORY;
|
|
|
|
s_attack_objectives.generic.type = MTYPE_ACTION;
|
|
s_attack_objectives.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_attack_objectives.generic.callback = Controls_ActionEvent;
|
|
s_attack_objectives.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_attack_objectives.generic.id = ID_OBJECTIVES;
|
|
|
|
s_look_lookup_action.generic.type = MTYPE_ACTION;
|
|
s_look_lookup_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_look_lookup_action.generic.callback = Controls_ActionEvent;
|
|
s_look_lookup_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_look_lookup_action.generic.id = ID_LOOKUP;
|
|
|
|
s_look_lookdown_action.generic.type = MTYPE_ACTION;
|
|
s_look_lookdown_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_look_lookdown_action.generic.callback = Controls_ActionEvent;
|
|
s_look_lookdown_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_look_lookdown_action.generic.id = ID_LOOKDOWN;
|
|
|
|
s_look_mouselook_action.generic.type = MTYPE_ACTION;
|
|
s_look_mouselook_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_look_mouselook_action.generic.callback = Controls_ActionEvent;
|
|
s_look_mouselook_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_look_mouselook_action.generic.id = ID_MOUSELOOK;
|
|
|
|
s_look_centerview_action.generic.type = MTYPE_ACTION;
|
|
s_look_centerview_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_look_centerview_action.generic.callback = Controls_ActionEvent;
|
|
s_look_centerview_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_look_centerview_action.generic.id = ID_CENTERVIEW;
|
|
|
|
s_zoomview_action.generic.type = MTYPE_ACTION;
|
|
s_zoomview_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_zoomview_action.generic.callback = Controls_ActionEvent;
|
|
s_zoomview_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_zoomview_action.generic.id = ID_ZOOMVIEW;
|
|
|
|
s_controls.showscores.generic.type = MTYPE_ACTION;
|
|
s_controls.showscores.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.showscores.generic.callback = Controls_ActionEvent;
|
|
s_controls.showscores.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.showscores.generic.id = ID_SHOWSCORES;
|
|
|
|
s_attack_waiting_action.generic.type = MTYPE_ACTION;
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.x = 202;
|
|
s_attack_waiting_action.generic.y = 410;
|
|
s_attack_waiting_action.textEnum = MBT_WAITFORKEY;
|
|
s_attack_waiting_action.textcolor = CT_BLACK;
|
|
s_attack_waiting_action.textcolor2 = CT_WHITE;
|
|
s_attack_waiting_action.textcolor3 = CT_LTGREY;
|
|
s_attack_waiting_action.color = CT_VDKPURPLE1;//CT_DKPURPLE1;
|
|
s_attack_waiting_action.color2 = CT_VDKPURPLE1;//CT_LTPURPLE1;
|
|
s_attack_waiting_action.color3 = CT_DKGREY;
|
|
s_attack_waiting_action.textX = 5;
|
|
s_attack_waiting_action.textY = 1;
|
|
s_attack_waiting_action.width = 255;
|
|
s_attack_waiting_action.height = 18;
|
|
|
|
g_section = C_LOOK;
|
|
SetupActionButtons_Init(g_section); // Set up standard values
|
|
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_controls_playermdl);
|
|
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_attack_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_alt_attack_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_use_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_use_inv_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_objectives);
|
|
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_look_lookup_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_look_lookdown_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_look_mouselook_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_look_centerview_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_zoomview_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_attack_waiting_action);
|
|
Menu_AddItem( &s_controlslook_menu, ( void * )&s_controls.showscores);
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// intialize the model
|
|
Controls_InitModel();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
g_changesmade = qfalse;
|
|
g_prompttosave = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsAttackLookMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsAttackLookMenu( void )
|
|
{
|
|
ControlsAttackLook_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlslook_menu );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
M_ControlsMouseJoyStickMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsMouseJoyStickMenu_Graphics (void)
|
|
{
|
|
UI_MenuFrame(&s_controlsmouse_menu);
|
|
|
|
trap_R_SetColor( colorTable[CT_LTORANGE]);
|
|
UI_DrawProportionalString( MENU_TITLE_X, 440, menu_normal_text[MNT_MOUSEJOYSTICK_SETUP],UI_RIGHT | UI_SMALLFONT, colorTable[CT_LTORANGE]);
|
|
UI_MenuBottomLineEnd_Graphics (menu_normal_text[MNT_MOUSEJOYSTICK_SETUP],CT_LTBROWN1, NULL);
|
|
|
|
trap_R_SetColor( colorTable[CT_DKBLUE2]);
|
|
UI_DrawHandlePic( 235, 166, 377, 20, uis.whiteShader); // Long thick line above mouse stuff
|
|
UI_DrawHandlePic( 185, 184, 50, 100, uis.whiteShader); // Thick column by mouse stuff
|
|
UI_DrawHandlePic( 185, 284, 427, 8, uis.whiteShader); // Long thin line below mouse stuff
|
|
UI_DrawHandlePic( 185, 166, 64, 32, s_joystick_mouse.mouse1); // Rounded corner
|
|
|
|
|
|
UI_DrawHandlePic( 185, 300, 427, 8, uis.whiteShader); // Long thin line below joystick stuff
|
|
UI_DrawHandlePic( 185, 305, 50, 100, uis.whiteShader); // Thick column by joystick stuff
|
|
UI_DrawHandlePic( 235, 406, 377, 20, uis.whiteShader); // Long thick line above joystick stuff
|
|
UI_DrawHandlePic( 185, 401, 64, 32, s_joystick_mouse.mouse2); // Rounded corner
|
|
|
|
UI_DrawProportionalString( 608, 169, menu_normal_text[MNT_MOUSE],UI_RIGHT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
|
|
UI_DrawProportionalString( 608, 409, menu_normal_text[MNT_JOYSTICK],UI_RIGHT|UI_SMALLFONT, colorTable[CT_LTGOLD1]);
|
|
|
|
UI_DrawProportionalString( 74, 66, "4568",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "71-49",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "67014",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "356-905",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMouseJoyStick_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsMouseJoyStick_MenuDraw (void)
|
|
{
|
|
M_ControlsMouseJoyStickMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlsmouse_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMouseJoyStick_MenuKey
|
|
=================
|
|
*/
|
|
static sfxHandle_t ControlsMouseJoyStick_MenuKey( int key )
|
|
{
|
|
return Menu_DefaultKey( &s_controlsmouse_menu, key );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMouseJoyStick_GetCvars
|
|
=================
|
|
*/
|
|
void ControlsMouseJoyStick_GetCvars(void)
|
|
{
|
|
|
|
}
|
|
|
|
void UI_ControlsMouseJoyStickMenu_Cache(void)
|
|
{
|
|
trap_R_RegisterShaderNoMip(PIC_MONBAR2);
|
|
s_joystick_mouse.mouse1 = trap_R_RegisterShaderNoMip(PIC_MOUSE1);
|
|
s_joystick_mouse.mouse2 = trap_R_RegisterShaderNoMip(PIC_MOUSE2);
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsMouseJoyStick_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsMouseJoyStick_MenuInit( void )
|
|
{
|
|
int x,y;
|
|
|
|
UI_ControlsMouseJoyStickMenu_Cache();
|
|
|
|
s_controlsmouse_menu.nitems = 0;
|
|
s_controlsmouse_menu.wrapAround = qtrue;
|
|
s_controlsmouse_menu.draw = ControlsMouseJoyStick_MenuDraw;
|
|
s_controlsmouse_menu.key = ControlsMouseJoyStick_MenuKey;
|
|
s_controlsmouse_menu.fullscreen = qtrue;
|
|
s_controlsmouse_menu.descX = MENU_DESC_X;
|
|
s_controlsmouse_menu.descY = MENU_DESC_Y;
|
|
s_controlsmouse_menu.listX = 230;
|
|
s_controlsmouse_menu.listY = 188;
|
|
s_controlsmouse_menu.titleX = MENU_TITLE_X;
|
|
s_controlsmouse_menu.titleY = MENU_TITLE_Y;
|
|
s_controlsmouse_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlsmouse_menu.footNoteEnum = MNT_MOUSEJOYSTICK_SETUP;
|
|
|
|
SetupMenu_TopButtons(&s_controlsmouse_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlsmouse_menu,MENU_CONTROLS_MOUSE);
|
|
|
|
s_controls_mouse.textcolor = CT_LTGOLD1;
|
|
s_controls_mouse.textcolor2 = CT_LTGOLD1;
|
|
|
|
x = 250;
|
|
y = 193;
|
|
|
|
s_controls.freelook.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.freelook.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.freelook.generic.x = x;
|
|
s_controls.freelook.generic.y = y;
|
|
s_controls.freelook.generic.id = ID_FREELOOK;
|
|
s_controls.freelook.generic.callback = Controls_MenuEvent;
|
|
s_controls.freelook.textEnum = MBT_MOUSEFREELOOK;
|
|
s_controls.freelook.textcolor = CT_BLACK;
|
|
s_controls.freelook.textcolor2 = CT_WHITE;
|
|
s_controls.freelook.color = CT_DKPURPLE1;
|
|
s_controls.freelook.color2 = CT_LTPURPLE1;
|
|
s_controls.freelook.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.freelook.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.freelook.listnames = s_OffOnNone_Names;
|
|
|
|
y += 22;
|
|
s_controls.sensitivity.generic.type = MTYPE_SLIDER;
|
|
s_controls.sensitivity.generic.x = x + 162;
|
|
s_controls.sensitivity.generic.y = y;
|
|
s_controls.sensitivity.generic.flags = QMF_SMALLFONT;
|
|
s_controls.sensitivity.generic.id = ID_MOUSESPEED;
|
|
s_controls.sensitivity.generic.callback = Controls_MenuEvent;
|
|
s_controls.sensitivity.minvalue = 2;
|
|
s_controls.sensitivity.maxvalue = 30;
|
|
s_controls.sensitivity.color = CT_DKPURPLE1;
|
|
s_controls.sensitivity.color2 = CT_LTPURPLE1;
|
|
s_controls.sensitivity.generic.name = PIC_MONBAR2;
|
|
s_controls.sensitivity.width = 256;
|
|
s_controls.sensitivity.height = 32;
|
|
s_controls.sensitivity.focusWidth = 145;
|
|
s_controls.sensitivity.focusHeight = 18;
|
|
s_controls.sensitivity.picName = GRAPHIC_SQUARE;
|
|
s_controls.sensitivity.picX = x;
|
|
s_controls.sensitivity.picY = y;
|
|
s_controls.sensitivity.picWidth = MENU_BUTTON_MED_WIDTH + 21;
|
|
s_controls.sensitivity.picHeight = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls.sensitivity.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.sensitivity.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.sensitivity.textEnum = MBT_MOUSESPEED;
|
|
s_controls.sensitivity.textcolor = CT_BLACK;
|
|
s_controls.sensitivity.textcolor2 = CT_WHITE;
|
|
s_controls.sensitivity.thumbName = "menu/common/slider.tga";
|
|
s_controls.sensitivity.thumbHeight = 32;
|
|
s_controls.sensitivity.thumbWidth = 16;
|
|
s_controls.sensitivity.thumbGraphicWidth = 9;
|
|
s_controls.sensitivity.thumbColor = CT_DKBLUE1;
|
|
s_controls.sensitivity.thumbColor2 = CT_LTBLUE1;
|
|
|
|
y += 22;
|
|
s_controls.invertmouse.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.invertmouse.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.invertmouse.generic.id = ID_INVERTMOUSE;
|
|
s_controls.invertmouse.generic.x = x;
|
|
s_controls.invertmouse.generic.y = y;
|
|
s_controls.invertmouse.generic.callback = Controls_MenuEvent;
|
|
s_controls.invertmouse.textEnum = MBT_MOUSEINVERT;
|
|
s_controls.invertmouse.textcolor = CT_BLACK;
|
|
s_controls.invertmouse.textcolor2 = CT_WHITE;
|
|
s_controls.invertmouse.color = CT_DKPURPLE1;
|
|
s_controls.invertmouse.color2 = CT_LTPURPLE1;
|
|
s_controls.invertmouse.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.invertmouse.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.invertmouse.listnames = s_OffOnNone_Names;
|
|
|
|
|
|
y += 22;
|
|
s_controls.smoothmouse.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.smoothmouse.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.smoothmouse.generic.x = x;
|
|
s_controls.smoothmouse.generic.y = y;
|
|
s_controls.smoothmouse.generic.callback = SmoothMouseCallback;
|
|
s_controls.smoothmouse.textEnum = MBT_MOUSESMOOTH;
|
|
s_controls.smoothmouse.textcolor = CT_BLACK;
|
|
s_controls.smoothmouse.textcolor2 = CT_WHITE;
|
|
s_controls.smoothmouse.color = CT_DKPURPLE1;
|
|
s_controls.smoothmouse.color2 = CT_LTPURPLE1;
|
|
s_controls.smoothmouse.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.smoothmouse.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.smoothmouse.listnames = s_OffOnNone_Names;
|
|
|
|
|
|
|
|
y = 315;
|
|
s_controls.joyenable.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.joyenable.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.joyenable.generic.x = x;
|
|
s_controls.joyenable.generic.y = y;
|
|
s_controls.joyenable.generic.id = ID_JOYENABLE;
|
|
s_controls.joyenable.generic.callback = Controls_MenuEvent;
|
|
s_controls.joyenable.textEnum = MBT_JOYSTICKENABLE;
|
|
s_controls.joyenable.textcolor = CT_BLACK;
|
|
s_controls.joyenable.textcolor2 = CT_WHITE;
|
|
s_controls.joyenable.color = CT_DKPURPLE1;
|
|
s_controls.joyenable.color2 = CT_LTPURPLE1;
|
|
s_controls.joyenable.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.joyenable.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.joyenable.listnames = s_OffOnNone_Names;
|
|
|
|
y += 22;
|
|
s_controls.joythreshold.generic.type = MTYPE_SLIDER;
|
|
s_controls.joythreshold.generic.x = x + 162;
|
|
s_controls.joythreshold.generic.y = y;
|
|
s_controls.joythreshold.generic.flags = QMF_SMALLFONT;
|
|
s_controls.joythreshold.generic.id = ID_MOUSESPEED;
|
|
s_controls.joythreshold.generic.callback = Controls_MenuEvent;
|
|
s_controls.joythreshold.minvalue = .5;
|
|
s_controls.joythreshold.maxvalue = .75;
|
|
s_controls.joythreshold.color = CT_DKPURPLE1;
|
|
s_controls.joythreshold.color2 = CT_LTPURPLE1;
|
|
s_controls.joythreshold.generic.name = PIC_MONBAR2;
|
|
s_controls.joythreshold.width = 256;
|
|
s_controls.joythreshold.height = 32;
|
|
s_controls.joythreshold.focusWidth = 145;
|
|
s_controls.joythreshold.focusHeight = 18;
|
|
s_controls.joythreshold.picName = GRAPHIC_SQUARE;
|
|
s_controls.joythreshold.picX = x;
|
|
s_controls.joythreshold.picY = y;
|
|
s_controls.joythreshold.picWidth = MENU_BUTTON_MED_WIDTH + 21;
|
|
s_controls.joythreshold.picHeight = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls.joythreshold.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls.joythreshold.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls.joythreshold.textEnum = MBT_JOYSTICKTHRESHOLD;
|
|
s_controls.joythreshold.textcolor = CT_BLACK;
|
|
s_controls.joythreshold.textcolor2 = CT_WHITE;
|
|
s_controls.joythreshold.thumbName = "menu/common/slider.tga";
|
|
s_controls.joythreshold.thumbHeight = 32;
|
|
s_controls.joythreshold.thumbWidth = 16;
|
|
s_controls.joythreshold.thumbGraphicWidth = 9;
|
|
s_controls.joythreshold.thumbColor = CT_DKBLUE1;
|
|
s_controls.joythreshold.thumbColor2 = CT_LTBLUE1;
|
|
/*
|
|
y += 22;
|
|
s_forcefeedback_box.generic.type = MTYPE_SPINCONTROL;
|
|
s_forcefeedback_box.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_forcefeedback_box.generic.x = x;
|
|
s_forcefeedback_box.generic.y = y;
|
|
s_forcefeedback_box.generic.callback = Controls_MenuEvent;
|
|
s_forcefeedback_box.textEnum = MBT_FORCEFEEDBACK;
|
|
s_forcefeedback_box.textcolor = CT_BLACK;
|
|
s_forcefeedback_box.textcolor2 = CT_WHITE;
|
|
s_forcefeedback_box.color = CT_DKPURPLE1;
|
|
s_forcefeedback_box.color2 = CT_LTPURPLE1;
|
|
s_forcefeedback_box.textX = MENU_BUTTON_TEXT_X;
|
|
s_forcefeedback_box.textY = MENU_BUTTON_TEXT_Y;
|
|
s_forcefeedback_box.listnames = s_OffOnNone_Names;
|
|
*/
|
|
|
|
|
|
|
|
y += 22;
|
|
s_joyxbutton_box.generic.type = MTYPE_SPINCONTROL;
|
|
s_joyxbutton_box.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_joyxbutton_box.generic.x = x;
|
|
s_joyxbutton_box.generic.y = y;
|
|
s_joyxbutton_box.generic.callback = JoyXButtonCallback;
|
|
s_joyxbutton_box.textEnum = MBT_X_AXIS;
|
|
s_joyxbutton_box.textcolor = CT_BLACK;
|
|
s_joyxbutton_box.textcolor2 = CT_WHITE;
|
|
s_joyxbutton_box.color = CT_DKPURPLE1;
|
|
s_joyxbutton_box.color2 = CT_LTPURPLE1;
|
|
s_joyxbutton_box.textX = MENU_BUTTON_TEXT_X;
|
|
s_joyxbutton_box.textY = MENU_BUTTON_TEXT_Y;
|
|
s_joyxbutton_box.listnames = s_OffOnNone_Names;
|
|
|
|
y += 22;
|
|
s_joyybutton_box.generic.type = MTYPE_SPINCONTROL;
|
|
s_joyybutton_box.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_joyybutton_box.generic.x = x;
|
|
s_joyybutton_box.generic.y = y;
|
|
s_joyybutton_box.generic.callback = JoyYButtonCallback;
|
|
s_joyybutton_box.textEnum = MBT_Y_AXIS;
|
|
s_joyybutton_box.textcolor = CT_BLACK;
|
|
s_joyybutton_box.textcolor2 = CT_WHITE;
|
|
s_joyybutton_box.color = CT_DKPURPLE1;
|
|
s_joyybutton_box.color2 = CT_LTPURPLE1;
|
|
s_joyybutton_box.textX = MENU_BUTTON_TEXT_X;
|
|
s_joyybutton_box.textY = MENU_BUTTON_TEXT_Y;
|
|
s_joyybutton_box.listnames = s_OffOnNone_Names;
|
|
|
|
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.freelook);
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.sensitivity);
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.invertmouse);
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.smoothmouse);
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.joyenable);
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_controls.joythreshold);
|
|
// Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_forcefeedback_box); // Commented out until needed
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_joyxbutton_box); // Commented out until needed
|
|
Menu_AddItem( &s_controlsmouse_menu, ( void * )&s_joyybutton_box); // Commented out until needed
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
g_section = C_MOUSE;
|
|
g_changesmade = qfalse;
|
|
g_prompttosave = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsMouseJoyStickMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsMouseJoyStickMenu( void )
|
|
{
|
|
ControlsMouseJoyStick_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlsmouse_menu );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
M_ControlsOtherMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsDefaultMenu_Graphics (void)
|
|
{
|
|
// Draw the basic screen layout
|
|
UI_MenuFrame(&s_controlsdefault_menu);
|
|
|
|
trap_R_SetColor( colorTable[CT_LTBROWN1]);
|
|
UI_DrawHandlePic(30,203, 47, 186, uis.whiteShader); // Long left column square on bottom 3rd
|
|
|
|
trap_R_SetColor( colorTable[CT_RED]);
|
|
UI_DrawHandlePic(132,175, 425, 18, uis.whiteShader); // Top
|
|
UI_DrawHandlePic(132,193, 47, 175, uis.whiteShader); // Left side
|
|
UI_DrawHandlePic(510,193, 47, 175, uis.whiteShader); // Right side
|
|
UI_DrawHandlePic(132,365, 80, 18, uis.whiteShader); // Bottom Left
|
|
UI_DrawHandlePic(477,365, 80, 18, uis.whiteShader); // Bottom Right
|
|
|
|
|
|
UI_DrawProportionalString(345,210,menu_normal_text[MNT_DEFAULT_WARNING1],UI_BIGFONT | UI_BLINK | UI_CENTER,colorTable[CT_RED]);
|
|
UI_DrawProportionalString(345,263,menu_normal_text[MNT_DEFAULT_WARNING2],UI_SMALLFONT | UI_CENTER,colorTable[CT_RED]);
|
|
UI_DrawProportionalString(345,283,menu_normal_text[MNT_DEFAULT_WARNING3],UI_SMALLFONT | UI_CENTER,colorTable[CT_RED]);
|
|
UI_DrawProportionalString(345,321,menu_normal_text[MNT_CONTINUE_WARNING],UI_SMALLFONT | UI_CENTER,colorTable[CT_RED]);
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsDefault_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsDefault_MenuDraw (void)
|
|
{
|
|
M_ControlsDefaultMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlsdefault_menu );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
M_Default_Event
|
|
=================
|
|
*/
|
|
void M_Default_Event (void* ptr, int event)
|
|
{
|
|
menuframework_s* m;
|
|
|
|
if (event != QM_ACTIVATED)
|
|
{
|
|
return;
|
|
}
|
|
|
|
m = ((menucommon_s*)ptr)->parent;
|
|
|
|
switch (((menucommon_s*)ptr)->id)
|
|
{
|
|
|
|
// Get default config
|
|
case ID_DEFAULT_YES:
|
|
Setup_ResetDefaults_Action(qtrue);
|
|
break;
|
|
|
|
// No, just back up
|
|
case ID_DEFAULT_NO:
|
|
UI_PopMenu();
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsDefault_MenuKey
|
|
=================
|
|
*/
|
|
static sfxHandle_t ControlsDefault_MenuKey( int key )
|
|
{
|
|
return Menu_DefaultKey( &s_controlsdefault_menu, key );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsOther_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsDefault_MenuInit( void )
|
|
{
|
|
|
|
s_controlsdefault_menu.nitems = 0;
|
|
s_controlsdefault_menu.wrapAround = qtrue;
|
|
s_controlsdefault_menu.draw = ControlsDefault_MenuDraw;
|
|
s_controlsdefault_menu.key = ControlsDefault_MenuKey;
|
|
s_controlsdefault_menu.fullscreen = qtrue;
|
|
s_controlsdefault_menu.descX = MENU_DESC_X;
|
|
s_controlsdefault_menu.descY = MENU_DESC_Y;
|
|
s_controlsdefault_menu.listX = 230;
|
|
s_controlsdefault_menu.listY = 188;
|
|
s_controlsdefault_menu.titleX = MENU_TITLE_X;
|
|
s_controlsdefault_menu.titleY = MENU_TITLE_Y;
|
|
s_controlsdefault_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlsdefault_menu.footNoteEnum = MNT_DEFAULT_SETUP;
|
|
|
|
SetupMenu_TopButtons(&s_controlsdefault_menu,MENU_DEFAULT,NULL);
|
|
|
|
s_controls_other.textcolor = CT_LTGOLD1;
|
|
s_controls_other.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_controls_default_yes.generic.type = MTYPE_BITMAP;
|
|
s_controls_default_yes.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_default_yes.generic.x = 215;
|
|
s_controls_default_yes.generic.y = 365;
|
|
s_controls_default_yes.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_default_yes.generic.id = ID_DEFAULT_YES;
|
|
s_controls_default_yes.generic.callback = M_Default_Event;
|
|
s_controls_default_yes.width = 103;
|
|
s_controls_default_yes.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_default_yes.color = CT_DKPURPLE1;
|
|
s_controls_default_yes.color2 = CT_LTPURPLE1;
|
|
s_controls_default_yes.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls_default_yes.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls_default_yes.textEnum = MBT_DEFAULT_YES;
|
|
s_controls_default_yes.textcolor = CT_BLACK;
|
|
s_controls_default_yes.textcolor2 = CT_WHITE;
|
|
s_controls_default_yes.textStyle = UI_SMALLFONT;
|
|
|
|
s_controls_default_no.generic.type = MTYPE_BITMAP;
|
|
s_controls_default_no.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls_default_no.generic.x = 371;
|
|
s_controls_default_no.generic.y = 365;
|
|
s_controls_default_no.generic.name = GRAPHIC_SQUARE;
|
|
s_controls_default_no.generic.id = ID_DEFAULT_NO;
|
|
s_controls_default_no.generic.callback = M_Default_Event;
|
|
s_controls_default_no.width = 103;
|
|
s_controls_default_no.height = MENU_BUTTON_MED_HEIGHT;
|
|
s_controls_default_no.color = CT_DKPURPLE1;
|
|
s_controls_default_no.color2 = CT_LTPURPLE1;
|
|
s_controls_default_no.textX = MENU_BUTTON_TEXT_X;
|
|
s_controls_default_no.textY = MENU_BUTTON_TEXT_Y;
|
|
s_controls_default_no.textEnum = MBT_DEFAULT_NO;
|
|
s_controls_default_no.textcolor = CT_BLACK;
|
|
s_controls_default_no.textcolor2 = CT_WHITE;
|
|
s_controls_default_no.textStyle = UI_SMALLFONT;
|
|
|
|
Menu_AddItem( &s_controlsdefault_menu, ( void * )&s_controls_default_yes);
|
|
Menu_AddItem( &s_controlsdefault_menu, ( void * )&s_controls_default_no);
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsDefaultMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsDefaultMenu( void )
|
|
{
|
|
ControlsDefault_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlsdefault_menu );
|
|
}
|
|
/*
|
|
=================
|
|
M_ControlsOtherMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsOtherMenu_Graphics (void)
|
|
{
|
|
// Draw the basic screen layout
|
|
UI_MenuFrame(&s_controlsother_menu);
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE2]);
|
|
UI_DrawHandlePic( 210, 204, 402, 8, uis.whiteShader); // Long thin line below turn speed
|
|
UI_DrawHandlePic( 545, 212, 67, 140, uis.whiteShader); // Thick right column
|
|
UI_DrawHandlePic( 210, 344, 402, 8, uis.whiteShader); // Long thin line below autoswitch
|
|
UI_DrawHandlePic( 210, 352, 10, 83, uis.whiteShader); // Thin left column
|
|
|
|
UI_DrawProportionalString( 608, 340, "1701 - B",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
UI_DrawProportionalString( 280, 419, "500987",UI_RIGHT|UI_TINYFONT, colorTable[CT_DKGOLD1]);
|
|
UI_DrawProportionalString( 358, 419, "456732",UI_RIGHT|UI_TINYFONT, colorTable[CT_DKGOLD1]);
|
|
UI_DrawProportionalString( 436, 419, "67024",UI_RIGHT|UI_TINYFONT, colorTable[CT_DKGOLD1]);
|
|
UI_DrawProportionalString( 514, 419, "166110",UI_RIGHT|UI_TINYFONT, colorTable[CT_DKGOLD1]);
|
|
UI_DrawProportionalString( 592, 419, "575",UI_RIGHT|UI_TINYFONT, colorTable[CT_DKGOLD1]);
|
|
|
|
trap_R_SetColor( colorTable[CT_DKPURPLE3]);
|
|
UI_DrawHandlePic( 288, 364, 32, 64, s_controlsother.mon_bar); //
|
|
UI_DrawHandlePic( 366, 364, 32, 64, s_controlsother.mon_bar); //
|
|
UI_DrawHandlePic( 444, 364, 32, 64, s_controlsother.mon_bar); //
|
|
UI_DrawHandlePic( 522, 364, 32, 64, s_controlsother.mon_bar); //
|
|
UI_DrawHandlePic( 600, 364, 32, 64, s_controlsother.mon_bar); //
|
|
|
|
|
|
UI_DrawProportionalString( 74, 66, "5-0987",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "16116",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "28430",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "6900",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsOther_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsOther_MenuDraw (void)
|
|
{
|
|
M_ControlsOtherMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlsother_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsOther_MenuKey
|
|
=================
|
|
*/
|
|
static sfxHandle_t ControlsOther_MenuKey( int key )
|
|
{
|
|
return Menu_DefaultKey( &s_controlsother_menu, key );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsOther_Cache
|
|
=================
|
|
*/
|
|
void ControlsOther_Cache(void)
|
|
{
|
|
s_controlsother.mon_bar = trap_R_RegisterShaderNoMip("menu/common/mon_bar.tga");
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
ControlsOther_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsOther_MenuInit( void )
|
|
{
|
|
int x,y;
|
|
|
|
ControlsOther_Cache();
|
|
|
|
s_controlsother_menu.nitems = 0;
|
|
s_controlsother_menu.wrapAround = qtrue;
|
|
s_controlsother_menu.draw = ControlsOther_MenuDraw;
|
|
s_controlsother_menu.key = ControlsOther_MenuKey;
|
|
s_controlsother_menu.fullscreen = qtrue;
|
|
s_controlsother_menu.descX = MENU_DESC_X;
|
|
s_controlsother_menu.descY = MENU_DESC_Y;
|
|
s_controlsother_menu.listX = 230;
|
|
s_controlsother_menu.listY = 188;
|
|
s_controlsother_menu.titleX = MENU_TITLE_X;
|
|
s_controlsother_menu.titleY = MENU_TITLE_Y;
|
|
s_controlsother_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlsother_menu.footNoteEnum = MNT_OTHEROPTIONS_SETUP;
|
|
|
|
SetupMenu_TopButtons(&s_controlsother_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlsother_menu,MENU_CONTROLS_OTHER);
|
|
|
|
s_controls_other.textcolor = CT_LTGOLD1;
|
|
s_controls_other.textcolor2 = CT_LTGOLD1;
|
|
|
|
x = 210;
|
|
y = 172;
|
|
|
|
s_keyturnspeed_slider.generic.type = MTYPE_SLIDER;
|
|
s_keyturnspeed_slider.generic.x = x + 162;
|
|
s_keyturnspeed_slider.generic.y = y;
|
|
s_keyturnspeed_slider.generic.flags = QMF_SMALLFONT;
|
|
s_keyturnspeed_slider.generic.id = ID_KEYTURNPEED;
|
|
s_keyturnspeed_slider.generic.callback = Controls_MenuEvent;
|
|
s_keyturnspeed_slider.minvalue = 1;
|
|
s_keyturnspeed_slider.maxvalue = 5;
|
|
s_keyturnspeed_slider.color = CT_DKPURPLE1;
|
|
s_keyturnspeed_slider.color2 = CT_LTPURPLE1;
|
|
s_keyturnspeed_slider.generic.name = PIC_MONBAR2;
|
|
s_keyturnspeed_slider.width = 256;
|
|
s_keyturnspeed_slider.height = 32;
|
|
s_keyturnspeed_slider.focusWidth = 145;
|
|
s_keyturnspeed_slider.focusHeight = 18;
|
|
s_keyturnspeed_slider.picName = GRAPHIC_SQUARE;
|
|
s_keyturnspeed_slider.picX = x;
|
|
s_keyturnspeed_slider.picY = y;
|
|
s_keyturnspeed_slider.picWidth = MENU_BUTTON_MED_WIDTH + 21;
|
|
s_keyturnspeed_slider.picHeight = MENU_BUTTON_MED_HEIGHT;
|
|
s_keyturnspeed_slider.textX = 5;
|
|
s_keyturnspeed_slider.textY = 1;
|
|
s_keyturnspeed_slider.textEnum = MBT_KEYTURNSPEED;
|
|
s_keyturnspeed_slider.textcolor = CT_BLACK;
|
|
s_keyturnspeed_slider.textcolor2 = CT_WHITE;
|
|
s_keyturnspeed_slider.thumbName = "menu/common/slider.tga";
|
|
s_keyturnspeed_slider.thumbHeight = 32;
|
|
s_keyturnspeed_slider.thumbWidth = 16;
|
|
s_keyturnspeed_slider.thumbGraphicWidth = 9;
|
|
s_keyturnspeed_slider.thumbColor = CT_DKBLUE1;
|
|
s_keyturnspeed_slider.thumbColor2 = CT_LTBLUE1;
|
|
|
|
|
|
y =225;
|
|
s_controls.alwaysrun.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.alwaysrun.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.alwaysrun.generic.x = x;
|
|
s_controls.alwaysrun.generic.y = y;
|
|
s_controls.alwaysrun.generic.callback = Controls_MenuEvent;
|
|
s_controls.alwaysrun.generic.id = ID_ALWAYSRUN;
|
|
s_controls.alwaysrun.textEnum = MBT_ALWAYSRUN;
|
|
s_controls.alwaysrun.textcolor = CT_BLACK;
|
|
s_controls.alwaysrun.textcolor2 = CT_WHITE;
|
|
s_controls.alwaysrun.color = CT_DKPURPLE1;
|
|
s_controls.alwaysrun.color2 = CT_LTPURPLE1;
|
|
s_controls.alwaysrun.textX = 5;
|
|
s_controls.alwaysrun.textY = 2;
|
|
s_controls.alwaysrun.listnames = s_OffOnNone_Names;
|
|
|
|
/* y +=22;
|
|
s_lookspring_box.generic.type = MTYPE_SPINCONTROL;
|
|
s_lookspring_box.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_lookspring_box.generic.x = x;
|
|
s_lookspring_box.generic.y = y;
|
|
s_lookspring_box.generic.callback = Controls_MenuEvent;
|
|
s_lookspring_box.generic.id = ID_LOOKSPRING;
|
|
s_lookspring_box.textEnum = MBT_LOOKSPRING;
|
|
s_lookspring_box.textcolor = CT_BLACK;
|
|
s_lookspring_box.textcolor2 = CT_WHITE;
|
|
s_lookspring_box.color = CT_DKPURPLE1;
|
|
s_lookspring_box.color2 = CT_LTPURPLE1;
|
|
s_lookspring_box.textX = 5;
|
|
s_lookspring_box.textY = 2;
|
|
s_lookspring_box.listnames = s_OffOnNone_Names;
|
|
*/
|
|
y +=22;
|
|
y +=22;
|
|
|
|
s_controls.autoswitch.generic.type = MTYPE_SPINCONTROL;
|
|
s_controls.autoswitch.generic.flags = QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.autoswitch.generic.x = x;
|
|
s_controls.autoswitch.generic.y = y;
|
|
s_controls.autoswitch.generic.callback = Controls_MenuEvent;
|
|
s_controls.autoswitch.generic.id = ID_AUTOSWITCHWEAPONS;
|
|
s_controls.autoswitch.textEnum = MBT_AUTOSWITCHWEAPONS;
|
|
s_controls.autoswitch.textcolor = CT_BLACK;
|
|
s_controls.autoswitch.textcolor2 = CT_WHITE;
|
|
s_controls.autoswitch.color = CT_DKPURPLE1;
|
|
s_controls.autoswitch.color2 = CT_LTPURPLE1;
|
|
s_controls.autoswitch.textX = 5;
|
|
s_controls.autoswitch.textY = 2;
|
|
s_controls.autoswitch.listnames = s_Autoswitch_Names;
|
|
|
|
|
|
Menu_AddItem( &s_controlsother_menu, ( void * )&s_controls.alwaysrun);
|
|
// Menu_AddItem( &s_controlsother_menu, ( void * )&s_lookspring_box);
|
|
Menu_AddItem( &s_controlsother_menu, ( void * )&s_keyturnspeed_slider);
|
|
Menu_AddItem( &s_controlsother_menu, ( void * )&s_controls.autoswitch);
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// initial default section
|
|
g_section = C_OTHER;
|
|
g_changesmade = qfalse;
|
|
g_prompttosave = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsOtherMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsOtherMenu( void )
|
|
{
|
|
ControlsOther_MenuInit();
|
|
UI_PushMenu( &s_controlsother_menu );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
M_ControlsCommandMenu_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsCommandMenu_Graphics (void)
|
|
{
|
|
UI_MenuFrame(&s_controlscommand_menu);
|
|
|
|
UI_DrawProportionalString( 74, 66, "6-7",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "8252",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "21231",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "96709",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
M_WeaponsMenu_Blinkies();
|
|
|
|
UI_PrintMenuGraphics(attackmenu_graphics,AMG_MAX);
|
|
|
|
|
|
UI_DrawProportionalString( 607, 174, "423",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 607, 406, "2-2334",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
if (s_attack_waiting_action.generic.flags & QMF_HIDDEN)
|
|
{
|
|
UI_DrawProportionalString( 207, 411, menu_normal_text[MNT_BACKSPACE],UI_SMALLFONT, colorTable[CT_WHITE]);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsCommand_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsCommand_MenuDraw (void)
|
|
{
|
|
M_ControlsCommandMenu_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlscommand_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsCommand_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsCommand_MenuInit( void )
|
|
{
|
|
s_controlscommand_menu.nitems = 0;
|
|
s_controlscommand_menu.wrapAround = qtrue;
|
|
s_controlscommand_menu.draw = ControlsCommand_MenuDraw;
|
|
s_controlscommand_menu.key = Controls_MenuKey;
|
|
s_controlscommand_menu.fullscreen = qtrue;
|
|
s_controlscommand_menu.descX = MENU_DESC_X;
|
|
s_controlscommand_menu.descY = MENU_DESC_Y;
|
|
s_controlscommand_menu.listX = 170;
|
|
s_controlscommand_menu.listY = 188;
|
|
s_controlscommand_menu.titleX = MENU_TITLE_X;
|
|
s_controlscommand_menu.titleY = MENU_TITLE_Y;
|
|
s_controlscommand_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlscommand_menu.footNoteEnum = MNT_COMMANDKEYS_SETUP;
|
|
|
|
Playermodel_MenuInit();
|
|
|
|
SetupMenu_TopButtons(&s_controlscommand_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlscommand_menu,MENU_CONTROLS_COMMAND);
|
|
|
|
s_controls_command.textcolor = CT_LTGOLD1;
|
|
s_controls_command.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_controls.chat.generic.type = MTYPE_ACTION;
|
|
s_controls.chat.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.chat.generic.callback = Controls_ActionEvent;
|
|
s_controls.chat.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.chat.generic.id = ID_CHAT;
|
|
|
|
s_controls.chat2.generic.type = MTYPE_ACTION;
|
|
s_controls.chat2.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.chat2.generic.callback = Controls_ActionEvent;
|
|
s_controls.chat2.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.chat2.generic.id = ID_CHAT2;
|
|
|
|
s_controls.chat3.generic.type = MTYPE_ACTION;
|
|
s_controls.chat3.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.chat3.generic.callback = Controls_ActionEvent;
|
|
s_controls.chat3.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.chat3.generic.id = ID_CHAT3;
|
|
|
|
/* s_controls.chat4.generic.type = MTYPE_ACTION;
|
|
s_controls.chat4.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.chat4.generic.callback = Controls_ActionEvent;
|
|
s_controls.chat4.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.chat4.generic.id = ID_CHAT4;*/
|
|
|
|
/* s_controls.chat5.generic.type = MTYPE_ACTION;
|
|
s_controls.chat5.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.chat5.generic.callback = Controls_ActionEvent;
|
|
s_controls.chat5.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.chat5.generic.id = ID_CHAT5;*/
|
|
|
|
s_controls.gesture.generic.type = MTYPE_ACTION;
|
|
s_controls.gesture.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_controls.gesture.generic.callback = Controls_ActionEvent;
|
|
s_controls.gesture.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_controls.gesture.generic.id = ID_GESTURE;
|
|
|
|
s_equip_action.generic.type = MTYPE_ACTION;
|
|
s_equip_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_equip_action.generic.callback = Controls_ActionEvent;
|
|
s_equip_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_equip_action.generic.id = ID_EQUIP;
|
|
|
|
// RPG-X | Marcin | 04/12/2008
|
|
s_drop_action.generic.type = MTYPE_ACTION;
|
|
s_drop_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_drop_action.generic.callback = Controls_ActionEvent;
|
|
s_drop_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_drop_action.generic.id = ID_DROP;
|
|
|
|
s_thirdperson_action.generic.type = MTYPE_ACTION;
|
|
s_thirdperson_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_thirdperson_action.generic.callback = Controls_ActionEvent;
|
|
s_thirdperson_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_thirdperson_action.generic.id = ID_TOGGLE3DP;
|
|
|
|
s_thirdpersoncommit_action.generic.type = MTYPE_ACTION;
|
|
s_thirdpersoncommit_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_thirdpersoncommit_action.generic.callback = Controls_ActionEvent;
|
|
s_thirdpersoncommit_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_thirdpersoncommit_action.generic.id = ID_COMMITANGLES;
|
|
|
|
s_thirdpersonrevert_action.generic.type = MTYPE_ACTION;
|
|
s_thirdpersonrevert_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_thirdpersonrevert_action.generic.callback = Controls_ActionEvent;
|
|
s_thirdpersonrevert_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_thirdpersonrevert_action.generic.id = ID_REVERTANGLES;
|
|
|
|
s_thirdpersonreset_action.generic.type = MTYPE_ACTION;
|
|
s_thirdpersonreset_action.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_thirdpersonreset_action.generic.callback = Controls_ActionEvent;
|
|
s_thirdpersonreset_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_thirdpersonreset_action.generic.id = ID_RESETANGLES;
|
|
|
|
s_attack_waiting_action.generic.type = MTYPE_ACTION;
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.x = 202;
|
|
s_attack_waiting_action.generic.y = 410;
|
|
s_attack_waiting_action.textEnum = MBT_WAITFORKEY;
|
|
s_attack_waiting_action.textcolor = CT_BLACK;
|
|
s_attack_waiting_action.textcolor2 = CT_WHITE;
|
|
s_attack_waiting_action.textcolor3 = CT_LTGREY;
|
|
s_attack_waiting_action.color = CT_VDKPURPLE1;//CT_DKPURPLE1;
|
|
s_attack_waiting_action.color2 = CT_VDKPURPLE1;//CT_LTPURPLE1;
|
|
s_attack_waiting_action.color3 = CT_DKGREY;
|
|
s_attack_waiting_action.textX = 5;
|
|
s_attack_waiting_action.textY = 1;
|
|
s_attack_waiting_action.width = 255;
|
|
s_attack_waiting_action.height = 18;
|
|
|
|
g_section = C_COMMAND;
|
|
SetupActionButtons_Init(g_section); // Set up standard values
|
|
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls_playermdl);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.chat);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.chat2);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.chat3);
|
|
//Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.chat4);
|
|
//Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.chat5);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_controls.gesture);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_attack_waiting_action);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void *)&s_equip_action );
|
|
Menu_AddItem( &s_controlscommand_menu, ( void *)&s_drop_action ); // RPG-X | Marcin | 04/12/2008
|
|
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_thirdperson_action );
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_thirdpersoncommit_action);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_thirdpersonrevert_action);
|
|
Menu_AddItem( &s_controlscommand_menu, ( void * )&s_thirdpersonreset_action);
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// intialize the model
|
|
Controls_InitModel();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsCommandMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsCommandMenu( void )
|
|
{
|
|
ControlsCommand_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlscommand_menu );
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
M_ControlsModelView_Graphics
|
|
=================
|
|
*/
|
|
void M_ControlsModelView_Graphics (void)
|
|
{
|
|
UI_MenuFrame(&s_controlsmodelview_menu);
|
|
|
|
UI_DrawProportionalString( 74, 66, "2-8",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 84, "6154",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 188, "604",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 74, 395, "3699",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
M_WeaponsMenu_Blinkies();
|
|
|
|
UI_PrintMenuGraphics(attackmenu_graphics,AMG_MAX);
|
|
|
|
|
|
UI_DrawProportionalString( 607, 174, "867",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
UI_DrawProportionalString( 607, 406, "2-2135",UI_RIGHT|UI_TINYFONT, colorTable[CT_BLACK]);
|
|
|
|
if (s_attack_waiting_action.generic.flags & QMF_HIDDEN)
|
|
{
|
|
UI_DrawProportionalString( 207, 411, menu_normal_text[MNT_BACKSPACE],UI_SMALLFONT, colorTable[CT_WHITE]);
|
|
}
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsModelView_MenuDraw
|
|
=================
|
|
*/
|
|
static void ControlsModelView_MenuDraw (void)
|
|
{
|
|
M_ControlsModelView_Graphics();
|
|
|
|
UI_Setup_MenuButtons();
|
|
|
|
Menu_Draw( &s_controlsmodelview_menu );
|
|
}
|
|
|
|
/*
|
|
=================
|
|
ControlsModelView_MenuInit
|
|
=================
|
|
*/
|
|
static void ControlsModelView_MenuInit( void )
|
|
{
|
|
s_controlsmodelview_menu.nitems = 0;
|
|
s_controlsmodelview_menu.wrapAround = qtrue;
|
|
s_controlsmodelview_menu.draw = ControlsModelView_MenuDraw;
|
|
s_controlsmodelview_menu.key = Controls_MenuKey;
|
|
s_controlsmodelview_menu.fullscreen = qtrue;
|
|
s_controlsmodelview_menu.descX = MENU_DESC_X;
|
|
s_controlsmodelview_menu.descY = MENU_DESC_Y;
|
|
s_controlsmodelview_menu.listX = 170;
|
|
s_controlsmodelview_menu.listY = 188;
|
|
s_controlsmodelview_menu.titleX = MENU_TITLE_X;
|
|
s_controlsmodelview_menu.titleY = MENU_TITLE_Y;
|
|
s_controlsmodelview_menu.titleI = MNT_CONTROLSMENU_TITLE;
|
|
s_controlsmodelview_menu.footNoteEnum = MNT_MODELVIEW_SETUP;
|
|
|
|
Playermodel_MenuInit();
|
|
|
|
SetupMenu_TopButtons(&s_controlsmodelview_menu,MENU_CONTROLS,NULL);
|
|
SetupMenu_SideButtons(&s_controlsmodelview_menu,MENU_CONTROLS_MODELVIEW);
|
|
|
|
s_controls_modelview.textcolor = CT_LTGOLD1;
|
|
s_controls_modelview.textcolor2 = CT_LTGOLD1;
|
|
|
|
s_zoomforward_action.generic.type = MTYPE_ACTION;
|
|
s_zoomforward_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_zoomforward_action.generic.callback = Controls_ActionEvent;
|
|
s_zoomforward_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_zoomforward_action.generic.id = ID_ZOOMFORWARD;
|
|
|
|
s_zoombackward_action.generic.type = MTYPE_ACTION;
|
|
s_zoombackward_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_zoombackward_action.generic.callback = Controls_ActionEvent;
|
|
s_zoombackward_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_zoombackward_action.generic.id = ID_ZOOMBACKWARD;
|
|
|
|
s_panleft_action.generic.type = MTYPE_ACTION;
|
|
s_panleft_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_panleft_action.generic.callback = Controls_ActionEvent;
|
|
s_panleft_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_panleft_action.generic.id = ID_PANLEFT;
|
|
|
|
s_panright_action.generic.type = MTYPE_ACTION;
|
|
s_panright_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_panright_action.generic.callback = Controls_ActionEvent;
|
|
s_panright_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_panright_action.generic.id = ID_PANRIGHT;
|
|
|
|
s_panup_action.generic.type = MTYPE_ACTION;
|
|
s_panup_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_panup_action.generic.callback = Controls_ActionEvent;
|
|
s_panup_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_panup_action.generic.id = ID_PANUP;
|
|
|
|
s_pandown_action.generic.type = MTYPE_ACTION;
|
|
s_pandown_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_pandown_action.generic.callback = Controls_ActionEvent;
|
|
s_pandown_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_pandown_action.generic.id = ID_PANDOWN;
|
|
|
|
s_rotateleft_action.generic.type = MTYPE_ACTION;
|
|
s_rotateleft_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_rotateleft_action.generic.callback = Controls_ActionEvent;
|
|
s_rotateleft_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_rotateleft_action.generic.id = ID_ROTATELEFT;
|
|
|
|
s_rotateright_action.generic.type = MTYPE_ACTION;
|
|
s_rotateright_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_rotateright_action.generic.callback = Controls_ActionEvent;
|
|
s_rotateright_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_rotateright_action.generic.id = ID_ROTATERIGHT;
|
|
|
|
s_pitchup_action.generic.type = MTYPE_ACTION;
|
|
s_pitchup_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_pitchup_action.generic.callback = Controls_ActionEvent;
|
|
s_pitchup_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_pitchup_action.generic.id = ID_PITCHUP;
|
|
|
|
s_pitchdown_action.generic.type = MTYPE_ACTION;
|
|
s_pitchdown_action.generic.flags = QMF_LEFT_JUSTIFY | QMF_HIGHLIGHT_IF_FOCUS;
|
|
s_pitchdown_action.generic.callback = Controls_ActionEvent;
|
|
s_pitchdown_action.generic.ownerdraw = Controls_DrawKeyBinding;
|
|
s_pitchdown_action.generic.id = ID_PITCHDOWN;
|
|
|
|
s_attack_waiting_action.generic.type = MTYPE_ACTION;
|
|
s_attack_waiting_action.generic.flags = QMF_HIDDEN;
|
|
s_attack_waiting_action.generic.x = 202;
|
|
s_attack_waiting_action.generic.y = 410;
|
|
s_attack_waiting_action.textEnum = MBT_WAITFORKEY;
|
|
s_attack_waiting_action.textcolor = CT_BLACK;
|
|
s_attack_waiting_action.textcolor2 = CT_WHITE;
|
|
s_attack_waiting_action.textcolor3 = CT_LTGREY;
|
|
s_attack_waiting_action.color = CT_VDKPURPLE1;//CT_DKPURPLE1;
|
|
s_attack_waiting_action.color2 = CT_VDKPURPLE1;//CT_LTPURPLE1;
|
|
s_attack_waiting_action.color3 = CT_DKGREY;
|
|
s_attack_waiting_action.textX = 5;
|
|
s_attack_waiting_action.textY = 1;
|
|
s_attack_waiting_action.width = 255;
|
|
s_attack_waiting_action.height = 18;
|
|
|
|
g_section = C_MODELVIEW;
|
|
SetupActionButtons_Init(g_section); // Set up standard values
|
|
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_zoomforward_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_zoombackward_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_panleft_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_panright_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_panup_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_pandown_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_rotateleft_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_rotateright_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_pitchup_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_pitchdown_action );
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void* )&s_attack_waiting_action );
|
|
|
|
Menu_AddItem( &s_controlsmodelview_menu, ( void * )&s_controls_playermdl);
|
|
|
|
// initialize the configurable cvars
|
|
Controls_InitCvars();
|
|
|
|
// initialize the current config
|
|
Controls_GetConfig();
|
|
|
|
// intialize the model
|
|
Controls_InitModel();
|
|
|
|
// initial default section
|
|
s_controls.waitingforkey = qfalse;
|
|
|
|
// update the ui
|
|
Controls_UpdateNew();
|
|
}
|
|
|
|
|
|
/*
|
|
=================
|
|
UI_ControlsModelViewMenu
|
|
=================
|
|
*/
|
|
static void UI_ControlsModelViewMenu( void )
|
|
{
|
|
ControlsModelView_MenuInit();
|
|
|
|
UI_PushMenu( &s_controlsmodelview_menu );
|
|
}
|
|
|