Skip to content

Commit 5b13bb0

Browse files
committed
Skip emissive
1 parent 3b82f14 commit 5b13bb0

File tree

4 files changed

+80
-62
lines changed

4 files changed

+80
-62
lines changed

CUE4Parse

Submodule CUE4Parse updated 38 files

FModel/ViewModels/CUE4ParseViewModel.cs

Lines changed: 57 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public Snooper SnooperViewer
137137
private Lazy<WwiseProvider> _wwiseProviderLazy;
138138
public WwiseProvider WwiseProvider => _wwiseProviderLazy.Value;
139139
private Lazy<FModProvider> _fmodProviderLazy;
140-
public FModProvider FmodProvider => _fmodProviderLazy?.Value;
140+
public FModProvider FmodProvider => _fmodProviderLazy?.Value;
141141
private Lazy<CriWareProvider> _criWareProviderLazy;
142142
public CriWareProvider CriWareProvider => _criWareProviderLazy?.Value;
143143
public ConcurrentBag<string> UnknownExtensions = [];
@@ -293,7 +293,7 @@ await _threadWorkerView.Begin(cancellationToken =>
293293

294294
Provider.Initialize();
295295
_wwiseProviderLazy = new Lazy<WwiseProvider>(() => new WwiseProvider(Provider, UserSettings.Default.WwiseMaxBnkPrefetch));
296-
_fmodProviderLazy = new Lazy<FModProvider>(() => new FModProvider(Provider, UserSettings.Default.GameDirectory));
296+
_fmodProviderLazy = new Lazy<FModProvider>(() => new FModProvider(Provider, UserSettings.Default.GameDirectory));
297297
_criWareProviderLazy = new Lazy<CriWareProvider>(() => new CriWareProvider(Provider, UserSettings.Default.GameDirectory));
298298
Log.Information($"{Provider.Versions.Game} ({Provider.Versions.Platform}) | Archives: x{Provider.UnloadedVfs.Count} | AES: x{Provider.RequiredKeys.Count} | Loose Files: x{Provider.Files.Count}");
299299
});
@@ -648,6 +648,7 @@ public void Extract(CancellationToken cancellationToken, GameFile entry, bool ad
648648
case "dnearchive": // Banishers: Ghosts of New Eden
649649
case "gitignore":
650650
case "LICENSE":
651+
case "playstats": // Dispatch
651652
case "template":
652653
case "stUMeta": // LIS: Double Exposure
653654
case "vmodule":
@@ -775,38 +776,38 @@ public void Extract(CancellationToken cancellationToken, GameFile entry, bool ad
775776
}
776777

777778
break;
778-
}
779-
case "awb":
780-
{
781-
var archive = entry.CreateReader();
782-
var awbReader = new AwbReader(archive);
783-
784-
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(awbReader, Formatting.Indented), saveProperties, updateUi);
785-
786-
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
787-
var extractedSounds = CriWareProvider.ExtractCriWareSounds(awbReader, archive.Name);
788-
foreach (var sound in extractedSounds)
789-
{
790-
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
791-
}
792-
793-
break;
794-
}
795-
case "acb":
796-
{
797-
var archive = entry.CreateReader();
798-
var acbReader = new AcbReader(archive);
799-
800-
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(acbReader, Formatting.Indented), saveProperties, updateUi);
801-
802-
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
803-
var extractedSounds = CriWareProvider.ExtractCriWareSounds(acbReader, archive.Name);
804-
foreach (var sound in extractedSounds)
805-
{
806-
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
807-
}
808-
809-
break;
779+
}
780+
case "awb":
781+
{
782+
var archive = entry.CreateReader();
783+
var awbReader = new AwbReader(archive);
784+
785+
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(awbReader, Formatting.Indented), saveProperties, updateUi);
786+
787+
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
788+
var extractedSounds = CriWareProvider.ExtractCriWareSounds(awbReader, archive.Name);
789+
foreach (var sound in extractedSounds)
790+
{
791+
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
792+
}
793+
794+
break;
795+
}
796+
case "acb":
797+
{
798+
var archive = entry.CreateReader();
799+
var acbReader = new AcbReader(archive);
800+
801+
TabControl.SelectedTab.SetDocumentText(JsonConvert.SerializeObject(acbReader, Formatting.Indented), saveProperties, updateUi);
802+
803+
var directory = Path.GetDirectoryName(archive.Name) ?? "/Criware/";
804+
var extractedSounds = CriWareProvider.ExtractCriWareSounds(acbReader, archive.Name);
805+
foreach (var sound in extractedSounds)
806+
{
807+
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
808+
}
809+
810+
break;
810811
}
811812
case "xvag":
812813
case "flac":
@@ -1032,27 +1033,27 @@ public void ExtractAndScroll(CancellationToken cancellationToken, string fullPat
10321033
SaveAndPlaySound(Path.Combine(directory, sound.Name), sound.Extension, sound.Data, saveAudio);
10331034
}
10341035
return false;
1035-
}
1036-
case USoundAtomCueSheet or UAtomCueSheet or USoundAtomCue or UAtomWaveBank when (isNone || saveAudio) && pointer.Object.Value is UObject atomObject:
1037-
{
1038-
var extractedSounds = atomObject switch
1039-
{
1040-
USoundAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
1041-
UAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
1042-
USoundAtomCue cue => CriWareProvider.ExtractCriWareSounds(cue),
1043-
UAtomWaveBank awb => CriWareProvider.ExtractCriWareSounds(awb),
1044-
_ => []
1045-
};
1046-
1047-
var directory = Path.GetDirectoryName(atomObject.Owner?.Name) ?? "/Criware/";
1048-
directory = Path.GetDirectoryName(atomObject.Owner.Provider.FixPath(directory));
1049-
foreach (var sound in extractedSounds)
1050-
{
1051-
SaveAndPlaySound(Path.Combine(directory, sound.Name).Replace("\\", "/"), sound.Extension, sound.Data, saveAudio);
1052-
}
1053-
return false;
1054-
}
1055-
case UAkMediaAssetData when isNone || saveAudio:
1036+
}
1037+
case USoundAtomCueSheet or UAtomCueSheet or USoundAtomCue or UAtomWaveBank when (isNone || saveAudio) && pointer.Object.Value is UObject atomObject:
1038+
{
1039+
var extractedSounds = atomObject switch
1040+
{
1041+
USoundAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
1042+
UAtomCueSheet cueSheet => CriWareProvider.ExtractCriWareSounds(cueSheet),
1043+
USoundAtomCue cue => CriWareProvider.ExtractCriWareSounds(cue),
1044+
UAtomWaveBank awb => CriWareProvider.ExtractCriWareSounds(awb),
1045+
_ => []
1046+
};
1047+
1048+
var directory = Path.GetDirectoryName(atomObject.Owner?.Name) ?? "/Criware/";
1049+
directory = Path.GetDirectoryName(atomObject.Owner.Provider.FixPath(directory));
1050+
foreach (var sound in extractedSounds)
1051+
{
1052+
SaveAndPlaySound(Path.Combine(directory, sound.Name).Replace("\\", "/"), sound.Extension, sound.Data, saveAudio);
1053+
}
1054+
return false;
1055+
}
1056+
case UAkMediaAssetData when isNone || saveAudio:
10561057
case USoundWave when isNone || saveAudio:
10571058
{
10581059
var shouldDecompress = UserSettings.Default.CompressedAudioMode == ECompressedAudio.PlayDecompressed;
@@ -1273,4 +1274,4 @@ private static bool HasFlag(EBulkType a, EBulkType b)
12731274
{
12741275
return (a & b) == b;
12751276
}
1276-
}
1277+
}

FModel/Views/Snooper/Options.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,18 @@ public void AnimateMesh(bool value)
240240
Services.ApplicationService.ApplicationView.CUE4Parse.ModelIsWaitingAnimation = value;
241241
}
242242

243+
/// <summary>
244+
/// Skip emmisive for specific games, cause of excessive use in their materials
245+
/// </summary>
246+
public bool SkipEmmisive()
247+
{
248+
return _game switch
249+
{
250+
"LIESOFP" => true,
251+
_ => false,
252+
};
253+
}
254+
243255
public void ResetModelsLightsAnimations()
244256
{
245257
foreach (var model in Models.Values)

FModel/Views/Snooper/Shading/Material.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Numerics;
@@ -121,10 +121,15 @@ public void Setup(Options options, int uvCount)
121121
RoughnessMax = roughness + d;
122122
}
123123

124-
if (Parameters.TryGetScalar(out var emissiveMultScalar, "emissive mult", "Emissive_Mult", "EmissiveIntensity", "EmissionIntensity"))
125-
EmissiveMult = emissiveMultScalar;
126-
else if (Parameters.TryGetLinearColor(out var emissiveMultColor, "Emissive Multiplier", "EmissiveMultiplier"))
127-
EmissiveMult = emissiveMultColor.R;
124+
if (!options.SkipEmmisive())
125+
{
126+
if (Parameters.TryGetScalar(out var emissiveMultScalar, "emissive mult", "Emissive_Mult", "EmissiveIntensity", "EmissionIntensity"))
127+
EmissiveMult = emissiveMultScalar;
128+
else if (Parameters.TryGetLinearColor(out var emissiveMultColor, "Emissive Multiplier", "EmissiveMultiplier"))
129+
EmissiveMult = emissiveMultColor.R;
130+
}
131+
else
132+
EmissiveMult = 0f;
128133

129134
if (Parameters.TryGetLinearColor(out var EmissiveUVs,
130135
"EmissiveUVs_RG_UpperLeftCorner_BA_LowerRightCorner",

0 commit comments

Comments
 (0)