Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions misc/Flash Util/build-all.jsfl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var srcDir = "file:///E:/skyui/src/"
var srcDir = "file:///S:/Documents/GitHub/skyui-vr/src/"
var flaFiles = [
"CraftingMenu/craftingmenu.fla",
//"FavoritesMenu/favoritesmenu.fla",
Expand Down Expand Up @@ -34,7 +34,7 @@ for(var i = 0; i < flaFiles.length; i++) {
// Starting a new compile session
// Clear out all errors
fl.compilerErrors.clear();
var logfile = "file:///E:/skyui/compile-error.txt";
var logfile = "file:///S:/Documents/GitHub/skyui-vr/compile-error.txt";

function build(documentUri) {
FLfile.remove(logfile);
Expand Down
15 changes: 14 additions & 1 deletion src/CraftingMenu/CraftingDataSetter.as
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ import skyui.components.list.IListProcessor;
// @abstract
class CraftingDataSetter implements IListProcessor
{
//Frostfall
private var _listProcessed: Boolean;

/* INITIALIZATION */

public function CraftingDataSetter()
Expand All @@ -25,6 +28,9 @@ class CraftingDataSetter implements IListProcessor
// @override IListProcessor
public function processList(a_list: BasicList): Void
{
//Frostfall
_listProcessed = false;

var entryList = a_list.entryList;

for (var i = 0; i < entryList.length; i++) {
Expand All @@ -39,6 +45,9 @@ class CraftingDataSetter implements IListProcessor

processEntry(e);
}
//Frostfall
_listProcessed = true;
skse.SendModEvent("Frost_InvalidateFetchedRangesOnProcess", "", 0, 0);
}


Expand Down Expand Up @@ -72,6 +81,10 @@ class CraftingDataSetter implements IListProcessor
processMaterialKeywords(a_entryObject);
processArmorOther(a_entryObject);
processArmorBaseId(a_entryObject);
//Frostfall
if (_listProcessed) {
skse.SendModEvent("Frost_OnSkyUIInvListGetEntryProtectionDataOnProcess", "", a_entryObject.itemIndex, 0);
}
break;

case Form.TYPE_BOOK:
Expand Down Expand Up @@ -769,7 +782,7 @@ class CraftingDataSetter implements IListProcessor
}

private function processSoulGemStatus(a_entryObject: Object): Void
{
{
if (a_entryObject.gemSize == undefined || a_entryObject.soulSize == undefined || a_entryObject.soulSize == Item.SOULGEM_NONE)
a_entryObject.status = Item.SOULGEMSTATUS_EMPTY;
else if (a_entryObject.soulSize >= a_entryObject.gemSize)
Expand Down
93 changes: 89 additions & 4 deletions src/CraftingMenu/CraftingMenu.as
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,11 @@ class CraftingMenu extends MovieClip
private var _subtypeName: String;

private var _handleInputRateLimiter: Boolean;



//Frostfall
private var _fetchedRanges: Array;


/* PROPERTIES */

public var AdditionalDescriptionHolder: MovieClip;
Expand Down Expand Up @@ -209,6 +212,10 @@ class CraftingMenu extends MovieClip
BottomBarInfo["Button" + CraftingMenu.AUX_BUTTON].addEventListener("click", this, "onAuxButtonPress");
BottomBarInfo["Button" + CraftingMenu.AUX_BUTTON].disabled = false;*/

//Frostfall
_fetchedRanges = [];
ItemInfo.currentList = ItemList.entryList;

ExitMenuRect.onPress = function ()
{
GameDelegate.call("CloseMenu", []);
Expand Down Expand Up @@ -256,11 +263,11 @@ class CraftingMenu extends MovieClip
navPanel.addButton({text: "$Order", controls: {namedKey: "Action_Double_Up"}});
}
}

if (bCanCraft && ButtonText[CraftingMenu.CRAFT_BUTTON] != "") {
navPanel.addButton({text: ButtonText[CraftingMenu.CRAFT_BUTTON], controls: craftControls});
}

if (bCanCraft && ButtonText[CraftingMenu.AUX_BUTTON] != "") {
navPanel.addButton({text: ButtonText[CraftingMenu.AUX_BUTTON], controls: auxControls});
}
Expand Down Expand Up @@ -608,6 +615,18 @@ class CraftingMenu extends MovieClip

private function onItemHighlightChange(event: Object): Void
{
//Frostfall
ItemInfo.currentListIndex = event.index;
var range = Math.floor(event.index / 5);
// skse.Log("CraftingMenu - Current range is " + range);
if (_fetchedRanges.indexOf(range) === -1 || _fetchedRanges.indexOf(range) === undefined) {
// skse.Log("CraftingMenu - Need to fetch range " + range);
var rangeMin = range * 5;
var rangeMax = (range * 5) + 4;
FetchProtectionDataForList(event.target.itemList._entryList, rangeMin, rangeMax);
_fetchedRanges.push(range);
}

SetSelectedItem(event.index);
FadeInfoCard(event.index == -1);
UpdateButtonText();
Expand All @@ -623,6 +642,9 @@ class CraftingMenu extends MovieClip
GameDelegate.call("SetSelectedCategory", [CategoryList.CategoriesList.selectedIndex]);
}

//Frostfall
// This is a deprecated call, deferred to onItemHighlightChange() instead - huge memory leak otherwise
// FetchProtectionDataForList(event.target.itemList._entryList);
onItemHighlightChange(event);
}

Expand Down Expand Up @@ -732,4 +754,67 @@ class CraftingMenu extends MovieClip
onItemsListInputCatcherClick();
}
}

//Frostfall
public function FetchProtectionDataForList(entryList: Array, rangeMin: Number, rangeMax: Number): Void
{
for(var i = rangeMin; i <= rangeMax; i++) {
// skse.Log("CraftingMenu - " + i + " : " + entryList[i]);
var entry = entryList[i];
// skse.Log("CraftingMenu - " + i + " : " + entry.formId);
if (entry.formType === 26) {
getEntryProtectionData(entry.text, i, Number(entry.formId));
};
};
// deprecated log item, event is not in context, and entry selection mechanism is unclear
// skse.Log("CraftingMenu - FormID: " + event.target.itemList.selectedEntry.formId);
}

public function setEntryProtectionData(/* values */): Void
{
var index:Number = arguments[0];
var warmth:Number = arguments[1];
var coverage:Number = arguments[2];
// skse.Log("CraftingMenu - Receiving idx " + index + ", warmth " + warmth + ", coverage " + coverage);
var entry = ItemList.entryList[index];
entry["warmth"] = warmth;
entry["coverage"] = coverage;

var selectedEntry = ItemList.selectedEntry;
if (selectedEntry.formType === 26) {
var selectedIdx:Number = selectedEntry.itemIndex;
var entryFromSelected = ItemList.entryList[selectedIdx];
if (entryFromSelected["warmth"] !== undefined && entryFromSelected["coverage"] !== undefined) {
ItemInfo.ForceProtectionDisplay(entryFromSelected.warmth, entryFromSelected.coverage);
}
}
// skse.Log("CraftingMenu - Entry values are " + entry.warmth + " and " + entry.coverage);
}

public function setEntryProtectionDataOnProcess(entryIndex: Number): Void
{
// skse.Log("CraftingMenu - setEntryProtectionDataOnProcess")
ItemInfo.currentListIndex = entryIndex;
var range = Math.floor(entryIndex / 5);
// skse.Log("CraftingMenu - Current range is " + range);
if (_fetchedRanges.indexOf(range) === -1 || _fetchedRanges.indexOf(range) === undefined) {
// skse.Log("CraftingMenu - Need to fetch range " + range);
var rangeMin = range * 5;
var rangeMax = (range * 5) + 4;
FetchProtectionDataForList(ItemList.entryList, rangeMin, rangeMax);
_fetchedRanges.push(range);
}
}

private function getEntryProtectionData(entryName: String, entryIndex: Number, formId: Number)
{
// skse.Log("CraftingMenu - sending " + entryIndex + " and " + formId);
skse.SendModEvent("Frost_OnSkyUIInvListGetEntryProtectionData", entryName, entryIndex, formId);
}

private function onFrostfallInvalidateFetchedRangesOnProcess()
{
_fetchedRanges = [];
setEntryProtectionDataOnProcess(ItemList.selectedIndex)
}
}
10 changes: 10 additions & 0 deletions src/ItemMenus/BarterMenu.as
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,16 @@ class BarterMenu extends ItemMenu
a_updateObj.value = a_updateObj.value * _sellMult;
}
a_updateObj.value = Math.floor(a_updateObj.value + 0.5);

//Frostfall
var selectedEntry = inventoryLists.itemList.selectedEntry;
if (selectedEntry !== undefined) {
a_updateObj["warmth"] = selectedEntry.warmth;
a_updateObj["coverage"] = selectedEntry.coverage;
a_updateObj["currentArmorWarmth"] = selectedEntry.currentArmorWarmth;
a_updateObj["currentArmorCoverage"] = selectedEntry.currentArmorCoverage;
}

itemCard.itemInfo = a_updateObj;
bottomBar.updateBarterPerItemInfo(a_updateObj);
}
Expand Down
72 changes: 57 additions & 15 deletions src/ItemMenus/BottomBar.as
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,15 @@ class BottomBar extends MovieClip
var EF_HEALTH: Number = 0;
var EF_MAGICKA: Number = 1;
var EF_STAMINA: Number = 2;
if (a_itemUpdateObj.potionType == EF_MAGICKA)
if (a_itemUpdateObj.potionType == EF_MAGICKA) {
infoCard.gotoAndStop("MagickaPotion");
else if (a_itemUpdateObj.potionType == EF_STAMINA)
}
else if (a_itemUpdateObj.potionType == EF_STAMINA) {
infoCard.gotoAndStop("StaminaPotion");
else if (a_itemUpdateObj.potionType == EF_HEALTH)
}
else if (a_itemUpdateObj.potionType == EF_HEALTH) {
infoCard.gotoAndStop("HealthPotion");
}
break;

case Inventory.ICT_SPELL_DEFAULT:
Expand Down Expand Up @@ -370,63 +373,102 @@ class BottomBar extends MovieClip
public function updateFrostfallValues(a_itemUpdateObj: Object): Void
{
var infoCard = playerInfoCard;
var strWarmth: String = ""; // init to empty string to support changes below
var strCoverage: String = "";

// Shouldn't need this, but for some reason 'undefined' is getting through
if (_currentTotalWarmth !== undefined && _lastWarmthDelta !== undefined) {
strWarmth = _currentTotalWarmth.toString();
}

var strWarmth: String = _currentTotalWarmth.toString();
if (a_itemUpdateObj.currentArmorWarmth !== undefined) {
var iWarmthDelta = a_itemUpdateObj.warmth - a_itemUpdateObj.currentArmorWarmth;
// skse.Log("a_itemUpdateObj.warmth is " + a_itemUpdateObj.warmth + ", a_itemUpdateObj.currentArmorWarmth is " + a_itemUpdateObj.currentArmorWarmth);
if (iWarmthDelta > 0) {
_lastWarmthDelta = " <font color=\'#189515\'>(+" + iWarmthDelta.toString() + ")</font>";
strWarmth = strWarmth + _lastWarmthDelta;
if (_lastWarmthDelta !== undefined) {
strWarmth = strWarmth + _lastWarmthDelta;
}
}
else if (iWarmthDelta < 0) {
_lastWarmthDelta = " <font color=\'#FF0000\'>(" + iWarmthDelta.toString() + ")</font>";
strWarmth = strWarmth + _lastWarmthDelta;
if (_lastWarmthDelta !== undefined) {
strWarmth = strWarmth + _lastWarmthDelta;
}
}
else {
_lastWarmthDelta = "";
// skse.Log("BottomBar - a_itemUpdateObj.warmth is " + a_itemUpdateObj.warmth + ", a_itemUpdateObj.currentArmorWarmth is " + a_itemUpdateObj.currentArmorWarmth);
// skse.Log("BottomBar - Warmth Delta is " + iWarmthDelta)
}
}
infoCard.ExposureProtectionValue.textAutoSize = "shrink";
infoCard.ExposureProtectionValue.html = true;
infoCard.ExposureProtectionValue.SetText(strWarmth, true);

var strCoverage: String = _currentTotalCoverage.toString();
// Shouldn't need this, but for some reason 'undefined' is getting through
if (_currentTotalWarmth !== undefined && _lastCoverageDelta !== undefined) {
strCoverage = _currentTotalCoverage.toString();
}

if (a_itemUpdateObj.currentArmorCoverage !== undefined) {
var iCoverageDelta = a_itemUpdateObj.coverage - a_itemUpdateObj.currentArmorCoverage;
// skse.Log("Coverage Delta is " + iCoverageDelta)
if (iCoverageDelta > 0) {
_lastCoverageDelta = " <font color=\'#189515\'>(+" + iCoverageDelta.toString() + ")</font>"
strCoverage = strCoverage + _lastCoverageDelta;
if (_lastCoverageDelta !== undefined) {
strCoverage = strCoverage + _lastCoverageDelta;
}
}
else if (iCoverageDelta < 0) {
_lastCoverageDelta = " <font color=\'#FF0000\'>(" + iCoverageDelta.toString() + ")</font>"
strCoverage = strCoverage + _lastCoverageDelta;
if (_lastCoverageDelta !== undefined) {
strCoverage = strCoverage + _lastCoverageDelta;
}
}
else {
_lastCoverageDelta = "";
// skse.Log("BottomBar - a_itemUpdateObj.coverage is " + a_itemUpdateObj.coverage + ", a_itemUpdateObj.currentArmorCoverage is " + a_itemUpdateObj.currentArmorCoverage);
// skse.Log("BottomBar - Coverage Delta is " + iCoverageDelta)
}
}
infoCard.RainProtectionValue.textAutoSize = "shrink";
infoCard.RainProtectionValue.html = true;
infoCard.RainProtectionValue.SetText(strCoverage, true);
}

// possible culprit of '0undefined' (coverage value + undefined) showing in BottomBar
private function updateFrostfallWarmthFromStoredValues(): Void
{
var infoCard = playerInfoCard;
var strWarmth: String = _currentTotalWarmth.toString();
strWarmth = strWarmth + _lastWarmthDelta;
var strWarmth: String = "";

if (_currentTotalWarmth !== undefined && _lastWarmthDelta !== undefined) {
strWarmth = _currentTotalWarmth.toString();
}

// Shouldn't need this but 'undefined' is getting through somehow
if (_lastWarmthDelta !== undefined) {
strWarmth = strWarmth + _lastWarmthDelta;
}

infoCard.ExposureProtectionValue.textAutoSize = "shrink";
infoCard.ExposureProtectionValue.html = true;
infoCard.ExposureProtectionValue.SetText(strWarmth, true);
}

// possible culprit of '0undefined' (coverage value + undefined) showing in BottomBar
private function updateFrostfallCoverageFromStoredValues(): Void
{
var infoCard = playerInfoCard;
var strCoverage: String = _currentTotalCoverage.toString();
strCoverage = strCoverage + _lastCoverageDelta;
var strCoverage: String = "";

if (_currentTotalWarmth !== undefined && _lastCoverageDelta !== undefined) {
strCoverage = _currentTotalCoverage.toString();
}

// Shouldn't need this but 'undefined' is getting through somehow
if (_lastCoverageDelta !== undefined) {
strCoverage = strCoverage + _lastCoverageDelta;
}
infoCard.RainProtectionValue.textAutoSize = "shrink";
infoCard.RainProtectionValue.html = true;
infoCard.RainProtectionValue.SetText(strCoverage, true);
Expand Down
Loading