muffin v6.35 with old pdb
This commit is contained in:
parent
ac85599236
commit
b5d2cc6708
31 changed files with 958 additions and 958 deletions
|
|
@ -82,8 +82,8 @@ internal sealed class QuestFunctions
|
|||
|
||||
public unsafe QuestReference GetCurrentQuest(bool allowNewMsq = true)
|
||||
{
|
||||
QuestReference currentQuestInternal = GetCurrentQuestInternal(allowNewMsq);
|
||||
currentQuestInternal.Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State);
|
||||
QuestReference territoryId = GetCurrentQuestInternal(allowNewMsq);
|
||||
territoryId.Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State);
|
||||
ElementId elementId = CurrentQuest;
|
||||
byte sequence = Sequence;
|
||||
MainScenarioQuestState state = State;
|
||||
|
|
@ -140,7 +140,7 @@ internal sealed class QuestFunctions
|
|||
return new QuestReference(questId, QuestManager.GetQuestSequence(questId.Value), state);
|
||||
}
|
||||
}
|
||||
return currentQuestInternal;
|
||||
return territoryId;
|
||||
}
|
||||
|
||||
public unsafe QuestReference GetCurrentQuestInternal(bool allowNewMsq)
|
||||
|
|
@ -949,8 +949,8 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return false;
|
||||
}
|
||||
QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId);
|
||||
return _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(questInfo.AlliedSociety).Contains(questId);
|
||||
QuestInfo combatJob = (QuestInfo)_questData.GetQuestInfo(questId);
|
||||
return _alliedSocietyQuestFunctions.GetAvailableAlliedSocietyQuests(combatJob.AlliedSociety).Contains(questId);
|
||||
}
|
||||
|
||||
public bool IsQuestUnobtainable(ElementId elementId, ElementId? extraCompletedQuest = null)
|
||||
|
|
@ -959,17 +959,17 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return IsQuestUnobtainable(questId, extraCompletedQuest);
|
||||
}
|
||||
if (elementId is UnlockLinkId unlockLinkId)
|
||||
if (elementId is UnlockLinkId combatJobGearSets)
|
||||
{
|
||||
return IsQuestUnobtainable(unlockLinkId);
|
||||
return IsQuestUnobtainable(combatJobGearSets);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public unsafe bool IsQuestUnobtainable(QuestId questId, ElementId? extraCompletedQuest = null)
|
||||
{
|
||||
IQuestInfo questInfo = _questData.GetQuestInfo(questId);
|
||||
if (questInfo is UnlockLinkQuestInfo { QuestExpiry: { TimeOfDay: var timeOfDay } questExpiry })
|
||||
IQuestInfo playerState = _questData.GetQuestInfo(questId);
|
||||
if (playerState is UnlockLinkQuestInfo { QuestExpiry: { TimeOfDay: var timeOfDay } questExpiry })
|
||||
{
|
||||
TimeSpan timeSpan = new TimeSpan(23, 59, 59);
|
||||
bool flag = false;
|
||||
|
|
@ -997,12 +997,12 @@ internal sealed class QuestFunctions
|
|||
return true;
|
||||
}
|
||||
}
|
||||
QuestInfo questInfo2 = (QuestInfo)questInfo;
|
||||
if ((int)questInfo2.Expansion > (int)PlayerState.Instance()->MaxExpansion)
|
||||
QuestInfo i = (QuestInfo)playerState;
|
||||
if ((int)i.Expansion > (int)PlayerState.Instance()->MaxExpansion)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (questInfo2.JournalGenre >= 234 && questInfo2.JournalGenre <= 247)
|
||||
if (i.JournalGenre >= 234 && i.JournalGenre <= 247)
|
||||
{
|
||||
if (_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest))
|
||||
{
|
||||
|
|
@ -1021,38 +1021,38 @@ internal sealed class QuestFunctions
|
|||
}
|
||||
goto IL_0288;
|
||||
IL_0288:
|
||||
if (questInfo2.QuestLocks.Count > 0)
|
||||
if (i.QuestLocks.Count > 0)
|
||||
{
|
||||
int num = questInfo2.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest));
|
||||
if (questInfo2.QuestLockJoin == EQuestJoin.All && questInfo2.QuestLocks.Count == num)
|
||||
int num = i.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest));
|
||||
if (i.QuestLockJoin == EQuestJoin.All && i.QuestLocks.Count == num)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (questInfo2.QuestLockJoin == EQuestJoin.AtLeastOne && num > 0)
|
||||
if (i.QuestLockJoin == EQuestJoin.AtLeastOne && num > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
DateTime? seasonalQuestExpiry = questInfo2.SeasonalQuestExpiry;
|
||||
DateTime? seasonalQuestExpiry = i.SeasonalQuestExpiry;
|
||||
if (seasonalQuestExpiry.HasValue)
|
||||
{
|
||||
DateTime valueOrDefault = seasonalQuestExpiry.GetValueOrDefault();
|
||||
TimeSpan timeOfDay2 = valueOrDefault.TimeOfDay;
|
||||
DateTime gearset = seasonalQuestExpiry.GetValueOrDefault();
|
||||
TimeSpan timeOfDay2 = gearset.TimeOfDay;
|
||||
TimeSpan timeSpan2 = new TimeSpan(23, 59, 59);
|
||||
bool flag2 = false;
|
||||
DateTime dateTime2;
|
||||
if (timeOfDay2 == TimeSpan.Zero || timeOfDay2 == timeSpan2)
|
||||
{
|
||||
dateTime2 = EventInfoComponent.AtDailyReset(DateOnly.FromDateTime(valueOrDefault));
|
||||
dateTime2 = EventInfoComponent.AtDailyReset(DateOnly.FromDateTime(gearset));
|
||||
flag2 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
dateTime2 = ((valueOrDefault.Kind == DateTimeKind.Utc) ? valueOrDefault : valueOrDefault.ToUniversalTime());
|
||||
dateTime2 = ((gearset.Kind == DateTimeKind.Utc) ? gearset : gearset.ToUniversalTime());
|
||||
}
|
||||
if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value))
|
||||
{
|
||||
_logger.LogDebug("Quest {QuestId} seasonal expiry raw={ExpiryRaw} Kind={Kind} TimeOfDay={TimeOfDay}", questId, valueOrDefault.ToString("o"), valueOrDefault.Kind, valueOrDefault.TimeOfDay);
|
||||
_logger.LogDebug("Quest {QuestId} seasonal expiry raw={ExpiryRaw} Kind={Kind} TimeOfDay={TimeOfDay}", questId, gearset.ToString("o"), gearset.Kind, gearset.TimeOfDay);
|
||||
_logger.LogDebug("Quest {QuestId} normalized expiryUtc={ExpiryUtc:o} treatedAsDailyReset={TreatedAsDailyReset}", questId, dateTime2, flag2);
|
||||
_logger.LogTrace("Quest {QuestId} expiry check: nowUtc={Now:o}, expiryUtc={Expiry:o}, expired={Expired}", questId, DateTime.UtcNow, dateTime2, DateTime.UtcNow > dateTime2);
|
||||
}
|
||||
|
|
@ -1065,7 +1065,7 @@ internal sealed class QuestFunctions
|
|||
return true;
|
||||
}
|
||||
}
|
||||
if ((questInfo2.IsSeasonalEvent || questInfo2.IsSeasonalQuest) && !(questInfo2.SeasonalQuestExpiry is DateTime))
|
||||
if ((i.IsSeasonalEvent || i.IsSeasonalQuest) && !(i.SeasonalQuestExpiry is DateTime))
|
||||
{
|
||||
if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value))
|
||||
{
|
||||
|
|
@ -1080,20 +1080,20 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return true;
|
||||
}
|
||||
byte startTown = PlayerState.Instance()->StartTown;
|
||||
if (questInfo2.StartingCity > 0 && questInfo2.StartingCity != startTown)
|
||||
byte classJob = PlayerState.Instance()->StartTown;
|
||||
if (i.StartingCity > 0 && i.StartingCity != classJob)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (questId.Value == 674 && startTown == 3)
|
||||
if (questId.Value == 674 && classJob == 3)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (questId.Value == 673 && startTown != 3)
|
||||
if (questId.Value == 673 && classJob != 3)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
Dictionary<ushort, EClassJob> dictionary = new Dictionary<ushort, EClassJob>
|
||||
Dictionary<ushort, EClassJob> level = new Dictionary<ushort, EClassJob>
|
||||
{
|
||||
{
|
||||
108,
|
||||
|
|
@ -1128,7 +1128,7 @@ internal sealed class QuestFunctions
|
|||
EClassJob.Thaumaturge
|
||||
}
|
||||
};
|
||||
if (dictionary.TryGetValue(questId.Value, out var value) && dictionary.Any((KeyValuePair<ushort, EClassJob> x) => IsQuestAcceptedOrComplete(new QuestId(x.Key))) && (EClassJob)PlayerState.Instance()->FirstClass != value)
|
||||
if (level.TryGetValue(questId.Value, out var itemLevel) && level.Any((KeyValuePair<ushort, EClassJob> x) => IsQuestAcceptedOrComplete(new QuestId(x.Key))) && (EClassJob)PlayerState.Instance()->FirstClass != itemLevel)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1156,12 +1156,12 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
for (int i = 0; i < GameMain.Instance()->ActiveFestivals.Length; i++)
|
||||
{
|
||||
GameMain.Festival festival = GameMain.Instance()->ActiveFestivals[i];
|
||||
if (festival.Id == id)
|
||||
GameMain.Festival gatheringItemToItem = GameMain.Instance()->ActiveFestivals[i];
|
||||
if (gatheringItemToItem.Id == id)
|
||||
{
|
||||
if (phase.HasValue)
|
||||
{
|
||||
return festival.Phase == phase;
|
||||
return gatheringItemToItem.Phase == phase;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue