fix: only filter based on jobs on non-alliance pfs

This commit is contained in:
Anna 2021-02-12 16:51:11 -05:00
parent 0e743f174e
commit 5b74c56b44
3 changed files with 12 additions and 6 deletions

View File

@ -76,7 +76,7 @@ namespace BetterPartyFinder {
}
// filter based on jobs (slow?)
if (filter.Jobs.Count > 0) {
if (filter.Jobs.Count > 0 && !listing[SearchAreaFlags.AllianceRaid]) {
var slots = listing.Slots.ToArray();
var present = listing.RawJobsPresent.ToArray();

View File

@ -19,6 +19,7 @@ namespace BetterPartyFinder {
public bool BeginnersWelcome { get; }
public ushort SecondsRemaining { get; }
public ushort MinimumItemLevel { get; }
public byte Parties { get; }
public byte SlotsAvailable { get; }
public IEnumerable<PartyFinderSlot> Slots => this._slots;
@ -68,6 +69,7 @@ namespace BetterPartyFinder {
this.BeginnersWelcome = listing.beginnersWelcome == 1;
this.SecondsRemaining = listing.secondsRemaining;
this.MinimumItemLevel = listing.minimumItemLevel;
this.Parties = listing.numParties;
this.SlotsAvailable = listing.numSlots;
this._objective = listing.objective;
@ -116,7 +118,7 @@ namespace BetterPartyFinder {
public enum SearchAreaFlags : uint {
DataCentre = 1 << 0,
Private = 1 << 1,
Unknown2 = 1 << 2, // set for copied factory pf
AllianceRaid = 1 << 2,
World = 1 << 3,
OnePlayerPerJob = 1 << 5,
}

View File

@ -9,14 +9,14 @@ namespace BetterPartyFinder {
}
[StructLayout(LayoutKind.Sequential)]
public struct PfPacket {
public readonly struct PfPacket {
private readonly int unk0;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
private readonly byte[] padding1;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public PfListing[] listings;
public readonly PfListing[] listings;
}
[StructLayout(LayoutKind.Sequential)]
@ -80,8 +80,12 @@ namespace BetterPartyFinder {
internal readonly byte searchArea;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
private readonly byte[] header11; // 00 01 00 00 00 for every pf except alliance raids where it's 01 03 00 00 00 (second byte # parties?)
private readonly byte header11;
internal readonly byte numParties;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
private readonly byte[] header12; // 00 00 00 always. maybe numParties is a u32?
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
internal readonly uint[] slots;