first commit

This commit is contained in:
2026-06-14 01:40:04 +02:00
commit 5511354783
4787 changed files with 103543 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

@@ -0,0 +1,18 @@
on(construct){
m_width = 166;
m_textAlign = true;
m_labelPosition = "right align";
m_label_x = 0;
m_label_y = 0;
m_focusDirs = "Up/Down";
m_iconType = "default";
m_extLabel = "";
m_nTruncateType = 0;
m_label = "$Back";
m_bEnabled = true;
m_refFM = "_root.gFM";
m_initiallySelected = false;
m_tabIndex = 0;
m_bVisible = true;
m_contentSymbol = "buttonContentSymbol";
}
@@ -0,0 +1,18 @@
on(construct){
m_width = 200;
m_textAlign = false;
m_labelPosition = "right align";
m_label_x = 0;
m_label_y = 0;
m_focusDirs = "Up/Down";
m_iconType = "default";
m_extLabel = "";
m_nTruncateType = 0;
m_label = "$GUI:OK";
m_bEnabled = true;
m_refFM = "_root.gFM";
m_initiallySelected = false;
m_tabIndex = -1;
m_bVisible = true;
m_contentSymbol = "buttonContentSymbol";
}
@@ -0,0 +1,18 @@
on(construct){
m_width = 200;
m_textAlign = false;
m_labelPosition = "right align";
m_label_x = 0;
m_label_y = 0;
m_focusDirs = "Up/Down";
m_iconType = "default";
m_extLabel = "";
m_nTruncateType = 0;
m_label = "$GUI:HIDE_FOREVER";
m_bEnabled = true;
m_refFM = "_root.gFM";
m_initiallySelected = false;
m_tabIndex = 0;
m_bVisible = true;
m_contentSymbol = "checkBoxContentClipSymbol";
}
@@ -0,0 +1,193 @@
class Cafe2_BaseUIScreen
{
var m_changeToScreen = null;
var m_executeOuttroCallBack = null;
var m_uiComponentArray = new Array();
function Cafe2_BaseUIScreen(screen)
{
Cafe2_BaseUIScreen.m_screen = screen;
Cafe2_BaseUIScreen.m_screen.onEnterFrame = _global.bind0(this,this.frameDelayedInitCallback);
}
function frameDelayedInit()
{
trace("\n\nCafe2_BaseUIScreen::frameDelayedInitCallback() :");
var _loc1_ = new Array("N.B. You *must* override frameDelayedInit() in your","\nscreens and move the call to initGUI() to frameDelayedInit().\n");
trace(_loc1_[0] + _loc1_[1]);
}
function frameDelayedInitCallback()
{
Cafe2_BaseUIScreen.m_screen.onEnterFrame = null;
this.frameDelayedInit();
}
function outtroComplete(theComponent)
{
trace("Cafe2_BaseUIScreen::outtroComplete() " + theComponent);
var _loc2_ = 0;
while(_loc2_ < Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length)
{
if(theComponent == Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc2_])
{
break;
}
_loc2_ = _loc2_ + 1;
}
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.splice(_loc2_,1);
if(Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length <= 0)
{
if(Cafe2_BaseUIScreen.m_thisClass.m_changeToScreen != null)
{
_global.gSM.changeMainScreen(Cafe2_BaseUIScreen.m_thisClass.m_changeToScreen);
}
}
}
function introComplete(theComponent)
{
trace("Cafe2_BaseUIScreen::introComplete()");
theComponent.restoreVisualState();
Cafe2_BaseUIScreen.m_thisClass.m_introCount--;
if(Cafe2_BaseUIScreen.m_thisClass.m_introCount <= 0)
{
Cafe2_BaseUIScreen.m_thisClass.onIntrosComplete();
}
}
function onIntrosComplete()
{
trace("Cafe2_BaseUIScreen::onIntrosComplete()");
_global.gEH.setLocalEventHandler(this.localEventHandler);
_global.gEH.enableCurrentLocalEventHandler();
}
function registerIntroOuttroComponents(components)
{
trace("Cafe2_BaseUIScreen::registerIntroOuttroComponents()");
this.m_uiComponentArray = components;
this.m_introCount = this.m_uiComponentArray.length;
var _loc2_ = 0;
while(_loc2_ < this.m_introCount)
{
this.m_uiComponentArray[_loc2_].setIntroCallback(this.introComplete);
_loc2_ = _loc2_ + 1;
}
}
function executeBackFunction(theComponent)
{
trace("Cafe2_BaseUIScreen::executeBackFunction" + theComponent);
var _loc2_ = 0;
while(_loc2_ < Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length)
{
if(theComponent == Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc2_])
{
break;
}
_loc2_ = _loc2_ + 1;
}
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.splice(_loc2_,1);
if(Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length <= 0)
{
_global.gSM.goBackScreen();
}
}
function startIntro()
{
trace("Cafe2_BaseUIScreen::startIntro()");
var _loc3_ = this.m_uiComponentArray.length;
var _loc2_ = 0;
while(_loc2_ < _loc3_)
{
this.m_uiComponentArray[_loc2_].intro();
_loc2_ = _loc2_ + 1;
}
}
function startOuttro(newScreen)
{
trace("Cafe2_BaseUIScreen::startOuttro");
this.m_changeToScreen = newScreen;
var _loc3_ = Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length;
if(_loc3_ > 0)
{
var _loc2_ = 0;
while(_loc2_ < _loc3_)
{
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc2_].outtro(this.outtroComplete);
_loc2_ = _loc2_ + 1;
}
}
else
{
this.outtroComplete(null);
}
}
function startOuttroAndCallBack(doAfterOuttroComplete)
{
trace("Cafe2_BaseUIScreen::startOuttro");
this.m_executeOuttroCallBack = doAfterOuttroComplete;
var _loc3_ = Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length;
if(_loc3_ > 0)
{
var _loc2_ = 0;
while(_loc2_ < _loc3_)
{
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc2_].outtro(this.outtroAndCallBackComplete);
_loc2_ = _loc2_ + 1;
}
}
else
{
this.outtroAndCallBackComplete(null);
}
}
function outtroAndCallBackComplete(theComponent)
{
trace("Cafe2_BaseUIScreen::outtroComplete() " + theComponent);
var _loc1_ = 0;
while(_loc1_ < Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length)
{
if(theComponent == Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc1_])
{
break;
}
_loc1_ = _loc1_ + 1;
}
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.splice(_loc1_,1);
if(Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length <= 0)
{
Cafe2_BaseUIScreen.m_thisClass.m_executeOuttroCallBack();
}
}
function backButtonClicked()
{
trace("Cafe2_BaseUIScreen::backButtonClicked()");
var _loc3_ = Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray.length;
if(_loc3_ > 0)
{
var _loc2_ = 0;
while(_loc2_ < _loc3_)
{
Cafe2_BaseUIScreen.m_thisClass.m_uiComponentArray[_loc2_].outtro(Cafe2_BaseUIScreen.m_thisClass.executeBackFunction);
_loc2_ = _loc2_ + 1;
}
}
else
{
_global.gSM.goBackScreen();
}
}
function localEventHandler(keyCode, controller)
{
trace("Cafe2_BaseUIScreen::localEventHandler() keyCode == " + keyCode);
_global.gFM.handleDefaultInputs(keyCode);
}
function clearData()
{
Cafe2_BaseUIScreen.m_screen = null;
Cafe2_BaseUIScreen.m_thisClass = null;
this.m_changeToScreen = null;
this.m_uiComponentArray = null;
}
function bind0(obj, func)
{
return function()
{
func.call(obj);
};
}
}
@@ -0,0 +1,702 @@
class feg_m_mainMenu3D extends Cafe2_BaseUIScreen
{
var m_loginPending = false;
static var UI_X_ORIGIN = 300;
static var UI_Y_ORIGIN = 100;
static var UI_POS_PADDING = 2;
static var WALL_X = 1450;
static var WALL_Y = 1040;
static var WALL_Z = 60;
static var WALL_XROT = 0;
static var WALL_YROT = 328;
static var MENU_X = 280;
static var MENU_Y = 160;
static var MENU_Z = 0;
static var MENU_XROT = 0;
static var MENU_YROT = 328;
static var SLIDE_DISTANCE_X = 1900;
static var SLIDE_DISTANCE_Z = feg_m_mainMenu3D.SLIDE_DISTANCE_X * 0.6610060334205627;
static var NLC_X = feg_m_mainMenu3D.MENU_X + feg_m_mainMenu3D.SLIDE_DISTANCE_X;
static var NLC_Y = feg_m_mainMenu3D.MENU_Y;
static var NLC_Z = feg_m_mainMenu3D.MENU_Z + feg_m_mainMenu3D.SLIDE_DISTANCE_Z;
static var NLC_XROT = feg_m_mainMenu3D.MENU_XROT;
static var NLC_YROT = feg_m_mainMenu3D.MENU_YROT;
static var NLC_ANIM_LENGTH = 20;
static var FLOOR_X = 900;
static var FLOOR_Y = 610;
static var FLOOR_Z = 30;
static var FLOOR_XROT = 90;
static var FLOOR_YROT = 358;
static var HAMMER_X = 1050;
static var HAMMER_Y = 570;
static var HAMMER_Z = 420;
static var HAMMER_XROT = 352;
static var HAMMER_YROT = 37;
static var LIBERTY_X = 738;
static var LIBERTY_Y = 90;
static var LIBERTY_Z = -230;
static var LIBERTY_XROT = 0;
static var LIBERTY_YROT = 23;
static var CREDIT_X = 350;
static var CREDIT_Y = 200;
static var CREDIT_XROT = 0;
static var CREDIT_YROT = 0;
static var UI_ADJUSTMENT_LAYER = 150;
static var UI_IMAGEGUIDE_LAYER = 200;
static var WALL_UI_NAME = "Wall Adjustment UI";
static var FLOOR_UI_NAME = "Floor Adjustment UI";
static var HAMMER_UI_NAME = "Hammer Adjustment UI";
static var MENU_UI_NAME = "Menu Adjustment UI";
static var LIBERTY_UI_NAME = "Liberty Adjustment UI";
static var MENU_ITEM_1 = 0;
static var MENU_ITEM_2 = 1;
static var MENU_ITEM_3 = 2;
static var MENU_ITEM_4 = 3;
static var MENU_ITEM_5 = 4;
static var MENU_ITEM_6 = 5;
static var MENU_ITEM_7 = 6;
var m_testUIVisible = false;
static var m_frameCount = 0;
var m_isCreditsListScrolling = false;
function feg_m_mainMenu3D(screen)
{
super(screen);
Cafe2_BaseUIScreen.m_thisClass = this;
_global.GAME.SAVELOADSCREEN_TYPE = _global.ENUM.SAVELOADSCREEN_LOAD;
_global.GAME.MODE = _global.ENUM.GAME_MODE_SHELL;
_global.GAME.COOPMODE = _global.ENUM.GAME_COOPMODE_AI;
Cafe2_BaseUIScreen.m_screen.newProfileMC._visible = false;
Cafe2_BaseUIScreen.m_screen.comLinkPrompt._visible = false;
Cafe2_BaseUIScreen.m_screen.creditMC._visible = false;
_global.gSM.setOnExitScreen(_global.bind0(this,this.onScreenExit));
_global.PlayShellMusic(_global.SOUND.SHELL_MAIN);
}
function frameDelayedInit()
{
this.initGUI();
this.startIntro();
// Checked
getUrl("FSCommand:CallGameFunction", "%StartRevertResolutionTimer");
}
function loadFloorMovie()
{
this.m_floorMC = Cafe2_BaseUIScreen.m_screen.floorMC;
this.m_floorMC._visible = true;
this.m_floorMC._visible = true;
this.m_floorMC._xrotation = feg_m_mainMenu3D.FLOOR_XROT;
this.m_floorMC._yrotation = feg_m_mainMenu3D.FLOOR_YROT;
this.m_floorMC._x = feg_m_mainMenu3D.FLOOR_X;
this.m_floorMC._y = feg_m_mainMenu3D.FLOOR_Y;
}
function initFloorParameters()
{
this.m_floorUI = Cafe2_BaseUIScreen.m_screen.floorUI;
this.m_floorUI.init(feg_m_mainMenu3D.FLOOR_UI_NAME,[this.m_floorMC],feg_m_mainMenu3D.UI_X_ORIGIN,feg_m_mainMenu3D.UI_Y_ORIGIN + 231 + feg_m_mainMenu3D.UI_POS_PADDING,FLOOR_SCALE);
}
function loadWallMovie()
{
this.m_wallMC = Cafe2_BaseUIScreen.m_screen.wallMC;
this.m_wallMC._visible = true;
this.m_wallMC._xrotation = feg_m_mainMenu3D.WALL_XROT;
this.m_wallMC._yrotation = feg_m_mainMenu3D.WALL_YROT;
this.m_wallMC._x = feg_m_mainMenu3D.WALL_X;
this.m_wallMC._y = feg_m_mainMenu3D.WALL_Y;
this.m_wallMC._z = feg_m_mainMenu3D.WALL_Z;
}
function initWallParameters()
{
this.m_wallUI = Cafe2_BaseUIScreen.m_screen.wallUI;
this.m_wallUI.init(feg_m_mainMenu3D.WALL_UI_NAME,[this.m_wallMC],feg_m_mainMenu3D.UI_X_ORIGIN,feg_m_mainMenu3D.UI_Y_ORIGIN,WALL_SCALE);
}
function loadMainMenu()
{
this.m_mainMenuMC = Cafe2_BaseUIScreen.m_screen.mainMenuUI;
this.m_mainMenuMC.setOnClickCallBack(_global.bind2DynamicParams(this,this.processUserInputMainMenu));
trace("feg_m_mainMenu3d::loadMainMenu() RA3PublicBeta: " + extern.RA3PublicBeta);
if(extern.RA3PublicBeta == "1")
{
var arr = new Array();
arr[0] = "$Versus_MenuButton,$Online_MenuButton";
arr[1] = "$Options_MenuButton,$Setting_MenuButton";
arr[2] = "$Exit_MenuButton";
this.m_mainMenuMC.setMenuDefinitionParam(arr);
this.m_mainMenuMC.setOnClickCallBack(_global.bind2DynamicParams(this,this.onBetaMenuClicked));
}
this.m_mainMenuMC.init();
this.m_mainMenuMC.show();
this.m_mainMenuMC._xrotation = feg_m_mainMenu3D.MENU_XROT;
this.m_mainMenuMC._yrotation = feg_m_mainMenu3D.MENU_YROT;
this.m_mainMenuMC._x = feg_m_mainMenu3D.MENU_X;
this.m_mainMenuMC._y = feg_m_mainMenu3D.MENU_Y;
this.m_mainMenuMC._z = feg_m_mainMenu3D.MENU_Z;
}
function loadNewLoadContinueMenu()
{
this.m_NLCMenuMC = Cafe2_BaseUIScreen.m_screen.newLoadContinueMenuUI;
this.m_NLCMenuMC.init();
this.m_NLCMenuMC._visible = true;
this.m_NLCMenuMC.setOnClickCallBack(_global.bind2DynamicParams(this,this.processUserInputNLC));
this.m_NLCMenuMC._xrotation = feg_m_mainMenu3D.NLC_XROT;
this.m_NLCMenuMC._yrotation = feg_m_mainMenu3D.NLC_YROT;
this.m_NLCMenuMC._x = feg_m_mainMenu3D.NLC_X;
this.m_NLCMenuMC._y = feg_m_mainMenu3D.NLC_Y;
this.m_NLCMenuMC._z = feg_m_mainMenu3D.NLC_Z;
}
function processUserInputMainMenu(menuID, itemID)
{
switch(menuID)
{
case feg_m_mainMenu3D.MENU_ITEM_1:
this.goToTutorialMenu();
break;
case feg_m_mainMenu3D.MENU_ITEM_2:
this.processCampaignMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_3:
this.processVersusMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_4:
this.processProfileMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_5:
this.processOptionsMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_6:
this.processQuitMenuClick(itemID);
}
}
function processVersusMenuClick(menuItem)
{
switch(menuItem)
{
case 1:
trace("feg_m_mainMenu3D::processCampaignMenuClick() Going to skirmish screen.");
this.startOuttro(_global.SCREEN.FES_SKIRMISH_SETUP);
break;
case 2:
this.goToNextOnlineScreen(_global.SCREEN.FEM_MP_ONLINE_MULTIPLAYER);
break;
case 3:
trace("feg_m_mainMenu3D::processVersusMenuClick() -> Network (LAN) Selection");
this.startOuttro(_global.SCREEN.FEM_LAN_LOBBY);
}
}
function goToNextOnlineScreen(nextScreen)
{
this.m_nextScreen = nextScreen;
var ret = new Object();
// Checked
loadVariables("QueryGameEngine?ONLINE_SIGNED_IN",ret);
if(Number(ret.ONLINE_SIGNED_IN) == 1)
{
trace("feg_m_mainMenu3D::goToNextOnlineScreen : nextScreen = " + nextScreen);
_global.GAME.MODE = _global.ENUM.GAME_MODE_MULTIPLAYER;
this.startOuttro(nextScreen);
}
else
{
this.m_loginPending = true;
_global.comLink.screen.open();
}
}
function processCampaignMenuClick(menuItem)
{
switch(menuItem)
{
case 1:
this.processNewMenuClick(-1);
break;
case 2:
this.processLoadMenuClick(-1);
break;
case 3:
this.processContinueMenuClick(-1);
break;
case 4:
this.processChaptersMenuClick(-1);
break;
case 5:
trace("feg_m_mainMenu3D::processCampaignMenuClick() Level List / Map List");
this.startOuttro(_global.SCREEN.FES_SINGLE_PLAYER_MENU);
}
}
function processProfileMenuClick(menuItem)
{
switch(menuItem)
{
case 1:
trace("feg_m_mainMenu3D::processProfileMenuClick() :: Management");
this.startOuttro(_global.SCREEN.FEG_PROFILE_MANAGER);
break;
case 2:
trace("feg_m_mainMenu3D::processProfileMenuClick() :: Stats");
this.startOuttro(_global.SCREEN.FEG_PROFILE_STATS);
break;
case 3:
trace("feg_m_mainMenu3D::processProfileMenuClick() :: Film Archive");
Cafe2_BaseUIScreen.m_thisClass.startOuttro(_global.SCREEN.FEG_FILMARCHIVE);
break;
case 4:
trace("feg_m_mainMenu3D::processProfileMenuClick() :: Replay Theater");
this.startOuttro(_global.SCREEN.FEG_SAVELOAD);
}
}
function processOptionsMenuClick(menuItem)
{
switch(menuItem)
{
case 1:
trace("feg_m_mainMenu3D::processOptionsMenuClick::Options : Settings");
this.startOuttro(_global.SCREEN.FEG_OPTIONS);
break;
case 2:
trace("feg_m_mainMenu3D::processOptionsMenuClick::Options : Credits");
this.goToCredits();
}
}
function processQuitMenuClick(menuItem)
{
if(menuItem === -1)
{
// Checked
getUrl("FSCommand:CallGameFunction", "%ExitApplication");
}
}
function processUserInputNLC(menuID, itemID)
{
switch(menuID)
{
case feg_m_mainMenu3D.MENU_ITEM_1:
this.processNewMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_2:
this.processLoadMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_3:
this.processContinueMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_4:
this.processChaptersMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_5:
this.processBackMenuClick(itemID);
}
}
function processNewMenuClick(menuItem)
{
if(menuItem === -1)
{
_global.GAME.MODE = _global.ENUM.GAME_MODE_CAMPAIGN;
this.startOuttro(_global.SCREEN.FES_FACTION_SELECT_MENU);
}
}
function processLoadMenuClick(menuItem)
{
if(menuItem === -1)
{
_global.GAME.MODE = _global.ENUM.GAME_MODE_CAMPAIGN;
_global.GAME.SAVELOADSCREEN_TYPE = _global.ENUM.SAVELOADSCREEN_LOAD;
this.startOuttro(_global.SCREEN.FEG_SAVELOAD);
}
}
function processContinueMenuClick(menuItem)
{
if(menuItem === -1)
{
_global.GAME.MODE = _global.ENUM.GAME_MODE_CAMPAIGN;
// Checked
getUrl("FSCommand:CallGameFunction", "LoadMostRecentCampaignSave");
}
}
function processChaptersMenuClick(menuItem)
{
if(menuItem === -1)
{
_global.GAME.MODE = _global.ENUM.GAME_MODE_CAMPAIGN;
this.startOuttro(_global.SCREEN.FES_CHAPTER_SELECT);
}
}
function processBackMenuClick(menuItem)
{
if(menuItem === -1)
{
this.transitionToMainMenu();
}
}
function onBetaMenuClicked(menuID, itemID)
{
switch(menuID)
{
case feg_m_mainMenu3D.MENU_ITEM_1:
this.processVersusMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_2:
this.processOptionsMenuClick(itemID);
break;
case feg_m_mainMenu3D.MENU_ITEM_3:
this.processQuitMenuClick(itemID);
}
}
function goToCredits()
{
this.showCredits();
this.hideMainMenu();
this.startCredits();
}
function goToMainMenu()
{
this.hideCredits();
this.showMainMenu();
this.stopCredits();
}
function initMenuParameters()
{
this.m_menuUI = Cafe2_BaseUIScreen.m_screen.menuUI;
this.m_menuUI.init(feg_m_mainMenu3D.MENU_UI_NAME,[this.m_mainMenuMC],feg_m_mainMenu3D.UI_X_ORIGIN + 501 + feg_m_mainMenu3D.UI_POS_PADDING,feg_m_mainMenu3D.UI_Y_ORIGIN + 231 + feg_m_mainMenu3D.UI_POS_PADDING,MENU_SCALE);
}
function loadLibertyMovie()
{
this.m_LibertyMC = Cafe2_BaseUIScreen.m_screen.libertyMC;
this.m_LibertyMC._visible = true;
this.m_LibertyMC._xrotation = feg_m_mainMenu3D.LIBERTY_XROT;
this.m_LibertyMC._yrotation = feg_m_mainMenu3D.LIBERTY_YROT;
this.m_LibertyMC._x = feg_m_mainMenu3D.LIBERTY_X;
this.m_LibertyMC._y = feg_m_mainMenu3D.LIBERTY_Y;
this.m_LibertyMC._z = feg_m_mainMenu3D.LIBERTY_Z;
}
function initLibertyParameters()
{
this.m_libertyUI = Cafe2_BaseUIScreen.m_screen.libertyUI;
this.m_libertyUI.init(feg_m_mainMenu3D.LIBERTY_UI_NAME,[this.m_LibertyMC],feg_m_mainMenu3D.UI_X_ORIGIN + 501 + feg_m_mainMenu3D.UI_POS_PADDING,feg_m_mainMenu3D.UI_Y_ORIGIN + 462 + feg_m_mainMenu3D.UI_POS_PADDING,LIBERTY_SCALE);
}
function loadCreditsMovie(buttons)
{
m_creditMC = Cafe2_BaseUIScreen.m_screen.creditMC;
m_creditMC._visible = true;
m_creditMC._xrotation = feg_m_mainMenu3D.CREDIT_XROT;
m_creditMC._yrotation = feg_m_mainMenu3D.CREDIT_YROT;
m_creditMC._x = feg_m_mainMenu3D.CREDIT_X;
m_creditMC._y = feg_m_mainMenu3D.CREDIT_Y;
var backButtonComponent = m_creditMC.backButton;
backButtonComponent._visible = true;
backButtonComponent.enable();
backButtonComponent.show();
backButtonComponent.setOnMouseUpFunction(_global.bind0(this,this.goToMainMenu));
buttons.push(backButtonComponent);
}
function loadHammerNSickleMovie()
{
this.m_HammerSickleMC = Cafe2_BaseUIScreen.m_screen.hammerMC;
this.m_HammerSickleMC._visible = true;
this.m_HammerSickleMC._xrotation = feg_m_mainMenu3D.HAMMER_XROT;
this.m_HammerSickleMC._yrotation = feg_m_mainMenu3D.HAMMER_YROT;
this.m_HammerSickleMC._x = feg_m_mainMenu3D.HAMMER_X;
this.m_HammerSickleMC._y = feg_m_mainMenu3D.HAMMER_Y;
this.m_HammerSickleMC._z = feg_m_mainMenu3D.HAMMER_Z;
}
function initHammerParameters()
{
this.m_hammerSickleUI = Cafe2_BaseUIScreen.m_screen.hammerUI;
this.m_hammerSickleUI.init(feg_m_mainMenu3D.HAMMER_UI_NAME,[this.m_HammerSickleMC],feg_m_mainMenu3D.UI_X_ORIGIN + 501 + feg_m_mainMenu3D.UI_POS_PADDING,feg_m_mainMenu3D.UI_Y_ORIGIN,HAMMER_SCALE);
}
function loadTestControls()
{
this.m_testUIMC = Cafe2_BaseUIScreen.m_screen.attachMovie("userInterfaceSymbol","testControls",feg_m_mainMenu3D.UI_ADJUSTMENT_LAYER);
this.m_testUIMC._visible = true;
}
function loadGuide()
{
this.m_guideMC = Cafe2_BaseUIScreen.m_screen.attachMovie("image_guideSymbol","imageGuide",feg_m_mainMenu3D.UI_IMAGEGUIDE_LAYER);
this.m_guideMC._visible = true;
this.m_guideMC._alpha = 50;
}
function initGUI()
{
m_localMessageHandlerFunc = _global.bind1DynamicParams(this,this.localMessageHandler);
_global.gMH.addMessageHandler(m_localMessageHandlerFunc);
var arr = new Array();
arr.push(Cafe2_BaseUIScreen.m_screen.newProfileMC.btnNewConfirm);
Cafe2_BaseUIScreen.m_screen.buttonGuard._visible = true;
this.loadWallMovie();
this.loadFloorMovie();
this.loadLibertyMovie();
this.loadHammerNSickleMovie();
this.loadMainMenu();
this.loadNewLoadContinueMenu();
this.loadCreditsMovie(arr);
Cafe2_BaseUIScreen.m_screen.showHideTestUI._x = feg_m_mainMenu3D.UI_X_ORIGIN;
Cafe2_BaseUIScreen.m_screen.showHideTestUI._y = feg_m_mainMenu3D.UI_Y_ORIGIN + 580;
Cafe2_BaseUIScreen.m_screen.showHideGuideMC._x = feg_m_mainMenu3D.UI_X_ORIGIN + showHideTestUI._x + 10;
Cafe2_BaseUIScreen.m_screen.showHideGuideMC._y = feg_m_mainMenu3D.UI_Y_ORIGIN + 580;
this.m_mainMenuMC.disable();
this.hideCredits();
this.initNewProfilePrompt();
var ret = new Object();
// Checked
loadVariables("QueryGameEngine?FE_PROFILE_COUNT",ret);
if(ret.FE_PROFILE_COUNT == "0" && extern.RA3PublicBeta == "0")
{
_global.comLink.screen.close();
_global.comLink.screen.lock();
Cafe2_BaseUIScreen.m_screen.newProfileMC._visible = true;
Cafe2_BaseUIScreen.m_screen.newProfileMC.newProfileName.takeFocus();
}
else
{
this.checkForComLinkPrompt(arr);
}
this.registerIntroOuttroComponents(arr);
}
function goToTutorialMenu()
{
this.startOuttro(_global.SCREEN.FEG_TUTORIALMENU);
}
function hideCredits()
{
m_creditMC._visible = false;
}
function showCredits()
{
m_creditMC._visible = true;
}
function checkForComLinkPrompt(buttons)
{
var comlinkPromptComponent = Cafe2_BaseUIScreen.m_screen.comLinkPrompt;
comlinkPromptComponent._visible = false;
var ret = new Object();
// Checked
loadVariables("QueryGameEngine?COMLINK_PROMPT_DISMISSED",ret);
var hasComlinkPromptDismissed = ret.COMLINK_PROMPT_DISMISSED == "1";
var isRA3PublicBeta = extern.RA3PublicBeta == "1";
if(_global.SHELL.COMLINK_PROMPT_SEEN || hasComlinkPromptDismissed || isRA3PublicBeta)
{
Cafe2_BaseUIScreen.m_screen.comLinkPrompt._visible = false;
Cafe2_BaseUIScreen.m_screen.buttonGuard._visible = false;
this.checkForNewPatch();
return undefined;
}
this.initComLinkPrompt(comlinkPromptComponent,buttons);
}
function initComLinkPrompt(comLinkPrompt, buttons)
{
_global.SHELL.COMLINK_PROMPT_SEEN = true;
var buttonComponent = comLinkPrompt.buttonOK;
buttonComponent.noIntro();
buttonComponent.enable();
buttonComponent.show();
buttonComponent.setOnMouseUpFunction(_global.bind1(this,this.onComLinkPromptDismissed));
buttons.push(buttonComponent);
var checkBoxComponent = comLinkPrompt.hideForeverCheckBox;
checkBoxComponent.enable();
checkBoxComponent.show();
checkBoxComponent.setOnMouseDownFunction(_global.bind1(this,this.alwaysHideComLinkPrompt,checkBoxComponent));
feg_m_mainMenu3D.m_frameCount = _global.comLink.screen.flashIcon();
Cafe2_BaseUIScreen.m_screen.onEnterFrame = this.delayedComLinkPrompt;
}
function initNewProfilePrompt()
{
Cafe2_BaseUIScreen.m_screen.newProfileMC.btnNewConfirm.setOnMouseUpFunction(_global.bind0(this,this.onCreateProfile));
Cafe2_BaseUIScreen.m_screen.newProfileMC.newProfileName.setOnEnterFunction(_global.bind0(this,this.onCreateProfile));
Cafe2_BaseUIScreen.m_screen.newProfileMC.btnNewConfirm.enable();
Cafe2_BaseUIScreen.m_screen.newProfileMC.btnNewCancel.disable();
}
function onCreateProfile()
{
var ret = Cafe2_BaseUIScreen.m_screen.newProfileMC.newProfileName.getContents();
// Checked
getURL("FSCommand:CallGameFunction","%AddProfile?ProfileName=" + ret);
Cafe2_BaseUIScreen.m_screen.newProfileMC.newProfileName.setContents("");
}
function delayedComLinkPrompt()
{
if(feg_m_mainMenu3D.m_frameCount > 0)
{
feg_m_mainMenu3D.m_frameCount--;
}
else
{
Cafe2_BaseUIScreen.m_screen.onEnterFrame = null;
Cafe2_BaseUIScreen.m_screen.comLinkPrompt._visible = true;
_global.comLink.screen.setIconLit();
}
}
function checkForNewPatch()
{
if(extern.RA3PublicBeta != "1")
{
// Checked
getUrl("FSCommand:CallGameFunction", "%OnlinePatchCheckFromMainMenu");
}
}
function alwaysHideComLinkPrompt(hideCheckBox)
{
var _loc1_ = !hideCheckBox.isChecked() ? "0" : "1";
// Checked
getURL("FSCommand:CallGameFunction","%ToggleComLinkPrompt?DismissBoxChecked=" + _loc1_);
}
function hideMainMenu()
{
this.m_mainMenuMC._visible = false;
}
function showMainMenu()
{
this.m_mainMenuMC._visible = true;
}
function startCredits()
{
if(!this.m_isCreditsListScrolling)
{
this.m_isCreditsListScrolling = true;
_global.PlayShellMusic(_global.SOUND.CREDITS);
// Checked
getUrl("FSCommand:CallGameFunction", "Options_StartCredits");
}
}
function stopCredits()
{
if(this.m_isCreditsListScrolling)
{
this.m_isCreditsListScrolling = false;
_global.PlayShellMusic(_global.SOUND.SHELL_MAIN);
// Checked
getUrl("FSCommand:CallGameFunction", "Options_StopCredits");
}
}
function onScreenExit()
{
// Checked
getUrl("FSCommand:CallGameFunction", "InterruptSilentPatchCheck");
this.hideCredits();
this.stopCredits();
_global.gMH.removeMessageHandler(m_localMessageHandlerFunc);
delete m_localMessageHandlerFunc;
this.clearData();
delete _global.feg_m_mainMenu3D;
delete _global.Cafe2_BaseUIScreen;
}
function onComLinkPromptDismissed()
{
_global.comLink.screen.realizeIconVisualState();
Cafe2_BaseUIScreen.m_screen.comLinkPrompt._visible = false;
Cafe2_BaseUIScreen.m_screen.buttonGuard._visible = false;
this.checkForNewPatch();
}
function localMessageHandler(messageCode)
{
var flag = false;
switch(messageCode)
{
case _global.MSGCODE.FE_MP_ONLINE_SIGN_IN_SUCCESS:
if(this.m_loginPending)
{
this.m_loginPending = false;
this.startOuttro(this.m_nextScreen);
_global.GAME.MODE = _global.ENUM.GAME_MODE_MULTIPLAYER;
_global.comLink.screen.close();
}
flag = false;
break;
case _global.MSGCODE.FE_MP_ONLINE_SIGN_IN_FAILURE:
this.m_loginPending = false;
flag = false;
break;
case _global.MSGCODE.FE_PROFILE_CREATE_SUCCESS:
_global.comLink.screen.unlock();
Cafe2_BaseUIScreen.m_screen.newProfileMC._visible = false;
this.checkForComLinkPrompt();
flag = true;
}
return flag;
}
function toggleTestUI()
{
this.m_testUIVisible = !this.m_testUIVisible;
if(this.m_testUIVisible)
{
this.showTestUI();
}
else
{
this.hideTestUI();
}
}
function hideTestUI()
{
this.m_wallUI._visible = false;
this.m_floorUI._visible = false;
this.m_hammerSickleUI._visible = false;
this.m_menuUI._visible = false;
this.m_libertyUI._visible = false;
this.m_speedUI._visible = false;
}
function showTestUI()
{
this.m_wallUI._visible = true;
this.m_floorUI._visible = true;
this.m_hammerSickleUI._visible = true;
this.m_menuUI._visible = true;
this.m_libertyUI._visible = true;
this.m_speedUI._visible = true;
}
function toggleGuide()
{
this.m_guideMC._visible = !this.m_guideMC._visible;
}
function initData(animationMC, uiMC, x, y, z, xrot, yrot)
{
uiMC.xPosSliderUI.setValue(x);
uiMC.yPosSliderUI.setValue(y);
uiMC.zPosSliderUI.setValue(Number(z));
uiMC.rotXSliderUI.setValue(xrot);
uiMC.rotYSliderUI.setValue(yrot);
uiMC.update();
}
function transitionToNLC()
{
feg_m_mainMenu3D.m_frameCount = 0;
this.m_NLCMenuMC.onEnterFrame = this.updateNLCAnimation;
this.m_NLCMenuMC.gotoAndPlay(0);
}
function updateNLCAnimation()
{
var NLCMenuComponent = Cafe2_BaseUIScreen.m_thisClass.m_NLCMenuMC;
var mainMenuComponent = Cafe2_BaseUIScreen.m_thisClass.m_mainMenuMC;
var ratio = feg_m_mainMenu3D.m_frameCount / feg_m_mainMenu3D.NLC_ANIM_LENGTH;
NLCMenuComponent._x = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_X,feg_m_mainMenu3D.NLC_X,ratio);
NLCMenuComponent._z = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_Z,feg_m_mainMenu3D.NLC_Z,ratio);
mainMenuComponent._x = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_X - feg_m_mainMenu3D.SLIDE_DISTANCE_X,feg_m_mainMenu3D.MENU_X,ratio);
mainMenuComponent._z = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_Z - feg_m_mainMenu3D.SLIDE_DISTANCE_Z,feg_m_mainMenu3D.MENU_Z,ratio);
if(feg_m_mainMenu3D.m_frameCount >= feg_m_mainMenu3D.NLC_ANIM_LENGTH)
{
NLCMenuComponent.stop();
delete register2.onEnterFrame;
}
feg_m_mainMenu3D.m_frameCount = feg_m_mainMenu3D.m_frameCount + 1;
}
function transitionToMainMenu()
{
feg_m_mainMenu3D.m_frameCount = 0;
this.m_mainMenuMC.onEnterFrame = this.updateMainMenuAnimation;
this.m_mainMenuMC.gotoAndPlay(0);
}
function updateMainMenuAnimation()
{
var NLCMenuComponent = Cafe2_BaseUIScreen.m_thisClass.m_NLCMenuMC;
var mainMenuComponent = Cafe2_BaseUIScreen.m_thisClass.m_mainMenuMC;
var ratio = feg_m_mainMenu3D.m_frameCount / feg_m_mainMenu3D.NLC_ANIM_LENGTH;
mainMenuComponent._x = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_X,feg_m_mainMenu3D.MENU_X - feg_m_mainMenu3D.SLIDE_DISTANCE_X,ratio);
mainMenuComponent._z = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.MENU_Z,feg_m_mainMenu3D.MENU_Z - feg_m_mainMenu3D.SLIDE_DISTANCE_Z,ratio);
NLCMenuComponent._x = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.NLC_X,feg_m_mainMenu3D.MENU_X,ratio);
NLCMenuComponent._z = Cafe2_BaseUIScreen.m_thisClass.lerp(feg_m_mainMenu3D.NLC_Z,feg_m_mainMenu3D.MENU_Z,ratio);
if(feg_m_mainMenu3D.m_frameCount >= feg_m_mainMenu3D.NLC_ANIM_LENGTH)
{
mainMenuComponent.stop();
delete register2.onEnterFrame;
}
feg_m_mainMenu3D.m_frameCount = feg_m_mainMenu3D.m_frameCount + 1;
}
function lerp(num1, num2, fraction)
{
return num1 * fraction + (1 - fraction) * num2;
}
}
@@ -0,0 +1,2 @@
var screen = new feg_m_mainMenu3D(this);
stop();
@@ -0,0 +1,15 @@
on(construct){
m_refFM = "_global.gFM";
m_bEnabled = false;
m_initiallySelected = false;
m_tabIndex = 0;
m_bVisible = true;
m_menuButtonSymbol = "menuButtonContentClipSymbol";
m_menuItemSymbol = "menuItemContentClipSymbol";
m_menuDefinitionArray = [];
m_menuDefinitionArray[0] = "$CampaignMenu_NewButton";
m_menuDefinitionArray[1] = "$CampaignMenu_LoadButton";
m_menuDefinitionArray[2] = "$CampaignMenu_ContinueButton";
m_menuDefinitionArray[3] = "$CampaignMenu_ChaptersButton";
m_menuDefinitionArray[4] = "$CampaignMenu_BackButton";
}
@@ -0,0 +1,16 @@
on(construct){
m_refFM = "_global.gFM";
m_bEnabled = false;
m_initiallySelected = false;
m_tabIndex = 0;
m_bVisible = true;
m_menuButtonSymbol = "menuButtonContentClipSymbol";
m_menuItemSymbol = "menuItemContentClipSymbol";
m_menuDefinitionArray = [];
m_menuDefinitionArray[0] = "$Tutorial_MenuButton";
m_menuDefinitionArray[1] = "$Campaign_MenuButton,$CampaignMenu_NewButton,$CampaignMenu_LoadButton,$CampaignMenu_ContinueButton,$CampaignMenu_ChaptersButton";
m_menuDefinitionArray[2] = "$Versus_MenuButton,$Skirmish_MenuButton,$Online_MenuButton,$Network_MenuButton";
m_menuDefinitionArray[3] = "$Profiles_MenuButton,$Manage_MenuButton,$Stats_MenuButton,$TransmissionLog_MenuButton,$ReplayTheater_MenuButton";
m_menuDefinitionArray[4] = "$Options_MenuButton,$Setting_MenuButton,$Credits_MenuButton";
m_menuDefinitionArray[5] = "$Exit_MenuButton";
}
@@ -0,0 +1,2 @@
37;__Packages.Cafe2_BaseUIScreen
38;__Packages.feg_m_mainMenu3D
1 37 __Packages.Cafe2_BaseUIScreen
2 38 __Packages.feg_m_mainMenu3D
@@ -0,0 +1 @@
$ST_CREDITS_MENU
@@ -0,0 +1 @@
$GUI:DESCRIBE_COMLINK_USAGE&Outline