Skip to content
Merged
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
2 changes: 1 addition & 1 deletion EmoTracker.Data/Items/CompositeToggleItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ protected override void ParseDataInternal(JObject data, IGamePackage package)
foreach (JObject imageData in imageMap)
{
string imgName = imageData.GetValue<string>("img");
var img = ImageReference.FromPackRelativePath(package, imgName, imageData.GetValue<string>("img_mods"));
var img = ImageReference.FromPackRelativePath((this.OwnerState as Sessions.TrackerState)?.PackageInstance, imgName, imageData.GetValue<string>("img_mods"));

if (img != null)
{
Expand Down
5 changes: 3 additions & 2 deletions EmoTracker.Data/Items/ConsumableItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,11 @@ protected override void ParseDataInternal(JObject data, IGamePackage package)
mCodeProvider.Clear();
mCodeProvider.AddCodes(data.GetValue<string>("codes"));

mFullIcon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));
var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance;
mFullIcon = ImageReference.FromPackRelativePath(pi, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));

// Allow loading a custom disabled image, and then apply filters
mEmptyIcon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("disabled_img"), data.GetValue<string>("disabled_img_mods") ?? DisabledImageFilterSpec);
mEmptyIcon = ImageReference.FromPackRelativePath(pi, data.GetValue<string>("disabled_img"), data.GetValue<string>("disabled_img_mods") ?? DisabledImageFilterSpec);
if (mEmptyIcon == null)
mEmptyIcon = ImageReference.FromImageReference(mFullIcon, data.GetValue<string>("disabled_img_mods") ?? DisabledImageFilterSpec);

Expand Down
3 changes: 2 additions & 1 deletion EmoTracker.Data/Items/ProgressiveItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,11 @@ protected override void ParseDataInternal(JObject data, IGamePackage package)

string codes = "";

var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance;
JArray stages = (JArray)data.GetValue("stages");
foreach (JObject stageData in stages)
{
var img = ImageReference.FromPackRelativePath(package, stageData.GetValue<string>("img"), stageData.GetValue<string>("img_mods"));
var img = ImageReference.FromPackRelativePath(pi, stageData.GetValue<string>("img"), stageData.GetValue<string>("img_mods"));

// Reset the code inheritance chain if requested
bool bInheritCodes = stageData.GetValue<bool>("inherit_codes", true);
Expand Down
5 changes: 3 additions & 2 deletions EmoTracker.Data/Items/ProgressiveToggleItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,12 @@ protected override void ParseDataInternal(JObject data, IGamePackage package)

uint stageIdx = 0;

var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance;
JArray stages = (JArray)data.GetValue("stages");
foreach (JObject stageData in stages)
{
var img = ImageReference.FromPackRelativePath(package, stageData.GetValue<string>("img"), stageData.GetValue<string>("img_mods"));
var disabledImg = ImageReference.FromPackRelativePath(package, stageData.GetValue<string>("disabled_img"), stageData.GetValue<string>("disabled_img_mods") ?? DisabledImageFilterSpec);
var img = ImageReference.FromPackRelativePath(pi, stageData.GetValue<string>("img"), stageData.GetValue<string>("img_mods"));
var disabledImg = ImageReference.FromPackRelativePath(pi, stageData.GetValue<string>("disabled_img"), stageData.GetValue<string>("disabled_img_mods") ?? DisabledImageFilterSpec);

if (img != null)
{
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/Items/StaticItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public override void AdvanceToCode(string code = null)

protected override void ParseDataInternal(JObject data, IGamePackage package)
{
Icon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));
Icon = ImageReference.FromPackRelativePath((this.OwnerState as Sessions.TrackerState)?.PackageInstance, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));
mCodeProvider.AddCodes(data.GetValue<string>("codes"));
Capturable = data.GetValue<bool>("capturable", false);
}
Expand Down
5 changes: 3 additions & 2 deletions EmoTracker.Data/Items/ToggleBadgedItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,9 @@ protected override void ParseDataInternal(JObject data, IGamePackage package)
string disabledImgMods = data.GetValue<string>("disabled_img_spec");
disabledImgMods = data.GetValue<string>("disabled_img_mods", disabledImgMods);

mInactiveIcon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("disabled_img"), disabledImgMods ?? DisabledImageFilterSpec);
ActiveIcon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));
var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance;
mInactiveIcon = ImageReference.FromPackRelativePath(pi, data.GetValue<string>("disabled_img"), disabledImgMods ?? DisabledImageFilterSpec);
ActiveIcon = ImageReference.FromPackRelativePath(pi, data.GetValue<string>("img"), data.GetValue<string>("img_mods"));

Active = data.GetValue<bool>("initial_active_state", Active);
AddProvidedCodes(data.GetValue<string>("codes"));
Expand Down
5 changes: 3 additions & 2 deletions EmoTracker.Data/Items/ToggleItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,13 @@ public void AddProvidedCodes(string spec)
protected override void ParseDataInternal(JObject data, IGamePackage package)
{
string imgName = data.GetValue<string>("img");
ActiveIcon = ImageReference.FromPackRelativePath(package, imgName, data.GetValue<string>("img_mods"));
var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance;
ActiveIcon = ImageReference.FromPackRelativePath(pi, imgName, data.GetValue<string>("img_mods"));

string disabledImgMods = data.GetValue<string>("disabled_img_spec", DisabledImageFilterSpec);
disabledImgMods = data.GetValue<string>("disabled_img_mods", disabledImgMods);

mInactiveIcon = ImageReference.FromPackRelativePath(package, data.GetValue<string>("disabled_img"), disabledImgMods);
mInactiveIcon = ImageReference.FromPackRelativePath(pi, data.GetValue<string>("disabled_img"), disabledImgMods);

if (mActiveIcon != null && mInactiveIcon == null)
mInactiveIcon = ImageReference.FromImageReference(mActiveIcon, disabledImgMods);
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/Layout/ButtonPopup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ protected override void PopulateDefinitionData(JObject data, IGamePackage packag
{
definition[nameof(Style) + "__def"] = data.GetEnumValue<ButtonStyle>("style", ButtonStyle.Settings);
definition[nameof(Image) + "__def"] = ImageReference.FromPackRelativePath(
package, data.GetValue<string>("image"), data.GetValue<string>("image_filter"));
(this.OwnerState as Sessions.TrackerState)?.PackageInstance, data.GetValue<string>("image"), data.GetValue<string>("image_filter"));
definition[nameof(PopupBackground) + "__def"] = data.GetValue<string>("popup_background", "#ff212121");
definition[nameof(MaskInput) + "__def"] = data.GetValue<bool>("mask_input", false);
definition[nameof(LayoutKey)] = data.GetValue<string>("layout");
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/Layout/Image.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public partial class Image : LayoutItem
protected override void PopulateDefinitionData(JObject data, IGamePackage package, Dictionary<string, object> definition)
{
definition[nameof(Content) + "__def"] = ImageReference.FromPackRelativePath(
package, data.GetValue<string>("image"), data.GetValue<string>("image_filter"));
(this.OwnerState as Sessions.TrackerState)?.PackageInstance, data.GetValue<string>("image"), data.GetValue<string>("image_filter"));
}

protected override bool TryParseInternal(JObject data, IGamePackage package)
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/Layout/TabPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ protected override bool TryParseInternal(JObject data, IGamePackage package)
tab.OwnerState = this.OwnerState;
tab.SeedDefinition(
entry.GetValue<string>("title"),
ImageReference.FromPackRelativePath(package, entry.GetValue<string>("icon"), entry.GetValue<string>("icon_image_spec")),
ImageReference.FromPackRelativePath((this.OwnerState as Sessions.TrackerState)?.PackageInstance, entry.GetValue<string>("icon"), entry.GetValue<string>("icon_image_spec")),
layout);
mTabs.Add(tab);
}
Expand Down
9 changes: 4 additions & 5 deletions EmoTracker.Data/LocationDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,11 +177,11 @@ public void Reset()

public void ParseLocationVisualProperties(JObject data, LocationVisualProperties visual, IGamePackage package)
{
ImageReference openImg = ImageReference.FromPackRelativePath(package, data.GetValue<string>("chest_opened_img"));
ImageReference openImg = ImageReference.FromPackRelativePath(this.State?.PackageInstance, data.GetValue<string>("chest_opened_img"));
if (openImg != null)
visual.OpenChestImage = openImg;

ImageReference closedImg = ImageReference.FromPackRelativePath(package, data.GetValue<string>("chest_unopened_img"));
ImageReference closedImg = ImageReference.FromPackRelativePath(this.State?.PackageInstance, data.GetValue<string>("chest_unopened_img"));
if (closedImg != null)
visual.ClosedChestImage = closedImg;

Expand Down Expand Up @@ -723,7 +723,7 @@ Location LoadLocation(IGamePackage package, Location parent, JObject data, Sessi

string thumbnailPath = sectionData.GetValue<string>("thumbnail");
if (!string.IsNullOrWhiteSpace(thumbnailPath))
section.Thumbnail = ImageReference.FromPackRelativePath(package, thumbnailPath);
section.Thumbnail = ImageReference.FromPackRelativePath(this.State?.PackageInstance, thumbnailPath);

section.HostedItemCode = sectionData.GetValue<string>("hosted_item");
section.GateItemCode = sectionData.GetValue<string>("gate_item");
Expand Down Expand Up @@ -1018,8 +1018,7 @@ internal bool Load(JObject root)

if (!string.IsNullOrEmpty(imagePath))
{
var pkg = this.State?.PackageInstance?.GamePackage;
ImageReference imageRef = ImageReference.FromPackRelativePath(pkg, imagePath, filter);
ImageReference imageRef = ImageReference.FromPackRelativePath(this.State?.PackageInstance, imagePath, filter);
if (imageRef != null)
location.AddBadge(key, imageRef, null, ox, oy);
}
Expand Down
6 changes: 3 additions & 3 deletions EmoTracker.Data/Locations/Location.cs
Original file line number Diff line number Diff line change
Expand Up @@ -521,9 +521,9 @@ public ImageReference AddBadge(string imageRef, string filterSpec = null)
{
try
{
var pkg = (this.OwnerState as Sessions.TrackerState)?.PackageInstance?.GamePackage
?? Sessions.ActiveSession.Primary?.PackageInstance?.GamePackage;
ImageReference badge = ImageReference.FromPackRelativePath(pkg, imageRef, filterSpec);
var pi = (this.OwnerState as Sessions.TrackerState)?.PackageInstance
?? Sessions.ActiveSession.Primary?.PackageInstance;
ImageReference badge = ImageReference.FromPackRelativePath(pi, imageRef, filterSpec);
if (badge == null) return null;
mBadges[DefaultBadgeKey] = new BadgeEntry(DefaultBadgeKey, badge);
return badge;
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/MapDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ internal bool IncrementalLoad(string path, IGamePackage package, Sessions.Tracke
mapObj.Name = map.GetValue<string>("name");
mapObj.LocationSize = map.GetValue<double>("location_size", 70);
mapObj.LocationBorderThickness = map.GetValue<double>("location_border_thickness", 8);
mapObj.Image = ImageReference.FromPackRelativePath(package, map.GetValue<string>("img"), map.GetValue<string>("img_mods"));
mapObj.Image = ImageReference.FromPackRelativePath(state?.PackageInstance, map.GetValue<string>("img"), map.GetValue<string>("img_mods"));
mMaps.Add(mapObj);
}
}
Expand Down
12 changes: 5 additions & 7 deletions EmoTracker.Data/Media/ImageReference.cs
Original file line number Diff line number Diff line change
Expand Up @@ -251,17 +251,18 @@ static void PopulateDimensions(ImageReference result, IGamePackage package, IGam

public static ImageReference FromPackRelativePath(string path, string filter = null)
{
return FromPackRelativePath(Sessions.ActiveSession.Primary?.PackageInstance?.GamePackage, path, filter);
return FromPackRelativePath(Sessions.ActiveSession.Primary?.PackageInstance, path, filter);
}

public static ImageReference FromPackRelativePath(IGamePackage package, string path, string filter = null)
public static ImageReference FromPackRelativePath(Sessions.PackageInstance pi, string path, string filter = null)
{
if (string.IsNullOrWhiteSpace(path))
return null;

path = path.Trim();
path = path.TrimStart(',', '/', '\\');

var package = pi?.GamePackage;
if (package == null || !package.Exists(path))
return null;

Expand All @@ -274,13 +275,10 @@ public static ImageReference FromPackRelativePath(IGamePackage package, string p
{
URI = new Uri(path),
Filter = filter,
// Phase 7.1.h: stamp the owning PackageInstance so the
// resolver can find this reference's cache + open the
// file directly without consulting an ambient session.
PackageInstance = Sessions.ActiveSession.FindPackageInstanceFor(package),
PackageInstance = pi,
};

PopulateDimensions(result, package, result.PackageInstance?.ActiveVariant, path);
PopulateDimensions(result, package, pi?.ActiveVariant, path);
NotifyCreated(result);

return result;
Expand Down
2 changes: 1 addition & 1 deletion EmoTracker.Data/ScriptManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public ImageReferenceProvider(Sessions.TrackerState state)

public ImageReference FromPackRelativePath(string path, string filter = null)
{
return ImageReference.FromPackRelativePath(mState.PackageInstance?.GamePackage, path, filter);
return ImageReference.FromPackRelativePath(mState.PackageInstance, path, filter);
}

public ImageReference FromImageReference(ImageReference existingReference, string filter = null)
Expand Down
Loading