muffin v6.35 with old pdb

This commit is contained in:
alydev 2025-10-29 06:52:53 +10:00
parent ac85599236
commit b5d2cc6708
31 changed files with 958 additions and 958 deletions

View file

@ -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;
}