cod4-sdk/raw/maps/_menus.gsc
2008-01-19 00:00:00 +00:00

1003 lines
25 KiB
Text

// Need to seperate layout from functionality more for more flexibility
// Create a thread which processes left and right. This will be passed to addItemSetting so it can be different per itemDef
// This should attempt to change the dvar value if in range
// Should also automatically update the associated hud elem
#include maps\_utility;
#include maps\_hud_util;
init()
{
precacheMenu( "uiScript_startMultiplayer" );
precacheShader( "black" );
precacheShader( "white" );
precacheShader( "menu_button" );
precacheShader( "menu_button_selected" );
precacheShader( "menu_button_fade" );
precacheShader( "menu_button_fade_selected" );
precacheShader( "menu_button_faderight" );
precacheShader( "menu_button_faderight_selected" );
precacheShader( "menu_caret_open" );
precacheShader( "menu_caret_closed" );
thread initThumbstickLayout();
thread initButtonLayout();
thread initSensitivity();
thread initInversion();
thread initAutoaim();
thread initVibration();
level.menuStack = [];
levelMenu = createMenu( "levels" );
action = setupAction(::loadMap, "cqb_1");
description = spawnStruct();
description.display = &"MENU_1ST_PASS";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_CQB_TEST", action, "loadmap", description );
action = setupAction(::loadMap, "descent");
description = spawnStruct();
description.display = &"MENU_1ST_PASS";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_BUNKER", action, "loadmap", description );
action = setupAction(::loadMap, "aftermath");
description = spawnStruct();
description.display = &"MENU_100_INITIAL_GEO";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_AFTERMATH", action, "loadmap", description );
action = setupAction(::loadMap, "chechnya_escape");
description = spawnStruct();
description.display = &"MENU_40_INITIAL_GEO";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_CHECHNYA_ESCAPE", action, "loadmap", description );
action = setupAction(::loadMap, "marksman");
description = spawnStruct();
description.display = &"MENU_25_SCRIPTED";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_MARKSMAN", action, "loadmap", description );
action = setupAction(::loadMap, "seaknight_defend");
description = spawnStruct();
description.display = &"MENU_PROTOTYPE_LEVEL_30_SCRIPTED";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_SEAKNIGHT_DEFEND", action, "loadmap", description );
action = setupAction(::loadMap, "wetwork");
description = spawnStruct();
description.display = &"MENU_100_INITIAL_GEO";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_WETWORK", action, "loadmap", description );
action = setupAction(::loadMap, "cargoship");
description = spawnStruct();
description.display = &"MENU_10_SCRIPTED";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_CARGOSHIP", action, "loadmap", description );
action = setupAction(::loadMap, "bog");
description = spawnStruct();
description.display = &"MENU_35_INITIAL_GEO";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_BOG", action, "loadmap", description );
action = setupAction(::loadMap, "training");
description = spawnStruct();
description.display = &"MENU_5_SCRIPTED";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_TRAINING1", action, "loadmap", description );
action = setupAction(::loadMap, "ac130");
description = spawnStruct();
description.display = &"MENU_30";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_AC130", action, "loadmap", description );
action = setupAction(::loadMap, "seaknight_assault");
description = spawnStruct();
description.display = &"MENU_INITIAL_GEO_IN_PROGRESS";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_SEAKNIGHT_ASSAULT", action, "loadmap", description );
action = setupAction(::loadMap, "pilotcobra");
description = spawnStruct();
description.display = &"MENU_INITIAL_GEO_IN_PROGRESS";
description.xPos = 240;
description.yPos = 100;
levelMenu addItem( &"MENU_PILOT_COBRA", action, "loadmap", description );
controlsMenu = createMenu_Controls( "controls" );
setting = spawnStruct();
setting.index = 0;
setting.dvar = "controls_sticksConfig";
setting.value[0] = "thumbstick_default";
setting.value[1] = "thumbstick_southpaw";
setting.value[2] = "thumbstick_legacy";
setting.value[3] = "thumbstick_legacysouthpaw";
setting.display[0] = "Default";
setting.display[1] = "Southpaw";
setting.display[2] = "Legacy";
setting.display[3] = "Legacy Southpaw";
controlsMenu addItemSetting( &"MENU_THUMBSTICK_LAYOUT", undefined, undefined, undefined, setting );
setting = spawnStruct();
setting.index = 0;
setting.dvar = "controls_buttonConfig";
setting.value[0] = "buttons_default";
setting.value[1] = "buttons_experimental";
setting.value[2] = "buttons_lefty";
setting.value[3] = "buttons_finesthour";
setting.display[0] = "Default";
setting.display[1] = "Experimental";
setting.display[2] = "Lefty";
setting.display[3] = "Finest Hour";
controlsMenu addItemSetting( &"MENU_BUTTON_LAYOUT", undefined, undefined, undefined, setting );
setting = spawnStruct();
setting.index = 1;
setting.dvar = "controls_sensitivityConfig";
setting.value[0] = "sensitivity_low";
setting.value[1] = "sensitivity_medium";
setting.value[2] = "sensitivity_high";
setting.value[3] = "sensitivity_veryhigh";
setting.display[0] = "Low";
setting.display[1] = "Medium";
setting.display[2] = "High";
setting.display[3] = "Very High";
controlsMenu addItemSetting( &"MENU_LOOK_SENSITIVITY", undefined, undefined, undefined, setting );
setting = spawnStruct();
setting.index = 0;
setting.dvar = "controls_inversionConfig";
setting.value[0] = "inversion_disabled";
setting.value[1] = "inversion_enabled";
setting.display[0] = "Disabled";
setting.display[1] = "Enabled";
controlsMenu addItemSetting( &"MENU_LOOK_INVERSION", undefined, undefined, undefined, setting );
setting = spawnStruct();
setting.index = 1;
setting.dvar = "controls_autoaimConfig";
setting.value[0] = "autoaim_disabled";
setting.value[1] = "autoaim_enabled";
setting.display[0] = "Disabled";
setting.display[1] = "Enabled";
controlsMenu addItemSetting( &"MENU_AUTOAIM", undefined, undefined, undefined, setting );
setting = spawnStruct();
setting.index = 1;
setting.dvar = "controls_vibrationConfig";
setting.value[0] = "vibration_disabled";
setting.value[1] = "vibration_enabled";
setting.display[0] = "Disabled";
setting.display[1] = "Enabled";
controlsMenu addItemSetting( &"MENU_CONTROLLER_VIBRATION", undefined, undefined, undefined, setting );
//optionsMenu = createMenu();
//optionsMenu addItem( &"MENU_CONTROLS", ::pushMenu, controlsMenu );
//optionsMenu addItem( &"MENU_SUBTITLES", ::void );
//optionsMenu addItem( &"MENU_SAVE_DEVICE", ::void );
mainMenu = createMenu( "main" );
action = setupAction(::pushMenu, levelMenu);
mainMenu addItem( &"MENU_SELECT_LEVEL", action, "openmenu_levels" );
subMenu = mainMenu addSubMenu( "options", &"MENU_OPTIONS" );
action = setupAction(::pushMenu, controlsMenu);
subMenu addItem( &"MENU_CONTROLS", action );
subMenu addItem( &"MENU_SUBTITLES" );
subMenu addItem( &"MENU_SAVE_DEVICE" );
mainMenu addItem( &"MENU_CREDITS" );
action = setupAction(::loadMultiplayer);
mainMenu addItem( &"MENU_MULTIPLAYER", action );
pushMenu( mainMenu );
getEnt( "player", "classname" ) thread menuResponse();
}
void()
{
}
loadMap( map )
{
changelevel( map );
}
loadMultiplayer()
{
level.player openMenu( "uiScript_startMultiplayer" );
}
pushMenu( menuDef )
{
level.menuStack[level.menuStack.size] = menuDef;
oldMenu = level.curMenu;
level.curMenu = menuDef;
if ( menuDef.menuType == "fullScreen" )
{
if ( isDefined( oldMenu ) )
oldMenu thread hideMenu( 0.2, true );
menuDef thread showMenu( 0.2, true );
level notify ( "open_menu", level.curMenu.name );
}
else
{
menuDef thread expandMenu( 0.2 );
}
level.player playsound("mouse_click");
}
popMenu()
{
if ( level.menuStack.size == 1 )
return;
level.menuStack[level.menuStack.size - 1] = undefined;
oldMenu = level.curMenu;
level.curMenu = level.menuStack[level.menuStack.size - 1];
if ( oldMenu.menuType == "subMenu" )
{
oldMenu thread collapseMenu( 0.2 );
level.curMenu updateMenu( 0.2, true );
}
else
{
oldMenu thread hideMenu( 0.2, false );
level.curMenu thread showMenu( 0.2, false );
level notify ( "close_menu", level.menuStack.size );
}
level.player playsound("mouse_click");
}
createMenu( name )
{
menuDef = spawnStruct();
menuDef.name = name;
menuDef.menuType = "fullScreen";
menuDef.itemDefs = [];
menuDef.itemWidth = 120;
menuDef.itemHeight = 20;
menuDef.itemPadding = 0;
menuDef.selectedIndex = 0;
menuDef.xPos = 80;
menuDef.yPos = 100;
menuDef.xOffset = 0;
menuDef.yOffset = 0;
return menuDef;
}
createMenu_Controls( name )
{
menuDef = spawnStruct();
menuDef.name = name;
menuDef.menuType = "fullScreen";
menuDef.itemDefs = [];
menuDef.itemWidth = 420;
menuDef.itemHeight = 20;
menuDef.itemPadding = 0;
menuDef.selectedIndex = 0;
menuDef.xPos = 80;
menuDef.yPos = 100;
menuDef.xOffset = 0;
menuDef.yOffset = 0;
return menuDef;
}
createSubMenu( name )
{
subMenuDef = spawnStruct();
subMenuDef.name = name;
subMenuDef.menuType = "subMenu";
subMenuDef.itemDefs = [];
subMenuDef.itemWidth = 120;
subMenuDef.itemHeight = 20;
subMenuDef.itemPadding = 0;
subMenuDef.selectedIndex = 0;
subMenuDef.isExpanded = false;
return subMenuDef;
}
addItem( text, action, event, description )
{
precacheString(text);
itemDef = spawnStruct();
itemDef.itemType = "item";
itemDef.bgShader = "menu_button_selected";
itemDef.fgText = text;
itemDef.xPos = 0;
itemDef.yPos = 0;
itemDef.xOffset = 0;
itemDef.yOffset = 0;
itemDef.action = action;
itemDef.event = event;
itemDef.description = description;
itemDef.parentDef = self;
itemDef.index = self.itemDefs.size;
self.itemDefs[self.itemDefs.size] = itemDef;
}
addItemSetting( text, action, event, description, setting )
{
precacheString(text);
itemDef = spawnStruct();
itemDef.itemType = "settingMenu";
itemDef.bgShader = "menu_button_selected";
itemDef.fgText = text;
itemDef.xPos = 0;
itemDef.yPos = 0;
itemDef.xOffset = 0;
itemDef.yOffset = 0;
itemDef.action = action;
itemDef.event = event;
itemDef.description = description;
itemDef.setting = setting;
itemDef.parentDef = self;
itemDef.index = self.itemDefs.size;
self.itemDefs[self.itemDefs.size] = itemDef;
}
addSubMenu( name, text )
{
itemDef = createSubMenu(name);
itemDef.itemType = "subMenu";
itemDef.bgShader = "menu_button_selected";
itemDef.fgText = text;
itemDef.xPos = 0;
itemDef.yPos = 0;
itemDef.xOffset = 20;
itemDef.yOffset = (self.itemHeight + self.itemPadding) ;
itemDef.parentDef = self;
itemDef.index = self.itemDefs.size;
self.itemDefs[self.itemDefs.size] = itemDef;
return itemDef;
}
createItemElems()
{
self.bgIcon = createIcon( self.bgShader, self.parentDef.itemWidth, self.parentDef.itemHeight );
self.bgIcon.alpha = 0;
self.bgIcon.sort = 0;
self.fontString = createFontString( "default", 1.5 );
self.fontString.alpha = 0;
self.fontString.sort = 100;
self.fontString setText( self.fgText );
if ( self.itemType == "settingMenu" )
{
self.settingValue = createFontString( "default", 1.5 );
self.settingValue.alpha = 0;
self.settingValue.sort = 100;
self updateDisplayValue();
}
if ( self.itemType == "subMenu" )
{
self.caretIcon = createIcon( "menu_caret_closed", self.parentDef.itemHeight, self.parentDef.itemHeight );
self.caretIcon.alpha = 0;
self.caretIcon.sort = 100;
}
if ( isdefined ( self.description ) )
{
self.descriptionValue = createFontString( "default", 1.5 );
self.descriptionValue.alpha = 0;
self.descriptionValue.sort = 100;
self.descriptionValue setText( self.description.display );
}
}
destroyItemElems()
{
if ( self.itemType == "subMenu" )
self.caretIcon destroyElem();
if ( self.itemType == "settingMenu" )
self.settingValue destroyElem();
if ( isdefined ( self.descriptionValue ) )
self.descriptionValue destroyElem();
self.bgIcon destroyElem();
self.fontString destroyElem();
}
setElemPoints( point, relativePoint, xPos, yPos, transTime )
{
xOffset = 3;
self.bgIcon setPoint( point, relativePoint, xPos, yPos, transTime );
if ( self.itemType == "subMenu" )
{
self.caretIcon setPoint( point, relativePoint, xPos, yPos, transTime );
xOffset += 16;
}
if ( self.itemType == "settingMenu" )
{
self.settingValue setPoint( "TOPRIGHT", relativePoint, xPos + xOffset + 400, yPos, transTime );
}
if ( isdefined ( self.descriptionValue ) )
{
self.descriptionValue setPoint( "TOPLEFT", relativePoint, self.description.xPos, self.description.yPos, transTime );
}
self.fontString setPoint( point, relativePoint, xPos + xOffset, yPos, transTime );
}
showMenu( transTime, isNew )
{
yOffset = 0;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef createItemElems();
if ( isNew )
{
itemDef setElemPoints( "TOPLEFT", "TOPRIGHT", self.xPos, self.yPos + yOffset );
}
else
{
itemDef setElemPoints( "TOPRIGHT", "TOPLEFT", self.xPos, self.yPos + yOffset );
}
itemDef.xPos = self.xPos;
itemDef.yPos = self.yPos + yOffset;
yOffset += (self.itemHeight + self.itemPadding);
if ( itemDef.itemType == "subMenu" && itemDef.isExpanded )
{
yOffset += itemDef getMenuHeight();
// itemDef thread showMenu( transTime, isNew );
}
}
if ( self.menuType == "subMenu" )
self.parentDef showMenu( transTime, isNew );
self updateMenu( transTime, true );
}
hideMenu( transTime, isNew )
{
yOffset = 0;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
xOffset = -1 * self.itemWidth;
if ( isNew )
{
itemDef setElemPoints( "TOPRIGHT", "TOPLEFT", self.xPos, self.yPos + yOffset, transTime );
itemDef.bgIcon fadeOverTime( transTime );
itemDef.bgIcon.alpha = 0;
itemDef.fontString fadeOverTime( transTime );
itemDef.fontString.alpha = 0;
if ( itemDef.itemType == "settingMenu" )
{
itemDef.settingValue fadeOverTime( transTime );
itemDef.settingValue.alpha = 0;
}
if ( itemDef.itemType == "subMenu" )
{
itemDef.caretIcon fadeOverTime( transTime );
itemDef.caretIcon.alpha = 0;
}
}
else
{
itemDef setElemPoints( "TOPLEFT", "TOPRIGHT", self.xPos, self.yPos + yOffset, transTime );
itemDef.bgIcon fadeOverTime( transTime );
itemDef.bgIcon.alpha = 0;
itemDef.fontString fadeOverTime( transTime );
itemDef.fontString.alpha = 0;
if ( itemDef.itemType == "settingMenu" )
{
itemDef.settingValue fadeOverTime( transTime );
itemDef.settingValue.alpha = 0;
}
if ( itemDef.itemType == "subMenu" )
{
itemDef.caretIcon fadeOverTime( transTime );
itemDef.caretIcon.alpha = 0;
}
}
itemDef.xPos = self.xPos;
itemDef.yPos = self.yPos + yOffset;
yOffset += (self.itemHeight + self.itemPadding);
if ( itemDef.itemType == "subMenu" && itemDef.isExpanded )
{
yOffset += itemDef getMenuHeight();
// itemDef thread hideMenu( transTime, isNew );
}
}
if ( self.menuType == "subMenu" )
self.parentDef thread hideMenu( transTime, isNew );
wait transTime;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef destroyItemElems();
}
}
collapseMenu( transTime )
{
self.isExpanded = false;
self.caretIcon setShader( "menu_caret_closed", self.parentDef.itemHeight, self.parentDef.itemHeight );
yOffset = 0;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef setElemPoints( "TOPLEFT", "TOPLEFT", self.xPos, self.yPos, transTime );
itemDef.bgIcon fadeOverTime( transTime );
itemDef.bgIcon.alpha = 0;
itemDef.fontString fadeOverTime( transTime );
itemDef.fontString.alpha = 0;
if ( itemDef.itemType == "subMenu" )
{
itemDef.caretIcon fadeOverTime( transTime );
itemDef.caretIcon.alpha = 0;
}
itemDef.xPos = self.xPos;
itemDef.yPos = self.yPos;
}
wait transTime;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef.bgIcon destroyElem();
itemDef.fontString destroyElem();
if ( itemDef.itemType == "subMenu" )
itemDef.caretIcon destroyElem();
}
}
expandMenu( transTime )
{
self.isExpanded = true;
self.caretIcon setShader( "menu_caret_open", self.parentDef.itemHeight, self.parentDef.itemHeight );
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef createItemElems();
itemDef setElemPoints( "TOPLEFT", "TOPLEFT", self.xPos + self.xOffset, self.yPos + self.yOffset );
itemDef.xPos = self.xPos + self.xOffset;
itemDef.yPos = self.yPos + self.yOffset;
}
self updateMenu( transTime, true );
}
updateMenu( transTime, forceRedraw )
{
xOffset = self.xOffset;
yOffset = self.yOffset;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
itemDef setSelected( transTime, index == self.selectedIndex );
lastXPos = itemDef.xPos;
lastYPos = itemDef.yPos;
if ( forceRedraw || (self.xPos + xOffset != lastXPos) || (self.yPos + yOffset != lastYPos) )
{
itemDef setElemPoints( "TOPLEFT", "TOPLEFT", self.xPos + xOffset, self.yPos + yOffset, transTime );
itemDef.xPos = self.xPos + xOffset;
itemDef.yPos = self.yPos + yOffset;
}
yOffset += (self.itemHeight + self.itemPadding);
if ( itemDef.itemType == "subMenu" && itemDef.isExpanded )
{
assert( level.curMenu != self );
yOffset += itemDef getMenuHeight();
}
}
if ( isDefined( self.parentDef ) )
self.parentDef thread updateMenu( transTime, forceRedraw );
}
setSelected( transTime, isSelected )
{
self.bgIcon fadeOverTime( transTime );
self.fontString fadeOverTime( transTime );
if ( isdefined( self.settingValue ) )
self.settingValue fadeOverTime( transTime );
if ( isdefined( self.descriptionValue ) )
self.descriptionValue fadeOverTime( transTime );
/*
self setElemAlpha( 0.85 );
if ( isSelected )
{
if ( self.parentDef == level.curMenu )
self setElemColor( (1,1,1) );
else
self setElemColor( (0.85,0.85,0.85) );
}
else
{
if ( self.parentDef == level.curMenu )
self setElemColor( (0.75,0.75,0.75) );
else
self setElemColor( (0.5,0.5,0.5) );
}
*/
if ( isSelected )
{
if ( self.parentDef == level.curMenu )
self setElemAlpha( 1 );
else
self setElemAlpha( 0.5 );
if ( isdefined ( self.descriptionValue ) )
self.descriptionValue.alpha = 1;
}
else
{
if ( self.parentDef == level.curMenu )
self setElemAlpha( 0.5 );
else
self setElemAlpha( 0.25 );
if ( isdefined ( self.descriptionValue ) )
self.descriptionValue.alpha = 0;
}
}
setElemAlpha( alpha )
{
self.bgIcon.alpha = alpha;
self.fontString.alpha = alpha;
if ( self.itemType == "settingMenu" )
self.settingValue.alpha = alpha;
if ( self.itemType == "subMenu" )
self.caretIcon.alpha = alpha;
// if ( isdefined ( self.descriptionValue ) )
// self.descriptionValue.alpha = alpha;
}
setElemColor( color )
{
self.fontString.color = color;
}
getMenuHeight()
{
menuHeight = 0;
for ( index = 0; index < self.itemDefs.size; index++ )
{
itemDef = self.itemDefs[index];
menuHeight += (self.itemHeight + self.itemPadding);
if ( itemDef.itemType == "subMenu" && itemDef.isExpanded )
menuHeight += itemDef getMenuHeight();
}
return menuHeight;
}
onDPadUp()
{
self.selectedIndex--;
if ( self.selectedIndex < 0 )
self.selectedIndex = self.itemDefs.size - 1;
self updateMenu( 0.1, false );
level.player playsound("mouse_over");
}
onDPadDown()
{
self.selectedIndex++;
if ( self.selectedIndex >= self.itemDefs.size )
self.selectedIndex = 0;
self updateMenu( 0.1, false );
level.player playsound("mouse_over");
}
onButtonB()
{
popMenu();
}
onButtonA()
{
focusedItem = self.itemDefs[self.selectedIndex];
if ( focusedItem.itemType == "subMenu" )
pushMenu( focusedItem );
else if ( focusedItem.itemType == "item" )
{
/* if ( isdefined( focusedItem.argument ) )
level thread [[focusedItem.callback]]( focusedItem.argument );
else
level thread [[focusedItem.callback]]();*/
focusedItem thread runAction();
}
}
onDPadLeft()
{
focusedItem = self.itemDefs[self.selectedIndex];
if ( focusedItem.itemType == "settingMenu" )
{
dvarCurrent = getdvar( focusedItem.setting.dvar );
dvarValues = focusedItem.setting.value;
indexNew = 0;
for ( i = 0; i < dvarValues.size; i++ )
{
dvarValue = dvarValues[i];
if(dvarValue != dvarCurrent)
continue;
indexNew = i - 1;
if(indexNew >= 0)
{
focusedItem.setting.index = indexNew;
setdvar( focusedItem.setting.dvar, dvarValues[indexNew] );
focusedItem updateDisplayValue();
println( "Setting: " + focusedItem.setting.dvar + " to " + dvarValues[indexNew] );
level.player playsound("mouse_over");
}
break;
}
}
}
onDPadRight()
{
focusedItem = self.itemDefs[self.selectedIndex];
if ( focusedItem.itemType == "settingMenu" )
{
dvarCurrent = getdvar( focusedItem.setting.dvar );
dvarValues = focusedItem.setting.value;
indexNew = 0;
for ( i = 0; i < dvarValues.size; i++ )
{
dvarValue = dvarValues[i];
if(dvarValue != dvarCurrent)
continue;
indexNew = i + 1;
if(indexNew <= focusedItem.setting.value.size - 1)
{
focusedItem.setting.index = indexNew;
setdvar( focusedItem.setting.dvar, dvarValues[indexNew] );
focusedItem updateDisplayValue();
level.player playsound("mouse_over");
println( "Setting: " + focusedItem.setting.dvar + " to " + dvarValues[indexNew] );
}
break;
}
}
}
initThumbstickLayout()
{
// update to use the real dvars when code will allow it
setdvar( "controls_sticksConfig", "thumbstick_default" );
}
initButtonLayout()
{
// update to use the real dvars when code will allow it
setdvar( "controls_buttonConfig", "buttons_default" );
}
initSensitivity()
{
// update to use the real dvars when code will allow it
setdvar( "controls_sensitivityConfig", "sensitivity_medium" );
}
initInversion()
{
// update to use the real dvars when code will allow it
setdvar( "controls_inversionConfig", "inversion_disabled" );
}
initAutoAim()
{
// update to use the real dvars when code will allow it
setdvar( "controls_autoaimConfig", "autoaim_enabled" );
}
initVibration()
{
// update to use the real dvars when code will allow it
setdvar( "controls_vibrationConfig", "vibration_enabled" );
}
updateDisplayValue()
{
self.settingValue setText( self.setting.display[self.setting.index] );
}
setupAction(name, arg1, arg2)
{
action = spawnStruct();
action.name = name;
if ( isdefined ( arg1 ) )
action.arg1 = arg1;
if ( isdefined ( arg2 ) )
action.arg2 = arg2;
return action;
}
runAction()
{
if ( isdefined ( self.action ) )
{
if ( isdefined ( self.action.arg1 ) )
thread [[self.action.name]]( self.action.arg1 );
else
thread [[self.action.name]]();
}
if ( isdefined ( self.event ) )
level notify ( self.event );
}
testAction()
{
level.marine setgoalnode(getnode("node2", "targetname"));
level.camera attachpath(getvehiclenode( "path2", "targetname" ));
thread maps\_vehicle::gopath(level.camera);
}
menuResponse()
{
for ( ;; )
{
self waittill( "menuresponse", menu, response );
println( response );
switch ( response )
{
case "DPAD_UP":
level.curMenu onDPadUp();
break;
case "DPAD_DOWN":
level.curMenu onDPadDown();
break;
case "DPAD_LEFT":
level.curMenu onDPadLeft();
break;
case "DPAD_RIGHT":
level.curMenu onDPadRight();
break;
case "BUTTON_A":
level.curMenu onButtonA();
break;
case "BUTTON_B":
level.curMenu onButtonB();
break;
}
}
}