/* ================= Controls_MenuInit ================= */ static void Controls_MenuInit( void ) { // zero set all our globals memset( &s_controls, 0 ,sizeof(controls_t) ); Controls_Cache(); s_controls.menu.key = Controls_MenuKey; s_controls.menu.wrapAround = qtrue; s_controls.menu.fullscreen = qtrue; s_controls.menu.noPushSelect = qtrue; s_controls.menu.bgparts = BGP_CONTROLBG|BGP_SIMPLEBG; s_controls.looking.generic.type = MTYPE_BITMAP; s_controls.looking.generic.name = LOOK0; s_controls.looking.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS; s_controls.looking.generic.x = 412; s_controls.looking.generic.y = 40; s_controls.looking.generic.id = ID_LOOKING; s_controls.looking.generic.callback = Controls_MenuEvent; s_controls.looking.width = 75; s_controls.looking.height = 40; s_controls.looking.focuspic = LOOK1; s_controls.looking.focuspicinstead = qtrue; // +/-... Rumrücken für Ente s_controls.movement.generic.type = MTYPE_BITMAP; s_controls.movement.generic.name = MOVEMENT0; s_controls.movement.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS; s_controls.movement.generic.x = 509-9; s_controls.movement.generic.y = 50-5; s_controls.movement.generic.id = ID_MOVEMENT; s_controls.movement.generic.callback= Controls_MenuEvent; s_controls.movement.width = 80; s_controls.movement.height = 40; s_controls.movement.focuspic = MOVEMENT1; s_controls.movement.focuspicinstead = qtrue; s_controls.weapons.generic.type = MTYPE_BITMAP; s_controls.weapons.generic.name = WEAPONS0; s_controls.weapons.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS; s_controls.weapons.generic.x = 480-2; s_controls.weapons.generic.y = 105-15; s_controls.weapons.generic.id = ID_WEAPONS; s_controls.weapons.generic.callback = Controls_MenuEvent; s_controls.weapons.width = 105; s_controls.weapons.height = 40; s_controls.weapons.focuspic = WEAPONS1; s_controls.weapons.focuspicinstead = qtrue; s_controls.misc.generic.type = MTYPE_BITMAP; s_controls.misc.generic.name = MISC0; s_controls.misc.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS; s_controls.misc.generic.x = 398+3; s_controls.misc.generic.y = 88-9; s_controls.misc.generic.id = ID_MISC; s_controls.misc.generic.callback = Controls_MenuEvent; s_controls.misc.width = 75; s_controls.misc.height = 40; s_controls.misc.focuspic = MISC1; s_controls.misc.focuspicinstead = qtrue; s_controls.back.generic.type = MTYPE_BITMAP; s_controls.back.generic.name = ART_BACK0; s_controls.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.back.generic.x = 549; s_controls.back.generic.y = 440; s_controls.back.generic.id = ID_BACK; s_controls.back.generic.callback = Controls_MenuEvent; s_controls.back.width = 80; s_controls.back.height = 40; s_controls.back.focuspic = ART_BACK1; s_controls.back.focuspicinstead = qtrue; s_controls.walkforward.generic.type = MTYPE_ACTION; s_controls.walkforward.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.walkforward.generic.callback = Controls_ActionEvent; s_controls.walkforward.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.walkforward.generic.id = ID_FORWARD; s_controls.backpedal.generic.type = MTYPE_ACTION; s_controls.backpedal.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.backpedal.generic.callback = Controls_ActionEvent; s_controls.backpedal.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.backpedal.generic.id = ID_BACKPEDAL; s_controls.stepleft.generic.type = MTYPE_ACTION; s_controls.stepleft.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.stepleft.generic.callback = Controls_ActionEvent; s_controls.stepleft.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.stepleft.generic.id = ID_MOVELEFT; s_controls.stepright.generic.type = MTYPE_ACTION; s_controls.stepright.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.stepright.generic.callback = Controls_ActionEvent; s_controls.stepright.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.stepright.generic.id = ID_MOVERIGHT; s_controls.moveup.generic.type = MTYPE_ACTION; s_controls.moveup.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.moveup.generic.callback = Controls_ActionEvent; s_controls.moveup.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.moveup.generic.id = ID_MOVEUP; s_controls.movedown.generic.type = MTYPE_ACTION; s_controls.movedown.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.movedown.generic.callback = Controls_ActionEvent; s_controls.movedown.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.movedown.generic.id = ID_MOVEDOWN; s_controls.run.generic.type = MTYPE_ACTION; s_controls.run.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.run.generic.callback = Controls_ActionEvent; s_controls.run.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.run.generic.id = ID_SPEED; s_controls.chainsaw.generic.type = MTYPE_ACTION; s_controls.chainsaw.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.chainsaw.generic.callback = Controls_ActionEvent; s_controls.chainsaw.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.chainsaw.generic.id = ID_WEAPON1; s_controls.machinegun.generic.type = MTYPE_ACTION; s_controls.machinegun.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.machinegun.generic.callback = Controls_ActionEvent; s_controls.machinegun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.machinegun.generic.id = ID_WEAPON2; s_controls.shotgun.generic.type = MTYPE_ACTION; s_controls.shotgun.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.shotgun.generic.callback = Controls_ActionEvent; s_controls.shotgun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.shotgun.generic.id = ID_WEAPON3; s_controls.grenadelauncher.generic.type = MTYPE_ACTION; s_controls.grenadelauncher.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.grenadelauncher.generic.callback = Controls_ActionEvent; s_controls.grenadelauncher.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.grenadelauncher.generic.id = ID_WEAPON4; s_controls.rocketlauncher.generic.type = MTYPE_ACTION; s_controls.rocketlauncher.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.rocketlauncher.generic.callback = Controls_ActionEvent; s_controls.rocketlauncher.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.rocketlauncher.generic.id = ID_WEAPON5; s_controls.lightning.generic.type = MTYPE_ACTION; s_controls.lightning.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.lightning.generic.callback = Controls_ActionEvent; s_controls.lightning.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.lightning.generic.id = ID_WEAPON6; s_controls.railgun.generic.type = MTYPE_ACTION; s_controls.railgun.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.railgun.generic.callback = Controls_ActionEvent; s_controls.railgun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.railgun.generic.id = ID_WEAPON7; s_controls.plasma.generic.type = MTYPE_ACTION; s_controls.plasma.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.plasma.generic.callback = Controls_ActionEvent; s_controls.plasma.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.plasma.generic.id = ID_WEAPON8; s_controls.bfg.generic.type = MTYPE_ACTION; s_controls.bfg.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.bfg.generic.callback = Controls_ActionEvent; s_controls.bfg.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.bfg.generic.id = ID_WEAPON9; s_controls.attack.generic.type = MTYPE_ACTION; s_controls.attack.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.attack.generic.callback = Controls_ActionEvent; s_controls.attack.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.attack.generic.id = ID_ATTACK; s_controls.prevweapon.generic.type = MTYPE_ACTION; s_controls.prevweapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.prevweapon.generic.callback = Controls_ActionEvent; s_controls.prevweapon.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.prevweapon.generic.id = ID_WEAPPREV; s_controls.nextweapon.generic.type = MTYPE_ACTION; s_controls.nextweapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.nextweapon.generic.callback = Controls_ActionEvent; s_controls.nextweapon.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.nextweapon.generic.id = ID_WEAPNEXT; s_controls.useitem.generic.type = MTYPE_ACTION; s_controls.useitem.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.useitem.generic.callback = Controls_ActionEvent; s_controls.useitem.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.useitem.generic.id = ID_USEITEM; s_controls.useitem.generic.toolTip = "Press this key in game to throw killerducks / use floater / deploy bambam and place boomies (you must look at the ground to place a boomie)."; s_controls.showscores.generic.type = MTYPE_ACTION; s_controls.showscores.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.showscores.generic.callback = Controls_ActionEvent; s_controls.showscores.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.showscores.generic.id = ID_SHOWSCORES; s_controls.invertmouse.generic.type = MTYPE_RADIOBUTTON; s_controls.invertmouse.generic.flags = QMF_SMALLFONT; s_controls.invertmouse.generic.x = SCREEN_WIDTH/2; s_controls.invertmouse.generic.name = "invert mouse"; s_controls.invertmouse.generic.id = ID_INVERTMOUSE; s_controls.invertmouse.generic.callback = Controls_MenuEvent; s_controls.invertmouse.generic.statusbar = Controls_StatusBar; s_controls.invertmouse.generic.toolTip = "Switch on to invert the directions of your mouse (not recommended)."; s_controls.smoothmouse.generic.type = MTYPE_RADIOBUTTON; s_controls.smoothmouse.generic.flags = QMF_SMALLFONT; s_controls.smoothmouse.generic.x = SCREEN_WIDTH/2; s_controls.smoothmouse.generic.name = "smooth mouse"; s_controls.smoothmouse.generic.id = ID_SMOOTHMOUSE; s_controls.smoothmouse.generic.callback = Controls_MenuEvent; s_controls.smoothmouse.generic.statusbar = Controls_StatusBar; s_controls.smoothmouse.generic.toolTip = "Switch on to smooth out movement when using the mouse to look around."; s_controls.autoswitch.generic.type = MTYPE_RADIOBUTTON; s_controls.autoswitch.generic.flags = QMF_SMALLFONT; s_controls.autoswitch.generic.x = SCREEN_WIDTH/2; s_controls.autoswitch.generic.name = "auto switch weapons"; s_controls.autoswitch.generic.id = ID_AUTOSWITCH; s_controls.autoswitch.generic.callback = Controls_MenuEvent; s_controls.autoswitch.generic.statusbar = Controls_StatusBar; s_controls.autoswitch.generic.toolTip = "If enabled, your character will automatically switch to the weapon that you run into to pick up."; s_controls.sensitivity.generic.type = MTYPE_SLIDER; s_controls.sensitivity.generic.x = SCREEN_WIDTH/2; s_controls.sensitivity.generic.flags = QMF_SMALLFONT; s_controls.sensitivity.generic.name = "mouse speed"; 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.generic.statusbar = Controls_StatusBar; s_controls.zoom.generic.type = MTYPE_ACTION; s_controls.zoom.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.zoom.generic.callback = Controls_ActionEvent; s_controls.zoom.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.zoom.generic.id = ID_ZOOM; s_controls.zoom.generic.toolTip = "Press this key in game to enable zoom mode for weapons that support it."; s_controls.gesture.generic.type = MTYPE_ACTION; s_controls.gesture.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.gesture.generic.callback = Controls_ActionEvent; s_controls.gesture.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.gesture.generic.id = ID_GESTURE; s_controls.gesture.generic.toolTip = "Press this key in game to taunt other players."; s_controls.chat.generic.type = MTYPE_ACTION; s_controls.chat.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.chat.generic.callback = Controls_ActionEvent; s_controls.chat.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.chat.generic.id = ID_CHAT; s_controls.chat.generic.toolTip = "Press this key in game before typing a message to text chat to all players in the game."; s_controls.chat2.generic.type = MTYPE_ACTION; s_controls.chat2.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; 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_GRAYED|QMF_HIDDEN; s_controls.chat3.generic.callback = Controls_ActionEvent; s_controls.chat3.generic.ownerdraw = Controls_DrawKeyBinding; // s_controls.chat3.generic.id = ID_CHAT3; s_controls.chat3.generic.id = ID_VOTEYES; s_controls.chat3.generic.toolTip = "Cast a yes vote to a vote in progress (votes appear top left of the screen)."; s_controls.chat4.generic.type = MTYPE_ACTION; s_controls.chat4.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.chat4.generic.callback = Controls_ActionEvent; s_controls.chat4.generic.ownerdraw = Controls_DrawKeyBinding; // s_controls.chat4.generic.id = ID_CHAT4; s_controls.chat4.generic.id = ID_VOTENO; s_controls.chat4.generic.toolTip = "Cast a no vote to a vote in progress (votes appear top left of the screen)."; s_controls.music.generic.type = MTYPE_ACTION; s_controls.music.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.music.generic.callback = Controls_ActionEvent; s_controls.music.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.music.generic.id = ID_MUSIC; s_controls.nextSong.generic.type = MTYPE_ACTION; s_controls.nextSong.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.nextSong.generic.callback = Controls_ActionEvent; s_controls.nextSong.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.nextSong.generic.id = ID_NEXTSONG; s_controls.dropCart.generic.type = MTYPE_ACTION; s_controls.dropCart.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.dropCart.generic.callback = Controls_ActionEvent; s_controls.dropCart.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.dropCart.generic.id = ID_DROPCART; s_controls.thirdPerson.generic.type = MTYPE_ACTION; s_controls.thirdPerson.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.thirdPerson.generic.callback = Controls_ActionEvent; s_controls.thirdPerson.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.thirdPerson.generic.id = ID_3RDPERSON; s_controls.thirdPerson.generic.toolTip = "Press this key in game to switch to third person view, press again to switch back to first person view."; s_controls.pushToTalk.generic.type = MTYPE_ACTION; s_controls.pushToTalk.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.pushToTalk.generic.callback = Controls_ActionEvent; s_controls.pushToTalk.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.pushToTalk.generic.id = ID_PUSH2TALK; s_controls.pushToTalk.generic.toolTip = "Press and hold this key to talk to other players through your microphone. This is not required if your microphone setting is set to open."; s_controls.ServerInfo.generic.type = MTYPE_ACTION; s_controls.ServerInfo.generic.flags = QMF_LEFT_JUSTIFY|QMF_GRAYED|QMF_HIDDEN; s_controls.ServerInfo.generic.callback = Controls_ActionEvent; s_controls.ServerInfo.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.ServerInfo.generic.id = ID_SERVERINFO; s_controls.ServerInfo.generic.toolTip = "Press this key in game to display server settings information."; s_controls.helpGametype.generic.type = MTYPE_ACTION; s_controls.helpGametype.generic.flags = ( QMF_LEFT_JUSTIFY | QMF_GRAYED | QMF_HIDDEN ); s_controls.helpGametype.generic.callback = Controls_ActionEvent; s_controls.helpGametype.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.helpGametype.generic.id = ID_HELP_GAMETYPE; s_controls.helpGametype.generic.toolTip = "Press this key in game to see a basic description of the rules of the gametype set."; s_controls.helpItems.generic.type = MTYPE_ACTION; s_controls.helpItems.generic.flags = ( QMF_LEFT_JUSTIFY | QMF_GRAYED | QMF_HIDDEN ); s_controls.helpItems.generic.callback = Controls_ActionEvent; s_controls.helpItems.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.helpItems.generic.id = ID_HELP_ITEMS; s_controls.helpItems.generic.toolTip = "Press this key in game to see information on what the weapons / powerups / items and icons are."; Menu_AddItem( &s_controls.menu, &s_controls.looking ); Menu_AddItem( &s_controls.menu, &s_controls.movement ); Menu_AddItem( &s_controls.menu, &s_controls.weapons ); Menu_AddItem( &s_controls.menu, &s_controls.misc ); Menu_AddItem( &s_controls.menu, &s_controls.sensitivity ); Menu_AddItem( &s_controls.menu, &s_controls.smoothmouse ); Menu_AddItem( &s_controls.menu, &s_controls.invertmouse ); Menu_AddItem( &s_controls.menu, &s_controls.zoom ); Menu_AddItem( &s_controls.menu, &s_controls.run ); Menu_AddItem( &s_controls.menu, &s_controls.walkforward ); Menu_AddItem( &s_controls.menu, &s_controls.backpedal ); Menu_AddItem( &s_controls.menu, &s_controls.stepleft ); Menu_AddItem( &s_controls.menu, &s_controls.stepright ); Menu_AddItem( &s_controls.menu, &s_controls.moveup ); Menu_AddItem( &s_controls.menu, &s_controls.movedown ); Menu_AddItem( &s_controls.menu, &s_controls.attack ); Menu_AddItem( &s_controls.menu, &s_controls.nextweapon ); Menu_AddItem( &s_controls.menu, &s_controls.prevweapon ); Menu_AddItem( &s_controls.menu, &s_controls.autoswitch ); Menu_AddItem( &s_controls.menu, &s_controls.chainsaw ); Menu_AddItem( &s_controls.menu, &s_controls.machinegun ); Menu_AddItem( &s_controls.menu, &s_controls.shotgun ); Menu_AddItem( &s_controls.menu, &s_controls.grenadelauncher ); Menu_AddItem( &s_controls.menu, &s_controls.rocketlauncher ); Menu_AddItem( &s_controls.menu, &s_controls.lightning ); Menu_AddItem( &s_controls.menu, &s_controls.railgun ); Menu_AddItem( &s_controls.menu, &s_controls.plasma ); Menu_AddItem( &s_controls.menu, &s_controls.bfg ); Menu_AddItem( &s_controls.menu, &s_controls.showscores ); Menu_AddItem( &s_controls.menu, &s_controls.useitem ); Menu_AddItem( &s_controls.menu, &s_controls.gesture ); Menu_AddItem( &s_controls.menu, &s_controls.chat ); Menu_AddItem( &s_controls.menu, &s_controls.chat2 ); Menu_AddItem( &s_controls.menu, &s_controls.chat3 ); Menu_AddItem( &s_controls.menu, &s_controls.chat4 ); Menu_AddItem( &s_controls.menu, &s_controls.music ); Menu_AddItem( &s_controls.menu, &s_controls.nextSong ); Menu_AddItem( &s_controls.menu, &s_controls.dropCart ); Menu_AddItem( &s_controls.menu, &s_controls.ServerInfo ); Menu_AddItem( &s_controls.menu, &s_controls.thirdPerson ); Menu_AddItem( &s_controls.menu, &s_controls.helpGametype ); Menu_AddItem( &s_controls.menu, &s_controls.helpItems ); Menu_AddItem( &s_controls.menu, &s_controls.pushToTalk ); Menu_AddItem( &s_controls.menu, &s_controls.back ); // initialize the configurable cvars Controls_InitCvars(); // initialize the current config Controls_GetConfig(); // intialize the weapons // Controls_InitWeapons (); // initial default section s_controls.section = C_LOOKING; // update the ui Controls_Update(); }
/* ================= Controls_MenuInit ================= */ static void Controls_MenuInit(void) { static char playername[32]; // zero set all our globals memset(&s_controls, 0 ,sizeof(controls_t)); Controls_Cache(); s_controls.menu.key = Controls_MenuKey; s_controls.menu.wrapAround = qtrue; s_controls.menu.fullscreen = qtrue; s_controls.banner.generic.type = MTYPE_BTEXT; s_controls.banner.generic.flags = QMF_CENTER_JUSTIFY; s_controls.banner.generic.x = 320; s_controls.banner.generic.y = 16; s_controls.banner.string = "CONTROLS"; s_controls.banner.color = color_white; s_controls.banner.style = UI_CENTER; s_controls.framel.generic.type = MTYPE_BITMAP; s_controls.framel.generic.name = ART_FRAMEL; s_controls.framel.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE; s_controls.framel.generic.x = 0; s_controls.framel.generic.y = 78; s_controls.framel.width = 256; s_controls.framel.height = 329; s_controls.framer.generic.type = MTYPE_BITMAP; s_controls.framer.generic.name = ART_FRAMER; s_controls.framer.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE; s_controls.framer.generic.x = 376; s_controls.framer.generic.y = 76; s_controls.framer.width = 256; s_controls.framer.height = 334; s_controls.looking.generic.type = MTYPE_PTEXT; s_controls.looking.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.looking.generic.id = ID_LOOKING; s_controls.looking.generic.callback = Controls_MenuEvent; s_controls.looking.generic.x = 152; s_controls.looking.generic.y = 240 - 2 * PROP_HEIGHT; s_controls.looking.string = "LOOK"; s_controls.looking.style = UI_RIGHT; s_controls.looking.color = color_red; s_controls.movement.generic.type = MTYPE_PTEXT; s_controls.movement.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.movement.generic.id = ID_MOVEMENT; s_controls.movement.generic.callback = Controls_MenuEvent; s_controls.movement.generic.x = 152; s_controls.movement.generic.y = 240 - PROP_HEIGHT; s_controls.movement.string = "MOVE"; s_controls.movement.style = UI_RIGHT; s_controls.movement.color = color_red; s_controls.weapons.generic.type = MTYPE_PTEXT; s_controls.weapons.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.weapons.generic.id = ID_WEAPONS; s_controls.weapons.generic.callback = Controls_MenuEvent; s_controls.weapons.generic.x = 152; s_controls.weapons.generic.y = 240; s_controls.weapons.string = "SHOOT"; s_controls.weapons.style = UI_RIGHT; s_controls.weapons.color = color_red; s_controls.misc.generic.type = MTYPE_PTEXT; s_controls.misc.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.misc.generic.id = ID_MISC; s_controls.misc.generic.callback = Controls_MenuEvent; s_controls.misc.generic.x = 152; s_controls.misc.generic.y = 240 + PROP_HEIGHT; s_controls.misc.string = "MISC"; s_controls.misc.style = UI_RIGHT; s_controls.misc.color = color_red; s_controls.back.generic.type = MTYPE_BITMAP; s_controls.back.generic.name = ART_BACK0; s_controls.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS; s_controls.back.generic.x = 0; s_controls.back.generic.y = 480-64; s_controls.back.generic.id = ID_BACK; s_controls.back.generic.callback = Controls_MenuEvent; s_controls.back.width = 128; s_controls.back.height = 64; s_controls.back.focuspic = ART_BACK1; s_controls.player.generic.type = MTYPE_BITMAP; s_controls.player.generic.flags = QMF_INACTIVE; s_controls.player.generic.ownerdraw = Controls_DrawPlayer; s_controls.player.generic.x = 400; s_controls.player.generic.y = -40; s_controls.player.width = 32*10; s_controls.player.height = 56*10; s_controls.walkforward.generic.type = MTYPE_ACTION; s_controls.walkforward.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.walkforward.generic.callback = Controls_ActionEvent; s_controls.walkforward.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.walkforward.generic.id = ID_FORWARD; s_controls.backpedal.generic.type = MTYPE_ACTION; s_controls.backpedal.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.backpedal.generic.callback = Controls_ActionEvent; s_controls.backpedal.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.backpedal.generic.id = ID_BACKPEDAL; s_controls.stepleft.generic.type = MTYPE_ACTION; s_controls.stepleft.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.stepleft.generic.callback = Controls_ActionEvent; s_controls.stepleft.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.stepleft.generic.id = ID_MOVELEFT; s_controls.stepright.generic.type = MTYPE_ACTION; s_controls.stepright.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.stepright.generic.callback = Controls_ActionEvent; s_controls.stepright.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.stepright.generic.id = ID_MOVERIGHT; s_controls.moveup.generic.type = MTYPE_ACTION; s_controls.moveup.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.moveup.generic.callback = Controls_ActionEvent; s_controls.moveup.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.moveup.generic.id = ID_MOVEUP; s_controls.movedown.generic.type = MTYPE_ACTION; s_controls.movedown.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.movedown.generic.callback = Controls_ActionEvent; s_controls.movedown.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.movedown.generic.id = ID_MOVEDOWN; s_controls.turnleft.generic.type = MTYPE_ACTION; s_controls.turnleft.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.turnleft.generic.callback = Controls_ActionEvent; s_controls.turnleft.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.turnleft.generic.id = ID_LEFT; s_controls.turnright.generic.type = MTYPE_ACTION; s_controls.turnright.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.turnright.generic.callback = Controls_ActionEvent; s_controls.turnright.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.turnright.generic.id = ID_RIGHT; s_controls.sidestep.generic.type = MTYPE_ACTION; s_controls.sidestep.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.sidestep.generic.callback = Controls_ActionEvent; s_controls.sidestep.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.sidestep.generic.id = ID_STRAFE; s_controls.run.generic.type = MTYPE_ACTION; s_controls.run.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.run.generic.callback = Controls_ActionEvent; s_controls.run.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.run.generic.id = ID_SPEED; s_controls.DropGun.generic.type = MTYPE_ACTION; s_controls.DropGun.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.DropGun.generic.callback = Controls_ActionEvent; s_controls.DropGun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.DropGun.generic.id = ID_DROPGUN; s_controls.SelectGun.generic.type = MTYPE_ACTION; s_controls.SelectGun.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.SelectGun.generic.callback = Controls_ActionEvent; s_controls.SelectGun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.SelectGun.generic.id = ID_SELECTGUN; s_controls.chainsaw.generic.type = MTYPE_ACTION; s_controls.chainsaw.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.chainsaw.generic.callback = Controls_ActionEvent; s_controls.chainsaw.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.chainsaw.generic.id = ID_WEAPON1; s_controls.machinegun.generic.type = MTYPE_ACTION; s_controls.machinegun.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.machinegun.generic.callback = Controls_ActionEvent; s_controls.machinegun.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.machinegun.generic.id = ID_WEAPON2; s_controls.attack.generic.type = MTYPE_ACTION; s_controls.attack.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.attack.generic.callback = Controls_ActionEvent; s_controls.attack.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.attack.generic.id = ID_ATTACK; s_controls.attack2.generic.type = MTYPE_ACTION; s_controls.attack2.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.attack2.generic.callback = Controls_ActionEvent; s_controls.attack2.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.attack2.generic.id = ID_ATTACK2; s_controls.reload.generic.type = MTYPE_ACTION; s_controls.reload.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.reload.generic.callback = Controls_ActionEvent; s_controls.reload.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.reload.generic.id = ID_RELOAD; s_controls.prevweapon.generic.type = MTYPE_ACTION; s_controls.prevweapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.prevweapon.generic.callback = Controls_ActionEvent; s_controls.prevweapon.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.prevweapon.generic.id = ID_WEAPPREV; s_controls.nextweapon.generic.type = MTYPE_ACTION; s_controls.nextweapon.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.nextweapon.generic.callback = Controls_ActionEvent; s_controls.nextweapon.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.nextweapon.generic.id = ID_WEAPNEXT; s_controls.lookup.generic.type = MTYPE_ACTION; s_controls.lookup.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.lookup.generic.callback = Controls_ActionEvent; s_controls.lookup.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.lookup.generic.id = ID_LOOKUP; s_controls.lookdown.generic.type = MTYPE_ACTION; s_controls.lookdown.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.lookdown.generic.callback = Controls_ActionEvent; s_controls.lookdown.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.lookdown.generic.id = ID_LOOKDOWN; s_controls.mouselook.generic.type = MTYPE_ACTION; s_controls.mouselook.generic.flags = QMF_LEFT_JUSTIFY|QMF_HIGHLIGHT_IF_FOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.mouselook.generic.callback = Controls_ActionEvent; s_controls.mouselook.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.mouselook.generic.id = ID_MOUSELOOK; s_controls.freelook.generic.type = MTYPE_RADIOBUTTON; s_controls.freelook.generic.flags = QMF_SMALLFONT; s_controls.freelook.generic.x = SCREEN_WIDTH/2; s_controls.freelook.generic.name = "free look"; s_controls.freelook.generic.id = ID_FREELOOK; s_controls.freelook.generic.callback = Controls_MenuEvent; s_controls.freelook.generic.statusbar = Controls_StatusBar; s_controls.centerview.generic.type = MTYPE_ACTION; s_controls.centerview.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.centerview.generic.callback = Controls_ActionEvent; s_controls.centerview.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.centerview.generic.id = ID_CENTERVIEW; s_controls.zoomview.generic.type = MTYPE_ACTION; s_controls.zoomview.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.zoomview.generic.callback = Controls_ActionEvent; s_controls.zoomview.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.zoomview.generic.id = ID_ZOOMVIEW; s_controls.NightVision.generic.type = MTYPE_ACTION; s_controls.NightVision.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.NightVision.generic.callback = Controls_ActionEvent; s_controls.NightVision.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.NightVision.generic.id = ID_NIGHTVISION; s_controls.useitem.generic.type = MTYPE_ACTION; s_controls.useitem.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.useitem.generic.callback = Controls_ActionEvent; s_controls.useitem.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.useitem.generic.id = ID_USEITEM; s_controls.showscores.generic.type = MTYPE_ACTION; s_controls.showscores.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.showscores.generic.callback = Controls_ActionEvent; s_controls.showscores.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.showscores.generic.id = ID_SHOWSCORES; s_controls.invertmouse.generic.type = MTYPE_RADIOBUTTON; s_controls.invertmouse.generic.flags = QMF_SMALLFONT; s_controls.invertmouse.generic.x = SCREEN_WIDTH/2; s_controls.invertmouse.generic.name = "invert mouse"; s_controls.invertmouse.generic.id = ID_INVERTMOUSE; s_controls.invertmouse.generic.callback = Controls_MenuEvent; s_controls.invertmouse.generic.statusbar = Controls_StatusBar; s_controls.smoothmouse.generic.type = MTYPE_RADIOBUTTON; s_controls.smoothmouse.generic.flags = QMF_SMALLFONT; s_controls.smoothmouse.generic.x = SCREEN_WIDTH/2; s_controls.smoothmouse.generic.name = "smooth mouse"; s_controls.smoothmouse.generic.id = ID_SMOOTHMOUSE; s_controls.smoothmouse.generic.callback = Controls_MenuEvent; s_controls.smoothmouse.generic.statusbar = Controls_StatusBar; s_controls.alwaysrun.generic.type = MTYPE_RADIOBUTTON; s_controls.alwaysrun.generic.flags = QMF_SMALLFONT; s_controls.alwaysrun.generic.x = SCREEN_WIDTH/2; s_controls.alwaysrun.generic.name = "always run"; s_controls.alwaysrun.generic.id = ID_ALWAYSRUN; s_controls.alwaysrun.generic.callback = Controls_MenuEvent; s_controls.alwaysrun.generic.statusbar = Controls_StatusBar; s_controls.autoswitch.generic.type = MTYPE_RADIOBUTTON; s_controls.autoswitch.generic.flags = QMF_SMALLFONT; s_controls.autoswitch.generic.x = SCREEN_WIDTH/2; s_controls.autoswitch.generic.name = "autoswitch weapons"; s_controls.autoswitch.generic.id = ID_AUTOSWITCH; s_controls.autoswitch.generic.callback = Controls_MenuEvent; s_controls.autoswitch.generic.statusbar = Controls_StatusBar; s_controls.sensitivity.generic.type = MTYPE_SLIDER; s_controls.sensitivity.generic.x = SCREEN_WIDTH/2; s_controls.sensitivity.generic.flags = QMF_SMALLFONT; s_controls.sensitivity.generic.name = "mouse speed"; 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.generic.statusbar = Controls_StatusBar; s_controls.gesture.generic.type = MTYPE_ACTION; s_controls.gesture.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.gesture.generic.callback = Controls_ActionEvent; s_controls.gesture.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.gesture.generic.id = ID_GESTURE; s_controls.chat.generic.type = MTYPE_ACTION; s_controls.chat.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; 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_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; 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_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; 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_PULSEIFFOCUS|QMF_GRAYED|QMF_HIDDEN; s_controls.chat4.generic.callback = Controls_ActionEvent; s_controls.chat4.generic.ownerdraw = Controls_DrawKeyBinding; s_controls.chat4.generic.id = ID_CHAT4; s_controls.joyenable.generic.type = MTYPE_RADIOBUTTON; s_controls.joyenable.generic.flags = QMF_SMALLFONT; s_controls.joyenable.generic.x = SCREEN_WIDTH/2; s_controls.joyenable.generic.name = "joystick"; s_controls.joyenable.generic.id = ID_JOYENABLE; s_controls.joyenable.generic.callback = Controls_MenuEvent; s_controls.joyenable.generic.statusbar = Controls_StatusBar; s_controls.joythreshold.generic.type = MTYPE_SLIDER; s_controls.joythreshold.generic.x = SCREEN_WIDTH/2; s_controls.joythreshold.generic.flags = QMF_SMALLFONT; s_controls.joythreshold.generic.name = "joystick threshold"; s_controls.joythreshold.generic.id = ID_JOYTHRESHOLD; s_controls.joythreshold.generic.callback = Controls_MenuEvent; s_controls.joythreshold.minvalue = 0.05f; s_controls.joythreshold.maxvalue = 0.75f; s_controls.joythreshold.generic.statusbar = Controls_StatusBar; s_controls.name.generic.type = MTYPE_PTEXT; s_controls.name.generic.flags = QMF_CENTER_JUSTIFY|QMF_INACTIVE; s_controls.name.generic.x = 320; s_controls.name.generic.y = 440; s_controls.name.string = playername; s_controls.name.style = UI_CENTER; s_controls.name.color = text_color_normal; Menu_AddItem(&s_controls.menu, &s_controls.banner); Menu_AddItem(&s_controls.menu, &s_controls.framel); Menu_AddItem(&s_controls.menu, &s_controls.framer); Menu_AddItem(&s_controls.menu, &s_controls.player); Menu_AddItem(&s_controls.menu, &s_controls.name); Menu_AddItem(&s_controls.menu, &s_controls.looking); Menu_AddItem(&s_controls.menu, &s_controls.movement); Menu_AddItem(&s_controls.menu, &s_controls.weapons); Menu_AddItem(&s_controls.menu, &s_controls.misc); Menu_AddItem(&s_controls.menu, &s_controls.sensitivity); Menu_AddItem(&s_controls.menu, &s_controls.smoothmouse); Menu_AddItem(&s_controls.menu, &s_controls.invertmouse); Menu_AddItem(&s_controls.menu, &s_controls.lookup); Menu_AddItem(&s_controls.menu, &s_controls.lookdown); Menu_AddItem(&s_controls.menu, &s_controls.mouselook); Menu_AddItem(&s_controls.menu, &s_controls.freelook); Menu_AddItem(&s_controls.menu, &s_controls.centerview); Menu_AddItem(&s_controls.menu, &s_controls.zoomview); Menu_AddItem(&s_controls.menu, &s_controls.joyenable); Menu_AddItem(&s_controls.menu, &s_controls.joythreshold); Menu_AddItem(&s_controls.menu, &s_controls.alwaysrun); Menu_AddItem(&s_controls.menu, &s_controls.run); Menu_AddItem(&s_controls.menu, &s_controls.walkforward); Menu_AddItem(&s_controls.menu, &s_controls.backpedal); Menu_AddItem(&s_controls.menu, &s_controls.stepleft); Menu_AddItem(&s_controls.menu, &s_controls.stepright); Menu_AddItem(&s_controls.menu, &s_controls.moveup); Menu_AddItem(&s_controls.menu, &s_controls.movedown); Menu_AddItem(&s_controls.menu, &s_controls.turnleft); Menu_AddItem(&s_controls.menu, &s_controls.turnright); Menu_AddItem(&s_controls.menu, &s_controls.sidestep); Menu_AddItem(&s_controls.menu, &s_controls.attack); Menu_AddItem(&s_controls.menu, &s_controls.attack2); Menu_AddItem(&s_controls.menu, &s_controls.reload); Menu_AddItem(&s_controls.menu, &s_controls.nextweapon); Menu_AddItem(&s_controls.menu, &s_controls.prevweapon); Menu_AddItem(&s_controls.menu, &s_controls.autoswitch); Menu_AddItem(&s_controls.menu, &s_controls.chainsaw); Menu_AddItem(&s_controls.menu, &s_controls.machinegun); Menu_AddItem(&s_controls.menu, &s_controls.SelectGun); Menu_AddItem(&s_controls.menu, &s_controls.DropGun); Menu_AddItem(&s_controls.menu, &s_controls.NightVision); Menu_AddItem(&s_controls.menu, &s_controls.showscores); Menu_AddItem(&s_controls.menu, &s_controls.useitem); Menu_AddItem(&s_controls.menu, &s_controls.gesture); Menu_AddItem(&s_controls.menu, &s_controls.chat); Menu_AddItem(&s_controls.menu, &s_controls.chat2); Menu_AddItem(&s_controls.menu, &s_controls.chat3); Menu_AddItem(&s_controls.menu, &s_controls.chat4); Menu_AddItem(&s_controls.menu, &s_controls.back); trap_Cvar_VariableStringBuffer("name", s_controls.name.string, 16); Q_CleanStr(s_controls.name.string); // initialize the configurable cvars Controls_InitCvars(); // initialize the current config Controls_GetConfig(); // intialize the model Controls_InitModel(); // intialize the weapons Controls_InitWeapons (); // initial default section s_controls.section = C_LOOKING; // update the ui Controls_Update(); }