Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
813 lines (749 sloc) 29.5 KB
import gfx.io.GameDelegate;
import flash.display.BitmapData;
import Components.BlinkOnDemandMeter;
import Components.BlinkOnEmptyMeter;
import Components.Meter;
class HUDMenu extends Shared.PlatformChangeUser
{
var SavedRolloverText: String = "";
var ItemInfoArray: Array = new Array();
var CompassMarkerList: Array = new Array();
var METER_PAUSE_FRAME: Number = 40;
var ActivateButton_tf: TextField;
var ArrowInfoInstance: MovieClip;
var BottomLeftLockInstance: MovieClip;
var BottomRightLockInstance: MovieClip;
var BottomRightRefInstance: MovieClip;
var BottomRightRefX: Number;
var BottomRightRefY: Number;
var CompassMarkerEnemy: Number;
var CompassMarkerLocations: Number;
var CompassMarkerPlayerSet: Number;
var CompassMarkerQuest: Number;
var CompassMarkerQuestDoor: Number;
var CompassMarkerUndiscovered: Number;
var CompassRect: MovieClip;
var CompassShoutMeterHolder: MovieClip;
var CompassTargetDataA: Array;
var CompassThreeSixtyX: Number;
var CompassZeroX: Number;
var Crosshair: MovieClip;
var CrosshairAlert: MovieClip;
var CrosshairInstance: MovieClip;
var EnemyHealthMeter: Meter;
var EnemyHealth_mc: MovieClip;
var FavorBackButtonBase: MovieClip;
var FavorBackButton_mc: MovieClip;
var FloatingQuestMarkerInstance: MovieClip;
var FloatingQuestMarker_mc: MovieClip;
var GrayBarInstance: MovieClip;
var HUDModes: Array;
var Health: MovieClip;
var HealthMeterAnim: MovieClip;
var HealthMeterLeft: BlinkOnEmptyMeter;
var HudElements: Array;
var LeftChargeMeter: Meter;
var LeftChargeMeterAnim: MovieClip;
var LocationLockBase: MovieClip;
var Magica: MovieClip;
var MagickaMeter: BlinkOnDemandMeter;
var MagickaMeterAnim: MovieClip;
var MessagesBlock: MovieClip;
var MessagesInstance: MovieClip;
var QuestUpdateBaseInstance: MovieClip;
var RightChargeMeter: Meter;
var RightChargeMeterAnim: MovieClip;
var RolloverButton_tf: TextField;
var RolloverGrayBar_mc: MovieClip;
var RolloverInfoInstance: TextField;
var RolloverInfoText: TextField;
var RolloverNameInstance: TextField;
var RolloverText: TextField;
var ShoutMeter_mc: ShoutMeter;
var Stamina: MovieClip;
var StaminaMeter: BlinkOnDemandMeter;
var StaminaMeterAnim: MovieClip;
var StealthMeterInstance: MovieClip;
var SubtitleText: TextField;
var SubtitleTextHolder: MovieClip;
var TopLeftRefInstance: MovieClip;
var TopLeftRefX: Number;
var TopLeftRefY: Number;
var TutorialHintsArtHolder: MovieClip;
var TutorialHintsText: TextField;
var TutorialLockInstance: MovieClip;
var ValueTranslated: TextField;
var WeightTranslated: TextField;
var bCrosshairEnabled: Boolean;
function HUDMenu()
{
super();
Shared.GlobalFunc.MaintainTextFormat();
Shared.GlobalFunc.AddReverseFunctions();
Key.addListener(this);
MagickaMeter = new BlinkOnDemandMeter(Magica.MagickaMeter_mc, Magica.MagickaFlashInstance);
HealthMeterLeft = new BlinkOnEmptyMeter(Health.HealthMeter_mc.HealthLeft);
StaminaMeter = new BlinkOnDemandMeter(Stamina.StaminaMeter_mc, Stamina.StaminaFlashInstance);
ShoutMeter_mc = new ShoutMeter(CompassShoutMeterHolder.ShoutMeterInstance, CompassShoutMeterHolder.ShoutWarningInstance);
LeftChargeMeter = new Meter(BottomLeftLockInstance.LeftHandChargeMeterInstance.ChargeMeter_mc);
RightChargeMeter = new Meter(BottomRightLockInstance.RightHandChargeMeterInstance.ChargeMeter_mc);
MagickaMeterAnim = Magica;
HealthMeterAnim = Health;
StaminaMeterAnim = Stamina;
LeftChargeMeterAnim = BottomLeftLockInstance.LeftHandChargeMeterInstance;
RightChargeMeterAnim = BottomRightLockInstance.RightHandChargeMeterInstance;
LeftChargeMeterAnim.gotoAndStop(1);
RightChargeMeterAnim.gotoAndStop(1);
MagickaMeterAnim.gotoAndStop(1);
HealthMeterAnim.gotoAndStop(1);
StaminaMeterAnim.gotoAndStop(1);
ArrowInfoInstance.gotoAndStop(1);
EnemyHealthMeter = new Meter(EnemyHealth_mc);
EnemyHealth_mc.BracketsInstance.RolloverNameInstance.textAutoSize = "shrink";
EnemyHealthMeter.SetPercent(0);
gotoAndStop("Alert");
CrosshairAlert = Crosshair;
CrosshairAlert.gotoAndStop("NoTarget");
gotoAndStop("Normal");
CrosshairInstance = Crosshair;
CrosshairInstance.gotoAndStop("NoTarget");
RolloverText = RolloverNameInstance;
RolloverButton_tf = ActivateButton_tf;
RolloverInfoText = RolloverInfoInstance;
RolloverGrayBar_mc = GrayBarInstance;
RolloverGrayBar_mc._alpha = 0;
RolloverInfoText.html = true;
FavorBackButton_mc = FavorBackButtonBase;
CompassRect = CompassShoutMeterHolder.Compass.DirectionRect;
InitCompass();
FloatingQuestMarker_mc = FloatingQuestMarkerInstance;
MessagesInstance = MessagesBlock;
SetCrosshairTarget(false, "");
bCrosshairEnabled = true;
SubtitleText = SubtitleTextHolder.textField;
TutorialHintsText = TutorialLockInstance.TutorialHintsInstance.FadeHolder.TutorialHintsTextInstance;
TutorialHintsArtHolder = TutorialLockInstance.TutorialHintsInstance.FadeHolder.TutorialHintsArtInstance;
TutorialLockInstance.TutorialHintsInstance.gotoAndStop("FadeIn");
CompassTargetDataA = new Array();
SetModes();
StealthMeterInstance.gotoAndStop("FadedOut");
}
function RegisterComponents(): Void
{
GameDelegate.call("RegisterHUDComponents", [this, HudElements, QuestUpdateBaseInstance, EnemyHealthMeter, StealthMeterInstance, StealthMeterInstance.SneakAnimInstance, EnemyHealth_mc.BracketsInstance, EnemyHealth_mc.BracketsInstance.RolloverNameInstance, StealthMeterInstance.SneakTextHolder, StealthMeterInstance.SneakTextHolder.SneakTextClip.SneakTextInstance]);
}
function SetPlatform(aiPlatform: Number, abPS3Switch: Boolean): Void
{
FavorBackButton_mc.FavorBackButtonInstance.SetPlatform(aiPlatform, abPS3Switch);
}
function SetModes(): Void
{
HudElements = new Array();
HUDModes = new Array();
HudElements.push(Health);
HudElements.push(Magica);
HudElements.push(Stamina);
HudElements.push(LeftChargeMeterAnim);
HudElements.push(RightChargeMeterAnim);
HudElements.push(CrosshairInstance);
HudElements.push(CrosshairAlert);
HudElements.push(RolloverText);
HudElements.push(RolloverInfoText);
HudElements.push(RolloverGrayBar_mc);
HudElements.push(RolloverButton_tf);
HudElements.push(CompassShoutMeterHolder);
HudElements.push(MessagesBlock);
HudElements.push(SubtitleTextHolder);
HudElements.push(QuestUpdateBaseInstance);
HudElements.push(EnemyHealth_mc);
HudElements.push(StealthMeterInstance);
HudElements.push(StealthMeterInstance.SneakTextHolder.SneakTextClip);
HudElements.push(StealthMeterInstance.SneakTextHolder.SneakTextClip.SneakTextInstance);
HudElements.push(ArrowInfoInstance);
HudElements.push(FavorBackButton_mc);
HudElements.push(FloatingQuestMarker_mc);
HudElements.push(LocationLockBase);
HudElements.push(TutorialLockInstance);
Health.All = true;
Magica.All = true;
Stamina.All = true;
LeftChargeMeterAnim.All = true;
RightChargeMeterAnim.All = true;
CrosshairInstance.All = true;
CrosshairAlert.All = true;
RolloverText.All = true;
RolloverInfoText.All = true;
RolloverGrayBar_mc.All = true;
RolloverButton_tf.All = true;
CompassShoutMeterHolder.All = true;
MessagesBlock.All = true;
SubtitleTextHolder.All = true;
QuestUpdateBaseInstance.All = true;
EnemyHealth_mc.All = true;
StealthMeterInstance.All = true;
ArrowInfoInstance.All = true;
FloatingQuestMarker_mc.All = true;
StealthMeterInstance.SneakTextHolder.SneakTextClip.All = true;
StealthMeterInstance.SneakTextHolder.SneakTextClip.SneakTextInstance.All = true;
LocationLockBase.All = true;
TutorialLockInstance.All = true;
CrosshairInstance.Favor = true;
RolloverText.Favor = true;
RolloverInfoText.Favor = true;
RolloverGrayBar_mc.Favor = true;
RolloverButton_tf.Favor = true;
CompassShoutMeterHolder.Favor = true;
MessagesBlock.Favor = true;
SubtitleTextHolder.Favor = true;
QuestUpdateBaseInstance.Favor = true;
EnemyHealth_mc.Favor = true;
StealthMeterInstance.Favor = true;
FavorBackButton_mc.Favor = true;
FavorBackButton_mc._visible = false;
FloatingQuestMarker_mc.Favor = true;
LocationLockBase.Favor = true;
TutorialLockInstance.Favor = true;
MessagesBlock.InventoryMode = true;
QuestUpdateBaseInstance.InventoryMode = true;
MessagesBlock.TweenMode = true;
QuestUpdateBaseInstance.TweenMode = true;
MessagesBlock.BookMode = true;
QuestUpdateBaseInstance.BookMode = true;
QuestUpdateBaseInstance.DialogueMode = true;
CompassShoutMeterHolder.DialogueMode = true;
MessagesBlock.DialogueMode = true;
QuestUpdateBaseInstance.BarterMode = true;
MessagesBlock.BarterMode = true;
MessagesBlock.WorldMapMode = true;
MessagesBlock.MovementDisabled = true;
QuestUpdateBaseInstance.MovementDisabled = true;
SubtitleTextHolder.MovementDisabled = true;
TutorialLockInstance.MovementDisabled = true;
Health.StealthMode = true;
Magica.StealthMode = true;
Stamina.StealthMode = true;
LeftChargeMeterAnim.StealthMode = true;
RightChargeMeterAnim.StealthMode = true;
RolloverText.StealthMode = true;
RolloverButton_tf.StealthMode = true;
RolloverInfoText.StealthMode = true;
RolloverGrayBar_mc.StealthMode = true;
CompassShoutMeterHolder.StealthMode = true;
MessagesBlock.StealthMode = true;
SubtitleTextHolder.StealthMode = true;
QuestUpdateBaseInstance.StealthMode = true;
EnemyHealth_mc.StealthMode = true;
StealthMeterInstance.StealthMode = true;
StealthMeterInstance.SneakTextHolder.SneakTextClip.StealthMode = true;
StealthMeterInstance.SneakTextHolder.SneakTextClip.SneakTextInstance.StealthMode = true;
ArrowInfoInstance.StealthMode = true;
FloatingQuestMarker_mc.StealthMode = true;
LocationLockBase.StealthMode = true;
TutorialLockInstance.StealthMode = true;
Health.Swimming = true;
Magica.Swimming = true;
Stamina.Swimming = true;
LeftChargeMeterAnim.Swimming = true;
RightChargeMeterAnim.Swimming = true;
CrosshairInstance.Swimming = true;
RolloverText.Swimming = true;
RolloverInfoText.Swimming = true;
RolloverGrayBar_mc.Swimming = true;
RolloverButton_tf.Swimming = true;
CompassShoutMeterHolder.Swimming = true;
MessagesBlock.Swimming = true;
SubtitleTextHolder.Swimming = true;
QuestUpdateBaseInstance.Swimming = true;
EnemyHealth_mc.Swimming = true;
ArrowInfoInstance.Swimming = true;
FloatingQuestMarker_mc.Swimming = true;
LocationLockBase.Swimming = true;
TutorialLockInstance.Swimming = true;
Health.HorseMode = true;
Magica.HorseMode = true;
CompassShoutMeterHolder.HorseMode = true;
MessagesBlock.HorseMode = true;
SubtitleTextHolder.HorseMode = true;
QuestUpdateBaseInstance.HorseMode = true;
EnemyHealth_mc.HorseMode = true;
FloatingQuestMarker_mc.HorseMode = true;
LocationLockBase.HorseMode = true;
TutorialLockInstance.HorseMode = true;
Health.WarHorseMode = true;
Magica.WarHorseMode = true;
CompassShoutMeterHolder.WarHorseMode = true;
MessagesBlock.WarHorseMode = true;
SubtitleTextHolder.WarHorseMode = true;
QuestUpdateBaseInstance.WarHorseMode = true;
EnemyHealth_mc.WarHorseMode = true;
FloatingQuestMarker_mc.WarHorseMode = true;
LocationLockBase.WarHorseMode = true;
TutorialLockInstance.WarHorseMode = true;
CrosshairInstance.WarHorseMode = true;
Stamina.WarHorseMode = true;
RightChargeMeterAnim.WarHorseMode = true;
ArrowInfoInstance.WarHorseMode = true;
MessagesBlock.CartMode = true;
SubtitleTextHolder.CartMode = true;
TutorialLockInstance.CartMode = true;
/*
All // Normal hud mode
Favor
MovementDisabled
Swimming
WarhorseMode
HorseMode
InventoryMode
BookMode
DialogueMode
StealthMode
SleepWaitMode
BarterMode
TweenMode
WorldMapMode
JournalMode // Everything is hidden
CartMode
VATSPlayback // Deathcam/killcam
*/
}
function ShowElements(aMode: String, abShow: Boolean): Void
{
var newHUDMode: String = "All";
var HUDModeIdx: Number = HUDModes.length - 1;
if (abShow) {
while (HUDModeIdx >= 0) {
if (HUDModes[HUDModeIdx] == aMode)
HUDModes.splice(HUDModeIdx, 1);
HUDModeIdx--;
}
HUDModes.push(aMode);
newHUDMode = aMode;
} else {
if (aMode.length > 0) {
var found: Boolean = false;
while (HUDModeIdx >= 0 && !found) {
if (HUDModes[HUDModeIdx] == aMode) {
HUDModes.splice(HUDModeIdx, 1);
found = true;
}
HUDModeIdx--;
}
} else {
HUDModes.pop();
}
if (HUDModes.length > 0) {
newHUDMode = String(HUDModes[HUDModes.length - 1]);
}
}
for(var i: Number = 0; i < HudElements.length; i++) {
if (HudElements[i] != undefined) {
HudElements[i]._visible = HudElements[i].hasOwnProperty(newHUDMode);
if (HudElements[i].onModeChange != undefined)
HudElements[i].onModeChange(newHUDMode);
}
}
}
function SetLocationName(aLocation: String): Void
{
LocationLockBase.LocationNameBase.LocationTextBase.LocationTextInstance.SetText(aLocation);
LocationLockBase.LocationNameBase.gotoAndPlay(1);
}
function CheckAgainstHudMode(aObj: Object): Boolean
{
var HUDMode: String = "All";
if (HUDModes.length > 0) {
HUDMode = String(HUDModes[HUDModes.length - 1]);
}
return HUDMode == "All" || (aObj != undefined && aObj.hasOwnProperty(HUDMode));
}
function InitExtensions(): Void
{
var _yDelta: Number = QuestUpdateBaseInstance._y - CompassShoutMeterHolder._y;
Shared.GlobalFunc.SetLockFunction();
HealthMeterAnim.Lock("B");
MagickaMeterAnim.Lock("BL");
StaminaMeterAnim.Lock("BR");
TopLeftRefInstance.Lock("TL");
BottomRightRefInstance.Lock("BR");
BottomLeftLockInstance.Lock("BL");
BottomRightLockInstance.Lock("BR");
ArrowInfoInstance.Lock("BR");
FavorBackButton_mc.Lock("BR");
LocationLockBase.Lock("TR");
LocationLockBase.LocationNameBase.gotoAndStop(1);
var TopLeftRefCoords: Object = {x: TopLeftRefInstance.LocationRefInstance._x, y: TopLeftRefInstance.LocationRefInstance._y};
TopLeftRefInstance.localToGlobal(TopLeftRefCoords);
TopLeftRefX = TopLeftRefCoords.x;
TopLeftRefY = TopLeftRefCoords.y;
var LocationRefCoords: Object = {x: BottomRightRefInstance.LocationRefInstance._x, y: BottomRightRefInstance.LocationRefInstance._y};
BottomRightRefInstance.localToGlobal(LocationRefCoords);
BottomRightRefX = LocationRefCoords.x;
BottomRightRefY = LocationRefCoords.y;
CompassShoutMeterHolder.Lock("T");
EnemyHealth_mc.Lock("T");
MessagesBlock.Lock("TL");
QuestUpdateBaseInstance._y = CompassShoutMeterHolder._y + _yDelta;
SubtitleTextHolder.Lock("B");
SubtitleText._visible = false;
SubtitleText.enabled = true;
SubtitleText.verticalAutoSize = "bottom";
SubtitleText.SetText(" ", true);
RolloverText.verticalAutoSize = "top";
RolloverText.html = true;
GameDelegate.addCallBack("SetCrosshairTarget", this, "SetCrosshairTarget");
GameDelegate.addCallBack("SetLoadDoorInfo", this, "SetLoadDoorInfo");
GameDelegate.addCallBack("ShowMessage", this, "ShowMessage");
GameDelegate.addCallBack("ShowSubtitle", this, "ShowSubtitle");
GameDelegate.addCallBack("HideSubtitle", this, "HideSubtitle");
GameDelegate.addCallBack("SetCrosshairEnabled", this, "SetCrosshairEnabled");
GameDelegate.addCallBack("SetSubtitlesEnabled", this, "SetSubtitlesEnabled");
GameDelegate.addCallBack("SetHealthMeterPercent", this, "SetHealthMeterPercent");
GameDelegate.addCallBack("SetMagickaMeterPercent", this, "SetMagickaMeterPercent");
GameDelegate.addCallBack("SetStaminaMeterPercent", this, "SetStaminaMeterPercent");
GameDelegate.addCallBack("SetShoutMeterPercent", this, "SetShoutMeterPercent");
GameDelegate.addCallBack("FlashShoutMeter", this, "FlashShoutMeter");
GameDelegate.addCallBack("SetChargeMeterPercent", this, "SetChargeMeterPercent");
GameDelegate.addCallBack("StartMagickaMeterBlinking", this, "StartMagickaBlinking");
GameDelegate.addCallBack("StartStaminaMeterBlinking", this, "StartStaminaBlinking");
GameDelegate.addCallBack("FadeOutStamina", this, "FadeOutStamina");
GameDelegate.addCallBack("FadeOutChargeMeters", this, "FadeOutChargeMeters");
GameDelegate.addCallBack("SetCompassAngle", this, "SetCompassAngle");
GameDelegate.addCallBack("SetCompassMarkers", this, "SetCompassMarkers");
GameDelegate.addCallBack("SetEnemyHealthPercent", EnemyHealthMeter, "SetPercent");
GameDelegate.addCallBack("SetEnemyHealthTargetPercent", EnemyHealthMeter, "SetTargetPercent");
GameDelegate.addCallBack("ShowNotification", QuestUpdateBaseInstance, "ShowNotification");
GameDelegate.addCallBack("ShowElements", this, "ShowElements");
GameDelegate.addCallBack("SetLocationName", this, "SetLocationName");
GameDelegate.addCallBack("ShowTutorialHintText", this, "ShowTutorialHintText");
GameDelegate.addCallBack("ValidateCrosshair", this, "ValidateCrosshair");
}
function InitCompass(): Void
{
CompassShoutMeterHolder.Compass.gotoAndStop("ThreeSixty");
CompassThreeSixtyX = CompassRect._x;
CompassShoutMeterHolder.Compass.gotoAndStop("Zero");
CompassZeroX = CompassRect._x;
var CompassMarkerTemp: MovieClip = CompassRect.attachMovie("Compass Marker", "temp", CompassRect.getNextHighestDepth());
CompassMarkerTemp.gotoAndStop("Quest");
CompassMarkerQuest = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.gotoAndStop("QuestDoor");
CompassMarkerQuestDoor = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.gotoAndStop("PlayerSet");
CompassMarkerPlayerSet = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.gotoAndStop("Enemy");
CompassMarkerEnemy = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.gotoAndStop("LocationMarkers");
CompassMarkerLocations = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.gotoAndStop("UndiscoveredMarkers");
CompassMarkerUndiscovered = CompassMarkerTemp._currentframe == undefined ? 0 : CompassMarkerTemp._currentframe;
CompassMarkerTemp.removeMovieClip();
}
function RunMeterAnim(aMeter: MovieClip): Void
{
aMeter.PlayForward(aMeter._currentframe);
}
function FadeOutMeter(aMeter: MovieClip): Void
{
if (aMeter._currentframe > METER_PAUSE_FRAME)
aMeter.gotoAndStop("Pause");
aMeter.PlayReverse();
}
function FadeOutStamina(aPercent: Number): Void
{
FadeOutMeter(Stamina);
StaminaMeter.CurrentPercent = aPercent;
StaminaMeter.TargetPercent = aPercent;
}
function FadeOutChargeMeters(): Void
{
FadeOutMeter(LeftChargeMeterAnim);
FadeOutMeter(RightChargeMeterAnim);
}
function SetChargeMeterPercent(aPercent: Number, abForce: Boolean, abLeftHand: Boolean, abShow: Boolean): Void
{
var ChargeMeter: Meter = abLeftHand ? LeftChargeMeter : RightChargeMeter;
var ChargeMeterAnim: MovieClip = abLeftHand ? LeftChargeMeterAnim : RightChargeMeterAnim;
if (!abShow) {
ChargeMeterAnim.gotoAndStop(1);
return;
}
if (abForce) {
RunMeterAnim(ChargeMeterAnim);
ChargeMeter.SetPercent(aPercent);
ChargeMeter.SetPercent(aPercent);
return;
}
RunMeterAnim(ChargeMeterAnim);
ChargeMeter.SetTargetPercent(aPercent);
ChargeMeter.SetTargetPercent(aPercent);
}
function SetHealthMeterPercent(aPercent: Number, abForce: Boolean): Void
{
if (abForce) {
HealthMeterLeft.SetPercent(aPercent);
return;
}
RunMeterAnim(HealthMeterAnim);
HealthMeterLeft.SetTargetPercent(aPercent);
}
function SetMagickaMeterPercent(aPercent: Number, abForce: Boolean): Void
{
if (abForce) {
MagickaMeter.SetPercent(aPercent);
return;
}
RunMeterAnim(MagickaMeterAnim);
MagickaMeter.SetTargetPercent(aPercent);
}
function SetStaminaMeterPercent(aPercent: Number, abForce: Boolean): Void
{
if (abForce) {
StaminaMeter.SetPercent(aPercent);
return;
}
RunMeterAnim(StaminaMeterAnim);
StaminaMeter.SetTargetPercent(aPercent);
}
function SetShoutMeterPercent(aPercent: Number, abForce: Boolean): Void
{
ShoutMeter_mc.SetPercent(aPercent);
}
function FlashShoutMeter(): Void
{
ShoutMeter_mc.FlashMeter();
}
function StartMagickaBlinking(): Void
{
MagickaMeter.StartBlinking();
}
function StartStaminaBlinking(): Void
{
StaminaMeter.StartBlinking();
}
function SetCompassAngle(aPlayerAngle: Number, aCompassAngle: Number, abShowCompass: Boolean)
{
CompassRect._parent._visible = abShowCompass;
if (abShowCompass) {
var Compass_x: Number = Shared.GlobalFunc.Lerp(CompassZeroX, CompassThreeSixtyX, 0, 360, aCompassAngle);
CompassRect._x = Compass_x;
UpdateCompassMarkers(aPlayerAngle);
}
}
function SetCrosshairTarget(abActivate: Boolean, aName: String, abShowButton: Boolean, abTextOnly: Boolean, abFavorMode: Boolean, abShowCrosshair: Boolean, aWeight: Number, aCost: Number, aFieldValue: Number, aFieldText): Void // Unknown type aFieldText, possibly Number
{
var FavorModeNoTarget: String = abFavorMode ? "Favor" : "NoTarget";
var FavorModeTarget: String = abFavorMode ? "Favor" : "Target";
var Crosshair_mc: MovieClip = _currentframe == 1 ? CrosshairInstance : CrosshairAlert;
Crosshair_mc._visible = CheckAgainstHudMode(Crosshair_mc) && abShowCrosshair != false;
Crosshair_mc._alpha = bCrosshairEnabled ? 100 : 0;
if (!abActivate && SavedRolloverText.length > 0) {
Crosshair_mc.gotoAndStop(FavorModeNoTarget);
RolloverText.SetText(SavedRolloverText, true);
RolloverText._alpha = 100;
RolloverButton_tf._alpha = 0;
} else if (abTextOnly || abActivate) {
if (!abTextOnly) {
Crosshair_mc.gotoAndStop(FavorModeTarget);
}
RolloverText.SetText(aName, true);
RolloverText._alpha = 100;
RolloverButton_tf._alpha = abShowButton ? 100 : 0;
RolloverButton_tf._x = RolloverText._x + RolloverText.getLineMetrics(0).x - 103;
} else {
Crosshair_mc.gotoAndStop(FavorModeNoTarget);
RolloverText.SetText(" ", true);
RolloverText._alpha = 0;
RolloverButton_tf._alpha = 0;
}
var TranslateText: String = "";
if (aCost != undefined) {
TranslateText = ValueTranslated.text + " <font face=\'$EverywhereBoldFont\' size=\'24\' color=\'#FFFFFF\'>" + Math.round(aCost) + "</font>" + TranslateText;
}
if (aWeight != undefined) {
TranslateText = WeightTranslated.text + " <font face=\'$EverywhereBoldFont\' size=\'24\' color=\'#FFFFFF\'>" + Shared.GlobalFunc.RoundDecimal(aWeight, 1) + "</font> " + TranslateText;
}
if (aFieldValue != undefined) {
var aTextField: TextField = new TextField();
aTextField.text = aFieldText.toString();
TranslateText = aTextField.text + " <font face=\'$EverywhereBoldFont\' size=\'24\' color=\'#FFFFFF\'>" + Math.round(aFieldValue) + "</font> " + TranslateText;
}
if (TranslateText.length > 0) {
RolloverGrayBar_mc._alpha = 100;
} else {
RolloverGrayBar_mc._alpha = 0;
}
RolloverInfoText.htmlText = TranslateText;
}
function RefreshActivateButtonArt(astrButtonName: String): Void
{
if (astrButtonName == undefined) {
RolloverButton_tf.SetText(" ", true);
return;
}
var ButtonImage: BitmapData = BitmapData.loadBitmap(astrButtonName + ".png");
if (ButtonImage != undefined && ButtonImage.height > 0) {
var MaxHeight: Number = 26;
var ScaledWidth: Number = Math.floor(MaxHeight / ButtonImage.height * ButtonImage.width);
RolloverButton_tf.SetText("<img src=\'" + astrButtonName + ".png\' height=\'" + MaxHeight + "\' width=\'" + ScaledWidth + "\'>", true);
return;
}
RolloverButton_tf.SetText(" ", true);
}
function SetLoadDoorInfo(abShow: Boolean, aDoorName: String): Void
{
if (abShow) {
SavedRolloverText = aDoorName;
SetCrosshairTarget(true, SavedRolloverText, false, true, false);
return;
}
SavedRolloverText = "";
SetCrosshairTarget(false, SavedRolloverText, false, false, false);
}
function SetSubtitlesEnabled(abEnable: Boolean): Void
{
SubtitleText.enabled = abEnable;
if (!abEnable) {
SubtitleText._visible = false;
return;
}
if (SubtitleText.htmlText != " ")
SubtitleText._visible = true;
}
function ShowMessage(asMessage: String): Void
{
MessagesInstance.MessageArray.push(asMessage);
}
function ShowSubtitle(astrText: String): Void
{
SubtitleText.SetText(astrText, true);
if (SubtitleText.enabled)
SubtitleText._visible = true;
}
function HideSubtitle(): Void
{
SubtitleText.SetText(" ", true);
SubtitleText._visible = false;
}
function ShowArrowCount(aCount: Number, abHide: Boolean, aArrows: Number): Void
{
var HideFrame: Number = 15;
if (abHide) {
if (ArrowInfoInstance._currentframe > HideFrame)
ArrowInfoInstance.gotoAndStop(HideFrame);
ArrowInfoInstance.PlayReverse();
return;
}
ArrowInfoInstance.PlayForward(ArrowInfoInstance._currentframe);
ArrowInfoInstance.ArrowCountInstance.ArrowNumInstance.SetText(aArrows + " (" + aCount.toString() + ")");
}
function onEnterFrame(): Void
{
MagickaMeter.Update();
HealthMeterLeft.Update();
StaminaMeter.Update();
EnemyHealthMeter.Update();
LeftChargeMeter.Update();
RightChargeMeter.Update();
MessagesInstance.Update();
}
function SetCompassMarkers(): Void
{
var COMPASS_HEADING: Number = 0;
var COMPASS_ALPHA: Number = 1;
var COMPASS_GOTOANDSTOP: Number = 2;
var COMPASS_SCALE: Number = 3;
var COMPASS_STRIDE: Number = 4;
while (CompassMarkerList.length > CompassTargetDataA.length / COMPASS_STRIDE) {
CompassMarkerList.pop().movie.removeMovieClip();
}
for (var i: Number = 0; i < CompassTargetDataA.length / COMPASS_STRIDE; i++) {
var j: Number = i * COMPASS_STRIDE;
if (CompassMarkerList[i].movie == undefined) {
markerData = {movie: undefined, heading: 0};
if (CompassTargetDataA[j + COMPASS_GOTOANDSTOP] == CompassMarkerQuest || CompassTargetDataA[j + COMPASS_GOTOANDSTOP] == CompassMarkerQuestDoor) {
markerData.movie = CompassRect.QuestHolder.attachMovie("Compass Marker", "CompassMarker" + CompassMarkerList.length, CompassRect.QuestHolder.getNextHighestDepth());
} else {
markerData.movie = CompassRect.MarkerHolder.attachMovie("Compass Marker", "CompassMarker" + CompassMarkerList.length, CompassRect.MarkerHolder.getNextHighestDepth());
}
CompassMarkerList.push(markerData);
} else {
var compassMarkerFrame: Number = CompassMarkerList[i].movie._currentframe;
if (compassMarkerFrame == CompassMarkerQuest || compassMarkerFrame == CompassMarkerQuestDoor) {
if (CompassMarkerList[i].movie._parent == CompassRect.MarkerHolder) {
markerData = {movie: undefined, heading: 0};
markerData.movie = CompassRect.QuestHolder.attachMovie("Compass Marker", "CompassMarker" + CompassMarkerList.length, CompassRect.QuestHolder.getNextHighestDepth());
aCompassMarkerList = CompassMarkerList.splice(i, 1, markerData);
aCompassMarkerList[0].movie.removeMovieClip();
}
} else if (CompassMarkerList[i].movie._parent == CompassRect.QuestHolder) {
var markerData: Object = {movie: undefined, heading: 0};
markerData.movie = CompassRect.MarkerHolder.attachMovie("Compass Marker", "CompassMarker" + CompassMarkerList.length, CompassRect.MarkerHolder.getNextHighestDepth());
var aCompassMarkerList: Array = CompassMarkerList.splice(i, 1, markerData);
aCompassMarkerList[0].movie.removeMovieClip();
}
}
CompassMarkerList[i].heading = CompassTargetDataA[j + COMPASS_HEADING];
CompassMarkerList[i].movie._alpha = CompassTargetDataA[j + COMPASS_ALPHA];
CompassMarkerList[i].movie.gotoAndStop(CompassTargetDataA[j + COMPASS_GOTOANDSTOP]);
CompassMarkerList[i].movie._xscale = CompassTargetDataA[j + COMPASS_SCALE];
CompassMarkerList[i].movie._yscale = CompassTargetDataA[j + COMPASS_SCALE];
}
}
function UpdateCompassMarkers(aiCenterAngle: Number): Void
{
var compassMarkerWidth: Number = CompassShoutMeterHolder.Compass.CompassMask_mc._width;
var angleDelta: Number = compassMarkerWidth * 180 / Math.abs(CompassThreeSixtyX - CompassZeroX);
var angleDeltaLeft: Number = aiCenterAngle - angleDelta;
var angleDeltaRight: Number = aiCenterAngle + angleDelta;
var widthDeltaLeft: Number = 0 - CompassRect._x - compassMarkerWidth / 2;
var widthDeltaRight: Number = 0 - CompassRect._x + compassMarkerWidth / 2;
for (var i: Number = 0; i < CompassMarkerList.length; i++) {
var heading: Number = CompassMarkerList[i].heading;
if (angleDeltaLeft < 0 && heading > 360 - aiCenterAngle - angleDelta) {
heading = heading - 360;
}
if (angleDeltaRight > 360 && heading < angleDelta - (360 - aiCenterAngle)) {
heading = heading + 360;
}
if (heading > angleDeltaLeft && heading < angleDeltaRight) {
CompassMarkerList[i].movie._x = Shared.GlobalFunc.Lerp(widthDeltaLeft, widthDeltaRight, angleDeltaLeft, angleDeltaRight, heading);
} else {
var markerFrame: Number = CompassMarkerList[i].movie._currentframe;
if (markerFrame == CompassMarkerQuest || markerFrame == CompassMarkerQuestDoor) {
var angleRadians = Math.sin((heading - aiCenterAngle) * Math.PI / 180);
CompassMarkerList[i].movie._x = angleRadians <= 0 ? widthDeltaLeft + 2 : widthDeltaRight;
} else {
CompassMarkerList[i].movie._x = 0;
}
}
}
}
function ShowTutorialHintText(astrHint: String, abShow: Boolean): Void
{
if (abShow) {
TutorialHintsText.text = astrHint;
var buttonHtmlText: String = TutorialHintsArtHolder.CreateButtonArt(TutorialHintsText);
if (buttonHtmlText != undefined) {
TutorialHintsText.html = true;
TutorialHintsText.htmlText = buttonHtmlText;
}
}
if (abShow) {
TutorialLockInstance.TutorialHintsInstance.gotoAndPlay("FadeIn");
return;
}
TutorialLockInstance.TutorialHintsInstance.gotoAndPlay("FadeOut");
}
function SetCrosshairEnabled(abFlag: Boolean): Void
{
bCrosshairEnabled = abFlag;
var crosshairMode: MovieClip = _currentframe == 1 ? CrosshairInstance : CrosshairAlert;
crosshairMode._alpha = bCrosshairEnabled ? 100 : 0;
}
function ValidateCrosshair(): Void
{
var crosshairMode: MovieClip = _currentframe == 1 ? CrosshairInstance : CrosshairAlert;
crosshairMode._visible = CheckAgainstHudMode(crosshairMode);
StealthMeterInstance._visible = CheckAgainstHudMode(StealthMeterInstance);
}
}
Jump to Line
Something went wrong with that request. Please try again.