From 1a3b2935f0093e80919a02a3267ea9a9ae14f71e Mon Sep 17 00:00:00 2001 From: iAmAsval Date: Tue, 15 Dec 2020 20:50:45 +0100 Subject: [PATCH] actual reward has priority over xp reward --- FModel/Creator/Bundles/Quest.cs | 32 ++++++++++----------- FModel/PakReader/Parsers/IoPackageReader.cs | 25 ++++++---------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/FModel/Creator/Bundles/Quest.cs b/FModel/Creator/Bundles/Quest.cs index def71f67..a64bad4b 100644 --- a/FModel/Creator/Bundles/Quest.cs +++ b/FModel/Creator/Bundles/Quest.cs @@ -35,22 +35,7 @@ namespace FModel.Creator.Bundles Count = count.Value; } - if (obj.TryGetValue("RewardsTable", out var v4) && v4 is ObjectProperty rewardsTable && rewardsTable.Value.Resource.OuterIndex.Resource != null) - { - Package p = Utils.GetPropertyPakPackage(rewardsTable.Value.Resource.OuterIndex.Resource?.ObjectName.String); - if (p != null && p.HasExport() && !p.Equals(default)) - { - var u = p.GetExport(); - if (u != null && u.TryGetValue("Default", out var i) && i is UObject r && - r.TryGetValue("TemplateId", out var i1) && i1 is NameProperty templateId && - r.TryGetValue("Quantity", out var i2) && i2 is IntProperty quantity) - { - Reward = new Reward(quantity, templateId); - } - } - } - - if (Reward == null && obj.TryGetValue("Rewards", out var v2) && v2 is ArrayProperty rewards) + if (obj.TryGetValue("Rewards", out var v2) && v2 is ArrayProperty rewards) { foreach (StructProperty reward in rewards.Value) { @@ -76,6 +61,21 @@ namespace FModel.Creator.Bundles } } + if (Reward == null && obj.TryGetValue("RewardsTable", out var v4) && v4 is ObjectProperty rewardsTable && rewardsTable.Value.Resource.OuterIndex.Resource != null) + { + Package p = Utils.GetPropertyPakPackage(rewardsTable.Value.Resource.OuterIndex.Resource?.ObjectName.String); + if (p != null && p.HasExport() && !p.Equals(default)) + { + var u = p.GetExport(); + if (u != null && u.TryGetValue("Default", out var i) && i is UObject r && + r.TryGetValue("TemplateId", out var i1) && i1 is NameProperty templateId && + r.TryGetValue("Quantity", out var i2) && i2 is IntProperty quantity) + { + Reward = new Reward(quantity, templateId); + } + } + } + if (Reward == null && obj.TryGetValue("HiddenRewards", out var v3) && v3 is ArrayProperty hiddenRewards) { foreach (StructProperty reward in hiddenRewards.Value) diff --git a/FModel/PakReader/Parsers/IoPackageReader.cs b/FModel/PakReader/Parsers/IoPackageReader.cs index 71091d64..200933a3 100644 --- a/FModel/PakReader/Parsers/IoPackageReader.cs +++ b/FModel/PakReader/Parsers/IoPackageReader.cs @@ -176,24 +176,17 @@ namespace FModel.PakReader.Parsers { _dataExports[i] = new UObject(); #if DEBUG - try - { - var header = new FUnversionedHeader(this); - if (!header.HasValues) - continue; - using var it = new FIterator(header); - FConsole.AppendText(string.Concat("\n", exportType.String, ": ", Summary.Name.String), "#CA6C6C", true); - - do - { - FConsole.AppendText($"Val: {it.Current.Val} (IsNonZero: {it.Current.IsNonZero})", FColors.Yellow, true); - } - while (it.MoveNext()); - } - catch (FileLoadException) - { + var header = new FUnversionedHeader(this); + if (!header.HasValues) continue; + using var it = new FIterator(header); + FConsole.AppendText(string.Concat("\n", exportType.String, ": ", Summary.Name.String), "#CA6C6C", true); + + do + { + FConsole.AppendText($"Val: {it.Current.Val} (IsNonZero: {it.Current.IsNonZero})", FColors.Yellow, true); } + while (it.MoveNext()); #endif } }