If you want to help us maintaining this wiki, check out our discord server: https://discord.gg/3u69jMa 

GameEngine

From SWRC Wiki
Jump to navigation Jump to search
//=============================================================================
// GameEngine: The game subsystem.
// This is a built-in Unreal class and it shouldn't be modified.
//=============================================================================
class GameEngine extends Engine
	native
	transient;


struct noexport URL
{
	var string			Protocol;
	var string			Host;
	var int				Port;
	var string			Map;
	var array<string>	Op;
	var string			Portal;
	var bool			Valid;
};

var config autoload array<string>	ServerActors;
var config array<string>			ServerPackages;

var Level				GLevel;
var Level				GEntry;
var PendingLevel		GPendingLevel;

 // Added by Demiurge (LevelLoading)
var PlayerController	LevelLoadingController;
var float				LoadProgressFraction;		// Current progress fraction to show.

var URL						LastURL;
var array<PackageCheckInfo>	PackageValidation;	// The Database of allowed MD5s
var Object					MD5Package;

var config bool				bUseXInterface;			// Whether or not to use the XInterface menuing system
var config autoload String		MainMenuClass;			// Menu that appears when you first start
var config autoload String		InitialMenuClass;		// The initial menu that should appear
var config autoload String		ControllerLayoutMenuClass;	// The menu that shows controller layout
var config autoload String		ConnectingMenuClass;	// Menu that appears when you are connecting
var config autoload String		DisconnectMenuClass;	// Menu that appears when you are disconnected
var config 			String		DisconnectMenuArgs;		// args to disconnectmenuclass, needed for various xlive menus
var config autoload String		LoadingClass;			// Loading screen that appears
var config autoload String		PauseMenuClass;			// In-game pause screen
var config autoload String		LoadingMenuClass;		// Loading screen
var config autoload String		LoadingInfoMenuClass;	// Loading screen with configurable text/pic
var config autoload String		TeamMenuClass;			// Choose Team screen
var config autoload String		ProfileMenuClass;		// Choose Profile screen
var config autoload String		MultiplayerPauseMenuClass;	// In-game multiplayer pause screen

var config int			FPSAlarm;				// Min FPS before triggering alarm.
var config bool			bMemoryAlarm;			// Automatically display mem stats on overflow.
var config bool			bAutoSaveStats;			// Automatically save time/mem stat reports.
var bool				bCheatProtection;
var bool				FramePresentPending;	// cg: split screen mod  

var const  float		TimeUntilExit;			// Time (in seconds) that must pass with no input activity before the app exits.
var const  bool			ExitDuringMovie;		// Whether or not to exit during movie playback.
var		   float		ElapsedExitTime;		// Time (in seconds) that has elapsed with no input activity (potentially incremented during level load).

var config float		TimeUntilAutoPause;		// Time (in seconds) that must pass with no input activity before the app automatically pauses the game in single player.
var		   float		ElapsedAutoPauseTime;	// Time (in seconds) that has elapsed with no input activity (potentially incremented during level load).

var		   float		ElapsedInactiveTime;	// Time (in seconds) that has elapsed with no input activity.

var const  float		InitialAttractTime;		// Time (in seconds) that the first attract mode playback will start after.
var	config float		TimeUntilAttractMode;	// Time (in seconds) that attract mode will be activated if no activity takes place.
var		   float		ElapsedInactiveAttractTime;	// Time (in seconds) that has elapsed with no input activity (not incremented during movies, level loading).
var config String		AttractModeMovie;		// Movie to play in attract mode.
var config bool			bAttractDuringLevel;	// Whether or not to enter attract mode in-game (during a level, including at a pause screen).
var config bool			bAttractExitLevel;		// Whether or not to exit the level when entering attract mode.
var config bool			bLoopAttractModeMovie;	// Whether or not to loop the attract mode movie.
var config String		AttractModeMenuClass;	// If set, attract mode will only be entered if we're showing a menu of this class (with the above options taken into account as well).

var const bool			bMovieInterruptable;	// Whether or not the currently playing movie is interruptable (via keypress)
var const bool			bMoviePausedLevelMusic; // Whether or not the currently playing movie paused the level music
var const bool			bMoviePausedLevelSound; // Whether or not the currently playing movie paused the level sound
var const bool			bMovieDisassociatePads;	// Whether or not to disassociate controllers from their viewports when the movie is interrupted

var localized string	ProfilePrefix;

var localized string	DeathMatchStr;
var localized string	TeamDeathMatchStr;
var localized string	CaptureTheFlagStr;
var localized string	AssaultStr;

struct LevelLoadingInfoEntry
{
	var() String MapName;
	var() String LoadingMenuClass;
	var() String LoadingPic;
	var() String LoadingTitle;
	var() String LoadingText;
	var() bool   LoadingShowHints;
};

var() Array<LevelLoadingInfoEntry> LevelLoadingInfo;

struct LoadingHint
{
	var() String Title;
	var() String Text;
	var() Int	 PicIndex;
};

var() Array<LoadingHint> LoadingHints;

var() localized String	LocalizedKeyNames[255];
var() localized String	LocalizedXboxButtonNames[16];

const					NUM_PROGRESS_LEVELS = 56;
var				String	ProgressLevels[NUM_PROGRESS_LEVELS];

var				String	LevelMissionStartLevels[NUM_PROGRESS_LEVELS];

var() localized String	DiscReadError;



var int NumFriendRequests;
var int NumGameInvites;
// for drawing the live icons where appropriate:
var int LastNumFriendRequests;
var int LastNumGameInvites;
var float FriendRequestTimeout;
var float GameInviteTimeout;
var float NextMatchmakingQueryTime;


simulated native event String GetLocalizedKeyName(Interactions.EInputKey k);

simulated event InitLevelLoadingInfo()
{
	local string key;
	local string value;
	local bool bGotValue;
	local int i;
	local string file;
	
	file = "LevelLoadingInfo";
	
	i = 0;
	
	do
	{
		key = "MapName[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		bGotValue = (value != "");
		if ( !bGotValue )
			continue;
		
		LevelLoadingInfo.Length = i + 1;
		
		LevelLoadingInfo[i].MapName = value;

		key = "LoadingMenuClass[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		LevelLoadingInfo[i].LoadingMenuClass = value;
		
		key = "LoadingPic[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		LevelLoadingInfo[i].LoadingPic = value;
	
		key = "LoadingTitle[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		LevelLoadingInfo[i].LoadingTitle = value;
	
		key = "LoadingText[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		LevelLoadingInfo[i].LoadingText = value;
		
		key = "LoadingShowHints[" $ i $ "]";
		value = Localize( "LevelLoadingInfo", key, File, True );
		if ( int(value) != 0 )
			LevelLoadingInfo[i].LoadingShowHints = True;
		else
			LevelLoadingInfo[i].LoadingShowHints = False;
	
		++i;
		
	} until( !bGotValue );
	
	UnloadInts( File );
}

simulated event PotentialSubtitledSoundPlayed(string SoundName, float Duration, Actor A, int Priority)
{
	local PlayerController PC;
	
	ForEach A.DynamicActors(class'PlayerController', PC)
	{
		if ( Viewport(PC.Player) != None )
		{
			PC.PotentialSubtitledSoundPlayed(SoundName, Duration, Priority);
			break;
		}
	}
}

simulated event int GetLevelProgressIdx( String Level )
{
	local int i;

	// Strip any extension off the level name
	if ( Caps(Right(Level, 4)) == ".CTM" )
		Level = Left(Level, Len(Level) - 4);
		
	for ( i = 0; i < NUM_PROGRESS_LEVELS; ++i )
	{
		if ( Caps(Level) == Caps(ProgressLevels[i]) )
		{
			return i;
		}
	}
	
	return -1;
}

simulated event bool HasReachedLevel( String Level, int CurrentProgress )
{
	local int i;

	// Strip any extension off the level name
	if ( Caps(Right(Level, 4)) == ".CTM" )
		Level = Left(Level, Len(Level) - 4);
	
	for ( i = 0; i < NUM_PROGRESS_LEVELS; ++i )
	{
		if ( Caps(Level) == Caps(ProgressLevels[i]) )
		{
			if ( i <= CurrentProgress )
			{
				// We've made it this far
				return True;			
			}
			else
			{
				// Haven't gotten this far yet
				return False;
			}
		}
	}
	
	return False;
}

simulated event string GetNextLevel( int afterThisIdx )
{
	if (afterThisIdx < NUM_PROGRESS_LEVELS - 1)
	{
		return ProgressLevels[afterThisIdx + 1];
	}
	return "";
}


simulated event string GetLevelMissionStart( string Level )
{
	local int i;

	// Strip any extension off the level name
	if ( Caps(Right(Level, 4)) == ".CTM" )
		Level = Left(Level, Len(Level) - 4);
	
	for ( i = 0; i < NUM_PROGRESS_LEVELS; ++i )
	{
		if ( Caps(Level) == Caps(ProgressLevels[i]) )
		{
			return LevelMissionStartLevels[i];
		}
	}
	
	return Level;
}


defaultproperties
{
     ServerActors(0)="IpDrv.MasterServerUplink"
     ServerPackages(0)="Core"
     ServerPackages(1)="Engine"
     ServerPackages(2)="CTGame"
     ServerPackages(3)="MPGame"
     ServerPackages(4)="CTInventory"
     ServerPackages(5)="CTCharacters"
     ServerPackages(6)="Properties"
     ServerPackages(7)="VoicePacks"
     bUseXInterface=True
     InitialMenuClass="XInterfaceCTMenus.CTStartPCMenu"
     DisconnectMenuClass="XInterfaceCTMenus.CTMultiplayerPCMenu"
     PauseMenuClass="XInterfaceCTMenus.CTPausePCMenu"
     LoadingMenuClass="XInterfaceCTMenus.CTLoading"
     LoadingInfoMenuClass="XInterfaceCTMenus.CTLoadingInfo"
     TeamMenuClass="XInterfaceCommon.MenuSelectTeam"
     MultiplayerPauseMenuClass="XInterfaceCTMenus.CTMultiplayerPausePCMenu"
     AttractModeMovie="e3_2004_trailer_av1400.xmv"
     ProfilePrefix="Profile"
     DeathMatchStr="DEATHMATCH"
     TeamDeathMatchStr="TEAM DEATHMATCH"
     CaptureTheFlagStr="CAPTURE THE FLAG"
     AssaultStr="ASSAULT"
     LocalizedKeyNames(1)="L MOUSE"
     LocalizedKeyNames(2)="R MOUSE"
     LocalizedKeyNames(3)="CANCEL"
     LocalizedKeyNames(4)="M MOUSE"
     LocalizedKeyNames(5)="UNKNOWN05"
     LocalizedKeyNames(6)="UNKNOWN06"
     LocalizedKeyNames(7)="UNKNOWN07"
     LocalizedKeyNames(8)="BACKSP"
     LocalizedKeyNames(9)="TAB"
     LocalizedKeyNames(10)="UNKNOWN0A"
     LocalizedKeyNames(11)="UNKNOWN0B"
     LocalizedKeyNames(12)="UNKNOWN0C"
     LocalizedKeyNames(13)="ENTER"
     LocalizedKeyNames(14)="UNKNOWN0E"
     LocalizedKeyNames(15)="UNKNOWN0F"
     LocalizedKeyNames(16)="SHIFT"
     LocalizedKeyNames(17)="CTRL"
     LocalizedKeyNames(18)="ALT"
     LocalizedKeyNames(19)="PAUSE"
     LocalizedKeyNames(20)="CAPSLOCK"
     LocalizedKeyNames(21)="UNKNOWN15"
     LocalizedKeyNames(22)="UNKNOWN16"
     LocalizedKeyNames(23)="UNKNOWN17"
     LocalizedKeyNames(24)="UNKNOWN18"
     LocalizedKeyNames(25)="UNKNOWN19"
     LocalizedKeyNames(26)="UNKNOWN1A"
     LocalizedKeyNames(27)="ESCAPE"
     LocalizedKeyNames(28)="UNKNOWN1C"
     LocalizedKeyNames(29)="UNKNOWN1D"
     LocalizedKeyNames(30)="UNKNOWN1E"
     LocalizedKeyNames(31)="UNKNOWN1F"
     LocalizedKeyNames(32)="SPACE"
     LocalizedKeyNames(33)="PAGE UP"
     LocalizedKeyNames(34)="PAGE DWN"
     LocalizedKeyNames(35)="END"
     LocalizedKeyNames(36)="HOME"
     LocalizedKeyNames(37)="LEFT"
     LocalizedKeyNames(38)="UP"
     LocalizedKeyNames(39)="RIGHT"
     LocalizedKeyNames(40)="DOWN"
     LocalizedKeyNames(41)="SELECT"
     LocalizedKeyNames(42)="PRINT"
     LocalizedKeyNames(43)="EXECUTE"
     LocalizedKeyNames(44)="PRNTSCRN"
     LocalizedKeyNames(45)="INSERT"
     LocalizedKeyNames(46)="DELETE"
     LocalizedKeyNames(47)="HELP"
     LocalizedKeyNames(48)="0"
     LocalizedKeyNames(49)="1"
     LocalizedKeyNames(50)="2"
     LocalizedKeyNames(51)="3"
     LocalizedKeyNames(52)="4"
     LocalizedKeyNames(53)="5"
     LocalizedKeyNames(54)="6"
     LocalizedKeyNames(55)="7"
     LocalizedKeyNames(56)="8"
     LocalizedKeyNames(57)="9"
     LocalizedKeyNames(58)="UNKNOWN3A"
     LocalizedKeyNames(59)="UNKNOWN3B"
     LocalizedKeyNames(60)="UNKNOWN3C"
     LocalizedKeyNames(61)="UNKNOWN3D"
     LocalizedKeyNames(62)="UNKNOWN3E"
     LocalizedKeyNames(63)="UNKNOWN3F"
     LocalizedKeyNames(64)="UNKNOWN40"
     LocalizedKeyNames(65)="A"
     LocalizedKeyNames(66)="B"
     LocalizedKeyNames(67)="C"
     LocalizedKeyNames(68)="D"
     LocalizedKeyNames(69)="E"
     LocalizedKeyNames(70)="F"
     LocalizedKeyNames(71)="G"
     LocalizedKeyNames(72)="H"
     LocalizedKeyNames(73)="I"
     LocalizedKeyNames(74)="J"
     LocalizedKeyNames(75)="K"
     LocalizedKeyNames(76)="L"
     LocalizedKeyNames(77)="M"
     LocalizedKeyNames(78)="N"
     LocalizedKeyNames(79)="O"
     LocalizedKeyNames(80)="P"
     LocalizedKeyNames(81)="Q"
     LocalizedKeyNames(82)="R"
     LocalizedKeyNames(83)="S"
     LocalizedKeyNames(84)="T"
     LocalizedKeyNames(85)="U"
     LocalizedKeyNames(86)="V"
     LocalizedKeyNames(87)="W"
     LocalizedKeyNames(88)="X"
     LocalizedKeyNames(89)="Y"
     LocalizedKeyNames(90)="Z"
     LocalizedKeyNames(91)="UNKNOWN5B"
     LocalizedKeyNames(92)="UNKNOWN5C"
     LocalizedKeyNames(93)="UNKNOWN5D"
     LocalizedKeyNames(94)="UNKNOWN5E"
     LocalizedKeyNames(95)="UNKNOWN5F"
     LocalizedKeyNames(96)="PAD 0"
     LocalizedKeyNames(97)="PAD 1"
     LocalizedKeyNames(98)="PAD 2"
     LocalizedKeyNames(99)="PAD 3"
     LocalizedKeyNames(100)="PAD 4"
     LocalizedKeyNames(101)="PAD 5"
     LocalizedKeyNames(102)="PAD 6"
     LocalizedKeyNames(103)="PAD 7"
     LocalizedKeyNames(104)="PAD 8"
     LocalizedKeyNames(105)="PAD 9"
     LocalizedKeyNames(106)="PAD *"
     LocalizedKeyNames(107)="PAD +"
     LocalizedKeyNames(108)="SEPARATOR"
     LocalizedKeyNames(109)="PAD -"
     LocalizedKeyNames(110)="PAD ."
     LocalizedKeyNames(111)="PAD /"
     LocalizedKeyNames(112)="F1"
     LocalizedKeyNames(113)="F2"
     LocalizedKeyNames(114)="F3"
     LocalizedKeyNames(115)="F4"
     LocalizedKeyNames(116)="F5"
     LocalizedKeyNames(117)="F6"
     LocalizedKeyNames(118)="F7"
     LocalizedKeyNames(119)="F8"
     LocalizedKeyNames(120)="F9"
     LocalizedKeyNames(121)="F10"
     LocalizedKeyNames(122)="F11"
     LocalizedKeyNames(123)="F12"
     LocalizedKeyNames(124)="F13"
     LocalizedKeyNames(125)="F14"
     LocalizedKeyNames(126)="F15"
     LocalizedKeyNames(127)="F16"
     LocalizedKeyNames(128)="F17"
     LocalizedKeyNames(129)="F18"
     LocalizedKeyNames(130)="F19"
     LocalizedKeyNames(131)="F20"
     LocalizedKeyNames(132)="F21"
     LocalizedKeyNames(133)="F22"
     LocalizedKeyNames(134)="F23"
     LocalizedKeyNames(135)="F24"
     LocalizedKeyNames(136)="UNKNOWN88"
     LocalizedKeyNames(137)="UNKNOWN89"
     LocalizedKeyNames(138)="UNKNOWN8A"
     LocalizedKeyNames(139)="UNKNOWN8B"
     LocalizedKeyNames(140)="UNKNOWN8C"
     LocalizedKeyNames(141)="UNKNOWN8D"
     LocalizedKeyNames(142)="UNKNOWN8E"
     LocalizedKeyNames(143)="UNKNOWN8F"
     LocalizedKeyNames(144)="NUMLOCK"
     LocalizedKeyNames(145)="SCRLLOCK"
     LocalizedKeyNames(146)="UNKNOWN92"
     LocalizedKeyNames(147)="UNKNOWN93"
     LocalizedKeyNames(148)="UNKNOWN94"
     LocalizedKeyNames(149)="UNKNOWN95"
     LocalizedKeyNames(150)="UNKNOWN96"
     LocalizedKeyNames(151)="UNKNOWN97"
     LocalizedKeyNames(152)="UNKNOWN98"
     LocalizedKeyNames(153)="UNKNOWN99"
     LocalizedKeyNames(154)="UNKNOWN9A"
     LocalizedKeyNames(155)="UNKNOWN9B"
     LocalizedKeyNames(156)="UNKNOWN9C"
     LocalizedKeyNames(157)="UNKNOWN9D"
     LocalizedKeyNames(158)="UNKNOWN9E"
     LocalizedKeyNames(159)="UNKNOWN9F"
     LocalizedKeyNames(160)="L SHIFT"
     LocalizedKeyNames(161)="R SHIFT"
     LocalizedKeyNames(162)="L CNTRL"
     LocalizedKeyNames(163)="R CNTRL"
     LocalizedKeyNames(164)="UNKNOWNA4"
     LocalizedKeyNames(165)="UNKNOWNA5"
     LocalizedKeyNames(166)="UNKNOWNA6"
     LocalizedKeyNames(167)="UNKNOWNA7"
     LocalizedKeyNames(168)="UNKNOWNA8"
     LocalizedKeyNames(169)="UNKNOWNA9"
     LocalizedKeyNames(170)="UNKNOWNAA"
     LocalizedKeyNames(171)="UNKNOWNAB"
     LocalizedKeyNames(172)="UNKNOWNAC"
     LocalizedKeyNames(173)="UNKNOWNAD"
     LocalizedKeyNames(174)="UNKNOWNAE"
     LocalizedKeyNames(175)="UNKNOWNAF"
     LocalizedKeyNames(176)="UNKNOWNB0"
     LocalizedKeyNames(177)="UNKNOWNB1"
     LocalizedKeyNames(178)="UNKNOWNB2"
     LocalizedKeyNames(179)="UNKNOWNB3"
     LocalizedKeyNames(180)="UNKNOWNB4"
     LocalizedKeyNames(181)="UNKNOWNB5"
     LocalizedKeyNames(182)="UNKNOWNB6"
     LocalizedKeyNames(183)="UNKNOWNB7"
     LocalizedKeyNames(184)="UNKNOWNB8"
     LocalizedKeyNames(185)="UNKNOWNB9"
     LocalizedKeyNames(186)=";"
     LocalizedKeyNames(187)="="
     LocalizedKeyNames(188)=","
     LocalizedKeyNames(189)="-"
     LocalizedKeyNames(190)="."
     LocalizedKeyNames(191)="/"
     LocalizedKeyNames(192)="~"
     LocalizedKeyNames(193)="UNKNOWNC1"
     LocalizedKeyNames(194)="UNKNOWNC2"
     LocalizedKeyNames(195)="UNKNOWNC3"
     LocalizedKeyNames(196)="UNKNOWNC4"
     LocalizedKeyNames(197)="UNKNOWNC5"
     LocalizedKeyNames(198)="UNKNOWNC6"
     LocalizedKeyNames(199)="UNKNOWNC7"
     LocalizedKeyNames(200)="JOY1"
     LocalizedKeyNames(201)="JOY2"
     LocalizedKeyNames(202)="JOY3"
     LocalizedKeyNames(203)="JOY4"
     LocalizedKeyNames(204)="JOY5"
     LocalizedKeyNames(205)="JOY6"
     LocalizedKeyNames(206)="JOY7"
     LocalizedKeyNames(207)="JOY8"
     LocalizedKeyNames(208)="JOY9"
     LocalizedKeyNames(209)="JOY10"
     LocalizedKeyNames(210)="JOY11"
     LocalizedKeyNames(211)="JOY12"
     LocalizedKeyNames(212)="JOY13"
     LocalizedKeyNames(213)="JOY14"
     LocalizedKeyNames(214)="JOY15"
     LocalizedKeyNames(215)="JOY16"
     LocalizedKeyNames(216)="UNKNOWND8"
     LocalizedKeyNames(217)="UNKNOWND9"
     LocalizedKeyNames(218)="UNKNOWNDA"
     LocalizedKeyNames(219)="["
     LocalizedKeyNames(221)="]"
     LocalizedKeyNames(222)="'"
     LocalizedKeyNames(223)="UNKNOWNDF"
     LocalizedKeyNames(224)="JOYX"
     LocalizedKeyNames(225)="JOYY"
     LocalizedKeyNames(226)="JOYZ"
     LocalizedKeyNames(227)="JOYR"
     LocalizedKeyNames(228)="MOUSEX"
     LocalizedKeyNames(229)="MOUSEY"
     LocalizedKeyNames(230)="MOUSEZ"
     LocalizedKeyNames(231)="MOUSEW"
     LocalizedKeyNames(232)="JOYU"
     LocalizedKeyNames(233)="JOYV"
     LocalizedKeyNames(234)="UNKNOWNEA"
     LocalizedKeyNames(235)="UNKNOWNEB"
     LocalizedKeyNames(236)="M WHEEL+"
     LocalizedKeyNames(237)="M WHEEL-"
     LocalizedKeyNames(238)="UNKNOWN10E"
     LocalizedKeyNames(239)="UNKNOWN10F"
     LocalizedKeyNames(240)="PAD UP"
     LocalizedKeyNames(241)="PAD DOWN"
     LocalizedKeyNames(242)="PAD LEFT"
     LocalizedKeyNames(243)="PAD RIGHT"
     LocalizedKeyNames(244)="UNKNOWNF4"
     LocalizedKeyNames(245)="UNKNOWNF5"
     LocalizedKeyNames(246)="ATTN"
     LocalizedKeyNames(247)="CRSEL"
     LocalizedKeyNames(248)="EXSEL"
     LocalizedKeyNames(249)="EREOF"
     LocalizedKeyNames(250)="PLAY"
     LocalizedKeyNames(251)="ZOOM"
     LocalizedKeyNames(252)="NONAME"
     LocalizedKeyNames(253)="PA1"
     LocalizedKeyNames(254)="OEMCLEAR"
     LocalizedXboxButtonNames(0)="A"
     LocalizedXboxButtonNames(1)="B"
     LocalizedXboxButtonNames(2)="X"
     LocalizedXboxButtonNames(3)="Y"
     LocalizedXboxButtonNames(4)="BLACK"
     LocalizedXboxButtonNames(5)="WHITE"
     LocalizedXboxButtonNames(6)="LEFT TRIGGER"
     LocalizedXboxButtonNames(7)="RIGHT TRIGGER"
     LocalizedXboxButtonNames(8)="D-PAD UP"
     LocalizedXboxButtonNames(9)="D-PAD DOWN"
     LocalizedXboxButtonNames(10)="D-PAD LEFT"
     LocalizedXboxButtonNames(11)="D-PAD RIGHT"
     LocalizedXboxButtonNames(12)="START"
     LocalizedXboxButtonNames(13)="BACK"
     LocalizedXboxButtonNames(14)="LEFT THUMBSTICK"
     LocalizedXboxButtonNames(15)="RIGHT THUMBSTICK"
     ProgressLevels(0)="PRO"
     ProgressLevels(1)="GEO_01Briefing"
     ProgressLevels(2)="GEO_01A"
     ProgressLevels(3)="GEO_01B"
     ProgressLevels(4)="GEO_01C"
     ProgressLevels(5)="GEO_03A"
     ProgressLevels(6)="GEO_03C"
     ProgressLevels(7)="GEO_03D"
     ProgressLevels(8)="GEO_04A"
     ProgressLevels(9)="GEO_04B"
     ProgressLevels(10)="GEO_04C"
     ProgressLevels(11)="GEO_04D"
     ProgressLevels(12)="GEO_05A"
     ProgressLevels(13)="GEO_05B"
     ProgressLevels(14)="GEO_05C"
     ProgressLevels(15)="RAS_01Briefing"
     ProgressLevels(16)="RAS_01A"
     ProgressLevels(17)="RAS_01B"
     ProgressLevels(18)="RAS_01C"
     ProgressLevels(19)="RAS_02A"
     ProgressLevels(20)="RAS_02B"
     ProgressLevels(21)="RAS_02C"
     ProgressLevels(22)="RAS_02D"
     ProgressLevels(23)="RAS_02E"
     ProgressLevels(24)="RAS_03A"
     ProgressLevels(25)="RAS_03B"
     ProgressLevels(26)="RAS_03C"
     ProgressLevels(27)="RAS_04A"
     ProgressLevels(28)="RAS_04B"
     ProgressLevels(29)="RAS_04C"
     ProgressLevels(30)="RAS_04D"
     ProgressLevels(31)="YYY_01Briefing"
     ProgressLevels(32)="YYY_01B"
     ProgressLevels(33)="YYY_01C"
     ProgressLevels(34)="YYY_01D"
     ProgressLevels(35)="YYY_01E"
     ProgressLevels(36)="YYY_35A"
     ProgressLevels(37)="YYY_35B"
     ProgressLevels(38)="YYY_35C"
     ProgressLevels(39)="YYY_04A"
     ProgressLevels(40)="YYY_04B"
     ProgressLevels(41)="YYY_04C"
     ProgressLevels(42)="YYY_04E"
     ProgressLevels(43)="YYY_04F"
     ProgressLevels(44)="YYY_05A"
     ProgressLevels(45)="YYY_05B"
     ProgressLevels(46)="YYY_05C"
     ProgressLevels(47)="YYY_05D"
     ProgressLevels(48)="YYY_05E"
     ProgressLevels(49)="YYY_05F"
     ProgressLevels(50)="YYY_06A"
     ProgressLevels(51)="YYY_06B"
     ProgressLevels(52)="YYY_06C"
     ProgressLevels(53)="YYY07Briefing"
     ProgressLevels(54)="YYY_06D"
     ProgressLevels(55)="EPILOGUE"
     LevelMissionStartLevels(0)="PRO"
     LevelMissionStartLevels(1)="GEO_01Briefing"
     LevelMissionStartLevels(2)="GEO_01A"
     LevelMissionStartLevels(3)="GEO_01A"
     LevelMissionStartLevels(4)="GEO_01A"
     LevelMissionStartLevels(5)="GEO_03A"
     LevelMissionStartLevels(6)="GEO_03A"
     LevelMissionStartLevels(7)="GEO_03D"
     LevelMissionStartLevels(8)="GEO_04A"
     LevelMissionStartLevels(9)="GEO_04A"
     LevelMissionStartLevels(10)="GEO_04A"
     LevelMissionStartLevels(11)="GEO_04A"
     LevelMissionStartLevels(12)="GEO_05A"
     LevelMissionStartLevels(13)="GEO_05A"
     LevelMissionStartLevels(14)="GEO_05A"
     LevelMissionStartLevels(15)="RAS_01Briefing"
     LevelMissionStartLevels(16)="RAS_01A"
     LevelMissionStartLevels(17)="RAS_01A"
     LevelMissionStartLevels(18)="RAS_01A"
     LevelMissionStartLevels(19)="RAS_02A"
     LevelMissionStartLevels(20)="RAS_02A"
     LevelMissionStartLevels(21)="RAS_02A"
     LevelMissionStartLevels(22)="RAS_02A"
     LevelMissionStartLevels(23)="RAS_02A"
     LevelMissionStartLevels(24)="RAS_03A"
     LevelMissionStartLevels(25)="RAS_03A"
     LevelMissionStartLevels(26)="RAS_03A"
     LevelMissionStartLevels(27)="RAS_04A"
     LevelMissionStartLevels(28)="RAS_04A"
     LevelMissionStartLevels(29)="RAS_04A"
     LevelMissionStartLevels(30)="RAS_04A"
     LevelMissionStartLevels(31)="YYY_01Briefing"
     LevelMissionStartLevels(32)="YYY_01B"
     LevelMissionStartLevels(33)="YYY_01B"
     LevelMissionStartLevels(34)="YYY_01B"
     LevelMissionStartLevels(35)="YYY_01B"
     LevelMissionStartLevels(36)="YYY_35A"
     LevelMissionStartLevels(37)="YYY_35A"
     LevelMissionStartLevels(38)="YYY_35A"
     LevelMissionStartLevels(39)="YYY_04A"
     LevelMissionStartLevels(40)="YYY_04A"
     LevelMissionStartLevels(41)="YYY_04A"
     LevelMissionStartLevels(42)="YYY_04A"
     LevelMissionStartLevels(43)="YYY_04A"
     LevelMissionStartLevels(44)="YYY_05A"
     LevelMissionStartLevels(45)="YYY_05A"
     LevelMissionStartLevels(46)="YYY_05A"
     LevelMissionStartLevels(47)="YYY_05A"
     LevelMissionStartLevels(48)="YYY_05A"
     LevelMissionStartLevels(49)="YYY_05A"
     LevelMissionStartLevels(50)="YYY_06A"
     LevelMissionStartLevels(51)="YYY_06A"
     LevelMissionStartLevels(52)="YYY_06A"
     LevelMissionStartLevels(53)="YYY07Briefing"
     LevelMissionStartLevels(54)="YYY_06D"
     LevelMissionStartLevels(55)="EPILOGUE"
     DiscReadError="THERE'S A PROBLEM WITH THE DISC YOU'RE USING. IT MAY BE DIRTY OR DAMAGED."
     AudioDevice=None
     Console=None
     DefaultPlayerMenu=None
     NetworkDevice=None
}